From ccaefbbac767404fd92e92553dd8af0b768832f4 Mon Sep 17 00:00:00 2001 From: PretzelJohn <58197328+PretzelJohn@users.noreply.github.com> Date: Sun, 3 Jul 2022 15:15:14 -0400 Subject: [PATCH] Version 1.5.8: * Added config option to disable VTL (leaving vanilla trading) in certain worlds --- dependency-reduced-pom.xml | 98 +++++++++++++++++++ pom.xml | 2 +- .../listeners/PlayerListener.java | 20 +++- src/main/resources/config.yml | 5 + src/main/resources/messages.yml | 1 + src/main/resources/plugin.yml | 2 +- 6 files changed, 122 insertions(+), 6 deletions(-) create mode 100644 dependency-reduced-pom.xml diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml new file mode 100644 index 0000000..6ad534d --- /dev/null +++ b/dependency-reduced-pom.xml @@ -0,0 +1,98 @@ + + + 4.0.0 + com.pretzel.dev + VillagerTradeLimiter + 1.5.8 + + src + + + maven-compiler-plugin + 3.8.1 + + ${java.version} + ${java.version} + + + + maven-shade-plugin + 3.2.1 + + + shade + package + + shade + + + + + + + de.tr7zw.changeme.nbtapi + com.pretzel.dev.villagertradelimiter.nms + + + + + + + + + spigotmc-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + + + + + org.spigotmc + spigot-api + 1.19-R0.1-SNAPSHOT + provided + + + guava + com.google.guava + + + gson + com.google.code.gson + + + bungeecord-chat + net.md-5 + + + snakeyaml + org.yaml + + + + + mysql + mysql-connector-java + 8.0.29 + provided + + + protobuf-java + com.google.protobuf + + + + + org.xerial + sqlite-jdbc + 3.36.0.3 + provided + + + + 1.8 + + diff --git a/pom.xml b/pom.xml index c3e4a26..2f04d3a 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.pretzel.dev VillagerTradeLimiter - 1.5.7 + 1.5.8 1.8 diff --git a/src/com/pretzel/dev/villagertradelimiter/listeners/PlayerListener.java b/src/com/pretzel/dev/villagertradelimiter/listeners/PlayerListener.java index ba32007..a8b1367 100644 --- a/src/com/pretzel/dev/villagertradelimiter/listeners/PlayerListener.java +++ b/src/com/pretzel/dev/villagertradelimiter/listeners/PlayerListener.java @@ -3,6 +3,7 @@ package com.pretzel.dev.villagertradelimiter.listeners; import com.pretzel.dev.villagertradelimiter.VillagerTradeLimiter; import com.pretzel.dev.villagertradelimiter.data.Cooldown; import com.pretzel.dev.villagertradelimiter.data.PlayerData; +import com.pretzel.dev.villagertradelimiter.lib.Util; import com.pretzel.dev.villagertradelimiter.settings.Settings; import com.pretzel.dev.villagertradelimiter.wrappers.*; import org.bukkit.Material; @@ -13,6 +14,7 @@ import org.bukkit.entity.Villager; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; @@ -42,11 +44,15 @@ public class PlayerListener implements Listener { final Player player = event.getPlayer(); final Villager villager = (Villager)event.getRightClicked(); + //Skips when the villager is in a disabled world + if(instance.getCfg().getStringList("DisableWorlds").contains(villager.getWorld().getName())) return; + //Skips when player is holding an ignored item - Material heldItemType = player.getInventory().getItem(event.getHand()).getType(); - for(String ignoredType : instance.getCfg().getStringList("IgnoreHeldItems")) { - if(heldItemType.equals(Material.matchMaterial(ignoredType))) { - return; + ItemStack heldItem = player.getInventory().getItem(event.getHand()); + if(heldItem != null) { + Material heldItemType = heldItem.getType(); + for(String ignoredType : instance.getCfg().getStringList("IgnoreHeldItems")) { + if(heldItemType.equals(Material.matchMaterial(ignoredType))) return; } } if(settings.shouldSkipNPC(event.getPlayer()) || settings.shouldSkipNPC(villager)) return; //Skips NPCs @@ -90,6 +96,12 @@ public class PlayerListener implements Listener { * @param other The other player to view trades for, or the player that has just begun trading */ public void see(final Villager villager, final Player player, final OfflinePlayer other) { + //Skips when the villager is in a disabled world + if(instance.getCfg().getStringList("DisableWorlds").contains(villager.getWorld().getName())) { + Util.sendMsg(instance.getLang("see.noworld"), player); + return; + } + //Wraps the villager and player into wrapper classes final VillagerWrapper villagerWrapper = new VillagerWrapper(villager); final PlayerWrapper otherWrapper = new PlayerWrapper(other); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 7c7d687..453eed6 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -19,6 +19,11 @@ database: encoding: utf8 useSSL: false +# Add world names for worlds that you want to have unaltered, vanilla villager trading in. Set to [] to disable this feature. +DisableWorlds: +- world_nether +- world_the_end + # Ignore Citizens NPCs, and/or Shopkeepers NPCs if true IgnoreCitizens: true IgnoreShopkeepers: true diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml index d0c2a9f..5e8e338 100644 --- a/src/main/resources/messages.yml +++ b/src/main/resources/messages.yml @@ -16,4 +16,5 @@ see: success: "&aShowing the adjusted trades for &b{player}&a..." noplayer: "&cInvalid player &b{player}&c! Please use a valid player's name." novillager: "&cInvalid entity! Please look at the villager you want to check." + noworld: "&cVTL is disabled in this world!" diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 3966727..b13f81c 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: VillagerTradeLimiter author: PretzelJohn main: com.pretzel.dev.villagertradelimiter.VillagerTradeLimiter -version: 1.5.7 +version: 1.5.8 api-version: 1.14 commands: