package mg.dewacraft.cptFroster.ghost; import - TopicsExpress



          

package mg.dewacraft.cptFroster.ghost; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.Sign; import org.bukkitmand.Command; import org.bukkitmand.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerItemHeldEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionType; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.ScoreboardManager; import org.bukkit.scoreboard.Team; public class Main extends JavaPlugin implements Listener { public static int MinutesToCountDown=1; public static int SecondsToCountDown=20; public static Plugin plugin; int taskID1; int taskID2; public static int Vote; ItemStack isword = new ItemStack(Material.IRON_SWORD,1); ItemStack diamond = new ItemStack(Material.DIAMOND , 1); ItemStack gold= new ItemStack(Material.DIAMOND , 1); ItemStack iron = new ItemStack(Material.DIAMOND , 1); ItemStack compass = new ItemStack(Material.COMPASS , 1); ItemStack water = new ItemStack(Material.WATER , 1); ItemStack lava = new ItemStack(Material.LAVA , 1); ItemStack air = new ItemStack(Material.AIR ,1); PotionEffect slow = new PotionEffect(PotionEffectType.SLOW, Integer.MAX_VALUE, Integer.MAX_VALUE); PotionEffect invisible = new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, Integer.MAX_VALUE); PotionEffect night = new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, Integer.MAX_VALUE); PotionEffect blind = new PotionEffect(PotionEffectType.BLINDNESS, Integer.MAX_VALUE, Integer.MAX_VALUE); ScoreboardManager manager = Bukkit.getScoreboardManager(); Scoreboard board = manager.getNewScoreboard(); Team ghost = board.registerNewTeam("ghost"); Team hunter = board.registerNewTeam("hunter"); public CustomYML fileClass = new CustomYML(this); public static int MaxPlayers; public static int Ghost=0; public static int Hunter=0; public static boolean ghostRunning; public static int maxTeam = MaxPlayers / 2; public static World world; public static World lobbyw; public static Location GhostSpawn; public static Location HunterSpawn; public static Location lobby; public void onEnable(){ plugin = this; getLogger().info("Checking Config files..."); getConfig().options().copyDefaults(true); getLogger().info("Saving Config files..."); saveConfig(); getCommand("ghost").setExecutor(this); getLogger().info("Plugin is Enabled now!"); ghost.setCanSeeFriendlyInvisibles(true); ghost.setPrefix("" + ChatColor.RED); hunter.setPrefix("" + ChatColor.BLUE); PluginManager pm = Bukkit.getServer().getPluginManager(); pm.registerEvents(this, this); } public void onDisable(){ this.getServer().getScheduler().cancelAllTasks(); getLogger().info("Saving Config files..."); fileClass.saveCustomConfig(); getLogger().info("Config File Saved!."); getLogger().info("Plugin is Disabled now!"); } //For Broadcast Globally public void BroadcastGlobal(String m){ for (Player p : Bukkit.getServer().getOnlinePlayers()) { if(ghost.getPlayers().contains(p)){ p.sendMessage(ChatColor.DARK_AQUA + "[" + ChatColor.AQUA + "G.H.O.S.T" + ChatColor.DARK_AQUA + "] " + ChatColor.AQUA + m); }else if(hunter.getPlayers().contains(p)){ p.sendMessage(ChatColor.DARK_AQUA + "[" + ChatColor.AQUA + "G.H.O.S.T" + ChatColor.DARK_AQUA + "] " + ChatColor.AQUA + m); } } } //For Broadcast Ghost public void BroadcastGhost(String m){ for (Player p : Bukkit.getServer().getOnlinePlayers()) { if(ghost.getPlayers().contains(p)){ p.sendMessage(ChatColor.DARK_AQUA + "[" + ChatColor.AQUA + "G.H.O.S.T" + ChatColor.DARK_AQUA + "] " + ChatColor.AQUA + m); } } } //For Broadcast Hunter public void BroadcastHunter(String m){ for (Player p : Bukkit.getServer().getOnlinePlayers()) { if(ghost.getPlayers().contains(p)){ p.sendMessage(ChatColor.DARK_AQUA + "[" + ChatColor.AQUA + "G.H.O.S.T" + ChatColor.DARK_AQUA + "] " + ChatColor.AQUA + m); } } } //For PM public void PM(String m , Player p){ p.sendMessage(ChatColor.DARK_AQUA + "[" + ChatColor.AQUA + "G.H.O.S.T" + ChatColor.DARK_AQUA + "] " + ChatColor.AQUA + m); } @EventHandler public void PlayerDeath(PlayerDeathEvent e){ if(e.getEntity() instanceof Player){ Player p = (Player) e.getEntity(); World w = p.getWorld(); Location l = p.getLocation(); if(ghost.getPlayers().contains(p)){ BroadcastGlobal(p.getName() + " has been sent to Hell!"); BroadcastGlobal("Ghost Left :" + Ghost); BroadcastGlobal("Hunter Left :" + Hunter); QuitGhost(p, l, w); }else if(hunter.getPlayers().contains(p)){ BroadcastGlobal(p.getName() + " died at the Hands of the Devil!"); BroadcastGlobal("Ghost Left :" + Ghost); BroadcastGlobal("Hunter Left :" + Hunter); QuitHunter(p, l, w); } } } @EventHandler public void NoEmptyHanded(PlayerItemHeldEvent e){ for(Player p : Bukkit.getServer().getOnlinePlayers()){ if(ghostRunning == true){ if(ghost.getPlayers().contains(p) && p.getItemInHand() == air){ PM(ChatColor.RED + "You are Freezed! Because your hands are empty!",p); p.addPotionEffect(slow); }else if(ghost.getPlayers().contains(p)){ p.removePotionEffect(PotionEffectType.SLOW); }else if(hunter.getPlayers().contains(p) && p.getItemInHand() == water){ p.addPotionEffect(night); p.addPotionEffect(slow); hunter.removePlayer(p); ghost.addPlayer(p); BroadcastHunter(p.getName() + " is using Ghost Vision!"); BroadcastGhost(ChatColor.RED + "Warning! Someone is Using Ghost Vision!"); }else if(ghost.getPlayers().contains(p) && p.getItemInHand() == lava){ p.removePotionEffect(PotionEffectType.NIGHT_VISION); p.removePotionEffect(PotionEffectType.SLOW); ghost.removePlayer(p); hunter.addPlayer(p); } } } } @EventHandler public void CustomItems(PlayerInteractEvent e){ for(Player p : Bukkit.getServer().getOnlinePlayers()){ if(ghostRunning == true){ if(hunter.getPlayers().contains(p)){ if(p.getItemInHand() == compass || e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK ){ p.setItemInHand(isword); }else if(p.getItemInHand() == isword || e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK ){ p.setItemInHand(compass); }else if(p.getItemInHand() == lava || e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){ p.setItemInHand(water); }else if(p.getItemInHand() == water || e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK ){ p.setItemInHand(lava); } } }else if(e.getAction() == Action.RIGHT_CLICK_BLOCK){ Player player = e.getPlayer(); Block block = e.getClickedBlock(); if(block.getType() == Material.SIGN_POST){ Sign sign = (Sign) block.getState(); if(sign.getLine(1) == "[GHOST]" && sign.getLine(2) == "Join" && sign.getLine(3) == "Ghost"){ JoinGhost(p); }else if(sign.getLine(1) == "[GHOST]" && sign.getLine(2) == "Join" && sign.getLine(3) == "Hunter"){ JoinHunter(p); } } } } } private void JoinHunter(Player p) { Boolean isHEmpty; for (ItemStack item : p.getInventory().getContents()) { if(item != null) { isHEmpty = false; break; } } if(isHEmpty = true){ if(Hunter == maxTeam){ PM(" Sorry, Hunter Team are Full!", p); }else{ if(Ghost == maxTeam && Hunter == maxTeam - 1){ hunter.addPlayer(p); Hunter++; p.addPotionEffect(blind); p.addPotionEffect(slow); p.getLocation().setWorld(world); p.teleport(HunterSpawn); p.setGameMode(GameMode.ADVENTURE); BroadcastGlobal("Hunter " + p.getName() + " Joined! " + Hunter + Ghost + "/" + MaxPlayers); StartGame(); }else{ hunter.addPlayer(p); Hunter++; p.addPotionEffect(blind); p.addPotionEffect(slow); p.setGameMode(GameMode.ADVENTURE); p.getLocation().setWorld(world); p.teleport(HunterSpawn); BroadcastGlobal("Hunter " + p.getName() + " Joined! " + Hunter + Ghost + "/" + MaxPlayers); } } }else{ PM("Clear your Inventory First!",p); } } public Runnable StartGame() { // REPEATING TASKS COUNTDOWN DEMO taskID2 = plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() { public void run() { SecondsToCountDown--; if (SecondsToCountDown!=0) { BroadcastGlobal("G.H.O.S.T Starts in " +SecondsToCountDown + "..."); } if (SecondsToCountDown==0) { plugin.getServer().getScheduler().cancelTask(taskID2); SecondsToCountDown=20; BroadcastGlobal("G.H.O.S.T Telah mulai! Hunter akan di release dalam 1 menit!"); hunterlock(); for (Player p : Bukkit.getServer().getOnlinePlayers()) { if (ghost.getPlayers().contains(p)) { p.removePotionEffect(PotionEffectType.SLOW); p.removePotionEffect(PotionEffectType.BLINDNESS); } } } } }, 20L, 20L); // once each second return null; } public Runnable hunterlock() { // REPEATING TASKS COUNTDOWN DEMO taskID1 = plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() { public void run() { for (Player p : Bukkit.getServer().getOnlinePlayers()) { if (ghost.getPlayers().contains(p)) { p.getInventory().addItem(isword); p.getInventory().addItem(gold); p.getInventory().addItem(iron); p.getInventory().addItem(diamond); } } MinutesToCountDown--; if (MinutesToCountDown!=0) { BroadcastGlobal(MinutesToCountDown * 60 + " detik lagi sebelum Hunter di Release kan!"); } if (MinutesToCountDown==0) { plugin.getServer().getScheduler().cancelTask(taskID1); MinutesToCountDown=2; BroadcastGlobal("Hunter Released!"); for (Player p : Bukkit.getServer().getOnlinePlayers()) { if (hunter.getPlayers().contains(p)) { p.removePotionEffect(PotionEffectType.SLOW); p.removePotionEffect(PotionEffectType.BLINDNESS); } } } } }, 20*60L, 20*60L); // 60 seconds in a minute return null; } private void JoinGhost(Player p) { boolean isGEmpty = false; for (ItemStack item : p.getInventory().getContents()) { if(item != null) { isGEmpty = false; break; } } if(isGEmpty == true){ if(Ghost == maxTeam){ PM(" Sorry, Ghost Team are Full!", p); }else{ if(Hunter == maxTeam && Ghost == maxTeam - 1){ p.setGameMode(GameMode.ADVENTURE); ghost.addPlayer(p); Ghost++; p.addPotionEffect(blind); p.addPotionEffect(slow); p.getLocation().setWorld(world); p.teleport(GhostSpawn); BroadcastGlobal("Ghost " + p.getName() + " Joined! " + Hunter + Ghost + "/" + MaxPlayers); StartGame(); }else{ ghost.addPlayer(p); p.setGameMode(GameMode.ADVENTURE); Ghost++; p.addPotionEffect(blind); p.addPotionEffect(slow); p.getLocation().setWorld(world); p.teleport(GhostSpawn); BroadcastGlobal("Ghost " + p.getName() + " Joined! " + Hunter + Ghost + "/" + MaxPlayers); } } }else{ PM("Clear Your Inventory First!",p); } } private void QuitGhost(Player p, Location l,World w) { w.strikeLightning(l); ghost.removePlayer(p); Ghost--; if(Ghost == 1){ BroadcastGlobal("Only 1 More Ghost Left!!"); for(Player hp : Bukkit.getServer().getOnlinePlayers()){ if(ghost.getPlayers().contains(hp)){ hp.playSound(hp.getLocation(), Sound.WITHER_DEATH, 100, 0); } } } } private void QuitHunter(Player p, Location l, World w) { w.strikeLightning(l); hunter.removePlayer(p); Hunter++; if(Hunter == 0){ BroadcastGhost("You Won!"); for(Player gp : Bukkit.getServer().getOnlinePlayers()){ if(ghost.getPlayers().contains(gp)){ p.setHealth(0); } } } } private void setConfig(String p){ if(p == "player"){ fileClass.getCustomConfig().set("MaxPlayers", MaxPlayers); fileClass.saveCustomConfig(); }else if(p == "world"){ fileClass.getCustomConfig().set("GameWorld", world.toString()); fileClass.saveCustomConfig(); }else if(p == "hspawn"){ fileClass.getCustomConfig().set("HunterSpawn", HunterSpawn); fileClass.saveCustomConfig(); }else if(p == "gspawn"){ fileClass.getCustomConfig().set("GhostSpawn", GhostSpawn); fileClass.saveCustomConfig(); }else if(p == "lobby"){ fileClass.getCustomConfig().set("Lobby", lobby); fileClass.saveCustomConfig(); }else if(p == "lworld"){ fileClass.getCustomConfig().set("LobbyWorld", lobbyw.toString()); fileClass.saveCustomConfig(); } } //Command public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){ if(cmd.getName().equalsIgnoreCase("ghost")){ commandHandler(sender , args); return true; } return false; } private void commandHandler(CommandSender sender, String[] args) { Player p = (Player) sender; if(args.length > 0){ if(args[0].equalsIgnoreCase("help")){ PM("======[G.H.O.S.T For Dewacraft]======",p); PM("/ghost help | For Print this Pages",p); PM("/ghost join | For Going to the lobby",p); PM("/ghost quit | For Quit the game",p); PM("/ghost vote | For Vote to Start the Game",p); if(p.isOp()){ PM("/ghost set gspawn | For Setting up GHOST",p); } }else if(args[0].equalsIgnoreCase("join")){ PM("Welcome to The G.H.O.S.T Lobby :)",p); p.getLocation().setWorld(lobbyw); p.teleport(lobby); }else if(args[0].equalsIgnoreCase("set") && p.isOp()){ if(args.length < 2){ PM("============[G.H.O.S.T For Dewacraft]=============",p); PM("/ghost set gspawn | For set Ghost Spawn",p); PM("/ghost set hspawn | For set Hunter Spawn",p); PM("/ghost set lspawn | For set Lobby Spawn",p); PM("/ghost set world | For set The World",p); PM("/ghost set lworld | For Set the Lobby World",p); PM("/ghost set mp | For set The Max Player ( Should be an Even Number! )",p); }else if(args[1].equalsIgnoreCase("gspawn")){ GhostSpawn = p.getLocation(); setConfig("gspawn"); PM("Ghost Spawn set to " + GhostSpawn ,p); }else if(args[1].equalsIgnoreCase("hspawn")){ HunterSpawn = p.getLocation(); setConfig("hspawn"); PM("Hunter Spawn set to " + HunterSpawn ,p); }else if(args[1].equalsIgnoreCase("lspawn")){ lobby = p.getLocation(); setConfig("lobby"); PM("Lobby Spawn set to " + lobby ,p); }else if(args[1].equalsIgnoreCase("world")){ if(args.length > 2){ world = p.getLocation().getWorld(); setConfig("GameWorld"); PM("World set to " + world.toString(),p); }else{ PM("Usage : /ghost set world ",p); } }else if(args[1].equalsIgnoreCase("lworld")){ if(args.length > 2){ lobbyw = p.getLocation().getWorld(); setConfig("LobbyWorld"); PM("World set to " + world.toString(),p); }else{ PM("Usage : /ghost set world ",p); } }else if(args[1].equalsIgnoreCase("mp")){ if(args.length > 2){ MaxPlayers = Integer.parseInt(args[2]); setConfig("player"); PM("Max Players set to " + MaxPlayers,p); }else{ PM("Usage : /ghost set mp ",p); } } }else if(args[0].equalsIgnoreCase("quit")){ if(hunter.getPlayers().contains(p)){ p.setHealth(0); }else if(ghost.getPlayers().contains(p)){ p.setHealth(0); } }else if(args[0].equalsIgnoreCase("vote")){ if(hunter.getPlayers().contains(p)){ int percent = Vote / Hunter + Ghost * 100; Vote++; BroadcastGlobal(p.getName() + " Voted to Start The Game! " + percent); if(percent == 50){ StartGame(); } }else if(ghost.getPlayers().contains(p)){ p.setHealth(0); } }else{ PM("======[G.H.O.S.T For Dewacraft]======",p); PM("A Plugin Created by : CaptainFroster",p); PM("Type /ghost help for More Information",p); } } } }
Posted on: Tue, 08 Oct 2013 11:48:31 +0000

Trending Topics



Recently Viewed Topics




© 2015