Merge branch 'develop' of ssh://184.154.0.242:7999/min/mineplex into develop
This commit is contained in:
commit
000b1f85b7
@ -56,7 +56,7 @@ public class MotdManager implements Listener, Runnable
|
|||||||
//String motdLine = "§f§l◄ §c§lMaintenance§f§l ►";
|
//String motdLine = "§f§l◄ §c§lMaintenance§f§l ►";
|
||||||
//String motdLine = "§f§l◄ §a§lCarl the Creeper§f§l ►";
|
//String motdLine = "§f§l◄ §a§lCarl the Creeper§f§l ►";
|
||||||
// String motdLine = " §2§l§n M O N S T E R M A Z E B E T A §f";
|
// String motdLine = " §2§l§n M O N S T E R M A Z E B E T A §f";
|
||||||
String motdLine = " §f❄ §2§lWinter Update §f❄ §2§lSnow Fight §f❄";
|
String motdLine = " §f❄ §2§lNew Game §f❄ §2§lType Wars §f❄";
|
||||||
//String motdLine = " §d§lRank Sale §a§l40% Off");
|
//String motdLine = " §d§lRank Sale §a§l40% Off");
|
||||||
//String motdLine = " §f§l◄§c§lMAINTENANCE§f§l►");
|
//String motdLine = " §f§l◄§c§lMAINTENANCE§f§l►");
|
||||||
|
|
||||||
|
@ -51,13 +51,13 @@ public abstract class DnsMadeEasyApiCallBase
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
String timeStamp = getServerTime();
|
String timeStamp = getServerTime();
|
||||||
SecretKeySpec keySpec = new SecretKeySpec("35bb3b97-3815-4b63-b60b-eb1882c07b40".getBytes(), "HmacSHA1");
|
SecretKeySpec keySpec = new SecretKeySpec("9041bc01-5cbc-49cf-ae09-a23b98350c62".getBytes(), "HmacSHA1");
|
||||||
Mac mac = Mac.getInstance("HmacSHA1");
|
Mac mac = Mac.getInstance("HmacSHA1");
|
||||||
mac.init(keySpec);
|
mac.init(keySpec);
|
||||||
byte[] hashBytes = mac.doFinal((timeStamp + "").getBytes());
|
byte[] hashBytes = mac.doFinal((timeStamp + "").getBytes());
|
||||||
Hex.encodeHexString(hashBytes);
|
Hex.encodeHexString(hashBytes);
|
||||||
|
|
||||||
request.addHeader("x-dnsme-apiKey", "a9750980-b7df-4a7e-a047-2ade43628f0d");
|
request.addHeader("x-dnsme-apiKey", "2039c697-6ca9-412f-abda-0aef659a382a");
|
||||||
request.addHeader("x-dnsme-requestDate", timeStamp + "");
|
request.addHeader("x-dnsme-requestDate", timeStamp + "");
|
||||||
request.addHeader("x-dnsme-hmac", Hex.encodeHexString(hashBytes));
|
request.addHeader("x-dnsme-hmac", Hex.encodeHexString(hashBytes));
|
||||||
request.addHeader("Content-Type", "application/json");
|
request.addHeader("Content-Type", "application/json");
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
<classpathentry kind="var" path="REPO_DIR/Plugins/Libraries/jooq-3.5.2.jar"/>
|
<classpathentry kind="var" path="REPO_DIR/Plugins/Libraries/jooq-3.5.2.jar"/>
|
||||||
<classpathentry kind="var" path="REPO_DIR/Plugins/Libraries/craftbukkit.jar"/>
|
<classpathentry kind="var" path="REPO_DIR/Plugins/Libraries/craftbukkit.jar"/>
|
||||||
<classpathentry kind="var" path="REPO_DIR/Plugins/Libraries/NoCheatPlus.jar"/>
|
<classpathentry kind="var" path="REPO_DIR/Plugins/Libraries/NoCheatPlus.jar"/>
|
||||||
<classpathentry combineaccessrules="false" kind="src" path="/Mineplex.Cache"/>
|
|
||||||
<classpathentry combineaccessrules="false" kind="src" path="/Mineplex.Core.Common"/>
|
<classpathentry combineaccessrules="false" kind="src" path="/Mineplex.Core.Common"/>
|
||||||
|
<classpathentry combineaccessrules="false" kind="src" path="/Mineplex.Cache"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
@ -26,6 +26,7 @@ public abstract class MiniClientPlugin<DataType extends Object> extends MiniPlug
|
|||||||
{
|
{
|
||||||
synchronized (_clientDataLock)
|
synchronized (_clientDataLock)
|
||||||
{
|
{
|
||||||
|
saveData(event.GetName(), event.getAccountId());
|
||||||
_clientData.remove(event.GetName());
|
_clientData.remove(event.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -41,6 +42,8 @@ public abstract class MiniClientPlugin<DataType extends Object> extends MiniPlug
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void saveData(String name, int accountId) {}
|
||||||
|
|
||||||
public DataType Get(Player player)
|
public DataType Get(Player player)
|
||||||
{
|
{
|
||||||
return Get(player.getName());
|
return Get(player.getName());
|
||||||
|
@ -35,7 +35,6 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
|
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
|
||||||
import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result;
|
import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
|
||||||
import org.bukkit.event.player.PlayerKickEvent;
|
import org.bukkit.event.player.PlayerKickEvent;
|
||||||
import org.bukkit.event.player.PlayerLoginEvent;
|
import org.bukkit.event.player.PlayerLoginEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
@ -104,14 +103,15 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
return newClient;
|
return newClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Del(String name)
|
public void Del(String name, int accountId)
|
||||||
{
|
{
|
||||||
synchronized(_clientLock)
|
synchronized(_clientLock)
|
||||||
{
|
{
|
||||||
_clientList.remove(name);
|
_clientList.remove(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
_plugin.getServer().getPluginManager().callEvent(new ClientUnloadEvent(name));
|
// rawr added account id for custom data - william
|
||||||
|
_plugin.getServer().getPluginManager().callEvent(new ClientUnloadEvent(name, accountId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public CoreClient Get(String name)
|
public CoreClient Get(String name)
|
||||||
@ -365,7 +365,7 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
|
|
||||||
if (client == null || client.GetRank() == null)
|
if (client == null || client.GetRank() == null)
|
||||||
{
|
{
|
||||||
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "There was an error logging you in. Please reconncet.");
|
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "There was an error logging you in. Please reconnect.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,7 +407,7 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
|
|
||||||
if (!_duplicateLoginGlitchPreventionList.contains(event.getPlayer().getName()))
|
if (!_duplicateLoginGlitchPreventionList.contains(event.getPlayer().getName()))
|
||||||
{
|
{
|
||||||
Del(event.getPlayer().getName());
|
Del(event.getPlayer().getName(), _clientList.get(event.getPlayer().getName()).getAccountId());
|
||||||
_duplicateLoginGlitchPreventionList.remove(event.getPlayer().getName());
|
_duplicateLoginGlitchPreventionList.remove(event.getPlayer().getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -529,7 +529,8 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
{
|
{
|
||||||
for (Iterator<Entry<String, CoreClient>> clientIterator = _clientList.entrySet().iterator(); clientIterator.hasNext();)
|
for (Iterator<Entry<String, CoreClient>> clientIterator = _clientList.entrySet().iterator(); clientIterator.hasNext();)
|
||||||
{
|
{
|
||||||
Player clientPlayer = clientIterator.next().getValue().GetPlayer();
|
CoreClient client = clientIterator.next().getValue(); // rawr, needed this for custom data - william
|
||||||
|
Player clientPlayer = client.GetPlayer();
|
||||||
|
|
||||||
if (clientPlayer != null && !clientPlayer.isOnline())
|
if (clientPlayer != null && !clientPlayer.isOnline())
|
||||||
{
|
{
|
||||||
@ -537,7 +538,7 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
|
|
||||||
if (clientPlayer != null)
|
if (clientPlayer != null)
|
||||||
{
|
{
|
||||||
_plugin.getServer().getPluginManager().callEvent(new ClientUnloadEvent(clientPlayer.getName()));
|
_plugin.getServer().getPluginManager().callEvent(new ClientUnloadEvent(clientPlayer.getName(), client.getAccountId()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,10 +8,12 @@ public class ClientUnloadEvent extends Event
|
|||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
private String _name;
|
private String _name;
|
||||||
|
private int _accountId;
|
||||||
|
|
||||||
public ClientUnloadEvent(String name)
|
public ClientUnloadEvent(String name, int accountId)
|
||||||
{
|
{
|
||||||
_name = name;
|
_name = name;
|
||||||
|
_accountId = accountId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String GetName()
|
public String GetName()
|
||||||
@ -19,6 +21,11 @@ public class ClientUnloadEvent extends Event
|
|||||||
return _name;
|
return _name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getAccountId()
|
||||||
|
{
|
||||||
|
return _accountId;
|
||||||
|
}
|
||||||
|
|
||||||
public HandlerList getHandlers()
|
public HandlerList getHandlers()
|
||||||
{
|
{
|
||||||
return handlers;
|
return handlers;
|
||||||
|
@ -46,7 +46,7 @@ public class AccountRepository extends RepositoryBase
|
|||||||
|
|
||||||
public AccountRepository(JavaPlugin plugin, String webAddress)
|
public AccountRepository(JavaPlugin plugin, String webAddress)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
|
|
||||||
_webAddress = webAddress;
|
_webAddress = webAddress;
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,13 @@ public enum Achievement
|
|||||||
new int[]{200},
|
new int[]{200},
|
||||||
AchievementCategory.HOLIDAY),
|
AchievementCategory.HOLIDAY),
|
||||||
|
|
||||||
|
GLOBAL_PRESENT_HOARDER_2015("2015 Present Hoarder", 4000,
|
||||||
|
new String[]{"Global.Christmas Presents 2015"},
|
||||||
|
new String[]{"Open 200 Christmas Presents,",
|
||||||
|
"during Christmas 2015!"},
|
||||||
|
new int[]{200},
|
||||||
|
AchievementCategory.HOLIDAY),
|
||||||
|
|
||||||
//Bridges
|
//Bridges
|
||||||
BRIDGES_WINS("Bridge Champion", 600,
|
BRIDGES_WINS("Bridge Champion", 600,
|
||||||
new String[]{"The Bridges.Wins"},
|
new String[]{"The Bridges.Wins"},
|
||||||
@ -811,9 +818,43 @@ public enum Achievement
|
|||||||
new String[]{"Gladiators.SwiftKill"},
|
new String[]{"Gladiators.SwiftKill"},
|
||||||
new String[]{"Earn 15 first bloods", "in Gladiators"},
|
new String[]{"Earn 15 first bloods", "in Gladiators"},
|
||||||
new int[]{15},
|
new int[]{15},
|
||||||
AchievementCategory.GLADIATORS)
|
AchievementCategory.GLADIATORS),
|
||||||
|
|
||||||
;
|
TYPE_WARS_SPEED_DEMON("Speed Demon", 1000,
|
||||||
|
new String[]{"Type Wars.Demon"},
|
||||||
|
new String[]{"Kill 5 Mobs in 8 seconds", "by typing"},
|
||||||
|
new int[]{1},
|
||||||
|
AchievementCategory.TYPE_WARS),
|
||||||
|
|
||||||
|
TYPE_WARS_PERFECTIONIST("Perfectionist", 1200,
|
||||||
|
new String[]{"Type Wars.Perfectionist"},
|
||||||
|
new String[]{"Go an entire game", "without mistyping"},
|
||||||
|
new int[]{1},
|
||||||
|
AchievementCategory.TYPE_WARS),
|
||||||
|
|
||||||
|
TYPE_WARS_WAIT_FOR_IT("Wait for it", 1200,
|
||||||
|
new String[]{"Type Wars.Nuke"},
|
||||||
|
new String[]{"Kill 30 or more Mobs", "with a Nuke Spell"},
|
||||||
|
new int[]{1},
|
||||||
|
AchievementCategory.TYPE_WARS),
|
||||||
|
|
||||||
|
TYPE_WARS_HOARDER("Hoarder", 1000,
|
||||||
|
new String[]{"Type Wars.Hoarder"},
|
||||||
|
new String[]{"Summon 50 Mobs in one game"},
|
||||||
|
new int[]{1},
|
||||||
|
AchievementCategory.TYPE_WARS),
|
||||||
|
|
||||||
|
TYPE_WARS_DUMBLEDONT("Dumbledont", 800,
|
||||||
|
new String[]{"Type Wars.Dumbledont"},
|
||||||
|
new String[]{"Win without using any spells"},
|
||||||
|
new int[]{1},
|
||||||
|
AchievementCategory.TYPE_WARS),
|
||||||
|
|
||||||
|
TYPE_WARS_WINNS("The True Typewriter", 2000,
|
||||||
|
new String[]{"Type Wars.Wins"},
|
||||||
|
new String[]{"Win 30 Games"},
|
||||||
|
new int[]{30},
|
||||||
|
AchievementCategory.TYPE_WARS);
|
||||||
|
|
||||||
private String _name;
|
private String _name;
|
||||||
private String[] _desc;
|
private String[] _desc;
|
||||||
|
@ -2,6 +2,10 @@ package mineplex.core.achievement;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
@ -10,10 +14,6 @@ import mineplex.core.game.GameDisplay;
|
|||||||
import mineplex.core.stats.PlayerStats;
|
import mineplex.core.stats.PlayerStats;
|
||||||
import mineplex.core.stats.StatsManager;
|
import mineplex.core.stats.StatsManager;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public enum AchievementCategory
|
public enum AchievementCategory
|
||||||
{
|
{
|
||||||
GLOBAL("Global", null,
|
GLOBAL("Global", null,
|
||||||
@ -23,7 +23,7 @@ public enum AchievementCategory
|
|||||||
|
|
||||||
HOLIDAY("Holiday Achievements", null,
|
HOLIDAY("Holiday Achievements", null,
|
||||||
new StatDisplay[] {},
|
new StatDisplay[] {},
|
||||||
Material.PUMPKIN_PIE, 0, GameCategory.HOLIDAY, "None"),
|
Material.CAKE, 0, GameCategory.HOLIDAY, "None"),
|
||||||
|
|
||||||
BRIDGES("The Bridges", null,
|
BRIDGES("The Bridges", null,
|
||||||
new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED },
|
new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED },
|
||||||
@ -109,7 +109,7 @@ public enum AchievementCategory
|
|||||||
|
|
||||||
SUPER_PAINTBALL("Super Paintball", null,
|
SUPER_PAINTBALL("Super Paintball", null,
|
||||||
new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED },
|
new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED },
|
||||||
Material.ENDER_PEARL, 0, GameCategory.ARCADE, null),
|
Material.ENDER_PEARL, 0, GameCategory.ARCADE, "Sniper Kit"),
|
||||||
|
|
||||||
TURF_WARS("Turf Wars", null,
|
TURF_WARS("Turf Wars", null,
|
||||||
new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED },
|
new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED },
|
||||||
@ -153,9 +153,12 @@ public enum AchievementCategory
|
|||||||
|
|
||||||
GLADIATORS("Gladiators", null,
|
GLADIATORS("Gladiators", null,
|
||||||
new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED },
|
new StatDisplay[] { StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.KILLS, StatDisplay.DEATHS, StatDisplay.GEMS_EARNED },
|
||||||
Material.IRON_SWORD, 0, GameCategory.ARCADE, null)
|
Material.IRON_SWORD, 0, GameCategory.ARCADE, null),
|
||||||
|
|
||||||
|
TYPE_WARS("Type Wars", null,
|
||||||
|
new StatDisplay[] {StatDisplay.WINS, StatDisplay.GAMES_PLAYED, new StatDisplay("Minions killed", "MinionKills"), new StatDisplay("Words Per Minute", false, true, "MinionKills", "TimeInGame"), StatDisplay.GEMS_EARNED},
|
||||||
|
Material.FEATHER, 0, GameCategory.CLASSICS, null);
|
||||||
|
|
||||||
;
|
|
||||||
|
|
||||||
private String _name;
|
private String _name;
|
||||||
private String[] _statsToPull;
|
private String[] _statsToPull;
|
||||||
@ -243,7 +246,7 @@ public enum AchievementCategory
|
|||||||
if (!clientManager.Get(player).GetRank().has(Rank.MODERATOR) && !player.equals(target) && (displayName.contains("Losses") || displayName.contains("Kills") || displayName.contains("Deaths") || displayName.equals("Time In Game") || displayName.equals("Games Played")))
|
if (!clientManager.Get(player).GetRank().has(Rank.MODERATOR) && !player.equals(target) && (displayName.contains("Losses") || displayName.contains("Kills") || displayName.contains("Deaths") || displayName.equals("Time In Game") || displayName.equals("Games Played")))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
int statNumber = 0;
|
double statNumber = 0;
|
||||||
|
|
||||||
|
|
||||||
// This is so we could load stats from other games
|
// This is so we could load stats from other games
|
||||||
@ -256,14 +259,48 @@ public enum AchievementCategory
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (String statToPull : _statsToPull)
|
for (String statToPull : _statsToPull)
|
||||||
|
{
|
||||||
for (String statName : _statDisplays[i].getStats())
|
for (String statName : _statDisplays[i].getStats())
|
||||||
|
{
|
||||||
|
if(_statDisplays[i].isDivideStats())
|
||||||
|
{
|
||||||
|
if(statNumber == 0)
|
||||||
|
{
|
||||||
|
statNumber = stats.getStat(statToPull + "." + statName);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
double stat = stats.getStat(statToPull + "." + statName);
|
||||||
|
if(stat == 0)
|
||||||
|
statNumber = statNumber / 1;
|
||||||
|
else
|
||||||
|
statNumber = (double) statNumber / stat;
|
||||||
|
}
|
||||||
|
else
|
||||||
statNumber += stats.getStat(statToPull + "." + statName);
|
statNumber += stats.getStat(statToPull + "." + statName);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String statString = C.cWhite + statNumber;
|
String statString = C.cWhite + Math.round(statNumber);
|
||||||
|
|
||||||
|
// doubles
|
||||||
|
// Special display for Words per Minute
|
||||||
|
if (displayName.equalsIgnoreCase("Words Per Minute"))
|
||||||
|
{
|
||||||
|
statString = C.cWhite + (double) statNumber;
|
||||||
|
if(statString.length() > 7)
|
||||||
|
statString = statString.substring(0, 7);
|
||||||
|
|
||||||
|
lore.add(C.cYellow + displayName + ": " + statString);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ints
|
||||||
// Need to display special for time
|
// Need to display special for time
|
||||||
if (displayName.equalsIgnoreCase("Time In Game"))
|
if (displayName.equalsIgnoreCase("Time In Game"))
|
||||||
statString = C.cWhite + UtilTime.convertString(statNumber * 1000L, 0, UtilTime.TimeUnit.FIT);
|
statString = C.cWhite + UtilTime.convertString(Math.round(statNumber) * 1000L, 0, UtilTime.TimeUnit.FIT);
|
||||||
|
|
||||||
|
|
||||||
lore.add(C.cYellow + displayName + ": " + statString);
|
lore.add(C.cYellow + displayName + ": " + statString);
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ public class StatDisplay
|
|||||||
private String[] _stats;
|
private String[] _stats;
|
||||||
private boolean _fullStat;
|
private boolean _fullStat;
|
||||||
private boolean _justDisplayName;
|
private boolean _justDisplayName;
|
||||||
|
private boolean _divideStats;
|
||||||
|
|
||||||
public StatDisplay(String stat)
|
public StatDisplay(String stat)
|
||||||
{
|
{
|
||||||
@ -25,19 +26,26 @@ public class StatDisplay
|
|||||||
_displayName = stat;
|
_displayName = stat;
|
||||||
_stats = new String[] { stat };
|
_stats = new String[] { stat };
|
||||||
_fullStat = false;
|
_fullStat = false;
|
||||||
|
_divideStats = false;
|
||||||
_justDisplayName = justDisplayName;
|
_justDisplayName = justDisplayName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public StatDisplay(String displayName, boolean divideStats, String... stats)
|
||||||
|
{
|
||||||
|
this(displayName, false, divideStats, stats);
|
||||||
|
}
|
||||||
|
|
||||||
public StatDisplay(String displayName, String... stats)
|
public StatDisplay(String displayName, String... stats)
|
||||||
{
|
{
|
||||||
this(displayName, false, stats);
|
this(displayName, false, false, stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
public StatDisplay(String displayName, boolean fullStat, String... stats)
|
public StatDisplay(String displayName, boolean fullStat, boolean divideStats, String... stats)
|
||||||
{
|
{
|
||||||
_displayName = displayName;
|
_displayName = displayName;
|
||||||
_stats = stats;
|
_stats = stats;
|
||||||
_fullStat = fullStat;
|
_fullStat = fullStat;
|
||||||
|
_divideStats = divideStats;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDisplayName()
|
public String getDisplayName()
|
||||||
@ -60,6 +68,11 @@ public class StatDisplay
|
|||||||
return _fullStat;
|
return _fullStat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isDivideStats()
|
||||||
|
{
|
||||||
|
return _divideStats;
|
||||||
|
}
|
||||||
|
|
||||||
public static StatDisplay fromGame(String name, GameDisplay gameDisplay, String... stats)
|
public static StatDisplay fromGame(String name, GameDisplay gameDisplay, String... stats)
|
||||||
{
|
{
|
||||||
String[] formattedStats = new String[stats.length];
|
String[] formattedStats = new String[stats.length];
|
||||||
|
@ -49,7 +49,7 @@ public class AchievementMainPage extends ShopPageBase<AchievementManager, Achiev
|
|||||||
"XXXXOXXXO",
|
"XXXXOXXXO",
|
||||||
"OXOXOXOXO",
|
"OXOXOXOXO",
|
||||||
"OXOXOXOXO",
|
"OXOXOXOXO",
|
||||||
"XXOXOXOXX").getItemSlots();
|
"XOXOXOXOX").getItemSlots();
|
||||||
int listSlot = 0;
|
int listSlot = 0;
|
||||||
|
|
||||||
for (AchievementCategory category : AchievementCategory.values())
|
for (AchievementCategory category : AchievementCategory.values())
|
||||||
|
@ -33,7 +33,7 @@ public class AntiHackRepository
|
|||||||
{
|
{
|
||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
|
|
||||||
try (Connection connection = DBPool.STATS_MINEPLEX.getConnection())
|
try (Connection connection = DBPool.getStats().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(UPDATE_PLAYER_OFFENSES);
|
preparedStatement = connection.prepareStatement(UPDATE_PLAYER_OFFENSES);
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ public class BenefitManagerRepository extends RepositoryBase
|
|||||||
|
|
||||||
public BenefitManagerRepository(JavaPlugin plugin)
|
public BenefitManagerRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -789,7 +789,7 @@ public class BonusManager extends MiniClientPlugin<BonusClientData> implements I
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
final int newTickets = DSL.using(DBPool.ACCOUNT, SQLDialect.MYSQL).update(Tables.bonus).set(Tables.bonus.tickets, Tables.bonus.tickets.add(tickets)).
|
final int newTickets = DSL.using(DBPool.getAccount(), SQLDialect.MYSQL).update(Tables.bonus).set(Tables.bonus.tickets, Tables.bonus.tickets.add(tickets)).
|
||||||
where(Tables.bonus.accountId.eq(accountId)).returning(Tables.bonus.tickets).fetchOne().getTickets();
|
where(Tables.bonus.accountId.eq(accountId)).returning(Tables.bonus.tickets).fetchOne().getTickets();
|
||||||
runSync(new Runnable()
|
runSync(new Runnable()
|
||||||
{
|
{
|
||||||
|
@ -36,7 +36,7 @@ public class BonusRepository extends RepositoryBase
|
|||||||
|
|
||||||
public BonusRepository(JavaPlugin plugin, BonusManager bonusManager, DonationManager donationManager)
|
public BonusRepository(JavaPlugin plugin, BonusManager bonusManager, DonationManager donationManager)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
_manager = bonusManager;
|
_manager = bonusManager;
|
||||||
_donationManager = donationManager;
|
_donationManager = donationManager;
|
||||||
}
|
}
|
||||||
@ -145,7 +145,7 @@ public class BonusRepository extends RepositoryBase
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
DSLContext create = DSL.using(DBPool.ACCOUNT, SQLDialect.MYSQL);
|
DSLContext create = DSL.using(DBPool.getAccount(), SQLDialect.MYSQL);
|
||||||
create.update(Tables.bonus).set(Tables.bonus.tickets, Tables.bonus.tickets.add(tickets)).
|
create.update(Tables.bonus).set(Tables.bonus.tickets, Tables.bonus.tickets.add(tickets)).
|
||||||
where(Tables.bonus.accountId.eq(accountId)).execute();
|
where(Tables.bonus.accountId.eq(accountId)).execute();
|
||||||
final int newTickets = create.select(Tables.bonus.tickets).from(Tables.bonus).where(Tables.bonus.accountId.eq(accountId)).fetchOne().value1();
|
final int newTickets = create.select(Tables.bonus.tickets).from(Tables.bonus).where(Tables.bonus.accountId.eq(accountId)).fetchOne().value1();
|
||||||
|
@ -24,7 +24,7 @@ public class BotSpamRepository extends RepositoryBase
|
|||||||
|
|
||||||
public BotSpamRepository(JavaPlugin plugin)
|
public BotSpamRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<SpamText> getSpamText()
|
public ArrayList<SpamText> getSpamText()
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
package mineplex.core.customdata;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by William (WilliamTiger).
|
||||||
|
* 17/12/15
|
||||||
|
*/
|
||||||
|
public class CorePlayer extends MineplexPlayer
|
||||||
|
{
|
||||||
|
public CorePlayer(Player player, CustomDataManager customDataManager)
|
||||||
|
{
|
||||||
|
super(player, customDataManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getKeyPrefix()
|
||||||
|
{
|
||||||
|
return "core.";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package mineplex.core.customdata;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by William (WilliamTiger).
|
||||||
|
* 16/12/15
|
||||||
|
*/
|
||||||
|
public class CustomData
|
||||||
|
{
|
||||||
|
private int _id;
|
||||||
|
private String _key;
|
||||||
|
|
||||||
|
public CustomData(int id, String key)
|
||||||
|
{
|
||||||
|
_id = id;
|
||||||
|
_key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId()
|
||||||
|
{
|
||||||
|
return _id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKey()
|
||||||
|
{
|
||||||
|
return _key;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
package mineplex.core.customdata;
|
||||||
|
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import mineplex.core.MiniDbClientPlugin;
|
||||||
|
import mineplex.core.account.CoreClientManager;
|
||||||
|
import mineplex.core.customdata.repository.CustomDataRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by William (WilliamTiger).
|
||||||
|
* 16/12/15
|
||||||
|
*/
|
||||||
|
public class CustomDataManager extends MiniDbClientPlugin<PlayerCustomData>
|
||||||
|
{
|
||||||
|
private CustomDataRepository _repository;
|
||||||
|
|
||||||
|
public CustomDataManager(JavaPlugin plugin, CoreClientManager clientManager)
|
||||||
|
{
|
||||||
|
super("Custom Data Manager", plugin, clientManager);
|
||||||
|
|
||||||
|
_repository = new CustomDataRepository(plugin, clientManager, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void processLoginResultSet(String playerName, int accountId, ResultSet resultSet) throws SQLException
|
||||||
|
{
|
||||||
|
PlayerCustomData data = new PlayerCustomData(_repository);
|
||||||
|
while (resultSet.next())
|
||||||
|
{
|
||||||
|
data.setData(_repository.getKey(resultSet.getInt("customDataId")), resultSet.getInt("data"));
|
||||||
|
}
|
||||||
|
Set(playerName, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getQuery(int accountId, String uuid, String name)
|
||||||
|
{
|
||||||
|
return "SELECT accountId, customDataId, data FROM accountCustomData INNER JOIN customData ON customData.id = accountCustomData.customDataId WHERE accountId = " + accountId + ";";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected PlayerCustomData AddPlayer(String player)
|
||||||
|
{
|
||||||
|
return new PlayerCustomData(_repository);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveData(String name, int accountId)
|
||||||
|
{
|
||||||
|
_repository.saveData(name, accountId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CorePlayer getCorePlayer(Player player)
|
||||||
|
{
|
||||||
|
return new CorePlayer(player, this);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package mineplex.core.customdata;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by William (WilliamTiger).
|
||||||
|
* 16/12/15
|
||||||
|
*/
|
||||||
|
public abstract class MineplexPlayer
|
||||||
|
{
|
||||||
|
private Player _player;
|
||||||
|
private CustomDataManager _customDataManager;
|
||||||
|
|
||||||
|
public MineplexPlayer(Player player, CustomDataManager customDataManager)
|
||||||
|
{
|
||||||
|
_player = player;
|
||||||
|
_customDataManager = customDataManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getPlayer()
|
||||||
|
{
|
||||||
|
return _player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKeyPrefix()
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void put(String key, int data)
|
||||||
|
{
|
||||||
|
key = getKeyPrefix() + key;
|
||||||
|
_customDataManager.Get(getPlayer()).setData(key, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int get(String key)
|
||||||
|
{
|
||||||
|
key = getKeyPrefix() + key;
|
||||||
|
return _customDataManager.Get(getPlayer()).getData(key);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package mineplex.core.customdata;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import mineplex.core.customdata.repository.CustomDataRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by William (WilliamTiger).
|
||||||
|
* 16/12/15
|
||||||
|
*/
|
||||||
|
public class PlayerCustomData
|
||||||
|
{
|
||||||
|
private HashMap<CustomData, Integer> _data;
|
||||||
|
private CustomDataRepository _repository;
|
||||||
|
|
||||||
|
public PlayerCustomData(CustomDataRepository repository)
|
||||||
|
{
|
||||||
|
_data = new HashMap<>();
|
||||||
|
_repository = repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HashMap<CustomData, Integer> getDataMap()
|
||||||
|
{
|
||||||
|
return _data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setData(CustomData cd, int amount)
|
||||||
|
{
|
||||||
|
_data.put(cd, amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setData(String key, int amount)
|
||||||
|
{
|
||||||
|
if (_repository.doesKeyExist(key))
|
||||||
|
{
|
||||||
|
setData(_repository.getKey(key), amount);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_repository.getClientManager().getScheduler().runTaskAsynchronously(
|
||||||
|
_repository.getClientManager().getPlugin(),
|
||||||
|
new Runnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
_repository.registerKey(key); // Make sure it's in the DB.
|
||||||
|
|
||||||
|
setData(_repository.getKey(key), amount); // Input
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getData(String key)
|
||||||
|
{
|
||||||
|
if (_data.containsKey(_repository.getKey(key)))
|
||||||
|
return _data.get(_repository.getKey(key));
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,138 @@
|
|||||||
|
package mineplex.core.customdata.repository;
|
||||||
|
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import mineplex.core.account.CoreClientManager;
|
||||||
|
import mineplex.core.customdata.CustomData;
|
||||||
|
import mineplex.core.customdata.CustomDataManager;
|
||||||
|
import mineplex.core.customdata.PlayerCustomData;
|
||||||
|
import mineplex.core.database.DBPool;
|
||||||
|
import mineplex.core.database.RepositoryBase;
|
||||||
|
import mineplex.core.database.ResultSetCallable;
|
||||||
|
import mineplex.core.database.column.ColumnInt;
|
||||||
|
import mineplex.core.database.column.ColumnVarChar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by William (WilliamTiger).
|
||||||
|
* 16/12/15
|
||||||
|
*/
|
||||||
|
public class CustomDataRepository extends RepositoryBase
|
||||||
|
{
|
||||||
|
private static final String SELECT_KEYS = "SELECT id, name FROM customData;";
|
||||||
|
private static final String INSERT_KEY = "INSERT INTO customData (name) VALUES (?);";
|
||||||
|
private static final String UPDATE_DATA = "UPDATE accountCustomData SET data = ? WHERE accountId = ? AND customDataId = ?;";
|
||||||
|
private static final String INSERT_DATA = "INSERT INTO accountCustomData (accountId, customDataId, data) VALUES (?, ?, ?);";
|
||||||
|
|
||||||
|
private ArrayList<CustomData> _dataKeys;
|
||||||
|
|
||||||
|
private CoreClientManager _clientManager;
|
||||||
|
private CustomDataManager _customDataManager;
|
||||||
|
|
||||||
|
public CustomDataRepository(JavaPlugin plugin, CoreClientManager clientManager, CustomDataManager customDataManager)
|
||||||
|
{
|
||||||
|
super(plugin, DBPool.getAccount());
|
||||||
|
|
||||||
|
_clientManager = clientManager;
|
||||||
|
_customDataManager = customDataManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void initialize()
|
||||||
|
{
|
||||||
|
downloadDataKeys();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void update() {}
|
||||||
|
|
||||||
|
private void downloadDataKeys()
|
||||||
|
{
|
||||||
|
_dataKeys = new ArrayList<>();
|
||||||
|
|
||||||
|
executeQuery(SELECT_KEYS, new ResultSetCallable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void processResultSet(ResultSet resultSet) throws SQLException
|
||||||
|
{
|
||||||
|
while (resultSet.next())
|
||||||
|
{
|
||||||
|
_dataKeys.add(new CustomData(resultSet.getInt("id"), resultSet.getString("name")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveData(String name, int accountId)
|
||||||
|
{
|
||||||
|
PlayerCustomData data = _customDataManager.Get(name);
|
||||||
|
|
||||||
|
for (CustomData cd : data.getDataMap().keySet())
|
||||||
|
{
|
||||||
|
if (executeUpdate(
|
||||||
|
UPDATE_DATA,
|
||||||
|
new ColumnInt("data", data.getDataMap().get(cd)),
|
||||||
|
new ColumnInt("account", accountId),
|
||||||
|
new ColumnInt("customData", cd.getId())) < 1)
|
||||||
|
{
|
||||||
|
// Not already in the DB
|
||||||
|
executeUpdate(
|
||||||
|
INSERT_DATA,
|
||||||
|
new ColumnInt("account", accountId),
|
||||||
|
new ColumnInt("customData", cd.getId()),
|
||||||
|
new ColumnInt("data", data.getDataMap().get(cd))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void registerKey(String key)
|
||||||
|
{
|
||||||
|
if (doesKeyExist(key))
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeUpdate(INSERT_KEY, new ColumnVarChar("name", 100, key));
|
||||||
|
downloadDataKeys();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<CustomData> getDataKeys()
|
||||||
|
{
|
||||||
|
return _dataKeys;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean doesKeyExist(String key)
|
||||||
|
{
|
||||||
|
for (CustomData cur : _dataKeys)
|
||||||
|
if (cur.getKey().equals(key))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomData getKey(int id)
|
||||||
|
{
|
||||||
|
for (CustomData cur : _dataKeys)
|
||||||
|
if (cur.getId() == id)
|
||||||
|
return cur;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomData getKey(String key)
|
||||||
|
{
|
||||||
|
for (CustomData cur : _dataKeys)
|
||||||
|
if (cur.getKey().equals(key))
|
||||||
|
return cur;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CoreClientManager getClientManager()
|
||||||
|
{
|
||||||
|
return _clientManager;
|
||||||
|
}
|
||||||
|
}
|
@ -1,16 +1,26 @@
|
|||||||
package mineplex.core.database;
|
package mineplex.core.database;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.dbcp2.BasicDataSource;
|
import org.apache.commons.dbcp2.BasicDataSource;
|
||||||
|
|
||||||
|
import mineplex.serverdata.redis.RedisConfig;
|
||||||
|
import mineplex.serverdata.servers.ConnectionData;
|
||||||
|
import mineplex.serverdata.servers.ConnectionData.ConnectionType;
|
||||||
|
|
||||||
public final class DBPool
|
public final class DBPool
|
||||||
{
|
{
|
||||||
public static final DataSource ACCOUNT = openDataSource("jdbc:mysql://db.mineplex.com/Account", "MilitaryPolice", "CUPr6Wuw2Rus$qap");
|
private static DataSource ACCOUNT;
|
||||||
public static final DataSource QUEUE = openDataSource("jdbc:mysql://db.mineplex.com/Queue", "MilitaryPolice", "CUPr6Wuw2Rus$qap");
|
private static DataSource QUEUE;
|
||||||
public static final DataSource MINEPLEX = openDataSource("jdbc:mysql://db.mineplex.com:3306/Mineplex", "MilitaryPolice", "CUPr6Wuw2Rus$qap");
|
private static DataSource MINEPLEX;
|
||||||
public static final DataSource STATS_MINEPLEX = openDataSource("jdbc:mysql://sqlstats.mineplex.com:3306/Mineplex", "root", "tAbechAk3wR7tuTh");
|
private static DataSource STATS_MINEPLEX;
|
||||||
|
|
||||||
private static DataSource openDataSource(String url, String username, String password)
|
private static DataSource openDataSource(String url, String username, String password)
|
||||||
{
|
{
|
||||||
@ -30,8 +40,86 @@ public final class DBPool
|
|||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DBPool()
|
public static DataSource getAccount()
|
||||||
{
|
{
|
||||||
|
if (ACCOUNT == null)
|
||||||
|
loadDataSources();
|
||||||
|
|
||||||
|
return ACCOUNT;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DataSource getQueue()
|
||||||
|
{
|
||||||
|
if (QUEUE == null)
|
||||||
|
loadDataSources();
|
||||||
|
|
||||||
|
return QUEUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DataSource getMineplex()
|
||||||
|
{
|
||||||
|
if (MINEPLEX == null)
|
||||||
|
loadDataSources();
|
||||||
|
|
||||||
|
return MINEPLEX;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DataSource getStats()
|
||||||
|
{
|
||||||
|
if (STATS_MINEPLEX == null)
|
||||||
|
loadDataSources();
|
||||||
|
|
||||||
|
return STATS_MINEPLEX;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void loadDataSources()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File configFile = new File("database-config.dat");
|
||||||
|
|
||||||
|
if (configFile.exists())
|
||||||
|
{
|
||||||
|
List<String> lines = Files.readAllLines(configFile.toPath(), Charset.defaultCharset());
|
||||||
|
|
||||||
|
for (String line : lines)
|
||||||
|
{
|
||||||
|
deserializeConnection(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
System.out.println("database-config.dat not found at " + configFile.toPath().toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
exception.printStackTrace();
|
||||||
|
System.out.println("---Unable To Parse DBPOOL Configuration File---");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void deserializeConnection(String line)
|
||||||
|
{
|
||||||
|
String[] args = line.split(" ");
|
||||||
|
|
||||||
|
if (args.length == 4)
|
||||||
|
{
|
||||||
|
String dbSource = args[0];
|
||||||
|
String dbHost = args[1];
|
||||||
|
String userName = args[2];
|
||||||
|
String password = args[3];
|
||||||
|
|
||||||
|
System.out.println(dbSource + " " + dbHost + " " + userName + " " + password);
|
||||||
|
|
||||||
|
if (dbSource.toUpperCase().equalsIgnoreCase("ACCOUNT"))
|
||||||
|
ACCOUNT = openDataSource("jdbc:mysql://" + dbHost, userName, password);
|
||||||
|
else if (dbSource.toUpperCase().equalsIgnoreCase("QUEUE"))
|
||||||
|
QUEUE = openDataSource("jdbc:mysql://" + dbHost, userName, password);
|
||||||
|
else if (dbSource.toUpperCase().equalsIgnoreCase("MINEPLEX"))
|
||||||
|
MINEPLEX = openDataSource("jdbc:mysql://" + dbHost, userName, password);
|
||||||
|
else if (dbSource.toUpperCase().equalsIgnoreCase("STATS"))
|
||||||
|
STATS_MINEPLEX = openDataSource("jdbc:mysql://" + dbHost, userName, password);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,7 @@ public abstract class RepositoryBase implements Listener
|
|||||||
|
|
||||||
protected DSLContext jooq()
|
protected DSLContext jooq()
|
||||||
{
|
{
|
||||||
return DSL.using(DBPool.ACCOUNT, SQLDialect.MYSQL);
|
return DSL.using(DBPool.getAccount(), SQLDialect.MYSQL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,7 +37,7 @@ public class DonationRepository extends RepositoryBase
|
|||||||
|
|
||||||
public DonationRepository(JavaPlugin plugin, String webAddress)
|
public DonationRepository(JavaPlugin plugin, String webAddress)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
|
|
||||||
_webAddress = webAddress;
|
_webAddress = webAddress;
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ public class EloRepository extends RepositoryBase
|
|||||||
|
|
||||||
public EloRepository(JavaPlugin plugin)
|
public EloRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
|
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ public class FriendRepository extends RepositoryBase
|
|||||||
|
|
||||||
public FriendRepository(JavaPlugin plugin)
|
public FriendRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
|
|
||||||
_repository = new RedisDataRepository<PlayerStatus>(ServerManager.getMasterConnection(), ServerManager.getSlaveConnection(),
|
_repository = new RedisDataRepository<PlayerStatus>(ServerManager.getMasterConnection(), ServerManager.getSlaveConnection(),
|
||||||
Region.currentRegion(), PlayerStatus.class, "playerStatus");
|
Region.currentRegion(), PlayerStatus.class, "playerStatus");
|
||||||
|
@ -67,12 +67,10 @@ public enum GameDisplay
|
|||||||
MonsterLeague("Monster League", Material.MINECART, (byte)0, GameCategory.ARCADE, 56),
|
MonsterLeague("Monster League", Material.MINECART, (byte)0, GameCategory.ARCADE, 56),
|
||||||
|
|
||||||
Lobbers("Bomb Lobbers", Material.FIREBALL, (byte) 0, GameCategory.ARCADE, 54),
|
Lobbers("Bomb Lobbers", Material.FIREBALL, (byte) 0, GameCategory.ARCADE, 54),
|
||||||
|
|
||||||
ChampionsCTF("Champions CTF", "Champions", Material.BANNER, DyeColor.RED.getDyeData(), GameCategory.CHAMPIONS, 56),
|
ChampionsCTF("Champions CTF", "Champions", Material.BANNER, DyeColor.RED.getDyeData(), GameCategory.CHAMPIONS, 56),
|
||||||
|
|
||||||
BouncyBalls("Bouncy Balls", Material.SLIME_BALL, (byte)0, GameCategory.ARCADE, 57),
|
BouncyBalls("Bouncy Balls", Material.SLIME_BALL, (byte)0, GameCategory.ARCADE, 57),
|
||||||
|
|
||||||
Gladiators("Gladiators", Material.IRON_SWORD, (byte)0, GameCategory.ARCADE, 58),
|
Gladiators("Gladiators", Material.IRON_SWORD, (byte)0, GameCategory.ARCADE, 58),
|
||||||
|
TypeWars("Type Wars", Material.NAME_TAG, (byte) 0, GameCategory.CLASSICS, 59),
|
||||||
|
|
||||||
Event("Mineplex Event", Material.CAKE, (byte)0, GameCategory.EVENT, 999);
|
Event("Mineplex Event", Material.CAKE, (byte)0, GameCategory.EVENT, 999);
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class GiveawayRepository extends RepositoryBase
|
|||||||
|
|
||||||
public GiveawayRepository(JavaPlugin plugin)
|
public GiveawayRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canGiveaway(int accountId, String giveawayName, String cooldownName)
|
public boolean canGiveaway(int accountId, String giveawayName, String cooldownName)
|
||||||
|
@ -4,11 +4,14 @@ import java.util.ArrayList;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.UtilEnt;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import net.minecraft.server.v1_8_R3.DataWatcher;
|
import net.minecraft.server.v1_8_R3.DataWatcher;
|
||||||
import net.minecraft.server.v1_8_R3.Packet;
|
import net.minecraft.server.v1_8_R3.Packet;
|
||||||
import net.minecraft.server.v1_8_R3.PacketPlayOutEntity;
|
import net.minecraft.server.v1_8_R3.PacketPlayOutEntity;
|
||||||
@ -16,8 +19,6 @@ import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
|
|||||||
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityMetadata;
|
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityMetadata;
|
||||||
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport;
|
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport;
|
||||||
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving;
|
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving;
|
||||||
import mineplex.core.common.util.UtilEnt;
|
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
|
||||||
|
|
||||||
public class Hologram
|
public class Hologram
|
||||||
{
|
{
|
||||||
@ -313,7 +314,7 @@ public class Hologram
|
|||||||
*/
|
*/
|
||||||
public Hologram removePlayer(Player player)
|
public Hologram removePlayer(Player player)
|
||||||
{
|
{
|
||||||
return addPlayer(player.getName());
|
return removePlayer(player.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -17,7 +17,7 @@ public class IgnoreRepository extends RepositoryBase
|
|||||||
|
|
||||||
public IgnoreRepository(JavaPlugin plugin)
|
public IgnoreRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -29,7 +29,7 @@ public class InventoryRepository extends RepositoryBase
|
|||||||
|
|
||||||
public InventoryRepository(JavaPlugin plugin)
|
public InventoryRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -11,16 +11,17 @@ import java.util.Map;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.DyeColor;
|
||||||
import org.bukkit.FireworkEffect;
|
import org.bukkit.FireworkEffect;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.inventory.ItemFlag;
|
import org.bukkit.inventory.ItemFlag;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.BannerMeta;
|
||||||
import org.bukkit.inventory.meta.FireworkEffectMeta;
|
import org.bukkit.inventory.meta.FireworkEffectMeta;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
import org.bukkit.potion.Potion;
|
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
|
|
||||||
@ -254,6 +255,10 @@ public class ItemBuilder
|
|||||||
{
|
{
|
||||||
((FireworkEffectMeta) meta).setEffect(FireworkEffect.builder().withColor(_color).build());
|
((FireworkEffectMeta) meta).setEffect(FireworkEffect.builder().withColor(_color).build());
|
||||||
}
|
}
|
||||||
|
else if (meta instanceof BannerMeta)
|
||||||
|
{
|
||||||
|
((BannerMeta) meta).setBaseColor(DyeColor.getByColor(_color));
|
||||||
|
}
|
||||||
|
|
||||||
meta.addItemFlags(getItemFlags().toArray(new ItemFlag[0]));
|
meta.addItemFlags(getItemFlags().toArray(new ItemFlag[0]));
|
||||||
meta.spigot().setUnbreakable(isUnbreakable());
|
meta.spigot().setUnbreakable(isUnbreakable());
|
||||||
|
@ -36,7 +36,7 @@ public class StatEventsRepository extends RepositoryBase
|
|||||||
*/
|
*/
|
||||||
public StatEventsRepository(JavaPlugin plugin)
|
public StatEventsRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -224,6 +224,11 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
|
|||||||
UtilPlayer.message(from, C.cPurple + to.getName() + " is often AFK or minimized, due to plugin development.");
|
UtilPlayer.message(from, C.cPurple + to.getName() + " is often AFK or minimized, due to plugin development.");
|
||||||
UtilPlayer.message(from, C.cPurple + "Please be patient if he does not reply instantly.");
|
UtilPlayer.message(from, C.cPurple + "Please be patient if he does not reply instantly.");
|
||||||
}
|
}
|
||||||
|
if (to.getName().equals("xXVevzZXx"))
|
||||||
|
{
|
||||||
|
UtilPlayer.message(from, C.cPurple + to.getName() + " is often AFK or minimized, due to plugin development.");
|
||||||
|
UtilPlayer.message(from, C.cPurple + "Please be patient if she does not reply instantly.");
|
||||||
|
}
|
||||||
|
|
||||||
/*if(to.getName().equals("ishh"))
|
/*if(to.getName().equals("ishh"))
|
||||||
{
|
{
|
||||||
|
@ -268,7 +268,7 @@ public class NpcManager extends MiniPlugin
|
|||||||
|
|
||||||
public Entity addNpc(Player player, EntityType entityType, double radius, boolean adult, String name, String entityMeta) throws SQLException
|
public Entity addNpc(Player player, EntityType entityType, double radius, boolean adult, String name, String entityMeta) throws SQLException
|
||||||
{
|
{
|
||||||
try (Connection connection = DBPool.ACCOUNT.getConnection())
|
try (Connection connection = DBPool.getAccount().getConnection())
|
||||||
{
|
{
|
||||||
String helmet = itemStackToYaml(player.getInventory().getHelmet());
|
String helmet = itemStackToYaml(player.getInventory().getHelmet());
|
||||||
String chestplate = itemStackToYaml(player.getInventory().getChestplate());
|
String chestplate = itemStackToYaml(player.getInventory().getChestplate());
|
||||||
@ -386,7 +386,7 @@ public class NpcManager extends MiniPlugin
|
|||||||
|
|
||||||
if (npc != null)
|
if (npc != null)
|
||||||
{
|
{
|
||||||
try (Connection connection = DBPool.ACCOUNT.getConnection())
|
try (Connection connection = DBPool.getAccount().getConnection())
|
||||||
{
|
{
|
||||||
npc.getDatabaseRecord().attach(DSL.using(connection).configuration());
|
npc.getDatabaseRecord().attach(DSL.using(connection).configuration());
|
||||||
npc.getDatabaseRecord().delete();
|
npc.getDatabaseRecord().delete();
|
||||||
@ -493,7 +493,7 @@ public class NpcManager extends MiniPlugin
|
|||||||
{
|
{
|
||||||
String serverType = getServerName();
|
String serverType = getServerName();
|
||||||
|
|
||||||
try (Connection connection = DBPool.ACCOUNT.getConnection())
|
try (Connection connection = DBPool.getAccount().getConnection())
|
||||||
{
|
{
|
||||||
Result<NpcsRecord> result = DSL.using(connection)
|
Result<NpcsRecord> result = DSL.using(connection)
|
||||||
.selectFrom(Tables.npcs)
|
.selectFrom(Tables.npcs)
|
||||||
@ -519,7 +519,7 @@ public class NpcManager extends MiniPlugin
|
|||||||
{
|
{
|
||||||
String serverType = getServerName();
|
String serverType = getServerName();
|
||||||
|
|
||||||
try (Connection connection = DBPool.ACCOUNT.getConnection())
|
try (Connection connection = DBPool.getAccount().getConnection())
|
||||||
{
|
{
|
||||||
DSL.using(connection)
|
DSL.using(connection)
|
||||||
.delete(Tables.npcs)
|
.delete(Tables.npcs)
|
||||||
|
@ -22,7 +22,7 @@ public class PetRepository extends RepositoryBase
|
|||||||
|
|
||||||
public PetRepository(JavaPlugin plugin, String webAddress)
|
public PetRepository(JavaPlugin plugin, String webAddress)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
|
|
||||||
_webAddress = webAddress;
|
_webAddress = webAddress;
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ public class PollRepository extends RepositoryBase
|
|||||||
|
|
||||||
public PollRepository(JavaPlugin plugin)
|
public PollRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -28,7 +28,7 @@ public class PreferencesRepository extends RepositoryBase
|
|||||||
|
|
||||||
public PreferencesRepository(JavaPlugin plugin)
|
public PreferencesRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -41,7 +41,7 @@ This will be used to determine if staff are handling
|
|||||||
|
|
||||||
public ReportRepository(JavaPlugin plugin, String connectionString)
|
public ReportRepository(JavaPlugin plugin, String connectionString)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -23,7 +23,7 @@ public class SpawnRepository extends RepositoryBase
|
|||||||
|
|
||||||
public SpawnRepository(JavaPlugin plugin, String serverName)
|
public SpawnRepository(JavaPlugin plugin, String serverName)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
_serverName = serverName;
|
_serverName = serverName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ public class StatsRepository extends RepositoryBase
|
|||||||
|
|
||||||
public StatsRepository(JavaPlugin plugin)
|
public StatsRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -24,7 +24,7 @@ public class TaskRepository extends RepositoryBase
|
|||||||
|
|
||||||
public TaskRepository(JavaPlugin plugin)
|
public TaskRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -20,7 +20,7 @@ public class TitanGiveawayRepository extends RepositoryBase
|
|||||||
|
|
||||||
public TitanGiveawayRepository(JavaPlugin plugin)
|
public TitanGiveawayRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
_titanCount = 0;
|
_titanCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ public class TempRepository extends RepositoryBase
|
|||||||
|
|
||||||
public TempRepository(JavaPlugin plugin)
|
public TempRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addGemBooster(String name, int amount)
|
public void addGemBooster(String name, int amount)
|
||||||
|
@ -23,7 +23,7 @@ public class PurchaseRepository extends RepositoryBase
|
|||||||
|
|
||||||
public PurchaseRepository(JavaPlugin plugin)
|
public PurchaseRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -86,7 +86,7 @@ public class ClanRepository extends RepositoryBase
|
|||||||
|
|
||||||
public ClanRepository(JavaPlugin plugin, String serverName, boolean isClansServer)
|
public ClanRepository(JavaPlugin plugin, String serverName, boolean isClansServer)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
|
|
||||||
_serverName = serverName;
|
_serverName = serverName;
|
||||||
_serverId = -1;
|
_serverId = -1;
|
||||||
|
@ -34,7 +34,7 @@ public class FieldRepository extends RepositoryBase
|
|||||||
|
|
||||||
public FieldRepository(JavaPlugin plugin)
|
public FieldRepository(JavaPlugin plugin)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<FieldBlockToken> getFieldBlocks(String server)
|
public List<FieldBlockToken> getFieldBlocks(String server)
|
||||||
|
@ -14,6 +14,7 @@ import mineplex.core.blockrestore.BlockRestore;
|
|||||||
import mineplex.core.chat.Chat;
|
import mineplex.core.chat.Chat;
|
||||||
import mineplex.core.command.CommandCenter;
|
import mineplex.core.command.CommandCenter;
|
||||||
import mineplex.core.creature.Creature;
|
import mineplex.core.creature.Creature;
|
||||||
|
import mineplex.core.customdata.CustomDataManager;
|
||||||
import mineplex.core.disguise.DisguiseManager;
|
import mineplex.core.disguise.DisguiseManager;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
import mineplex.core.elo.EloManager;
|
import mineplex.core.elo.EloManager;
|
||||||
@ -133,8 +134,10 @@ public class Hub extends JavaPlugin implements IRelation
|
|||||||
|
|
||||||
SkillConditionManager conditionManager = new SkillConditionManager(this);
|
SkillConditionManager conditionManager = new SkillConditionManager(this);
|
||||||
|
|
||||||
|
CustomDataManager customDataManager = new CustomDataManager(this, clientManager);
|
||||||
|
|
||||||
PersonalServerManager personalServerManager = new PersonalServerManager(this, clientManager);
|
PersonalServerManager personalServerManager = new PersonalServerManager(this, clientManager);
|
||||||
HubManager hubManager = new HubManager(this, blockRestore, clientManager, donationManager, inventoryManager, conditionManager, disguiseManager, new TaskManager(this, clientManager, webServerAddress), portal, partyManager, preferenceManager, petManager, pollManager, statsManager, achievementManager, new HologramManager(this, packetHandler), npcManager, personalServerManager, packetHandler, punish, serverStatusManager, giveawayManager);
|
HubManager hubManager = new HubManager(this, blockRestore, clientManager, donationManager, inventoryManager, conditionManager, disguiseManager, new TaskManager(this, clientManager, webServerAddress), portal, partyManager, preferenceManager, petManager, pollManager, statsManager, achievementManager, new HologramManager(this, packetHandler), npcManager, personalServerManager, packetHandler, punish, serverStatusManager, giveawayManager, customDataManager);
|
||||||
|
|
||||||
QueueManager queueManager = new QueueManager(this, clientManager, donationManager, new EloManager(this, clientManager), partyManager);
|
QueueManager queueManager = new QueueManager(this, clientManager, donationManager, new EloManager(this, clientManager), partyManager);
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ import mineplex.core.common.util.UtilTextBottom;
|
|||||||
import mineplex.core.common.util.UtilTime;
|
import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.common.util.UtilWorld;
|
import mineplex.core.common.util.UtilWorld;
|
||||||
import mineplex.core.cosmetic.CosmeticManager;
|
import mineplex.core.cosmetic.CosmeticManager;
|
||||||
|
import mineplex.core.customdata.CustomDataManager;
|
||||||
import mineplex.core.disguise.DisguiseManager;
|
import mineplex.core.disguise.DisguiseManager;
|
||||||
import mineplex.core.disguise.disguises.DisguiseSlime;
|
import mineplex.core.disguise.disguises.DisguiseSlime;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
@ -159,6 +160,7 @@ public class HubManager extends MiniClientPlugin<HubClient>
|
|||||||
private PacketHandler _packetHandler;
|
private PacketHandler _packetHandler;
|
||||||
private PersonalServerManager _personalServerManager;
|
private PersonalServerManager _personalServerManager;
|
||||||
private PlayerCountManager _playerCountManager;
|
private PlayerCountManager _playerCountManager;
|
||||||
|
private CustomDataManager _customDataManager;
|
||||||
// private HalloweenSpookinessManager _halloweenManager;
|
// private HalloweenSpookinessManager _halloweenManager;
|
||||||
// private TrickOrTreatManager _trickOrTreatManager;
|
// private TrickOrTreatManager _trickOrTreatManager;
|
||||||
|
|
||||||
@ -181,7 +183,7 @@ public class HubManager extends MiniClientPlugin<HubClient>
|
|||||||
// private final String[] _songNames = {"JingleBells.nbs", "TheFirstNoel.nbs", "Hark.nbs", "DeckTheHalls.nbs", "Joy.nbs", "MerryChristmas.nbs"};
|
// private final String[] _songNames = {"JingleBells.nbs", "TheFirstNoel.nbs", "Hark.nbs", "DeckTheHalls.nbs", "Joy.nbs", "MerryChristmas.nbs"};
|
||||||
private final ArrayList<NoteSong> _songs;
|
private final ArrayList<NoteSong> _songs;
|
||||||
|
|
||||||
public HubManager(JavaPlugin plugin, BlockRestore blockRestore, CoreClientManager clientManager, DonationManager donationManager, InventoryManager inventoryManager, ConditionManager conditionManager, DisguiseManager disguiseManager, TaskManager taskManager, Portal portal, PartyManager partyManager, PreferencesManager preferences, PetManager petManager, PollManager pollManager, StatsManager statsManager, AchievementManager achievementManager, HologramManager hologramManager, NpcManager npcManager, PersonalServerManager personalServerManager, PacketHandler packetHandler, Punish punish, ServerStatusManager serverStatusManager, GiveawayManager giveawayManager)
|
public HubManager(JavaPlugin plugin, BlockRestore blockRestore, CoreClientManager clientManager, DonationManager donationManager, InventoryManager inventoryManager, ConditionManager conditionManager, DisguiseManager disguiseManager, TaskManager taskManager, Portal portal, PartyManager partyManager, PreferencesManager preferences, PetManager petManager, PollManager pollManager, StatsManager statsManager, AchievementManager achievementManager, HologramManager hologramManager, NpcManager npcManager, PersonalServerManager personalServerManager, PacketHandler packetHandler, Punish punish, ServerStatusManager serverStatusManager, GiveawayManager giveawayManager, CustomDataManager customDataManager)
|
||||||
{
|
{
|
||||||
super("Hub Manager", plugin);
|
super("Hub Manager", plugin);
|
||||||
|
|
||||||
@ -250,6 +252,8 @@ public class HubManager extends MiniClientPlugin<HubClient>
|
|||||||
|
|
||||||
_playerCountManager = new PlayerCountManager(plugin);
|
_playerCountManager = new PlayerCountManager(plugin);
|
||||||
|
|
||||||
|
_customDataManager = new CustomDataManager(plugin, clientManager);
|
||||||
|
|
||||||
_songs = new ArrayList<NoteSong>();
|
_songs = new ArrayList<NoteSong>();
|
||||||
|
|
||||||
try
|
try
|
||||||
@ -856,6 +860,11 @@ public class HubManager extends MiniClientPlugin<HubClient>
|
|||||||
return _visibilityManager;
|
return _visibilityManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CustomDataManager getCustomDataManager()
|
||||||
|
{
|
||||||
|
return _customDataManager;
|
||||||
|
}
|
||||||
|
|
||||||
// public HalloweenSpookinessManager getHalloweenManager()
|
// public HalloweenSpookinessManager getHalloweenManager()
|
||||||
// {
|
// {
|
||||||
// return _halloweenManager;
|
// return _halloweenManager;
|
||||||
|
@ -41,7 +41,7 @@ public class HubRepository
|
|||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
HashMap<String, String> newsEntries = new HashMap<String, String>();
|
HashMap<String, String> newsEntries = new HashMap<String, String>();
|
||||||
|
|
||||||
try (Connection connection = DBPool.MINEPLEX.getConnection())
|
try (Connection connection = DBPool.getMineplex().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(RETRIEVE_NEWS_ENTRIES);
|
preparedStatement = connection.prepareStatement(RETRIEVE_NEWS_ENTRIES);
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ public class HubRepository
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
|
|
||||||
try (Connection connection = DBPool.MINEPLEX.getConnection())
|
try (Connection connection = DBPool.getMineplex().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(SET_NEWS_ENTRY);
|
preparedStatement = connection.prepareStatement(SET_NEWS_ENTRY);
|
||||||
preparedStatement.setString(1, newsEntry);
|
preparedStatement.setString(1, newsEntry);
|
||||||
@ -127,7 +127,7 @@ public class HubRepository
|
|||||||
ResultSet resultSet = null;
|
ResultSet resultSet = null;
|
||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
|
|
||||||
try (Connection connection = DBPool.MINEPLEX.getConnection())
|
try (Connection connection = DBPool.getMineplex().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(RETRIEVE_MAX_NEWS_POSITION);
|
preparedStatement = connection.prepareStatement(RETRIEVE_MAX_NEWS_POSITION);
|
||||||
resultSet = preparedStatement.executeQuery();
|
resultSet = preparedStatement.executeQuery();
|
||||||
@ -165,7 +165,7 @@ public class HubRepository
|
|||||||
int maxPos = retrieveMaxNewsPosition();
|
int maxPos = retrieveMaxNewsPosition();
|
||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
|
|
||||||
try (Connection connection = DBPool.MINEPLEX.getConnection())
|
try (Connection connection = DBPool.getMineplex().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(ADD_NEWS_ENTRY);
|
preparedStatement = connection.prepareStatement(ADD_NEWS_ENTRY);
|
||||||
preparedStatement.setString(1, newsEntry);
|
preparedStatement.setString(1, newsEntry);
|
||||||
@ -201,7 +201,7 @@ public class HubRepository
|
|||||||
int maxPos = retrieveMaxNewsPosition();
|
int maxPos = retrieveMaxNewsPosition();
|
||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
|
|
||||||
try (Connection connection = DBPool.MINEPLEX.getConnection())
|
try (Connection connection = DBPool.getMineplex().getConnection())
|
||||||
{
|
{
|
||||||
//preparedStatement = connection.prepareStatement(DELETE_RECALC_NEWS_ENTRY);
|
//preparedStatement = connection.prepareStatement(DELETE_RECALC_NEWS_ENTRY);
|
||||||
preparedStatement = connection.prepareStatement(DELETE_NEWS_ENTRY);
|
preparedStatement = connection.prepareStatement(DELETE_NEWS_ENTRY);
|
||||||
|
@ -21,7 +21,7 @@ public class MailRepository extends RepositoryBase
|
|||||||
|
|
||||||
public MailRepository(JavaPlugin plugin, MailManager manager)
|
public MailRepository(JavaPlugin plugin, MailManager manager)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
|
|
||||||
_manager = manager;
|
_manager = manager;
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ public class QueueRepository
|
|||||||
{
|
{
|
||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
|
|
||||||
try (Connection connection = DBPool.QUEUE.getConnection())
|
try (Connection connection = DBPool.getQueue().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(DELETE_QUEUE_RECORD);
|
preparedStatement = connection.prepareStatement(DELETE_QUEUE_RECORD);
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ public class QueueRepository
|
|||||||
{
|
{
|
||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
|
|
||||||
try (Connection connection = DBPool.QUEUE.getConnection())
|
try (Connection connection = DBPool.getQueue().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(SAVE_STATE_VALUE);
|
preparedStatement = connection.prepareStatement(SAVE_STATE_VALUE);
|
||||||
preparedStatement.setString(1, matchStatus.State);
|
preparedStatement.setString(1, matchStatus.State);
|
||||||
@ -108,7 +108,7 @@ public class QueueRepository
|
|||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
PlayerMatchStatus matchStatus = new PlayerMatchStatus();
|
PlayerMatchStatus matchStatus = new PlayerMatchStatus();
|
||||||
|
|
||||||
try (Connection connection = DBPool.QUEUE.getConnection())
|
try (Connection connection = DBPool.getQueue().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(INSERT_ACCOUNT, Statement.RETURN_GENERATED_KEYS);
|
preparedStatement = connection.prepareStatement(INSERT_ACCOUNT, Statement.RETURN_GENERATED_KEYS);
|
||||||
preparedStatement.setString(1, playerList);
|
preparedStatement.setString(1, playerList);
|
||||||
@ -165,7 +165,7 @@ public class QueueRepository
|
|||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
PlayerMatchStatus matchStatus = null;
|
PlayerMatchStatus matchStatus = null;
|
||||||
|
|
||||||
try (Connection connection = DBPool.QUEUE.getConnection())
|
try (Connection connection = DBPool.getQueue().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(RETRIEVE_MATCH_STATUS);
|
preparedStatement = connection.prepareStatement(RETRIEVE_MATCH_STATUS);
|
||||||
preparedStatement.setInt(1, id);
|
preparedStatement.setInt(1, id);
|
||||||
@ -220,7 +220,7 @@ public class QueueRepository
|
|||||||
ResultSet resultSet = null;
|
ResultSet resultSet = null;
|
||||||
PreparedStatement preparedStatement = null;
|
PreparedStatement preparedStatement = null;
|
||||||
|
|
||||||
try (Connection connection = DBPool.QUEUE.getConnection())
|
try (Connection connection = DBPool.getQueue().getConnection())
|
||||||
{
|
{
|
||||||
preparedStatement = connection.prepareStatement(RETRIEVE_OTHER_MATCH_STATUS);
|
preparedStatement = connection.prepareStatement(RETRIEVE_OTHER_MATCH_STATUS);
|
||||||
preparedStatement.setInt(1, matchStatus.AssignedMatch);
|
preparedStatement.setInt(1, matchStatus.AssignedMatch);
|
||||||
|
@ -88,6 +88,8 @@ public class ServerManager extends MiniPlugin
|
|||||||
private NautHashMap<String, Long> _serverUpdate = new NautHashMap<String, Long>();
|
private NautHashMap<String, Long> _serverUpdate = new NautHashMap<String, Long>();
|
||||||
private NautHashMap<Vector, String> _serverPortalLocations = new NautHashMap<Vector, String>();
|
private NautHashMap<Vector, String> _serverPortalLocations = new NautHashMap<Vector, String>();
|
||||||
|
|
||||||
|
private ClansServerShop _clansShop;
|
||||||
|
|
||||||
// Join Time for Free Players Timer
|
// Join Time for Free Players Timer
|
||||||
private NautHashMap<String, Long> _joinTime = new NautHashMap<String, Long>();
|
private NautHashMap<String, Long> _joinTime = new NautHashMap<String, Long>();
|
||||||
|
|
||||||
@ -121,7 +123,7 @@ public class ServerManager extends MiniPlugin
|
|||||||
//_domShop = new new QueueShop(_queueManager, clientManager, donationManager, "Dominate");
|
//_domShop = new new QueueShop(_queueManager, clientManager, donationManager, "Dominate");
|
||||||
|
|
||||||
// TODO: Find more appropriate place to initialize Clans server shop?
|
// TODO: Find more appropriate place to initialize Clans server shop?
|
||||||
new ClansServerShop(this, _clientManager, _donationManager);
|
_clansShop = new ClansServerShop(this, _clientManager, _donationManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOW)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
@ -787,6 +789,11 @@ public class ServerManager extends MiniPlugin
|
|||||||
return _serverNpcShopMap.get("Dominate");
|
return _serverNpcShopMap.get("Dominate");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ServerNpcShop getCtfShop()
|
||||||
|
{
|
||||||
|
return _serverNpcShopMap.get("Capture the Flag");
|
||||||
|
}
|
||||||
|
|
||||||
public ServerNpcShop getBridgesShop()
|
public ServerNpcShop getBridgesShop()
|
||||||
{
|
{
|
||||||
return _serverNpcShopMap.get("The Bridges");
|
return _serverNpcShopMap.get("The Bridges");
|
||||||
@ -804,7 +811,7 @@ public class ServerManager extends MiniPlugin
|
|||||||
|
|
||||||
public ServerNpcShop getBetaShop()
|
public ServerNpcShop getBetaShop()
|
||||||
{
|
{
|
||||||
return _serverNpcShopMap.get("Beta Games");
|
return _serverNpcShopMap.get("Beta Monster Maze");
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerNpcShop getUHCShop()
|
public ServerNpcShop getUHCShop()
|
||||||
@ -822,6 +829,11 @@ public class ServerManager extends MiniPlugin
|
|||||||
return _serverNpcShopMap.get("Mineplex Player Servers");
|
return _serverNpcShopMap.get("Mineplex Player Servers");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ServerNpcShop getShop(String name)
|
||||||
|
{
|
||||||
|
return _serverNpcShopMap.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
private Vector ParseVector(String vectorString)
|
private Vector ParseVector(String vectorString)
|
||||||
{
|
{
|
||||||
Vector vector = new Vector();
|
Vector vector = new Vector();
|
||||||
@ -882,4 +894,14 @@ public class ServerManager extends MiniPlugin
|
|||||||
{
|
{
|
||||||
return _serverNpcShopMap.get("Master Builders");
|
return _serverNpcShopMap.get("Master Builders");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ClansServerShop getClansShop()
|
||||||
|
{
|
||||||
|
return _clansShop;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ShopBase<ServerManager> getTypeWarsShop()
|
||||||
|
{
|
||||||
|
return _serverNpcShopMap.get("Type Wars");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
@ -12,15 +13,18 @@ import mineplex.core.account.CoreClientManager;
|
|||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
import mineplex.core.itemstack.ItemBuilder;
|
import mineplex.core.itemstack.ItemBuilder;
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
|
||||||
import mineplex.core.shop.page.ShopPageBase;
|
import mineplex.core.shop.page.ShopPageBase;
|
||||||
import mineplex.hub.server.ServerManager;
|
import mineplex.hub.server.ServerManager;
|
||||||
|
import mineplex.hub.server.ui.button.SelectBETAButton;
|
||||||
import mineplex.hub.server.ui.button.SelectBHButton;
|
import mineplex.hub.server.ui.button.SelectBHButton;
|
||||||
import mineplex.hub.server.ui.button.SelectBLDButton;
|
import mineplex.hub.server.ui.button.SelectBLDButton;
|
||||||
import mineplex.hub.server.ui.button.SelectBRButton;
|
import mineplex.hub.server.ui.button.SelectBRButton;
|
||||||
|
import mineplex.hub.server.ui.button.SelectCLANSButton;
|
||||||
import mineplex.hub.server.ui.button.SelectCSButton;
|
import mineplex.hub.server.ui.button.SelectCSButton;
|
||||||
|
import mineplex.hub.server.ui.button.SelectCTFButton;
|
||||||
import mineplex.hub.server.ui.button.SelectDMTButton;
|
import mineplex.hub.server.ui.button.SelectDMTButton;
|
||||||
import mineplex.hub.server.ui.button.SelectDOMButton;
|
import mineplex.hub.server.ui.button.SelectDOMButton;
|
||||||
|
import mineplex.hub.server.ui.button.SelectFEATButton;
|
||||||
import mineplex.hub.server.ui.button.SelectMINButton;
|
import mineplex.hub.server.ui.button.SelectMINButton;
|
||||||
import mineplex.hub.server.ui.button.SelectMSButton;
|
import mineplex.hub.server.ui.button.SelectMSButton;
|
||||||
import mineplex.hub.server.ui.button.SelectPLAYERButton;
|
import mineplex.hub.server.ui.button.SelectPLAYERButton;
|
||||||
@ -28,6 +32,7 @@ import mineplex.hub.server.ui.button.SelectSGButton;
|
|||||||
import mineplex.hub.server.ui.button.SelectSKYButton;
|
import mineplex.hub.server.ui.button.SelectSKYButton;
|
||||||
import mineplex.hub.server.ui.button.SelectSSMButton;
|
import mineplex.hub.server.ui.button.SelectSSMButton;
|
||||||
import mineplex.hub.server.ui.button.SelectTDMButton;
|
import mineplex.hub.server.ui.button.SelectTDMButton;
|
||||||
|
import mineplex.hub.server.ui.button.SelectTWButton;
|
||||||
import mineplex.hub.server.ui.button.SelectUHCButton;
|
import mineplex.hub.server.ui.button.SelectUHCButton;
|
||||||
import mineplex.hub.server.ui.button.SelectWIZButton;
|
import mineplex.hub.server.ui.button.SelectWIZButton;
|
||||||
|
|
||||||
@ -38,11 +43,12 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
|
|
||||||
private int _ssmIndex;
|
private int _ssmIndex;
|
||||||
private int _minigameIndex;
|
private int _minigameIndex;
|
||||||
|
private boolean _extraValue;
|
||||||
|
|
||||||
public ServerGameMenu(ServerManager plugin, QuickShop quickShop, CoreClientManager clientManager,
|
public ServerGameMenu(ServerManager plugin, QuickShop quickShop, CoreClientManager clientManager,
|
||||||
DonationManager donationManager, String name, Player player)
|
DonationManager donationManager, String name, Player player)
|
||||||
{
|
{
|
||||||
super(plugin, quickShop, clientManager, donationManager, name, player, 47);
|
super(plugin, quickShop, clientManager, donationManager, name, player, 45);
|
||||||
|
|
||||||
createSuperSmashCycle();
|
createSuperSmashCycle();
|
||||||
createMinigameCycle();
|
createMinigameCycle();
|
||||||
@ -50,12 +56,33 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
buildPage();
|
buildPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildPage()
|
protected void buildPage()
|
||||||
{
|
{
|
||||||
setItem(0, new ItemBuilder(Material.IRON_PICKAXE)
|
addButton(3, new ItemBuilder(Material.NAME_TAG).setTitle(C.cYellowB + "Type Wars " + C.cGray + "Team Deathmatch").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "The Bridges " + C.cGray + "4 Team Survival").addLore(new String[]
|
{
|
||||||
|
(_extraValue ? C.cAquaB : C.cWhiteB) + "NEW GAME",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Attack your enemies with",
|
||||||
|
C.Reset + "waves of mobs. Defend your giant",
|
||||||
|
C.Reset + "by typing the name of an enemy mob",
|
||||||
|
C.Reset + "to kill it.",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("TW") + C.Reset + " other players!",
|
||||||
|
}).setHideInfo(true).build(), new SelectTWButton(this));
|
||||||
|
|
||||||
|
addButton(5, new ItemBuilder(Material.IRON_SWORD).setTitle(C.cYellowB + "Gladiators" + C.cGray + " Bracketted Deathmatch").addLore(new String[]
|
||||||
|
{
|
||||||
|
(_extraValue ? C.cAquaB : C.cWhiteB) + "FEATURED ARCADE GAME",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "A 1v1 tournament.",
|
||||||
|
C.Reset + "Kill your enemy and then",
|
||||||
|
C.Reset + "run to the next arena!",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("GLD") + C.Reset + " other players!"
|
||||||
|
}).setHideInfo(true).build(), new SelectFEATButton(this, "Gladiators"));
|
||||||
|
|
||||||
|
addButton(9, new ItemBuilder(Material.IRON_PICKAXE).setTitle(C.cYellowB + "The Bridges " + C.cGray + "4 Team Survival").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "4 Teams get 10 minutes to prepare.",
|
C.Reset + "4 Teams get 10 minutes to prepare.",
|
||||||
@ -64,23 +91,19 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
C.Reset + "death with the other teams.",
|
C.Reset + "death with the other teams.",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("BR") + C.Reset + " other players!"
|
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("BR") + C.Reset + " other players!"
|
||||||
}).setHideInfo(true).build());
|
}).setHideInfo(true).build(), new SelectBRButton(this));
|
||||||
|
|
||||||
setItem(2, new ItemBuilder(Material.DIAMOND_SWORD)
|
addButton(11, new ItemBuilder(Material.DIAMOND_SWORD).setTitle(C.cYellowB + "Survival Games " + C.cGray + "Solo/Team Survival").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Survival Games " + C.cGray + "Solo/Team Survival").addLore(new String[]
|
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Search for chests to find loot and ",
|
C.Reset + "Search for chests to find loot and ",
|
||||||
C.Reset + "fight others to be the last man standing. ",
|
C.Reset + "fight others to be the last man standing. ",
|
||||||
C.Reset + "Stay away from the borders!",
|
C.Reset + "Stay away from the borders!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen
|
C.Reset + "Join " + C.cGreen + (getPlugin().getGroupTagPlayerCount("HG") + getPlugin().getGroupTagPlayerCount("SG2")) + C.Reset + " other players!"
|
||||||
+ (getPlugin().getGroupTagPlayerCount("HG") + getPlugin().getGroupTagPlayerCount("SG2")) + C.Reset
|
}).setHideInfo(true).build(), new SelectSGButton(this));
|
||||||
+ " other players!"
|
|
||||||
}).setHideInfo(true).build());
|
|
||||||
|
|
||||||
setItem(4, new ItemBuilder(Material.FEATHER)
|
addButton(13, new ItemBuilder(Material.FEATHER).setTitle(C.cYellowB + "Skywars " + C.cGray + "Solo/Team Survival").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Skywars " + C.cGray + "Solo/Team Survival").addLore(new String[]
|
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "16 contenders fight to rule the skies!",
|
C.Reset + "16 contenders fight to rule the skies!",
|
||||||
@ -89,13 +112,10 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
C.Reset + "Up in the skies, death looming if you fall..",
|
C.Reset + "Up in the skies, death looming if you fall..",
|
||||||
C.Reset + "Win! Fight! Send enemies flying in Skywars!",
|
C.Reset + "Win! Fight! Send enemies flying in Skywars!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen
|
C.Reset + "Join " + C.cGreen + (getPlugin().getGroupTagPlayerCount("SKY") + getPlugin().getGroupTagPlayerCount("SKY2")) + C.Reset + " other players!",
|
||||||
+ (getPlugin().getGroupTagPlayerCount("SKY") + getPlugin().getGroupTagPlayerCount("SKY2")) + C.Reset
|
}).setHideInfo(true).build(), new SelectSKYButton(this));
|
||||||
+ " other players!",
|
|
||||||
}).setHideInfo(true).build());
|
|
||||||
|
|
||||||
setItem(6, new ItemBuilder(Material.GOLDEN_APPLE)
|
addButton(15, new ItemBuilder(Material.GOLDEN_APPLE).setTitle(C.cYellowB + "UHC " + C.cGray + "Ultra Hardcore Mode").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "UHC " + C.cGray + "Ultra Hardcore Mode").addLore(new String[]
|
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Extremely hard team-based survival ",
|
C.Reset + "Extremely hard team-based survival ",
|
||||||
@ -103,10 +123,9 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
C.Reset + "to become the last team standing!",
|
C.Reset + "to become the last team standing!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("UHC") + C.Reset + " other players!",
|
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("UHC") + C.Reset + " other players!",
|
||||||
}).setHideInfo(true).build());
|
}).setHideInfo(true).build(), new SelectUHCButton(this));
|
||||||
|
|
||||||
setItem(8, new ItemBuilder(Material.BLAZE_ROD)
|
addButton(17, new ItemBuilder(Material.BLAZE_ROD).setTitle(C.cYellowB + "Wizards " + C.cGray + "Last Man Standing").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Wizards " + C.cGray + "Last Man Standing").addLore(new String[]
|
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Wield powerful spells to fight",
|
C.Reset + "Wield powerful spells to fight",
|
||||||
@ -114,117 +133,29 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
C.Reset + "exciting free-for-all brawl!",
|
C.Reset + "exciting free-for-all brawl!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("WIZ") + C.Reset + " other players!",
|
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("WIZ") + C.Reset + " other players!",
|
||||||
}).setHideInfo(true).build());
|
}).setHideInfo(true).build(), new SelectWIZButton(this));
|
||||||
|
|
||||||
setItem(18, new ItemBuilder(Material.DIAMOND_CHESTPLATE)
|
addButton(18, new ItemBuilder(Material.BANNER).setColor(Color.RED).setTitle(C.cYellowB + "Capture the Flag " + C.cGray + "Team Game").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Castle Siege " + C.cGray + "Team Game").addLore(new String[]
|
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Defenders must protect King Sparklez",
|
C.Reset + "One team must steal the other",
|
||||||
C.Reset + "from the endless waves of Undead",
|
C.Reset + "team's flag. Capture it",
|
||||||
C.Reset + "until the sun rises!",
|
C.Reset + "three times to win.",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("CS") + C.Reset + " other players!",
|
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("CTF") + C.Reset + " other players!",
|
||||||
}).setHideInfo(true).build());
|
}).setHideInfo(true).build(), new SelectCTFButton(this));
|
||||||
|
|
||||||
setItem(20, new ItemBuilder(Material.GRASS)
|
addButton(20, new ItemBuilder(Material.BEACON).setTitle(C.cYellowB + "Dominate " + C.cGray + "Team Game").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Block Hunt " + C.cGray + "Cat and Mouse").addLore(new String[]
|
|
||||||
{
|
|
||||||
C.Reset + "",
|
|
||||||
C.Reset + "Hide as blocks/animals, upgrade your ",
|
|
||||||
C.Reset + "weapon and fight to survive against",
|
|
||||||
C.Reset + "the Hunters!",
|
|
||||||
C.Reset + "",
|
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("BH") + C.Reset + " other players!",
|
|
||||||
}).setHideInfo(true).build());
|
|
||||||
|
|
||||||
setItem(22, _superSmashCycle.get(_ssmIndex));
|
|
||||||
|
|
||||||
setItem(24, ItemStackFactory.Instance.CreateStack(Material.TNT.getId(), (byte) 0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Mine-Strike" + C.cGray + "Team Survival", new String[]
|
|
||||||
{
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "One team must defend two bomb sites from",
|
|
||||||
ChatColor.RESET + "the other team, who are trying to plant a bomb",
|
|
||||||
ChatColor.RESET + "and blow them up!",
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("MS") + ChatColor.RESET + " other players!",
|
|
||||||
}));
|
|
||||||
|
|
||||||
setItem(26, ItemStackFactory.Instance.CreateStack(Material.BOOK_AND_QUILL.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Draw My Thing " + C.cGray + "Pictionary!", new String[]
|
|
||||||
{
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "Players take turns at drawing a random",
|
|
||||||
ChatColor.RESET + "word. Whoever guesses it within the time",
|
|
||||||
ChatColor.RESET + "limit gets some points!",
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("DMT") + ChatColor.RESET + " other players!",
|
|
||||||
}));
|
|
||||||
|
|
||||||
setItem(36, ItemStackFactory.Instance.CreateStack(Material.BEACON.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Dominate " + C.cGray + "Team Game", new String[]
|
|
||||||
{
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "Customize one of five exciting champions",
|
|
||||||
ChatColor.RESET + "and battle with the opposing team for the",
|
|
||||||
ChatColor.RESET + "control points on the map.",
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("DOM") + ChatColor.RESET + " other players!",
|
|
||||||
}));
|
|
||||||
|
|
||||||
setItem(38, ItemStackFactory.Instance.CreateStack(Material.GOLD_SWORD.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Team Deathmatch " + C.cGray + "Team Game", new String[]
|
|
||||||
{
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "Customize one of five exciting champions",
|
|
||||||
ChatColor.RESET + "and battle with the opposing team to the",
|
|
||||||
ChatColor.RESET + "last man standing.",
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("TDM") + ChatColor.RESET + " other players!",
|
|
||||||
}));
|
|
||||||
|
|
||||||
setItem(40, ItemStackFactory.Instance.CreateStack(Material.WOOD.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Master Builders " + C.cGray + "Creative Build", new String[]
|
|
||||||
{
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "Players are given a Build Theme and ",
|
|
||||||
ChatColor.RESET + "must use blocks, monsters and more",
|
|
||||||
ChatColor.RESET + "to create a masterpiece!",
|
|
||||||
ChatColor.RESET + "",
|
|
||||||
ChatColor.RESET + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("BLD") + ChatColor.RESET + " other players!",
|
|
||||||
}));
|
|
||||||
|
|
||||||
setItem(24, new ItemBuilder(Material.TNT)
|
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Mine-Strike " + C.cGray + "Team Survival").addLore(new String[]
|
|
||||||
{
|
|
||||||
C.Reset + "",
|
|
||||||
C.Reset + "One team must defend two bomb sites from",
|
|
||||||
C.Reset + "the other team, who are trying to plant a bomb",
|
|
||||||
C.Reset + "and blow them up!",
|
|
||||||
C.Reset + "",
|
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("MS") + C.Reset + " other players!",
|
|
||||||
}).setHideInfo(true).build());
|
|
||||||
|
|
||||||
setItem(26, new ItemBuilder(Material.BOOK_AND_QUILL)
|
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Draw My Thing " + C.cGray + "Pictionary!").addLore(new String[]
|
|
||||||
{
|
|
||||||
C.Reset + "",
|
|
||||||
C.Reset + "Players take turns at drawing a random",
|
|
||||||
C.Reset + "word. Whoever guesses it within the time",
|
|
||||||
C.Reset + "limit gets some points!",
|
|
||||||
C.Reset + "",
|
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("DMT") + C.Reset + " other players!",
|
|
||||||
}).setHideInfo(true).build());
|
|
||||||
|
|
||||||
setItem(36, new ItemBuilder(Material.BEACON).setTitle(C.Reset + C.Bold + C.cYellow + "Dominate " + C.cGray + "Team Game")
|
|
||||||
.addLore(new String[]
|
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Customize one of five exciting champions",
|
C.Reset + "Customize one of five exciting champions",
|
||||||
C.Reset + "and battle with the opposing team for the",
|
C.Reset + "and battle with the opposing team for the",
|
||||||
C.Reset + "control points on the map.",
|
C.Reset + "control points on the map.",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("DOM") + C.Reset + " other players!",
|
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("DOM") + C.Reset + " other players!",
|
||||||
}).setHideInfo(true).build());
|
}).setHideInfo(true).build(), new SelectDOMButton(this));
|
||||||
|
|
||||||
setItem(38, new ItemBuilder(Material.GOLD_SWORD)
|
addButton(22, new ItemBuilder(Material.GOLD_SWORD).setTitle(C.cYellowB + "Team Deathmatch " + C.cGray + "Team Game").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Team Deathmatch " + C.cGray + "Team Game").addLore(new String[]
|
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Customize one of five exciting champions",
|
C.Reset + "Customize one of five exciting champions",
|
||||||
@ -232,64 +163,140 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
C.Reset + "last man standing.",
|
C.Reset + "last man standing.",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("TDM") + C.Reset + " other players!",
|
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("TDM") + C.Reset + " other players!",
|
||||||
}).setHideInfo(true).build());
|
}).setHideInfo(true).build(), new SelectTDMButton(this));
|
||||||
|
|
||||||
setItem(40, new ItemBuilder(Material.WOOD)
|
addButton(24, new ItemBuilder(Material.DIAMOND_CHESTPLATE).setTitle(C.cYellowB + "Castle Siege " + C.cGray + "Team Game").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Master Builders " + C.cGray + "Creative Build").addLore(new String[]
|
{
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Defenders must protect King Sparklez",
|
||||||
|
C.Reset + "from the endless waves of Undead",
|
||||||
|
C.Reset + "until the sun rises!",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("CS") + C.Reset + " other players!",
|
||||||
|
}).setHideInfo(true).build(), new SelectCSButton(this));
|
||||||
|
|
||||||
|
addButton(26, new ItemBuilder(Material.GRASS).setTitle(C.cYellowB + "Block Hunt " + C.cGray + "Cat and Mouse").addLore(new String[]
|
||||||
|
{
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Hide as blocks/animals, upgrade your ",
|
||||||
|
C.Reset + "weapon and fight to survive against",
|
||||||
|
C.Reset + "the Hunters!",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("BH") + C.Reset + " other players!",
|
||||||
|
}).setHideInfo(true).build(), new SelectBHButton(this));
|
||||||
|
|
||||||
|
addButton(27, new ItemBuilder(Material.TNT).setTitle(C.cYellowB + "MineStrike " + C.cGray + "Team Survival").addLore(new String[]
|
||||||
|
{
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "One team must defend two bomb sites from",
|
||||||
|
C.Reset + "the other team, who are trying to plant a bomb",
|
||||||
|
C.Reset + "and blow them up!",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("MS") + C.Reset + " other players!",
|
||||||
|
}).setHideInfo(true).build(), new SelectMSButton(this));
|
||||||
|
|
||||||
|
addButton(29, new ItemBuilder(Material.BOOK_AND_QUILL).setTitle(C.cYellowB + "Draw My Thing " + C.cGray + "Pictionary").addLore(new String[]
|
||||||
|
{
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Players take turns at drawing a random",
|
||||||
|
C.Reset + "word. Whoever guesses it within the time",
|
||||||
|
C.Reset + "limit gets some points!",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("DMT") + C.Reset + " other players!",
|
||||||
|
}).setHideInfo(true).build(), new SelectDMTButton(this));
|
||||||
|
|
||||||
|
addButton(31, _superSmashCycle.get(_ssmIndex), new SelectSSMButton(this));
|
||||||
|
|
||||||
|
addButton(33, _minigameCycle.get(_minigameIndex), new SelectMINButton(this));
|
||||||
|
|
||||||
|
addButton(35, new ItemBuilder(Material.WOOD).setTitle(C.cYellowB + "Master Builders " + C.cGray + "Creative Build").setLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Players are given a Build Theme and ",
|
C.Reset + "Players are given a Build Theme and ",
|
||||||
C.Reset + "must use blocks, monsters and more",
|
C.Reset + "must use blocks, monsters and more",
|
||||||
C.Reset + "to create a masterpiece!",
|
C.Reset + "to create a masterpiece!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("BLD") + C.Reset + " other players!",
|
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("BLD") + C.Reset + " other players!",
|
||||||
}).setHideInfo(true).build());
|
}).setHideInfo(true).build(), new SelectBLDButton(this));
|
||||||
|
|
||||||
setItem(42, _minigameCycle.get(_minigameIndex));
|
addButton(37, new ItemBuilder(Material.SNOW_BALL).setTitle(C.cYellowB + "Snow Fight " + C.cGray + "Team Survival").addLore(new String[]
|
||||||
|
{
|
||||||
|
(_extraValue ? C.cAquaB : C.cWhiteB) + "LIMITED TIME",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Harness the power of snow",
|
||||||
|
C.Reset + "to vanquish your enemies in",
|
||||||
|
C.Reset + "this ULTIMATE snowball fight!",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("SF") + C.Reset + " other players!",
|
||||||
|
}).setHideInfo(true).build(), new SelectFEATButton(this, "Snow Fight"));
|
||||||
|
|
||||||
setItem(44, new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3)
|
addButton(39, new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setTitle(C.cYellowB + "Player Servers " + C.cGray + "Player Hosted Games").addLore(new String[]
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Player Servers " + C.cGray + "Player Hosted Games").addLore(new String[]
|
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join your friends in their own ",
|
C.Reset + "Join your friends in their own ",
|
||||||
C.Reset + "Mineplex Player Server. You can play",
|
C.Reset + "Mineplex Player Server. You can play",
|
||||||
C.Reset + "the games you want, when you want.",
|
C.Reset + "the games you want, when you want.",
|
||||||
|
}).setHideInfo(true).build(), new SelectPLAYERButton(this));
|
||||||
|
|
||||||
|
addButton(40, new ItemBuilder(Material.IRON_DOOR).setTitle(C.cYellowB + "Mineplex Clans " + C.cGray + "Champions Teams").addLore(new String[]
|
||||||
|
{
|
||||||
|
(_extraValue ? C.cAquaB : C.cWhiteB) + "ALPHA RELEASE",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
}).setHideInfo(true).build());
|
C.Reset + "Equip custom skills and builds",
|
||||||
|
C.Reset + "and join your clan to destroy",
|
||||||
|
C.Reset + "and raid others!",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("Clans") + C.Reset + " other players!",
|
||||||
|
}).setHideInfo(true).build(), new SelectCLANSButton(this));
|
||||||
|
|
||||||
getButtonMap().put(0, new SelectBRButton(this));
|
addButton(41, new ItemBuilder(Material.BREWING_STAND_ITEM).setTitle(C.cYellowB + "Monster Maze " + C.cGray + "Snow Sprint").addLore(new String[]
|
||||||
getButtonMap().put(2, new SelectSGButton(this));
|
{
|
||||||
getButtonMap().put(4, new SelectSKYButton(this));
|
(_extraValue ? C.cAquaB : C.cWhiteB) + "BETA GAME",
|
||||||
getButtonMap().put(6, new SelectUHCButton(this));
|
C.Reset + "",
|
||||||
getButtonMap().put(8, new SelectWIZButton(this));
|
C.Reset + "Run along a maze avoiding",
|
||||||
|
C.Reset + "evil monsters. Get to the",
|
||||||
|
C.Reset + "Safe-Pad or be killed!",
|
||||||
|
C.Reset + "",
|
||||||
|
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("BETA") + C.Reset + " other players!",
|
||||||
|
}).setHideInfo(true).build(), new SelectBETAButton(this));
|
||||||
|
|
||||||
getButtonMap().put(18, new SelectCSButton(this));
|
addButton(43, new ItemBuilder(Material.BOOKSHELF).setTitle(C.cYellowB + "Christmas Chaos " + C.cGray + "Help Save Christmas").addLore(new String[]
|
||||||
getButtonMap().put(20, new SelectBHButton(this));
|
{
|
||||||
getButtonMap().put(22, new SelectSSMButton(this));
|
(_extraValue ? C.cAquaB : C.cWhiteB) + "LIMITED TIME",
|
||||||
getButtonMap().put(24, new SelectMSButton(this));
|
C.Reset + "",
|
||||||
getButtonMap().put(26, new SelectDMTButton(this));
|
C.Reset + "Band together with your friends",
|
||||||
getButtonMap().put(36, new SelectDOMButton(this));
|
C.Reset + "and help Santa save Christmas from",
|
||||||
getButtonMap().put(38, new SelectTDMButton(this));
|
C.Reset + "a deadly enemy...",
|
||||||
getButtonMap().put(40, new SelectBLDButton(this));
|
C.Reset + "",
|
||||||
getButtonMap().put(42, new SelectMINButton(this));
|
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("CC") + C.Reset + " other players!",
|
||||||
getButtonMap().put(44, new SelectPLAYERButton(this));
|
}).setHideInfo(true).build(), new SelectFEATButton(this, "Christmas Chaos"));
|
||||||
// getButtonMap().put(44, new SelectBETAButton(this));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
private void createMinigameCycle()
|
private void createMinigameCycle()
|
||||||
{
|
{
|
||||||
int playerCount = getPlugin().getGroupTagPlayerCount("MIN") + getPlugin().getGroupTagPlayerCount("DR")
|
int playerCount = 0
|
||||||
+ getPlugin().getGroupTagPlayerCount("DE") + getPlugin().getGroupTagPlayerCount("PB")
|
+ getPlugin().getGroupTagPlayerCount("MIN")
|
||||||
+ getPlugin().getGroupTagPlayerCount("TF") + getPlugin().getGroupTagPlayerCount("RUN")
|
+ getPlugin().getGroupTagPlayerCount("DR")
|
||||||
+ getPlugin().getGroupTagPlayerCount("SN") + getPlugin().getGroupTagPlayerCount("DT")
|
+ getPlugin().getGroupTagPlayerCount("DE")
|
||||||
+ getPlugin().getGroupTagPlayerCount("SQ") + getPlugin().getGroupTagPlayerCount("SA")
|
+ getPlugin().getGroupTagPlayerCount("PB")
|
||||||
+ getPlugin().getGroupTagPlayerCount("SS") + getPlugin().getGroupTagPlayerCount("OITQ");
|
+ getPlugin().getGroupTagPlayerCount("TF")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("RUN")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("SN")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("DT")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("SQ")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("SA")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("SS")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("OITQ")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("BB")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("MB")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("EVO")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("GLD")
|
||||||
|
+ getPlugin().getGroupTagPlayerCount("BL");
|
||||||
_minigameCycle.add(new ItemBuilder(Material.SMOOTH_BRICK)
|
_minigameCycle.add(new ItemBuilder(Material.SMOOTH_BRICK)
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + C.Bold + C.cGreen + "Super Spleef",
|
C.Reset + C.Bold + C.cGreen + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -310,7 +317,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + C.Bold + C.cGreen + "Runner",
|
C.Reset + C.Bold + C.cGreen + "Runner",
|
||||||
@ -331,7 +338,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -352,7 +359,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -373,7 +380,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -394,7 +401,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -415,7 +422,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -436,7 +443,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -457,7 +464,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -478,7 +485,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -499,7 +506,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
.setTitle(C.Reset + C.Bold + C.cYellow + "Arcade " + C.cGray + "Mixed Games").addLore(new String[]
|
||||||
{
|
{
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Play all of these fun minigames:",
|
C.Reset + "Play all of these fun minigames and more!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Super Spleef",
|
C.Reset + "Super Spleef",
|
||||||
C.Reset + "Runner",
|
C.Reset + "Runner",
|
||||||
@ -526,20 +533,31 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
C.Reset + "then battle other players to the ",
|
C.Reset + "then battle other players to the ",
|
||||||
C.Reset + "death with your monsters skills!",
|
C.Reset + "death with your monsters skills!",
|
||||||
C.Reset + "",
|
C.Reset + "",
|
||||||
C.Reset + "Join " + C.cGreen
|
C.Reset + "Join " + C.cGreen + (getPlugin().getGroupTagPlayerCount("SSM") + getPlugin().getGroupTagPlayerCount("SSM2")) + C.Reset + " other players!",
|
||||||
+ (getPlugin().getGroupTagPlayerCount("SSM") + getPlugin().getGroupTagPlayerCount("SSM2")) + C.Reset
|
|
||||||
+ " other players!",
|
|
||||||
};
|
};
|
||||||
|
|
||||||
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 4)
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 0).setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
.setTitle(C.Reset + C.Bold + C.cYellow + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc)
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 1).setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
.setHideInfo(true).build());
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 2).setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_LavaSlime").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Golem").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Enderman").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Cow").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Chicken").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Blaze").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Squid").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Spider").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Slime").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Sheep").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 3).setPlayerHead("MHF_Pig").setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
|
_superSmashCycle.add(new ItemBuilder(Material.SKULL_ITEM, 1, (byte) 4).setTitle(C.cYellowB + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch").addLore(desc).setHideInfo(true).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
_ssmIndex++;
|
_ssmIndex++;
|
||||||
_minigameIndex++;
|
_minigameIndex++;
|
||||||
|
_extraValue = !_extraValue;
|
||||||
|
|
||||||
if (_ssmIndex >= _superSmashCycle.size())
|
if (_ssmIndex >= _superSmashCycle.size())
|
||||||
_ssmIndex = 0;
|
_ssmIndex = 0;
|
||||||
@ -565,6 +583,11 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
getPlugin().getDominateShop().attemptShopOpen(player);
|
getPlugin().getDominateShop().attemptShopOpen(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void openCtf(Player player)
|
||||||
|
{
|
||||||
|
getPlugin().getCtfShop().attemptShopOpen(player);
|
||||||
|
}
|
||||||
|
|
||||||
public void openCS(Player player)
|
public void openCS(Player player)
|
||||||
{
|
{
|
||||||
getPlugin().getCastleSiegeShop().attemptShopOpen(player);
|
getPlugin().getCastleSiegeShop().attemptShopOpen(player);
|
||||||
@ -615,6 +638,11 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
getPlugin().getBetaShop().attemptShopOpen(player);
|
getPlugin().getBetaShop().attemptShopOpen(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void openFeatured(Player player, String name)
|
||||||
|
{
|
||||||
|
getPlugin().getShop(name).attemptShopOpen(player);
|
||||||
|
}
|
||||||
|
|
||||||
public void openUHC(Player player)
|
public void openUHC(Player player)
|
||||||
{
|
{
|
||||||
getPlugin().getUHCShop().attemptShopOpen(player);
|
getPlugin().getUHCShop().attemptShopOpen(player);
|
||||||
@ -629,4 +657,14 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
|
|||||||
{
|
{
|
||||||
getPlugin().getPlayerGamesShop().attemptShopOpen(player);
|
getPlugin().getPlayerGamesShop().attemptShopOpen(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void openClans(Player player)
|
||||||
|
{
|
||||||
|
getPlugin().getClansShop().attemptShopOpen(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void openTypeWars(Player player)
|
||||||
|
{
|
||||||
|
getPlugin().getTypeWarsShop().attemptShopOpen(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
package mineplex.hub.server.ui.button;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
|
||||||
|
import mineplex.core.shop.item.IButton;
|
||||||
|
import mineplex.hub.server.ui.ServerGameMenu;
|
||||||
|
|
||||||
|
public class SelectCLANSButton implements IButton
|
||||||
|
{
|
||||||
|
private ServerGameMenu _menu;
|
||||||
|
|
||||||
|
public SelectCLANSButton(ServerGameMenu menu)
|
||||||
|
{
|
||||||
|
_menu = menu;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(Player player, ClickType clickType)
|
||||||
|
{
|
||||||
|
_menu.openClans(player);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package mineplex.hub.server.ui.button;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
|
||||||
|
import mineplex.core.shop.item.IButton;
|
||||||
|
import mineplex.hub.server.ui.ServerGameMenu;
|
||||||
|
|
||||||
|
public class SelectCTFButton implements IButton
|
||||||
|
{
|
||||||
|
private ServerGameMenu _menu;
|
||||||
|
|
||||||
|
public SelectCTFButton(ServerGameMenu menu)
|
||||||
|
{
|
||||||
|
_menu = menu;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(Player player, ClickType clickType)
|
||||||
|
{
|
||||||
|
_menu.openCtf(player);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package mineplex.hub.server.ui.button;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
|
||||||
|
import mineplex.core.shop.item.IButton;
|
||||||
|
import mineplex.hub.server.ui.ServerGameMenu;
|
||||||
|
|
||||||
|
public class SelectFEATButton implements IButton
|
||||||
|
{
|
||||||
|
private ServerGameMenu _menu;
|
||||||
|
private String _name;
|
||||||
|
|
||||||
|
public SelectFEATButton(ServerGameMenu menu, String name)
|
||||||
|
{
|
||||||
|
_menu = menu;
|
||||||
|
_name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(Player player, ClickType clickType)
|
||||||
|
{
|
||||||
|
_menu.openFeatured(player, _name);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package mineplex.hub.server.ui.button;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
|
||||||
|
import mineplex.core.shop.item.IButton;
|
||||||
|
import mineplex.hub.server.ui.ServerGameMenu;
|
||||||
|
|
||||||
|
public class SelectTWButton implements IButton
|
||||||
|
{
|
||||||
|
private ServerGameMenu _menu;
|
||||||
|
|
||||||
|
public SelectTWButton(ServerGameMenu menu)
|
||||||
|
{
|
||||||
|
_menu = menu;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(Player player, ClickType clickType)
|
||||||
|
{
|
||||||
|
_menu.openTypeWars(player);
|
||||||
|
}
|
||||||
|
}
|
@ -3,8 +3,6 @@ package mineplex.minecraft.game.core.damage;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
@ -15,6 +13,8 @@ import org.bukkit.event.Event;
|
|||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
|
||||||
public class CustomDamageEvent extends Event implements Cancellable
|
public class CustomDamageEvent extends Event implements Cancellable
|
||||||
{
|
{
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
@ -43,6 +43,7 @@ public class CustomDamageEvent extends Event implements Cancellable
|
|||||||
private boolean _knockback = true;
|
private boolean _knockback = true;
|
||||||
private boolean _damageeBrute = false;
|
private boolean _damageeBrute = false;
|
||||||
private boolean _damageToLevel = true;
|
private boolean _damageToLevel = true;
|
||||||
|
private boolean _arrowShow = true;
|
||||||
|
|
||||||
public CustomDamageEvent(LivingEntity damagee, LivingEntity damager, Projectile projectile, Location knockbackOrigin,
|
public CustomDamageEvent(LivingEntity damagee, LivingEntity damager, Projectile projectile, Location knockbackOrigin,
|
||||||
DamageCause cause, double damage, boolean knockback, boolean ignoreRate, boolean ignoreArmor, String initialSource,
|
DamageCause cause, double damage, boolean knockback, boolean ignoreRate, boolean ignoreArmor, String initialSource,
|
||||||
@ -168,6 +169,16 @@ public class CustomDamageEvent extends Event implements Cancellable
|
|||||||
return _projectile;
|
return _projectile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setShowArrows(boolean show)
|
||||||
|
{
|
||||||
|
_arrowShow = show;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getShowArrows()
|
||||||
|
{
|
||||||
|
return _arrowShow;
|
||||||
|
}
|
||||||
|
|
||||||
public DamageCause GetCause()
|
public DamageCause GetCause()
|
||||||
{
|
{
|
||||||
return _eventCause;
|
return _eventCause;
|
||||||
|
@ -378,7 +378,7 @@ public class DamageManager extends MiniPlugin
|
|||||||
event.GetDamageeEntity().playEffect(EntityEffect.HURT);
|
event.GetDamageeEntity().playEffect(EntityEffect.HURT);
|
||||||
|
|
||||||
//Sticky Arrow
|
//Sticky Arrow
|
||||||
if (event.GetCause() == DamageCause.PROJECTILE && event.GetProjectile() != null && event.GetProjectile() instanceof Arrow)
|
if (event.GetCause() == DamageCause.PROJECTILE && event.GetProjectile() != null && event.GetProjectile() instanceof Arrow && event.getShowArrows())
|
||||||
((CraftLivingEntity)event.GetDamageeEntity()).getHandle().o(((CraftLivingEntity)event.GetDamageeEntity()).getHandle().bv() + 1);
|
((CraftLivingEntity)event.GetDamageeEntity()).getHandle().o(((CraftLivingEntity)event.GetDamageeEntity()).getHandle().bv() + 1);
|
||||||
|
|
||||||
//Knockback
|
//Knockback
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>Mineplex.Cache</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
1
Plugins/Mineplex.Queuer/.gitignore
vendored
1
Plugins/Mineplex.Queuer/.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
/bin
|
/bin
|
||||||
|
/bin
|
||||||
|
@ -406,9 +406,13 @@ public class ServerMonitor
|
|||||||
if (deadServer.getUptime() <= 10 || ignoreServer(deadServer.getGroup()))
|
if (deadServer.getUptime() <= 10 || ignoreServer(deadServer.getGroup()))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
if (_count == 0 || deadServers.contains(deadServer.getName()))
|
if (_count == 0 || deadServers.contains(deadServer.getName()))
|
||||||
{
|
{
|
||||||
|
if (_count != 0)
|
||||||
copyServerLog(deadServer);
|
copyServerLog(deadServer);
|
||||||
|
|
||||||
killServer(deadServer.getName(), deadServer.getPublicAddress(), deadServer.getPlayerCount(), "[KILLED] [DEAD] " + deadServer.getName() + ":" + deadServer.getPublicAddress(), true);
|
killServer(deadServer.getName(), deadServer.getPublicAddress(), deadServer.getPlayerCount(), "[KILLED] [DEAD] " + deadServer.getName() + ":" + deadServer.getPublicAddress(), true);
|
||||||
|
|
||||||
handleUserServerGroup(_serverGroupMap.get(deadServer.getGroup()));
|
handleUserServerGroup(_serverGroupMap.get(deadServer.getGroup()));
|
||||||
@ -432,6 +436,12 @@ public class ServerMonitor
|
|||||||
_delayedKill.add(deadServer.getName());
|
_delayedKill.add(deadServer.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
log("[ERROR] : Trying to delete " + deadServer.getName() + ":" + deadServer.getPublicAddress());
|
||||||
|
exception.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleUserServerGroup(ServerGroup serverGroup)
|
private static void handleUserServerGroup(ServerGroup serverGroup)
|
||||||
|
@ -105,6 +105,7 @@ public class CustomerSupport extends MiniPlugin
|
|||||||
int oldChestsReceived = 0;
|
int oldChestsReceived = 0;
|
||||||
int ancientChestsReceived = 0;
|
int ancientChestsReceived = 0;
|
||||||
int mythicalChestsReceived = 0;
|
int mythicalChestsReceived = 0;
|
||||||
|
int winterChestsReceived = 0;
|
||||||
|
|
||||||
for (CoinTransactionToken transaction : donor.getCoinTransactions())
|
for (CoinTransactionToken transaction : donor.getCoinTransactions())
|
||||||
{
|
{
|
||||||
@ -150,12 +151,24 @@ public class CustomerSupport extends MiniPlugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (transaction.SalesPackageName.startsWith("Winter Chest"))
|
||||||
|
{
|
||||||
|
if (transaction.Coins == 0 && transaction.Gems == 0)
|
||||||
|
{
|
||||||
|
if (transaction.SalesPackageName.split(" ").length == 3)
|
||||||
|
winterChestsReceived += Integer.parseInt(transaction.SalesPackageName.split(" ")[2]);
|
||||||
|
else if (transaction.SalesPackageName.split(" ").length == 2)
|
||||||
|
winterChestsReceived += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
caller.sendMessage(C.cBlue + "Enjin Coin Total Received : " + C.cYellow + enjinCoinsReceived);
|
caller.sendMessage(C.cBlue + "Enjin Coin Total Received : " + C.cYellow + enjinCoinsReceived);
|
||||||
caller.sendMessage(C.cBlue + "Old Chests Received : " + C.cYellow + oldChestsReceived);
|
caller.sendMessage(C.cBlue + "Old Chests Received : " + C.cYellow + oldChestsReceived);
|
||||||
caller.sendMessage(C.cBlue + "Ancient Chests Received : " + C.cYellow + ancientChestsReceived);
|
caller.sendMessage(C.cBlue + "Ancient Chests Received : " + C.cYellow + ancientChestsReceived);
|
||||||
caller.sendMessage(C.cBlue + "Mythical Chests Received : " + C.cYellow + mythicalChestsReceived);
|
caller.sendMessage(C.cBlue + "Mythical Chests Received : " + C.cYellow + mythicalChestsReceived);
|
||||||
|
caller.sendMessage(C.cBlue + "Winter Chests Received : " + C.cYellow + winterChestsReceived);
|
||||||
|
|
||||||
caller.sendMessage(C.cDGreen + C.Strike + "=============================================");
|
caller.sendMessage(C.cDGreen + C.Strike + "=============================================");
|
||||||
_salesPackageManager.displaySalesPackages(caller, playerName);
|
_salesPackageManager.displaySalesPackages(caller, playerName);
|
||||||
|
@ -24,7 +24,7 @@ public class PasswordRepository extends RepositoryBase
|
|||||||
|
|
||||||
public PasswordRepository(JavaPlugin plugin, String serverName)
|
public PasswordRepository(JavaPlugin plugin, String serverName)
|
||||||
{
|
{
|
||||||
super(plugin, DBPool.ACCOUNT);
|
super(plugin, DBPool.getAccount());
|
||||||
_serverName = serverName;
|
_serverName = serverName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ public class VotifierManager extends MiniPlugin
|
|||||||
|
|
||||||
private void awardBonus(final String playerName, final UUID uuid, final Callback<Integer> onComplete)
|
private void awardBonus(final String playerName, final UUID uuid, final Callback<Integer> onComplete)
|
||||||
{
|
{
|
||||||
DSLContext create = DSL.using(DBPool.ACCOUNT, SQLDialect.MYSQL);
|
DSLContext create = DSL.using(DBPool.getAccount(), SQLDialect.MYSQL);
|
||||||
|
|
||||||
Record1<Integer> idRecord = create.select(Tables.accounts.id).from(Tables.accounts).where(Tables.accounts.uuid.eq(uuid.toString())).fetchOne();
|
Record1<Integer> idRecord = create.select(Tables.accounts.id).from(Tables.accounts).where(Tables.accounts.uuid.eq(uuid.toString())).fetchOne();
|
||||||
if (idRecord != null)
|
if (idRecord != null)
|
||||||
|
@ -9,6 +9,7 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||||||
import mineplex.core.FoodDupeFix;
|
import mineplex.core.FoodDupeFix;
|
||||||
import mineplex.core.PacketsInteractionFix;
|
import mineplex.core.PacketsInteractionFix;
|
||||||
import mineplex.core.account.CoreClient;
|
import mineplex.core.account.CoreClient;
|
||||||
|
import mineplex.core.customdata.CustomDataManager;
|
||||||
import mineplex.core.giveaway.GiveawayManager;
|
import mineplex.core.giveaway.GiveawayManager;
|
||||||
import mineplex.core.globalpacket.GlobalPacketManager;
|
import mineplex.core.globalpacket.GlobalPacketManager;
|
||||||
import net.minecraft.server.v1_8_R3.BiomeBase;
|
import net.minecraft.server.v1_8_R3.BiomeBase;
|
||||||
@ -149,12 +150,13 @@ public class Arcade extends JavaPlugin
|
|||||||
cosmeticManager.disableTeamArmor();
|
cosmeticManager.disableTeamArmor();
|
||||||
|
|
||||||
GiveawayManager giveawayManager = new GiveawayManager(this, _clientManager, serverStatusManager);
|
GiveawayManager giveawayManager = new GiveawayManager(this, _clientManager, serverStatusManager);
|
||||||
|
CustomDataManager customDataManager = new CustomDataManager(this, _clientManager);
|
||||||
|
|
||||||
new GlobalPacketManager(this, _clientManager, serverStatusManager, inventoryManager, _donationManager, petManager, statsManager, giveawayManager);
|
new GlobalPacketManager(this, _clientManager, serverStatusManager, inventoryManager, _donationManager, petManager, statsManager, giveawayManager);
|
||||||
|
|
||||||
//Arcade Manager
|
//Arcade Manager
|
||||||
PollManager pollManager = new PollManager(this, _clientManager, _donationManager);
|
PollManager pollManager = new PollManager(this, _clientManager, _donationManager);
|
||||||
_gameManager = new ArcadeManager(this, serverStatusManager, ReadServerConfig(), _clientManager, _donationManager, _damageManager, statsManager, achievementManager, disguiseManager, creature, teleport, new Blood(this), chat, portal, preferenceManager, inventoryManager, packetHandler, cosmeticManager, projectileManager, petManager, hologramManager, webServerAddress, pollManager, npcmanager, giveawayManager);
|
_gameManager = new ArcadeManager(this, serverStatusManager, ReadServerConfig(), _clientManager, _donationManager, _damageManager, statsManager, achievementManager, disguiseManager, creature, teleport, new Blood(this), chat, portal, preferenceManager, inventoryManager, packetHandler, cosmeticManager, projectileManager, petManager, hologramManager, webServerAddress, pollManager, npcmanager, giveawayManager, customDataManager);
|
||||||
|
|
||||||
new MemoryFix(this);
|
new MemoryFix(this);
|
||||||
new CustomTagFix(this, packetHandler);
|
new CustomTagFix(this, packetHandler);
|
||||||
|
@ -3,6 +3,42 @@ package nautilus.game.arcade;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
|
||||||
|
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.event.block.BlockBurnEvent;
|
||||||
|
import org.bukkit.event.block.BlockFadeEvent;
|
||||||
|
import org.bukkit.event.block.BlockSpreadEvent;
|
||||||
|
import org.bukkit.event.block.LeavesDecayEvent;
|
||||||
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||||
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
|
import org.bukkit.event.inventory.InventoryType;
|
||||||
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
import org.bukkit.event.player.PlayerLoginEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.event.player.PlayerResourcePackStatusEvent;
|
||||||
|
import org.bukkit.event.player.PlayerResourcePackStatusEvent.Status;
|
||||||
|
import org.bukkit.event.server.ServerListPingEvent;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import com.google.common.base.Objects;
|
||||||
|
|
||||||
import mineplex.core.MiniPlugin;
|
import mineplex.core.MiniPlugin;
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.achievement.AchievementManager;
|
import mineplex.core.achievement.AchievementManager;
|
||||||
@ -11,16 +47,21 @@ import mineplex.core.blood.Blood;
|
|||||||
import mineplex.core.bonuses.BonusManager;
|
import mineplex.core.bonuses.BonusManager;
|
||||||
import mineplex.core.chat.Chat;
|
import mineplex.core.chat.Chat;
|
||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
|
import mineplex.core.common.jsonchat.ClickEvent;
|
||||||
|
import mineplex.core.common.jsonchat.JsonMessage;
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.Callback;
|
import mineplex.core.common.util.Callback;
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.NautHashMap;
|
||||||
import mineplex.core.common.util.UtilAction;
|
import mineplex.core.common.util.UtilAction;
|
||||||
import mineplex.core.common.util.UtilGear;
|
import mineplex.core.common.util.UtilGear;
|
||||||
import mineplex.core.common.util.UtilInv;
|
import mineplex.core.common.util.UtilInv;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.common.util.UtilServer;
|
import mineplex.core.common.util.UtilServer;
|
||||||
|
import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.cosmetic.CosmeticManager;
|
import mineplex.core.cosmetic.CosmeticManager;
|
||||||
import mineplex.core.creature.Creature;
|
import mineplex.core.creature.Creature;
|
||||||
|
import mineplex.core.customdata.CustomDataManager;
|
||||||
import mineplex.core.disguise.DisguiseManager;
|
import mineplex.core.disguise.DisguiseManager;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
import mineplex.core.elo.EloManager;
|
import mineplex.core.elo.EloManager;
|
||||||
@ -50,6 +91,7 @@ import mineplex.core.task.TaskManager;
|
|||||||
import mineplex.core.teleport.Teleport;
|
import mineplex.core.teleport.Teleport;
|
||||||
import mineplex.core.timing.TimingManager;
|
import mineplex.core.timing.TimingManager;
|
||||||
import mineplex.core.titangiveaway.TitanGiveawayManager;
|
import mineplex.core.titangiveaway.TitanGiveawayManager;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.minecraft.game.classcombat.Class.ClassManager;
|
import mineplex.minecraft.game.classcombat.Class.ClassManager;
|
||||||
import mineplex.minecraft.game.classcombat.Condition.SkillConditionManager;
|
import mineplex.minecraft.game.classcombat.Condition.SkillConditionManager;
|
||||||
import mineplex.minecraft.game.classcombat.Skill.SkillFactory;
|
import mineplex.minecraft.game.classcombat.Skill.SkillFactory;
|
||||||
@ -89,41 +131,15 @@ import nautilus.game.arcade.managers.GameManager;
|
|||||||
import nautilus.game.arcade.managers.GamePlayerManager;
|
import nautilus.game.arcade.managers.GamePlayerManager;
|
||||||
import nautilus.game.arcade.managers.GameSpectatorManager;
|
import nautilus.game.arcade.managers.GameSpectatorManager;
|
||||||
import nautilus.game.arcade.managers.GameStatManager;
|
import nautilus.game.arcade.managers.GameStatManager;
|
||||||
|
import nautilus.game.arcade.managers.GameTestingManager;
|
||||||
import nautilus.game.arcade.managers.GameTournamentManager;
|
import nautilus.game.arcade.managers.GameTournamentManager;
|
||||||
import nautilus.game.arcade.managers.GameWorldManager;
|
import nautilus.game.arcade.managers.GameWorldManager;
|
||||||
import nautilus.game.arcade.managers.HolidayManager;
|
import nautilus.game.arcade.managers.HolidayManager;
|
||||||
import nautilus.game.arcade.managers.IdleManager;
|
import nautilus.game.arcade.managers.IdleManager;
|
||||||
import nautilus.game.arcade.managers.MiscManager;
|
import nautilus.game.arcade.managers.MiscManager;
|
||||||
|
import nautilus.game.arcade.player.ArcadePlayer;
|
||||||
import nautilus.game.arcade.shop.ArcadeShop;
|
import nautilus.game.arcade.shop.ArcadeShop;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.GameMode;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
|
|
||||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
|
||||||
import org.bukkit.entity.Entity;
|
|
||||||
import org.bukkit.entity.EntityType;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.HandlerList;
|
|
||||||
import org.bukkit.event.block.BlockBurnEvent;
|
|
||||||
import org.bukkit.event.block.BlockFadeEvent;
|
|
||||||
import org.bukkit.event.block.BlockSpreadEvent;
|
|
||||||
import org.bukkit.event.block.LeavesDecayEvent;
|
|
||||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
|
||||||
import org.bukkit.event.inventory.InventoryType;
|
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
|
||||||
import org.bukkit.event.player.PlayerLoginEvent;
|
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
|
||||||
import org.bukkit.event.server.ServerListPingEvent;
|
|
||||||
import org.bukkit.potion.PotionEffect;
|
|
||||||
import org.bukkit.util.Vector;
|
|
||||||
|
|
||||||
public class ArcadeManager extends MiniPlugin implements IRelation
|
public class ArcadeManager extends MiniPlugin implements IRelation
|
||||||
{
|
{
|
||||||
// Modules
|
// Modules
|
||||||
@ -176,6 +192,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
private PreferencesManager _preferencesManager;
|
private PreferencesManager _preferencesManager;
|
||||||
private GiveawayManager _giveawayManager;
|
private GiveawayManager _giveawayManager;
|
||||||
private ResourcePackManager _resourcePackManager;
|
private ResourcePackManager _resourcePackManager;
|
||||||
|
private CustomDataManager _customDataManager;
|
||||||
|
|
||||||
private TaskManager _taskManager;
|
private TaskManager _taskManager;
|
||||||
private PacketHandler _packetHandler;
|
private PacketHandler _packetHandler;
|
||||||
@ -199,7 +216,8 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
CoreClientManager clientManager, DonationManager donationManager, DamageManager damageManager,
|
CoreClientManager clientManager, DonationManager donationManager, DamageManager damageManager,
|
||||||
StatsManager statsManager, AchievementManager achievementManager, DisguiseManager disguiseManager, Creature creature, Teleport teleport, Blood blood, Chat chat,
|
StatsManager statsManager, AchievementManager achievementManager, DisguiseManager disguiseManager, Creature creature, Teleport teleport, Blood blood, Chat chat,
|
||||||
Portal portal, PreferencesManager preferences, InventoryManager inventoryManager, PacketHandler packetHandler,
|
Portal portal, PreferencesManager preferences, InventoryManager inventoryManager, PacketHandler packetHandler,
|
||||||
CosmeticManager cosmeticManager, ProjectileManager projectileManager, PetManager petManager, HologramManager hologramManager, String webAddress, PollManager pollManager, NpcManager npcManager, GiveawayManager giveawayManager)
|
CosmeticManager cosmeticManager, ProjectileManager projectileManager, PetManager petManager, HologramManager hologramManager, String webAddress, PollManager pollManager,
|
||||||
|
NpcManager npcManager, GiveawayManager giveawayManager, CustomDataManager customDataManager)
|
||||||
{
|
{
|
||||||
super("Game Manager", plugin);
|
super("Game Manager", plugin);
|
||||||
|
|
||||||
@ -260,6 +278,8 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
_giveawayManager = giveawayManager;
|
_giveawayManager = giveawayManager;
|
||||||
_resourcePackManager = new ResourcePackManager(plugin, portal);
|
_resourcePackManager = new ResourcePackManager(plugin, portal);
|
||||||
|
|
||||||
|
_customDataManager = customDataManager;
|
||||||
|
|
||||||
// Shop
|
// Shop
|
||||||
_arcadeShop = new ArcadeShop(this, clientManager, donationManager);
|
_arcadeShop = new ArcadeShop(this, clientManager, donationManager);
|
||||||
|
|
||||||
@ -283,6 +303,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
_idleManager = new IdleManager(this);
|
_idleManager = new IdleManager(this);
|
||||||
TitanGiveawayManager titanGiveaway = new TitanGiveawayManager(getPlugin(), clientManager, serverStatusManager);
|
TitanGiveawayManager titanGiveaway = new TitanGiveawayManager(getPlugin(), clientManager, serverStatusManager);
|
||||||
new HolidayManager(this, titanGiveaway);
|
new HolidayManager(this, titanGiveaway);
|
||||||
|
new GameTestingManager(this);
|
||||||
|
|
||||||
// Game Addons
|
// Game Addons
|
||||||
new CompassAddon(plugin, this);
|
new CompassAddon(plugin, this);
|
||||||
@ -514,6 +535,8 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
return _serverStatusManager;
|
return _serverStatusManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CustomDataManager getCustomDataManager() { return _customDataManager; }
|
||||||
|
|
||||||
public ChatColor GetColor(Player player)
|
public ChatColor GetColor(Player player)
|
||||||
{
|
{
|
||||||
if (_game == null)
|
if (_game == null)
|
||||||
@ -1423,4 +1446,9 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArcadePlayer getArcadePlayer(Player player)
|
||||||
|
{
|
||||||
|
return new ArcadePlayer(player, getCustomDataManager(), this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,7 @@ import nautilus.game.arcade.game.games.survivalgames.SoloSurvivalGames;
|
|||||||
import nautilus.game.arcade.game.games.survivalgames.TeamSurvivalGames;
|
import nautilus.game.arcade.game.games.survivalgames.TeamSurvivalGames;
|
||||||
import nautilus.game.arcade.game.games.tug.Tug;
|
import nautilus.game.arcade.game.games.tug.Tug;
|
||||||
import nautilus.game.arcade.game.games.turfforts.TurfForts;
|
import nautilus.game.arcade.game.games.turfforts.TurfForts;
|
||||||
|
import nautilus.game.arcade.game.games.typewars.TypeWars;
|
||||||
import nautilus.game.arcade.game.games.uhc.UHC;
|
import nautilus.game.arcade.game.games.uhc.UHC;
|
||||||
import nautilus.game.arcade.game.games.wither.WitherGame;
|
import nautilus.game.arcade.game.games.wither.WitherGame;
|
||||||
import nautilus.game.arcade.game.games.wizards.Wizards;
|
import nautilus.game.arcade.game.games.wizards.Wizards;
|
||||||
@ -104,6 +105,7 @@ public enum GameType
|
|||||||
Runner(Runner.class, GameDisplay.Runner),
|
Runner(Runner.class, GameDisplay.Runner),
|
||||||
SearchAndDestroy(SearchAndDestroy.class, GameDisplay.SearchAndDestroy),
|
SearchAndDestroy(SearchAndDestroy.class, GameDisplay.SearchAndDestroy),
|
||||||
Sheep(SheepGame.class, GameDisplay.Sheep),
|
Sheep(SheepGame.class, GameDisplay.Sheep),
|
||||||
|
TypeWars(TypeWars.class, GameDisplay.TypeWars),
|
||||||
|
|
||||||
Smash(SoloSuperSmash.class, GameDisplay.Smash),
|
Smash(SoloSuperSmash.class, GameDisplay.Smash),
|
||||||
SmashDomination(SuperSmashDominate.class, GameDisplay.SmashDomination),
|
SmashDomination(SuperSmashDominate.class, GameDisplay.SmashDomination),
|
||||||
|
@ -5,14 +5,15 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
|
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
import nautilus.game.arcade.GameType;
|
import nautilus.game.arcade.GameType;
|
||||||
import nautilus.game.arcade.game.SoloGame;
|
import nautilus.game.arcade.game.SoloGame;
|
||||||
import nautilus.game.arcade.game.games.baconbrawl.kits.*;
|
import nautilus.game.arcade.game.games.baconbrawl.kits.KitMamaPig;
|
||||||
|
import nautilus.game.arcade.game.games.baconbrawl.kits.KitPig;
|
||||||
|
import nautilus.game.arcade.game.games.baconbrawl.kits.KitSheepPig;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
|
||||||
public class BaconBrawl extends SoloGame
|
public class BaconBrawl extends SoloGame
|
||||||
@ -34,9 +35,9 @@ public class BaconBrawl extends SoloGame
|
|||||||
"Last pig in the arena wins!"
|
"Last pig in the arena wins!"
|
||||||
});
|
});
|
||||||
|
|
||||||
this.DamageTeamSelf = true;
|
DamageTeamSelf = true;
|
||||||
this.HungerSet = 20;
|
HungerSet = 20;
|
||||||
this.PrepareFreeze = false;
|
PrepareFreeze = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -11,7 +11,6 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.UtilEnt;
|
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.disguise.disguises.DisguisePig;
|
import mineplex.core.disguise.disguises.DisguisePig;
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
@ -13,7 +13,6 @@ import nautilus.game.arcade.kit.Kit;
|
|||||||
import nautilus.game.arcade.kit.KitAvailability;
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
import nautilus.game.arcade.kit.Perk;
|
import nautilus.game.arcade.kit.Perk;
|
||||||
import nautilus.game.arcade.kit.perks.PerkBodySlam;
|
import nautilus.game.arcade.kit.perks.PerkBodySlam;
|
||||||
import nautilus.game.arcade.kit.perks.PerkJump;
|
|
||||||
|
|
||||||
public class KitPig extends Kit
|
public class KitPig extends Kit
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package nautilus.game.arcade.game.games.baconbrawl.kits;
|
package nautilus.game.arcade.game.games.baconbrawl.kits;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.DyeColor;
|
import org.bukkit.DyeColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
package nautilus.game.arcade.game.games.bridge;
|
||||||
|
|
||||||
|
public class BattleCryManager
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
@ -26,6 +26,7 @@ public class BridgePart
|
|||||||
Velocity = velocity;
|
Velocity = velocity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public boolean Update()
|
public boolean Update()
|
||||||
{
|
{
|
||||||
if (!Entity.isValid())
|
if (!Entity.isValid())
|
||||||
|
@ -2,17 +2,9 @@ package nautilus.game.arcade.game.games.cards;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.ItemFrame;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.NautHashMap;
|
import mineplex.core.common.util.NautHashMap;
|
||||||
import mineplex.core.common.util.UtilTime;
|
import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.common.util.UtilTextMiddle;
|
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
@ -23,6 +15,13 @@ import nautilus.game.arcade.game.games.GameScore;
|
|||||||
import nautilus.game.arcade.game.games.cards.kits.KitPlayer;
|
import nautilus.game.arcade.game.games.cards.kits.KitPlayer;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.ItemFrame;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
public class Cards extends SoloGame
|
public class Cards extends SoloGame
|
||||||
{
|
{
|
||||||
private CardFactory _cardFactory;
|
private CardFactory _cardFactory;
|
||||||
|
@ -22,6 +22,7 @@ import org.bukkit.entity.Zombie;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||||
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
|
||||||
|
@ -4,12 +4,55 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.Effect;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
||||||
|
import org.bukkit.entity.Arrow;
|
||||||
|
import org.bukkit.entity.EnderPearl;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Snowball;
|
||||||
|
import org.bukkit.entity.ThrownPotion;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
|
import org.bukkit.event.entity.EntityRegainHealthEvent;
|
||||||
|
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
|
||||||
|
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||||
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
|
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
import org.bukkit.scoreboard.NameTagVisibility;
|
||||||
|
import org.bukkit.scoreboard.Team;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.common.util.UtilAction;
|
import mineplex.core.common.util.UtilAction;
|
||||||
import mineplex.core.common.util.UtilBlock;
|
import mineplex.core.common.util.UtilBlock;
|
||||||
|
import mineplex.core.common.util.UtilEvent;
|
||||||
|
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||||
|
import mineplex.core.common.util.UtilGear;
|
||||||
|
import mineplex.core.common.util.UtilInv;
|
||||||
import mineplex.core.common.util.UtilMath;
|
import mineplex.core.common.util.UtilMath;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.common.util.UtilServer;
|
import mineplex.core.common.util.UtilServer;
|
||||||
|
import mineplex.core.hologram.Hologram.HologramTarget;
|
||||||
|
import mineplex.core.recharge.Recharge;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
|
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
|
||||||
@ -21,106 +64,51 @@ import nautilus.game.arcade.events.PlayerPrepareTeleportEvent;
|
|||||||
import nautilus.game.arcade.game.GameTeam;
|
import nautilus.game.arcade.game.GameTeam;
|
||||||
import nautilus.game.arcade.game.GameTeam.PlayerState;
|
import nautilus.game.arcade.game.GameTeam.PlayerState;
|
||||||
import nautilus.game.arcade.game.TeamGame;
|
import nautilus.game.arcade.game.TeamGame;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.events.PaintballEvent;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.events.ReviveEvent;
|
||||||
import nautilus.game.arcade.game.games.paintball.kits.KitMachineGun;
|
import nautilus.game.arcade.game.games.paintball.kits.KitMachineGun;
|
||||||
import nautilus.game.arcade.game.games.paintball.kits.KitRifle;
|
import nautilus.game.arcade.game.games.paintball.kits.KitRifle;
|
||||||
import nautilus.game.arcade.game.games.paintball.kits.KitShotgun;
|
import nautilus.game.arcade.game.games.paintball.kits.KitShotgun;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.kits.KitSniper;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.trackers.KillingSpreeTracker;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.trackers.LastStandStatTracker;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.trackers.MedicStatTracker;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
import nautilus.game.arcade.stats.KillFastStatTracker;
|
|
||||||
import nautilus.game.arcade.stats.LastStandStatTracker;
|
|
||||||
import nautilus.game.arcade.stats.MedicStatTracker;
|
|
||||||
import nautilus.game.arcade.stats.WinFastStatTracker;
|
import nautilus.game.arcade.stats.WinFastStatTracker;
|
||||||
import nautilus.game.arcade.stats.WinWithoutLosingTeammateStatTracker;
|
import nautilus.game.arcade.stats.WinWithoutLosingTeammateStatTracker;
|
||||||
|
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Color;
|
|
||||||
import org.bukkit.Effect;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
|
||||||
import org.bukkit.entity.EnderPearl;
|
|
||||||
import org.bukkit.entity.HumanEntity;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.entity.Snowball;
|
|
||||||
import org.bukkit.entity.ThrownPotion;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.HandlerList;
|
|
||||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
|
||||||
import org.bukkit.event.entity.EntityRegainHealthEvent;
|
|
||||||
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
|
|
||||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.event.player.PlayerEvent;
|
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
|
||||||
import org.bukkit.potion.PotionEffectType;
|
|
||||||
import org.bukkit.util.Vector;
|
|
||||||
|
|
||||||
public class Paintball extends TeamGame
|
public class Paintball extends TeamGame
|
||||||
{
|
{
|
||||||
public static class ReviveEvent extends PlayerEvent
|
private HashMap<Player, PlayerCopyPaintball> _doubles = new HashMap<Player, PlayerCopyPaintball>();
|
||||||
{
|
|
||||||
private static final HandlerList handlers = new HandlerList();
|
|
||||||
|
|
||||||
public static HandlerList getHandlerList()
|
|
||||||
{
|
|
||||||
return handlers;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public HandlerList getHandlers()
|
|
||||||
{
|
|
||||||
return getHandlerList();
|
|
||||||
}
|
|
||||||
|
|
||||||
private final Player _revivedPlayer;
|
|
||||||
|
|
||||||
public ReviveEvent(Player who, Player revivedPlayer)
|
|
||||||
{
|
|
||||||
super(who);
|
|
||||||
|
|
||||||
_revivedPlayer = revivedPlayer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Player getRevivedPlayer()
|
|
||||||
{
|
|
||||||
return _revivedPlayer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private HashMap<Player, PlayerCopy> _doubles = new HashMap<Player, PlayerCopy>();
|
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public Paintball(ArcadeManager manager)
|
public Paintball(ArcadeManager manager)
|
||||||
{
|
{
|
||||||
super(manager, GameType.Paintball,
|
super(manager, GameType.Paintball, new Kit[]
|
||||||
|
|
||||||
new Kit[]
|
|
||||||
{
|
{
|
||||||
new KitRifle(manager),
|
new KitRifle(manager),
|
||||||
new KitShotgun(manager),
|
new KitShotgun(manager),
|
||||||
new KitMachineGun(manager),
|
new KitMachineGun(manager),
|
||||||
},
|
new KitSniper(manager),
|
||||||
|
|
||||||
new String[]
|
}, new String[]
|
||||||
{
|
{
|
||||||
"Shoot enemies to paint them",
|
"Shoot enemies to paint them",
|
||||||
"Revive/heal with Water Bombs",
|
"Revive/heal with Water Bombs",
|
||||||
"Last team alive wins!"
|
"Last team alive wins!"
|
||||||
});
|
});
|
||||||
|
|
||||||
this.StrictAntiHack = true;
|
StrictAntiHack = true;
|
||||||
|
|
||||||
this.HungerSet = 20;
|
HungerSet = 20;
|
||||||
|
|
||||||
|
InventoryClick = false;
|
||||||
|
|
||||||
|
TeamArmorHotbar = true;
|
||||||
|
|
||||||
registerStatTrackers(
|
registerStatTrackers(
|
||||||
new KillFastStatTracker(this, 4, 5, "KillingSpree"),
|
new KillingSpreeTracker(this),
|
||||||
new WinWithoutLosingTeammateStatTracker(this, "FlawlessVictory"),
|
new WinWithoutLosingTeammateStatTracker(this, "FlawlessVictory"),
|
||||||
new MedicStatTracker(this),
|
new MedicStatTracker(this),
|
||||||
new WinFastStatTracker(this, 30, "Speedrunner"),
|
new WinFastStatTracker(this, 30, "Speedrunner"),
|
||||||
@ -141,6 +129,14 @@ public class Paintball extends TeamGame
|
|||||||
this.GetTeamList().get(1).SetName("Nether");
|
this.GetTeamList().get(1).SetName("Nether");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onNameTag(GameStateChangeEvent event)
|
||||||
|
{
|
||||||
|
if (event.GetState() == GameState.Prepare)
|
||||||
|
for (Team team : Scoreboard.GetScoreboard().getTeams())
|
||||||
|
team.setNameTagVisibility(NameTagVisibility.HIDE_FOR_OTHER_TEAMS);
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void ColorArmor(PlayerPrepareTeleportEvent event)
|
public void ColorArmor(PlayerPrepareTeleportEvent event)
|
||||||
{
|
{
|
||||||
@ -161,46 +157,62 @@ public class Paintball extends TeamGame
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void Paint(ProjectileHitEvent event)
|
public void Paint(final ProjectileHitEvent event)
|
||||||
{
|
{
|
||||||
// Fixed projectile wool painting in waiting lobby.
|
|
||||||
|
|
||||||
if (IsLive() || GetState() == GameState.End)
|
if (IsLive() || GetState() == GameState.End)
|
||||||
{
|
{
|
||||||
if (event.getEntity() instanceof ThrownPotion)
|
if (event.getEntity() instanceof ThrownPotion)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
byte color = 3;
|
final byte color = (byte) (event.getEntity() instanceof EnderPearl || (event.getEntity() instanceof Arrow && event.getEntity().hasMetadata("color") && ChatColor.values()[event.getEntity().getMetadata("color").get(0).asInt()] == ChatColor.RED) ? 14 : 3);
|
||||||
if (event.getEntity() instanceof EnderPearl)
|
|
||||||
color = 14;
|
|
||||||
|
|
||||||
Location loc = event.getEntity().getLocation().add(event.getEntity().getVelocity());
|
event.getEntity().setVelocity(event.getEntity().getVelocity().normalize().multiply(1.2));
|
||||||
|
|
||||||
|
PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(new int[]{event.getEntity().getEntityId()});
|
||||||
|
for (Player player : UtilServer.getPlayers())
|
||||||
|
UtilPlayer.sendPacket(player, destroy);
|
||||||
|
|
||||||
|
Manager.runSyncLater(new Runnable() // Stupid thing I have to do to make sure the arrow's location is accounted for. Stupid mojang. - Myst
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
Location loc = event.getEntity().getLocation();
|
||||||
|
// loc.add(event.getEntity().getVelocity().clone().normalize().multiply(.5));
|
||||||
|
|
||||||
for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet())
|
for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet())
|
||||||
{
|
{
|
||||||
if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY)
|
if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY && block.getType() != Material.HARD_CLAY)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (block.getType() == Material.HARD_CLAY)
|
||||||
|
block.setType(Material.STAINED_CLAY);
|
||||||
|
|
||||||
block.setData(color);
|
block.setData(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8);
|
if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8);
|
||||||
else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10);
|
else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10);
|
||||||
|
|
||||||
|
event.getEntity().remove();
|
||||||
|
}
|
||||||
|
}, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void PlayerQuit(PlayerQuitEvent event)
|
public void onQuit(PlayerQuitEvent event)
|
||||||
{
|
{
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
if (_doubles.containsKey(player))
|
if (_doubles.containsKey(player))
|
||||||
{
|
{
|
||||||
PlayerCopy copy = _doubles.get(player);
|
PlayerCopyPaintball copy = _doubles.remove(player);
|
||||||
copy.GetEntity().remove();
|
copy.GetEntity().remove();
|
||||||
_doubles.remove(player);
|
copy.GetHolo().stop();
|
||||||
|
copy.GetSaveMe().stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,7 +228,7 @@ public class Paintball extends TeamGame
|
|||||||
event.SetCancelled("No Projectile");
|
event.SetCancelled("No Projectile");
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void PaintballDamage(CustomDamageEvent event)
|
public void PaintballDamage(CustomDamageEvent event)
|
||||||
{
|
{
|
||||||
if (!IsLive())
|
if (!IsLive())
|
||||||
@ -225,7 +237,7 @@ public class Paintball extends TeamGame
|
|||||||
if (event.GetProjectile() == null)
|
if (event.GetProjectile() == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!(event.GetProjectile() instanceof Snowball) && !(event.GetProjectile() instanceof EnderPearl))
|
if (!(event.GetProjectile() instanceof Snowball) && !(event.GetProjectile() instanceof EnderPearl) && !(event.GetProjectile() instanceof Arrow))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//Negate
|
//Negate
|
||||||
@ -235,6 +247,8 @@ public class Paintball extends TeamGame
|
|||||||
event.AddMod("Paintball", "Paintball", 2, true);
|
event.AddMod("Paintball", "Paintball", 2, true);
|
||||||
event.AddKnockback("Paintball", 2);
|
event.AddKnockback("Paintball", 2);
|
||||||
|
|
||||||
|
event.setShowArrows(false);
|
||||||
|
|
||||||
Player damagee = event.GetDamageePlayer();
|
Player damagee = event.GetDamageePlayer();
|
||||||
if (damagee == null)
|
if (damagee == null)
|
||||||
return;
|
return;
|
||||||
@ -262,6 +276,13 @@ public class Paintball extends TeamGame
|
|||||||
{
|
{
|
||||||
count = 3;
|
count = 3;
|
||||||
}
|
}
|
||||||
|
if (GetKit(damager) instanceof KitSniper && event.GetProjectile() instanceof Arrow)
|
||||||
|
{
|
||||||
|
count = ((KitSniper) GetKit(damager)).getPaintDamage((Arrow) event.GetProjectile());
|
||||||
|
|
||||||
|
if (count == -1)
|
||||||
|
count = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Out
|
//Out
|
||||||
@ -271,12 +292,14 @@ public class Paintball extends TeamGame
|
|||||||
UtilPlayer.message(player, damageeTeam.GetColor() + damagee.getName() + ChatColor.RESET + " was painted by " +
|
UtilPlayer.message(player, damageeTeam.GetColor() + damagee.getName() + ChatColor.RESET + " was painted by " +
|
||||||
damagerTeam.GetColor() + damager.getName() + ChatColor.RESET + "!");
|
damagerTeam.GetColor() + damager.getName() + ChatColor.RESET + "!");
|
||||||
|
|
||||||
PlayerOut(damagee);
|
PlayerOut(damagee, damager);
|
||||||
|
|
||||||
AddGems(damager, 2, "Kills", true, true);
|
AddGems(damager, 2, "Kills", true, true);
|
||||||
|
|
||||||
AddStat(damager, "Kills", 1, false, false);
|
AddStat(damager, "Kills", 1, false, false);
|
||||||
AddStat(damagee, "Deaths", 1, false, false);
|
AddStat(damagee, "Deaths", 1, false, false);
|
||||||
|
|
||||||
|
Bukkit.getPluginManager().callEvent(new PaintballEvent(damagee, damager));
|
||||||
}
|
}
|
||||||
|
|
||||||
//Hit Sound
|
//Hit Sound
|
||||||
@ -288,15 +311,9 @@ public class Paintball extends TeamGame
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void ArmorRemoveCancel(InventoryClickEvent event)
|
public void ArmorRemoveCancel(InventoryClickEvent event)
|
||||||
{
|
{
|
||||||
HumanEntity player = event.getWhoClicked();
|
if (!IsAlive(event.getWhoClicked()))
|
||||||
|
|
||||||
// Fixed armor being taken off while spectating after being painted.
|
|
||||||
|
|
||||||
if (!IsAlive(player))
|
|
||||||
{
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public boolean Color(Player player, int amount)
|
public boolean Color(Player player, int amount)
|
||||||
{
|
{
|
||||||
@ -331,7 +348,7 @@ public class Paintball extends TeamGame
|
|||||||
return nonColored.isEmpty();
|
return nonColored.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayerOut(Player player)
|
public void PlayerOut(Player player, Player killer)
|
||||||
{
|
{
|
||||||
//State
|
//State
|
||||||
SetPlayerState(player, PlayerState.OUT);
|
SetPlayerState(player, PlayerState.OUT);
|
||||||
@ -341,6 +358,8 @@ public class Paintball extends TeamGame
|
|||||||
Manager.GetCondition().Factory().Blind("Hit", player, player, 1.5, 0, false, false, false);
|
Manager.GetCondition().Factory().Blind("Hit", player, player, 1.5, 0, false, false, false);
|
||||||
Manager.GetCondition().Factory().Cloak("Hit", player, player, 9999, false, false);
|
Manager.GetCondition().Factory().Cloak("Hit", player, player, 9999, false, false);
|
||||||
|
|
||||||
|
_doubles.put(player, new PlayerCopyPaintball(this, player, killer, GetTeam(player).GetColor()));
|
||||||
|
|
||||||
//Settings
|
//Settings
|
||||||
player.setAllowFlight(true);
|
player.setAllowFlight(true);
|
||||||
player.setFlying(true);
|
player.setFlying(true);
|
||||||
@ -348,8 +367,6 @@ public class Paintball extends TeamGame
|
|||||||
((CraftPlayer)player).getHandle().k = false;
|
((CraftPlayer)player).getHandle().k = false;
|
||||||
|
|
||||||
UtilAction.velocity(player, new Vector(0,1.2,0));
|
UtilAction.velocity(player, new Vector(0,1.2,0));
|
||||||
|
|
||||||
_doubles.put(player, new PlayerCopy(this, player, GetTeam(player).GetColor()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// @EventHandler
|
// @EventHandler
|
||||||
@ -402,10 +419,10 @@ public class Paintball extends TeamGame
|
|||||||
if (throwerTeam == null) return;
|
if (throwerTeam == null) return;
|
||||||
|
|
||||||
//Revive
|
//Revive
|
||||||
Iterator<PlayerCopy> copyIterator = _doubles.values().iterator();
|
Iterator<PlayerCopyPaintball> copyIterator = _doubles.values().iterator();
|
||||||
while (copyIterator.hasNext())
|
while (copyIterator.hasNext())
|
||||||
{
|
{
|
||||||
PlayerCopy copy = copyIterator.next();
|
PlayerCopyPaintball copy = copyIterator.next();
|
||||||
|
|
||||||
GameTeam otherTeam = GetTeam(copy.GetPlayer());
|
GameTeam otherTeam = GetTeam(copy.GetPlayer());
|
||||||
if (otherTeam == null || !otherTeam.equals(throwerTeam))
|
if (otherTeam == null || !otherTeam.equals(throwerTeam))
|
||||||
@ -414,7 +431,8 @@ public class Paintball extends TeamGame
|
|||||||
if (UtilMath.offset(copy.GetEntity().getLocation().add(0,1,0), event.getEntity().getLocation()) > 3)
|
if (UtilMath.offset(copy.GetEntity().getLocation().add(0,1,0), event.getEntity().getLocation()) > 3)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
PlayerIn(copy.GetPlayer(), copy.GetEntity());
|
PlayerIn(copy.GetPlayer(), copy);
|
||||||
|
|
||||||
copyIterator.remove();
|
copyIterator.remove();
|
||||||
|
|
||||||
AddGems(thrower, 3, "Revived Ally", true, true);
|
AddGems(thrower, 3, "Revived Ally", true, true);
|
||||||
@ -436,7 +454,7 @@ public class Paintball extends TeamGame
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayerIn(final Player player, final LivingEntity copy)
|
public void PlayerIn(final Player player, final PlayerCopyPaintball copy)
|
||||||
{
|
{
|
||||||
//State
|
//State
|
||||||
SetPlayerState(player, PlayerState.IN);
|
SetPlayerState(player, PlayerState.IN);
|
||||||
@ -446,9 +464,9 @@ public class Paintball extends TeamGame
|
|||||||
if (copy != null)
|
if (copy != null)
|
||||||
{
|
{
|
||||||
Location loc = player.getLocation();
|
Location loc = player.getLocation();
|
||||||
loc.setX(copy.getLocation().getX());
|
loc.setX(copy.GetEntity().getLocation().getX());
|
||||||
loc.setY(copy.getLocation().getY());
|
loc.setY(copy.GetEntity().getLocation().getY());
|
||||||
loc.setZ(copy.getLocation().getZ());
|
loc.setZ(copy.GetEntity().getLocation().getZ());
|
||||||
player.teleport(loc);
|
player.teleport(loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -480,7 +498,9 @@ public class Paintball extends TeamGame
|
|||||||
Manager.GetCondition().EndCondition(player, ConditionType.CLOAK, null);
|
Manager.GetCondition().EndCondition(player, ConditionType.CLOAK, null);
|
||||||
|
|
||||||
//Remove Copy
|
//Remove Copy
|
||||||
copy.remove();
|
copy.GetEntity().remove();
|
||||||
|
copy.GetHolo().stop();
|
||||||
|
copy.GetSaveMe().stop();
|
||||||
}
|
}
|
||||||
}, 4);
|
}, 4);
|
||||||
}
|
}
|
||||||
@ -512,4 +532,128 @@ public class Paintball extends TeamGame
|
|||||||
for (Player player : GetPlayers(true))
|
for (Player player : GetPlayers(true))
|
||||||
player.removePotionEffect(PotionEffectType.WATER_BREATHING);
|
player.removePotionEffect(PotionEffectType.WATER_BREATHING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onHeal(PlayerInteractEvent event)
|
||||||
|
{
|
||||||
|
if (!UtilEvent.isAction(event, ActionType.R))
|
||||||
|
return;
|
||||||
|
|
||||||
|
LaunchPotion(event.getPlayer(), event);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onHeal(PlayerInteractEntityEvent event)
|
||||||
|
{
|
||||||
|
LaunchPotion(event.getPlayer(), event);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = false)
|
||||||
|
public void onHeal(PlayerInteractAtEntityEvent event)
|
||||||
|
{
|
||||||
|
LaunchPotion(event.getPlayer(), event);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LaunchPotion(Player player, Cancellable event)
|
||||||
|
{
|
||||||
|
if (!IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!UtilGear.isMat(player.getItemInHand(), Material.POTION))
|
||||||
|
return;
|
||||||
|
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
if (!IsAlive(player) || UtilPlayer.isSpectator(player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!Recharge.Instance.use(player, "Water Potion", 250, false, false))
|
||||||
|
return;
|
||||||
|
|
||||||
|
UtilInv.UseItemInHand(player);
|
||||||
|
|
||||||
|
ThrownPotion potion = player.launchProjectile(ThrownPotion.class);
|
||||||
|
potion.getEffects().clear();
|
||||||
|
potion.getEffects().add(new PotionEffect(PotionEffectType.WATER_BREATHING, 100, 100));
|
||||||
|
|
||||||
|
Manager.runAsync(new Runnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
UtilInv.Update(player);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onInteract(PlayerInteractAtEntityEvent event)
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void updateCloneHolograms(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.FAST)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (PlayerCopyPaintball clone : _doubles.values())
|
||||||
|
{
|
||||||
|
if (clone.GetHolo().getHologramTarget() == HologramTarget.WHITELIST)
|
||||||
|
{
|
||||||
|
//Other team blacklist
|
||||||
|
clone.GetHolo().setHologramTarget(HologramTarget.BLACKLIST);
|
||||||
|
|
||||||
|
for (Player cur : GetPlayers(false))
|
||||||
|
{
|
||||||
|
if (!IsAlive(cur))
|
||||||
|
{
|
||||||
|
if (clone.GetHolo().containsPlayer(cur))
|
||||||
|
clone.GetHolo().removePlayer(cur);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (GetTeam(cur) != GetTeam(clone.GetPlayer()))
|
||||||
|
{
|
||||||
|
if (!clone.GetHolo().containsPlayer(cur))
|
||||||
|
clone.GetHolo().addPlayer(cur);
|
||||||
|
}
|
||||||
|
else if (clone.GetHolo().containsPlayer(cur))
|
||||||
|
{
|
||||||
|
clone.GetHolo().removePlayer(cur);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
clone.GetHolo().start();
|
||||||
|
}
|
||||||
|
|
||||||
|
clone.setSaveMeFlop(!clone.getSaveMeFlop());
|
||||||
|
clone.GetSaveMe().setText((clone.getSaveMeFlop() ? C.cRedB : C.cWhiteB) + "SAVE ME!");
|
||||||
|
|
||||||
|
for (Player player : GetTeam(clone.GetPlayer()).GetPlayers(false))
|
||||||
|
{
|
||||||
|
if (!IsAlive(player)) // Remove if it's not alive
|
||||||
|
{
|
||||||
|
if (clone.GetSaveMe().containsPlayer(player))
|
||||||
|
clone.GetSaveMe().removePlayer(player);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
boolean hasPotion = UtilInv.contains(player, Material.POTION, (byte) -1, 1);
|
||||||
|
if (clone.GetSaveMe().containsPlayer(player))
|
||||||
|
{
|
||||||
|
if (!hasPotion) // No potions left
|
||||||
|
{
|
||||||
|
clone.GetSaveMe().removePlayer(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (hasPotion)
|
||||||
|
{
|
||||||
|
clone.GetSaveMe().addPlayer(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,119 @@
|
|||||||
|
package nautilus.game.arcade.game.games.paintball;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.ArmorStand;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
|
import org.bukkit.util.EulerAngle;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.UtilEnt;
|
||||||
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.hologram.Hologram;
|
||||||
|
import mineplex.core.hologram.Hologram.HologramTarget;
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import nautilus.game.arcade.game.Game;
|
||||||
|
|
||||||
|
public class PlayerCopyPaintball
|
||||||
|
{
|
||||||
|
private Game Host;
|
||||||
|
|
||||||
|
private Player _owner;
|
||||||
|
|
||||||
|
private ArmorStand _ent;
|
||||||
|
private Hologram _holo;
|
||||||
|
private Hologram _saveMe;
|
||||||
|
|
||||||
|
private boolean _saveMeFlop = false;
|
||||||
|
|
||||||
|
public PlayerCopyPaintball(Game host, Player owner, Player paintedBy, ChatColor nameColor)
|
||||||
|
{
|
||||||
|
Host = host;
|
||||||
|
|
||||||
|
_owner = owner;
|
||||||
|
|
||||||
|
Location entLoc = owner.getLocation();
|
||||||
|
entLoc.setPitch(0F);
|
||||||
|
|
||||||
|
Host.CreatureAllowOverride = true;
|
||||||
|
_ent = owner.getWorld().spawn(owner.getLocation(), ArmorStand.class);
|
||||||
|
Host.CreatureAllowOverride = false;
|
||||||
|
|
||||||
|
UtilEnt.ghost(_ent, true, false);
|
||||||
|
|
||||||
|
UtilEnt.Vegetate(_ent);
|
||||||
|
|
||||||
|
_ent.setArms(true);
|
||||||
|
_ent.setBasePlate(false);
|
||||||
|
_ent.setVisible(false);
|
||||||
|
|
||||||
|
//Rand pose
|
||||||
|
int rA = UtilMath.r(20) - 3;
|
||||||
|
int lA = UtilMath.r(20) - 3;
|
||||||
|
int rL = UtilMath.r(20) - 3;
|
||||||
|
int lL = UtilMath.r(20) - 3;
|
||||||
|
_ent.setRightArmPose(new EulerAngle(Math.toRadians(rA < 0 ? 360 - rA : rA), 0, Math.toRadians(Math.abs(rA))));
|
||||||
|
_ent.setRightLegPose(new EulerAngle(Math.toRadians(rL < 0 ? 360 - rL : rL), 0, Math.toRadians(Math.abs(rL))));
|
||||||
|
_ent.setLeftArmPose(new EulerAngle(Math.toRadians(lA < 0 ? 360 - lA : lA), 0, Math.toRadians(360 - Math.abs(lA))));
|
||||||
|
_ent.setLeftLegPose(new EulerAngle(Math.toRadians(lL < 0 ? 360 - lL : rA), 0, Math.toRadians(360 - Math.abs(lL))));
|
||||||
|
|
||||||
|
//Armor
|
||||||
|
_ent.getEquipment().setArmorContents(owner.getInventory().getArmorContents());
|
||||||
|
_ent.setItemInHand(owner.getItemInHand());
|
||||||
|
|
||||||
|
//Player skull
|
||||||
|
ItemStack skull = ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM, (byte) 3, 1);
|
||||||
|
SkullMeta meta = (SkullMeta) skull.getItemMeta();
|
||||||
|
meta.setOwner(owner.getName());
|
||||||
|
skull.setItemMeta(meta);
|
||||||
|
_ent.setHelmet(skull);
|
||||||
|
|
||||||
|
//Name
|
||||||
|
_holo = new Hologram(host.Manager.getHologramManager(), _ent.getLocation().clone().add(0, 2.2, 0));
|
||||||
|
_holo.setText(C.cWhite + C.Bold + C.Scramble + "XX" + ChatColor.RESET + " " + nameColor + owner.getName() + " " + C.cWhite + C.Bold + C.Scramble + "XX", C.cWhite + "Painted by " + host.GetTeam(paintedBy).GetColor() + paintedBy.getName());
|
||||||
|
_holo.setHologramTarget(HologramTarget.WHITELIST);
|
||||||
|
_holo.setFollowEntity(_ent);
|
||||||
|
_holo.start();
|
||||||
|
|
||||||
|
//Save me
|
||||||
|
_saveMe = new Hologram(host.Manager.getHologramManager(), _ent.getLocation().clone().add(0, 2.8, 0));
|
||||||
|
_saveMe.setText(C.cRedB + "SAVE ME!");
|
||||||
|
_saveMe.setHologramTarget(HologramTarget.WHITELIST);
|
||||||
|
_saveMe.setFollowEntity(_ent);
|
||||||
|
_saveMe.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
public LivingEntity GetEntity()
|
||||||
|
{
|
||||||
|
return _ent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player GetPlayer()
|
||||||
|
{
|
||||||
|
return _owner;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Hologram GetHolo()
|
||||||
|
{
|
||||||
|
return _holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Hologram GetSaveMe()
|
||||||
|
{
|
||||||
|
return _saveMe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getSaveMeFlop()
|
||||||
|
{
|
||||||
|
return _saveMeFlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSaveMeFlop(boolean flop)
|
||||||
|
{
|
||||||
|
_saveMeFlop = flop;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package nautilus.game.arcade.game.games.paintball.events;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
|
||||||
|
public class PaintballEvent extends PlayerEvent
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Created by: Mysticate
|
||||||
|
* Timestamp: November 19, 2015
|
||||||
|
*/
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return getHandlerList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Player _revivedPlayer;
|
||||||
|
|
||||||
|
public PaintballEvent(Player who, Player revivedPlayer)
|
||||||
|
{
|
||||||
|
super(who);
|
||||||
|
|
||||||
|
_revivedPlayer = revivedPlayer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getKiller()
|
||||||
|
{
|
||||||
|
return _revivedPlayer;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package nautilus.game.arcade.game.games.paintball.events;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
|
||||||
|
public class ReviveEvent extends PlayerEvent
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Created by: Mysticate
|
||||||
|
* Timestamp: November 19, 2015
|
||||||
|
*/
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return getHandlerList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Player _revivedPlayer;
|
||||||
|
|
||||||
|
public ReviveEvent(Player who, Player revivedPlayer)
|
||||||
|
{
|
||||||
|
super(who);
|
||||||
|
|
||||||
|
_revivedPlayer = revivedPlayer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getRevivedPlayer()
|
||||||
|
{
|
||||||
|
return _revivedPlayer;
|
||||||
|
}
|
||||||
|
}
|
@ -1,21 +1,23 @@
|
|||||||
package nautilus.game.arcade.game.games.paintball.kits;
|
package nautilus.game.arcade.game.games.paintball.kits;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.UtilInv;
|
||||||
|
import mineplex.core.itemstack.ItemBuilder;
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballMachineGun;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
|
||||||
import org.bukkit.inventory.meta.PotionMeta;
|
import org.bukkit.inventory.meta.PotionMeta;
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
|
||||||
import nautilus.game.arcade.kit.Kit;
|
|
||||||
import nautilus.game.arcade.kit.KitAvailability;
|
|
||||||
import nautilus.game.arcade.kit.Perk;
|
|
||||||
import nautilus.game.arcade.kit.perks.*;
|
|
||||||
|
|
||||||
public class KitMachineGun extends Kit
|
public class KitMachineGun extends Kit
|
||||||
{
|
{
|
||||||
public KitMachineGun(ArcadeManager manager)
|
public KitMachineGun(ArcadeManager manager)
|
||||||
@ -39,36 +41,17 @@ public class KitMachineGun extends Kit
|
|||||||
@Override
|
@Override
|
||||||
public void GiveItems(Player player)
|
public void GiveItems(Player player)
|
||||||
{
|
{
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_BARDING, (byte)0, 1, "Paintball Machine Gun"));
|
UtilInv.insert(player, ItemStackFactory.Instance.CreateStack(Material.DIAMOND_BARDING, (byte)0, 1, F.item("Paintball Machine Gun")));
|
||||||
|
|
||||||
ItemStack potion = new ItemStack(Material.POTION, 3, (short)16429); // 16422
|
ItemStack potion = new ItemStack(Material.POTION, 3, (short)16429); // 16422
|
||||||
PotionMeta potionMeta = (PotionMeta)potion.getItemMeta();
|
PotionMeta potionMeta = (PotionMeta)potion.getItemMeta();
|
||||||
potionMeta.setDisplayName("Water Bomb");
|
potionMeta.setDisplayName(F.item("Water Bomb"));
|
||||||
potion.setItemMeta(potionMeta);
|
potion.setItemMeta(potionMeta);
|
||||||
player.getInventory().addItem(potion);
|
UtilInv.insert(player, potion);
|
||||||
|
|
||||||
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
|
player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta();
|
player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
metaHelm.setColor(Color.WHITE);
|
player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
helm.setItemMeta(metaHelm);
|
player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
player.getInventory().setHelmet(helm);
|
|
||||||
|
|
||||||
ItemStack armor = new ItemStack(Material.LEATHER_CHESTPLATE);
|
|
||||||
LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta();
|
|
||||||
meta.setColor(Color.WHITE);
|
|
||||||
armor.setItemMeta(meta);
|
|
||||||
player.getInventory().setChestplate(armor);
|
|
||||||
|
|
||||||
ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS);
|
|
||||||
LeatherArmorMeta metaLegs = (LeatherArmorMeta)armor.getItemMeta();
|
|
||||||
metaLegs.setColor(Color.WHITE);
|
|
||||||
legs.setItemMeta(metaLegs);
|
|
||||||
player.getInventory().setLeggings(legs);
|
|
||||||
|
|
||||||
ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
|
|
||||||
LeatherArmorMeta metaBoots = (LeatherArmorMeta)armor.getItemMeta();
|
|
||||||
metaBoots.setColor(Color.WHITE);
|
|
||||||
boots.setItemMeta(metaBoots);
|
|
||||||
player.getInventory().setBoots(boots);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,23 @@
|
|||||||
package nautilus.game.arcade.game.games.paintball.kits;
|
package nautilus.game.arcade.game.games.paintball.kits;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.UtilInv;
|
||||||
|
import mineplex.core.itemstack.ItemBuilder;
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballRifle;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import nautilus.game.arcade.kit.perks.PerkSpeed;
|
||||||
|
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
|
||||||
import org.bukkit.inventory.meta.PotionMeta;
|
import org.bukkit.inventory.meta.PotionMeta;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
|
||||||
import nautilus.game.arcade.kit.Kit;
|
|
||||||
import nautilus.game.arcade.kit.KitAvailability;
|
|
||||||
import nautilus.game.arcade.kit.Perk;
|
|
||||||
import nautilus.game.arcade.kit.perks.*;
|
|
||||||
|
|
||||||
public class KitRifle extends Kit
|
public class KitRifle extends Kit
|
||||||
{
|
{
|
||||||
@ -41,37 +43,17 @@ public class KitRifle extends Kit
|
|||||||
@Override
|
@Override
|
||||||
public void GiveItems(Player player)
|
public void GiveItems(Player player)
|
||||||
{
|
{
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_BARDING, (byte)0, 1, "Paintball Rifle"));
|
UtilInv.insert(player, ItemStackFactory.Instance.CreateStack(Material.IRON_BARDING, (byte)0, 1, F.item("Paintball Rifle")));
|
||||||
|
|
||||||
//Potion
|
|
||||||
ItemStack potion = new ItemStack(Material.POTION, 3, (short)16429); // 16422
|
ItemStack potion = new ItemStack(Material.POTION, 3, (short)16429); // 16422
|
||||||
PotionMeta potionMeta = (PotionMeta)potion.getItemMeta();
|
PotionMeta potionMeta = (PotionMeta)potion.getItemMeta();
|
||||||
potionMeta.setDisplayName("Water Bomb");
|
potionMeta.setDisplayName(F.item("Water Bomb"));
|
||||||
potion.setItemMeta(potionMeta);
|
potion.setItemMeta(potionMeta);
|
||||||
player.getInventory().addItem(potion);
|
UtilInv.insert(player, potion);
|
||||||
|
|
||||||
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
|
player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta();
|
player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
metaHelm.setColor(Color.WHITE);
|
player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
helm.setItemMeta(metaHelm);
|
player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
player.getInventory().setHelmet(helm);
|
|
||||||
|
|
||||||
ItemStack armor = new ItemStack(Material.LEATHER_CHESTPLATE);
|
|
||||||
LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta();
|
|
||||||
meta.setColor(Color.WHITE);
|
|
||||||
armor.setItemMeta(meta);
|
|
||||||
player.getInventory().setChestplate(armor);
|
|
||||||
|
|
||||||
ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS);
|
|
||||||
LeatherArmorMeta metaLegs = (LeatherArmorMeta)armor.getItemMeta();
|
|
||||||
metaLegs.setColor(Color.WHITE);
|
|
||||||
legs.setItemMeta(metaLegs);
|
|
||||||
player.getInventory().setLeggings(legs);
|
|
||||||
|
|
||||||
ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
|
|
||||||
LeatherArmorMeta metaBoots = (LeatherArmorMeta)armor.getItemMeta();
|
|
||||||
metaBoots.setColor(Color.WHITE);
|
|
||||||
boots.setItemMeta(metaBoots);
|
|
||||||
player.getInventory().setBoots(boots);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,24 @@
|
|||||||
package nautilus.game.arcade.game.games.paintball.kits;
|
package nautilus.game.arcade.game.games.paintball.kits;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.UtilInv;
|
||||||
|
import mineplex.core.itemstack.ItemBuilder;
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballShotgun;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import nautilus.game.arcade.kit.perks.PerkSpeed;
|
||||||
|
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
|
||||||
import org.bukkit.inventory.meta.PotionMeta;
|
import org.bukkit.inventory.meta.PotionMeta;
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
|
||||||
import nautilus.game.arcade.kit.Kit;
|
|
||||||
import nautilus.game.arcade.kit.KitAvailability;
|
|
||||||
import nautilus.game.arcade.kit.Perk;
|
|
||||||
import nautilus.game.arcade.kit.perks.*;
|
|
||||||
|
|
||||||
public class KitShotgun extends Kit
|
public class KitShotgun extends Kit
|
||||||
{
|
{
|
||||||
public KitShotgun(ArcadeManager manager)
|
public KitShotgun(ArcadeManager manager)
|
||||||
@ -40,36 +43,17 @@ public class KitShotgun extends Kit
|
|||||||
@Override
|
@Override
|
||||||
public void GiveItems(Player player)
|
public void GiveItems(Player player)
|
||||||
{
|
{
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.GOLD_BARDING, (byte)0, 1, "Paintball Shotgun"));
|
UtilInv.insert(player, ItemStackFactory.Instance.CreateStack(Material.GOLD_BARDING, (byte)0, 1, F.item("Paintball Shotgun")));
|
||||||
|
|
||||||
ItemStack potion = new ItemStack(Material.POTION, 3, (short)16429); // 16422
|
ItemStack potion = new ItemStack(Material.POTION, 3, (short)16429); // 16422
|
||||||
PotionMeta potionMeta = (PotionMeta)potion.getItemMeta();
|
PotionMeta potionMeta = (PotionMeta)potion.getItemMeta();
|
||||||
potionMeta.setDisplayName("Water Bomb");
|
potionMeta.setDisplayName(F.item("Water Bomb"));
|
||||||
potion.setItemMeta(potionMeta);
|
potion.setItemMeta(potionMeta);
|
||||||
player.getInventory().addItem(potion);
|
UtilInv.insert(player, potion);
|
||||||
|
|
||||||
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
|
player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta();
|
player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
metaHelm.setColor(Color.WHITE);
|
player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
helm.setItemMeta(metaHelm);
|
player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
player.getInventory().setHelmet(helm);
|
|
||||||
|
|
||||||
ItemStack armor = new ItemStack(Material.LEATHER_CHESTPLATE);
|
|
||||||
LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta();
|
|
||||||
meta.setColor(Color.WHITE);
|
|
||||||
armor.setItemMeta(meta);
|
|
||||||
player.getInventory().setChestplate(armor);
|
|
||||||
|
|
||||||
ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS);
|
|
||||||
LeatherArmorMeta metaLegs = (LeatherArmorMeta)armor.getItemMeta();
|
|
||||||
metaLegs.setColor(Color.WHITE);
|
|
||||||
legs.setItemMeta(metaLegs);
|
|
||||||
player.getInventory().setLeggings(legs);
|
|
||||||
|
|
||||||
ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
|
|
||||||
LeatherArmorMeta metaBoots = (LeatherArmorMeta)armor.getItemMeta();
|
|
||||||
metaBoots.setColor(Color.WHITE);
|
|
||||||
boots.setItemMeta(metaBoots);
|
|
||||||
player.getInventory().setBoots(boots);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,81 @@
|
|||||||
|
package nautilus.game.arcade.game.games.paintball.kits;
|
||||||
|
|
||||||
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Arrow;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.PotionMeta;
|
||||||
|
|
||||||
|
import mineplex.core.achievement.Achievement;
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.UtilInv;
|
||||||
|
import mineplex.core.itemstack.ItemBuilder;
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.kits.perks.PerkPaintballSniper;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
|
||||||
|
public class KitSniper extends Kit
|
||||||
|
{
|
||||||
|
public KitSniper(ArcadeManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "Sniper", KitAvailability.Achievement,
|
||||||
|
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
"Long range sniper rifle",
|
||||||
|
C.cGold + "Higher damage the longer scoped"
|
||||||
|
},
|
||||||
|
|
||||||
|
new Perk[]
|
||||||
|
{
|
||||||
|
new PerkPaintballSniper(),
|
||||||
|
},
|
||||||
|
EntityType.ZOMBIE,
|
||||||
|
new ItemStack(Material.STONE_HOE));
|
||||||
|
|
||||||
|
setAchievementRequirements(new Achievement[]
|
||||||
|
{
|
||||||
|
Achievement.SUPER_PAINTBALL_FLAWLESS_VICTORY,
|
||||||
|
Achievement.SUPER_PAINTBALL_KILLING_SPREE,
|
||||||
|
Achievement.SUPER_PAINTBALL_LAST_STAND,
|
||||||
|
Achievement.SUPER_PAINTBALL_MEDIC,
|
||||||
|
Achievement.SUPER_PAINTBALL_SPEEDRUNNER,
|
||||||
|
Achievement.SUPER_PAINTBALL_WINS
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void GiveItems(Player player)
|
||||||
|
{
|
||||||
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.STONE_HOE, (byte)0, 1, F.item("Paintball Sniper Rifle")));
|
||||||
|
|
||||||
|
ItemStack potion = new ItemStack(Material.POTION, 2, (short)16429); // 16422
|
||||||
|
PotionMeta potionMeta = (PotionMeta)potion.getItemMeta();
|
||||||
|
potionMeta.setDisplayName(F.item("Water Bomb"));
|
||||||
|
potion.setItemMeta(potionMeta);
|
||||||
|
UtilInv.insert(player, potion);
|
||||||
|
|
||||||
|
player.getInventory().setHelmet(new ItemBuilder(Material.LEATHER_HELMET).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
|
player.getInventory().setChestplate(new ItemBuilder(Material.LEATHER_CHESTPLATE).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
|
player.getInventory().setLeggings(new ItemBuilder(Material.LEATHER_LEGGINGS).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
|
player.getInventory().setBoots(new ItemBuilder(Material.LEATHER_BOOTS).setUnbreakable(true).setColor(Color.WHITE).build());
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPaintDamage(Arrow proj)
|
||||||
|
{
|
||||||
|
for (Perk perk : GetPerks())
|
||||||
|
{
|
||||||
|
if (perk instanceof PerkPaintballSniper)
|
||||||
|
{
|
||||||
|
return ((PerkPaintballSniper) perk).getPaintDamage(proj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package nautilus.game.arcade.kit.perks;
|
package nautilus.game.arcade.game.games.paintball.kits.perks;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -51,6 +51,9 @@ public class PerkPaintballMachineGun extends Perk
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void Shoot(PlayerInteractEvent event)
|
public void Shoot(PlayerInteractEvent event)
|
||||||
{
|
{
|
||||||
|
if (!Manager.GetGame().IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -95,7 +98,8 @@ public class PerkPaintballMachineGun extends Perk
|
|||||||
//Energy
|
//Energy
|
||||||
if (player.getExp() >= 0.97)
|
if (player.getExp() >= 0.97)
|
||||||
return;
|
return;
|
||||||
player.setExp((float) (player.getExp() + 0.025));
|
|
||||||
|
player.setExp((float) Math.min(.999, player.getExp() + 0.025));
|
||||||
|
|
||||||
//Shoot
|
//Shoot
|
||||||
Vector rand = new Vector(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5);
|
Vector rand = new Vector(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5);
|
@ -1,4 +1,4 @@
|
|||||||
package nautilus.game.arcade.kit.perks;
|
package nautilus.game.arcade.game.games.paintball.kits.perks;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -39,6 +39,9 @@ public class PerkPaintballRifle extends Perk
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void Shoot(PlayerInteractEvent event)
|
public void Shoot(PlayerInteractEvent event)
|
||||||
{
|
{
|
||||||
|
if (!Manager.GetGame().IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
||||||
return;
|
return;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package nautilus.game.arcade.kit.perks;
|
package nautilus.game.arcade.game.games.paintball.kits.perks;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -42,6 +42,9 @@ public class PerkPaintballShotgun extends Perk
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void Shoot(PlayerInteractEvent event)
|
public void Shoot(PlayerInteractEvent event)
|
||||||
{
|
{
|
||||||
|
if (!Manager.GetGame().IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
||||||
return;
|
return;
|
||||||
|
|
@ -0,0 +1,350 @@
|
|||||||
|
package nautilus.game.arcade.game.games.paintball.kits.perks;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
|
||||||
|
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
||||||
|
import org.bukkit.entity.Arrow;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Projectile;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.NautHashMap;
|
||||||
|
import mineplex.core.common.util.UtilAlg;
|
||||||
|
import mineplex.core.common.util.UtilBlock;
|
||||||
|
import mineplex.core.common.util.UtilEvent;
|
||||||
|
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||||
|
import mineplex.core.common.util.UtilGear;
|
||||||
|
import mineplex.core.common.util.UtilInv;
|
||||||
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilParticle;
|
||||||
|
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||||
|
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
|
import mineplex.core.common.util.UtilServer;
|
||||||
|
import mineplex.core.packethandler.IPacketHandler;
|
||||||
|
import mineplex.core.packethandler.PacketInfo;
|
||||||
|
import mineplex.core.recharge.Recharge;
|
||||||
|
import mineplex.core.recharge.RechargedEvent;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
|
||||||
|
import nautilus.game.arcade.events.GameStateChangeEvent;
|
||||||
|
import nautilus.game.arcade.game.Game.GameState;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
import net.minecraft.server.v1_8_R3.EntityArrow;
|
||||||
|
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntity;
|
||||||
|
|
||||||
|
public class PerkPaintballSniper extends Perk implements IPacketHandler
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Created by: Mysticate
|
||||||
|
* Timestamp: October 27, 2015
|
||||||
|
*/
|
||||||
|
|
||||||
|
private static class Bullet
|
||||||
|
{
|
||||||
|
public Player Shooter;
|
||||||
|
public int Damage;
|
||||||
|
public Location LastSeen;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HashSet<Player> _crouching = new HashSet<Player>();
|
||||||
|
private NautHashMap<Arrow, Bullet> _fired = new NautHashMap<Arrow, Bullet>();
|
||||||
|
|
||||||
|
private double _velocity = 15;
|
||||||
|
|
||||||
|
private boolean _spawning = false;
|
||||||
|
|
||||||
|
public PerkPaintballSniper()
|
||||||
|
{
|
||||||
|
super("Sniper Rifle", new String[]
|
||||||
|
{
|
||||||
|
C.cYellow + "Crouch" + C.cGray + " to use " + C.cGreen + "Scope",
|
||||||
|
C.cYellow + "Right-Click" + C.cGray + " to use " + C.cGreen + "Sniper Rifle",
|
||||||
|
"Experience Bar represents damage."
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public void registeredEvents()
|
||||||
|
{
|
||||||
|
Manager.getPacketHandler().addPacketHandler(this, PacketPlayOutSpawnEntity.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void Recharge(RechargedEvent event)
|
||||||
|
{
|
||||||
|
if (!event.GetAbility().equals(GetName()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
event.GetPlayer().playSound(event.GetPlayer().getLocation(), Sound.NOTE_STICKS, 2f, 1f);
|
||||||
|
event.GetPlayer().playSound(event.GetPlayer().getLocation(), Sound.NOTE_STICKS, 2f, 1.5f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void Shoot(PlayerInteractEvent event)
|
||||||
|
{
|
||||||
|
if (!Manager.GetGame().IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!UtilEvent.isAction(event, ActionType.R))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (UtilBlock.usable(event.getClickedBlock()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!UtilGear.isMat(event.getItem(), Material.STONE_HOE))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (!Manager.IsAlive(player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (UtilPlayer.isSpectator(player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!Kit.HasKit(player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
if (!Recharge.Instance.use(player, GetName(), 1000, true, true))
|
||||||
|
return;
|
||||||
|
|
||||||
|
net.minecraft.server.v1_8_R3.World world = ((CraftWorld) player.getWorld()).getHandle();
|
||||||
|
EntityArrow launch = new EntityArrow(world, ((CraftPlayer) player).getHandle(), 0F);
|
||||||
|
Location location = player.getEyeLocation();
|
||||||
|
|
||||||
|
launch.projectileSource = player;
|
||||||
|
launch.setPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
|
||||||
|
|
||||||
|
((Projectile) launch.getBukkitEntity()).setVelocity(player.getEyeLocation().getDirection().clone().multiply(_velocity));
|
||||||
|
|
||||||
|
_spawning = true;
|
||||||
|
world.addEntity(launch);
|
||||||
|
_spawning = false;
|
||||||
|
|
||||||
|
Arrow proj = (Arrow) launch.getBukkitEntity();
|
||||||
|
|
||||||
|
proj.setMetadata("color", new FixedMetadataValue(Manager.getPlugin(), Manager.GetGame().GetTeam(player).GetColor().ordinal()));
|
||||||
|
|
||||||
|
Bullet bullet = new Bullet();
|
||||||
|
bullet.Shooter = player;
|
||||||
|
bullet.Damage = getPaintDamage(player);
|
||||||
|
bullet.LastSeen = proj.getLocation();
|
||||||
|
|
||||||
|
_fired.put(proj, bullet);
|
||||||
|
|
||||||
|
//Sound
|
||||||
|
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 0.8f, 1f);
|
||||||
|
|
||||||
|
player.setSneaking(false);
|
||||||
|
|
||||||
|
//Effects
|
||||||
|
removeEffects(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onUpdate(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.TICK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!Manager.GetGame().IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
//Cleanup check
|
||||||
|
for (Player player : new HashSet<Player>(_crouching))
|
||||||
|
{
|
||||||
|
boolean remove = false;
|
||||||
|
if (!player.isOnline())
|
||||||
|
remove = true;
|
||||||
|
|
||||||
|
if (!Manager.GetGame().IsAlive(player))
|
||||||
|
remove = true;
|
||||||
|
|
||||||
|
if (UtilPlayer.isSpectator(player))
|
||||||
|
remove = true;
|
||||||
|
|
||||||
|
if (!player.isSneaking())
|
||||||
|
remove = true;
|
||||||
|
|
||||||
|
if (!UtilInv.IsItem(player.getItemInHand(), Material.STONE_HOE, (byte) -1))
|
||||||
|
remove = true;
|
||||||
|
|
||||||
|
if (!Recharge.Instance.usable(player, GetName()))
|
||||||
|
remove = true;
|
||||||
|
|
||||||
|
if (remove)
|
||||||
|
{
|
||||||
|
if (_crouching.contains(player))
|
||||||
|
_crouching.remove(player);
|
||||||
|
|
||||||
|
player.setExp(0F);
|
||||||
|
player.setSneaking(false);
|
||||||
|
|
||||||
|
// Zoom
|
||||||
|
removeEffects(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Add check
|
||||||
|
for (Player player : Manager.GetGame().GetPlayers(true))
|
||||||
|
{
|
||||||
|
if (UtilPlayer.isSpectator(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!Kit.HasKit(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!player.isSneaking())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!UtilInv.IsItem(player.getItemInHand(), Material.STONE_HOE, (byte) -1))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (_crouching.contains(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
_crouching.add(player);
|
||||||
|
|
||||||
|
// Zoom
|
||||||
|
addEffects(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Exp check
|
||||||
|
|
||||||
|
for (Player player : Manager.GetGame().GetPlayers(true))
|
||||||
|
{
|
||||||
|
if (UtilPlayer.isSpectator(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!Kit.HasKit(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!_crouching.contains(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
player.setExp((float) Math.min(.999F, player.getExp() + .03332));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void doArrowEffects(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.TICK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!Manager.GetGame().IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Arrow proj : new ArrayList<Arrow>(_fired.keySet()))
|
||||||
|
{
|
||||||
|
Bullet bullet = _fired.get(proj);
|
||||||
|
|
||||||
|
double curRange = 0;
|
||||||
|
double distance = Math.abs(UtilMath.offset(proj.getLocation(), bullet.LastSeen));
|
||||||
|
|
||||||
|
while (curRange <= distance)
|
||||||
|
{
|
||||||
|
Location newTarget = bullet.LastSeen.add(UtilAlg.getTrajectory(bullet.LastSeen, proj.getLocation()).multiply(curRange));
|
||||||
|
|
||||||
|
//Progress Forwards
|
||||||
|
curRange += 0.8;
|
||||||
|
|
||||||
|
if (UtilMath.offset(bullet.Shooter.getLocation(), newTarget) < 2)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
ChatColor color = ChatColor.values()[proj.getMetadata("color").get(0).asInt()];
|
||||||
|
if (color == ChatColor.BLUE || color == ChatColor.AQUA)
|
||||||
|
{
|
||||||
|
UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, -1, 1, 1, 1, 0,
|
||||||
|
ViewDist.NORMAL, UtilServer.getPlayers());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UtilParticle.PlayParticle(ParticleType.RED_DUST, newTarget, 0, 0, 0, 0, 1,
|
||||||
|
ViewDist.NORMAL, UtilServer.getPlayers());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!proj.isValid())
|
||||||
|
{
|
||||||
|
_fired.remove(proj);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
bullet.LastSeen = proj.getLocation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||||
|
public void clean(GameStateChangeEvent event)
|
||||||
|
{
|
||||||
|
if (event.GetState() != GameState.End)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Player player : _crouching)
|
||||||
|
{
|
||||||
|
removeEffects(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
_crouching.clear();
|
||||||
|
|
||||||
|
Manager.getPacketHandler().removePacketHandler(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeEffects(Player player)
|
||||||
|
{
|
||||||
|
// Zoom
|
||||||
|
if (Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName()))
|
||||||
|
Manager.GetCondition().EndCondition(player, ConditionType.SLOW, GetName());
|
||||||
|
|
||||||
|
// if (Manager.GetCondition().HasCondition(player, ConditionType.JUMP, GetName()))
|
||||||
|
// Manager.GetCondition().EndCondition(player, ConditionType.JUMP, GetName());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addEffects(Player player)
|
||||||
|
{
|
||||||
|
// Zoom
|
||||||
|
if (!Manager.GetCondition().HasCondition(player, ConditionType.SLOW, GetName()))
|
||||||
|
Manager.GetCondition().Factory().Slow(GetName(), player, null, Double.MAX_VALUE, 8, false, false, false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPaintDamage(Arrow proj)
|
||||||
|
{
|
||||||
|
if (!_fired.containsKey(proj))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return _fired.get(proj).Damage;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getPaintDamage(Player player)
|
||||||
|
{
|
||||||
|
if (!_crouching.contains(player))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return 1 + (int) Math.floor(player.getExp() * 10 / 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(PacketInfo packetInfo)
|
||||||
|
{
|
||||||
|
if (!_spawning)
|
||||||
|
return;
|
||||||
|
|
||||||
|
packetInfo.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
package nautilus.game.arcade.game.games.paintball.trackers;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
|
||||||
|
import nautilus.game.arcade.game.Game;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.Paintball;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.events.PaintballEvent;
|
||||||
|
import nautilus.game.arcade.stats.StatTracker;
|
||||||
|
|
||||||
|
public class KillingSpreeTracker extends StatTracker<Paintball>
|
||||||
|
{
|
||||||
|
private final Map<UUID, Integer> _killCount = new HashMap<>();
|
||||||
|
private final Map<UUID, Long> _lastKillTime = new HashMap<>();
|
||||||
|
|
||||||
|
public KillingSpreeTracker(Paintball game)
|
||||||
|
{
|
||||||
|
super(game);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
|
||||||
|
public void onCombatDeath(PaintballEvent event)
|
||||||
|
{
|
||||||
|
if (getGame().GetState() != Game.GameState.Live)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Long lastTime = _lastKillTime.get(event.getKiller().getUniqueId());
|
||||||
|
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
|
||||||
|
Integer killCount;
|
||||||
|
if (lastTime == null || now - lastTime > 5000)
|
||||||
|
killCount = 0;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
killCount = _killCount.get(event.getKiller().getUniqueId());
|
||||||
|
if (killCount == null)
|
||||||
|
killCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
killCount++;
|
||||||
|
|
||||||
|
_killCount.put(event.getKiller().getUniqueId(), killCount);
|
||||||
|
_lastKillTime.put(event.getKiller().getUniqueId(), now);
|
||||||
|
|
||||||
|
_killCount.remove(event.getPlayer().getUniqueId());
|
||||||
|
_lastKillTime.remove(event.getPlayer().getUniqueId());
|
||||||
|
|
||||||
|
if (killCount >= 4)
|
||||||
|
addStat(event.getKiller(), "KillingSpree", 1, true, false);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package nautilus.game.arcade.game.games.paintball.trackers;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.NautHashMap;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.Paintball;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.events.PaintballEvent;
|
||||||
|
import nautilus.game.arcade.stats.StatTracker;
|
||||||
|
|
||||||
|
public class LastStandStatTracker extends StatTracker<Paintball>
|
||||||
|
{
|
||||||
|
private final NautHashMap<UUID, Integer> _kills = new NautHashMap<UUID, Integer>();
|
||||||
|
|
||||||
|
public LastStandStatTracker(Paintball game)
|
||||||
|
{
|
||||||
|
super(game);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPaintball(PaintballEvent event)
|
||||||
|
{
|
||||||
|
if (!getGame().IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (getGame().GetTeam(event.getKiller()).GetPlayers(true).size() == 1)
|
||||||
|
{
|
||||||
|
if (!_kills.containsKey(event.getKiller().getUniqueId()))
|
||||||
|
_kills.put(event.getKiller().getUniqueId(), 0);
|
||||||
|
|
||||||
|
int kills = _kills.get(event.getKiller().getUniqueId()) + 1;
|
||||||
|
|
||||||
|
if (kills >= 3)
|
||||||
|
addStat(event.getKiller(), "LastStand", 1, true, false);
|
||||||
|
|
||||||
|
_kills.put(event.getKiller().getUniqueId(), kills);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package nautilus.game.arcade.game.games.paintball.trackers;
|
||||||
|
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
|
||||||
|
import nautilus.game.arcade.game.games.paintball.Paintball;
|
||||||
|
import nautilus.game.arcade.game.games.paintball.events.ReviveEvent;
|
||||||
|
import nautilus.game.arcade.stats.StatTracker;
|
||||||
|
|
||||||
|
public class MedicStatTracker extends StatTracker<Paintball>
|
||||||
|
{
|
||||||
|
public MedicStatTracker(Paintball game)
|
||||||
|
{
|
||||||
|
super(game);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
|
||||||
|
public void onCombatDeath(ReviveEvent event)
|
||||||
|
{
|
||||||
|
if (!getGame().IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
addStat(event.getPlayer(), "Medic", 1, false, false);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
package nautilus.game.arcade.game.games.typewars;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
public class ActivateNukeSpellEvent extends Event
|
||||||
|
{
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return getHandlerList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Player _player;
|
||||||
|
private ArrayList<Minion> _minions;
|
||||||
|
|
||||||
|
public ActivateNukeSpellEvent(Player player, ArrayList<Minion> minions)
|
||||||
|
{
|
||||||
|
_player = player;
|
||||||
|
_minions = minions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getPlayer()
|
||||||
|
{
|
||||||
|
return _player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Minion> getMinions()
|
||||||
|
{
|
||||||
|
return _minions;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package nautilus.game.arcade.game.games.typewars;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
public class ActivateSpellEvent extends Event
|
||||||
|
{
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return getHandlerList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Player _player;
|
||||||
|
private Spell _spell;
|
||||||
|
|
||||||
|
public ActivateSpellEvent(Player player, Spell spell)
|
||||||
|
{
|
||||||
|
_player = player;
|
||||||
|
_spell = spell;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getPlayer()
|
||||||
|
{
|
||||||
|
return _player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Spell getSpell()
|
||||||
|
{
|
||||||
|
return _spell;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,632 @@
|
|||||||
|
package nautilus.game.arcade.game.games.typewars;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.UtilEnt;
|
||||||
|
import mineplex.core.common.util.UtilFirework;
|
||||||
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilParticle;
|
||||||
|
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||||
|
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseBase;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseSlime;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseWither;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseZombie;
|
||||||
|
import mineplex.core.hologram.Hologram;
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.game.GameTeam;
|
||||||
|
import nautilus.game.arcade.game.Game.GameState;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.FireworkEffect.Type;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Creeper;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Zombie;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
public class Minion
|
||||||
|
{
|
||||||
|
|
||||||
|
private static String[] NAMES = new String[]{"Fishing", "Cookie", "Sleeping", "Diamond", "Banana", "Tree", "Egg", "Cat",
|
||||||
|
"Quadrilateral", "Rollercoaster", "Hallucinating", "Advertisement", "Entertainment", "Administrator", "Intergalactic", "International", "Understanding", "Investigation",
|
||||||
|
"Veterinarian", "Photographer", "Cheeseburger", "Civilization", "Tranquilizer", "Conversation", "EnderDragon", "Engineering", "Philippines", "Countryside",
|
||||||
|
"Electricity", "Caterpillar", "Keyboarding", "Agriculture", "Mathematics", "Millimeters", "Centimeters", "Screwdriver", "Achievement", "Necromancer",
|
||||||
|
"Grasshopper", "Quadrillion", "Horseradish", "Aboveground", "Belowground", "Mississippi", "Computerize", "Hibernation", "Radioactive", "Unfortunate",
|
||||||
|
"Demonstrate", "Gymnastics", "Toothpaste", "Paraphrase", "Limitless", "Breakfast", "Graveyard", "Philippines", "Countryside",
|
||||||
|
"Competition", "Management", "Peppermint", "Pyromaniac", "Sandstone", "Vengeance", "Passwords", "Chew", "Philippines", "Countryside",
|
||||||
|
"Competitive", "Accounting", "Generation", "Mechanized", "Minecraft", "Sprinting", "Beautiful", "Container", "Mayonaise", "Generator",
|
||||||
|
"Bombardment", "Laboratory", "BlackBerry", "Calculator", "Mushrooms", "Heartbeat", "Authority", "Apartment", "Deception", "Recommend",
|
||||||
|
"Highlighter", "Incomplete", "Javascript", "Compressor", "Dentistry", "Rectangle", "Exhausted", "Slimeball", "Commander", "Associate",
|
||||||
|
"Complicated", "Government", "Ceptillion", "Deflection", "Cosmetics", "Trapezoid", "Hamburger", "Raspberry", "Developer", "Accompany",
|
||||||
|
"Basketball", "Milkshakes", "Antibiotic", "Vocabulary", "Australia", "Dodecagon", "Miniature", "Blueberry", "Historian", "Machinery",
|
||||||
|
"Volleyball", "Earthquake", "Girlfriend", "Definition", "Christmas", "Cardboard", "Dimension", "Overreact", "Character",
|
||||||
|
"Television", "Motorcycle", "Despicable", "Contradict", "Chocolate", "Screaming", "Microsoft", "Barbarian", "Backspace", "Knowledge",
|
||||||
|
"Microphone", "Buccaneers", "Affordable", "Attendance", "Halloween", "Demanding", "Wrestling", "Lightbulb", "Wisconsin", "Secondary",
|
||||||
|
"Rhinoceros", "Applesauce", "Disconnect", "Protection", "Vacations", "Hopscotch", "Moderator", "Invisible", "Tennessee", "Adjective",
|
||||||
|
"Chestpiece", "Headphones", "Watermelon", "Reasonless", "Traveling", "Spectator", "Paintball", "Carnivore", "Awareness", "Direction",
|
||||||
|
"Complicated", "Controller", "Chimpanzee", "Deportment", "Saxophone", "Quadruple", "Champions", "Herbivore", "Unexcused", "Different",
|
||||||
|
"Antarctica", "Paintbrush", "Newsletter", "Appearance", "Hurricane", "Autopilot", "Architect", "Automatic", "Diplomacy", "Construct",
|
||||||
|
"Snowflakes", "Typewriter", "Sunglasses", "Occupation", "Piercings", "Principle", "Sharpness", "Performer", "Valentine", "Alternate",
|
||||||
|
"Strawberry", "Smartwatch", "Horrendous", "Antarctica", "Necklaces", "September", "Trademark", "Miniscule", "Copyright", "Opposable",
|
||||||
|
"Blackholes", "Minestrike", "California", "Wristwatch", "Evolution", "Microwave", "Dangerous", "Humongous", "Practical", "Imaginary",
|
||||||
|
"Rocketship", "Deathmatch", "Transplant", "Confusion", "Spaceship", "Eyeshadow", "Afternoon", "Judgement", "Imperfect", "Bonemeal",
|
||||||
|
"Aquamarine", "Playground", "Inevitable", "Surprised", "Lightning", "Butterfly", "Beekeeper", "Gladiator", "Excessive", "Courages",
|
||||||
|
"Levitation", "Resistance", "Inflatable", "Newspaper", "Sketching", "Centipede", "Parachute", "Treachery", "Crocodile", "Baseball",
|
||||||
|
"Vegetables", "Lighthouse", "Relentless", "Dinosaurs", "Teenagers", "Cartwheel", "Barricade", "Blowtorch", "Alligator", "Presents",
|
||||||
|
"Whispering", "Helicopter", "Mistakable", "Tarantula", "Grassland", "President", "Raincloud", "Incentive", "Balloons",
|
||||||
|
"Announcing", "Mechanical", "Expectance", "Mountains", "Fingertip", "Millenium", "Structure", "Keyboard",
|
||||||
|
"Meditation", "Toothbrush", "Tumbleweed", "Sandstone", "Dumplings", "Scientist", "Pineapple", "Boyfriend", "Spotlight", "Computer",
|
||||||
|
"Clothing", "Elephant", "Reptiles", "Scorpion", "Redstone", "Diamonds", "Porkchop", "Endermen", "Obsidian", "Planting",
|
||||||
|
"Potatoes", "Vampires", "Bracelet", "Coloring", "Thousand", "Hologram", "Lipstick", "Cruising", "Delivery", "Dreaming",
|
||||||
|
"Minecart", "Werewolf", "Highways", "Painting", "Infinity", "Ancestor", "Eyeliner", "Complete", "Packages", "Thinking",
|
||||||
|
"Unicorns", "Pumpkins", "Internet", "Toddlers", "Swimming", "Wreckage", "Siblings", "Branches", "Criminal", "Engineer",
|
||||||
|
"Military", "Costumes", "Earrings", "Children", "Triangle", "Defender", "Baguette", "Politics", "Handsome", "Reindeer",
|
||||||
|
"Portland", "Chipotle", "Dolphins", "Pre-teen", "Pentagon", "Homework", "Princess", "Citizens", "Gorgeous", "Necklace",
|
||||||
|
"Penguins", "Sapphire", "Galaxies", "Campfire", "Heptagon", "February", "Alphabet", "Username", "Panthers", "Mineplex",
|
||||||
|
"Barbecue", "Amethyst", "Cartoons", "Tropical", "Lollipop", "November", "Scissors", "Medicine", "Warriors", "Pallette",
|
||||||
|
"Mermaids", "Clarinet", "Basement", "Broccoli", "Shouting", "December", "Eternity", "Behavior", "Chatting", "Dominate",
|
||||||
|
"Assassin", "Elevator", "Weakness", "Blizzard", "Entrance", "Universe", "Teleport", "Director", "Stuffing", "Eruption",
|
||||||
|
"Godzilla", "Electron", "Strength", "Powerful", "Dynamite", "Backyard", "Gradient", "Producer", "Festival", "Mattress",
|
||||||
|
"Empoleon", "Building", "Dinosaur", "Illusion", "Mustache", "Ceremony", "Shipment", "Cosmetic", "Applause", "Research",
|
||||||
|
"Chimchar", "Aquarium", "Sidewalk", "Calendar", "Treasure", "Airplane", "Envelope", "Kangaroo", "Goldfish", "Starfish",
|
||||||
|
"Nickname", "Slowness", "Official", "Accident", "Cinnamon", "Collapse", "Geometry", "Barnacle", "Football", "Creative",
|
||||||
|
"Hypnotic", "Antidote", "Emulator", "Foothold", "Friction", "Tungsten", "Tablets", "Torches", "Fairies", "Windows",
|
||||||
|
"Conquest", "Province", "Overflow", "Graceful", "Negative", "Doctrine", "Charger", "Carrots", "Spirits", "Robbers",
|
||||||
|
"Karambit", "Solution", "Sandwich", "Catapult", "Positive", "Firework", "Ukulele", "Dragons", "Cobwebs", "Drawing",
|
||||||
|
"Internal", "Japanese", "Atronomy", "Villager", "Tranquil", "Compress", "Glasses", "Nursing", "College", "Magenta",
|
||||||
|
"Trillion", "Standard", "Astrology", "Infringe", "Fortress", "Prisoner", "Daisies", "Soldier", "Courses", "Serpent",
|
||||||
|
"Carnival", "Parasite", "Porridge", "Variable", "Charcoal", "Decision", "Hazards", "Jupiter", "Buttons", "Camping",
|
||||||
|
"Concrete", "Carriage", "Pressure", "Practice", "Commerce", "Windmill", "Cheetah", "Mercury", "Octopus", "Canyons",
|
||||||
|
"Pavement", "Auxilary", "Demolish", "Maintain", "Barbeque", "Parmesan", "Vulture", "America", "Printer", "Seventy",
|
||||||
|
"Joystick", "Marshall", "Franklin", "Umbrella", "Contract", "Warthog", "Turtles", "Ireland", "Titanic", "Hundred",
|
||||||
|
"Speaker", "Suitcase", "Michigan", "Darkness", "Separate", "Puzzled", "Ocelots", "Germany", "Vanilla", "Million",
|
||||||
|
"Figurine", "Mandarin", "Arkansas", "Ethernet", "Eligible", "Shocked", "Creeper", "Chillie", "Tornado", "Billion",
|
||||||
|
"Boundary", "Anteater", "Colorado", "Everyday", "Fraction", "Figures", "Zombies", "Jamaica", "Seaweed", "Twitter",
|
||||||
|
"Birthday", "Sunshine", "Virginia", "Surprise", "Compound", "Pillows", "Leather", "Bermuda", "Craters", "Waiting",
|
||||||
|
"Hogwarts", "Particle", "American", "Together", "Precious", "Erasers", "Chicken", "Bahamas", "Meteors", "Passion",
|
||||||
|
"Walking", "Decagon", "Spatula", "Science", "Bicycle", "Animate", "Cereal", "Graphic", "Message", "Episode",
|
||||||
|
"Running", "Talking", "Cooking", "Biology", "Sweater", "Cabinet", "Pokemon", "Kingdom", "Funeral", "Destroy",
|
||||||
|
"Jogging", "Yelling", "Fashion", "Pajamas", "Lettuce", "Furnace", "Chariot", "Package", "Grinder", "Defrost",
|
||||||
|
"Breathe", "Ladybug", "Brother", "Reflect", "Cheddar", "Bridges", "Spawner", "Exhibit", "Nuclear", "Avocado",
|
||||||
|
"Muscles", "Invader", "Grandpa", "Confirm", "Speaker", "Wizards", "Stacker", "Feather", "Channel", "Thunder",
|
||||||
|
"Marbles", "Contest", "Grandma", "History", "Minigun", "Skywars", "Turtwig", "Morning", "Explode", "Factory",
|
||||||
|
"Polygon", "Teacher", "Royalty", "Balcony", "Android", "Monster", "Emerald", "Primate", "Village", "Company",
|
||||||
|
"Degrees", "Glacier", "Cricket", "Partner", "Medieval", "Gravity", "Surgeon", "Volcano", "Forward", "Console",
|
||||||
|
"Hexagon", "Cyclops", "Kung-fu", "Bonjour", "Painter", "Snowman", "Caramel", "Lullaby", "Sparrow", "Blowgun",
|
||||||
|
"Octagon", "January", "Century", "Bowling", "Plumber", "Explore", "Healing", "Circuit", "Vampire", "Distort",
|
||||||
|
"Nonagon", "October", "Lockers", "Justice", "England", "Pancake", "Whisper", "Voltage", "Ceramic", "Avenger",
|
||||||
|
"Bazooka", "Actress", "Highway", "Fighter", "Notepad", "Knuckle", "YouTube", "Fishing", "Florida", "Capsule",
|
||||||
|
"Missile", "Haircut", "Apricot", "Deathly", "Cracker", "Western", "Colonel", "Balance", "Georgia", "Boolean",
|
||||||
|
"Pyramid", "Stomach", "Dracula", "Fractal", "Network", "Eastern", "Creator", "Monitor", "Glowing", "Integer",
|
||||||
|
"Mailbox", "Phantom", "Harpoon", "Endless", "Ketchup", "English", "Sunrise", "Examine", "Blowing", "Perfect",
|
||||||
|
"Algebra", "Pattern", "Cottage", "Crystal", "Mustard", "Spanish", "Unlucky", "Tragedy", "Deviate", "Builder",
|
||||||
|
"Penguin", "Emperor", "Amplify", "Hamster", "Paprika", "Chinese", "Shackle", "Kitchen", "Liberty", "Cupcake",
|
||||||
|
"Robotic", "Fortune", "Gazelle", "Scratch", "Revenge", "Honesty", "Hideout", "Compass", "Italian", "Demoman",
|
||||||
|
"Machine", "Gymnast", "Balloon", "Country", "Poision", "Brendan", "Connect", "Fireman", "Mexican", "Neptune",
|
||||||
|
"Aquatic", "Hostage", "Program", "Witness", "Villain", "Virtual", "Supreme", "Platter", "Ukraine", "Profile",
|
||||||
|
"Hatchet", "Hangers", "Bayonet", "Gamepad", "Bandage", "Blister", "Archive", "Implode", "Hilbert", "Offline",
|
||||||
|
"Shelter", "Primary", "Organic", "Healthy", "Makeup", "Blazes", "Brazil", "Horror", "Subway", "Babies",
|
||||||
|
"Capture", "Various", "Gradual", "Rapture", "Pollen", "String", "Warren", "Moving", "Shorts", "Elders",
|
||||||
|
"Elegant", "Violate", "Heroic", "Violent", "Leaves", "Soccer", "Europe", "School", "Scarves", "Orange",
|
||||||
|
"Dentist", "Neglect", "Strong", "Solvent", "Monkey", "Closet", "Africa", "Hotels", "Sharks", "Yellow",
|
||||||
|
"Combine", "Fulfill", "Barbie", "Engrave", "Rabbit", "Carpet", "Winter", "Zipper", "Whales", "Purple",
|
||||||
|
"Surface", "Sailing", "Pencil", "Passage", "Kitten", "Saturn", "Spring", "Acorns", "Comets",
|
||||||
|
"Gelatin", "Klarin", "Phones", "Quality", "Ingots", "Uranus", "Summer", "Pariot", "Comedy", "Poison",
|
||||||
|
"Similar", "Flutter", "Shield", "Psychic", "Spider", "Mexico", "Autumn", "Cruise", "Sports", "Forest",
|
||||||
|
"Oxidize", "Disease", "Guitar", "Opossum", "Ghasts", "France", "Ghosts", "Lucius", "Cement", "Desert",
|
||||||
|
"Purpose", "Symptom", "Sticks", "Measure", "Slimes", "Greece", "Spooky", "Coffee", "Aliens", "Cities",
|
||||||
|
"Bikini", "Mortal", "Serena", "Future", "Bottle", "Helmet", "Crunch", "Afraid", "Threat", "Static",
|
||||||
|
"Happy", "Knife", "Scary", "Lapis", "Skirt", "Waves", "Calem", "Clock", "Taste", "Lucas",
|
||||||
|
"Anger", "Spork", "Maike", "Candy", "Shirt", "Tides", "Ocean", "Crawl", "Smell", "React",
|
||||||
|
"Dolls", "Roses", "Trips", "Flute", "Pants", "Brick", "Three", "Ethan", "Uncle", "Lunch",
|
||||||
|
"Legos", "Tulip", "Beach", "Wipes", "Heels", "Straw", "Seven", "Hands", "Queen", "Books",
|
||||||
|
"Couch", "Grass", "Clans", "Frame", "Nails", "Cream", "Eight", "Belly", "Crown", "Polls",
|
||||||
|
"Vases", "Tiger", "Wagon", "Sleet", "Rings", "Attic", "Forty", "Chest", "Staff", "Hello",
|
||||||
|
"Sword", "Panda", "Sleep", "Roads", "Money", "Green", "Fifty", "Brush", "Tools", "Howdy",
|
||||||
|
"Banjo", "Sloth", "X-ray", "Truck", "Coral", "Speed", "Sixty", "Peace", "Music", "Court",
|
||||||
|
"Drums", "Snake", "Socks", "Plane", "Reefs", "Hilda", "Brown", "Heart", "Lucia", "Raven",
|
||||||
|
"Spoon", "Boots", "Pearl", "Train", "Horse", "Woods", "Silly", "Lotta", "Month", "Games",
|
||||||
|
"Love", "Cats", "Lava", "Ship", "Moon", "Five", "Head", "July", "Mask", "Hola",
|
||||||
|
"Rosa", "Wolf", "Soda", "Ruby", "News", "Nine", "Hair", "Feel", "Jazz", "Soft",
|
||||||
|
"Toys", "Duck", "Mars", "Mint", "Ufos", "Grey", "Ears", "Hear", "Hour", "Hard",
|
||||||
|
"Soap", "Ores", "Cuba", "Snow", "Cops", "Derp", "Eyes", "Oven", "Week", "Clay",
|
||||||
|
"Wigs", "Gold", "Asia", "Rain", "Lime", "Time", "Star", "King", "Year", "Gold",
|
||||||
|
"Fork", "Iron", "Elfs", "Suit", "Blue", "Tony", "Salt", "Ants", "Nate", "Mind",
|
||||||
|
"Weed", "Pigs", "Bricks", "Blue", "Pink", "Hide", "Kris", "File", "Yard", "Comb",
|
||||||
|
"Wood", "Lyra", "Frog", "Hats", "Heal", "Feet", "Yoga", "Edit", "Mile", "Paws",
|
||||||
|
"Bird", "Wool", "Fish", "Eels", "Jump", "Arms", "Boom", "View", "Girl", "Tree",
|
||||||
|
"Lion", "Dirt", "Yarn", "Dawn", "Four", "Neck", "June", "Help", "Mail", "Lamp",
|
||||||
|
"Sad", "Sun", "Pan", "Yes", "Dad", "Bat", "Wig", "KFC", "War", "Fan",
|
||||||
|
"Red", "Jam", "Ivy", "Map", "Fur", "Yen", "Hum", "May", "Dog",
|
||||||
|
"One", "Day", "Sky", "Add", "Orb", "Hip", "Sew", "Act", "Ice",
|
||||||
|
"Two", "Gum", "Cow", "Moo", "Bee", "Ape", "Zoo", "Pit", "Hat",
|
||||||
|
"Six", "Gym", "Rat", "Mow", "Pot", "Dot", "Paw", "Hen", "Bed",
|
||||||
|
"Ten", "Art", "Bag", "Mob", "End", "Egg", "Saw", "Law", "Fog",
|
||||||
|
"Fly", "Boy", "Rag", "New", "Jet", "Pet", "Tin", "Pen", "Car",
|
||||||
|
"Old", "Age", "TNT", "Leg", "Axe", "UFO", "Rap", "Wet", "Tie",
|
||||||
|
"May", "Gas", "Hue", "Wax", "Toy", "Lay", "Pop", "Dry", "Sea",
|
||||||
|
"See", "Ash", "Mom", "Box", "Key", "Fat", "Spy"};
|
||||||
|
|
||||||
|
private ArcadeManager _manager;
|
||||||
|
|
||||||
|
private MinionType _type;
|
||||||
|
private Entity _entity;
|
||||||
|
private String _name;
|
||||||
|
private Location _location;
|
||||||
|
private Location _target;
|
||||||
|
private GameTeam _team;
|
||||||
|
private Player _player;
|
||||||
|
private Player _killer;
|
||||||
|
private Location _lastNameChanged;
|
||||||
|
private Hologram _hologram;
|
||||||
|
private int _money;
|
||||||
|
private float _walkSpeed;
|
||||||
|
private boolean _spawned;
|
||||||
|
private double _tagHight;
|
||||||
|
private boolean _moving;
|
||||||
|
|
||||||
|
private int _size;
|
||||||
|
|
||||||
|
private int _spawnID;
|
||||||
|
|
||||||
|
private boolean _die;
|
||||||
|
private boolean _killed;
|
||||||
|
private int _frame;
|
||||||
|
private int _lives;
|
||||||
|
|
||||||
|
public Minion(ArcadeManager manager, Location location, Location target, GameTeam team, int spawnID)
|
||||||
|
{
|
||||||
|
this(manager, location, target, team, null, true, null, spawnID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Minion(ArcadeManager manager, Location location, Location target, GameTeam team, Player player, boolean spawn, MinionType type, int spawnID)
|
||||||
|
{
|
||||||
|
_manager = manager;
|
||||||
|
|
||||||
|
_type = type;
|
||||||
|
_moving = true;
|
||||||
|
if(_type == null)
|
||||||
|
_type = randomType();
|
||||||
|
|
||||||
|
_walkSpeed = _type.getWalkSpeed();
|
||||||
|
_tagHight = _type.getTagHight();
|
||||||
|
_die = false;
|
||||||
|
_killed = false;
|
||||||
|
_frame = 0;
|
||||||
|
_entity = null;
|
||||||
|
_team = team;
|
||||||
|
_player = player;
|
||||||
|
_killer = null;
|
||||||
|
_money = _type.getMoney();
|
||||||
|
_spawnID = spawnID;
|
||||||
|
_size = 10;
|
||||||
|
if(_type == MinionType.WITHER)
|
||||||
|
_size = 0;
|
||||||
|
|
||||||
|
changeRandomName(_type.getMinName(), _type.getMaxName(), true);
|
||||||
|
|
||||||
|
_location = location;
|
||||||
|
_target = target;
|
||||||
|
_spawned = false;
|
||||||
|
_lives = _type.getSize().getLives();
|
||||||
|
if(spawn)
|
||||||
|
spawnMinion();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void spawnMinion()
|
||||||
|
{
|
||||||
|
_entity = _location.getWorld().spawn(_location, Zombie.class);
|
||||||
|
Zombie zombie = (Zombie) _entity;
|
||||||
|
zombie.setRemoveWhenFarAway(false);
|
||||||
|
zombie.setMaxHealth(200);
|
||||||
|
zombie.setHealth(200);
|
||||||
|
zombie.getEquipment().setHelmet(new ItemStack(Material.LEATHER_HELMET));
|
||||||
|
disguiseCreeper();
|
||||||
|
path();
|
||||||
|
_spawned = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Material[] _items = new Material[]{Material.DIAMOND_AXE, Material.IRON_SWORD, Material.CARROT, Material.STONE_SPADE, Material.GOLD_PICKAXE, Material.AIR};
|
||||||
|
|
||||||
|
private void disguiseCreeper()
|
||||||
|
{
|
||||||
|
if (_hologram != null)
|
||||||
|
{
|
||||||
|
_hologram.setText(_team.GetColor() + _name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(_manager.GetGame().GetState() == GameState.Live)
|
||||||
|
{
|
||||||
|
_hologram = new Hologram(_manager.getHologramManager(), _entity.getLocation().add(0, 2.3, 0), _team.GetColor() + _name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hologram = new Hologram(_manager.getHologramManager(), _entity.getLocation().add(0, 2.3, 0), ChatColor.WHITE + _name);
|
||||||
|
}
|
||||||
|
_hologram.setHologramTarget(Hologram.HologramTarget.WHITELIST);
|
||||||
|
//_hologram.setFollowEntity(_entity);
|
||||||
|
|
||||||
|
for (Player player : _manager.GetGame().GetPlayers(false))
|
||||||
|
{
|
||||||
|
if (_manager.GetGame().GetTeam(player) == _team && _manager.GetGame().GetState() != GameState.Prepare)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
_hologram.addPlayer(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
_hologram.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
for(Class clazz : _type.getDisguiseClasses())
|
||||||
|
{
|
||||||
|
Object disguise = null;
|
||||||
|
Entity ent = null;
|
||||||
|
if(i == 0)
|
||||||
|
{
|
||||||
|
disguise = clazz.getConstructors()[0].newInstance(_entity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ent = _location.getWorld().spawn(_location, Creeper.class);
|
||||||
|
disguise = clazz.getConstructors()[0].newInstance(ent);
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
clazz.getMethod("setHelmet", ItemStack.class).invoke(disguise, new ItemStack(Material.LEATHER_HELMET));
|
||||||
|
clazz.getMethod("setHeldItem", ItemStack.class).invoke(disguise, new ItemStack(_items[UtilMath.r(_items.length)]));
|
||||||
|
}
|
||||||
|
catch (Exception e) {}
|
||||||
|
if(disguise instanceof DisguiseZombie && i > 0)
|
||||||
|
{
|
||||||
|
DisguiseZombie zombie = (DisguiseZombie) disguise;
|
||||||
|
zombie.SetBaby(true);
|
||||||
|
}
|
||||||
|
if(disguise instanceof DisguiseSlime)
|
||||||
|
{
|
||||||
|
DisguiseSlime slime = (DisguiseSlime) disguise;
|
||||||
|
slime.SetSize(_size);
|
||||||
|
}
|
||||||
|
if(disguise instanceof DisguiseWither)
|
||||||
|
{
|
||||||
|
DisguiseWither wither = (DisguiseWither) disguise;
|
||||||
|
wither.setInvulTime(_size);
|
||||||
|
}
|
||||||
|
_entity.setPassenger(ent);
|
||||||
|
_manager.GetDisguise().disguise((DisguiseBase)disguise);
|
||||||
|
_manager.GetDisguise().updateDisguise((DisguiseBase)disguise);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e) {}
|
||||||
|
_hologram.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void path()
|
||||||
|
{
|
||||||
|
UtilEnt.Vegetate(_entity);
|
||||||
|
UtilEnt.silence(_entity, true);
|
||||||
|
UtilEnt.ghost(_entity, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private MinionType randomType()
|
||||||
|
{
|
||||||
|
if(System.currentTimeMillis() - _manager.GetGame().GetStateTime() <= 30000)
|
||||||
|
{
|
||||||
|
return MinionSize.EASY.getRandomType();
|
||||||
|
}
|
||||||
|
if(System.currentTimeMillis() - _manager.GetGame().GetStateTime() <= 60000)
|
||||||
|
{
|
||||||
|
int rdm = UtilMath.r(2);
|
||||||
|
if(rdm == 0)
|
||||||
|
return MinionSize.MEDIUM.getRandomType();
|
||||||
|
else
|
||||||
|
return MinionSize.EASY.getRandomType();
|
||||||
|
}
|
||||||
|
int rdm = UtilMath.r(MinionType.values().length);
|
||||||
|
int freak = UtilMath.r(1000);
|
||||||
|
if(freak <= 10)
|
||||||
|
{
|
||||||
|
ArrayList<MinionType> minions = new ArrayList<>();
|
||||||
|
for(MinionType type : MinionType.values())
|
||||||
|
{
|
||||||
|
if(type.getSize() == MinionSize.FREAK)
|
||||||
|
minions.add(type);
|
||||||
|
}
|
||||||
|
return minions.get(UtilMath.r(minions.size()));
|
||||||
|
}
|
||||||
|
for(MinionType type : MinionType.values())
|
||||||
|
{
|
||||||
|
if(type.ordinal() == rdm)
|
||||||
|
{
|
||||||
|
if(type.getSize() != MinionSize.FREAK && type.getSize() != MinionSize.BOSS)
|
||||||
|
{
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return randomType();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasLives()
|
||||||
|
{
|
||||||
|
return _lives > 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void despawn(Player player, boolean killed, boolean clean)
|
||||||
|
{
|
||||||
|
_money = _money + 1;
|
||||||
|
if(_lives > 1)
|
||||||
|
{
|
||||||
|
_lives = _lives - 1;
|
||||||
|
changeRandomName(_name.length()+1, _name.length()+1, false);
|
||||||
|
if(_type == MinionType.WITHER)
|
||||||
|
{
|
||||||
|
_size = _size + 100;
|
||||||
|
_tagHight = _tagHight - 0.15;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_size = _size -1;
|
||||||
|
_tagHight = _tagHight - 0.1;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_killed = killed;
|
||||||
|
_killer = player;
|
||||||
|
_die = true;
|
||||||
|
_hologram.stop();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if(_entity.getPassenger() != null)
|
||||||
|
{
|
||||||
|
if(!clean)
|
||||||
|
((Zombie) _entity.getPassenger()).damage(10000);
|
||||||
|
else
|
||||||
|
_entity.getPassenger().remove();
|
||||||
|
}
|
||||||
|
if(!clean)
|
||||||
|
((Zombie) _entity).damage(10000);
|
||||||
|
else
|
||||||
|
_entity.remove();
|
||||||
|
|
||||||
|
if(!_entity.isDead())
|
||||||
|
_entity.remove();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void despawn(Player player, boolean killed)
|
||||||
|
{
|
||||||
|
despawn(player, killed, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void animation()
|
||||||
|
{
|
||||||
|
if(!_die)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(_killed)
|
||||||
|
{
|
||||||
|
if(_frame <= 30)
|
||||||
|
{
|
||||||
|
if(_team.GetColor() == ChatColor.RED)
|
||||||
|
{
|
||||||
|
double radius = _frame / 20D;
|
||||||
|
int particleAmount = _frame / 2;
|
||||||
|
for (int e = 0; e < particleAmount; e++)
|
||||||
|
{
|
||||||
|
double xDiff = Math.sin(e/(double)particleAmount * 2 * Math.PI) * radius;
|
||||||
|
double zDiff = Math.cos(e/(double)particleAmount * 2 * Math.PI) * radius;
|
||||||
|
|
||||||
|
Location location = _entity.getLocation().clone().add(0.5, 0, 0.5).add(xDiff, particleAmount/10, zDiff);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
UtilParticle.PlayParticle(UtilParticle.ParticleType.RED_DUST, location, 0, 0, 0, 0, 1, ViewDist.NORMAL, _player);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
double radius = _frame / 20D;
|
||||||
|
int particleAmount = _frame / 2;
|
||||||
|
for (int e = 0; e < particleAmount; e++)
|
||||||
|
{
|
||||||
|
double xDiff = Math.sin(e/(double)particleAmount * 2 * Math.PI) * radius;
|
||||||
|
double zDiff = Math.cos(e/(double)particleAmount * 2 * Math.PI) * radius;
|
||||||
|
|
||||||
|
Location location = _entity.getLocation().clone().add(0.5, 0, 0.5).add(xDiff, particleAmount/10, zDiff);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
UtilParticle.PlayParticle(ParticleType.RED_DUST, location, -1, 1, 1, 1, 0,ViewDist.NORMAL, _player);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(_frame <= 1)
|
||||||
|
{
|
||||||
|
UtilFirework.playFirework(_entity.getLocation().add(0.5, 0.5, 0.5), Type.BALL_LARGE, Color.GREEN, true, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(_frame == 31)
|
||||||
|
{
|
||||||
|
_die = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_frame++;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void changeName(String name)
|
||||||
|
{
|
||||||
|
_name = name;
|
||||||
|
Location loc = _entity.getLocation();
|
||||||
|
_lastNameChanged = loc;
|
||||||
|
disguiseCreeper();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void changeRandomName(int min, int max, boolean spawned)
|
||||||
|
{
|
||||||
|
ArrayList<String> tempList = new ArrayList<>();
|
||||||
|
for(String names : NAMES)
|
||||||
|
tempList.add(names);
|
||||||
|
|
||||||
|
Collections.shuffle(tempList);
|
||||||
|
for(String str : tempList)
|
||||||
|
{
|
||||||
|
if(str.length() >= min && str.length() <= max)
|
||||||
|
{
|
||||||
|
if(!spawned)
|
||||||
|
changeName(str);
|
||||||
|
else
|
||||||
|
_name = str;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNameChangeable()
|
||||||
|
{
|
||||||
|
if(_lastNameChanged == null)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if(_entity.getLocation().getBlockX() != _lastNameChanged.getBlockX())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if(_entity.getLocation().getBlockZ() != _lastNameChanged.getBlockZ())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWalkSpeed(float speed)
|
||||||
|
{
|
||||||
|
_walkSpeed = speed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void increaseWalkSpeed(float speed)
|
||||||
|
{
|
||||||
|
float oldSpeed = _walkSpeed;
|
||||||
|
_walkSpeed = oldSpeed + speed;
|
||||||
|
if(_walkSpeed <= 0.5)
|
||||||
|
_walkSpeed = 0.6F;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getTarget()
|
||||||
|
{
|
||||||
|
return _target;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSpawned()
|
||||||
|
{
|
||||||
|
return _spawned;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Entity getEntity()
|
||||||
|
{
|
||||||
|
return _entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MinionType getType()
|
||||||
|
{
|
||||||
|
return _type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMoney()
|
||||||
|
{
|
||||||
|
return _money;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getKiller()
|
||||||
|
{
|
||||||
|
return _killer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getPlayer()
|
||||||
|
{
|
||||||
|
return _player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GameTeam getTeam()
|
||||||
|
{
|
||||||
|
return _team;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return _name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getWalkSpeed()
|
||||||
|
{
|
||||||
|
return _walkSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getLastNameChanged()
|
||||||
|
{
|
||||||
|
return _lastNameChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Hologram getHologram()
|
||||||
|
{
|
||||||
|
return _hologram;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSpawnID()
|
||||||
|
{
|
||||||
|
return _spawnID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getTagHight()
|
||||||
|
{
|
||||||
|
return _tagHight;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTarget(Location location)
|
||||||
|
{
|
||||||
|
_target = location;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMoving(boolean moving)
|
||||||
|
{
|
||||||
|
_moving = moving;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isMoving()
|
||||||
|
{
|
||||||
|
return _moving;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,66 @@
|
|||||||
|
package nautilus.game.arcade.game.games.typewars;
|
||||||
|
|
||||||
|
import nautilus.game.arcade.game.games.typewars.TypeWars.KillType;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
public class MinionKillEvent extends Event implements Cancellable
|
||||||
|
{
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return getHandlerList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Player _player;
|
||||||
|
private Minion _minion;
|
||||||
|
private KillType _type;
|
||||||
|
|
||||||
|
private boolean _canceled;
|
||||||
|
|
||||||
|
public MinionKillEvent(Player player, Minion minion, KillType type)
|
||||||
|
{
|
||||||
|
_player = player;
|
||||||
|
_minion = minion;
|
||||||
|
_type = type;
|
||||||
|
_canceled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getPlayer()
|
||||||
|
{
|
||||||
|
return _player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Minion getMinion()
|
||||||
|
{
|
||||||
|
return _minion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public KillType getType()
|
||||||
|
{
|
||||||
|
return _type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(boolean cancel)
|
||||||
|
{
|
||||||
|
_canceled = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCancelled()
|
||||||
|
{
|
||||||
|
return _canceled;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,73 @@
|
|||||||
|
package nautilus.game.arcade.game.games.typewars;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
public enum MinionSize
|
||||||
|
{
|
||||||
|
EASY("Easy", 2, ItemStackFactory.Instance.CreateStack(Material.MONSTER_EGG, (byte) 0, 1, (short) 55, "", new String[]{}), 1, 1),
|
||||||
|
MEDIUM("Medium", 4, ItemStackFactory.Instance.CreateStack(Material.MONSTER_EGG, (byte) 0, 1, (short) 61, "", new String[]{}), 1, 2),
|
||||||
|
HARD("Hard", 6, ItemStackFactory.Instance.CreateStack(Material.MONSTER_EGG, (byte) 0, 1, (short) 52, "", new String[]{}), 1, 4),
|
||||||
|
FREAK("Freak", 10000, new ItemStack(Material.MONSTER_EGG), 1, 999999),
|
||||||
|
BOSS("Boss", 10000, new ItemStack(Material.MONSTER_EGG), 7, 999999999);
|
||||||
|
|
||||||
|
private int _cost;
|
||||||
|
private ItemStack _displayItem;
|
||||||
|
private int _lives;
|
||||||
|
private int _gemReward;
|
||||||
|
|
||||||
|
private String _displayName;
|
||||||
|
|
||||||
|
private MinionSize(String name, int cost, ItemStack displayItem, int lives, int gemReward)
|
||||||
|
{
|
||||||
|
_displayName = name;
|
||||||
|
_cost = cost;
|
||||||
|
_displayItem = displayItem;
|
||||||
|
_lives = lives;
|
||||||
|
_gemReward = gemReward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCost()
|
||||||
|
{
|
||||||
|
return _cost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getDisplayItem()
|
||||||
|
{
|
||||||
|
return _displayItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDisplayName()
|
||||||
|
{
|
||||||
|
return _displayName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGemReward()
|
||||||
|
{
|
||||||
|
return _gemReward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MinionType getRandomType()
|
||||||
|
{
|
||||||
|
ArrayList<MinionType> minionList = new ArrayList<>();
|
||||||
|
for(MinionType type : MinionType.values())
|
||||||
|
{
|
||||||
|
if(type.getSize() == this)
|
||||||
|
{
|
||||||
|
minionList.add(type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return minionList.get(UtilMath.r(minionList.size()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLives()
|
||||||
|
{
|
||||||
|
return _lives;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,123 @@
|
|||||||
|
package nautilus.game.arcade.game.games.typewars;
|
||||||
|
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseBase;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseChicken;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseCow;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseCreeper;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseEnderman;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseHorse;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseIronGolem;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseMagmaCube;
|
||||||
|
import mineplex.core.disguise.disguises.DisguisePig;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseSkeleton;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseSlime;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseSpider;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseWither;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseWolf;
|
||||||
|
import mineplex.core.disguise.disguises.DisguiseZombie;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public enum MinionType
|
||||||
|
{
|
||||||
|
|
||||||
|
CHICKEN(10, MinionSize.EASY, EntityType.CHICKEN, 3, 3, (float) (0.7 + (0.1*7)), 1, -0.5D, Material.EGG, DisguiseChicken.class),
|
||||||
|
PIG(10, MinionSize.EASY, EntityType.PIG, 3, 6, (float) (0.7 + (0.1*7)), 1, -0.5D, Material.PORK, DisguisePig.class),
|
||||||
|
COW(10, MinionSize.EASY, EntityType.COW, 6, 9, (float) (0.7 + (0.1*7)), 1, -0.5D, Material.COOKED_BEEF, DisguiseCow.class),
|
||||||
|
|
||||||
|
ZOMBIE(10, MinionSize.MEDIUM, EntityType.ZOMBIE, 9, 12, (float) (0.7 + (0.1*2)), 2, 0D, Material.ROTTEN_FLESH, DisguiseZombie.class),
|
||||||
|
SPIDER(10, MinionSize.MEDIUM, EntityType.SPIDER, 6, 9, (float) (0.7 + (0.1*5)), 2, 0D, Material.SPIDER_EYE, DisguiseSpider.class),
|
||||||
|
WOLF(10, MinionSize.MEDIUM, EntityType.WOLF, 3, 6, (float) (0.7 + (0.1*8)), 2, -1D, Material.COOKED_BEEF, DisguiseWolf.class),
|
||||||
|
|
||||||
|
IRON_GOLEM(10, MinionSize.HARD, EntityType.IRON_GOLEM, 10, 13,(float) (0.7 + (0.1*3)), 3, 0.5D, Material.IRON_INGOT, DisguiseIronGolem.class),
|
||||||
|
HORSE(10, MinionSize.HARD, EntityType.HORSE, 6, 9, (float) (0.7 + (0.1*10)), 3, 0D, Material.APPLE, DisguiseHorse.class),
|
||||||
|
ENDERMAN(10, MinionSize.HARD, EntityType.ENDERMAN, 9, 12, (float) (0.7 + (0.1*4)), 3, 1D, Material.ENDER_STONE, DisguiseEnderman.class),
|
||||||
|
|
||||||
|
WITHER(1, MinionSize.BOSS, EntityType.WITHER, 5, 5, (float) (0.7 + (0.1*2)), 1, 2D, Material.NETHER_STAR, DisguiseWither.class),
|
||||||
|
SLIME(1, MinionSize.BOSS, EntityType.SLIME, 5, 5, (float) (0.7 + (0.1*2)), 1, 3D, Material.SLIME_BALL, DisguiseSlime.class),
|
||||||
|
|
||||||
|
SPIDER_JOKEY(1, MinionSize.FREAK, EntityType.SPIDER, 10, 13, (float) (0.7 + (0.1*7)), 10, 1D, Material.APPLE, DisguiseSpider.class, DisguiseSkeleton.class),
|
||||||
|
CHICKEN_JOKEY(1, MinionSize.FREAK, EntityType.CHICKEN, 10, 13, (float) (0.7 + (0.1*7)), 10, 1D, Material.APPLE, DisguiseChicken.class, DisguiseZombie.class);
|
||||||
|
|
||||||
|
private Class<? extends DisguiseBase>[] _disguiseClasses;
|
||||||
|
|
||||||
|
private EntityType _type;
|
||||||
|
private int _minName;
|
||||||
|
private int _maxName;
|
||||||
|
private float _walkSpeed;
|
||||||
|
private int _money;
|
||||||
|
|
||||||
|
private MinionSize _size;
|
||||||
|
|
||||||
|
private double _tagHight;
|
||||||
|
private Material _displayItem;
|
||||||
|
|
||||||
|
private int _chance;
|
||||||
|
|
||||||
|
private MinionType(int chance, MinionSize size, EntityType type, int minName, int maxName, float walkSpeed, int money, double tagHight, Material displayItem,Class<? extends DisguiseBase>... disguiseClasses)
|
||||||
|
{
|
||||||
|
_disguiseClasses = disguiseClasses;
|
||||||
|
_type = type;
|
||||||
|
_minName = minName;
|
||||||
|
_maxName = maxName;
|
||||||
|
_walkSpeed = walkSpeed;
|
||||||
|
_money = money;
|
||||||
|
_displayItem = displayItem;
|
||||||
|
_tagHight = tagHight;
|
||||||
|
_chance = chance;
|
||||||
|
_size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EntityType getType()
|
||||||
|
{
|
||||||
|
return _type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMinName()
|
||||||
|
{
|
||||||
|
return _minName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMaxName()
|
||||||
|
{
|
||||||
|
return _maxName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getWalkSpeed()
|
||||||
|
{
|
||||||
|
return _walkSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMoney()
|
||||||
|
{
|
||||||
|
return _money;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Material getDisplayItem()
|
||||||
|
{
|
||||||
|
return _displayItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Class<? extends DisguiseBase>[] getDisguiseClasses()
|
||||||
|
{
|
||||||
|
return _disguiseClasses;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getTagHight()
|
||||||
|
{
|
||||||
|
return _tagHight;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getChance()
|
||||||
|
{
|
||||||
|
return _chance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MinionSize getSize()
|
||||||
|
{
|
||||||
|
return _size;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,212 @@
|
|||||||
|
package nautilus.game.arcade.game.games.typewars;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.UtilBlock;
|
||||||
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilParticle;
|
||||||
|
import mineplex.core.common.util.UtilTime;
|
||||||
|
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||||
|
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
|
import mineplex.core.common.util.UtilServer;
|
||||||
|
import mineplex.core.common.util.UtilShapes;
|
||||||
|
import mineplex.core.common.util.UtilTextMiddle;
|
||||||
|
import mineplex.core.recharge.Recharge;
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.game.GameTeam;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public abstract class Spell
|
||||||
|
{
|
||||||
|
|
||||||
|
private ArrayList<Player> _playerUses;
|
||||||
|
|
||||||
|
private ArcadeManager _manager;
|
||||||
|
private TypeWars _typeWars;
|
||||||
|
private String _name;
|
||||||
|
private int _cost;
|
||||||
|
private Material _material;
|
||||||
|
private Long _recharge;
|
||||||
|
private boolean _singleUse;
|
||||||
|
private long _updateDelay;
|
||||||
|
|
||||||
|
private HashMap<GameTeam, Long> _lastUsed;
|
||||||
|
private long _useDelay;
|
||||||
|
|
||||||
|
public Spell(ArcadeManager manager, String name, int cost, Material material, Long recharge, int updateDelay, long useDelay, boolean singleUse)
|
||||||
|
{
|
||||||
|
_manager = manager;
|
||||||
|
_name = name;
|
||||||
|
_cost = cost;
|
||||||
|
_material = material;
|
||||||
|
_recharge = recharge;
|
||||||
|
_singleUse = singleUse;
|
||||||
|
_updateDelay = updateDelay;
|
||||||
|
_playerUses = new ArrayList<>();
|
||||||
|
_lastUsed = new HashMap<>();
|
||||||
|
_updateDelay = useDelay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void prepareExecution(final Player player)
|
||||||
|
{
|
||||||
|
if(isSingleUse())
|
||||||
|
{
|
||||||
|
if(_playerUses.contains(player))
|
||||||
|
{
|
||||||
|
UtilTextMiddle.display("", ChatColor.GRAY + "You can't use this spell anymore.", player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
GameTeam team = getManager().GetGame().GetTeam(player);
|
||||||
|
if(_lastUsed.containsKey(team))
|
||||||
|
{
|
||||||
|
if(!UtilTime.elapsed(_lastUsed.get(team), _useDelay))
|
||||||
|
{
|
||||||
|
UtilTextMiddle.display("", ChatColor.GRAY + "This Spell cant be used at the moment.", player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_lastUsed.put(team, System.currentTimeMillis());
|
||||||
|
|
||||||
|
_typeWars = (TypeWars) _manager.GetGame();
|
||||||
|
if(_typeWars.getMoneyMap().get(player) < getCost())
|
||||||
|
{
|
||||||
|
UtilTextMiddle.display("", ChatColor.GRAY + "You dont have enough Money to use that spell.", player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!Recharge.Instance.usable(player, getName(), true))
|
||||||
|
return;
|
||||||
|
|
||||||
|
UtilTextMiddle.display(ChatColor.GREEN + "-$" + getCost(), ChatColor.GRAY + "You used " + F.game(getName()), player);
|
||||||
|
final Spell spell = this;
|
||||||
|
|
||||||
|
new Thread(new Runnable()
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
Location loc = player.getLastTwoTargetBlocks(UtilBlock.blockAirFoliageSet, 80).get(0).getLocation().add(0.5, 0.5, 0.5);
|
||||||
|
if(trail() != null)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
for (Location location : UtilShapes.getLinesDistancedPoints(player.getEyeLocation().subtract(0, 0.1, 0), loc, 0.6))
|
||||||
|
{
|
||||||
|
if(getManager().GetGame().GetTeam(player).GetColor() == ChatColor.RED)
|
||||||
|
{
|
||||||
|
UtilParticle.PlayParticle(trail(), location, 0, 0, 0, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UtilParticle.PlayParticle(trail(), location, -1, 1, 1, 1, 0, ViewDist.NORMAL, UtilServer.getPlayers());
|
||||||
|
}
|
||||||
|
trailAnimation(location, i);
|
||||||
|
location.getWorld().playSound(location, sound(), 1, 1);
|
||||||
|
i++;
|
||||||
|
if(i > 30)
|
||||||
|
i = 0;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Thread.sleep(_updateDelay);
|
||||||
|
}
|
||||||
|
catch (InterruptedException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(hit() != null)
|
||||||
|
UtilParticle.PlayParticle(hit(), loc, 0, 0, 0, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers());
|
||||||
|
|
||||||
|
if(execute(player, loc))
|
||||||
|
{
|
||||||
|
Recharge.Instance.use(player, getName(), getRecharge(), false, true);
|
||||||
|
int money = ((TypeWars) _manager.GetGame()).getMoneyMap().get(player);
|
||||||
|
((TypeWars) _manager.GetGame()).getMoneyMap().put(player, money - getCost());
|
||||||
|
if(!_playerUses.contains(player))
|
||||||
|
_playerUses.add(player);
|
||||||
|
|
||||||
|
Bukkit.getPluginManager().callEvent(new ActivateSpellEvent(player, spell));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UtilPlayer.message(player, F.main("Game", "Error while using spell."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}).start();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public ParticleType trail()
|
||||||
|
{
|
||||||
|
return ParticleType.RED_DUST;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ParticleType hit()
|
||||||
|
{
|
||||||
|
return ParticleType.EXPLODE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Sound sound()
|
||||||
|
{
|
||||||
|
return Sound.CLICK;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasUsed(Player player)
|
||||||
|
{
|
||||||
|
return _playerUses.contains(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void trailAnimation(Location location, int frame) {}
|
||||||
|
|
||||||
|
public abstract boolean execute(Player player, Location location);
|
||||||
|
|
||||||
|
public ArcadeManager getManager()
|
||||||
|
{
|
||||||
|
return _manager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TypeWars getTypeWars()
|
||||||
|
{
|
||||||
|
return _typeWars;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return _name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCost()
|
||||||
|
{
|
||||||
|
return _cost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Material getMaterial()
|
||||||
|
{
|
||||||
|
return _material;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getRecharge()
|
||||||
|
{
|
||||||
|
return _recharge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSingleUse()
|
||||||
|
{
|
||||||
|
return _singleUse;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user