1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
--- a/net/minecraft/server/commands/GiveCommand.java
+++ b/net/minecraft/server/commands/GiveCommand.java
@@ -9,7 +9,6 @@
import java.util.Iterator;
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;
@@ -27,69 +26,69 @@
public GiveCommand() {}
- public static void register(CommandDispatcher<CommandSourceStack> commanddispatcher, CommandBuildContext commandbuildcontext) {
- commanddispatcher.register((LiteralArgumentBuilder) ((LiteralArgumentBuilder) Commands.literal("give").requires((commandsourcestack) -> {
- return commandsourcestack.hasPermission(2);
- })).then(Commands.argument("targets", EntityArgument.players()).then(((RequiredArgumentBuilder) Commands.argument("item", ItemArgument.item(commandbuildcontext)).executes((commandcontext) -> {
+ public static void register(CommandDispatcher<CommandSourceStack> dispatcher, CommandBuildContext context) {
+ dispatcher.register((LiteralArgumentBuilder) ((LiteralArgumentBuilder) net.minecraft.commands.Commands.literal("give").requires((commandlistenerwrapper) -> {
+ return commandlistenerwrapper.hasPermission(2);
+ })).then(net.minecraft.commands.Commands.argument("targets", EntityArgument.players()).then(((RequiredArgumentBuilder) net.minecraft.commands.Commands.argument("item", ItemArgument.item(context)).executes((commandcontext) -> {
return giveItem((CommandSourceStack) commandcontext.getSource(), ItemArgument.getItem(commandcontext, "item"), EntityArgument.getPlayers(commandcontext, "targets"), 1);
- })).then(Commands.argument("count", IntegerArgumentType.integer(1)).executes((commandcontext) -> {
+ })).then(net.minecraft.commands.Commands.argument("count", IntegerArgumentType.integer(1)).executes((commandcontext) -> {
return giveItem((CommandSourceStack) commandcontext.getSource(), ItemArgument.getItem(commandcontext, "item"), EntityArgument.getPlayers(commandcontext, "targets"), IntegerArgumentType.getInteger(commandcontext, "count"));
})))));
}
- private static int giveItem(CommandSourceStack commandsourcestack, ItemInput iteminput, Collection<ServerPlayer> collection, int i) throws CommandSyntaxException {
- int j = iteminput.getItem().getMaxStackSize();
+ private static int giveItem(CommandSourceStack source, ItemInput item, Collection<ServerPlayer> targets, int count) throws CommandSyntaxException {
+ int j = item.getItem().getMaxStackSize();
int k = j * 100;
- ItemStack itemstack = iteminput.createItemStack(i, false);
+ ItemStack itemstack = item.createItemStack(count, false);
- if (i > k) {
- commandsourcestack.sendFailure(Component.translatable("commands.give.failed.toomanyitems", k, itemstack.getDisplayName()));
+ if (count > k) {
+ source.sendFailure(Component.translatable("commands.give.failed.toomanyitems", k, itemstack.getDisplayName()));
return 0;
} else {
- Iterator iterator = collection.iterator();
+ Iterator iterator = targets.iterator();
while (iterator.hasNext()) {
- ServerPlayer serverplayer = (ServerPlayer) iterator.next();
- int l = i;
+ ServerPlayer entityplayer = (ServerPlayer) iterator.next();
+ int l = count;
while (l > 0) {
int i1 = Math.min(j, l);
l -= i1;
- ItemStack itemstack1 = iteminput.createItemStack(i1, false);
- boolean flag = serverplayer.getInventory().add(itemstack1);
- ItemEntity itementity;
+ ItemStack itemstack1 = item.createItemStack(i1, false);
+ boolean flag = entityplayer.getInventory().add(itemstack1);
+ ItemEntity entityitem;
if (flag && itemstack1.isEmpty()) {
itemstack1.setCount(1);
- itementity = serverplayer.drop(itemstack1, false);
- if (itementity != null) {
- itementity.makeFakeItem();
+ entityitem = entityplayer.drop(itemstack1, false, false, false); // SPIGOT-2942: Add boolean to call event
+ if (entityitem != null) {
+ entityitem.makeFakeItem();
}
- serverplayer.level().playSound((Player) 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();
+ entityplayer.level().playSound((Player) null, entityplayer.getX(), entityplayer.getY(), entityplayer.getZ(), SoundEvents.ITEM_PICKUP, SoundSource.PLAYERS, 0.2F, ((entityplayer.getRandom().nextFloat() - entityplayer.getRandom().nextFloat()) * 0.7F + 1.0F) * 2.0F);
+ entityplayer.containerMenu.broadcastChanges();
} else {
- itementity = serverplayer.drop(itemstack1, false);
- if (itementity != null) {
- itementity.setNoPickUpDelay();
- itementity.setTarget(serverplayer.getUUID());
+ entityitem = entityplayer.drop(itemstack1, false);
+ if (entityitem != null) {
+ entityitem.setNoPickUpDelay();
+ entityitem.setTarget(entityplayer.getUUID());
}
}
}
}
- if (collection.size() == 1) {
- commandsourcestack.sendSuccess(() -> {
- return Component.translatable("commands.give.success.single", i, itemstack.getDisplayName(), ((ServerPlayer) collection.iterator().next()).getDisplayName());
+ if (targets.size() == 1) {
+ source.sendSuccess(() -> {
+ return Component.translatable("commands.give.success.single", count, itemstack.getDisplayName(), ((ServerPlayer) targets.iterator().next()).getDisplayName());
}, true);
} else {
- commandsourcestack.sendSuccess(() -> {
- return Component.translatable("commands.give.success.single", i, itemstack.getDisplayName(), collection.size());
+ source.sendSuccess(() -> {
+ return Component.translatable("commands.give.success.single", count, itemstack.getDisplayName(), targets.size());
}, true);
}
- return collection.size();
+ return targets.size();
}
}
}
|