soiz1's picture
Upload folder using huggingface_hub
d46f4a3 verified
package net.minecraft.server.commands;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.IntegerArgumentType;
import com.mojang.brigadier.context.CommandContext;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import java.util.Collection;
import net.minecraft.commands.CommandBuildContext;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraft.commands.arguments.EntityArgument;
import net.minecraft.commands.arguments.item.ItemArgument;
import net.minecraft.commands.arguments.item.ItemInput;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.item.ItemStack;
public class GiveCommand {
public static final int MAX_ALLOWED_ITEMSTACKS = 100;
public static void register(CommandDispatcher<CommandSourceStack> p_214446_, CommandBuildContext p_214447_) {
p_214446_.register(
Commands.literal("give")
.requires(p_137777_ -> p_137777_.hasPermission(2))
.then(
Commands.argument("targets", EntityArgument.players())
.then(
Commands.argument("item", ItemArgument.item(p_214447_))
.executes(
p_137784_ -> giveItem(
p_137784_.getSource(), ItemArgument.getItem(p_137784_, "item"), EntityArgument.getPlayers(p_137784_, "targets"), 1
)
)
.then(
Commands.argument("count", IntegerArgumentType.integer(1))
.executes(
p_137775_ -> giveItem(
p_137775_.getSource(),
ItemArgument.getItem(p_137775_, "item"),
EntityArgument.getPlayers(p_137775_, "targets"),
IntegerArgumentType.getInteger(p_137775_, "count")
)
)
)
)
)
);
}
private static int giveItem(CommandSourceStack p_137779_, ItemInput p_137780_, Collection<ServerPlayer> p_137781_, int p_137782_) throws CommandSyntaxException {
ItemStack itemstack = p_137780_.createItemStack(1, false);
int i = itemstack.getMaxStackSize();
int j = i * 100;
if (p_137782_ > j) {
p_137779_.sendFailure(Component.translatable("commands.give.failed.toomanyitems", j, itemstack.getDisplayName()));
return 0;
} else {
for (ServerPlayer serverplayer : p_137781_) {
int k = p_137782_;
while (k > 0) {
int l = Math.min(i, k);
k -= l;
ItemStack itemstack1 = p_137780_.createItemStack(l, false);
boolean flag = serverplayer.getInventory().add(itemstack1);
if (flag && itemstack1.isEmpty()) {
ItemEntity itementity1 = serverplayer.drop(itemstack, false);
if (itementity1 != null) {
itementity1.makeFakeItem();
}
serverplayer.level()
.playSound(
null,
serverplayer.getX(),
serverplayer.getY(),
serverplayer.getZ(),
SoundEvents.ITEM_PICKUP,
SoundSource.PLAYERS,
0.2F,
((serverplayer.getRandom().nextFloat() - serverplayer.getRandom().nextFloat()) * 0.7F + 1.0F) * 2.0F
);
serverplayer.containerMenu.broadcastChanges();
} else {
ItemEntity itementity = serverplayer.drop(itemstack1, false);
if (itementity != null) {
itementity.setNoPickUpDelay();
itementity.setTarget(serverplayer.getUUID());
}
}
}
}
if (p_137781_.size() == 1) {
p_137779_.sendSuccess(
() -> Component.translatable("commands.give.success.single", p_137782_, itemstack.getDisplayName(), p_137781_.iterator().next().getDisplayName()), true
);
} else {
p_137779_.sendSuccess(() -> Component.translatable("commands.give.success.single", p_137782_, itemstack.getDisplayName(), p_137781_.size()), true);
}
return p_137781_.size();
}
}
}