Skip to content

Commit 847730e

Browse files
authored
1.20.6 (#16)
* Update build.gradle.kts * Update TurretManager.java * Update PlayerInteractListener.java * Update TurretManager.java * Update build.gradle.kts
1 parent a7ba5d5 commit 847730e

3 files changed

Lines changed: 43 additions & 66 deletions

File tree

build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ repositories {
1818

1919
dependencies {
2020
api("org.jetbrains:annotations-java5:24.1.0")
21-
paperweight.paperDevBundle("1.18.2-R0.1-SNAPSHOT")
21+
paperweight.paperDevBundle("1.20.6-R0.1-SNAPSHOT")
2222
compileOnly("net.countercraft:movecraft:+")
2323
compileOnly("net.countercraft.movecraft.worldguard:movecraft-worldguard:+")
24-
compileOnly("com.sk89q.worldguard:worldguard-bukkit:7.0.7")
24+
compileOnly("com.sk89q.worldguard:worldguard-bukkit:7.0.10")
2525
compileOnly("com.github.MilkBowl:VaultAPI:1.7.1")
2626
}
2727

2828
group = "com.snowleopard"
29-
version = "3.0.0_beta-2_gradle"
29+
version = "3.0.0_beta-3"
3030
description = "APTurrets"
31-
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
31+
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
3232

3333
tasks.reobfJar {
3434
outputJar = layout.buildDirectory.file("libs/AP-Turrets.jar")

src/main/java/com/snowleopard1863/APTurrets/TurretManager.java

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ public void mount(Player player, @NotNull Location signPos) {
7474
player.teleport(signPos);
7575

7676
// Effects to add zoom and lock a player from jumping
77-
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 1000000, 6));
78-
player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 1000000, 200));
77+
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOWNESS, 1000000, 6));
78+
player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP_BOOST, 1000000, 200));
7979
}
8080

8181
public void demount(Player player, @Nullable Location signPos) {
@@ -90,8 +90,8 @@ public void demount(Player player, @Nullable Location signPos) {
9090
}
9191

9292
// Remove potion effects and set their walking speed back to normal
93-
player.removePotionEffect(PotionEffectType.JUMP);
94-
player.removePotionEffect(PotionEffectType.SLOW);
93+
player.removePotionEffect(PotionEffectType.JUMP_BOOST);
94+
player.removePotionEffect(PotionEffectType.SLOWNESS);
9595
}
9696

9797
public void fire(Player player) {
@@ -115,7 +115,7 @@ public void fire(Player player) {
115115
if (runRaycast(player))
116116
return;
117117

118-
Arrow arrow = launchArrow(player);
118+
Arrow arrow = launchArrow(player, Config.TurretAmmo); // TODO: Support tags
119119
arrow.setCritical(true);
120120

121121
World world = player.getWorld();
@@ -124,29 +124,16 @@ public void fire(Player player) {
124124
}
125125

126126
@NotNull
127-
private Arrow launchArrow(Player player) {
128-
Arrow arrow;
129-
try {
130-
ServerPlayer nmsPlayer = (ServerPlayer) player.getClass().getMethod("getHandle").invoke(player);
131-
ServerLevel nmsWorld = nmsPlayer.getLevel();
132-
net.minecraft.world.entity.projectile.Arrow nmsArrow = new net.minecraft.world.entity.projectile.Arrow(nmsWorld, nmsPlayer);
133-
nmsArrow.setNoGravity(true);
134-
nmsWorld.addFreshEntity(nmsArrow);
135-
arrow = (Arrow) nmsArrow.getBukkitEntity();
136-
} catch (Exception e) {
137-
throw new ArrowLaunchException("Something went wrong when trying to launch an arrow", e);
138-
}
139-
127+
private Arrow launchArrow(@NotNull Player player, ItemStack item) {
128+
Arrow arrow = player.launchProjectile(Arrow.class);
140129
arrow.setShooter(player);
130+
arrow.setGravity(false);
141131
Location offset = player.getLocation().add(player.getLocation().getDirection().multiply(4));
142132
arrow.setVelocity(offset.getDirection().multiply(Config.ArrowVelocity));
143-
arrow.setBounce(false);
144133
arrow.setMetadata("isTurretBullet", new FixedMetadataValue(TurretsMain.getInstance(), true));
145134
arrow.setKnockbackStrength(Config.KnockbackStrength);
146-
double rand = Math.random();
147-
if (rand <= Config.IncindiaryChance)
135+
if (Math.random() <= Config.IncindiaryChance)
148136
arrow.setFireTicks(500);
149-
150137
return arrow;
151138
}
152139

@@ -157,7 +144,7 @@ private boolean takeAmmo(Player player) {
157144
Block adjacentBlock = getBlockSignAttachedTo(signBlock);
158145
if (adjacentBlock instanceof InventoryHolder) {
159146
Inventory i = ((InventoryHolder) adjacentBlock.getState()).getInventory();
160-
if (i.containsAtLeast(new ItemStack(Config.TurretAmmo), 1)) {
147+
if (i.containsAtLeast(Config.TurretAmmo, 1)) {
161148
i.remove(Config.TurretAmmo);
162149
return true;
163150
}

src/main/java/com/snowleopard1863/APTurrets/listener/PlayerInteractListener.java

Lines changed: 29 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -18,87 +18,77 @@
1818

1919
public class PlayerInteractListener implements Listener {
2020
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = false)
21-
public void onClick(PlayerInteractEvent event) {
22-
switch (event.getAction()) {
23-
case RIGHT_CLICK_AIR:
24-
rightClick(event);
25-
break;
26-
case RIGHT_CLICK_BLOCK:
27-
rightClickBlock(event);
28-
break;
29-
case LEFT_CLICK_BLOCK:
30-
leftClickBlock(event);
31-
break;
32-
case LEFT_CLICK_AIR:
33-
case PHYSICAL:
34-
default:
35-
break;
36-
}
21+
public void onClick(@NotNull PlayerInteractEvent event) {
22+
event.setCancelled(switch (event.getAction()) {
23+
case RIGHT_CLICK_AIR -> rightClick(event);
24+
case RIGHT_CLICK_BLOCK -> rightClickBlock(event);
25+
case LEFT_CLICK_BLOCK -> leftClickBlock(event);
26+
default -> false;
27+
});
3728
}
3829

39-
private void leftClickBlock(@NotNull PlayerInteractEvent event) {
40-
if (event.getPlayer().getInventory().getItemInMainHand().getType() != Material.STONE_BUTTON)
41-
return;
42-
30+
private boolean leftClickBlock(@NotNull PlayerInteractEvent event) {
4331
Material type = event.getClickedBlock().getType();
44-
if(!Tag.SIGNS.isTagged(type))
45-
return;
32+
if (!Tag.SIGNS.isTagged(type))
33+
return false;
4634

4735
Sign sign = (Sign) event.getClickedBlock().getState();
4836
if (!sign.getLine(0).equalsIgnoreCase("Mounted") || !sign.getLine(1).equalsIgnoreCase("Gun"))
49-
return;
50-
51-
// If a player left clicks the mounted gun with a stone button in hand,
52-
// show them the statistics for the plugin (Damage, Knockback, Velocity, etc.)
37+
return false;
38+
39+
if (event.getPlayer().getInventory().getItemInMainHand().getType() != Material.STONE_BUTTON)
40+
return true;
41+
42+
// If a player left-clicks the mounted gun with a stone button in hand, show them the statistics for the plugin (Damage, Knockback, Velocity, etc.)
5343
event.getPlayer().sendMessage("\n"
5444
+ ChatColor.GOLD + "Damage/Shot: " + ChatColor.GRAY + Config.Damage + "\n"
5545
+ ChatColor.GOLD + "Delay Between Shots: " + ChatColor.GRAY + Config.DelayBetweenShots + "\n"
5646
+ ChatColor.GOLD + "Velocity: " + ChatColor.GRAY + Config.ArrowVelocity + "\n"
5747
+ ChatColor.GOLD + "Fire Chance: " + ChatColor.GRAY + Config.IncindiaryChance * 100.0D + "%\n"
5848
+ ChatColor.GOLD + "Knockback: " + ChatColor.GRAY + Config.KnockbackStrength + "\n"
5949
+ ChatColor.GOLD + "Cost to Place: $" + ChatColor.GRAY + Config.CostToPlace);
60-
event.setCancelled(true);
50+
return true;
6151
}
6252

63-
private void rightClickBlock(@NotNull PlayerInteractEvent event) {
53+
private boolean rightClickBlock(@NotNull PlayerInteractEvent event) {
6454
Material type = event.getClickedBlock().getType();
65-
if(!Tag.SIGNS.isTagged(type))
66-
return;
55+
if (!Tag.SIGNS.isTagged(type))
56+
return false;
6757

6858
Sign sign = (Sign) event.getClickedBlock().getState();
6959
if (!sign.getLine(0).equalsIgnoreCase("Mounted") || !sign.getLine(1).equalsIgnoreCase("Gun"))
70-
return;
60+
return false;
7161

7262
if (event.getClickedBlock().getRelative(BlockFace.DOWN).getType() == Material.SLIME_BLOCK)
73-
return;
63+
return true;
7464

7565
Location signPos = event.getClickedBlock().getLocation();
7666
signPos.setPitch(event.getPlayer().getLocation().getPitch());
7767
signPos.setDirection(event.getPlayer().getVelocity());
7868
TurretsMain.getInstance().getTurretManager().mount(event.getPlayer(), signPos);
69+
return true;
7970
}
8071

81-
private void rightClick(PlayerInteractEvent event) {
72+
private boolean rightClick(@NotNull PlayerInteractEvent event) {
8273
Player player = event.getPlayer();
8374
if (!TurretsMain.getInstance().getTurretManager().isOnTurret(player) || !player.hasPermission("ap-turrets.use"))
84-
return;
75+
return false;
8576

8677
if (player.getInventory().getItemInMainHand().getType() == Material.MILK_BUCKET
8778
|| player.getInventory().getItemInOffHand().getType() == Material.MILK_BUCKET) {
8879
// If the player tries to use milk to clear the effects, cancel the event to keep that from happening
89-
event.setCancelled(true);
90-
return;
80+
return true;
9181
}
9282

9383
if (player.getInventory().getItemInMainHand().getType() != Material.STONE_BUTTON
9484
&& player.getInventory().getItemInOffHand().getType() != Material.STONE_BUTTON)
95-
return;
85+
return false;
9686

9787
if (TurretsMain.getInstance().getTurretManager().isReloading(player))
98-
return;
88+
return false;
9989

10090
// Fires the turret and keeps them from interacting with something else and placing the button accidentally
10191
TurretsMain.getInstance().getTurretManager().fire(player);
102-
event.setCancelled(true);
92+
return true;
10393
}
10494
}

0 commit comments

Comments
 (0)