|
@@ -1,263 +1,112 @@
|
|
|
package org.noip.olyol95.tag;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-
|
|
|
import org.bukkit.ChatColor;
|
|
|
-import org.bukkit.command.Command;
|
|
|
-import org.bukkit.command.CommandSender;
|
|
|
import org.bukkit.entity.Player;
|
|
|
-import org.bukkit.plugin.java.JavaPlugin;
|
|
|
+import org.bukkit.event.EventHandler;
|
|
|
+import org.bukkit.event.EventPriority;
|
|
|
+import org.bukkit.event.Listener;
|
|
|
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
|
|
+import org.bukkit.event.player.PlayerInteractEntityEvent;
|
|
|
+import org.bukkit.event.player.PlayerQuitEvent;
|
|
|
|
|
|
-public final class Tag extends JavaPlugin {
|
|
|
+public class PlayerListener implements Listener {
|
|
|
|
|
|
- private boolean enabled = true;
|
|
|
- ArrayList<Player> list = new ArrayList<Player>();
|
|
|
- Player tagged = null;
|
|
|
- Player lasttagged = null;
|
|
|
+ private Tag main;
|
|
|
|
|
|
- @Override
|
|
|
- public void onEnable() {
|
|
|
+ public PlayerListener(Tag main) {
|
|
|
|
|
|
- getLogger().info("Enabling Tag.");
|
|
|
- enabled = true;
|
|
|
- getServer().getPluginManager().registerEvents(new PlayerListener(this), this);
|
|
|
- getLogger().info("Tag enabled successfully!");
|
|
|
+ this.main = main;
|
|
|
|
|
|
}
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onDisable() {
|
|
|
+
|
|
|
+ @EventHandler(priority = EventPriority.HIGH)
|
|
|
+ public void onPlayerDamagePlayer(EntityDamageByEntityEvent event) {
|
|
|
+
|
|
|
+ if(event.getDamager() instanceof Player && event.getEntity() instanceof Player){
|
|
|
+
|
|
|
+ Player damager = (Player) event.getDamager();
|
|
|
+ Player victim = (Player) event.getEntity();
|
|
|
+
|
|
|
+ if (main.list.contains(damager) && main.list.contains(victim)) {
|
|
|
+
|
|
|
+ victim.setHealth(victim.getMaxHealth());
|
|
|
+ victim.setFoodLevel(20);
|
|
|
+ victim.setExhaustion(0);
|
|
|
+ victim.setFireTicks(0);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @EventHandler(priority = EventPriority.HIGH)
|
|
|
+ public void onRightClick(PlayerInteractEntityEvent event) {
|
|
|
|
|
|
- getLogger().info("Disabling Insults.");
|
|
|
- enabled = false;
|
|
|
- messagePlayers(ChatColor.RED+"Sorry, game over! An admin has chosen to end your game.", null, null);
|
|
|
- list.clear();
|
|
|
- tagged = null;
|
|
|
- lasttagged = null;
|
|
|
- getLogger().info("Insults disabled successfully!");
|
|
|
+ if (event.getPlayer() instanceof Player && event.getRightClicked() instanceof Player) {
|
|
|
+
|
|
|
+ Player player = event.getPlayer();
|
|
|
+ Player target = (Player) event.getRightClicked();
|
|
|
+
|
|
|
+ if (main.list.contains(player) && main.list.contains(target)) {
|
|
|
+
|
|
|
+ if (player.equals(main.tagged)) {
|
|
|
+
|
|
|
+ if (target.equals(main.lasttagged)) {
|
|
|
+
|
|
|
+ player.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.RED+"No tag-backs!");
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ main.lasttagged = player;
|
|
|
+ main.tagged = target;
|
|
|
+ main.messagePlayers(ChatColor.GREEN+"Careful! "+ChatColor.RED+main.tagged.getPlayerListName()+ChatColor.GREEN+" is now IT!", main.tagged, null);
|
|
|
+ main.tagged.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"You are now IT!");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (main.list.contains(player) && !main.list.contains(target) && player.equals(main.tagged)) {
|
|
|
+
|
|
|
+ player.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.RED+"This player is not in the game!");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
|
|
+ @EventHandler(priority = EventPriority.NORMAL)
|
|
|
+ public void onPlayerQuit(PlayerQuitEvent event) {
|
|
|
+
|
|
|
+ Player player = event.getPlayer();
|
|
|
|
|
|
- try {
|
|
|
+ if (main.list.contains(player)) {
|
|
|
+
|
|
|
+ main.messagePlayers(ChatColor.RED+player.getDisplayName()+ChatColor.GREEN+" has left the game!", player, null);
|
|
|
|
|
|
- Player player = (Player)sender;
|
|
|
-
|
|
|
- if (cmd.getName().equalsIgnoreCase("tag")) {
|
|
|
-
|
|
|
- if (args.length > 1) {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.RED + "Too many arguments!");
|
|
|
- return false;
|
|
|
+ if(player.equals(main.tagged)) {
|
|
|
+
|
|
|
+ if(main.list.size() != 1) {
|
|
|
|
|
|
- } else if(args[0].equalsIgnoreCase("join") && enabled) {
|
|
|
-
|
|
|
- if (player.hasPermission("tag.join") && player instanceof Player) {
|
|
|
-
|
|
|
- if (list.contains(player)) {
|
|
|
-
|
|
|
- player.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.RED+"You are already in the game!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- list.add(player);
|
|
|
-
|
|
|
- if(tagged == null) {
|
|
|
-
|
|
|
- tagged = player;
|
|
|
- player.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"You have joined the game!\n"+ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"You are IT!");
|
|
|
- return true;
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- player.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"You have joined the game!\n"+ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"Careful! "+ChatColor.RED+tagged.getPlayerListName()+ChatColor.GREEN+" is IT!");
|
|
|
- messagePlayers(ChatColor.RED+player.getDisplayName()+ChatColor.GREEN+" has joined the game!", player, null);
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- player.sendMessage(ChatColor.RED + "You do not have permission to do this!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else if (args[0].equalsIgnoreCase("leave") && enabled) {
|
|
|
-
|
|
|
- if (player.hasPermission("tag.leave") && player instanceof Player) {
|
|
|
-
|
|
|
- if (list.contains(player)) {
|
|
|
-
|
|
|
- player.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"You have left the game!");
|
|
|
- messagePlayers(ChatColor.RED+player.getDisplayName()+ChatColor.GREEN+" has left the game!", player, null);
|
|
|
-
|
|
|
- if(player.equals(tagged)) {
|
|
|
-
|
|
|
- if (list.size() != 1) {
|
|
|
-
|
|
|
- do {
|
|
|
-
|
|
|
- int num = 0 + (int)(Math.random() * ((list.size()-1 - 0) + 1));
|
|
|
- tagged = list.get(num);
|
|
|
-
|
|
|
- } while (tagged.equals(player));
|
|
|
-
|
|
|
- messagePlayers(ChatColor.GREEN+"Careful! "+ChatColor.RED+tagged.getPlayerListName()+ChatColor.GREEN+" is now IT!", tagged, player);
|
|
|
- tagged.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"You are now IT!");
|
|
|
-
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- tagged = null;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else if (!list.contains(player)) {
|
|
|
-
|
|
|
- player.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.RED+"You are not in a game!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
+ do {
|
|
|
|
|
|
- list.remove(player);
|
|
|
- return true;
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- player.sendMessage(ChatColor.RED + "You do not have permission to do this!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else if (args[0].equalsIgnoreCase("on")) {
|
|
|
-
|
|
|
- if (!enabled && player.hasPermission("tag.on")) {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.GREEN + "Tag enabled!");
|
|
|
- onEnable();
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
- else if (!player.hasPermission("tag.on")) {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.RED + "You do not have permission to do this!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
- else {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.RED + "Tag is already enabled.");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else if (args[0].equalsIgnoreCase("off")) {
|
|
|
-
|
|
|
- if (enabled && player.hasPermission("tag.off")) {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.GREEN + "Tag disabled!");
|
|
|
- onDisable();
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
- else if (!player.hasPermission("tag.off")) {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.RED + "You do not have permission to do this!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
- else {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.RED + "Tag is already disabled.");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else if(args[0].equalsIgnoreCase("list") && enabled ) {
|
|
|
-
|
|
|
- if (player.hasPermission("tag.list")) {
|
|
|
-
|
|
|
- String message = "";
|
|
|
-
|
|
|
- for (Player p: list) {
|
|
|
-
|
|
|
- if (list.indexOf(p) == list.size()-1) {
|
|
|
-
|
|
|
- message = message+ChatColor.RED+p.getDisplayName()+ChatColor.GREEN+".";
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- message = message+ChatColor.RED+p.getDisplayName()+ChatColor.GREEN+", ";
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"Current players in the tag game: "+message);
|
|
|
- return true;
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.RED + "You do not have permission to do this!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else if (args[0].equalsIgnoreCase("who") && enabled) {
|
|
|
-
|
|
|
- if (player.hasPermission("tag.who")) {
|
|
|
-
|
|
|
- if (player.equals(tagged)){
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"You are IT!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }else {
|
|
|
-
|
|
|
- try {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"Careful! "+ChatColor.RED+tagged.getPlayerListName()+ChatColor.GREEN+" is IT!");
|
|
|
- return true;
|
|
|
-
|
|
|
- } catch (Exception e) {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"There are currently no players in the game!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- sender.sendMessage(ChatColor.RED + "You do not have permission to do this!");
|
|
|
- return true;
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- } catch (Exception e) { return false; }
|
|
|
+ int num = 0 + (int)(Math.random() * ((main.list.size()-1 - 0) + 1));
|
|
|
+ main.tagged = main.list.get(num);
|
|
|
+
|
|
|
+ } while (main.tagged.equals(player));
|
|
|
+
|
|
|
+ main.messagePlayers(ChatColor.GREEN+"Careful! "+ChatColor.RED+main.tagged.getPlayerListName()+ChatColor.GREEN+" is now IT!", main.tagged, null);
|
|
|
+ main.tagged.sendMessage(ChatColor.AQUA+"[TAG] "+ChatColor.GREEN+"You are now IT!");
|
|
|
+
|
|
|
+ } else if (main.list.size() == 1) {
|
|
|
+
|
|
|
+ main.tagged = null;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- if (!enabled) { return true; }
|
|
|
- else { return false; }
|
|
|
+ main.list.remove(player);
|
|
|
|
|
|
- }
|
|
|
-
|
|
|
- public void messagePlayers(String message, Player player, Player secondplayer) {
|
|
|
-
|
|
|
- for(Player p: list) {
|
|
|
-
|
|
|
- if (!p.equals(player) && !p.equals(secondplayer)) {
|
|
|
-
|
|
|
- p.sendMessage(ChatColor.AQUA+"[TAG] "+message);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
}
|