diff --git a/src/com/dre/brewery/P.java b/src/com/dre/brewery/P.java index 9bdf5c4..3b01bc2 100644 --- a/src/com/dre/brewery/P.java +++ b/src/com/dre/brewery/P.java @@ -185,6 +185,7 @@ public class P extends JavaPlugin { Brew.colorInBrewer = config.getBoolean("colorInBrewer", false); Words.log = config.getBoolean("logRealChat", false); Words.commands = config.getStringList("distortCommands"); + Words.doSigns = config.getBoolean("distortSignText"); // loading recipes ConfigurationSection configSection = config.getConfigurationSection("recipes"); diff --git a/src/com/dre/brewery/Words.java b/src/com/dre/brewery/Words.java index 9a7a989..35d65fc 100644 --- a/src/com/dre/brewery/Words.java +++ b/src/com/dre/brewery/Words.java @@ -9,6 +9,7 @@ import java.lang.Character; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.block.SignChangeEvent; import com.dre.brewery.BPlayer; @@ -19,6 +20,7 @@ public class Words { public static ArrayList words = new ArrayList(); public static List commands; public static FileConfiguration config; + public static Boolean doSigns; public static Boolean log; private static Map waitPlayers = new HashMap(); @@ -106,6 +108,30 @@ public class Words { } } + // Distort players words when he uses a command + public static void signWrite(SignChangeEvent event) { + BPlayer bPlayer = BPlayer.get(event.getPlayer().getName()); + if (bPlayer != null) { + if (loadWords()) { + int index = 0; + for (String message : event.getLines()) { + if (message.length() > 1) { + for (Words word : words) { + if (word.alcohol <= bPlayer.getDrunkeness()) { + message = word.distort(message); + } + } + if (message.length() > 15) { + message = message.substring(0, 14); + } + event.setLine(index, message); + } + index++; + } + } + } + } + // Distort players words when he talks public static void playerChat(AsyncPlayerChatEvent event) { BPlayer bPlayer = BPlayer.get(event.getPlayer().getName()); diff --git a/src/com/dre/brewery/listeners/BlockListener.java b/src/com/dre/brewery/listeners/BlockListener.java index 3898ce3..9581c9c 100644 --- a/src/com/dre/brewery/listeners/BlockListener.java +++ b/src/com/dre/brewery/listeners/BlockListener.java @@ -10,6 +10,8 @@ import org.bukkit.block.Block; import com.dre.brewery.BCauldron; import com.dre.brewery.Barrel; +import com.dre.brewery.BPlayer; +import com.dre.brewery.Words; import com.dre.brewery.P; public class BlockListener implements Listener { @@ -25,6 +27,15 @@ public class BlockListener implements Listener { } } + @EventHandler(priority = EventPriority.LOWEST) + public void onSignChangeLow(SignChangeEvent event) { + if (Words.doSigns) { + if (BPlayer.players.containsKey(event.getPlayer().getName())) { + Words.signWrite(event); + } + } + } + @EventHandler(priority = EventPriority.HIGH) public void onBlockBreak(BlockBreakEvent event) { Block block = event.getBlock();