From 26a4bb81b40f34a520fae8b98267a5aa9cda6396 Mon Sep 17 00:00:00 2001 From: Patbox <39821509+Patbox@users.noreply.github.com> Date: Sun, 17 Oct 2021 20:21:52 +0200 Subject: [PATCH] Universal Graves 1.1.3: - Fixed errors with Origins mod - You can now disable breaking of empty graves --- build.gradle | 4 ++-- gradle.properties | 2 +- .../java/eu/pb4/graves/config/data/ConfigData.java | 1 + src/main/java/eu/pb4/graves/grave/GraveBlock.java | 4 +++- .../java/eu/pb4/graves/grave/GraveBlockEntity.java | 12 ++++++++++++ src/main/java/eu/pb4/graves/grave/GraveGui.java | 7 ++++++- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 7329172..5067f95 100644 --- a/build.gradle +++ b/build.gradle @@ -55,8 +55,8 @@ dependencies { modImplementation include("eu.pb4:sgui:1.0.0-rc4+1.17.1") modImplementation include("eu.pb4:hologram-api:0.2.1+1.17.1") modImplementation include("eu.pb4:placeholder-api:1.1.1+1.17.1") - modImplementation include("eu.pb4:polymer:0.1.6+1.17.1") - modImplementation include("fr.catcore:server-translations-api:1.4.5+1.17") + modImplementation include("eu.pb4:polymer:0.1.8+1.17.1") + modImplementation include("fr.catcore:server-translations-api:1.4.6+1.17") modImplementation include("me.lucko:fabric-permissions-api:0.1-SNAPSHOT") modCompileOnly "dev.emi:trinkets:3.0.4" diff --git a/gradle.properties b/gradle.properties index 52527bb..77caf7b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G loader_version=0.11.6 # Mod Properties - mod_version = 1.1.2+1.17.1 + mod_version = 1.1.3+1.17.1 maven_group = eu.pb4 archives_base_name = graves diff --git a/src/main/java/eu/pb4/graves/config/data/ConfigData.java b/src/main/java/eu/pb4/graves/config/data/ConfigData.java index 0715640..83ac1aa 100644 --- a/src/main/java/eu/pb4/graves/config/data/ConfigData.java +++ b/src/main/java/eu/pb4/graves/config/data/ConfigData.java @@ -31,6 +31,7 @@ public class ConfigData extends VersionedConfigData implements Cloneable { public boolean isProtected = true; public int protectionTime = 300; public int breakingTime = 900; + public boolean breakEmptyGraves = true; public String xpStorageType = GravesXPCalculation.VANILLA.name; public double xpPercentTypeValue = 100; diff --git a/src/main/java/eu/pb4/graves/grave/GraveBlock.java b/src/main/java/eu/pb4/graves/grave/GraveBlock.java index ed45bbc..7830a75 100644 --- a/src/main/java/eu/pb4/graves/grave/GraveBlock.java +++ b/src/main/java/eu/pb4/graves/grave/GraveBlock.java @@ -67,8 +67,10 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt if (blockEntity instanceof GraveBlockEntity grave && grave.info.canTakeFrom(player)) { if (grave.info.itemCount > 0) { new GraveGui((ServerPlayerEntity) player, grave).open(); - } else { + } else if (ConfigManager.getConfig().configData.breakEmptyGraves) { world.setBlockState(pos, grave.replacedBlockState, Block.NOTIFY_ALL); + } else { + grave.clearGrave(); } return ActionResult.SUCCESS; } diff --git a/src/main/java/eu/pb4/graves/grave/GraveBlockEntity.java b/src/main/java/eu/pb4/graves/grave/GraveBlockEntity.java index 24a09c1..b5905fd 100644 --- a/src/main/java/eu/pb4/graves/grave/GraveBlockEntity.java +++ b/src/main/java/eu/pb4/graves/grave/GraveBlockEntity.java @@ -261,4 +261,16 @@ public boolean canInsert(int slot, ItemStack stack, @Nullable Direction dir) { public boolean canExtract(int slot, ItemStack stack, Direction dir) { return false; } + + public void clearGrave() { + if (this.info.xp != 0) { + ExperienceOrbEntity.spawn((ServerWorld) this.world, Vec3d.ofCenter(this.getPos()), this.info.xp); + this.info.xp = 0; + } + if (this.info.itemCount != 0) { + ItemScatterer.spawn(this.world, this.pos, this); + this.info.itemCount = 0; + } + GraveManager.INSTANCE.remove(this.info); + } } diff --git a/src/main/java/eu/pb4/graves/grave/GraveGui.java b/src/main/java/eu/pb4/graves/grave/GraveGui.java index 6fc1c03..71f997e 100644 --- a/src/main/java/eu/pb4/graves/grave/GraveGui.java +++ b/src/main/java/eu/pb4/graves/grave/GraveGui.java @@ -72,7 +72,12 @@ public void onTick() { public void onClose() { if (this.grave.isEmpty() && !this.grave.isRemoved()) { assert this.grave.getWorld() != null; - this.grave.getWorld().setBlockState(this.grave.getPos(), this.grave.replacedBlockState, Block.NOTIFY_ALL); + + if (ConfigManager.getConfig().configData.breakEmptyGraves) { + this.grave.getWorld().setBlockState(this.grave.getPos(), this.grave.replacedBlockState, Block.NOTIFY_ALL); + } else { + this.grave.clearGrave(); + } } else { this.grave.updateItemCount(); }