misc cleanup

This commit is contained in:
hyperdefined
2025-01-25 17:39:01 -05:00
parent b14427ced2
commit b8ac32f9b4
8 changed files with 93 additions and 105 deletions

View File

@@ -137,6 +137,11 @@ public class CommandToolStats implements TabExecutor {
sender.sendMessage(Component.text("Invalid token type.", NamedTextColor.RED)); sender.sendMessage(Component.text("Invalid token type.", NamedTextColor.RED));
return true; return true;
} }
// make sure tokens are enabled before giving
if (!toolStats.config.getBoolean("tokens.enabled")) {
sender.sendMessage(Component.text("Unable to give tokens. Tokens are disabled", NamedTextColor.RED));
return true;
}
// if the user does not send in a number, default to 1 // if the user does not send in a number, default to 1
int amount = 1; int amount = 1;
if (args.length >= 4) { if (args.length >= 4) {

View File

@@ -40,6 +40,10 @@ public class AnvilEvent implements Listener {
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
public void onAnvilEvent(PrepareAnvilEvent event) { public void onAnvilEvent(PrepareAnvilEvent event) {
// only listen if the token system is enabled
if (!toolStats.config.getBoolean("tokens.enabled")) {
return;
}
AnvilInventory inventory = event.getInventory(); AnvilInventory inventory = event.getInventory();
ItemStack firstSlot = inventory.getItem(0); ItemStack firstSlot = inventory.getItem(0);
@@ -58,7 +62,6 @@ public class AnvilEvent implements Listener {
return; return;
} }
PersistentDataContainer firstSlotContainer = firstSlot.getItemMeta().getPersistentDataContainer();
PersistentDataContainer secondSlotContainer = secondSlot.getItemMeta().getPersistentDataContainer(); PersistentDataContainer secondSlotContainer = secondSlot.getItemMeta().getPersistentDataContainer();
// make sure the 2nd item is one of ours // make sure the 2nd item is one of ours

View File

@@ -19,7 +19,6 @@ package lol.hyper.toolstats.events;
import lol.hyper.toolstats.ToolStats; import lol.hyper.toolstats.ToolStats;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.Arrow; import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -112,19 +111,7 @@ public class EntityDamage implements Listener {
return; return;
} }
PlayerInventory shootingPlayerInventory = shootingPlayer.getInventory(); PlayerInventory shootingPlayerInventory = shootingPlayer.getInventory();
ItemStack main = shootingPlayerInventory.getItemInMainHand(); ItemStack heldBow = toolStats.itemChecker.getBow(shootingPlayerInventory);
ItemStack offHand = shootingPlayerInventory.getItemInOffHand();
boolean isMain = main.getType() == Material.BOW || main.getType() == Material.CROSSBOW;
boolean isOffHand = offHand.getType() == Material.BOW || offHand.getType() == Material.CROSSBOW;
ItemStack heldBow = null;
if (isMain) {
heldBow = main;
}
if (isOffHand) {
heldBow = offHand;
}
// player swapped
if (heldBow == null) { if (heldBow == null) {
return; return;
} }

View File

@@ -33,7 +33,6 @@ import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType; import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.Nullable;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@@ -61,7 +60,7 @@ public class PlayerFish implements Listener {
return; return;
} }
ItemStack fishingRod = getFishingRod(player.getInventory()); ItemStack fishingRod = toolStats.itemChecker.getFishingRod(player.getInventory());
// player swapped items? // player swapped items?
if (fishingRod == null) { if (fishingRod == null) {
return; return;
@@ -95,32 +94,6 @@ public class PlayerFish implements Listener {
} }
} }
/**
* Get the player's fishing rod.
*
* @param inventory Their inventory.
* @return Their fishing rod, either main or offhand.
*/
private static @Nullable ItemStack getFishingRod(PlayerInventory inventory) {
ItemStack main = inventory.getItemInMainHand();
ItemStack offHand = inventory.getItemInOffHand();
boolean isMain = main.getType() == Material.FISHING_ROD;
boolean isOffHand = offHand.getType() == Material.FISHING_ROD;
// if the player is holding a fishing rod in their main hand, use that one
// if the fishing rod is in their offhand instead, use that one after checking main hand
// Minecraft prioritizes main hand if the player holds in both hands
if (isMain) {
return main;
}
if (isOffHand) {
return offHand;
}
return null;
}
/** /**
* Add lore to newly caught item. * Add lore to newly caught item.
* *

View File

@@ -29,7 +29,6 @@ import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.PlayerInventory;
import org.jetbrains.annotations.Nullable;
public class SheepShear implements Listener { public class SheepShear implements Listener {
@@ -53,7 +52,7 @@ public class SheepShear implements Listener {
return; return;
} }
ItemStack heldShears = getShears(player.getInventory()); ItemStack heldShears = toolStats.itemChecker.getShears(player.getInventory());
// player swapped or we can't get the shears // player swapped or we can't get the shears
if (heldShears == null) { if (heldShears == null) {
return; return;
@@ -78,30 +77,4 @@ public class SheepShear implements Listener {
} }
} }
} }
/**
* Get the player's shears.
*
* @param inventory Their inventory.
* @return Their shears, either main or offhand.
*/
private static @Nullable ItemStack getShears(PlayerInventory inventory) {
ItemStack main = inventory.getItemInMainHand();
ItemStack offHand = inventory.getItemInOffHand();
boolean isMain = main.getType() == Material.SHEARS;
boolean isOffHand = offHand.getType() == Material.SHEARS;
// if the player is holding shears in their main hand, use that one
// if the shears are in their offhand instead, use that one after checking main hand
// Minecraft prioritizes main hand if the player holds in both hands
if (isMain) {
return main;
}
if (isOffHand) {
return offHand;
}
return null;
}
} }

View File

@@ -18,7 +18,6 @@
package lol.hyper.toolstats.events; package lol.hyper.toolstats.events;
import lol.hyper.toolstats.ToolStats; import lol.hyper.toolstats.ToolStats;
import net.kyori.adventure.text.Component;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
@@ -29,13 +28,8 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityShootBowEvent; import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public class ShootBow implements Listener { public class ShootBow implements Listener {
private final ToolStats toolStats; private final ToolStats toolStats;
@@ -56,7 +50,7 @@ public class ShootBow implements Listener {
return; return;
} }
ItemStack heldBow = getBow(player.getInventory()); ItemStack heldBow = toolStats.itemChecker.getBow(player.getInventory());
// player swapped or we can't get the bow // player swapped or we can't get the bow
if (heldBow == null) { if (heldBow == null) {
return; return;
@@ -75,30 +69,4 @@ public class ShootBow implements Listener {
} }
} }
} }
/**
* Get the player's bow/crossbow.
*
* @param inventory Their inventory.
* @return Their bow/crossbow, either main or offhand.
*/
private static @Nullable ItemStack getBow(PlayerInventory inventory) {
ItemStack main = inventory.getItemInMainHand();
ItemStack offHand = inventory.getItemInOffHand();
boolean isMain = main.getType() == Material.BOW || main.getType() == Material.CROSSBOW;
boolean isOffHand = offHand.getType() == Material.BOW || offHand.getType() == Material.CROSSBOW;
// if the player is holding a bow in their main hand, use that one
// if the bow is in their offhand instead, use that one after checking main hand
// Minecraft prioritizes main hand if the player holds in both hands
if (isMain) {
return main;
}
if (isOffHand) {
return offHand;
}
return null;
}
} }

View File

@@ -20,9 +20,11 @@ package lol.hyper.toolstats.tools;
import lol.hyper.toolstats.ToolStats; import lol.hyper.toolstats.ToolStats;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType; import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -200,4 +202,82 @@ public class ItemChecker {
public int getCost(String tokenType) { public int getCost(String tokenType) {
return toolStats.config.getInt("tokens.data." + tokenType + ".levels"); return toolStats.config.getInt("tokens.data." + tokenType + ".levels");
} }
/**
* Get the player's bow/crossbow.
*
* @param inventory Their inventory.
* @return Their bow/crossbow, either main or offhand.
*/
public @Nullable ItemStack getBow(PlayerInventory inventory) {
ItemStack main = inventory.getItemInMainHand();
ItemStack offHand = inventory.getItemInOffHand();
boolean isMain = main.getType() == Material.BOW || main.getType() == Material.CROSSBOW;
boolean isOffHand = offHand.getType() == Material.BOW || offHand.getType() == Material.CROSSBOW;
// if the player is holding a bow in their main hand, use that one
// if the bow is in their offhand instead, use that one after checking main hand
// Minecraft prioritizes main hand if the player holds in both hands
if (isMain) {
return main;
}
if (isOffHand) {
return offHand;
}
return null;
}
/**
* Get the player's shears.
*
* @param inventory Their inventory.
* @return Their shears, either main or offhand.
*/
public @Nullable ItemStack getShears(PlayerInventory inventory) {
ItemStack main = inventory.getItemInMainHand();
ItemStack offHand = inventory.getItemInOffHand();
boolean isMain = main.getType() == Material.SHEARS;
boolean isOffHand = offHand.getType() == Material.SHEARS;
// if the player is holding shears in their main hand, use that one
// if the shears are in their offhand instead, use that one after checking main hand
// Minecraft prioritizes main hand if the player holds in both hands
if (isMain) {
return main;
}
if (isOffHand) {
return offHand;
}
return null;
}
/**
* Get the player's fishing rod.
*
* @param inventory Their inventory.
* @return Their fishing rod, either main or offhand.
*/
public @Nullable ItemStack getFishingRod(PlayerInventory inventory) {
ItemStack main = inventory.getItemInMainHand();
ItemStack offHand = inventory.getItemInOffHand();
boolean isMain = main.getType() == Material.FISHING_ROD;
boolean isOffHand = offHand.getType() == Material.FISHING_ROD;
// if the player is holding a fishing rod in their main hand, use that one
// if the fishing rod is in their offhand instead, use that one after checking main hand
// Minecraft prioritizes main hand if the player holds in both hands
if (isMain) {
return main;
}
if (isOffHand) {
return offHand;
}
return null;
}
} }

View File

@@ -20,7 +20,6 @@ package lol.hyper.toolstats.tools.config;
import lol.hyper.toolstats.ToolStats; import lol.hyper.toolstats.ToolStats;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataContainer;