Skip to content

Commit 9116573

Browse files
committed
Bump paper-api to 1.20.4-R0.1-SNAPSHOT
1 parent 53b8e7b commit 9116573

File tree

3 files changed

+70
-82
lines changed

3 files changed

+70
-82
lines changed

build.gradle

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
group = "moe.minacle.minecraft"
7-
version = "0.2.0"
7+
version = "0.2.1"
88

99
repositories {
1010
mavenCentral()
@@ -19,37 +19,27 @@ repositories {
1919
}
2020

2121
dependencies {
22-
compileOnly "io.papermc.paper:paper-api:1.20.2-R0.1-SNAPSHOT"
22+
compileOnly "io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT"
2323
compileOnly "org.jetbrains:annotations:24.1.0"
2424
}
2525

26-
def targetJavaVersion = 17
2726
java {
28-
def javaVersion = JavaVersion.toVersion(targetJavaVersion)
29-
sourceCompatibility = javaVersion
30-
targetCompatibility = javaVersion
31-
if (JavaVersion.current() < javaVersion) {
32-
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
33-
}
34-
}
35-
36-
tasks.withType(JavaCompile).configureEach {
37-
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
38-
options.release = targetJavaVersion
27+
toolchain {
28+
languageVersion = JavaLanguageVersion.of(17)
3929
}
4030
}
4131

4232
processResources {
4333
def props = [version: version]
4434
inputs.properties props
4535
filteringCharset "UTF-8"
46-
filesMatching("plugin.yml") {
36+
filesMatching("paper-plugin.yml") {
4737
expand props
4838
}
4939
}
5040

5141
tasks {
5242
runServer {
53-
minecraftVersion "1.20.2"
43+
minecraftVersion "1.20.4"
5444
}
5545
}

src/main/java/moe/minacle/minecraft/plugins/hameln/Plugin.java

Lines changed: 63 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,69 @@ public final class Plugin extends JavaPlugin implements Listener {
5353
return tridentSlotMap;
5454
}
5555

56+
@EventHandler
57+
private void onEntityRemoveFromWorld(final @NotNull EntityRemoveFromWorldEvent event) {
58+
final Entity entity = event.getEntity();
59+
if (entity instanceof final Trident trident)
60+
if (trident.getShooter() instanceof final Player player) {
61+
final Set<Pair<UUID, EquipmentSlot>> tridentSlotPairSet = getTridentSlotPairSet(player.getUniqueId(), false);
62+
final UUID tridentUUID;
63+
if (tridentSlotPairSet == null || tridentSlotPairSet.isEmpty())
64+
return;
65+
tridentUUID = trident.getUniqueId();
66+
for (final Pair<UUID, EquipmentSlot> tridentSlotPair : tridentSlotPairSet)
67+
if (tridentSlotPair.getLeft().equals(tridentUUID)) {
68+
tridentSlotPairSet.remove(tridentSlotPair);
69+
return;
70+
}
71+
}
72+
}
73+
74+
@EventHandler
75+
@SuppressWarnings("deprecation") // org.bukkit.event.player.PlayerPickupArrowEvent#setCancelled is not deprecated actually
76+
private void onPlayerPickupArrow(final @NotNull PlayerPickupArrowEvent event) {
77+
final AbstractArrow arrow = event.getArrow();
78+
if (arrow instanceof final Trident trident)
79+
if (trident.getShooter() instanceof final Player player) {
80+
final ItemStack tridentItem = trident.getItem();
81+
final PlayerInventory playerInventory = player.getInventory();
82+
final Set<Pair<UUID, EquipmentSlot>> tridentSlotPairSet = getTridentSlotPairSet(player.getUniqueId(), false);
83+
final UUID tridentUUID;
84+
if (tridentSlotPairSet == null || tridentSlotPairSet.isEmpty())
85+
return;
86+
tridentUUID = trident.getUniqueId();
87+
for (final Pair<UUID, EquipmentSlot> tridentSlotPair : tridentSlotPairSet)
88+
if (tridentSlotPair.getLeft().equals(tridentUUID)) {
89+
final EquipmentSlot equipmentSlot = tridentSlotPair.getRight();
90+
if (playerInventory.getItem(equipmentSlot).getType() == Material.AIR) {
91+
final float itemPickupSoundPitch =
92+
// stolen from net.minecraft.client.multiplayer.ClientPacketListener#handleTakeItemEntity
93+
(randomGenerator.nextFloat() - randomGenerator.nextFloat()) * 1.4f + 2f;
94+
final Location tridentLocation = trident.getLocation();
95+
event.setCancelled(true);
96+
playerInventory.setItem(equipmentSlot, tridentItem);
97+
player.getWorld().playSound(tridentLocation, Sound.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, .2f, itemPickupSoundPitch);
98+
}
99+
trident.remove();
100+
return;
101+
}
102+
}
103+
}
104+
105+
@EventHandler
106+
private void onProjectileLaunch(final @NotNull ProjectileLaunchEvent event) {
107+
if (event.getEntity() instanceof final Trident trident)
108+
if (trident.getShooter() instanceof final Player player) {
109+
final PlayerInventory playerInventory = player.getInventory();
110+
final ItemStack tridentItem = trident.getItem();
111+
final Set<Pair<UUID, EquipmentSlot>> tridentSlotPairSet = getTridentSlotPairSet(player.getUniqueId(), true);
112+
if (tridentItem.equals(playerInventory.getItemInMainHand()))
113+
tridentSlotPairSet.add(Pair.of(trident.getUniqueId(), EquipmentSlot.HAND));
114+
else if (tridentItem.equals(playerInventory.getItemInOffHand()))
115+
tridentSlotPairSet.add(Pair.of(trident.getUniqueId(), EquipmentSlot.OFF_HAND));
116+
}
117+
}
118+
56119
private void sync(final @NotNull UUID playerUUID) {
57120
final File playerFile;
58121
final String playerUUIDString;
@@ -167,69 +230,4 @@ public void onDisable() {
167230
randomGenerator = null;
168231
varFolder = null;
169232
}
170-
171-
// MARK: Listener
172-
173-
@EventHandler
174-
public void onEntityRemoveFromWorld(final @NotNull EntityRemoveFromWorldEvent event) {
175-
final Entity entity = event.getEntity();
176-
if (entity instanceof final Trident trident)
177-
if (trident.getShooter() instanceof final Player player) {
178-
final Set<Pair<UUID, EquipmentSlot>> tridentSlotPairSet = getTridentSlotPairSet(player.getUniqueId(), false);
179-
final UUID tridentUUID;
180-
if (tridentSlotPairSet == null || tridentSlotPairSet.isEmpty())
181-
return;
182-
tridentUUID = trident.getUniqueId();
183-
for (final Pair<UUID, EquipmentSlot> tridentSlotPair : tridentSlotPairSet)
184-
if (tridentSlotPair.getLeft().equals(tridentUUID)) {
185-
tridentSlotPairSet.remove(tridentSlotPair);
186-
return;
187-
}
188-
}
189-
}
190-
191-
@EventHandler
192-
@SuppressWarnings("deprecation") // org.bukkit.event.player.PlayerPickupArrowEvent#setCancelled is not deprecated actually
193-
public void onPlayerPickupArrow(final @NotNull PlayerPickupArrowEvent event) {
194-
final AbstractArrow arrow = event.getArrow();
195-
if (arrow instanceof final Trident trident)
196-
if (trident.getShooter() instanceof final Player player) {
197-
final ItemStack tridentItem = trident.getItem();
198-
final PlayerInventory playerInventory = player.getInventory();
199-
final Set<Pair<UUID, EquipmentSlot>> tridentSlotPairSet = getTridentSlotPairSet(player.getUniqueId(), false);
200-
final UUID tridentUUID;
201-
if (tridentSlotPairSet == null || tridentSlotPairSet.isEmpty())
202-
return;
203-
tridentUUID = trident.getUniqueId();
204-
for (final Pair<UUID, EquipmentSlot> tridentSlotPair : tridentSlotPairSet)
205-
if (tridentSlotPair.getLeft().equals(tridentUUID)) {
206-
final EquipmentSlot equipmentSlot = tridentSlotPair.getRight();
207-
if (playerInventory.getItem(equipmentSlot).getType() == Material.AIR) {
208-
final float itemPickupSoundPitch =
209-
// stolen from net.minecraft.client.multiplayer.ClientPacketListener#handleTakeItemEntity
210-
(randomGenerator.nextFloat() - randomGenerator.nextFloat()) * 1.4f + 2f;
211-
final Location tridentLocation = trident.getLocation();
212-
event.setCancelled(true);
213-
playerInventory.setItem(equipmentSlot, tridentItem);
214-
player.getWorld().playSound(tridentLocation, Sound.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, .2f, itemPickupSoundPitch);
215-
}
216-
trident.remove();
217-
return;
218-
}
219-
}
220-
}
221-
222-
@EventHandler
223-
public void onProjectileLaunch(final @NotNull ProjectileLaunchEvent event) {
224-
if (event.getEntity() instanceof final Trident trident)
225-
if (trident.getShooter() instanceof final Player player) {
226-
final PlayerInventory playerInventory = player.getInventory();
227-
final ItemStack tridentItem = trident.getItem();
228-
final Set<Pair<UUID, EquipmentSlot>> tridentSlotPairSet = getTridentSlotPairSet(player.getUniqueId(), true);
229-
if (tridentItem.equals(playerInventory.getItemInMainHand()))
230-
tridentSlotPairSet.add(Pair.of(trident.getUniqueId(), EquipmentSlot.HAND));
231-
else if (tridentItem.equals(playerInventory.getItemInOffHand()))
232-
tridentSlotPairSet.add(Pair.of(trident.getUniqueId(), EquipmentSlot.OFF_HAND));
233-
}
234-
}
235233
}

src/main/resources/plugin.yml renamed to src/main/resources/paper-plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ main: moe.minacle.minecraft.plugins.hameln.Plugin
44
description: Master the art of trident throwing with precision returns to your waiting hand!
55
authors:
66
- Minacle
7-
website: https://github.com/minacle/hameln
7+
website: https://modrinth.com/plugin/hameln
88
api-version: "1.20"
99
folia-supported: true

0 commit comments

Comments
 (0)