Advertisement
thebmanswan541

HubPlugin - JoinListener (Bukkit)

Sep 20th, 2014
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.76 KB | None | 0 0
  1. package me.thebmanswan541;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.DataOutputStream;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.Effect;
  11. import org.bukkit.GameMode;
  12. import org.bukkit.Material;
  13. import org.bukkit.Sound;
  14. import org.bukkit.enchantments.Enchantment;
  15. import org.bukkit.entity.Arrow;
  16. import org.bukkit.entity.EntityType;
  17. import org.bukkit.entity.Player;
  18. import org.bukkit.event.EventHandler;
  19. import org.bukkit.event.Listener;
  20. import org.bukkit.event.block.Action;
  21. import org.bukkit.event.entity.ProjectileHitEvent;
  22. import org.bukkit.event.inventory.InventoryClickEvent;
  23. import org.bukkit.event.player.PlayerInteractEvent;
  24. import org.bukkit.event.player.PlayerJoinEvent;
  25. import org.bukkit.event.player.PlayerLoginEvent;
  26. import org.bukkit.event.player.PlayerQuitEvent;
  27. import org.bukkit.event.player.PlayerTeleportEvent;
  28. import org.bukkit.inventory.Inventory;
  29. import org.bukkit.inventory.ItemStack;
  30. import org.bukkit.inventory.meta.BookMeta;
  31. import org.bukkit.inventory.meta.ItemMeta;
  32. import org.kitteh.tag.AsyncPlayerReceiveNameTagEvent;
  33. import org.kitteh.tag.TagAPI;
  34.  
  35. public class JoinListener implements Listener {
  36.    
  37.     ServerInfo factionsserver = new ServerInfo("0.0.0.0", 25567);
  38.     ServerInfo prisonserver = new ServerInfo("0.0.0.0", 25568);
  39.     ServerInfo sgserver = new ServerInfo("0.0.0.0", 25569);
  40.     ServerInfo creativeserver = new ServerInfo("0.0.0.0", 25560);
  41.  
  42.      public void sendToServer(Player p, String targetserver) {
  43.             ByteArrayOutputStream b = new ByteArrayOutputStream();
  44.             DataOutputStream out = new DataOutputStream(b);
  45.             try {
  46.                 out.writeUTF("Connect");
  47.                 out.writeUTF(targetserver);
  48.             }catch(Exception e) {
  49.                 e.printStackTrace();
  50.             }
  51.             p.sendPluginMessage(new MainClass(), "BungeeCord", b.toByteArray());
  52.          }
  53.    
  54.     ItemStack TMenu = new ItemStack(Material.COMPASS); {
  55.     ItemMeta TMenuMeta = TMenu.getItemMeta();
  56.     TMenuMeta.setDisplayName(ChatColor.DARK_GRAY+"- "+ChatColor.GREEN+"Servers"+ChatColor.DARK_GRAY+" - "+ChatColor.LIGHT_PURPLE+"("+ChatColor.GRAY+"Right-Click"+ChatColor.LIGHT_PURPLE+")");
  57.     ArrayList<String> TMenuLore = new ArrayList<String>();
  58.     TMenuLore.add(ChatColor.GRAY+"Right-Click to view available server teleportation options!");
  59.     TMenuMeta.setLore(TMenuLore);
  60.     TMenu.setItemMeta(TMenuMeta);
  61.     }
  62.    
  63.     ItemStack IMenu = new ItemStack(Material.WRITTEN_BOOK); {
  64.         BookMeta meta = (BookMeta) IMenu.getItemMeta();
  65.         meta.setTitle(ChatColor.DARK_GRAY+"- "+ChatColor.AQUA+"Server Info"+ChatColor.DARK_GRAY+" - "+ChatColor.LIGHT_PURPLE+"("+ChatColor.GRAY+"Right-Click"+ChatColor.LIGHT_PURPLE+")");
  66.         meta.setAuthor(MainClass.AdminTag+ChatColor.RED+"thebmanswan541");
  67.         meta.addPage(ChatColor.BOLD+"This is the official "+ChatColor.RED+"Hub"+ChatColor.YELLOW+"Plugin"+ChatColor.RESET+ChatColor.BOLD+" server!");
  68.         ArrayList<String> BookLore = new ArrayList<String>();
  69.         BookLore.add(ChatColor.GRAY+"Right-Click to view available server info!");
  70.         meta.setLore(BookLore);
  71.         IMenu.setItemMeta(meta);
  72.     }
  73.    
  74.     ItemStack BowTeleporter = new ItemStack(Material.BOW); {
  75.         ItemMeta BowTeleporterMeta = BowTeleporter.getItemMeta();
  76.         BowTeleporterMeta.setDisplayName(ChatColor.DARK_GRAY+"- "+ChatColor.GOLD+"Bow Teleporter"+ChatColor.DARK_GRAY+" - "+ChatColor.LIGHT_PURPLE+"("+ChatColor.GRAY+"Shoot"+ChatColor.LIGHT_PURPLE+")");
  77.         ArrayList<String> BowTeleporterLore = new ArrayList<String>();
  78.         BowTeleporterLore.add(ChatColor.GRAY+"Shoot to teleport!");
  79.         BowTeleporterMeta.setLore(BowTeleporterLore);
  80.         BowTeleporter.setItemMeta(BowTeleporterMeta);
  81.         BowTeleporter.addEnchantment(Enchantment.DURABILITY, 3);
  82.         BowTeleporter.addEnchantment(Enchantment.ARROW_INFINITE, 1);
  83.     }
  84.     ItemStack Hub = new ItemStack(Material.GOLD_NUGGET); {
  85.         ItemMeta HubMeta = Hub.getItemMeta();
  86.         HubMeta.setDisplayName(ChatColor.WHITE+">> "+ChatColor.GREEN+"Back to Hub");
  87.         ArrayList<String> HubLore = new ArrayList<String>();
  88.         HubLore.add("");
  89.         HubLore.add(ChatColor.WHITE+"  >> "+ChatColor.YELLOW+"Click to teleport back to the hub!");
  90.         HubMeta.setLore(HubLore);
  91.         Hub.setItemMeta(HubMeta);
  92.     }
  93.     public static ItemStack PlayersVisible = new ItemStack(Material.REDSTONE_TORCH_ON); {
  94.         ItemMeta PlayersVisibleMeta = PlayersVisible.getItemMeta();
  95.         PlayersVisibleMeta.setDisplayName(ChatColor.RED+"Players are visible"+ChatColor.DARK_GRAY+"! "+ChatColor.LIGHT_PURPLE+"("+ChatColor.GRAY+"Right-Click"+ChatColor.LIGHT_PURPLE+")");
  96.         ArrayList<String> PlayersVisibleLore = new ArrayList<String>();
  97.         PlayersVisibleLore.add(ChatColor.GRAY+"Right click to toggle player visibility!");
  98.         PlayersVisibleMeta.setLore(PlayersVisibleLore);
  99.         PlayersVisible.setItemMeta(PlayersVisibleMeta);
  100.         }
  101.     public static ItemStack PlayersInvisible = new ItemStack(Material.LEVER); {
  102.         ItemMeta PlayersInvisibleMeta = PlayersVisible.getItemMeta();
  103.         PlayersInvisibleMeta.setDisplayName(ChatColor.DARK_GRAY+"Players are invisible"+ChatColor.RED+"! "+ChatColor.LIGHT_PURPLE+"("+ChatColor.GRAY+"Right-Click"+ChatColor.LIGHT_PURPLE+")");
  104.         ArrayList<String> PlayersInvisibleLore = new ArrayList<String>();
  105.         PlayersInvisibleLore.add(ChatColor.GRAY+"Right click to toggle player visibility!");
  106.         PlayersInvisibleMeta.setLore(PlayersInvisibleLore);
  107.         PlayersInvisible.setItemMeta(PlayersInvisibleMeta);
  108.         }
  109.     ItemStack TeleportationArrow = new ItemStack(Material.ARROW); {
  110.         ItemMeta TeleportationArrowMeta = TeleportationArrow.getItemMeta();
  111.         TeleportationArrowMeta.setDisplayName(ChatColor.DARK_GRAY+"- "+ChatColor.GRAY+"["+ChatColor.AQUA+"Teleportation Arrow"+ChatColor.GRAY+"]"+ChatColor.DARK_GRAY+" -");
  112.         ArrayList<String> TeleportationArrowLore = new ArrayList<String>();
  113.         TeleportationArrowLore.add(ChatColor.GRAY+"Can't shoot the Bow Teleporter without the arrow!");
  114.         TeleportationArrowMeta.setLore(TeleportationArrowLore);
  115.         TeleportationArrow.setItemMeta(TeleportationArrowMeta);
  116.     }
  117.     public static Inventory TPMenuGui = Bukkit.getServer().createInventory(null, 27, ChatColor.AQUA+"Teleport Menu");
  118.     Inventory IMenuGui = Bukkit.getServer().createInventory(null, 9, ChatColor.YELLOW+"Information Menu");
  119.    
  120.  
  121.     @EventHandler
  122.     public void onLogin(PlayerLoginEvent e) {
  123.         SettingsManager settings = SettingsManager.getInstance();
  124.         List<String> banned = settings.getBanned().getStringList("Banned");
  125.         if (banned.contains(e.getPlayer().getName())) {
  126.             e.disallow(PlayerLoginEvent.Result.KICK_OTHER, ChatColor.YELLOW+"You may not join this server! Reason:"+ChatColor.RED+" Banned"+ChatColor.YELLOW+".");
  127.             return;
  128.         }
  129.     }
  130.    
  131.     @EventHandler
  132.     public void onNameTag(AsyncPlayerReceiveNameTagEvent e) {
  133.         Player p = e.getNamedPlayer();
  134.         SettingsManager settings = SettingsManager.getInstance();
  135.         List<String> admins = settings.getAdmins().getStringList("Admins");
  136.         List<String> mods = settings.getMods().getStringList("Mods");
  137.         List<String> helpers = settings.getHelpers().getStringList("Helpers");
  138.         if (admins.contains(p.getName())) {
  139.             e.setTag(ChatColor.RED+p.getName());
  140.         } else if (mods.contains(p.getName())) {
  141.             e.setTag(ChatColor.LIGHT_PURPLE+p.getName());
  142.         } else if (helpers.contains(p.getName())) {
  143.             e.setTag(ChatColor.AQUA+p.getName());
  144.         } else {
  145.             e.setTag(ChatColor.GRAY+p.getName());
  146.         }
  147.     }
  148.    
  149.     @EventHandler
  150.     public void onJoin(PlayerJoinEvent e) {
  151.         Player p = e.getPlayer();
  152.         SettingsManager settings = SettingsManager.getInstance();
  153.         List<String> admins = settings.getAdmins().getStringList("Admins");
  154.         List<String> mods = settings.getMods().getStringList("Mods");
  155.         List<String> helpers = settings.getHelpers().getStringList("Helpers");
  156.         if (admins.contains(p.getName())) {
  157.             MainClass.admin.add(p.getName());
  158.             p.sendMessage(MainClass.PTAG+ChatColor.GRAY+"Right click the redstone torch to toggle player visibility!");
  159.             p.sendMessage(ChatColor.DARK_GRAY+"******************************************************");
  160.             p.sendMessage(ChatColor.BOLD+""+ChatColor.WHITE+"   Welcome, "+MainClass.AdminTag+ChatColor.RED+p.getName()+ChatColor.BOLD+""+ChatColor.WHITE+", to the official");
  161.             p.sendMessage(ChatColor.BOLD+""+ChatColor.RED+"            Hub"+ChatColor.BOLD+ChatColor.YELLOW+"Plugin "+ChatColor.BOLD+""+ChatColor.WHITE+" server!");
  162.             p.sendMessage("");
  163.             p.sendMessage(ChatColor.YELLOW+"There are currently "+ChatColor.GREEN+p.getServer().getOnlinePlayers().length+ChatColor.GRAY+"/"+ChatColor.GREEN+p.getServer().getMaxPlayers()+ChatColor.YELLOW+" players online!");
  164.             p.sendMessage(ChatColor.DARK_GRAY+"******************************************************");
  165.             e.setJoinMessage(MainClass.AdminTag+ChatColor.RED+p.getName()+ChatColor.WHITE+" has joined the server!");
  166.         } else if (mods.contains(p.getName())) {
  167.             MainClass.mod.add(p.getName());
  168.                 p.sendMessage(MainClass.PTAG+ChatColor.GRAY+"Right click the redstone torch to toggle player visibility!");
  169.                 p.sendMessage(ChatColor.DARK_GRAY+"******************************************************");
  170.                 p.sendMessage(ChatColor.BOLD+""+ChatColor.WHITE+"   Welcome, "+MainClass.ModTag+ChatColor.LIGHT_PURPLE+p.getName()+ChatColor.BOLD+""+ChatColor.WHITE+", to the official");
  171.                 p.sendMessage(ChatColor.BOLD+""+ChatColor.RED+"            Hub"+ChatColor.BOLD+ChatColor.YELLOW+"Plugin "+ChatColor.BOLD+""+ChatColor.WHITE+" server!");
  172.                 p.sendMessage("");
  173.                 p.sendMessage(ChatColor.YELLOW+"There are currently "+ChatColor.GREEN+p.getServer().getOnlinePlayers().length+ChatColor.GRAY+"/"+ChatColor.GREEN+p.getServer().getMaxPlayers()+ChatColor.YELLOW+" players online!");
  174.                 p.sendMessage(ChatColor.DARK_GRAY+"******************************************************");
  175.                 e.setJoinMessage(MainClass.ModTag+ChatColor.LIGHT_PURPLE+p.getName()+ChatColor.WHITE+" has joined the server!");
  176.         } else if (helpers.contains(p.getName())) {
  177.             MainClass.helper.add(p.getName());
  178.                 p.sendMessage(MainClass.PTAG+ChatColor.GRAY+"Right click the redstone torch to toggle player visibility!");
  179.                 p.sendMessage(ChatColor.DARK_GRAY+"******************************************************");
  180.                 p.sendMessage(ChatColor.BOLD+""+ChatColor.WHITE+"   Welcome, "+MainClass.HelperTag+ChatColor.BLUE+p.getName()+ChatColor.BOLD+""+ChatColor.WHITE+", to the official");
  181.                 p.sendMessage(ChatColor.BOLD+""+ChatColor.RED+"            Hub"+ChatColor.BOLD+ChatColor.YELLOW+"Plugin "+ChatColor.BOLD+""+ChatColor.WHITE+" server!");
  182.                 p.sendMessage("");
  183.                 p.sendMessage(ChatColor.YELLOW+"There are currently "+ChatColor.GREEN+p.getServer().getOnlinePlayers().length+ChatColor.GRAY+"/"+ChatColor.GREEN+p.getServer().getMaxPlayers()+ChatColor.YELLOW+" players online!");
  184.                 p.sendMessage(ChatColor.DARK_GRAY+"******************************************************");
  185.                 e.setJoinMessage(MainClass.HelperTag+ChatColor.BLUE+p.getName()+ChatColor.GRAY+" has joined the server!");
  186.         }else {
  187.             MainClass.user.add(p.getName());
  188.             p.sendMessage(MainClass.PTAG+ChatColor.GRAY+"Right click the redstone torch to toggle player visibility!");
  189.             p.sendMessage(ChatColor.DARK_GRAY+"******************************************************");
  190.             p.sendMessage(ChatColor.BOLD+""+ChatColor.WHITE+"   Welcome, "+ChatColor.GRAY+p.getName()+ChatColor.BOLD+""+ChatColor.WHITE+", to the official");
  191.             p.sendMessage(ChatColor.BOLD+""+ChatColor.RED+"            Hub"+ChatColor.BOLD+ChatColor.YELLOW+"Plugin "+ChatColor.BOLD+""+ChatColor.WHITE+" server!");
  192.             p.sendMessage("");
  193.             p.sendMessage(ChatColor.YELLOW+"There are currently "+ChatColor.GREEN+p.getServer().getOnlinePlayers().length+ChatColor.GRAY+"/"+ChatColor.GREEN+p.getServer().getMaxPlayers()+ChatColor.YELLOW+" players online!");
  194.             p.sendMessage(ChatColor.DARK_GRAY+"******************************************************");
  195.             e.setJoinMessage(null);
  196.         }
  197.         TagAPI.refreshPlayer(p);
  198.         p.setHealth(p.getMaxHealth());
  199.         p.setFoodLevel(20);
  200.         p.setSaturation(0F);
  201.         p.setLevel(0);
  202.         p.setExp(0F);
  203.         p.getInventory().clear();
  204.         p.setGameMode(GameMode.ADVENTURE);
  205.         p.getInventory().setItem(0, TMenu);
  206.         p.getInventory().setItem(2, IMenu);
  207.         p.getInventory().setItem(5, BowTeleporter);
  208.         p.getInventory().setItem(8, PlayersVisible);
  209.         p.getInventory().setItem(9, TeleportationArrow);
  210.      }
  211.    
  212.     @EventHandler
  213.     public void onQuit(PlayerQuitEvent e) {
  214.         Player p = e.getPlayer();
  215.         if (MainClass.admin.contains(p.getName())) {
  216.             MainClass.admin.remove(p.getName());
  217.         } else if (MainClass.mod.contains(p.getName())) {
  218.             MainClass.mod.remove(p.getName());
  219.         } else if (MainClass.helper.contains(p.getName())) {
  220.             MainClass.helper.remove(p.getName());
  221.         } else if (MainClass.user.contains(p.getName())){
  222.             MainClass.user.remove(p.getName());
  223.         }
  224.         return;
  225.     }
  226.    
  227.     @EventHandler
  228.     public void onInteract(PlayerInteractEvent e) {
  229.         Player p = e.getPlayer();
  230.         if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
  231.             if (p.getItemInHand().getType() == Material.COMPASS) {
  232.                 TPMenuGui.setItem(9, MainClass.Factions);
  233.                 TPMenuGui.setItem(11, MainClass.Prison);
  234.                 TPMenuGui.setItem(15, MainClass.SG);
  235.                 TPMenuGui.setItem(17, MainClass.Creative);
  236.                 TPMenuGui.setItem(22, Hub);
  237.                 p.sendMessage(MainClass.TAG+ChatColor.GREEN+"Opening teleport menu...");
  238.                 p.openInventory(TPMenuGui);
  239.             }
  240.            }
  241.         }
  242.    
  243.     @EventHandler
  244.     public void onInvClick(InventoryClickEvent e) {
  245.         Player p = (Player) e.getWhoClicked();
  246.         if (e.getInventory().getName().equals(TPMenuGui.getName())) {
  247.             if (e.getCurrentItem().getType() == null) return;
  248.             if (e.getCurrentItem().getType() == Material.DIAMOND) {
  249.                 p.sendMessage(MainClass.TAG+ChatColor.GREEN+"Teleporting to Factions...");
  250.                 p.closeInventory();
  251.                 return;
  252.             }
  253.             if (e.getCurrentItem().getType() == Material.IRON_FENCE) {
  254.                 p.sendMessage(MainClass.TAG+ChatColor.GREEN+"Teleporting to Prison...");
  255.                 p.closeInventory();
  256.                 return;
  257.             }
  258.             if (e.getCurrentItem().getType() == Material.IRON_SWORD) {
  259.                 p.sendMessage(MainClass.TAG+ChatColor.GREEN+"Teleporting to Survival Games...");
  260.                 p.closeInventory();
  261.                 return;
  262.             }
  263.             if (e.getCurrentItem().getType() == Material.WORKBENCH) {
  264.                 p.sendMessage(MainClass.TAG+ChatColor.GREEN+"Teleporting to Creative...");
  265.                 p.closeInventory();
  266.                 return;
  267.             }
  268.         }
  269.   }
  270.    
  271.     @EventHandler
  272.     public void onHit(ProjectileHitEvent e) {
  273.         if (!(e.getEntity().getShooter() instanceof Player)) return;
  274.         if (!(e.getEntity().getType().equals(EntityType.ARROW))) return;
  275.         Arrow a = (Arrow) e.getEntity();
  276.         Player p = (Player) e.getEntity().getShooter();
  277.         p.sendMessage(MainClass.TAG+ChatColor.GREEN+"Teleporting...");
  278.         p.teleport(a.getLocation(), PlayerTeleportEvent.TeleportCause.PLUGIN);
  279.         p.getWorld().playEffect(p.getLocation(), Effect.MOBSPAWNER_FLAMES, 100);
  280.         p.playSound(a.getLocation(), Sound.ENDERMAN_TELEPORT, 1F, 1F);
  281.         a.remove();
  282.     }
  283.    
  284.  
  285. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement