From b9a114507d28e5f4e3a05550f859627e2d93442d Mon Sep 17 00:00:00 2001 From: Dan-megabyte <80708654+Dan-megabyte@users.noreply.github.com> Date: Sun, 29 Sep 2024 15:30:57 -0700 Subject: [PATCH 01/12] add explosionPower --- src/main/resources/config.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 81a6d41..45f4cc2 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,9 +1,12 @@ # How long should the TNT take to detonate in ticks? (80 ticks is normal tnt) fuseLength: 20 +# How big should the TNT explosion power be? (4 for normal tnt) +explosionPower: 3 + # // MESSAGES \\ # Note: You can use HEX color codes, just make sure they follow the following format -> &#FFFFFF Example: ␐A3 prefix: "␐A3[FAFFFExplosiveArrows␐A3]FAFFF " usePermissionMissing: "You don't have permission to use this." -craftPermissionMissing: "You don't have permission to craft this." \ No newline at end of file +craftPermissionMissing: "You don't have permission to craft this." From d8ef14ca8fef91020e8b1a23a8f918e088791b39 Mon Sep 17 00:00:00 2001 From: Dan-megabyte <80708654+Dan-megabyte@users.noreply.github.com> Date: Sun, 29 Sep 2024 15:41:02 -0700 Subject: [PATCH 02/12] Update ArrowHitEvent.java to use explosionPower --- .../java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java b/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java index 8e901d7..79053f7 100644 --- a/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java +++ b/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java @@ -22,6 +22,7 @@ public void onArrowHit(org.bukkit.event.entity.ProjectileHitEvent e){ var tnt = (TNTPrimed) arrow.getWorld().spawnEntity(arrow.getLocation(), EntityType.PRIMED_TNT); tnt.setFuseTicks(api.fuseLength); + tnt.setYield(api.explosionPower); tnt.setSource(p); arrow.remove(); } From 11a2845dffabc30380a160989ca962a2ed84566d Mon Sep 17 00:00:00 2001 From: Dan-megabyte <80708654+Dan-megabyte@users.noreply.github.com> Date: Sun, 29 Sep 2024 15:41:55 -0700 Subject: [PATCH 03/12] Update pom.xml with new version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fdfe32a..b1419b5 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ xyz.blujay ExplosiveArrows - 1.0.0 + 1.0.1 jar ExplosiveArrows From 35d769f8b6a6faed9d9a08cb361da5030a5b4e56 Mon Sep 17 00:00:00 2001 From: dan-megabyte Date: Tue, 1 Oct 2024 18:36:06 +0200 Subject: [PATCH 04/12] add explosionPower to API --- .../java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java b/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java index a4da859..7e72ab6 100644 --- a/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java +++ b/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java @@ -9,6 +9,7 @@ public class ExplosiveArrowsAPI { public int fuseLength; + public int explosionPower; public String prefix; public String usePermissionMissing; public String craftPermissionMissing; @@ -19,6 +20,7 @@ public class ExplosiveArrowsAPI { public void setConfigOptions(FileConfiguration config){ this.fuseLength = config.getInt("fuseLength"); + this.explosionPower = config.getInt("explosionPower"); this.prefix = ChatUtility.colorize(config.getString("prefix")); this.usePermissionMissing = ChatUtility.colorize(config.getString("usePermissionMissing")); this.craftPermissionMissing = ChatUtility.colorize(config.getString("craftPermissionMissing")); From c8c15c60fc23996f31086955192c8e85276af703 Mon Sep 17 00:00:00 2001 From: Dan-megabyte <80708654+Dan-megabyte@users.noreply.github.com> Date: Sun, 27 Oct 2024 22:36:43 -0700 Subject: [PATCH 05/12] Update ArrowHitEvent.java Directly makes an explosion instead of just spawning a TNT --- .../xyz/blujay/explosivearrows/events/ArrowHitEvent.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java b/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java index 79053f7..e32e2fe 100644 --- a/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java +++ b/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java @@ -19,11 +19,7 @@ public void onArrowHit(org.bukkit.event.entity.ProjectileHitEvent e){ if(data != null && data == CustomItems.EXPLOSIVEARROW.ordinal()){ var plugin = ExplosiveArrows.getInstance(); var api = plugin.getAPI(); - - var tnt = (TNTPrimed) arrow.getWorld().spawnEntity(arrow.getLocation(), EntityType.PRIMED_TNT); - tnt.setFuseTicks(api.fuseLength); - tnt.setYield(api.explosionPower); - tnt.setSource(p); + arrow.getWorld().createExplosion(arrow.getLocation(), api.explosionPower, api.setFires, true, p); arrow.remove(); } } From fcc606ea779f17cda183e58483dc5da54424cb8b Mon Sep 17 00:00:00 2001 From: Dan-megabyte <80708654+Dan-megabyte@users.noreply.github.com> Date: Sun, 27 Oct 2024 22:43:11 -0700 Subject: [PATCH 06/12] Update ExplosiveArrowsAPI.java Replace fuseTicks with setFires --- .../java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java b/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java index 7e72ab6..5f7de93 100644 --- a/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java +++ b/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java @@ -8,7 +8,7 @@ import xyz.blujay.explosivearrows.utilities.ChatUtility; public class ExplosiveArrowsAPI { - public int fuseLength; + public boolean setfires; public int explosionPower; public String prefix; public String usePermissionMissing; @@ -19,7 +19,7 @@ public class ExplosiveArrowsAPI { } public void setConfigOptions(FileConfiguration config){ - this.fuseLength = config.getInt("fuseLength"); + this.setfires = config.getBoolean("setfires"); this.explosionPower = config.getInt("explosionPower"); this.prefix = ChatUtility.colorize(config.getString("prefix")); this.usePermissionMissing = ChatUtility.colorize(config.getString("usePermissionMissing")); From ebd225024c463d3ce198eec5ce8b73893a146526 Mon Sep 17 00:00:00 2001 From: Dan-megabyte <80708654+Dan-megabyte@users.noreply.github.com> Date: Sun, 27 Oct 2024 22:45:00 -0700 Subject: [PATCH 07/12] Amend config.yml remove references to TNT + replace fuseLength with setFires --- src/main/resources/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 45f4cc2..7cd0f43 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,7 +1,7 @@ -# How long should the TNT take to detonate in ticks? (80 ticks is normal tnt) -fuseLength: 20 +# Should an arrow's explosion start fires? +setFires: false -# How big should the TNT explosion power be? (4 for normal tnt) +# How big should the explosion power of an arrow be? (4 is normal tnt) explosionPower: 3 # // MESSAGES \\ From 186667823854b00d5def2215265fcb5646434e86 Mon Sep 17 00:00:00 2001 From: dan-megabyte Date: Mon, 28 Oct 2024 17:03:56 +0100 Subject: [PATCH 08/12] Amend config.yml remove references to TNT + replace fuseLength with setFires --- src/main/resources/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 45f4cc2..7cd0f43 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,7 +1,7 @@ -# How long should the TNT take to detonate in ticks? (80 ticks is normal tnt) -fuseLength: 20 +# Should an arrow's explosion start fires? +setFires: false -# How big should the TNT explosion power be? (4 for normal tnt) +# How big should the explosion power of an arrow be? (4 is normal tnt) explosionPower: 3 # // MESSAGES \\ From 780efdc175d3e057abb1d674201d57348ccd44b9 Mon Sep 17 00:00:00 2001 From: dan-megabyte Date: Mon, 28 Oct 2024 17:36:59 +0100 Subject: [PATCH 09/12] add water block breaking prevention --- .../xyz/blujay/explosivearrows/events/ArrowHitEvent.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java b/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java index e32e2fe..7ce1317 100644 --- a/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java +++ b/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java @@ -19,7 +19,10 @@ public void onArrowHit(org.bukkit.event.entity.ProjectileHitEvent e){ if(data != null && data == CustomItems.EXPLOSIVEARROW.ordinal()){ var plugin = ExplosiveArrows.getInstance(); var api = plugin.getAPI(); - arrow.getWorld().createExplosion(arrow.getLocation(), api.explosionPower, api.setFires, true, p); + Location loc = arrow.getLocation(); + World world = arrow.getWorld(); + boolean breakBlocks = world.getBlockAt(loc).isLiquid(); + world.createExplosion(loc, api.explosionPower, api.setFires, breakBlocks, p); arrow.remove(); } } From ee9fe8be8c12ab3dfb0e8cee9be7039e30965b3f Mon Sep 17 00:00:00 2001 From: dan-megabyte Date: Mon, 28 Oct 2024 17:46:26 +0100 Subject: [PATCH 10/12] add more type safety --- .../java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java b/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java index 7ce1317..f0a7048 100644 --- a/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java +++ b/src/main/java/xyz/blujay/explosivearrows/events/ArrowHitEvent.java @@ -14,8 +14,8 @@ public class ArrowHitEvent implements Listener { public void onArrowHit(org.bukkit.event.entity.ProjectileHitEvent e){ if(e.getEntity() instanceof Arrow arrow && arrow.getShooter() instanceof Player p){ - var key = new NamespacedKey(ExplosiveArrows.getInstance(), "ExplosiveArrows"); - var data = arrow.getPersistentDataContainer().get(key, PersistentDataType.INTEGER); + NamespacedKey key = new NamespacedKey(ExplosiveArrows.getInstance(), "ExplosiveArrows"); + int data = arrow.getPersistentDataContainer().get(key, PersistentDataType.INTEGER); if(data != null && data == CustomItems.EXPLOSIVEARROW.ordinal()){ var plugin = ExplosiveArrows.getInstance(); var api = plugin.getAPI(); From 45ccdbe3aea9fc463b8493fe3ede2f1ec004dc0b Mon Sep 17 00:00:00 2001 From: dan-megabyte Date: Tue, 1 Oct 2024 18:36:06 +0200 Subject: [PATCH 11/12] Revert Previous Changes Should've been in a different branch --- .../java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java b/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java index a4da859..7e72ab6 100644 --- a/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java +++ b/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java @@ -9,6 +9,7 @@ public class ExplosiveArrowsAPI { public int fuseLength; + public int explosionPower; public String prefix; public String usePermissionMissing; public String craftPermissionMissing; @@ -19,6 +20,7 @@ public class ExplosiveArrowsAPI { public void setConfigOptions(FileConfiguration config){ this.fuseLength = config.getInt("fuseLength"); + this.explosionPower = config.getInt("explosionPower"); this.prefix = ChatUtility.colorize(config.getString("prefix")); this.usePermissionMissing = ChatUtility.colorize(config.getString("usePermissionMissing")); this.craftPermissionMissing = ChatUtility.colorize(config.getString("craftPermissionMissing")); From 1c79f7f747b3526c40b5fced3652c7fa507170a0 Mon Sep 17 00:00:00 2001 From: dan-megabyte Date: Tue, 1 Oct 2024 18:36:06 +0200 Subject: [PATCH 12/12] Revert last commit --- .../java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java b/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java index a4da859..7e72ab6 100644 --- a/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java +++ b/src/main/java/xyz/blujay/explosivearrows/ExplosiveArrowsAPI.java @@ -9,6 +9,7 @@ public class ExplosiveArrowsAPI { public int fuseLength; + public int explosionPower; public String prefix; public String usePermissionMissing; public String craftPermissionMissing; @@ -19,6 +20,7 @@ public class ExplosiveArrowsAPI { public void setConfigOptions(FileConfiguration config){ this.fuseLength = config.getInt("fuseLength"); + this.explosionPower = config.getInt("explosionPower"); this.prefix = ChatUtility.colorize(config.getString("prefix")); this.usePermissionMissing = ChatUtility.colorize(config.getString("usePermissionMissing")); this.craftPermissionMissing = ChatUtility.colorize(config.getString("craftPermissionMissing"));