Skip to content

Commit 8812a6d

Browse files
committed
Fix tnt jump being random
1 parent 72f05ca commit 8812a6d

File tree

3 files changed

+33
-23
lines changed

3 files changed

+33
-23
lines changed

plugin/src/main/java/io/github/pronze/sba/config/SBAConfig.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public void loadDefaults() {
120120
.key("permanent-items").defValue(false)
121121
.section("tnt-fireball-jumping")
122122
.key("source-damage").defValue(1)
123-
.key("acceleration-y").defValue(0.8)
123+
.key("acceleration-y").defValue(0.1)
124124
.key("reduce-y").defValue(2.0)
125125
.key("launch-multiplier").defValue(3.4)
126126
.key("detection-distance").defValue(8.0D)

plugin/src/main/java/io/github/pronze/sba/listener/ExplosionVelocityControlListener.java

+30-11
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,12 @@ private void endTntJump(Player player) {
6161
}
6262

6363
@EventHandler(priority = EventPriority.LOWEST)
64-
public void onExplode(EntityDamageByEntityEvent event) {
65-
final var explodedEntity = event.getDamager();
64+
public void onExplode(EntityExplodeEvent event) {
65+
final var explodedEntity = event.getEntity();
66+
// }
67+
// @EventHandler(priority = EventPriority.LOWEST)
68+
// public void onExplode(EntityDamageByEntityEvent event) {
69+
// final var explodedEntity = event.getDamager();
6670

6771
if (explodedEntity instanceof Explosive) {
6872
final var detectionDistance = SBAConfig.getInstance().node("tnt-fireball-jumping", "detection-distance")
@@ -74,27 +78,42 @@ public void onExplode(EntityDamageByEntityEvent event) {
7478
.stream()
7579
.filter(entity -> !entity.equals(explodedEntity))
7680
.forEach(entity -> {
77-
Vector vector = explodedEntity
81+
Vector vector = entity
7882
.getLocation()
7983
.clone()
80-
.add(0, SBAConfig.getInstance().node("tnt-fireball-jumping", "acceleration-y")
81-
.getDouble(1.0), 0)
8284
.toVector()
83-
.subtract(explodedEntity.getLocation().toVector()).normalize();
85+
.subtract(explodedEntity.getLocation().clone()
86+
.add(0, SBAConfig.getInstance().node("tnt-fireball-jumping",
87+
"acceleration-y")
88+
.getDouble(1.0), 0)
89+
.toVector())
90+
.normalize();
91+
Logger.trace("{}", vector);
8492
vector.setY(vector.getY()
8593
/ SBAConfig.getInstance().node("tnt-fireball-jumping", "reduce-y").getDouble(2.0));
94+
if (!Double.isFinite(vector.getY())) {
95+
vector.setY(0);
96+
}
97+
if (!Double.isFinite(vector.getX())) {
98+
vector.setX(0);
99+
}
100+
if (!Double.isFinite(vector.getZ())) {
101+
vector.setZ(0);
102+
}
86103
vector.multiply(SBAConfig.getInstance().node("tnt-fireball-jumping", "launch-multiplier")
87104
.getDouble(4.0));
88105

89106
if (entity instanceof Player) {
90107
final var player = (Player) entity;
91-
if (player.getGameMode() == GameMode.SPECTATOR || !Main.isPlayerInGame(player)) {
92-
return;
108+
if (player.getGameMode() == GameMode.SPECTATOR ||
109+
!Main.isPlayerInGame(player)) {
110+
return;
93111
}
94-
vector.add(new Vector(player.getEyeLocation().getDirection().getX(), 0,
95-
player.getEyeLocation().getDirection().getZ()));
112+
// vector.add(new Vector(player.getEyeLocation().getDirection().getX(), 0,
113+
// player.getEyeLocation().getDirection().getZ()));
114+
96115
AntiCheatIntegration.getInstance().beginTntJump(player);
97-
player.setVelocity(vector);
116+
player.setVelocity(vector.add(player.getVelocity()));
98117
explosionAffectedPlayers.put(player, startTask(player));
99118
return;
100119
}

plugin/src/main/java/io/github/pronze/sba/utils/ShopUtil.java

+2-11
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ public static String getNameOrCustomNameOfItem(Item item) {
398398
public static void addEnchantsToPlayerArmor(Player player, int newLevel) {
399399
for (var item : player.getInventory().getArmorContents()) {
400400
if (item != null) {
401-
item.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, newLevel);
401+
applyTeamEnchants(player, item);
402402
}
403403
}
404404
}
@@ -541,16 +541,7 @@ public static void applyTeamUpgrades(@NotNull Player player, Game game) {
541541
Arrays.stream(player.getInventory().getContents())
542542
.filter(Objects::nonNull)
543543
.forEach(item -> {
544-
if (finalTeamSharpnessLevel > 0)
545-
if (item.getType().name().endsWith("SWORD")) {
546-
item.addEnchantment(Enchantment.DAMAGE_ALL,
547-
finalTeamSharpnessLevel);
548-
}
549-
if (finalTeamEfficiencyLevel > 0)
550-
if (item.getType().name().endsWith("PICKAXE")) {
551-
item.addEnchantment(Enchantment.DIG_SPEED,
552-
finalTeamEfficiencyLevel);
553-
}
544+
applyTeamEnchants(player, item);
554545
});
555546
}
556547

0 commit comments

Comments
 (0)