实现了升级点数返还功能,修复了刷模组的bug
This commit is contained in:
parent
e98005c3a6
commit
46f1f0f73a
1 changed files with 17 additions and 4 deletions
|
@ -150,15 +150,25 @@ public class ReforgingTableMenu extends AbstractContainerMenu {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removed(Player pPlayer) {
|
public void removed(Player pPlayer) {
|
||||||
super.removed(pPlayer);
|
this.access.execute((level, pos) -> {
|
||||||
this.access.execute((p_39796_, p_39797_) -> {
|
ItemStack gun = this.container.getItem(INPUT_SLOT);
|
||||||
|
ItemStack copy = gun.copy();
|
||||||
|
|
||||||
for (int i = 0; i < this.container.getContainerSize(); ++i) {
|
for (int i = 0; i < this.container.getContainerSize(); ++i) {
|
||||||
ItemStack itemstack = this.container.getItem(i);
|
ItemStack itemstack = this.container.getItem(i);
|
||||||
|
|
||||||
|
if (itemstack.getItem() instanceof PerkItem perkItem) {
|
||||||
|
if (!copy.isEmpty() && PerkHelper.getItemPerkLevel(perkItem.getPerk(), copy) > 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!itemstack.isEmpty()) {
|
if (!itemstack.isEmpty()) {
|
||||||
pPlayer.getInventory().placeItemBackInInventory(itemstack);
|
pPlayer.getInventory().placeItemBackInInventory(itemstack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.container.removeItemNoUpdate(i);
|
||||||
}
|
}
|
||||||
this.clearContainer(pPlayer, this.container);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,12 +277,15 @@ public class ReforgingTableMenu extends AbstractContainerMenu {
|
||||||
case DAMAGE -> this.damagePerkLevel.set(0);
|
case DAMAGE -> this.damagePerkLevel.set(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PerkHelper.getItemPerkLevel(perkItem.getPerk(), gun) <= 0) {
|
int level = PerkHelper.getItemPerkLevel(perkItem.getPerk(), gun);
|
||||||
|
|
||||||
|
if (level <= 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack output = gun.copy();
|
ItemStack output = gun.copy();
|
||||||
PerkHelper.removePerkByType(output, perkItem.getPerk().type);
|
PerkHelper.removePerkByType(output, perkItem.getPerk().type);
|
||||||
|
output.getOrCreateTag().putDouble("UpgradePoint", Math.min(100, level + output.getOrCreateTag().getDouble("UpgradePoint")));
|
||||||
|
|
||||||
this.container.setItem(INPUT_SLOT, output);
|
this.container.setItem(INPUT_SLOT, output);
|
||||||
this.container.setChanged();
|
this.container.setChanged();
|
||||||
|
|
Loading…
Add table
Reference in a new issue