BlackBeltPanda

signfix

Jun 15th, 2015
476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. package com.samistine.samistinesignfix;
  2.  
  3. import java.util.Arrays;
  4. import java.util.logging.Level;
  5.  
  6. import org.bukkit.block.Block;
  7. import org.bukkit.block.BlockState;
  8. import org.bukkit.block.Sign;
  9. import org.bukkit.event.EventHandler;
  10. import org.bukkit.event.EventPriority;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.block.SignChangeEvent;
  13. import org.bukkit.event.world.ChunkLoadEvent;
  14. import org.bukkit.plugin.java.JavaPlugin;
  15.  
  16. public class SamistineSignFix extends JavaPlugin implements Listener {
  17.  
  18. @Override
  19. public void onEnable() {
  20. getServer().getPluginManager().registerEvents(this, this);
  21. }
  22.  
  23. @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
  24. public void onChunkLoad(ChunkLoadEvent e) {
  25. for (BlockState state : e.getChunk().getTileEntities()){
  26. if (state instanceof Sign) {
  27. final Sign sign = (Sign) state;
  28. if (sign.getLines().length() > 100) {
  29. getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
  30. public void run() {
  31. editSign(sign);
  32. }
  33. });
  34. }
  35. }
  36. }
  37. }
  38.  
  39. @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
  40. public void onSignChangeEvent(SignChangeEvent e) {
  41. if (e.getLines() > 100) {
  42. e.setCancelled(true);
  43. Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
  44. @Override
  45. public void run() {
  46. editSign((Sign) e.getBlock().getState());
  47. }
  48. });
  49. }
  50. }
  51.  
  52. public void editSign(final Sign sign) {
  53. if (sign != null && sign.getChunk().isLoaded()) {
  54. getLogger().log(Level.WARNING, "Invalid signs at {0} :", sign.getLocation().toString());
  55. sign.setLine(0, "YOU CAN'T DO THAT");
  56. sign.setLine(1, "Protected By");
  57. sign.setLine(2, "SamistineSignFix");
  58. sign.setLine(3, "Have a nice day");
  59. sign.update();
  60. }
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment