9
0
mirror of https://github.com/Xiao-MoMi/Custom-Fishing.git synced 2026-01-03 22:26:15 +00:00
This commit is contained in:
XiaoMoMi
2024-10-18 01:06:21 +08:00
parent 6eb9306115
commit 5ee89b98f9
4 changed files with 44 additions and 8 deletions

View File

@@ -35,10 +35,7 @@ import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.entity.Entity;
import org.bukkit.entity.FishHook;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.HandlerList;
@@ -80,7 +77,15 @@ public class BukkitFishingManager implements FishingManager, Listener {
@Override
public Optional<CustomFishingHook> getFishHook(UUID player) {
return Optional.ofNullable(castHooks.get(player));
CustomFishingHook hook = castHooks.get(player);
if (hook != null) {
if (hook.isHookValid()) {
return Optional.of(hook);
} else {
return Optional.empty();
}
}
return Optional.empty();
}
@Override
@@ -350,6 +355,24 @@ public class BukkitFishingManager implements FishingManager, Listener {
});
}
@EventHandler(priority = EventPriority.LOW)
public void onInteractEntity(PlayerInteractAtEntityEvent event) {
Entity entity = event.getRightClicked();
if (entity.getType() != EntityType.ARMOR_STAND) return;
if (entity.getPersistentDataContainer().has(Objects.requireNonNull(NamespacedKey.fromString("temp-entity", BukkitCustomFishingPlugin.getInstance().getBootstrap())))) {
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.LOW)
public void onInteractEntity(PlayerInteractEntityEvent event) {
Entity entity = event.getRightClicked();
if (entity.getType() != EntityType.ARMOR_STAND) return;
if (entity.getPersistentDataContainer().has(Objects.requireNonNull(NamespacedKey.fromString("temp-entity", BukkitCustomFishingPlugin.getInstance().getBootstrap())))) {
event.setCancelled(true);
}
}
@Override
public void destroyHook(UUID uuid) {
this.getFishHook(uuid).ifPresent(hook -> {

View File

@@ -173,7 +173,7 @@ public class BukkitLootManager implements LootManager {
plugin.debug(lootWeightMap);
String lootID = WeightUtils.getRandom(lootWeightMap);
return Optional.ofNullable(lootID)
.map(id -> getLoot(lootID).orElseThrow(() -> new RuntimeException("Could not find loot " + lootID)))
.map(id -> getLoot(lootID).orElseThrow(() -> new NullPointerException("Could not find loot " + lootID)))
.orElse(null);
}