diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java index ab789b8c1..3505334ae 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java @@ -82,7 +82,7 @@ import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.games.event.EventModule; import nautilus.game.arcade.game.games.uhc.UHC; import nautilus.game.arcade.managers.GameAchievementManager; -import nautilus.game.arcade.managers.GameChatManager; +import nautilus.game.arcade.managers.chat.GameChatManager; import nautilus.game.arcade.managers.GameCreationManager; import nautilus.game.arcade.managers.GameFlagManager; import nautilus.game.arcade.managers.GameGemManager; @@ -171,6 +171,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation private GameTournamentManager _gameTournamentManager; private GameWorldManager _gameWorldManager; private GameHostManager _gameHostManager; + private GameChatManager _gameChatManager; private ServerStatusManager _serverStatusManager; private InventoryManager _inventoryManager; private CosmeticManager _cosmeticManager; @@ -275,7 +276,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation _arcadeShop = new ArcadeShop(this, clientManager, donationManager); // Managers - new GameChatManager(this); + _gameChatManager = new GameChatManager(this); _gameCreationManager = new GameCreationManager(this); _gameGemManager = new GameGemManager(this); _gameManager = new GameManager(this); @@ -349,6 +350,11 @@ public class ArcadeManager extends MiniPlugin implements IRelation addCommand(new RequiredRankCommand(this)); } + public GameChatManager getGameChatManager() + { + return _gameChatManager; + } + public GameServerConfig GetServerConfig() { return _serverConfig; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java index 6eec52eb7..bbc4040af 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java @@ -74,6 +74,7 @@ import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.managers.GameLobbyManager; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.scoreboard.GameScoreboard; import nautilus.game.arcade.stats.AssistsStatTracker; import nautilus.game.arcade.stats.DamageDealtStatTracker; @@ -271,6 +272,21 @@ public abstract class Game implements Listener public long PrepareTime = 9000; public boolean PlaySoundGameStart = true; + // Chat Stats + public final ChatStatData Kills = new ChatStatData("Kills", "Kills", true); + public final ChatStatData Assists = new ChatStatData("Assists", "Assists", true); + public final ChatStatData DamageDealt = new ChatStatData("Damage Dealt", "Damage Dealt", true); + public final ChatStatData DamageTaken = new ChatStatData("Damage Taken", "Damage Taken", true); + public final ChatStatData DamageTakenPVP = new ChatStatData("Damage Taken PvP", "Damage Taken", true); + public final ChatStatData Deaths = new ChatStatData("Deaths", "Deaths", true); + public final ChatStatData ExpEarned = new ChatStatData("ExpEarned", "Exp Earned", true); + public final ChatStatData GamesPlayed = new ChatStatData("GamesPlayed", "Games Played", true); + public final ChatStatData GemsEarned = new ChatStatData("GemsEarned", "Gems Earned", true); + public final ChatStatData Losses = new ChatStatData("Losses", "Losses", true); + public final ChatStatData Wins = new ChatStatData("Wins", "Wins", true); + public final ChatStatData KDRatio = new ChatStatData("KDRatio", "KD-Ratio", true); + public final ChatStatData BlankLine = new ChatStatData().blankLine(); + // Gems public double GemMultiplier = 1; public boolean GemHunterEnabled = true; @@ -1420,6 +1436,11 @@ public abstract class Game implements Listener } } + public void registerChatStats(ChatStatData... stats) + { + Manager.getGameChatManager().setGameChatStats(stats); + } + public Collection> getStatTrackers() { return _statTrackers; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/BaconBrawl.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/BaconBrawl.java index 0ee17ce94..adc29452f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/BaconBrawl.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/baconbrawl/BaconBrawl.java @@ -38,6 +38,16 @@ public class BaconBrawl extends SoloGame DamageTeamSelf = true; HungerSet = 20; PrepareFreeze = false; + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageDealt, + DamageTaken + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/barbarians/Barbarians.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/barbarians/Barbarians.java index 9a769fe02..c48e919eb 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/barbarians/Barbarians.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/barbarians/Barbarians.java @@ -15,6 +15,8 @@ import nautilus.game.arcade.GameType; import nautilus.game.arcade.game.SoloGame; import nautilus.game.arcade.game.games.barbarians.kits.*; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; +import nautilus.game.arcade.stats.BlockBreakStatTracker; public class Barbarians extends SoloGame { @@ -58,6 +60,22 @@ public class Barbarians extends SoloGame this.BlockBreakAllow.add(134); this.BlockBreakAllow.add(135); this.BlockBreakAllow.add(136); + + registerStatTrackers( + new BlockBreakStatTracker(this, true) + ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageDealt, + DamageTaken, + BlankLine, + new ChatStatData("BlockBreak", "Blocks Broken", true) + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bossbattles/BossBattles.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bossbattles/BossBattles.java index ca6253aab..0ecfe91f4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bossbattles/BossBattles.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bossbattles/BossBattles.java @@ -58,6 +58,9 @@ public class BossBattles extends TeamGame HungerSet = 20; CreatureAllowOverride = true; PrepareFreeze = false; + +// registerChatStats(Kills); +// Game giving constant errors when loading. } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bouncyballs/BouncyBalls.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bouncyballs/BouncyBalls.java index bfd3cc0a1..ce464297f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bouncyballs/BouncyBalls.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bouncyballs/BouncyBalls.java @@ -15,6 +15,7 @@ import nautilus.game.arcade.game.SoloGame; import nautilus.game.arcade.game.games.bouncyballs.kits.*; import nautilus.game.arcade.game.games.bouncyballs.Ball; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; public class BouncyBalls extends SoloGame { @@ -35,6 +36,8 @@ public class BouncyBalls extends SoloGame }); this.HungerSet = 20; + +// registerChatStats(); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java index e10942288..d92f14d14 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/bridge/Bridge.java @@ -233,6 +233,16 @@ public class Bridge extends TeamGame implements OreObsfucation new KillFastStatTracker(this, 4, 10, "Rampage"), new DeathBomberStatTracker(this, 5) ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageTaken, + DamageTaken + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/Build.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/Build.java index bbcf02a2e..5855106da 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/Build.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/build/Build.java @@ -37,6 +37,9 @@ import nautilus.game.arcade.game.games.build.gui.MobShop; import nautilus.game.arcade.game.games.build.gui.OptionsShop; import nautilus.game.arcade.game.games.build.kits.KitBuilder; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; +import nautilus.game.arcade.stats.BlockBreakStatTracker; +import nautilus.game.arcade.stats.BlockPlaceStatTracker; import org.bukkit.ChatColor; import org.bukkit.Effect; @@ -216,6 +219,16 @@ public class Build extends SoloGame _mobShop = new MobShop(getArcadeManager(), getArcadeManager().GetClients(), getArcadeManager().GetDonation()); _optionsShop = new OptionsShop(this, getArcadeManager(), getArcadeManager().GetClients(), getArcadeManager().GetDonation()); _shopItem = ItemStackFactory.Instance.CreateStack(Material.DIAMOND, (byte) 0, 1, C.cGreen + "Options"); + + registerStatTrackers( + new BlockBreakStatTracker(this, false), + new BlockPlaceStatTracker(this, new Material[]{}) + ); + + registerChatStats( + new ChatStatData("BlocksPlaced", "Blocks Placed", true), + new ChatStatData("BlocksBroken", "Blocks Broken", true) + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/cards/Cards.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/cards/Cards.java index 8943458b7..e890a34a2 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/cards/Cards.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/cards/Cards.java @@ -70,6 +70,8 @@ public class Cards extends SoloGame this.PrepareFreeze = false; _cardFactory = new CardFactory(); + + registerChatStats(); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/castlesiege/CastleSiege.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/castlesiege/CastleSiege.java index c6a53e65b..7b29adfb1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/castlesiege/CastleSiege.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/castlesiege/CastleSiege.java @@ -71,6 +71,7 @@ import nautilus.game.arcade.game.games.castlesiege.kits.KitUndeadGhoul; import nautilus.game.arcade.game.games.castlesiege.kits.KitUndeadZombie; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.NullKit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.BloodThirstyStatTracker; import nautilus.game.arcade.stats.KingDamageStatTracker; import nautilus.game.arcade.stats.KingSlayerStatTracker; @@ -219,6 +220,18 @@ public class CastleSiege extends TeamGame new TeamDeathsStatTracker(this), new TeamKillsStatTracker(this) ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageDealt, + DamageTaken + ); + + registerChatStats(); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsCTF.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsCTF.java index 209a620ab..c2633e3b4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsCTF.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsCTF.java @@ -18,6 +18,7 @@ import nautilus.game.arcade.game.games.champions.kits.KitMage; import nautilus.game.arcade.game.games.champions.kits.KitRanger; import nautilus.game.arcade.game.games.common.CaptureTheFlag; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.CapturesStatTracker; import nautilus.game.arcade.stats.ClutchStatTracker; import nautilus.game.arcade.stats.ElectrocutionStatTracker; @@ -37,20 +38,20 @@ import org.bukkit.event.inventory.InventoryType; public class ChampionsCTF extends CaptureTheFlag { public ChampionsCTF(ArcadeManager manager) - { + { super(manager, GameType.ChampionsCTF, - - new Kit[] - { - new KitBrute(manager), - new KitRanger(manager), + + new Kit[] + { + new KitBrute(manager), + new KitRanger(manager), new KitKnight(manager), new KitMage(manager), new KitAssassin(manager), }); - - _help = new String[] - { + + _help = new String[] + { "Make sure you use all of your Skill/Item Tokens", "Collect Resupply Chests to restock your inventory", "Customize your Class to suit your play style", @@ -59,7 +60,7 @@ public class ChampionsCTF extends CaptureTheFlag "Gold/Iron Weapons deal 6 damage", "Diamond Weapons deal 7 damage", - }; + }; Manager.GetDamage().UseSimpleWeaponDamage = false; Manager.getCosmeticManager().setHideParticles(true); @@ -86,6 +87,18 @@ public class ChampionsCTF extends CaptureTheFlag new ClutchStatTracker(this, "Clutch"), new SpecialWinStatTracker(this, "SpecialWin") ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageDealt, + DamageTaken, + BlankLine, + new ChatStatData("Captures", "Flag Captures", true) + ); new ChampionsFixes(this); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsDominate.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsDominate.java index be521f530..83b44d9de 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsDominate.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsDominate.java @@ -16,6 +16,7 @@ import nautilus.game.arcade.game.games.champions.kits.KitMage; import nautilus.game.arcade.game.games.champions.kits.KitRanger; import nautilus.game.arcade.game.games.common.Domination; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.ElectrocutionStatTracker; import nautilus.game.arcade.stats.KillReasonStatTracker; import nautilus.game.arcade.stats.SeismicSlamStatTracker; @@ -78,6 +79,16 @@ public class ChampionsDominate extends Domination new TheLongestShotStatTracker(this), new SeismicSlamStatTracker(this) ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageDealt, + DamageTaken + ); new ChampionsFixes(this); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsTDM.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsTDM.java index f4cd3ea49..73bbb3812 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsTDM.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions/ChampionsTDM.java @@ -16,6 +16,7 @@ import nautilus.game.arcade.game.games.champions.kits.KitMage; import nautilus.game.arcade.game.games.champions.kits.KitRanger; import nautilus.game.arcade.game.games.common.TeamDeathmatch; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.ElectrocutionStatTracker; import nautilus.game.arcade.stats.KillAllOpposingStatTracker; import nautilus.game.arcade.stats.KillReasonStatTracker; @@ -78,6 +79,16 @@ public class ChampionsTDM extends TeamDeathmatch new TheLongestShotStatTracker(this), new SeismicSlamStatTracker(this) ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageDealt, + DamageTaken + ); new ChampionsFixes(this); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/Christmas.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/Christmas.java index 03ad8960c..723607498 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/Christmas.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/Christmas.java @@ -152,6 +152,14 @@ public class Christmas extends SoloGame HungerSet = 20; WorldTimeSet = 2000; PrepareFreeze = false; + + registerChatStats( + Kills, + Assists, + BlankLine, + DamageDealt, + DamageTaken + ); } //parse 129 19 47 48 103 86 137 56 22 45 121 14 15 16 87 88 89 153 173 172 162 diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/DeathTag.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/DeathTag.java index a521de32a..859257fcb 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/DeathTag.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/DeathTag.java @@ -73,6 +73,12 @@ public class DeathTag extends SoloGame this.PrepareFreeze = false; registerStatTrackers(new ComeAtMeBroStatTracker(this)); + + registerChatStats( + Kills, + Deaths, + KDRatio + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscape.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscape.java index a3970305c..207ca5764 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscape.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscape.java @@ -52,6 +52,7 @@ import nautilus.game.arcade.events.PlayerKitGiveEvent; import nautilus.game.arcade.game.SoloGame; import nautilus.game.arcade.game.games.dragonescape.kits.*; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.ParalympicsStatTracker; import nautilus.game.arcade.stats.WinMapStatTracker; @@ -120,6 +121,13 @@ public class DragonEscape extends SoloGame new ParalympicsStatTracker(this), new WinMapStatTracker(this) ); + + registerChatStats( + Deaths, + DamageTaken, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscapeTeams.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscapeTeams.java index e03d66bb6..0b6764bb5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscapeTeams.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscapeTeams.java @@ -45,6 +45,7 @@ import nautilus.game.arcade.game.TeamGame; import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.game.games.dragonescape.kits.*; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; public class DragonEscapeTeams extends TeamGame { @@ -84,6 +85,13 @@ public class DragonEscapeTeams extends TeamGame this.HungerSet = 20; this.TeamArmorHotbar = true; + + registerChatStats( + Deaths, + DamageTaken, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonriders/DragonRiders.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonriders/DragonRiders.java index 608879f82..bccf6f3a1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonriders/DragonRiders.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonriders/DragonRiders.java @@ -24,5 +24,8 @@ public class DragonRiders extends SoloGame this.Damage = false; this.HungerSet = 20; + + //Chat stats + registerChatStats(); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragons/Dragons.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragons/Dragons.java index d489ad2da..ee8060e0b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragons/Dragons.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragons/Dragons.java @@ -36,6 +36,7 @@ import nautilus.game.arcade.game.games.dragons.kits.*; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.perks.PerkSparkler; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.SparklezStatTracker; public class Dragons extends SoloGame @@ -70,6 +71,13 @@ public class Dragons extends SoloGame registerStatTrackers( new SparklezStatTracker(this) ); + + registerChatStats( + Deaths, + DamageTaken, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragons/DragonsTeams.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragons/DragonsTeams.java index 07dab3d2c..9743a5aaf 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragons/DragonsTeams.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragons/DragonsTeams.java @@ -35,6 +35,7 @@ import nautilus.game.arcade.game.games.dragons.kits.*; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.perks.PerkSparkler; +import nautilus.game.arcade.managers.chat.ChatStatData; public class DragonsTeams extends TeamGame { @@ -72,6 +73,13 @@ public class DragonsTeams extends TeamGame this.TeamArmor = true; this.TeamArmorHotbar = true; + + registerChatStats( + Deaths, + DamageTaken, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java index 3098fe293..ca29b6ccb 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/draw/Draw.java @@ -51,6 +51,7 @@ import nautilus.game.arcade.game.games.GameScore; import nautilus.game.arcade.game.games.draw.kits.*; import nautilus.game.arcade.game.games.draw.tools.*; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.KeenEyeStatTracker; import nautilus.game.arcade.stats.MrSquiggleStatTracker; import nautilus.game.arcade.stats.PureLuckStatTracker; @@ -135,6 +136,10 @@ public class Draw extends SoloGame new KeenEyeStatTracker(this), new PureLuckStatTracker(this) ); + + registerChatStats( + new ChatStatData("PureLuck", "Lucky Guess", true) + ); Manager.GetChat().setThreeSecondDelay(false); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/Evolution.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/Evolution.java index bfcd5896f..e8b4ead2e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/Evolution.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/evolution/Evolution.java @@ -162,6 +162,16 @@ public class Evolution extends SoloGame new NoMeleeTracker(this), new KillsWhileEvolvingTracker(this) ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageDealt, + DamageTaken + ); } public EvolveManager getEvolve() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/Gladiators.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/Gladiators.java index 66701b54a..a8fc69e7f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/Gladiators.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gladiators/Gladiators.java @@ -123,6 +123,14 @@ public class Gladiators extends SoloGame new SwiftKillTracker(this) ); + registerChatStats( + Kills, + Assists, + BlankLine, + DamageDealt, + DamageTaken + ); + _playerArenas = new HashMap<>(); _roundState = RoundState.WAITING; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gravity/Gravity.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gravity/Gravity.java index f4b381560..6178db711 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gravity/Gravity.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/gravity/Gravity.java @@ -115,6 +115,11 @@ public class Gravity extends SoloGame this.CompassEnabled = true; this.WorldBoundaryKill = false; + + registerChatStats( + Kills, + Assists + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/halloween/Halloween.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/halloween/Halloween.java index 2906a56e7..5a89d1d1e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/halloween/Halloween.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/halloween/Halloween.java @@ -38,6 +38,8 @@ import nautilus.game.arcade.game.games.halloween.waves.WaveBase; import nautilus.game.arcade.game.games.halloween.waves.WaveBoss; import nautilus.game.arcade.game.games.halloween.waves.WaveVictory; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; + import net.minecraft.server.v1_8_R3.PacketPlayOutNamedSoundEffect; import org.bukkit.ChatColor; @@ -135,6 +137,14 @@ public class Halloween extends SoloGame this.WorldBoundaryKill = false; this.DontAllowOverfill = true; + + registerChatStats( + Kills, + DamageDealt, + DamageTaken, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java index e4652e638..f360e190a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java @@ -341,8 +341,16 @@ public class HideSeek extends TeamGame Manager.GetExplosion().SetTNTSpread(false); Manager.getCosmeticManager().setHideParticles(true); - registerStatTrackers(new HunterKillerStatTracker(this), new MeowStatTracker(this), new HunterKillerStatTracker(this), - new HunterOfTheYearStatTracker(this), new BadHiderStatTracker(this)); + registerStatTrackers( + new HunterKillerStatTracker(this), + new MeowStatTracker(this), + new HunterKillerStatTracker(this), + new HunterOfTheYearStatTracker(this), + new BadHiderStatTracker(this) + ); + + //Need ideas for this one + registerChatStats(); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/holeinwall/HoleInTheWall.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/holeinwall/HoleInTheWall.java index 63e30ce89..29abe0ef7 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/holeinwall/HoleInTheWall.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/holeinwall/HoleInTheWall.java @@ -57,6 +57,8 @@ public class HoleInTheWall extends SoloGame DamageFall = false; HungerSet = 20; WorldTimeSet = 8000; + + registerChatStats(); } private ArrayList> getWall() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/horsecharge/Horse.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/horsecharge/Horse.java index ee3c1e223..a8f4ecab5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/horsecharge/Horse.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/horsecharge/Horse.java @@ -18,23 +18,25 @@ public class Horse extends TeamGame { super(manager, GameType.Horse, - new Kit[] - { - new KitHorseKnight(manager), - new NullKit(manager), - new KitDefenceArcher(manager), - }, + new Kit[] + { + new KitHorseKnight(manager), + new NullKit(manager), + new KitDefenceArcher(manager), + }, - new String[] - { - "Horsemen must charge the ruins", - "Horsemen win if they rid the ruins of Undead.", - "", - "Undead must defend the ruins", - "Undead win when all Horsemen are dead.", - "", - "Teams swap after game is over" - }); + new String[] + { + "Horsemen must charge the ruins", + "Horsemen win if they rid the ruins of Undead.", + "", + "Undead must defend the ruins", + "Undead win when all Horsemen are dead.", + "", + "Teams swap after game is over" + }); + + registerChatStats(); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/BombLobbers.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/BombLobbers.java index 2e519edc8..62f06e7bf 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/BombLobbers.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/lobbers/BombLobbers.java @@ -42,6 +42,7 @@ import nautilus.game.arcade.game.games.lobbers.trackers.TrackerDirectHit; import nautilus.game.arcade.game.games.lobbers.trackers.TrackerNoDamage; import nautilus.game.arcade.game.games.lobbers.trackers.TrackerTNTThrown; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import org.bukkit.ChatColor; import org.bukkit.Location; @@ -74,19 +75,23 @@ public class BombLobbers extends TeamGame implements IThrown @SuppressWarnings("unchecked") public BombLobbers(ArcadeManager manager) { - super(manager, GameType.Lobbers, new Kit[] - { - new KitJumper(manager), - new KitArmorer(manager), - new KitPitcher(manager), - new KitWaller(manager) - }, new String[] - { - "Fight against your enemies using", - "the power of explosives!", - "Left click TNT to throw at your enemy.", - "Last team alive wins!" - }); + super(manager, GameType.Lobbers, + new Kit[] + { + new KitJumper(manager), + new KitArmorer(manager), + new KitPitcher(manager), + new KitWaller(manager) + }, + + new String[] + { + "Fight against your enemies using", + "the power of explosives!", + "Left click TNT to throw at your enemy.", + "Last team alive wins!" + }); + DamageFall = true; DamageEvP = true; @@ -110,7 +115,21 @@ public class BombLobbers extends TeamGame implements IThrown WorldTimeSet = 6000; - registerStatTrackers(new Tracker6Kill(this), new TrackerBlastProof(this), new TrackerNoDamage(this), new TrackerTNTThrown(this), new TrackerDirectHit(this)); + registerStatTrackers( + new Tracker6Kill(this), + new TrackerBlastProof(this), + new TrackerNoDamage(this), + new TrackerTNTThrown(this), + new TrackerDirectHit(this) + ); + + registerChatStats( + Kills, + Assists, + DamageTaken, + BlankLine, + new ChatStatData("Thrown", "Thrown", true) + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/Micro.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/Micro.java index 5deda46b0..7ef6d51fa 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/Micro.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/micro/Micro.java @@ -58,7 +58,14 @@ public class Micro extends TeamGame this.BlockBreak = true; this.BlockPlace = true; - registerStatTrackers(new KillsWithinGameStatTracker(this, 8, "Annihilation")); + registerStatTrackers( + new KillsWithinGameStatTracker(this, 8, "Annihilation") + ); + + registerChatStats( + Kills, + Assists + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/milkcow/MilkCow.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/milkcow/MilkCow.java index ac0054a2e..0c3e66ca5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/milkcow/MilkCow.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/milkcow/MilkCow.java @@ -74,29 +74,39 @@ public class MilkCow extends SoloGame super(manager, GameType.MilkCow, new Kit[] - { - new KitFarmerJump(manager), - new KitSturdyFarmhand(manager), - new NullKit(manager), - new KitCow(manager), - }, + { + new KitFarmerJump(manager), + new KitSturdyFarmhand(manager), + new NullKit(manager), + new KitCow(manager), + }, - new String[] - { - "Farmers get 1 point for drinking milk.", - "You lose 5 points for dying!", - "", - "Cows get 1 point for killing farmers.", - "Defend your herd to stop farmers!", - "", - "First player to 15 points wins!" - }); + new String[] + { + "Farmers get 1 point for drinking milk.", + "You lose 5 points for dying!", + "", + "Cows get 1 point for killing farmers.", + "Defend your herd to stop farmers!", + "", + "First player to 15 points wins!" + }); this.CompassEnabled = true; this.DeathOut = false; _scoreObj = Scoreboard.GetScoreboard().registerNewObjective("Milk", "dummy"); _scoreObj.setDisplaySlot(DisplaySlot.BELOW_NAME); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageTaken, + DamageDealt + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/MineStrike.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/MineStrike.java index 1024a5338..c4cbf7053 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/MineStrike.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/minestrike/MineStrike.java @@ -104,6 +104,7 @@ import nautilus.game.arcade.game.games.minestrike.items.guns.GunStats; import nautilus.game.arcade.game.games.minestrike.items.guns.GunType; import nautilus.game.arcade.game.games.minestrike.kits.KitPlayer; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.KaboomStatTracker; import nautilus.game.arcade.stats.KillAllOpposingMineStrikeRoundStatTracker; import nautilus.game.arcade.stats.KillFastStatTracker; @@ -243,57 +244,57 @@ public class MineStrike extends TeamGame { super(manager, GameType.MineStrike, - new Kit[] - { - new KitPlayer(manager), + new Kit[] + { + new KitPlayer(manager), }, - new String[] - { - C.cAqua + "SWAT" + C.cWhite + " Defend the Bomb Sites", - C.cAqua + "SWAT" + C.cWhite + " Kill the Bombers", - " ", - C.cRed + "Bombers" + C.cWhite + " Plant the Bomb at Bomb Site", - C.cRed + "Bombers" + C.cWhite + " Kill the SWAT Team", - }); + new String[] + { + C.cAqua + "SWAT" + C.cWhite + " Defend the Bomb Sites", + C.cAqua + "SWAT" + C.cWhite + " Kill the Bombers", + " ", + C.cRed + "Bombers" + C.cWhite + " Plant the Bomb at Bomb Site", + C.cRed + "Bombers" + C.cWhite + " Kill the SWAT Team", + }); _shopManager = new ShopManager(this); this.StrictAntiHack = true; - + AnnounceStay = false; - + this.HungerSet = 20; this.ItemDrop = true; this.DeathTeleport = false; - + this.InventoryClick = true; this.JoinInProgress = true; - + this.DontAllowOverfill = true; _scoreObj = Scoreboard.GetScoreboard().registerNewObjective("HP", "dummy"); _scoreObj.setDisplaySlot(DisplaySlot.BELOW_NAME); - - this._help = new String[] + + this._help = new String[] { - //"Tap Crouch when close to an ally to Boost", - "Open Inventory at spawn to buy guns", - "Hold Right-Click to Plant Bomb", - "Look at the Bomb to Defuse it", - "Moving decreases accuracy", - "Sprinting heavily decreases accuracy", - "Jumping massively decreases accuracy", - "Crouching increases accuracy", - "Left-Click to drop Grenades", - "Right-Click to throw Grenades", - "Burst Fire for greater accuracy", - "Sniper Rifles are only accurate while scoped", - "Rifles have 30% recoil reduction while scoped", - "Pick up better weapons from dead players" + //"Tap Crouch when close to an ally to Boost", + "Open Inventory at spawn to buy guns", + "Hold Right-Click to Plant Bomb", + "Look at the Bomb to Defuse it", + "Moving decreases accuracy", + "Sprinting heavily decreases accuracy", + "Jumping massively decreases accuracy", + "Crouching increases accuracy", + "Left-Click to drop Grenades", + "Right-Click to throw Grenades", + "Burst Fire for greater accuracy", + "Sniper Rifles are only accurate while scoped", + "Rifles have 30% recoil reduction while scoped", + "Pick up better weapons from dead players" }; registerStatTrackers( @@ -304,10 +305,19 @@ public class MineStrike extends TeamGame new MineStrikeLastAliveKillStatTracker(this), new KillFastStatTracker(this, 4, 5, "KillingSpree"), new KillsWithConditionStatTracker(this, "Blindfolded", ConditionType.BLINDNESS, "Flash Bang", 2), - + new TeamDeathsStatTracker(this), new TeamKillsStatTracker(this) ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + new ChatStatData("BoomHeadshot", "Headshots", true), + Assists + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java index 1634b5c6c..ca74c8d3a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java @@ -84,6 +84,8 @@ public class MineWare extends SoloGame Manager.GetCreature().SetDisableCustomDrops(true); PopulateOrders(); + + registerChatStats(); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java index 59f55652b..3879c4b3b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java @@ -31,6 +31,8 @@ public class Moba extends TeamGame this.DeathSpectateSecs = 8; this.HungerSet = 20; + + registerChatStats(); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/monsterleague/MonsterLeague.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/monsterleague/MonsterLeague.java index adc100bb1..bc413c4da 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/monsterleague/MonsterLeague.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/monsterleague/MonsterLeague.java @@ -63,6 +63,8 @@ public class MonsterLeague extends TeamGame this.TeamArmor = true; this.TeamArmorHotbar = true; + + registerChatStats(); } //Supports anywhere from 2-4 teams on a map diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/monstermaze/MonsterMaze.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/monstermaze/MonsterMaze.java index 1a7128081..5860cf5f8 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/monstermaze/MonsterMaze.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/monstermaze/MonsterMaze.java @@ -33,6 +33,7 @@ import nautilus.game.arcade.game.games.monstermaze.trackers.PilotTracker; import nautilus.game.arcade.game.games.monstermaze.trackers.SnowmanHitTracker; import nautilus.game.arcade.game.games.monstermaze.trackers.SurvivePast10thSafepadTracker; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import org.bukkit.Bukkit; import org.bukkit.Effect; @@ -101,6 +102,12 @@ public class MonsterMaze extends SoloGame new SurvivePast10thSafepadTracker(this) ); //_maze = new SnowmanMaze(this, WorldData.GetDataLocs("GRAY")/*, WorldData.GetCustomLocs("103")*/); + + registerChatStats( + DamageTaken, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } public Maze getMaze() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/oldmineware/OldMineWare.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/oldmineware/OldMineWare.java index 919e9de19..e127ed2aa 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/oldmineware/OldMineWare.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/oldmineware/OldMineWare.java @@ -88,6 +88,8 @@ public class OldMineWare extends SoloGame InventoryClick = true; PopulateOrders(); + + registerChatStats(); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java index f509b43dd..5f4d7b2b4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/paintball/Paintball.java @@ -114,6 +114,16 @@ public class Paintball extends TeamGame new WinFastStatTracker(this, 30, "Speedrunner"), new LastStandStatTracker(this) ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageTaken, + DamageDealt + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/Quiver.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/Quiver.java index 731d049e4..e3a2bf311 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/Quiver.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/Quiver.java @@ -92,6 +92,16 @@ public class Quiver extends SoloGame new SharpShooterStatTracker(this), new WinWithoutBowStatTracker(this, "WhatsABow") ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageTaken, + DamageDealt + ); } @EventHandler(priority = EventPriority.HIGH) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/QuiverTeams.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/QuiverTeams.java index 2d871d801..4626d4f24 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/QuiverTeams.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/quiver/QuiverTeams.java @@ -65,6 +65,16 @@ public class QuiverTeams extends TeamGame this.TeamArmor = true; this.TeamArmorHotbar = true; + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageTaken, + DamageDealt + ); } @EventHandler(priority = EventPriority.HIGH) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/runner/Runner.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/runner/Runner.java index 1cd250deb..38207ce8f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/runner/Runner.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/runner/Runner.java @@ -32,6 +32,7 @@ import nautilus.game.arcade.GameType; import nautilus.game.arcade.game.SoloGame; import nautilus.game.arcade.game.games.runner.kits.*; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.DistanceTraveledStatTracker; import net.minecraft.server.v1_8_R3.EntityArrow; @@ -66,6 +67,10 @@ public class Runner extends SoloGame implements IThrown this.PrepareFreeze = false; registerStatTrackers(new DistanceTraveledStatTracker(this, "MarathonRunner")); + + registerChatStats( + new ChatStatData("kit", "Kit", true) + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/searchanddestroy/SearchAndDestroy.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/searchanddestroy/SearchAndDestroy.java index e4005cf25..ebb419815 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/searchanddestroy/SearchAndDestroy.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/searchanddestroy/SearchAndDestroy.java @@ -72,6 +72,11 @@ public class SearchAndDestroy extends TeamGame DamageSelf = false; Manager.GetDamage().GetCombatManager().setUseWeaponName(AttackReason.DefaultWeaponName); + + registerChatStats( + Kills, + Assists + ); } public ArrayList getBombs() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/SheepGame.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/SheepGame.java index 5a0457a8d..03bf097d7 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/SheepGame.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sheep/SheepGame.java @@ -53,6 +53,7 @@ import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.TeamGame; import nautilus.game.arcade.game.games.sheep.kits.*; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.SheepDropStatTracker; import nautilus.game.arcade.stats.SheepThiefStatTracker; import nautilus.game.arcade.stats.WinWithSheepStatTracker; @@ -155,6 +156,14 @@ public class SheepGame extends TeamGame new SheepDropStatTracker(this), new WinWithSheepStatTracker(this) ); + + registerChatStats( + new ChatStatData("AnimalRescue", "Captures", true), + new ChatStatData("Thief", "Stolen", true), + BlankLine, + Kills, + Deaths + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/Skywars.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/Skywars.java index 835afefc4..75fa533af 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/Skywars.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/skywars/Skywars.java @@ -46,6 +46,7 @@ import nautilus.game.arcade.game.games.skywars.kits.KitDestructor; import nautilus.game.arcade.game.games.skywars.kits.KitMiner; import nautilus.game.arcade.game.games.skywars.kits.KitMadScientist; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.ore.OreHider; import nautilus.game.arcade.stats.DeathBomberStatTracker; import nautilus.game.arcade.stats.SkywarsKillZombieStatTracker; @@ -204,6 +205,18 @@ public abstract class Skywars extends Game new WinWithoutOpeningChestStatTracker(this), new WinWithoutWearingArmorStatTracker(this)); + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageTaken, + DamageDealt, + BlankLine, + new ChatStatData("ZombieKills", "Zombies Killed", true) + ); + } public void ParseData() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SoloSuperSmash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SoloSuperSmash.java index b9ba7a26b..c8c1a5082 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SoloSuperSmash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SoloSuperSmash.java @@ -16,6 +16,7 @@ import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.Game.GameState; +import nautilus.game.arcade.managers.chat.ChatStatData; public class SoloSuperSmash extends SuperSmash { @@ -32,6 +33,18 @@ public class SoloSuperSmash extends SuperSmash }); this.DamageTeamSelf = true; + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageTaken, + DamageDealt, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SuperSmashDominate.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SuperSmashDominate.java index bf643a201..9c74d0c25 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SuperSmashDominate.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/SuperSmashDominate.java @@ -24,7 +24,8 @@ import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.game.games.common.Domination; import nautilus.game.arcade.game.games.smash.kits.*; import nautilus.game.arcade.kit.Kit; - +import nautilus.game.arcade.managers.chat.ChatStatData; + public class SuperSmashDominate extends Domination { public SuperSmashDominate(ArcadeManager manager) @@ -55,6 +56,18 @@ public class SuperSmashDominate extends Domination new KitMagmaCube(manager), }); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageTaken, + DamageDealt, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @EventHandler(priority = EventPriority.LOWEST) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/TeamSuperSmash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/TeamSuperSmash.java index 2ffd3f82d..8ae71d3b9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/TeamSuperSmash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/smash/TeamSuperSmash.java @@ -15,6 +15,7 @@ import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.GameTeam; +import nautilus.game.arcade.managers.chat.ChatStatData; import org.bukkit.ChatColor; import org.bukkit.Location; @@ -53,6 +54,18 @@ public class TeamSuperSmash extends SuperSmash this.TeamArmorHotbar = true; this.DontAllowOverfill = true; + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + Assists, + DamageTaken, + DamageDealt, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snake/Snake.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snake/Snake.java index 9a289d7b5..b9ecd4ab6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snake/Snake.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snake/Snake.java @@ -56,6 +56,7 @@ import nautilus.game.arcade.game.games.snake.kits.KitInvulnerable; import nautilus.game.arcade.game.games.snake.kits.KitReverser; import nautilus.game.arcade.game.games.snake.kits.KitSpeed; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.ChooChooStatTracker; import nautilus.game.arcade.stats.KillsWithinGameStatTracker; import nautilus.game.arcade.stats.SlimySheepStatTracker; @@ -157,6 +158,10 @@ public class Snake extends SoloGame new ChooChooStatTracker(this), new SlimySheepStatTracker(this) ); + + registerChatStats( + new ChatStatData("kit", "Kit", true) + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/SneakyAssassins.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/SneakyAssassins.java index 474567032..63e3385f0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/SneakyAssassins.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/SneakyAssassins.java @@ -92,6 +92,14 @@ public class SneakyAssassins extends SoloGame new RevealStatTracker(this, "ISeeYou"), _killEntityStatTracker ); + + registerChatStats( + Kills, + Assists, + BlankLine, + DamageTaken, + DamageDealt + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snowfight/SnowFight.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snowfight/SnowFight.java index cb278885d..c9faab8a5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snowfight/SnowFight.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/snowfight/SnowFight.java @@ -104,6 +104,12 @@ public class SnowFight extends TeamGame this.TeamArmor = true; this.TeamArmorHotbar = true; + + registerChatStats( + Kills, + Deaths, + KDRatio + ); // this.WorldWeatherEnabled = true; // this.WorldTimeSet = 4000; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java index 207ec28b4..9e15fb683 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/Spleef.java @@ -32,6 +32,7 @@ import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.game.SoloGame; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.SpleefBlockDestroyStatTracker; import net.minecraft.server.v1_8_R3.EntityArrow; @@ -62,6 +63,15 @@ public class Spleef extends SoloGame this.PrepareFreeze = false; registerStatTrackers(new SpleefBlockDestroyStatTracker(this)); + + registerChatStats( + Kills, + Assists, + BlankLine, + new ChatStatData("BlocksBroken", "Blocks Broken", true), + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/SpleefTeams.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/SpleefTeams.java index 33477cd48..47ea38230 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/SpleefTeams.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/spleef/SpleefTeams.java @@ -30,6 +30,7 @@ import nautilus.game.arcade.GameType; import nautilus.game.arcade.game.TeamGame; import nautilus.game.arcade.game.games.spleef.kits.*; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import net.minecraft.server.v1_8_R3.EntityArrow; @@ -59,6 +60,15 @@ public class SpleefTeams extends TeamGame this.TeamArmor = true; this.TeamArmorHotbar = true; + + registerChatStats( + Kills, + Assists, + BlankLine, + new ChatStatData("BlocksBroken", "Blocks Broken", true), + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/squidshooter/SquidShooter.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/squidshooter/SquidShooter.java index 8842a3799..a77b8817b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/squidshooter/SquidShooter.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/squidshooter/SquidShooter.java @@ -50,6 +50,8 @@ public class SquidShooter extends SoloGame this.PrepareFreeze = false; this.CompassEnabled = true; this.KitRegisterState = GameState.Prepare; + + registerChatStats(); } @EventHandler public void Death(CombatDeathEvent event) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/stacker/Stacker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/stacker/Stacker.java index 5757baaad..93fd43c1e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/stacker/Stacker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/stacker/Stacker.java @@ -54,6 +54,8 @@ public class Stacker extends SoloGame implements IThrown "Players lose 5 stacked animals if they get hit.", "First to stack 16 high wins!" }); + + registerChatStats(); } @EventHandler diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SoloSurvivalGames.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SoloSurvivalGames.java index 8085bf2ed..a47d0d583 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SoloSurvivalGames.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SoloSurvivalGames.java @@ -14,6 +14,7 @@ import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.Game.GameState; +import nautilus.game.arcade.managers.chat.ChatStatData; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -39,6 +40,16 @@ public class SoloSurvivalGames extends SurvivalGames }); this.DamageTeamSelf = true; + + registerChatStats( + Kills, + Assists, + BlankLine, + DamageTaken, + DamageDealt, + BlankLine, + new ChatStatData("SupplyDropsOpened", "Chests opened", true) + ); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGamesTeams.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGamesTeams.java index f6385469e..b225b4f52 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGamesTeams.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/SurvivalGamesTeams.java @@ -50,6 +50,7 @@ import nautilus.game.arcade.game.games.survivalgames.kit.KitHorseman; import nautilus.game.arcade.game.games.survivalgames.kit.KitKnight; import nautilus.game.arcade.game.games.survivalgames.kit.KitLooter; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -255,6 +256,16 @@ public class SurvivalGamesTeams extends TeamGame //Tournament if (Manager.IsTournamentServer()) QuitOut = false; + + registerChatStats( + Kills, + Assists, + BlankLine, + DamageTaken, + DamageDealt, + BlankLine, + new ChatStatData("SupplyDropsOpened", "Chests opened", true) + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/TeamSurvivalGames.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/TeamSurvivalGames.java index baf59a0bf..3319b08b1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/TeamSurvivalGames.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/survivalgames/TeamSurvivalGames.java @@ -17,6 +17,7 @@ import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.GameTeam; +import nautilus.game.arcade.managers.chat.ChatStatData; import org.bukkit.ChatColor; import org.bukkit.Location; @@ -59,6 +60,16 @@ public class TeamSurvivalGames extends SurvivalGames this.DamageTeamSelf = false; this.DontAllowOverfill = true; + + registerChatStats( + Kills, + Assists, + BlankLine, + DamageTaken, + DamageDealt, + BlankLine, + new ChatStatData("SupplyDropsOpened", "Chests opened", true) + ); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/tug/Tug.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/tug/Tug.java index 47e69f1d8..30a7e7a17 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/tug/Tug.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/tug/Tug.java @@ -75,6 +75,8 @@ public class Tug extends TeamGame this.DeathOut = false; this.DeathSpectateSecs = 20; + + registerChatStats(); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java index 6bff9d4b2..46574369b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java @@ -59,7 +59,9 @@ import nautilus.game.arcade.game.games.turfforts.kits.KitInfiltrator; import nautilus.game.arcade.game.games.turfforts.kits.KitMarksman; import nautilus.game.arcade.game.games.turfforts.kits.KitShredder; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.BehindEnemyLinesStatTracker; +import nautilus.game.arcade.stats.BlockPlaceStatTracker; import nautilus.game.arcade.stats.BlockShreadStatTracker; import nautilus.game.arcade.stats.TheComebackStatTracker; import net.minecraft.server.v1_8_R3.EntityArrow; @@ -149,7 +151,16 @@ public class TurfForts extends TeamGame registerStatTrackers( new BlockShreadStatTracker(this), new BehindEnemyLinesStatTracker(this), - new TheComebackStatTracker(this) + new TheComebackStatTracker(this), + new BlockPlaceStatTracker(this, new Material[]{}) + ); + + registerChatStats( + Kills, + Deaths, + KDRatio, + BlankLine, + new ChatStatData("BlocksPlaced", "Blocks Placed", true) ); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/typewars/TypeWars.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/typewars/TypeWars.java index 3b6aaad71..fd5ad26b4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/typewars/TypeWars.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/typewars/TypeWars.java @@ -66,6 +66,8 @@ import nautilus.game.arcade.game.games.typewars.tutorial.TutorialTypeWars; import nautilus.game.arcade.gametutorial.events.GameTutorialEndEvent; import nautilus.game.arcade.gametutorial.events.GameTutorialStartEvent; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.chat.ChatStatData; +import nautilus.game.arcade.stats.TimeInGameStatTracker; import nautilus.game.arcade.world.WorldData; public class TypeWars extends TeamGame @@ -167,6 +169,10 @@ public class TypeWars extends TeamGame new KillsStatTracker(this), new TimeInGameTracker(this) ); + + registerChatStats( + new ChatStatData("MinionKills", "Kills", true) + ); manager.GetCreature().SetDisableCustomDrops(true); manager.GetChat().setThreeSecondDelay(false); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/UHC.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/UHC.java index e1523f86c..d543c505a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/UHC.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/UHC.java @@ -207,6 +207,14 @@ public class UHC extends TeamGame _createTime = System.currentTimeMillis(); _serverTime = Utility.currentTimeMillis(); + + registerChatStats( + Kills, + Assists, + BlankLine, + DamageTaken, + DamageDealt + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/WitherGame.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/WitherGame.java index c224dcedf..6b5a74987 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/WitherGame.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wither/WitherGame.java @@ -66,6 +66,7 @@ import nautilus.game.arcade.game.games.wither.kit.KitWitherMinion; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.NullKit; import nautilus.game.arcade.kit.perks.data.IBlockRestorer; +import nautilus.game.arcade.managers.chat.ChatStatData; import nautilus.game.arcade.stats.TeamDeathsStatTracker; import nautilus.game.arcade.stats.TeamKillsStatTracker; @@ -148,6 +149,13 @@ public class WitherGame extends TeamGame implements IBlockRestorer new TeamDeathsStatTracker(this), new TeamKillsStatTracker(this) ); + + registerChatStats( + DamageTaken, + DamageDealt, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/Wizards.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/Wizards.java index 64afb0d14..9ab574b9b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/Wizards.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/Wizards.java @@ -54,6 +54,7 @@ import net.minecraft.server.v1_8_R3.EntityFireball; import net.minecraft.server.v1_8_R3.PacketPlayOutSetSlot; import net.minecraft.server.v1_8_R3.PacketPlayOutWindowItems; +import nautilus.game.arcade.managers.chat.ChatStatData; import org.apache.commons.lang.IllegalClassException; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -166,6 +167,16 @@ public class Wizards extends SoloGame SoupEnabled = false; DamageTeamSelf = true; + registerChatStats( + Kills, + Assists, + BlankLine, + DamageTaken, + DamageDealt, + BlankLine, + new ChatStatData("kit", "Kit", true) + ); + Manager.getCosmeticManager().setHideParticles(true); // Manager.GetDamage().GetCombatManager().setUseWeaponName(AttackReason.DefaultWeaponName); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/zombiesurvival/ZombieSurvival.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/zombiesurvival/ZombieSurvival.java index 3d1a0247d..3f118fbb9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/zombiesurvival/ZombieSurvival.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/zombiesurvival/ZombieSurvival.java @@ -71,6 +71,11 @@ public class ZombieSurvival extends SoloGame this.HungerSet = 20; this.CompassEnabled = true; + + registerChatStats( + Kills, + Assists + ); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/ChatStatData.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/ChatStatData.java new file mode 100644 index 000000000..e5a692036 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/ChatStatData.java @@ -0,0 +1,56 @@ +package nautilus.game.arcade.managers.chat; + +/** + * Created by TeddyDev on 10/01/2016. + */ +public class ChatStatData +{ + private String _stat; + private String _display; + private boolean _isValue; + + public ChatStatData() + { + + } + + public ChatStatData(String stat, String display, boolean isValue) + { + _stat = stat; + _display = display; + _isValue = isValue; + } + + public ChatStatData blankLine() + { + _stat = null; + _display = " "; + _isValue = false; + + return this; + } + + public ChatStatData plainText(String text) + { + _stat = null; + _display = text; + _isValue = false; + + return this; + } + + public String getStat() + { + return _stat; + } + + public String getDisplay() + { + return _display; + } + + public boolean isValue() + { + return _isValue; + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/GameChatManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/GameChatManager.java new file mode 100644 index 000000000..c9a93bff2 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/chat/GameChatManager.java @@ -0,0 +1,1748 @@ +package nautilus.game.arcade.managers.chat; + +import java.text.DecimalFormat; +import java.util.AbstractMap; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.Map; + +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import net.minecraft.server.v1_8_R3.IChatBaseComponent; +import net.minecraft.server.v1_8_R3.PacketPlayOutChat; + +import com.google.gson.stream.MalformedJsonException; +import mineplex.core.account.CoreClient; +import mineplex.core.common.Rank; +import mineplex.core.common.jsonchat.ChildJsonMessage; +import mineplex.core.common.jsonchat.JsonMessage; +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.party.Party; +import nautilus.game.arcade.ArcadeManager; +import nautilus.game.arcade.game.Game; +import nautilus.game.arcade.game.Game.GameState; +import nautilus.game.arcade.game.GameTeam; +import nautilus.game.arcade.managers.chat.ChatStatData; +import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.StringUtils; +import org.jooq.tools.json.JSONObject; + +public class GameChatManager implements Listener +{ + + private ArcadeManager _manager; + + private LinkedList _chatStats; + + public GameChatManager(ArcadeManager manager) + { + _manager = manager; + + _manager.getPluginManager().registerEvents(this, _manager.getPlugin()); + + _chatStats = new LinkedList(); + } + + @EventHandler + public void MeCancel(PlayerCommandPreprocessEvent event) + { + if (event.getMessage().startsWith("/me ")) + { + UtilPlayer.message(event.getPlayer(), F.main("Mirror", "You can't see /me messages, are you a vampire?")); + event.setCancelled(true); + } + } + + @EventHandler + public void HandleChat(AsyncPlayerChatEvent event) + { + if (event.isCancelled()) + return; + + Player sender = event.getPlayer(); + String senderName = sender.getName(); + + PacketPlayOutChat packet = null; + String format = ""; + String name = ""; + String message = ""; + + + //Dead Prefix + String dead = ""; + if (_manager.GetGame() != null) + if (_manager.GetGame().GetTeam(sender) != null) + if (!_manager.GetGame().IsAlive(sender)) + dead = C.cGray + "Dead " + C.Reset; + + Rank rank = _manager.GetClients().Get(sender).GetRank(); + String disguiseTag = ""; + if(_manager.GetClients().Get(sender).isDisguised()) + { + CoreClient cc = _manager.GetClients().Get(sender); + rank = cc.getDisguisedRank(); + + if(!cc.GetRank().has(Rank.JNR_DEV)) + { + disguiseTag = ChatColor.BLACK + " "; + } + } + + boolean ownsUltra = false; + + if (_manager.GetGame() != null) + ownsUltra = _manager.GetDonation().Get(sender.getName()).OwnsUnknownPackage(_manager.GetServerConfig().ServerType + " ULTRA"); + + //Level + String levelStr = ""; + if (!_manager.GetGameHostManager().isPrivateServer()) + levelStr = _manager.GetAchievement().getMineplexLevel(sender, rank); + + String rankStr = ""; + //Rank Prefix & MPS Host Prefix + if (_manager.GetGameHostManager().isHost(event.getPlayer())) + { + if (_manager.GetGameHostManager().isEventServer()) + rankStr = C.cDGreen + C.Bold + "Event Host " + C.Reset; + else + rankStr = C.cDGreen + C.Bold + "MPS Host " + C.Reset; + } + else if (_manager.GetGameHostManager().isAdmin(event.getPlayer(), false)) + { + if (_manager.GetGameHostManager().isEventServer()) + rankStr = C.cDGreen + C.Bold + "Event Co-Host " + C.Reset; + else + rankStr = C.cDGreen + C.Bold + "MPS Co-Host " + C.Reset; + } + else + { + if (rank != Rank.ALL) + rankStr = rank.getTag(true, true) + " " + C.Reset; + + if (ownsUltra && !rank.has(Rank.ULTRA)) + rankStr = Rank.ULTRA.getTag(true, true) + " " + C.Reset; + } + + if (event.getMessage().charAt(0) == '@') + { + //Party Chat + Party party = _manager.getPartyManager().GetParty(sender); + + if (party != null) + { + event.getRecipients().clear(); + + event.setMessage(event.getMessage().substring(1, event.getMessage().length())); + event.setFormat(levelStr + C.cDPurple + C.Bold + "Party " + C.cWhite + C.Bold + senderName + " " + C.cPurple + "%2$s"); + + format = event.getFormat().split(sender.getName())[0]; + name = C.cWhite + C.Bold + sender.getName() + C.Reset; + message = event.getFormat().split(sender.getName())[1].replace("%2$s", "") + _manager.GetChat().getFilteredMessage(sender, event.getMessage()); + + if(!_manager.GetGame().IsLive()) + { + event.getRecipients().addAll(party.GetPlayersOnline()); + } + else + { + if(safeSend(sender, format, name, message, party.GetPlayersOnline())) + { + event.setCancelled(true); + } + } + + return; + } + } + + //Base Format + event.setFormat(disguiseTag + dead + levelStr + rankStr + _manager.GetColor(sender) + senderName + " " + ChatColor.WHITE + "%2$s"); + + //Public/Private (Not If Player Dead) + if (_manager.GetGame() != null && _manager.GetGame().GetState() == GameState.Live) + { + boolean globalMessage = false; + + //Team + GameTeam team = _manager.GetGame().GetTeam(sender); + + if (team != null) + { + //Team Chat + if (event.getMessage().charAt(0) == '@') + { + event.setMessage(event.getMessage().substring(1, event.getMessage().length())); + event.setFormat(disguiseTag + C.cWhite + C.Bold + "Team" + " " + dead + levelStr + rankStr + team.GetColor() + senderName + " " + C.cWhite + "%2$s"); + + format = event.getFormat().split(sender.getName())[0]; + name = _manager.GetColor(sender) + sender.getName(); + } + //All Chat + else + { + globalMessage = true; + event.setFormat(disguiseTag + dead + levelStr + rankStr + team.GetColor() + senderName + " " + C.cWhite + "%2$s"); + + format = event.getFormat().split(sender.getName())[0]; + name = _manager.GetColor(sender) + sender.getName(); + } + + message = event.getFormat().split(sender.getName())[1].replace("%2$s", "") + _manager.GetChat().getFilteredMessage(sender, event.getMessage()); + } + + if (globalMessage) + { + if(_manager.GetGame().IsLive()) + { + if(safeSend(sender, format, name, message, _manager.GetGame().GetPlayers(false))) + { + event.setCancelled(true); + } + } + return; + } + + //Team Message Remove Recipient + Iterator recipientIterator = event.getRecipients().iterator(); + + while (recipientIterator.hasNext()) + { + Player receiver = recipientIterator.next(); + + if (!_manager.GetServerConfig().Tournament && _manager.GetClients().Get(receiver).GetRank().has(Rank.MODERATOR)) + continue; + + GameTeam recTeam = _manager.GetGame().GetTeam(receiver); + GameTeam sendTeam = _manager.GetGame().GetTeam(sender); + + if (recTeam == null || sendTeam == null) + { + continue; + } + + if (!recTeam.equals(sendTeam)) + recipientIterator.remove(); + } + + if(safeSend(sender, format, name, message, event.getRecipients())) + { + event.setCancelled(true); + } + } + } + + public boolean safeSend(Player sender, String format, String name, String message, Collection sendto) + { + final JsonMessage json = buildJSON(sender, format, name, _chatStats, message); + try + { + json.send(JsonMessage.MessageType.CHAT_BOX, sendto.toArray(new Player[sendto.size()])); + + return true; + } + catch (Exception e) + { + System.out.println("ChatStats Failed to send JSON message.."); + System.out.println(json); + return false; + } + } + + public void setGameChatStats(ChatStatData... stats) + { + _chatStats = new LinkedList(); + for(ChatStatData chatStat : stats) + { + _chatStats.add(chatStat); + } + } + + private JsonMessage buildJSON(Player player, String format, String name, LinkedList hoverText, String message) + { + LinkedList> temp = new LinkedList>(); + + ChatColor teamColor = _manager.GetGame().GetTeam(player).GetColor(); + temp.add(new AbstractMap.SimpleEntry(teamColor + C.Bold + ChatColor.stripColor(name) + teamColor + "'s stats", "")); + temp.add(new AbstractMap.SimpleEntry(" ", "")); + + Game game = _manager.GetGame(); + String gameName = game.GetName(); + + for (int i = 0; i < hoverText.size(); i++) + { + if (!_manager.GetGame().GetStats().containsKey(player)) + { + temp.add(new AbstractMap.SimpleEntry(C.cGray + "Retrieving stats..", "")); + break; + } + + ChatStatData chatStatData = hoverText.get(i); + String display = (chatStatData.getDisplay() == null ? chatStatData.getStat() : chatStatData.getDisplay()); + + if(!chatStatData.isValue()) + { + temp.add(new AbstractMap.SimpleEntry(chatStatData.getDisplay(), "")); + continue; + } + + if (chatStatData.getStat().equalsIgnoreCase("kit")) + { + temp.add(new AbstractMap.SimpleEntry(display + ": ", game.GetKit(player).GetName())); + continue; + } + + if (chatStatData.getStat().equalsIgnoreCase("kdratio")) + { + int kills; + int deaths; + + if (game.GetStats().get(player).containsKey(gameName + ".Kills")) + kills = game.GetStats().get(player).get(gameName + ".Kills"); + else + kills = 0; + + if (game.GetStats().get(player).containsKey(gameName + ".Deaths")) + deaths = game.GetStats().get(player).get(gameName + ".Deaths"); + else + deaths = 0; + + temp.add(new AbstractMap.SimpleEntry(display + ": ", getRatio(kills, deaths, "##.##"))); + continue; + } + + if (game.GetStats().get(player).containsKey(gameName + "." + chatStatData.getStat())) + { + temp.add(new AbstractMap.SimpleEntry(display + ": ", (game.GetStats().get(player).get(gameName + "." + chatStatData.getStat()).toString()))); + } + else + { + temp.add(new AbstractMap.SimpleEntry(display + ": ", "0")); + } + } + + String stats = ""; + for (int i = 0; i < temp.size(); i++) + { + stats += C.cWhite + JSONObject.escape(temp.get(i).getKey()) + C.cGray + JSONObject.escape(temp.get(i).getValue()) + (i >= temp.size()-1 ? "" : "\\n"); + } + + JsonMessage jsonMessage = new JsonMessage("") + .extra(JSONObject.escape(format)) + .add(JSONObject.escape(name)).hover("show_text", stats) + .add(JSONObject.escape(message)); + return jsonMessage; + } + + public String getRatio(int var1, int var2, String format) + { + double ratio = 0.0; + + if(var1 <= 0) ratio = 0d; + else if(var2 <= 1) ratio = (double) var1; + else if(var1 <= 0 && var2 <= 0) ratio = 0d; + else ratio = ((double) var1 / var2); + + return new DecimalFormat(format).format(ratio); + } +} +/** DONE */ +// BaconBrawl +// Barbarians +// Bridges +// MasterBuilders +// Castle Siege +// Champions [ CTF - DOM - TDM ] +// Christmas Chaos +// Death Tag +// Dragon Escape +// Dragon Escape Teams +// Dragons +// Dragons Teams +// Draw My Thing +// Evolution +// Gladiators +// Gravity +// Bomb Lobbers +// Micro Battles +// Milk Cow +// MineStrike +// Monster Maze +// Paintball +// One in the Quiver +// One in the Quiver Teams +// Runner +// Search And Destroy +// Sheep Quest +// SkyWars +// Super Smash +// Snake +// Sneaky Assassins +// Snow Fight +// Spleef +// Survival Games +// Turf Forts/Wars +// Type Wars +// UHC +// Wither +// Wizards +// Zombie Survival + +/** BROKEN / NON_LIVE_GAMES */ +// BossBattles +// BouncyBalls +// Cards Against Humanity +// Dragon Riders +// Hide And Seek +// Hole In The Wall +// Horse Charge +// MineWare +// Moba +// Monster League +// Old MineWare +// Squid Shooter +// Stacker + +/* +A Barbarians Life.Assists +A Barbarians Life.Damage Dealt +A Barbarians Life.Damage Taken +A Barbarians Life.Damage Taken PvP +A Barbarians Life.Deaths +A Barbarians Life.ExpEarned +A Barbarians Life.GamesPlayed +A Barbarians Life.GemsEarned +A Barbarians Life.Kills +A Barbarians Life.Losses +A Barbarians Life.Wins + +Bacon Brawl.Assists +Bacon Brawl.Damage Dealt +Bacon Brawl.Damage Taken +Bacon Brawl.Damage Taken PvP +Bacon Brawl.Deaths +Bacon Brawl.ExpEarned +Bacon Brawl.GamesPlayed +Bacon Brawl.GemsEarned +Bacon Brawl.Kills +Bacon Brawl.Losses +Bacon Brawl.Wins +Bacon.Wins +BaconBrawl.Wins + +Block Hunt.Assists +Block Hunt.BadHider +Block Hunt.Damage Dealt +Block Hunt.Damage Taken +Block Hunt.Damage Taken PvP +Block Hunt.Deaths +Block Hunt.ExpEarned +Block Hunt.GamesPlayed +Block Hunt.GemsEarned +Block Hunt.Hiders Deaths +Block Hunt.Hiders Kills +Block Hunt.HunterKiller +Block Hunt.HunterOfTheYear +Block Hunt.Hunters Deaths +Block Hunt.Hunters Kills +Block Hunt.Kills +Block Hunt.Losses +Block Hunt.Meow +Block Hunt.Wins + +BlueBeetleHD + +Bomb Lobbers.Assists +Bomb Lobbers.BestTeam +Bomb Lobbers.BlastProof +Bomb Lobbers.Blue Deaths +Bomb Lobbers.Blue Kills +Bomb Lobbers.Damage Dealt +Bomb Lobbers.Damage Taken +Bomb Lobbers.Damage Taken PvP +Bomb Lobbers.Deaths +Bomb Lobbers.Direct Hit +Bomb Lobbers.ExpEarned +Bomb Lobbers.GemsEarned +Bomb Lobbers.JellySkin +Bomb Lobbers.Killer +Bomb Lobbers.Kills +Bomb Lobbers.Losses +Bomb Lobbers.Red Deaths +Bomb Lobbers.Red Kills +Bomb Lobbers.Sniper +Bomb Lobbers.Thrown +Bomb Lobbers.Wins + +Boss Battles.Damage Dealt +Boss Battles.Damage Taken +Boss Battles.Damage Taken PvP +Boss Battles.Deaths +Boss Battles.ExpEarned +Boss Battles.GemsEarned +Boss Battles.Kills +Boss Battles.Wins + +Bouncy Balls.Damage Taken +Bouncy Balls.Deaths +Bouncy Balls.ExpEarned +Bouncy Balls.GemsEarned +Bouncy Balls.Losses +Bouncy Balls.Wins + +Bridge.Wins +Bridges.GoodForTheMasses +Bridges.Win +Bridges.Wins + +Build Game.Win +Build Wars.ExpEarned +Build Wars.GemsEarned +Build Wars.Losses +Build Wars.Win +Build Wars.Wins +Build.Win + +Canvas Warfare.Blue Deaths +Canvas Warfare.Damage Taken +Canvas Warfare.Deaths +Canvas Warfare.ExpEarned +Canvas Warfare.GemsEarned +Canvas Warfare.Green Deaths +Canvas Warfare.Losses +Canvas Warfare.Red Deaths +Canvas Warfare.Wins +Canvas Warfare.Yellow Deaths + +Castle Siege.Assassin +Castle Siege.Assists +Castle Siege.BloodThirsty +Castle Siege.Damage Dealt +Castle Siege.Damage Taken +Castle Siege.Damage Taken PvP +Castle Siege.Deaths +Castle Siege.Defenders Deaths +Castle Siege.Defenders Kills +Castle Siege.ExpEarned +Castle Siege.ForTheKing +Castle Siege.GamesPlayed +Castle Siege.GemsEarned +Castle Siege.Kills +Castle Siege.KingSlayer +Castle Siege.Losses +Castle Siege.Undead Deaths +Castle Siege.Undead Kills +Castle Siege.Wins +CastleSeige.Wins +CastleSiege.Wins + +Cave In.Damage Dealt +Cave In.Damage Taken +Cave In.Damage Taken PvP +Cave In.Deaths +Cave In.ExpEarned +Cave In.GemsEarned +Cave In.Kills +Cave In.Losses +Cave In.Wins + +Champion Dominate.wins +Champion.Wins +Champions Capture the Flag.Assassination +Champions Capture the Flag.Assists +Champions Capture the Flag.Captures +Champions Capture the Flag.Clutch +Champions Capture the Flag.Damage Dealt +Champions Capture the Flag.Damage Taken +Champions Capture the Flag.Damage Taken PvP +Champions Capture the Flag.Deaths +Champions Capture the Flag.Earthquake +Champions Capture the Flag.ExpEarned +Champions Capture the Flag.GemsEarned +Champions Capture the Flag.Kills +Champions Capture the Flag.Losses +Champions Capture the Flag.Wins +Champions CTF.Assassination +Champions CTF.Assists +Champions CTF.Captures +Champions CTF.Clutch +Champions CTF.Damage Dealt +Champions CTF.Damage Taken +Champions CTF.Damage Taken PvP +Champions CTF.Deaths +Champions CTF.Earthquake +Champions CTF.ExpEarned +Champions CTF.GemsEarned +Champions CTF.Kills +Champions CTF.Losses +Champions CTF.MassElectrocution +Champions CTF.SpecialWin +Champions CTF.TheLongestShot +Champions CTF.Wins +Champions Dom.Wins +Champions Dominate.win +Champions Dominate.Wins +Champions Domination.Assassination +Champions Domination.Assists +Champions Domination.Blue Deaths +Champions Domination.Blue Kills +Champions Domination.Damage Dealt +Champions Domination.Damage Taken +Champions Domination.Damage Taken PvP +Champions Domination.Deaths +Champions Domination.Earthquake +Champions Domination.ExpEarned +Champions Domination.GamesPlayed +Champions Domination.GemsEarned +Champions Domination.Kills +Champions Domination.Losses +Champions Domination.MassElectrocution +Champions Domination.Red Deaths +Champions Domination.Red Kills +Champions Domination.TheLongestShot +Champions Domination.Wins +Champions Domination.Yellow Deaths +Champions Domination.Yellow Kills +Champions TDM.Ace +Champions TDM.Assassination +Champions TDM.Assists +Champions TDM.Blue Deaths +Champions TDM.Blue Kills +Champions TDM.Damage Dealt +Champions TDM.Damage Taken +Champions TDM.Damage Taken PvP +Champions TDM.Deaths +Champions TDM.Earthquake +Champions TDM.ExpEarned +Champions TDM.FlawlessVictory +Champions TDM.GamesPlayed +Champions TDM.GemsEarned +Champions TDM.Kills +Champions TDM.Losses +Champions TDM.MassElectrocution +Champions TDM.Red Deaths +Champions TDM.Red Kills +Champions TDM.TheLongestShot +Champions TDM.Wins +Champions Team Deathmatch.Wins +Champions.Wins + +Christmas Chaos.Assists +Christmas Chaos.Damage Dealt +Christmas Chaos.Damage Taken +Christmas Chaos.Damage Taken PvP +Christmas Chaos.Deaths +Christmas Chaos.ExpEarned +Christmas Chaos.GamesPlayed +Christmas Chaos.GemsEarned +Christmas Chaos.Kills +Christmas Chaos.Losses +Christmas Chaos.Wins + +Clans.TimeInGame +Clans.TimePlaying + +Climb Time.Assists +Climb Time.Damage Dealt +Climb Time.Damage Taken +Climb Time.Damage Taken PvP +Climb Time.Deaths +Climb Time.ExpEarned +Climb Time.GemsEarned +Climb Time.Kills +Climb Time.Losses +Climb Time.Wins + +Coin +coins + +Competitive1.Damage Dealt +Competitive1.Damage Taken +Competitive1.Damage Taken PvP +Competitive1.Deaths +Competitive1.ExpEarned +Competitive1.GemsEarned +Competitive1.Kills +Competitive1.Losses +Competitive1.Wins + +Craft Against Humanity.ExpEarned +Craft Against Humanity.GamesPlayed +Craft Against Humanity.GemsEarned +Craft Against Humanity.Losses +Craft Against Humanity.Wins + +Death Tag.Assists +Death Tag.Chasers Deaths +Death Tag.Chasers Kills +Death Tag.ComeAtMeBro +Death Tag.Damage Dealt +Death Tag.Damage Taken +Death Tag.Damage Taken PvP +Death Tag.Deaths +Death Tag.ExpEarned +Death Tag.GamesPlayed +Death Tag.GemsEarned +Death Tag.Kills +Death Tag.Losses +Death Tag.Runners Deaths +Death Tag.Runners Kills +Death Tag.Wins + +Dominate.Wins + +Dragon Escape Teams.Blue Deaths +Dragon Escape Teams.Damage Dealt +Dragon Escape Teams.Damage Taken +Dragon Escape Teams.Damage Taken PvP +Dragon Escape Teams.Deaths +Dragon Escape Teams.ExpEarned +Dragon Escape Teams.GamesPlayed +Dragon Escape Teams.GemsEarned +Dragon Escape Teams.Green Deaths +Dragon Escape Teams.Losses +Dragon Escape Teams.Red Deaths +Dragon Escape Teams.Wins +Dragon Escape Teams.Yellow Deaths +Dragon Escape.Damage Dealt +Dragon Escape.Damage Taken +Dragon Escape.Damage Taken PvP +Dragon Escape.Deaths +Dragon Escape.ExpEarned +Dragon Escape.GamesPlayed +Dragon Escape.GemsEarned +Dragon Escape.Kills +Dragon Escape.Losses +Dragon Escape.Paralympics +Dragon Escape.Win.Frost Run +Dragon Escape.Win.Into the Jungle +Dragon Escape.Win.Journey +Dragon Escape.Win.Pirate Bay +Dragon Escape.Win.Skylands +Dragon Escape.Win.The Land Before Time +Dragon Escape.Win.Through Hell +Dragon Escape.Wins + +Dragon Riders.Damage Dealt +Dragon Riders.Damage Taken +Dragon Riders.Damage Taken PvP +Dragon Riders.ExpEarned +Dragon Riders.GamesPlayed +Dragon Riders.GemsEarned +Dragon Riders.Losses +Dragon Riders.Wins + +Dragons Teams.Blue Deaths +Dragons Teams.Damage Dealt +Dragons Teams.Damage Taken +Dragons Teams.Damage Taken PvP +Dragons Teams.Deaths +Dragons Teams.ExpEarned +Dragons Teams.GamesPlayed +Dragons Teams.GemsEarned +Dragons Teams.Green Deaths +Dragons Teams.Losses +Dragons Teams.Red Deaths +Dragons Teams.Wins +Dragons Teams.Yellow Deaths + +Dragons.Damage Dealt +Dragons.Damage Taken +Dragons.Damage Taken PvP +Dragons.Deaths +Dragons.ExpEarned +Dragons.GamesPlayed +Dragons.GemsEarned +Dragons.Green Deaths +Dragons.Kills +Dragons.Losses +Dragons.Sparklez +Dragons.Win +Dragons.Wins + +Draw My Thing.Damage Dealt +Draw My Thing.Damage Taken +Draw My Thing.Damage Taken PvP +Draw My Thing.ExpEarned +Draw My Thing.GamesPlayed +Draw My Thing.GemsEarned +Draw My Thing.KeenEye +Draw My Thing.Losses +Draw My Thing.MrSquiggle +Draw My Thing.PureLuck +Draw My Thing.Wins + +Duck Hunt.Damage Dealt +Duck Hunt.Damage Taken +Duck Hunt.Deaths +Duck Hunt.ExpEarned +Duck Hunt.GemsEarned +Duck Hunt.Losses +Duck Hunt.Wins + +Duck Stompers.Damage Dealt +Duck Stompers.Damage Taken +Duck Stompers.Deaths +Duck Stompers.ExpEarned +Duck Stompers.GemsEarned +Duck Stompers.Losses +Duck Stompers.Wins + +Endurance.Assists +Endurance.Damage Dealt +Endurance.Damage Taken +Endurance.Damage Taken PvP +Endurance.Deaths +Endurance.ExpEarned +Endurance.GemsEarned +Endurance.Kills +Endurance.Losses +Endurance.Wins + +Evolution.AbilityOnly +Evolution.Assists +Evolution.Damage Dealt +Evolution.Damage Taken +Evolution.Damage Taken PvP +Evolution.Deaths +Evolution.EvolveKill +Evolution.ExpEarned +Evolution.GamesPlayed +Evolution.GemsEarned +Evolution.Kills +Evolution.Losses +Evolution.MeleeOnly +Evolution.NoDeaths +Evolution.Rampage +Evolution.Stealth +Evolution.Wins + +exp +ExpEarned +Experience +Free Kits Forever +Gem +gems + +GemWars.Assists +GemWars.Blue Deaths +GemWars.Blue Kills +GemWars.Damage Dealt +GemWars.Damage Taken +GemWars.Damage Taken PvP +GemWars.Deaths +GemWars.GemsEarned +GemWars.Kills +GemWars.Red Deaths +GemWars.Red Kills + +Gladiator Arena.Assists +Gladiator Arena.Damage Dealt +Gladiator Arena.Damage Taken +Gladiator Arena.Damage Taken PvP +Gladiator Arena.Deaths +Gladiator Arena.ExpEarned +Gladiator Arena.GemsEarned +Gladiator Arena.Kills +Gladiator Arena.Losses +Gladiator Arena.Wins + +Gladiators.Assists +Gladiators.Brawler +Gladiators.Damage Dealt +Gladiators.Damage Taken +Gladiators.Damage Taken PvP +Gladiators.Deaths +Gladiators.ExpEarned +Gladiators.Flawless +Gladiators.GemsEarned +Gladiators.Kills +Gladiators.Losses +Gladiators.Precision +Gladiators.SwiftKill +Gladiators.Untouchable +Gladiators.Wins + +Global.Build Draw Abuse +Global.Christmas Presents 2015 +Global.DailyReward +Global.DailyVote +Global.DeniedReportsCount +Global.Egg Baskets Smashed +Global.Exp Earned +Global.ExpEarned +Global.ExpEarned - +GLOBAL.Experience +Global.Experience Earned +Global.GamesPlayed +Global.GemsEarned +Global.Global.ExpEarned +Global.Halloween Pumpkins 2015 +Global.Level +Global.MineplexLevel +Global.Pumpkins Smashed +Global.SurvivalGamesWins +Global.TimeInGame +Global.TotalReportsCount +Global.Treasure.Ancient +Global.Treasure.Christmas +Global.Treasure.Mythical +Global.Treasure.Old +GlobalEarned +GlobalExp +GlobalExp.Earned +GlobalExpEarned +GlobalExperience +Global_Exp +GLOBAL_MINEPLEX_LEVEL +Globlal.ExpEarned + +Gravity.Damage Dealt +Gravity.Damage Taken +Gravity.Damage Taken PvP +Gravity.Deaths +Gravity.ExpEarned +Gravity.GamesPlayed +Gravity.GemsEarned +Gravity.Losses +Gravity.Wins + +Halloween Horror.Damage Dealt +Halloween Horror.Damage Taken +Halloween Horror.Damage Taken PvP +Halloween Horror.Deaths +Halloween Horror.ExpEarned +Halloween Horror.GamesPlayed +Halloween Horror.GemsEarned +Halloween Horror.Losses +Halloween Horror.Players Deaths +Halloween Horror.Wins + +Hole in the Wall.Damage Taken +Hole in the Wall.Deaths +Hole in the Wall.ExpEarned +Hole in the Wall.GamesPlayed +Hole in the Wall.GemsEarned +Hole in the Wall.Losses +Hole in the Wall.Wins + +Horseback.Assists +Horseback.Damage Dealt +Horseback.Damage Taken +Horseback.Damage Taken PvP +Horseback.Deaths +Horseback.ExpEarned +Horseback.GamesPlayed +Horseback.GemsEarned +Horseback.Kills +Horseback.Losses +Horseback.Wins + +Juggernaut.Assists +Juggernaut.Damage Dealt +Juggernaut.Damage Taken +Juggernaut.Damage Taken PvP +Juggernaut.Deaths +Juggernaut.GemsEarned +Juggernaut.Hunters Deaths +Juggernaut.Kills + +King of the Hill.Assists +King of the Hill.Blue Deaths +King of the Hill.Blue Kills +King of the Hill.Damage Dealt +King of the Hill.Damage Taken +King of the Hill.Damage Taken PvP +King of the Hill.Deaths +King of the Hill.ExpEarned +King of the Hill.GemsEarned +King of the Hill.Green Deaths +King of the Hill.Green Kills +King of the Hill.Kills +King of the Hill.Losses +King of the Hill.Red Deaths +King of the Hill.Red Kills +King of the Hill.Wins +King of the Hill.Yellow Deaths +King of the Hill.Yellow Kills + +Laser Tag.Damage Dealt +Laser Tag.Damage Taken +Laser Tag.Damage Taken PvP +Laser Tag.ExpEarned +Laser Tag.GemsEarned +Laser Tag.Losses +Laser Tag.Wins + +Master Builder.Win +Master Builder.Wins +Master Builders.Build Draw Abuse +Master Builders.Conservative +Master Builders.ExpEarned +Master Builders.GamesPlayed +Master Builders.GemsEarned +Master Builders.Good Builder +Master Builders.Losses +Master Builders.Master Builders.Conservative +Master Builders.Master Builders.Good Builder +Master Builders.Win +Master Builders.Wins +Master Dragons.Wins + +Micro Battle.Annihilation +Micro Battle.Assists +Micro Battle.Blue Deaths +Micro Battle.Blue Kills +Micro Battle.Damage Dealt +Micro Battle.Damage Taken +Micro Battle.Damage Taken PvP +Micro Battle.Deaths +Micro Battle.ExpEarned +Micro Battle.GamesPlayed +Micro Battle.GemsEarned +Micro Battle.Green Deaths +Micro Battle.Green Kills +Micro Battle.Kills +Micro Battle.Losses +Micro Battle.Red Deaths +Micro Battle.Red Kills +Micro Battle.Wins +Micro Battle.Yellow Deaths +Micro Battle.Yellow Kills +Micro Battles.Wins + +Milk the Cow.Assists +Milk the Cow.Damage Dealt +Milk the Cow.Damage Taken +Milk the Cow.Damage Taken PvP +Milk the Cow.Deaths +Milk the Cow.GamesPlayed +Milk the Cow.GemsEarned +Milk the Cow.Kills +Milk the Cow.Losses +Milk the Cow.Wins + +Minecraft League.Assists +Minecraft League.Damage Dealt +Minecraft League.Damage Taken +Minecraft League.Damage Taken PvP +Minecraft League.Deaths +Minecraft League.ExpEarned +Minecraft League.GemsEarned +Minecraft League.Kills +Minecraft League.Losses +Minecraft League.Wins + +Mineplex Event.Damage Taken +Mineplex Event.Deaths +Mineplex Event.ExpEarned +Mineplex Event.GamesPlayed +Mineplex Event.GemsEarned +Mineplex Event.Losses +Mineplex Event.Red Deaths +Mineplex Event.Wins + +Minesrike.Wins +MineStrike. +MineStrike.Ace +MineStrike.Assassination +MineStrike.Assists +MineStrike.Blindfolded +MineStrike.Blue Deaths +MineStrike.Blue Kills +MineStrike.Bombers Deaths +MineStrike.Bombers Kills +MineStrike.BoomHeadshot +MineStrike.ClutchOrKick +MineStrike.Damage Dealt +MineStrike.Damage Taken +MineStrike.Damage Taken PvP +MineStrike.Deaths +MineStrike.ExpEarned +MineStrike.GamesPlayed +MineStrike.Gems Earned +MineStrike.GemsEarned +MineStrike.Kaboom +MineStrike.KillingSpree +MineStrike.Kills +MineStrike.Losses +MineStrike.Red Deaths +MineStrike.Red Kills +MineStrike.SWAT Deaths +MineStrike.SWAT Kills +Minestrike.Win +MineStrike.Wins + +MineWare.Assists +MineWare.Damage Dealt +MineWare.Damage Taken +MineWare.Damage Taken PvP +MineWare.Deaths +MineWare.ExpEarned +MineWare.GamesPlayed +MineWare.GemsEarned +MineWare.Kangaroo +MineWare.Kills +MineWare.LauraCraft +MineWare.Losses +MineWare.MilkMan +MineWare.PinataMaster +MineWare.SurfUp +MineWare.TagMaster +MineWare.Veteran +MineWare.Wins + +Missile Wars.Assists +Missile Wars.Damage Dealt +Missile Wars.Damage Taken +Missile Wars.Damage Taken PvP +Missile Wars.Deaths +Missile Wars.ExpEarned +Missile Wars.GemsEarned +Missile Wars.Kills +Missile Wars.Losses +Missile Wars.Wins + +Mob Survival.Damage Taken +Mob Survival.Deaths +Mob Survival.ExpEarned +Mob Survival.GemsEarned +Mob Survival.Losses +Mob Survival.Wins + +Monster League.Damage Taken +Monster League.Deaths +Monster League.ExpEarned +Monster League.GemsEarned +Monster League.Losses +Monster League.Wins + +Monster Maze.Damage Dealt +Monster Maze.Damage Taken +Monster Maze.Deaths +Monster Maze.ExpEarned +Monster Maze.GemsEarned +Monster Maze.Hard Mode +Monster Maze.Losses +Monster Maze.Ninja +Monster Maze.Pilot +Monster Maze.Speed +Monster Maze.ToughCompetition +Monster Maze.Wins + +Old MineWare.Damage Dealt +Old MineWare.Damage Taken +Old MineWare.Deaths +Old MineWare.ExpEarned +Old MineWare.GamesPlayed +Old MineWare.GemsEarned +Old MineWare.Losses +Old MineWare.Wins + +One in the Quiver Teams.Assists +One in the Quiver Teams.Blue Deaths +One in the Quiver Teams.Blue Kills +One in the Quiver Teams.Damage Dealt +One in the Quiver Teams.Damage Taken +One in the Quiver Teams.Damage Taken PvP +One in the Quiver Teams.Deaths +One in the Quiver Teams.ExpEarned +One in the Quiver Teams.GamesPlayed +One in the Quiver Teams.GemsEarned +One in the Quiver Teams.Green Deaths +One in the Quiver Teams.Green Kills +One in the Quiver Teams.Kills +One in the Quiver Teams.Losses +One in the Quiver Teams.Red Deaths +One in the Quiver Teams.Red Kills +One in the Quiver Teams.Wins +One in the Quiver Teams.Yellow Deaths +One in the Quiver Teams.Yellow Kills +One in the Quiver.Assists +One in the Quiver.Damage Dealt +One in the Quiver.Damage Taken +One in the Quiver.Damage Taken PvP +One in the Quiver.Deaths +One in the Quiver.ExpEarned +One in the Quiver.GamesPlayed +One in the Quiver.GemsEarned +One in the Quiver.Kills +One in the Quiver.Losses +One in the Quiver.Perfectionist +One in the Quiver.Sharpshooter +One in the Quiver.WhatsABow +One in the Quiver.Wins + +PlexQuest.Damage Taken +PlexQuest.Deaths +PlexQuest.ExpEarned +PlexQuest.GemsEarned +PlexQuest.Losses +PlexQuest.Wins + +Rocket Madness.Damage Dealt +Rocket Madness.Damage Taken +Rocket Madness.Damage Taken PvP +Rocket Madness.Deaths +Rocket Madness.ExpEarned +Rocket Madness.GemsEarned +Rocket Madness.Kills +Rocket Madness.Losses +Rocket Madness.Wins + +Runner.Damage Dealt +Runner.Damage Taken +Runner.Damage Taken PvP +Runner.Deaths +Runner.ExpEarned +Runner.Frosty Deaths +Runner.GamesPlayed +Runner.GemsEarned +Runner.HotFeet +Runner.Losses +Runner.MarathonRunner +Runner.Red Deaths +Runner.Wins + +Scary Village.ExpEarned +Scary Village.GemsEarned +Scary Village.Losses +Scary Village.Wins + +Search and Destroy.Assists +Search and Destroy.Blue Deaths +Search and Destroy.Blue Kills +Search and Destroy.Damage Dealt +Search and Destroy.Damage Taken +Search and Destroy.Damage Taken PvP +Search and Destroy.Deaths +Search and Destroy.ExpEarned +Search and Destroy.GamesPlayed +Search and Destroy.GemsEarned +Search and Destroy.Kills +Search and Destroy.Losses +Search and Destroy.Red Deaths +Search and Destroy.Red Kills +Search and Destroy.Wins + +Sheep Quest.AnimalRescue +Sheep Quest.Assists +Sheep Quest.Blue Deaths +Sheep Quest.Blue Kills +Sheep Quest.Damage Dealt +Sheep Quest.Damage Taken +Sheep Quest.Damage Taken PvP +Sheep Quest.Deaths +Sheep Quest.ExpEarned +Sheep Quest.GamesPlayed +Sheep Quest.GemsEarned +Sheep Quest.Green Deaths +Sheep Quest.Green Kills +Sheep Quest.Kills +Sheep Quest.Losses +Sheep Quest.Red Deaths +Sheep Quest.Red Kills +Sheep Quest.Selfish +Sheep Quest.Thief +Sheep Quest.Wins +Sheep Quest.Yellow Deaths +Sheep Quest.Yellow Kills + +Skywars Teams.Assists +Skywars Teams.BombPickups +Skywars Teams.Damage Dealt +Skywars Teams.Damage Taken +Skywars Teams.Damage Taken PvP +Skywars Teams.DeathBomber +Skywars Teams.Deaths +Skywars Teams.ExpEarned +Skywars Teams.GemsEarned +Skywars Teams.Kills +Skywars Teams.Losses +Skywars Teams.NoArmor +Skywars Teams.NoChest +Skywars Teams.NoKills +Skywars Teams.Wins +Skywars Teams.ZombieKills +Skywars.Assists +Skywars.BombPickups +Skywars.Damage Dealt +Skywars.Damage Taken +Skywars.Damage Taken PvP +Skywars.DeathBomber +Skywars.Deaths +Skywars.ExpEarned +Skywars.GamesPlayed +Skywars.GemsEarned +Skywars.Kills +Skywars.Losses +Skywars.NoArmor +Skywars.NoChest +Skywars.NoKills +Skywars.Wins +Skywars.ZombieKills + +Slime Suckers Arcade.ExpEarned +Slime Suckers Arcade.GemsEarned +Slime Suckers Arcade.Losses +Slime Suckers Arcade.Wins +Slime Suckers Eternal.GemsEarned +Slime Suckers.Damage Dealt +Slime Suckers.Damage Taken +Slime Suckers.Damage Taken PvP +Slime Suckers.Deaths +Slime Suckers.ExpEarned +Slime Suckers.GemsEarned +Slime Suckers.Kills +Slime Suckers.Losses +Slime Suckers.SlimeSuckers +Slime Suckers.Wins + +Snake.Assists +Snake.Cannibal +Snake.ChooChoo +Snake.Damage Dealt +Snake.Damage Taken +Snake.Damage Taken PvP +Snake.Deaths +Snake.ExpEarned +Snake.GamesPlayed +Snake.GemsEarned +Snake.Kills +Snake.Losses +Snake.SlimySheep +Snake.Win +Snake.Wins + +Sneaky Assassins.Assists +Sneaky Assassins.Damage Dealt +Sneaky Assassins.Damage Taken +Sneaky Assassins.Damage Taken PvP +Sneaky Assassins.Deaths +Sneaky Assassins.ExpEarned +Sneaky Assassins.GamesPlayed +Sneaky Assassins.GemsEarned +Sneaky Assassins.Incompetence +Sneaky Assassins.ISeeYou +Sneaky Assassins.Kills +Sneaky Assassins.Losses +Sneaky Assassins.MasterAssassin +Sneaky Assassins.TheMastersMaster +Sneaky Assassins.Wins + +Snow Fight.Assists +Snow Fight.Blue Deaths +Snow Fight.Blue Kills +Snow Fight.Damage Dealt +Snow Fight.Damage Taken +Snow Fight.Damage Taken PvP +Snow Fight.Deaths +Snow Fight.ExpEarned +Snow Fight.GamesPlayed +Snow Fight.GemsEarned +Snow Fight.Green Deaths +Snow Fight.Green Kills +Snow Fight.Kills +Snow Fight.Losses +Snow Fight.Red Deaths +Snow Fight.Red Kills +Snow Fight.Wins +Snow Fight.Yellow Deaths +Snow Fight.Yellow Kills + +Snow Sprint.Damage Dealt +Snow Sprint.Damage Taken +Snow Sprint.Deaths +Snow Sprint.ExpEarned +Snow Sprint.GemsEarned +Snow Sprint.Losses +Snow Sprint.Wins + +Space Wars.Damage Dealt +Space Wars.Damage Taken +Space Wars.Damage Taken PvP +Space Wars.Deaths +Space Wars.ExpEarned +Space Wars.GemsEarned +Space Wars.Losses +Space Wars.Wins + +Speed Builder.ExpEarned +Speed Builder.GemsEarned +Speed Builder.Losses +Speed Builder.Wins + +Squid Shooter.Assists +Squid Shooter.Damage Dealt +Squid Shooter.Damage Taken +Squid Shooter.Damage Taken PvP +Squid Shooter.Deaths +Squid Shooter.ExpEarned +Squid Shooter.GamesPlayed +Squid Shooter.GemsEarned +Squid Shooter.Kills +Squid Shooter.Losses +Squid Shooter.Wins + +Starfighters TDM.ExpEarned +Starfighters TDM.GemsEarned +Starfighters TDM.Wins +Starfighters.ExpEarned +Starfighters.GemsEarned +Starfighters.Wins + +Stomping naughty Ducks.Damage Dealt +Stomping naughty Ducks.Damage Taken +Stomping naughty Ducks.Deaths +Stomping naughty Ducks.ExpEarned +Stomping naughty Ducks.GemsEarned +Stomping naughty Ducks.Losses +Stomping naughty Ducks.Wins + +Super Paintball.Assists +Super Paintball.Blue Deaths +Super Paintball.Damage Dealt +Super Paintball.Damage Taken +Super Paintball.Damage Taken PvP +Super Paintball.Deaths +Super Paintball.ExpEarned +Super Paintball.FlawlessVictory +Super Paintball.Frost Deaths +Super Paintball.Frost Kills +Super Paintball.GamesPlayed +Super Paintball.GemsEarned +Super Paintball.KillingSpree +Super Paintball.Kills +Super Paintball.LastStand +Super Paintball.Losses +Super Paintball.Medic +Super Paintball.Nether Deaths +Super Paintball.Nether Kills +Super Paintball.Red Kills +Super Paintball.Speedrunner +Super Paintball.Wins + +Super Smash Mobs Domination.Assists +Super Smash Mobs Domination.Blue Deaths +Super Smash Mobs Domination.Blue Kills +Super Smash Mobs Domination.Damage Dealt +Super Smash Mobs Domination.Damage Taken +Super Smash Mobs Domination.Damage Taken PvP +Super Smash Mobs Domination.Deaths +Super Smash Mobs Domination.ExpEarned +Super Smash Mobs Domination.GamesPlayed +Super Smash Mobs Domination.GemsEarned +Super Smash Mobs Domination.Kills +Super Smash Mobs Domination.Losses +Super Smash Mobs Domination.Red Deaths +Super Smash Mobs Domination.Red Kills +Super Smash Mobs Domination.Wins +Super Smash Mobs Teams.1v3 +Super Smash Mobs Teams.Assists +Super Smash Mobs Teams.Blue Deaths +Super Smash Mobs Teams.Blue Kills +Super Smash Mobs Teams.Damage Dealt +Super Smash Mobs Teams.Damage Taken +Super Smash Mobs Teams.Damage Taken PvP +Super Smash Mobs Teams.Deaths +Super Smash Mobs Teams.ExpEarned +Super Smash Mobs Teams.FreeKitsForever +Super Smash Mobs Teams.GamesPlayed +Super Smash Mobs Teams.GemsEarned +Super Smash Mobs Teams.Green Deaths +Super Smash Mobs Teams.Green Kills +Super Smash Mobs Teams.Kills +Super Smash Mobs Teams.Losses +Super Smash Mobs Teams.MLGPro +Super Smash Mobs Teams.RecoveryMaster +Super Smash Mobs Teams.Red Deaths +Super Smash Mobs Teams.Red Kills +Super Smash Mobs Teams.TripleKill +Super Smash Mobs Teams.Wins +Super Smash Mobs Teams.Yellow Deaths +Super Smash Mobs Teams.Yellow Kills +Super Smash Mobs.1v3 +Super Smash Mobs.Assists +Super Smash Mobs.Damage Dealt +Super Smash Mobs.Damage Taken +Super Smash Mobs.Damage Taken PvP +Super Smash Mobs.Deaths +Super Smash Mobs.ExpEarned +Super Smash Mobs.FreeKitsForever +Super Smash Mobs.GamesPlayed +Super Smash Mobs.GemsEarned +Super Smash Mobs.Kills +Super Smash Mobs.Losses +Super Smash Mobs.MLGPro +Super Smash Mobs.RecoveryMaster +Super Smash Mobs.SO SUPER! +Super Smash Mobs.TripleKill +Super Smash Mobs.Wins + +Super Spleef Teams.BlocksBroken +Super Spleef Teams.Blue Deaths +Super Spleef Teams.Damage Dealt +Super Spleef Teams.Damage Taken +Super Spleef Teams.Damage Taken PvP +Super Spleef Teams.Deaths +Super Spleef Teams.ExpEarned +Super Spleef Teams.GamesPlayed +Super Spleef Teams.GemsEarned +Super Spleef Teams.Green Deaths +Super Spleef Teams.Losses +Super Spleef Teams.Red Deaths +Super Spleef Teams.Wins +Super Spleef Teams.Yellow Deaths +Super Spleef.BlocksBroken +Super Spleef.Damage Dealt +Super Spleef.Damage Taken +Super Spleef.Damage Taken PvP +Super Spleef.Deaths +Super Spleef.ExpEarned +Super Spleef.GamesPlayed +Super Spleef.GemsEarned +Super Spleef.Kills +Super Spleef.Losses +Super Spleef.Red Deaths +Super Spleef.SpleefBlocks +Super Spleef.Wins + +Super Stacker.Damage Dealt +Super Stacker.Damage Taken +Super Stacker.Deaths +Super Stacker.ExpEarned +Super Stacker.GamesPlayed +Super Stacker.GemsEarned +Super Stacker.Losses +Super Stacker.Wins + +Survival Games Teams.Assists +Survival Games Teams.Bloodlust +Survival Games Teams.Blue Deaths +Survival Games Teams.Blue Kills +Survival Games Teams.Damage Dealt +Survival Games Teams.Damage Taken +Survival Games Teams.Damage Taken PvP +Survival Games Teams.Deaths +Survival Games Teams.ExpEarned +Survival Games Teams.GamesPlayed +Survival Games Teams.GemsEarned +Survival Games Teams.Green Deaths +Survival Games Teams.Green Kills +Survival Games Teams.Kills +Survival Games Teams.Losses +Survival Games Teams.NoArmor +Survival Games Teams.Red Deaths +Survival Games Teams.Red Kills +Survival Games Teams.Skeletons +Survival Games Teams.SupplyDropsOpened +Survival Games Teams.Wins +Survival Games Teams.Yellow Deaths +Survival Games Teams.Yellow Kills +Survival Games.Assists +Survival Games.Bloodlust +Survival Games.Damage Dealt +Survival Games.Damage Taken +Survival Games.Damage Taken PvP +Survival Games.Deaths +Survival Games.ExpEarned +Survival Games.GamesPlayed +Survival Games.GemsEarned +Survival Games.Kills +Survival Games.Light Weight +Survival Games.LightWeight +Survival Games.Losses +Survival Games.NoArmor +Survival Games.Skeletons +Survival Games.SupplyDropsOpened +Survival Games.Wins +SurvivalGames.Wins + +Test Game.Assists +Test Game.Damage Dealt +Test Game.Damage Taken +Test Game.Damage Taken PvP +Test Game.Deaths +Test Game.ExpEarned +Test Game.GemsEarned +Test Game.Kills +Test Game.Losses +Test Game.Wins +Test.Damage Taken +Test.Deaths +Test.ExpEarned +Test.GemsEarned +Test.Losses +Test.Wins + +The Bridge.Wins +The Bridges.Assists +The Bridges.Blue Deaths +The Bridges.Blue Kills +The Bridges.Damage Dealt +The Bridges.Damage Taken +The Bridges.Damage Taken PvP +The Bridges.DeathBomber +The Bridges.Deaths +The Bridges.ExpEarned +The Bridges.FoodForTheMasses +The Bridges.FortuneBomber +The Bridges.GamesPlayed +The Bridges.GemsEarned +The Bridges.GoodForTheMasses +The Bridges.Green Deaths +The Bridges.Green Kills +The Bridges.Kills +The Bridges.Losses +The Bridges.Rampage +The Bridges.Red Deaths +The Bridges.Red Kills +The Bridges.Sniper +The Bridges.Win +The Bridges.Wins +The Bridges.Yellow Deaths +The Bridges.Yellow Kills +TheBridges.Wins + +Tug of Wool.Assists +Tug of Wool.Blue Deaths +Tug of Wool.Blue Kills +Tug of Wool.Damage Dealt +Tug of Wool.Damage Taken +Tug of Wool.Damage Taken PvP +Tug of Wool.Deaths +Tug of Wool.ExpEarned +Tug of Wool.GamesPlayed +Tug of Wool.GemsEarned +Tug of Wool.Kills +Tug of Wool.Losses +Tug of Wool.Red Deaths +Tug of Wool.Red Kills +Tug of Wool.Wins + +Turf Wars.Assists +Turf Wars.BehindEnemyLines +Turf Wars.Blue Deaths +Turf Wars.Blue Kills +Turf Wars.Damage Dealt +Turf Wars.Damage Taken +Turf Wars.Damage Taken PvP +Turf Wars.Deaths +Turf Wars.ExpEarned +Turf Wars.GamesPlayed +Turf Wars.GemsEarned +Turf Wars.Kills +Turf Wars.Losses +Turf Wars.Red Deaths +Turf Wars.Red Kills +Turf Wars.Shredder Deaths +Turf Wars.Shredder Kills +Turf Wars.TheComeback +Turf Wars.TheShreddinator +Turf Wars.Wins +Type Wars.Damage Taken +Type Wars.Deaths +Type Wars.Demon +Type Wars.Dumbledont +Type Wars.ExpEarned +Type Wars.GemsEarned +Type Wars.Hoarder +Type Wars.Kills +Type Wars.Losses +Type Wars.MinionKills +Type Wars.Nuke +Type Wars.Perfectionist +Type Wars.TimeInGame +Type Wars.Wins + +TypeWars.Kills +TypeWars.MinionKills + +UHC.Wins +Ultra Hard Core.UltimateWinner +Ultra Hardcore Wins +Ultra Hardcore.Assists +Ultra Hardcore.Damage Taken +Ultra Hardcore.Deaths +Ultra Hardcore.ExpEarned +Ultra Hardcore.GamesPlayed +Ultra Hardcore.Gem +Ultra Hardcore.Gems +Ultra Hardcore.Gems Earned +Ultra Hardcore.GemsEarned +Ultra Hardcore.Kills +Ultra Hardcore.Losses +Ultra HardCore.UltimateWinner +Ultra Hardcore.Wins +UltraHardcore.Wins + +Wither Assault.Assists +Wither Assault.Damage Dealt +Wither Assault.Damage Taken +Wither Assault.Damage Taken PvP +Wither Assault.Deaths +Wither Assault.ExpEarned +Wither Assault.GamesPlayed +Wither Assault.GemsEarned +Wither Assault.Kills +Wither Assault.Losses +Wither Assault.Wins + +Wither Brawl.Damage Dealt +Wither Brawl.Damage Taken +Wither Brawl.Damage Taken PvP +Wither Brawl.Deaths +Wither Brawl.ExpEarned +Wither Brawl.GemsEarned +Wither Brawl.Kills +Wither Brawl.Losses +Wither Brawl.Wins + +Wizard Battles.Assists +Wizard Battles.Damage Dealt +Wizard Battles.Damage Taken +Wizard Battles.Damage Taken PvP +Wizard Battles.Deaths +Wizard Battles.ExpEarned +Wizard Battles.GemsEarned +Wizard Battles.Kills +Wizard Battles.Losses +Wizard Battles.Wins +Wizards.Assists +Wizards.Damage Dealt +Wizards.Damage Taken +Wizards.Damage Taken PvP +Wizards.Deaths +Wizards.ExpEarned +Wizards.GamesPlayed +Wizards.GemsEarned +Wizards.Kills +Wizards.Losses +Wizards.SupremeWizard +Wizards.Wins + +Zombie Survival.Alpha Undead Kills +Zombie Survival.Assists +Zombie Survival.Damage Dealt +Zombie Survival.Damage Taken +Zombie Survival.Damage Taken PvP +Zombie Survival.Deaths +Zombie Survival.GamesPlayed +Zombie Survival.GemsEarned +Zombie Survival.Kills +Zombie Survival.Losses +Zombie Survival.Undead Deaths +Zombie Survival.Undead Kills +Zombie Survival.Wins + */ \ No newline at end of file diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/BlockBreakStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/BlockBreakStatTracker.java new file mode 100644 index 000000000..c89a37be8 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/BlockBreakStatTracker.java @@ -0,0 +1,66 @@ +package nautilus.game.arcade.stats; + +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockDamageEvent; + +import nautilus.game.arcade.game.Game; + +/** + * Created by TeddehDev on 15/01/2016. + */ +public class BlockBreakStatTracker extends StatTracker +{ + private boolean _blockDamage; + + /** + * @param blockDamage + * - true = triggers block damage event + * - false = triggers block break event + */ + public BlockBreakStatTracker(Game game, boolean blockDamage) + { + super(game); + + _blockDamage = blockDamage; + } + + @EventHandler + public void blockBreak(BlockBreakEvent event) + { + if(!getGame().IsLive()) + return; + + if(event.isCancelled()) + return; + + if(_blockDamage) + return; + + Player player = event.getPlayer(); + if(player == null) + return; + + addStat(player, "BlocksBroken", 1, false, false); + } + + @EventHandler + public void blockBreak(BlockDamageEvent event) + { + if(!getGame().IsLive()) + return; + + if(event.isCancelled()) + return; + + if(!_blockDamage) + return; + + Player player = event.getPlayer(); + if(player == null) + return; + + addStat(player, "BlocksBroken", 1, false, false); + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/BlockPlaceStatTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/BlockPlaceStatTracker.java new file mode 100644 index 000000000..f210bc7d7 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/stats/BlockPlaceStatTracker.java @@ -0,0 +1,45 @@ +package nautilus.game.arcade.stats; + +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockPlaceEvent; + +import nautilus.game.arcade.game.Game; + +/** + * Created by TeddehDev on 15/01/2016. + */ +public class BlockPlaceStatTracker extends StatTracker +{ + private Material[] _ignore; + + public BlockPlaceStatTracker(Game game, Material[] ignore) + { + super(game); + + _ignore = ignore; + } + + @EventHandler + public void blockPlace(BlockPlaceEvent event) + { + if(!getGame().IsLive()) + return; + + if(event.isCancelled()) + return; + + Player player = event.getPlayer(); + if(player == null) + return; + + for(Material material : _ignore) + { + if(event.getBlock().getType() == material) + continue; + + addStat(event.getPlayer(), "BlocksPlaced", 1, false, false); + } + } +}