diff --git a/TheButtonAutoFlair.jar b/TheButtonAutoFlair.jar index 90c8530..8bfc7fd 100644 Binary files a/TheButtonAutoFlair.jar and b/TheButtonAutoFlair.jar differ diff --git a/TheButtonAutoFlair/.classpath b/TheButtonAutoFlair/.classpath index f29f3d4..c12a94a 100644 --- a/TheButtonAutoFlair/.classpath +++ b/TheButtonAutoFlair/.classpath @@ -26,5 +26,7 @@ + + diff --git a/TheButtonAutoFlair/plugin.yml b/TheButtonAutoFlair/plugin.yml index 4961c96..49ed0b5 100644 --- a/TheButtonAutoFlair/plugin.yml +++ b/TheButtonAutoFlair/plugin.yml @@ -1,6 +1,6 @@ name: TheButtonMCPlugin main: tk.sznp.thebuttonautoflair.PluginMain -version: 3.0 +version: 4.0 commands: u: description: Auto-flair system. Accept or ignore flair. @@ -19,7 +19,7 @@ commands: description: Search the wiki. usage: "&vUsage: /mwiki [query]&r" author: NorbiPeti -depend: [Essentials, Towny, Minigames, Votifier] +depend: [Essentials, Towny, Minigames, Votifier, Factions] permissions: tbmc.admin: description: Gives access to /un- commands and /u admin commands diff --git a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/Commands.java b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/Commands.java index 4dd107b..68a11e7 100644 --- a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/Commands.java +++ b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/Commands.java @@ -212,9 +212,11 @@ public class Commands implements CommandExecutor { p.playSound(p.getLocation(), "tbmc.yeehaw", 1f, 1f); p.sendMessage("§b* " + p.getDisplayName() + " YEEHAWs."); } + return true; } case "mwiki": { DoMWiki(player, args); + return true; } default: player.sendMessage("Unknown command: " + cmd.getName()); diff --git a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/MaybeOfflinePlayer.java b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/MaybeOfflinePlayer.java index 2a6c987..5e29e1e 100644 --- a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/MaybeOfflinePlayer.java +++ b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/MaybeOfflinePlayer.java @@ -26,6 +26,7 @@ public class MaybeOfflinePlayer { public Channel CurrentChannel = Channel.GlobalChat; public int FCount; public boolean SendingLink = false; + public int FDeaths; public UUID UUID; @@ -62,6 +63,7 @@ public class MaybeOfflinePlayer { mp.PlayerName = cs2.getString("playername"); mp.UserNames = cs2.getStringList("usernames"); mp.FCount = cs2.getInt("fcount"); + mp.FDeaths = cs2.getInt("fdeaths"); } } @@ -77,6 +79,7 @@ public class MaybeOfflinePlayer { cs2.set("uuid", mp.UUID.toString()); cs2.set("usernames", mp.UserNames); cs2.set("fcount", mp.FCount); + cs2.set("fdeaths", mp.FDeaths); } } diff --git a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PlayerListener.java b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PlayerListener.java index b904cbf..604eaf1 100644 --- a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PlayerListener.java +++ b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PlayerListener.java @@ -1,43 +1,5 @@ package tk.sznp.thebuttonautoflair; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.configuration.InvalidConfigurationException; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerChatTabCompleteEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.SkullMeta; -import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; -import org.bukkit.scoreboard.Objective; - -import ru.tehkode.permissions.bukkit.PermissionsEx; - -import com.palmergames.bukkit.towny.exceptions.NotRegisteredException; -import com.palmergames.bukkit.towny.object.Nation; -import com.palmergames.bukkit.towny.object.Resident; -import com.palmergames.bukkit.towny.object.Town; -import com.palmergames.bukkit.towny.object.TownBlock; -import com.palmergames.bukkit.towny.object.TownyUniverse; -import com.palmergames.bukkit.towny.object.WorldCoord; -import com.vexsoftware.votifier.model.Vote; -import com.vexsoftware.votifier.model.VotifierEvent; - -import au.com.mineauz.minigames.MinigamePlayer; -import au.com.mineauz.minigames.Minigames; - import java.io.File; import java.io.IOException; import java.net.MalformedURLException; @@ -50,7 +12,49 @@ import java.util.TimerTask; import java.util.UUID; import java.util.regex.Pattern; -import com.earth2me.essentials.*; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerChatTabCompleteEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.help.HelpTopic; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SkullMeta; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.scoreboard.Objective; +import org.bukkit.util.Vector; + +import ru.tehkode.permissions.bukkit.PermissionsEx; +import au.com.mineauz.minigames.MinigamePlayer; +import au.com.mineauz.minigames.Minigames; + +import com.earth2me.essentials.Essentials; +import com.massivecraft.factions.entity.BoardColl; +import com.massivecraft.massivecore.ps.PS; +import com.palmergames.bukkit.towny.exceptions.NotRegisteredException; +import com.palmergames.bukkit.towny.object.Nation; +import com.palmergames.bukkit.towny.object.Resident; +import com.palmergames.bukkit.towny.object.Town; +import com.palmergames.bukkit.towny.object.TownBlock; +import com.palmergames.bukkit.towny.object.TownyUniverse; +import com.palmergames.bukkit.towny.object.WorldCoord; +import com.vexsoftware.votifier.model.Vote; +import com.vexsoftware.votifier.model.VotifierEvent; public class PlayerListener implements Listener { // 2015.07.16. public static HashMap nicknames = new HashMap<>(); @@ -318,14 +322,14 @@ public class PlayerListener implements Listener { // 2015.07.16. json.append(String .format("\"color\":\"aqua\"},{\"text\":\"World: %s\n\",\"color\":\"white\"},", event.getPlayer().getWorld().getName())); - json.append(String.format( - "{\"text\":\"Respect: %s%s%s\",\"color\":\"white\"}]}}},", - (player.FCount == Integer.MAX_VALUE - 1 ? player.FCount + "+" - : player.FCount), (player.UserName != null - && !player.UserName.isEmpty() ? "\nUserName: " - + player.UserName : ""), (player.PlayerName - .equals("\nAlpha_Bacca44") ? "\nDeaths: " + AlphaDeaths - : ""))); + json.append(String + .format("{\"text\":\"Respect: %s%s%s\",\"color\":\"white\"}]}}},", + player.FCount / (double) player.FDeaths, + (player.UserName != null && !player.UserName.isEmpty() ? "\nUserName: " + + player.UserName + : ""), (player.PlayerName + .equals("\nAlpha_Bacca44") ? "\nDeaths: " + + AlphaDeaths : ""))); json.append("{\"text\":\"> \",\"color\":\"white\"},"); int index = -1; @@ -684,6 +688,63 @@ public class PlayerListener implements Listener { // 2015.07.16. .getPlayer().getDisplayName(), message)); } } + boolean tping = false; + boolean tphering = false; + if (cmd.equalsIgnoreCase("tpa") || cmd.equalsIgnoreCase("call") + || cmd.equalsIgnoreCase("ecall") + || cmd.equalsIgnoreCase("etpa") + || cmd.equalsIgnoreCase("tpask") + || cmd.equalsIgnoreCase("etpask")) + tping = true; + if (cmd.equalsIgnoreCase("tpahere") + || cmd.equalsIgnoreCase("etpahere")) + tphering = true; + + /* + * for (HelpTopic ht : PluginMain.Instance.getServer() + * .getHelpMap().getHelpTopics()) { if + * (ht.getName().equalsIgnoreCase("/tpa")) { tping = true; break; } + * } + */ + + /* + * for (HelpTopic ht : PluginMain.Instance.getServer() + * .getHelpMap().getHelpTopics()) { if + * (ht.getName().equalsIgnoreCase("/tpahere")) tphering = true; + * break; } + */ + + if (tphering) { + Player target = Bukkit.getPlayer(event.getMessage() + .substring(index + 1).split(" ")[0]); + if (target != null + && BoardColl.get() + .getFactionAt(PS.valueOf(target.getLocation())) + .getId().equalsIgnoreCase("tower")) { + event.getPlayer() + .sendMessage( + "§cYou are not allowed to teleport players out from the Tower"); + event.setCancelled(true); + } + } + /* + * for (String s : Bukkit.getCommandAliases().get("/tpahere")) { if + * (cmd.equalsIgnoreCase(s)) { tping = true; break; } } + */ + if (tping) { + if ( + // MPlayer.get(event.getPlayer()).getFaction().getId().equalsIgnoreCase("nomansland")) + // { + BoardColl + .get() + .getFactionAt( + PS.valueOf(event.getPlayer().getLocation())) + .getId().equalsIgnoreCase("tower")) { + event.getPlayer().sendMessage( + "§cYou are not allowed to teleport to the Tower"); + event.setCancelled(true); + } + } } if (cmd.equalsIgnoreCase("sethome")) { TownyUniverse tu = PluginMain.Instance.TU; @@ -790,7 +851,7 @@ public class PlayerListener implements Listener { // 2015.07.16. } private boolean ActiveF = false; - private int FCount = 0; // TODO: Change to rate + private int FCount = 0; private MaybeOfflinePlayer FPlayer = null; private Timer Ftimer; public static int AlphaDeaths; @@ -801,13 +862,18 @@ public class PlayerListener implements Listener { // 2015.07.16. AlphaDeaths++; MinigamePlayer mgp = Minigames.plugin.pdata.getMinigamePlayer(e .getEntity()); - if ((mgp != null && !mgp.isInMinigame()) && new Random().nextBoolean()) { //Don't store Fs for NPCs + if ((mgp != null && !mgp.isInMinigame()) && new Random().nextBoolean()) { // Don't + // store + // Fs + // for + // NPCs if (Ftimer != null) Ftimer.cancel(); ActiveF = true; FCount = 0; FPlayer = MaybeOfflinePlayer.AllPlayers.get(e.getEntity() .getUniqueId()); + FPlayer.FDeaths++; for (Player p : PluginMain.GetPlayers()) { MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p .getUniqueId()); @@ -884,6 +950,61 @@ public class PlayerListener implements Listener { // 2015.07.16. if (op != null) { PluginMain.economy.depositPlayer(op, 50.0); } + } + /* + * @EventHandler public void onPlayerLogin(PlayerLoginEvent e) { + * System.out.println("Result:" + e.getResult()); + * System.out.println("Kick message: " + e.getKickMessage()); } + */ + + /* + * @EventHandler public void onPlayerPreLogin(AsyncPlayerPreLoginEvent e) { + * System.out.println("Pre - LoginResult:" + e.getLoginResult()); + * System.out.println("Pre - Kick message: " + e.getKickMessage()); } + */ + + @EventHandler + public void onPlayerMove(PlayerMoveEvent e) { + // minecraft:tp @a[x=190,y=-80,z=45,dx=5,dy=50,dz=5] 190 1 45 + if (e.getPlayer().getWorld().getName().equals("wilds") + && e.getTo().getBlockX() > 185 && e.getTo().getBlockX() < 200 + && e.getTo().getBlockZ() > 40 && e.getTo().getBlockZ() < 60 + && e.getTo().getBlockY() < -64) { + final Player p = e.getPlayer(); + p.setVelocity(new Vector(0, 0, 0)); + p.setFallDistance(0); + Bukkit.getServer() + .getScheduler() + .scheduleSyncDelayedTask(PluginMain.Instance, + new Runnable() { + public void run() { + p.setVelocity(new Vector(0, 0, 0)); + p.setFallDistance(0); + p.teleport(new Location(Bukkit + .getWorld("wilds"), 190, 1, 50)); + p.setVelocity(new Vector(0, 0, 0)); + p.setFallDistance(0); + } + }); + } + } + + @EventHandler(priority = EventPriority.LOWEST) + public void onPlayerTeleport(PlayerTeleportEvent e) { + if (BoardColl.get().getFactionAt(PS.valueOf(e.getFrom())).getId() + .equalsIgnoreCase("nomansland") + || BoardColl.get().getFactionAt(PS.valueOf(e.getTo())).getId() + .equalsIgnoreCase("nomansland")) { + // e.setTo(e.getFrom()); + e.setCancelled(true); // Relative coordinates mess it up + /* + * System.out.println("From: " + e.getFrom()); + * System.out.println("To: " + e.getTo()); + * System.out.println("Cause: "+e.getCause()); + */ + e.getPlayer().sendMessage( + "§cYou are not allowed to teleport to/from No Mans Land."); + } } } diff --git a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/Commands$2.class b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/Commands$2.class index bbbb981..40ca8d9 100644 Binary files a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/Commands$2.class and b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/Commands$2.class differ diff --git a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/Commands.class b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/Commands.class index 1df905d..513c0d5 100644 Binary files a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/Commands.class and b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/Commands.class differ diff --git a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/MaybeOfflinePlayer.class b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/MaybeOfflinePlayer.class index 1bc38a9..1be5a8c 100644 Binary files a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/MaybeOfflinePlayer.class and b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/MaybeOfflinePlayer.class differ diff --git a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$1.class b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$1.class index 8d8046f..b64d940 100644 Binary files a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$1.class and b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$1.class differ diff --git a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$2.class b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$2.class index 50b308b..2ab6097 100644 Binary files a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$2.class and b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$2.class differ diff --git a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$3.class b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$3.class index 53caf34..9b10716 100644 Binary files a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$3.class and b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$3.class differ diff --git a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$4.class b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$4.class new file mode 100644 index 0000000..880fd63 Binary files /dev/null and b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener$4.class differ diff --git a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener.class b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener.class index be385af..cd979ab 100644 Binary files a/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener.class and b/TheButtonAutoFlair/target/classes/tk/sznp/thebuttonautoflair/PlayerListener.class differ