1
0
Fork 0

change invntory logic

This commit is contained in:
Sen 2025-09-05 17:15:59 +02:00
parent c6ba1703a2
commit 9f452b410e
Signed by: sen
GPG key ID: 3AC50A6F47D1B722
11 changed files with 118 additions and 9 deletions

View file

@ -15,17 +15,21 @@ public class CommandMore extends Command {
this.setParamsOptional();
this.addFlag("all", 'a');
this.addInt("amount", 'n', 2, 100000000, 100);
this.setParamsRequired();
this.addPlayerEntityList("players", 'p', true, UserPolicy.NON_ADMINS_OR_SELF);
}
private int addItems(ItemStack stack) {
int diff = stack.getMaxStackSize() - stack.getSize();
stack.setSize(stack.getMaxStackSize());
private int addItems(ItemStack stack, int amount) {
int max = Math.min(stack.getMaxStackSize(), amount);
if(stack.getSize() >= max)
return 0;
int diff = max - stack.getSize();
stack.setSize(max);
return diff;
}
public void exec(CommandEnvironment env, Executor exec, boolean all, List<EntityNPC> players) {
public void exec(CommandEnvironment env, Executor exec, boolean all, int amount, List<EntityNPC> players) {
int done = 0;
int added = 0;
for(EntityNPC player : players) {
@ -34,11 +38,11 @@ public class CommandMore extends Command {
for(int z = 0; z < player.getSizeInventory(); z++) {
ItemStack item = player.getStackInSlot(z);
if(item != null)
add += this.addItems(item);
add += this.addItems(item, amount);
}
}
else if(player.getHeldItem() != null) {
add += this.addItems(player.getHeldItem());
add += this.addItems(player.getHeldItem(), amount);
}
if(add > 0) {
exec.log("%d " + (add == 1 ? "Gegenstand" : "Gegenstände") + " wurde" + (add == 1 ? "" : "n") + " dem Inventar von %s hinzugefügt", add, player.getRawName());

View file

@ -2707,7 +2707,9 @@ public class Player extends User implements Executor, IPlayer
for(int z = 0; z < this.entity.getSizeInventory(); z++) {
ItemStack stack = this.entity.getStackInSlot(z);
if(stack != null) {
stack.setSize(stack.getMaxStackSize());
int max = Math.min(stack.getMaxStackSize(), 100);
if(stack.getSize() < max)
stack.setSize(max);
stack.setRepairCost(0);
if(stack.getItem().getMaxDamage() > 0)
stack.setItemDamage(0);
@ -2716,7 +2718,9 @@ public class Player extends User implements Executor, IPlayer
}
else if(this.entity.getHeldItem() != null) {
ItemStack stack = this.entity.getHeldItem();
stack.setSize(stack.getMaxStackSize());
int max = Math.min(stack.getMaxStackSize(), 100);
if(stack.getSize() < max)
stack.setSize(max);
stack.setRepairCost(0);
if(stack.getItem().getMaxDamage() > 0)
stack.setItemDamage(0);
@ -2943,6 +2947,7 @@ public class Player extends User implements Executor, IPlayer
return;
slot.putStack(stack);
}
this.entity.openContainer.resortStacks(this.entity);
this.entity.openContainer.detectAndSendChanges();
this.entity.worldObj.playSoundAtEntity(this.entity, SoundEvent.POP, 0.2F);
if(amount == 1)