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}
+
+
+
+ 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: