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"));