Merge remote-tracking branch 'origin/master' into monster-maze

This commit is contained in:
fooify 2015-08-06 10:13:54 -07:00
commit 0a9f7cc888
116 changed files with 2247 additions and 449 deletions

View File

@ -18,7 +18,6 @@
<element id="extracted-dir" path="$PROJECT_DIR$/Libraries/gson-2.2.1.jar" path-in-jar="/" />
<element id="module-output" name="Mineplex.Database" />
<element id="extracted-dir" path="$PROJECT_DIR$/Libraries/jooq-3.5.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/Libraries/org-apache-commons-lang.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/Libraries/commons-dbcp2-2.0.1.jar" path-in-jar="/" />
</root>
</artifact>

View File

@ -21,33 +21,15 @@
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
<profile default="false" name="Annotation profile for hub" enabled="true">
<profile default="false" name="Annotation profile for bungee" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<processorPath useClasspath="true" />
<module name="hub" />
</profile>
<profile default="false" name="Annotation profile for gameplay" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<processorPath useClasspath="true" />
<module name="gameplay" />
</profile>
<profile default="false" name="Annotation profile for common" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<processorPath useClasspath="true" />
<module name="common" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel target="1.7">
<module name="common" target="1.7" />
<module name="gameplay" target="1.7" />
<module name="hub" target="1.7" />
<module name="parent" target="1.7" />
<module name="bungee" target="1.7" />
</bytecodeTargetLevel>
</component>
<component name="JavacSettings">

View File

@ -1,9 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
<file url="file://$PROJECT_DIR$/ParkerFactions" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/ParkerFactions/common" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/ParkerFactions/gameplay" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/ParkerFactions/hub" charset="UTF-8" />
</component>
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
</project>

View File

@ -8,10 +8,12 @@
</component>
<component name="IdProvider" IDEtalkID="7E81636CD93857493DFE224533ECF492" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option name="ignoredFiles">
<set>
<option value="$PROJECT_DIR$/ParkerFactions/common/pom.xml" />
<option value="$PROJECT_DIR$/ParkerFactions/gameplay/pom.xml" />
<option value="$PROJECT_DIR$/ParkerFactions/pom.xml" />
</list>
</set>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK">

View File

@ -18,10 +18,6 @@
<module fileurl="file://$PROJECT_DIR$/Mineplex.ServerData/Mineplex.ServerData.iml" filepath="$PROJECT_DIR$/Mineplex.ServerData/Mineplex.ServerData.iml" group="Core" />
<module fileurl="file://$PROJECT_DIR$/Mineplex.ServerMonitor/Mineplex.ServerMonitor.iml" filepath="$PROJECT_DIR$/Mineplex.ServerMonitor/Mineplex.ServerMonitor.iml" group="Core" />
<module fileurl="file://$PROJECT_DIR$/Nautilus.Game.Arcade/Nautilus.Game.Arcade.iml" filepath="$PROJECT_DIR$/Nautilus.Game.Arcade/Nautilus.Game.Arcade.iml" group="Game" />
<module fileurl="file://$PROJECT_DIR$/ParkerFactions/common/common.iml" filepath="$PROJECT_DIR$/ParkerFactions/common/common.iml" />
<module fileurl="file://$PROJECT_DIR$/ParkerFactions/gameplay/gameplay.iml" filepath="$PROJECT_DIR$/ParkerFactions/gameplay/gameplay.iml" />
<module fileurl="file://$PROJECT_DIR$/ParkerFactions/hub/hub.iml" filepath="$PROJECT_DIR$/ParkerFactions/hub/hub.iml" />
<module fileurl="file://$PROJECT_DIR$/ParkerFactions/parent.iml" filepath="$PROJECT_DIR$/ParkerFactions/parent.iml" />
</modules>
</component>
</project>

View File

@ -39,7 +39,7 @@ public class MotdManager implements Listener, Runnable
if (new File("updateMOTD.dat").exists())
{
List<String> lines = new ArrayList<String>();
lines.add(" §b§l◄§f§lNEW§b§l► §f§l◄§b§lSKYWARS§f§l► §b§l◄§f§lNEW§b§l►");
lines.add(" §f§l◄ §6§lNEW §f§l▬ §c§lSSM/SG/SW Teams§f§l ▬ §c§lMPS Update §f§l►");
//lines.add(" §d§lRank Sale §a§l40% Off");
//lines.add(" §f§l◄§c§lMAINTENANCE§f§l►");

View File

@ -51,10 +51,6 @@ public enum Rank
public boolean Has(Player player, Rank rank, Rank[] specific, boolean inform)
{
if (player != null)
if (player.getName().equals("Chiss"))
return true;
//Specific Rank
if (specific != null)
{

View File

@ -1,14 +1,23 @@
package mineplex.core.common.util;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
public class UtilAction
{
private static VelocityReceiver _velocityFix;
public static void registerVelocityFix(VelocityReceiver velocityFix)
{
_velocityFix = velocityFix;
}
public static void velocity(Entity ent, Vector vec)
{
velocity(ent, vec, vec.length(), false, 0, 0, vec.length(), false);
}
public static void velocity(Entity ent, double str, double yAdd, double yMax, boolean groundBoost)
{
velocity(ent, ent.getLocation().getDirection(), str, false, 0, yAdd, yMax, groundBoost);
@ -17,8 +26,11 @@ public class UtilAction
public static void velocity(Entity ent, Vector vec, double str, boolean ySet, double yBase, double yAdd, double yMax, boolean groundBoost)
{
if (Double.isNaN(vec.getX()) || Double.isNaN(vec.getY()) || Double.isNaN(vec.getZ()) || vec.length() == 0)
{
zeroVelocity(ent);
return;
}
//YSet
if (ySet)
vec.setY(yBase);
@ -26,28 +38,43 @@ public class UtilAction
//Modify
vec.normalize();
vec.multiply(str);
//YAdd
vec.setY(vec.getY() + yAdd);
//Limit
if (vec.getY() > yMax)
vec.setY(yMax);
if (groundBoost)
if (UtilEnt.isGrounded(ent))
vec.setY(vec.getY() + 0.2);
//Velocity
ent.setFallDistance(0);
//Debug
if (ent instanceof Player && UtilGear.isMat(((Player)ent).getItemInHand(), Material.SUGAR))
//Store It!
if (ent instanceof Player && _velocityFix != null)
{
Bukkit.broadcastMessage(F.main("Debug", "Velocity Sent: " + vec.length()));
}
_velocityFix.setPlayerVelocity(((Player)ent), vec);
}
ent.setVelocity(vec);
}
public static void zeroVelocity(Entity ent)
{
Vector vec = new Vector(0,0,0);
ent.setFallDistance(0);
//Store It!
if (ent instanceof Player && _velocityFix != null)
{
_velocityFix.setPlayerVelocity(((Player)ent), vec);
}
ent.setVelocity(vec);
}
}

View File

@ -0,0 +1,9 @@
package mineplex.core.common.util;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
public interface VelocityReceiver
{
public void setPlayerVelocity(Player player, Vector velocity);
}

View File

@ -227,7 +227,7 @@ public class CoreClientManager extends MiniPlugin
Bukkit.getServer().getPluginManager().callEvent(new ClientWebResponseEvent(response, uuid));
if (client.getAccountId() > 0)
_accountCacheRepository.addElement(new AccountCache(uuid, client.getAccountId()));
_accountCacheRepository.addElement(new AccountCache(uuid, client.getAccountId()), 60 * 60 * 6);
}
catch (Exception exception)
{
@ -301,7 +301,16 @@ public class CoreClientManager extends MiniPlugin
System.out.println(client.GetPlayerName() + "'s account id = " + client.getAccountId());
if (client.getAccountId() > 0)
_accountCacheRepository.addElement(new AccountCache(uuid, client.getAccountId()));
{
try
{
_accountCacheRepository.addElement(new AccountCache(uuid, client.getAccountId()), 60 * 60 * 6);
}
catch (Exception e)
{
e.printStackTrace();
}
}
return !_clientLoginLock.containsKey(client.GetPlayerName());
}

View File

@ -88,7 +88,7 @@ public enum Achievement
SKYWARS_WINS("Sky King",2000,
new String[]{"Skywars.Wins"},
new String[]{"Win 20 Games of Skywars"},
new int[]{30},
new int[]{20},
AchievementCategory.SKYWARS),
SKYWARS_BOMBER("Master Bomber",500,

View File

@ -170,7 +170,7 @@ public class MorphWither extends MorphGadget
player.setFlying(true);
if (UtilEnt.isGrounded(player))
player.setVelocity(new Vector(0,1,0));
UtilAction.velocity(player, new Vector(0,1,0));
}
}

View File

@ -484,7 +484,7 @@ public class NpcManager extends MiniPlugin
String serverType = getServerName();
try (Connection connection = DBPool.ACCOUNT.getConnection())
{
{
Result<NpcsRecord> result = DSL.using(connection)
.selectFrom(Tables.npcs)
.where(Tables.npcs.server.eq(serverType))

View File

@ -157,7 +157,7 @@ public class PersonalServerManager extends MiniPlugin
}
final ServerGroup serverGroup = new ServerGroup(serverName, serverName, host.getName(), ram, cpu, 1, 0, UtilMath.random.nextInt(250) + 19999, true, "arcade.zip", "Arcade.jar", "plugins/Arcade/", minPlayers, maxPlayers,
true, false, false, games, "Player", true, event, false, true, false, true, true, false, false, false, false, true, true, true, false, false, "", _us ? Region.US : Region.EU);
true, false, false, games, "Player", true, event, false, true, false, true, true, false, false, false, false, true, true, true, false, false, "", _us ? Region.US : Region.EU, "", "", "", "");
getPlugin().getServer().getScheduler().runTaskAsynchronously(getPlugin(), new Runnable()
{

View File

@ -205,16 +205,6 @@ public class PetManager extends MiniClientPlugin<PetClient>
((Villager) pet).setBaby();
((Villager) pet).setAgeLock(true);
}
/*
else if (pet instanceof Sheep)
{
DisguiseWither disguise = new DisguiseWither(pet);
disguise.s(350);
_disguiseManager.disguise(disguise);
UtilEnt.silence(pet, true);
}
*/
_activePetOwners.put(player.getName(), pet);
_failedAttempts.put(player.getName(), 0);

View File

@ -19,11 +19,6 @@ public class PetRepository
_webAddress = webAddress;
}
public List<PetSalesToken> GetPets(List<PetSalesToken> petTokens)
{
return new JsonWebCall(_webAddress + "Pets/GetPets").Execute(new TypeToken<List<PetSalesToken>>(){}.getType(), petTokens);
}
public void AddPet(PetChangeToken token)
{
new AsyncJsonWebCall(_webAddress + "Pets/AddPet").Execute(token);
@ -43,14 +38,4 @@ public class PetRepository
{
new AsyncJsonWebCall(_webAddress + "Pets/UpdatePet").Execute(token);
}
public void AddPetNameTag(String name)
{
new AsyncJsonWebCall(_webAddress + "Pets/AddPetNameTag").Execute(name);
}
public void RemovePetNameTag(String name)
{
new AsyncJsonWebCall(_webAddress + "Pets/RemovePetNameTag").Execute(name);
}
}

View File

@ -6,7 +6,7 @@ public enum RewardType
GameLoot( 0.000001, 0.00001, 0.0001, 3),
OldChest( 0, 0.05, 0.4, 5),
AncientChest( 0, 1, 4, 25),
MythicalChest( 0.5, 3, 12, 75);
MythicalChest( 0.4, 3, 12, 75);
private double _mythicalChance;
private double _legendaryChance;

View File

@ -87,23 +87,10 @@ public abstract class ShopBase<PluginType extends MiniPlugin> implements Listene
private boolean attemptShopOpen(Player player, LivingEntity entity)
{
if (!_openedShop.contains(player.getName()) && entity.isCustomNameVisible() && entity.getCustomName() != null && ChatColor.stripColor(entity.getCustomName()).equalsIgnoreCase(ChatColor.stripColor(_name)))
{
if (!canOpenShop(player))
return false;
_openedShop.add(player.getName());
openShopForPlayer(player);
if (!_playerPageMap.containsKey(player.getName()))
{
_playerPageMap.put(player.getName(), buildPagesFor(player));
}
openPageForPlayer(player, getOpeningPageForPlayer(player));
return true;
}
if (entity.isCustomNameVisible() && entity.getCustomName() != null && ChatColor.stripColor(entity.getCustomName()).equalsIgnoreCase(ChatColor.stripColor(_name)))
{
return attemptShopOpen(player);
}
return false;
}

View File

@ -18,6 +18,7 @@ import org.jooq.impl.DSL;
import mineplex.core.account.ILoginProcessor;
import mineplex.core.database.DBPool;
import mineplex.database.Tables;
import org.jooq.types.ULong;
public class SecondaryStatHandler implements ILoginProcessor
{
@ -58,7 +59,7 @@ public class SecondaryStatHandler implements ILoginProcessor
.insertInto(Tables.accountStat)
.set(Tables.accountStat.accountId, accountId)
.set(Tables.accountStat.statId, statId)
.set(Tables.accountStat.value, Math.max(oldPlayerStats.getStat(statName), 0L));
.set(Tables.accountStat.value, ULong.valueOf(Math.max(oldPlayerStats.getStat(statName), 0L)));
inserts.add(insert);
}
@ -99,13 +100,13 @@ public class SecondaryStatHandler implements ILoginProcessor
.insertInto(Tables.accountStat)
.set(Tables.accountStat.accountId, accountId)
.set(Tables.accountStat.statId, statId)
.set(Tables.accountStat.value, Math.max(oldPlayerStats.getStat(statName), 0L));
.set(Tables.accountStat.value, ULong.valueOf(Math.max(oldPlayerStats.getStat(statName), 0L)));
inserts.add(insert);
Update update = context
.update(Tables.accountStat)
.set(Tables.accountStat.value, Math.max(oldPlayerStats.getStat(statName), 0L))
.set(Tables.accountStat.value, ULong.valueOf(Math.max(oldPlayerStats.getStat(statName), 0L)))
.where(Tables.accountStat.accountId.eq(accountId))
.and(Tables.accountStat.statId.eq(statId));

View File

@ -55,6 +55,9 @@ public class StatsManager extends MiniDbClientPlugin<PlayerStats>
public void incrementStat(final Player player, final String statName, final long value)
{
if (value <= 0)
return;
long newValue = Get(player).addStat(statName, value);
//Event

View File

@ -22,6 +22,7 @@ import org.jooq.Result;
import org.jooq.SQLDialect;
import org.jooq.Update;
import org.jooq.impl.DSL;
import org.jooq.types.ULong;
public class StatsRepository extends RepositoryBase
{
@ -102,7 +103,7 @@ public class StatsRepository extends RepositoryBase
.insertInto(Tables.accountStat)
.set(Tables.accountStat.accountId, accountId)
.set(Tables.accountStat.statId, statId)
.set(Tables.accountStat.value, uploadQueue.get(accountId).get(statId));
.set(Tables.accountStat.value, ULong.valueOf(uploadQueue.get(accountId).get(statId)));
inserts.add(insert);
}
@ -137,7 +138,7 @@ public class StatsRepository extends RepositoryBase
context = DSL.using(getConnectionPool(), SQLDialect.MYSQL);
}
Result<Record2<String, Long>> result = context.select(Tables.stats.name, Tables.accountStat.value).from(Tables.accountStat)
Result<Record2<String, ULong>> result = context.select(Tables.stats.name, Tables.accountStat.value).from(Tables.accountStat)
.join(Tables.stats)
.on(Tables.stats.id.eq(Tables.accountStat.statId))
.where(Tables.accountStat.accountId.eq(DSL.select(Tables.accounts.id)
@ -149,9 +150,9 @@ public class StatsRepository extends RepositoryBase
if (result.isNotEmpty())
{
playerStats = new PlayerStats();
for (Record2<String, Long> record : result)
for (Record2<String, ULong> record : result)
{
playerStats.addStat(record.value1(), record.value2());
playerStats.addStat(record.value1(), record.value2().longValue());
}
}

View File

@ -116,10 +116,8 @@ public class ServerStatusManager extends MiniPlugin
if (event.getType() != UpdateType.FASTER)
return;
if (!_enabled)
return;
saveServerStatus();
if (_enabled)
saveServerStatus();
}
/**
@ -139,19 +137,6 @@ public class ServerStatusManager extends MiniPlugin
if (server != null && !server.getPublicAddress().equalsIgnoreCase(serverSnapshot.getPublicAddress()))
{
timeout = -DEFAULT_SERVER_TIMEOUT;
/*
ProcessRunner pr = new ProcessRunner(new String[] {"/bin/sh", "/home/mineplex/config/killServer.sh", serverSnapshot.getName()});
pr.start(new GenericRunnable<Boolean>()
{
public void run(Boolean error)
{
if (error)
log("Error Killing myself.");
else
log("It worked.");
}
});
*/
}
_repository.updataServerStatus(serverSnapshot, timeout);

View File

@ -20,6 +20,7 @@ import mineplex.core.common.jsonchat.JsonMessage;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilServer;
import mineplex.core.common.util.UtilWorld;
@ -285,7 +286,7 @@ public class Teleport extends MiniPlugin
}
player.setFallDistance(0);
player.setVelocity(new Vector(0,0,0));
UtilAction.zeroVelocity(player);
player.teleport(loc);
}

View File

@ -0,0 +1,78 @@
package mineplex.core.velocity;
import java.util.Iterator;
import mineplex.core.MiniPlugin;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.VelocityReceiver;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerVelocityEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.util.Vector;
public class VelocityFix extends MiniPlugin implements VelocityReceiver
{
/*
* The purpose of this class is to fix a bug inherent in Minecraft,
* where player join order will somehow modify the velocity sent to players.
*
* To fix it, we simply save the velocity that the player should have received,
* then we re-set those values in CB the moment its about to actually apply the velocity to a player.
*
* The problem was caused by the fact that CB does not run a PlayerVelocityEvent the moment we
* set a players velocity, instead it waits until the next tick, and the velocity may have been changed.
*
*/
private NautHashMap<Player, Vector> _velocityData = new NautHashMap<Player,Vector>();
public VelocityFix(JavaPlugin plugin)
{
super("Velocity Fix", plugin);
UtilAction.registerVelocityFix(this);
}
@Override
public void setPlayerVelocity(Player player, Vector velocity)
{
_velocityData.put(player, velocity);
}
@EventHandler(priority = EventPriority.LOWEST)
public void fixVelocity(PlayerVelocityEvent event)
{
if (_velocityData.containsKey(event.getPlayer()))
event.getPlayer().setVelocity(_velocityData.remove(event.getPlayer()));
}
@EventHandler
public void cleanVelocity(PlayerQuitEvent event)
{
_velocityData.remove(event.getPlayer());
}
@EventHandler
public void cleanVelocity(UpdateEvent event)
{
if (event.getType() != UpdateType.SLOW)
return;
Iterator<Player> keyIter = _velocityData.keySet().iterator();
while (keyIter.hasNext())
{
Player player = keyIter.next();
if (player.isOnline())
keyIter.remove();
}
}
}

View File

@ -16,7 +16,7 @@ package mineplex.database;
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Account extends org.jooq.impl.SchemaImpl implements java.io.Serializable, java.lang.Cloneable {
private static final long serialVersionUID = 625106486;
private static final long serialVersionUID = 2034846771;
/**
* The reference instance of <code>Account</code>
@ -54,6 +54,7 @@ public class Account extends org.jooq.impl.SchemaImpl implements java.io.Seriali
mineplex.database.tables.AccountTransactions.accountTransactions,
mineplex.database.tables.ActiveTournaments.activeTournaments,
mineplex.database.tables.Bonus.bonus,
mineplex.database.tables.Chatsnap.chatsnap,
mineplex.database.tables.ClanAlliances.clanAlliances,
mineplex.database.tables.ClanEnemies.clanEnemies,
mineplex.database.tables.ClanMember.clanMember,

View File

@ -34,6 +34,7 @@ public class Keys {
public static final org.jooq.Identity<mineplex.database.tables.records.AccountTasksRecord, java.lang.Integer> IDENTITY_accountTasks = Identities0.IDENTITY_accountTasks;
public static final org.jooq.Identity<mineplex.database.tables.records.AccountTransactionsRecord, java.lang.Integer> IDENTITY_accountTransactions = Identities0.IDENTITY_accountTransactions;
public static final org.jooq.Identity<mineplex.database.tables.records.BonusRecord, java.lang.Integer> IDENTITY_bonus = Identities0.IDENTITY_bonus;
public static final org.jooq.Identity<mineplex.database.tables.records.ChatsnapRecord, java.lang.Integer> IDENTITY_chatsnap = Identities0.IDENTITY_chatsnap;
public static final org.jooq.Identity<mineplex.database.tables.records.ClanAlliancesRecord, java.lang.Integer> IDENTITY_clanAlliances = Identities0.IDENTITY_clanAlliances;
public static final org.jooq.Identity<mineplex.database.tables.records.ClanEnemiesRecord, java.lang.Integer> IDENTITY_clanEnemies = Identities0.IDENTITY_clanEnemies;
public static final org.jooq.Identity<mineplex.database.tables.records.ClansRecord, java.lang.Integer> IDENTITY_clans = Identities0.IDENTITY_clans;
@ -83,6 +84,7 @@ public class Keys {
public static final org.jooq.UniqueKey<mineplex.database.tables.records.AccountTransactionsRecord> KEY_accountTransactions_PRIMARY = UniqueKeys0.KEY_accountTransactions_PRIMARY;
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ActiveTournamentsRecord> KEY_activeTournaments_PRIMARY = UniqueKeys0.KEY_activeTournaments_PRIMARY;
public static final org.jooq.UniqueKey<mineplex.database.tables.records.BonusRecord> KEY_bonus_PRIMARY = UniqueKeys0.KEY_bonus_PRIMARY;
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ChatsnapRecord> KEY_chatsnap_PRIMARY = UniqueKeys0.KEY_chatsnap_PRIMARY;
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ClanAlliancesRecord> KEY_clanAlliances_PRIMARY = UniqueKeys0.KEY_clanAlliances_PRIMARY;
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ClanEnemiesRecord> KEY_clanEnemies_PRIMARY = UniqueKeys0.KEY_clanEnemies_PRIMARY;
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ClanEnemiesRecord> KEY_clanEnemies_unique_clanId = UniqueKeys0.KEY_clanEnemies_unique_clanId;
@ -175,6 +177,7 @@ public class Keys {
public static org.jooq.Identity<mineplex.database.tables.records.AccountTasksRecord, java.lang.Integer> IDENTITY_accountTasks = createIdentity(mineplex.database.tables.AccountTasks.accountTasks, mineplex.database.tables.AccountTasks.accountTasks.id);
public static org.jooq.Identity<mineplex.database.tables.records.AccountTransactionsRecord, java.lang.Integer> IDENTITY_accountTransactions = createIdentity(mineplex.database.tables.AccountTransactions.accountTransactions, mineplex.database.tables.AccountTransactions.accountTransactions.id);
public static org.jooq.Identity<mineplex.database.tables.records.BonusRecord, java.lang.Integer> IDENTITY_bonus = createIdentity(mineplex.database.tables.Bonus.bonus, mineplex.database.tables.Bonus.bonus.accountId);
public static org.jooq.Identity<mineplex.database.tables.records.ChatsnapRecord, java.lang.Integer> IDENTITY_chatsnap = createIdentity(mineplex.database.tables.Chatsnap.chatsnap, mineplex.database.tables.Chatsnap.chatsnap.id);
public static org.jooq.Identity<mineplex.database.tables.records.ClanAlliancesRecord, java.lang.Integer> IDENTITY_clanAlliances = createIdentity(mineplex.database.tables.ClanAlliances.clanAlliances, mineplex.database.tables.ClanAlliances.clanAlliances.id);
public static org.jooq.Identity<mineplex.database.tables.records.ClanEnemiesRecord, java.lang.Integer> IDENTITY_clanEnemies = createIdentity(mineplex.database.tables.ClanEnemies.clanEnemies, mineplex.database.tables.ClanEnemies.clanEnemies.id);
public static org.jooq.Identity<mineplex.database.tables.records.ClansRecord, java.lang.Integer> IDENTITY_clans = createIdentity(mineplex.database.tables.Clans.clans, mineplex.database.tables.Clans.clans.id);
@ -222,6 +225,7 @@ public class Keys {
public static final org.jooq.UniqueKey<mineplex.database.tables.records.AccountTransactionsRecord> KEY_accountTransactions_PRIMARY = createUniqueKey(mineplex.database.tables.AccountTransactions.accountTransactions, mineplex.database.tables.AccountTransactions.accountTransactions.id);
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ActiveTournamentsRecord> KEY_activeTournaments_PRIMARY = createUniqueKey(mineplex.database.tables.ActiveTournaments.activeTournaments, mineplex.database.tables.ActiveTournaments.activeTournaments.name);
public static final org.jooq.UniqueKey<mineplex.database.tables.records.BonusRecord> KEY_bonus_PRIMARY = createUniqueKey(mineplex.database.tables.Bonus.bonus, mineplex.database.tables.Bonus.bonus.accountId);
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ChatsnapRecord> KEY_chatsnap_PRIMARY = createUniqueKey(mineplex.database.tables.Chatsnap.chatsnap, mineplex.database.tables.Chatsnap.chatsnap.id);
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ClanAlliancesRecord> KEY_clanAlliances_PRIMARY = createUniqueKey(mineplex.database.tables.ClanAlliances.clanAlliances, mineplex.database.tables.ClanAlliances.clanAlliances.id);
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ClanEnemiesRecord> KEY_clanEnemies_PRIMARY = createUniqueKey(mineplex.database.tables.ClanEnemies.clanEnemies, mineplex.database.tables.ClanEnemies.clanEnemies.id);
public static final org.jooq.UniqueKey<mineplex.database.tables.records.ClanEnemiesRecord> KEY_clanEnemies_unique_clanId = createUniqueKey(mineplex.database.tables.ClanEnemies.clanEnemies, mineplex.database.tables.ClanEnemies.clanEnemies.clanId);

View File

@ -54,6 +54,19 @@ public class Routines {
return p;
}
/**
* Call <code>Account.check_vote</code>
*/
public static mineplex.database.routines.Check_vote callCheckVote(org.jooq.Configuration configuration, java.lang.Integer accountId_in, java.lang.Integer coinsChange, java.lang.Integer gemsChange) {
mineplex.database.routines.Check_vote p = new mineplex.database.routines.Check_vote();
p.setAccountId_in(accountId_in);
p.setCoinsChange(coinsChange);
p.setGemsChange(gemsChange);
p.execute(configuration);
return p;
}
/**
* Call <code>Account.createLeaderboard</code>
*/

View File

@ -91,6 +91,11 @@ public class Tables {
*/
public static final mineplex.database.tables.Bonus bonus = mineplex.database.tables.Bonus.bonus;
/**
* The table Account.chatsnap
*/
public static final mineplex.database.tables.Chatsnap chatsnap = mineplex.database.tables.Chatsnap.chatsnap;
/**
* The table Account.clanAlliances
*/

View File

@ -0,0 +1,93 @@
/**
* This class is generated by jOOQ
*/
package mineplex.database.routines;
/**
* This class is generated by jOOQ.
*/
@javax.annotation.Generated(
value = {
"http://www.jooq.org",
"jOOQ version:3.5.2"
},
comments = "This class is generated by jOOQ"
)
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Check_vote extends org.jooq.impl.AbstractRoutine<java.lang.Void> implements java.io.Serializable, java.lang.Cloneable {
private static final long serialVersionUID = 2035299030;
/**
* The parameter <code>Account.check_vote.accountId_in</code>.
*/
public static final org.jooq.Parameter<java.lang.Integer> accountId_in = createParameter("accountId_in", org.jooq.impl.SQLDataType.INTEGER, false);
/**
* The parameter <code>Account.check_vote.coinsChange</code>.
*/
public static final org.jooq.Parameter<java.lang.Integer> coinsChange = createParameter("coinsChange", org.jooq.impl.SQLDataType.INTEGER, false);
/**
* The parameter <code>Account.check_vote.gemsChange</code>.
*/
public static final org.jooq.Parameter<java.lang.Integer> gemsChange = createParameter("gemsChange", org.jooq.impl.SQLDataType.INTEGER, false);
/**
* The parameter <code>Account.check_vote.pass</code>.
*/
public static final org.jooq.Parameter<java.lang.Byte> pass = createParameter("pass", org.jooq.impl.SQLDataType.TINYINT, false);
/**
* The parameter <code>Account.check_vote.outTime</code>.
*/
public static final org.jooq.Parameter<java.sql.Date> outTime = createParameter("outTime", org.jooq.impl.SQLDataType.DATE, false);
/**
* Create a new routine call instance
*/
public Check_vote() {
super("check_vote", mineplex.database.Account.Account);
addInParameter(accountId_in);
addInParameter(coinsChange);
addInParameter(gemsChange);
addOutParameter(pass);
addOutParameter(outTime);
}
/**
* Set the <code>accountId_in</code> parameter IN value to the routine
*/
public void setAccountId_in(java.lang.Integer value) {
setValue(mineplex.database.routines.Check_vote.accountId_in, value);
}
/**
* Set the <code>coinsChange</code> parameter IN value to the routine
*/
public void setCoinsChange(java.lang.Integer value) {
setValue(mineplex.database.routines.Check_vote.coinsChange, value);
}
/**
* Set the <code>gemsChange</code> parameter IN value to the routine
*/
public void setGemsChange(java.lang.Integer value) {
setValue(mineplex.database.routines.Check_vote.gemsChange, value);
}
/**
* Get the <code>pass</code> parameter OUT value from the routine
*/
public java.lang.Byte getPass() {
return getValue(pass);
}
/**
* Get the <code>outTime</code> parameter OUT value from the routine
*/
public java.sql.Date getOutTime() {
return getValue(outTime);
}
}

View File

@ -16,7 +16,7 @@ package mineplex.database.tables;
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class AccountStat extends org.jooq.impl.TableImpl<mineplex.database.tables.records.AccountStatRecord> implements java.io.Serializable, java.lang.Cloneable {
private static final long serialVersionUID = 956897097;
private static final long serialVersionUID = 34581219;
/**
* The reference instance of <code>Account.accountStat</code>
@ -44,7 +44,7 @@ public class AccountStat extends org.jooq.impl.TableImpl<mineplex.database.table
/**
* The column <code>Account.accountStat.value</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.AccountStatRecord, java.lang.Long> value = createField("value", org.jooq.impl.SQLDataType.BIGINT.defaulted(true), this, "");
public final org.jooq.TableField<mineplex.database.tables.records.AccountStatRecord, org.jooq.types.ULong> value = createField("value", org.jooq.impl.SQLDataType.BIGINTUNSIGNED.defaulted(true), this, "");
/**
* Create a <code>Account.accountStat</code> table reference

View File

@ -16,7 +16,7 @@ package mineplex.database.tables;
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Bonus extends org.jooq.impl.TableImpl<mineplex.database.tables.records.BonusRecord> implements java.io.Serializable, java.lang.Cloneable {
private static final long serialVersionUID = -70389593;
private static final long serialVersionUID = -524321170;
/**
* The reference instance of <code>Account.bonus</code>
@ -46,6 +46,36 @@ public class Bonus extends org.jooq.impl.TableImpl<mineplex.database.tables.reco
*/
public final org.jooq.TableField<mineplex.database.tables.records.BonusRecord, java.sql.Date> ranktime = createField("ranktime", org.jooq.impl.SQLDataType.DATE, this, "");
/**
* The column <code>Account.bonus.votetime</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.BonusRecord, java.sql.Date> votetime = createField("votetime", org.jooq.impl.SQLDataType.DATE, this, "");
/**
* The column <code>Account.bonus.dailyStreak</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.BonusRecord, java.lang.Integer> dailyStreak = createField("dailyStreak", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
* The column <code>Account.bonus.maxDailyStreak</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.BonusRecord, java.lang.Integer> maxDailyStreak = createField("maxDailyStreak", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
* The column <code>Account.bonus.voteStreak</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.BonusRecord, java.lang.Integer> voteStreak = createField("voteStreak", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
* The column <code>Account.bonus.maxVoteStreak</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.BonusRecord, java.lang.Integer> maxVoteStreak = createField("maxVoteStreak", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
* The column <code>Account.bonus.tickets</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.BonusRecord, java.lang.Integer> tickets = createField("tickets", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
* Create a <code>Account.bonus</code> table reference
*/

View File

@ -0,0 +1,129 @@
/**
* This class is generated by jOOQ
*/
package mineplex.database.tables;
/**
* This class is generated by jOOQ.
*/
@javax.annotation.Generated(
value = {
"http://www.jooq.org",
"jOOQ version:3.5.2"
},
comments = "This class is generated by jOOQ"
)
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Chatsnap extends org.jooq.impl.TableImpl<mineplex.database.tables.records.ChatsnapRecord> implements java.io.Serializable, java.lang.Cloneable {
private static final long serialVersionUID = -176946707;
/**
* The reference instance of <code>Account.chatsnap</code>
*/
public static final mineplex.database.tables.Chatsnap chatsnap = new mineplex.database.tables.Chatsnap();
/**
* The class holding records for this type
*/
@Override
public java.lang.Class<mineplex.database.tables.records.ChatsnapRecord> getRecordType() {
return mineplex.database.tables.records.ChatsnapRecord.class;
}
/**
* The column <code>Account.chatsnap.id</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.ChatsnapRecord, java.lang.Integer> id = createField("id", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
* The column <code>Account.chatsnap.reporterId</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.ChatsnapRecord, java.lang.Integer> reporterId = createField("reporterId", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
* The column <code>Account.chatsnap.reporteeId</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.ChatsnapRecord, java.lang.Integer> reporteeId = createField("reporteeId", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
* The column <code>Account.chatsnap.time</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.ChatsnapRecord, java.sql.Timestamp> time = createField("time", org.jooq.impl.SQLDataType.TIMESTAMP.nullable(false).defaulted(true), this, "");
/**
* The column <code>Account.chatsnap.status</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.ChatsnapRecord, java.lang.String> status = createField("status", org.jooq.impl.SQLDataType.VARCHAR.length(10).nullable(false).defaulted(true), this, "");
/**
* The column <code>Account.chatsnap.reason</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.ChatsnapRecord, java.lang.String> reason = createField("reason", org.jooq.impl.SQLDataType.CLOB.length(65535).nullable(false), this, "");
/**
* The column <code>Account.chatsnap.data</code>.
*/
public final org.jooq.TableField<mineplex.database.tables.records.ChatsnapRecord, java.lang.String> data = createField("data", org.jooq.impl.SQLDataType.CLOB.length(16777215).nullable(false), this, "");
/**
* Create a <code>Account.chatsnap</code> table reference
*/
public Chatsnap() {
this("chatsnap", null);
}
/**
* Create an aliased <code>Account.chatsnap</code> table reference
*/
public Chatsnap(java.lang.String alias) {
this(alias, mineplex.database.tables.Chatsnap.chatsnap);
}
private Chatsnap(java.lang.String alias, org.jooq.Table<mineplex.database.tables.records.ChatsnapRecord> aliased) {
this(alias, aliased, null);
}
private Chatsnap(java.lang.String alias, org.jooq.Table<mineplex.database.tables.records.ChatsnapRecord> aliased, org.jooq.Field<?>[] parameters) {
super(alias, mineplex.database.Account.Account, aliased, parameters, "");
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Identity<mineplex.database.tables.records.ChatsnapRecord, java.lang.Integer> getIdentity() {
return mineplex.database.Keys.IDENTITY_chatsnap;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.UniqueKey<mineplex.database.tables.records.ChatsnapRecord> getPrimaryKey() {
return mineplex.database.Keys.KEY_chatsnap_PRIMARY;
}
/**
* {@inheritDoc}
*/
@Override
public java.util.List<org.jooq.UniqueKey<mineplex.database.tables.records.ChatsnapRecord>> getKeys() {
return java.util.Arrays.<org.jooq.UniqueKey<mineplex.database.tables.records.ChatsnapRecord>>asList(mineplex.database.Keys.KEY_chatsnap_PRIMARY);
}
/**
* {@inheritDoc}
*/
@Override
public mineplex.database.tables.Chatsnap as(java.lang.String alias) {
return new mineplex.database.tables.Chatsnap(alias, this);
}
/**
* Rename this table
*/
public mineplex.database.tables.Chatsnap rename(java.lang.String name) {
return new mineplex.database.tables.Chatsnap(name, null);
}
}

View File

@ -14,9 +14,9 @@ package mineplex.database.tables.records;
comments = "This class is generated by jOOQ"
)
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.database.tables.records.AccountStatRecord> implements java.io.Serializable, java.lang.Cloneable, org.jooq.Record3<java.lang.Integer, java.lang.Integer, java.lang.Long> {
public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.database.tables.records.AccountStatRecord> implements java.io.Serializable, java.lang.Cloneable, org.jooq.Record3<java.lang.Integer, java.lang.Integer, org.jooq.types.ULong> {
private static final long serialVersionUID = 1109290129;
private static final long serialVersionUID = -516667486;
/**
* Setter for <code>Account.accountStat.accountId</code>.
@ -49,15 +49,15 @@ public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineple
/**
* Setter for <code>Account.accountStat.value</code>.
*/
public void setValue(java.lang.Long value) {
public void setValue(org.jooq.types.ULong value) {
setValue(2, value);
}
/**
* Getter for <code>Account.accountStat.value</code>.
*/
public java.lang.Long getValue() {
return (java.lang.Long) getValue(2);
public org.jooq.types.ULong getValue() {
return (org.jooq.types.ULong) getValue(2);
}
// -------------------------------------------------------------------------
@ -80,7 +80,7 @@ public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineple
* {@inheritDoc}
*/
@Override
public org.jooq.Row3<java.lang.Integer, java.lang.Integer, java.lang.Long> fieldsRow() {
public org.jooq.Row3<java.lang.Integer, java.lang.Integer, org.jooq.types.ULong> fieldsRow() {
return (org.jooq.Row3) super.fieldsRow();
}
@ -88,7 +88,7 @@ public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineple
* {@inheritDoc}
*/
@Override
public org.jooq.Row3<java.lang.Integer, java.lang.Integer, java.lang.Long> valuesRow() {
public org.jooq.Row3<java.lang.Integer, java.lang.Integer, org.jooq.types.ULong> valuesRow() {
return (org.jooq.Row3) super.valuesRow();
}
@ -112,7 +112,7 @@ public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineple
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Long> field3() {
public org.jooq.Field<org.jooq.types.ULong> field3() {
return mineplex.database.tables.AccountStat.accountStat.value;
}
@ -136,7 +136,7 @@ public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineple
* {@inheritDoc}
*/
@Override
public java.lang.Long value3() {
public org.jooq.types.ULong value3() {
return getValue();
}
@ -162,7 +162,7 @@ public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineple
* {@inheritDoc}
*/
@Override
public AccountStatRecord value3(java.lang.Long value) {
public AccountStatRecord value3(org.jooq.types.ULong value) {
setValue(value);
return this;
}
@ -171,7 +171,7 @@ public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineple
* {@inheritDoc}
*/
@Override
public AccountStatRecord values(java.lang.Integer value1, java.lang.Integer value2, java.lang.Long value3) {
public AccountStatRecord values(java.lang.Integer value1, java.lang.Integer value2, org.jooq.types.ULong value3) {
return this;
}
@ -189,7 +189,7 @@ public class AccountStatRecord extends org.jooq.impl.UpdatableRecordImpl<mineple
/**
* Create a detached, initialised AccountStatRecord
*/
public AccountStatRecord(java.lang.Integer accountId, java.lang.Integer statId, java.lang.Long value) {
public AccountStatRecord(java.lang.Integer accountId, java.lang.Integer statId, org.jooq.types.ULong value) {
super(mineplex.database.tables.AccountStat.accountStat);
setValue(0, accountId);

View File

@ -14,9 +14,9 @@ package mineplex.database.tables.records;
comments = "This class is generated by jOOQ"
)
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class BonusRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.database.tables.records.BonusRecord> implements java.io.Serializable, java.lang.Cloneable, org.jooq.Record3<java.lang.Integer, java.sql.Timestamp, java.sql.Date> {
public class BonusRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.database.tables.records.BonusRecord> implements java.io.Serializable, java.lang.Cloneable, org.jooq.Record9<java.lang.Integer, java.sql.Timestamp, java.sql.Date, java.sql.Date, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer> {
private static final long serialVersionUID = -64019858;
private static final long serialVersionUID = -785434679;
/**
* Setter for <code>Account.bonus.accountId</code>.
@ -60,6 +60,90 @@ public class BonusRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.data
return (java.sql.Date) getValue(2);
}
/**
* Setter for <code>Account.bonus.votetime</code>.
*/
public void setVotetime(java.sql.Date value) {
setValue(3, value);
}
/**
* Getter for <code>Account.bonus.votetime</code>.
*/
public java.sql.Date getVotetime() {
return (java.sql.Date) getValue(3);
}
/**
* Setter for <code>Account.bonus.dailyStreak</code>.
*/
public void setDailyStreak(java.lang.Integer value) {
setValue(4, value);
}
/**
* Getter for <code>Account.bonus.dailyStreak</code>.
*/
public java.lang.Integer getDailyStreak() {
return (java.lang.Integer) getValue(4);
}
/**
* Setter for <code>Account.bonus.maxDailyStreak</code>.
*/
public void setMaxDailyStreak(java.lang.Integer value) {
setValue(5, value);
}
/**
* Getter for <code>Account.bonus.maxDailyStreak</code>.
*/
public java.lang.Integer getMaxDailyStreak() {
return (java.lang.Integer) getValue(5);
}
/**
* Setter for <code>Account.bonus.voteStreak</code>.
*/
public void setVoteStreak(java.lang.Integer value) {
setValue(6, value);
}
/**
* Getter for <code>Account.bonus.voteStreak</code>.
*/
public java.lang.Integer getVoteStreak() {
return (java.lang.Integer) getValue(6);
}
/**
* Setter for <code>Account.bonus.maxVoteStreak</code>.
*/
public void setMaxVoteStreak(java.lang.Integer value) {
setValue(7, value);
}
/**
* Getter for <code>Account.bonus.maxVoteStreak</code>.
*/
public java.lang.Integer getMaxVoteStreak() {
return (java.lang.Integer) getValue(7);
}
/**
* Setter for <code>Account.bonus.tickets</code>.
*/
public void setTickets(java.lang.Integer value) {
setValue(8, value);
}
/**
* Getter for <code>Account.bonus.tickets</code>.
*/
public java.lang.Integer getTickets() {
return (java.lang.Integer) getValue(8);
}
// -------------------------------------------------------------------------
// Primary key information
// -------------------------------------------------------------------------
@ -73,23 +157,23 @@ public class BonusRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.data
}
// -------------------------------------------------------------------------
// Record3 type implementation
// Record9 type implementation
// -------------------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Row3<java.lang.Integer, java.sql.Timestamp, java.sql.Date> fieldsRow() {
return (org.jooq.Row3) super.fieldsRow();
public org.jooq.Row9<java.lang.Integer, java.sql.Timestamp, java.sql.Date, java.sql.Date, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer> fieldsRow() {
return (org.jooq.Row9) super.fieldsRow();
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Row3<java.lang.Integer, java.sql.Timestamp, java.sql.Date> valuesRow() {
return (org.jooq.Row3) super.valuesRow();
public org.jooq.Row9<java.lang.Integer, java.sql.Timestamp, java.sql.Date, java.sql.Date, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer> valuesRow() {
return (org.jooq.Row9) super.valuesRow();
}
/**
@ -116,6 +200,54 @@ public class BonusRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.data
return mineplex.database.tables.Bonus.bonus.ranktime;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.sql.Date> field4() {
return mineplex.database.tables.Bonus.bonus.votetime;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Integer> field5() {
return mineplex.database.tables.Bonus.bonus.dailyStreak;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Integer> field6() {
return mineplex.database.tables.Bonus.bonus.maxDailyStreak;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Integer> field7() {
return mineplex.database.tables.Bonus.bonus.voteStreak;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Integer> field8() {
return mineplex.database.tables.Bonus.bonus.maxVoteStreak;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Integer> field9() {
return mineplex.database.tables.Bonus.bonus.tickets;
}
/**
* {@inheritDoc}
*/
@ -140,6 +272,54 @@ public class BonusRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.data
return getRanktime();
}
/**
* {@inheritDoc}
*/
@Override
public java.sql.Date value4() {
return getVotetime();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.Integer value5() {
return getDailyStreak();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.Integer value6() {
return getMaxDailyStreak();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.Integer value7() {
return getVoteStreak();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.Integer value8() {
return getMaxVoteStreak();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.Integer value9() {
return getTickets();
}
/**
* {@inheritDoc}
*/
@ -171,7 +351,61 @@ public class BonusRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.data
* {@inheritDoc}
*/
@Override
public BonusRecord values(java.lang.Integer value1, java.sql.Timestamp value2, java.sql.Date value3) {
public BonusRecord value4(java.sql.Date value) {
setVotetime(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public BonusRecord value5(java.lang.Integer value) {
setDailyStreak(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public BonusRecord value6(java.lang.Integer value) {
setMaxDailyStreak(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public BonusRecord value7(java.lang.Integer value) {
setVoteStreak(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public BonusRecord value8(java.lang.Integer value) {
setMaxVoteStreak(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public BonusRecord value9(java.lang.Integer value) {
setTickets(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public BonusRecord values(java.lang.Integer value1, java.sql.Timestamp value2, java.sql.Date value3, java.sql.Date value4, java.lang.Integer value5, java.lang.Integer value6, java.lang.Integer value7, java.lang.Integer value8, java.lang.Integer value9) {
return this;
}
@ -189,11 +423,17 @@ public class BonusRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.data
/**
* Create a detached, initialised BonusRecord
*/
public BonusRecord(java.lang.Integer accountId, java.sql.Timestamp dailytime, java.sql.Date ranktime) {
public BonusRecord(java.lang.Integer accountId, java.sql.Timestamp dailytime, java.sql.Date ranktime, java.sql.Date votetime, java.lang.Integer dailyStreak, java.lang.Integer maxDailyStreak, java.lang.Integer voteStreak, java.lang.Integer maxVoteStreak, java.lang.Integer tickets) {
super(mineplex.database.tables.Bonus.bonus);
setValue(0, accountId);
setValue(1, dailytime);
setValue(2, ranktime);
setValue(3, votetime);
setValue(4, dailyStreak);
setValue(5, maxDailyStreak);
setValue(6, voteStreak);
setValue(7, maxVoteStreak);
setValue(8, tickets);
}
}

View File

@ -0,0 +1,359 @@
/**
* This class is generated by jOOQ
*/
package mineplex.database.tables.records;
/**
* This class is generated by jOOQ.
*/
@javax.annotation.Generated(
value = {
"http://www.jooq.org",
"jOOQ version:3.5.2"
},
comments = "This class is generated by jOOQ"
)
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class ChatsnapRecord extends org.jooq.impl.UpdatableRecordImpl<mineplex.database.tables.records.ChatsnapRecord> implements java.io.Serializable, java.lang.Cloneable, org.jooq.Record7<java.lang.Integer, java.lang.Integer, java.lang.Integer, java.sql.Timestamp, java.lang.String, java.lang.String, java.lang.String> {
private static final long serialVersionUID = 2087133341;
/**
* Setter for <code>Account.chatsnap.id</code>.
*/
public void setId(java.lang.Integer value) {
setValue(0, value);
}
/**
* Getter for <code>Account.chatsnap.id</code>.
*/
public java.lang.Integer getId() {
return (java.lang.Integer) getValue(0);
}
/**
* Setter for <code>Account.chatsnap.reporterId</code>.
*/
public void setReporterId(java.lang.Integer value) {
setValue(1, value);
}
/**
* Getter for <code>Account.chatsnap.reporterId</code>.
*/
public java.lang.Integer getReporterId() {
return (java.lang.Integer) getValue(1);
}
/**
* Setter for <code>Account.chatsnap.reporteeId</code>.
*/
public void setReporteeId(java.lang.Integer value) {
setValue(2, value);
}
/**
* Getter for <code>Account.chatsnap.reporteeId</code>.
*/
public java.lang.Integer getReporteeId() {
return (java.lang.Integer) getValue(2);
}
/**
* Setter for <code>Account.chatsnap.time</code>.
*/
public void setTime(java.sql.Timestamp value) {
setValue(3, value);
}
/**
* Getter for <code>Account.chatsnap.time</code>.
*/
public java.sql.Timestamp getTime() {
return (java.sql.Timestamp) getValue(3);
}
/**
* Setter for <code>Account.chatsnap.status</code>.
*/
public void setStatus(java.lang.String value) {
setValue(4, value);
}
/**
* Getter for <code>Account.chatsnap.status</code>.
*/
public java.lang.String getStatus() {
return (java.lang.String) getValue(4);
}
/**
* Setter for <code>Account.chatsnap.reason</code>.
*/
public void setReason(java.lang.String value) {
setValue(5, value);
}
/**
* Getter for <code>Account.chatsnap.reason</code>.
*/
public java.lang.String getReason() {
return (java.lang.String) getValue(5);
}
/**
* Setter for <code>Account.chatsnap.data</code>.
*/
public void setData(java.lang.String value) {
setValue(6, value);
}
/**
* Getter for <code>Account.chatsnap.data</code>.
*/
public java.lang.String getData() {
return (java.lang.String) getValue(6);
}
// -------------------------------------------------------------------------
// Primary key information
// -------------------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Record1<java.lang.Integer> key() {
return (org.jooq.Record1) super.key();
}
// -------------------------------------------------------------------------
// Record7 type implementation
// -------------------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Row7<java.lang.Integer, java.lang.Integer, java.lang.Integer, java.sql.Timestamp, java.lang.String, java.lang.String, java.lang.String> fieldsRow() {
return (org.jooq.Row7) super.fieldsRow();
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Row7<java.lang.Integer, java.lang.Integer, java.lang.Integer, java.sql.Timestamp, java.lang.String, java.lang.String, java.lang.String> valuesRow() {
return (org.jooq.Row7) super.valuesRow();
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Integer> field1() {
return mineplex.database.tables.Chatsnap.chatsnap.id;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Integer> field2() {
return mineplex.database.tables.Chatsnap.chatsnap.reporterId;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Integer> field3() {
return mineplex.database.tables.Chatsnap.chatsnap.reporteeId;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.sql.Timestamp> field4() {
return mineplex.database.tables.Chatsnap.chatsnap.time;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.String> field5() {
return mineplex.database.tables.Chatsnap.chatsnap.status;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.String> field6() {
return mineplex.database.tables.Chatsnap.chatsnap.reason;
}
/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.String> field7() {
return mineplex.database.tables.Chatsnap.chatsnap.data;
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.Integer value1() {
return getId();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.Integer value2() {
return getReporterId();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.Integer value3() {
return getReporteeId();
}
/**
* {@inheritDoc}
*/
@Override
public java.sql.Timestamp value4() {
return getTime();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.String value5() {
return getStatus();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.String value6() {
return getReason();
}
/**
* {@inheritDoc}
*/
@Override
public java.lang.String value7() {
return getData();
}
/**
* {@inheritDoc}
*/
@Override
public ChatsnapRecord value1(java.lang.Integer value) {
setId(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public ChatsnapRecord value2(java.lang.Integer value) {
setReporterId(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public ChatsnapRecord value3(java.lang.Integer value) {
setReporteeId(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public ChatsnapRecord value4(java.sql.Timestamp value) {
setTime(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public ChatsnapRecord value5(java.lang.String value) {
setStatus(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public ChatsnapRecord value6(java.lang.String value) {
setReason(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public ChatsnapRecord value7(java.lang.String value) {
setData(value);
return this;
}
/**
* {@inheritDoc}
*/
@Override
public ChatsnapRecord values(java.lang.Integer value1, java.lang.Integer value2, java.lang.Integer value3, java.sql.Timestamp value4, java.lang.String value5, java.lang.String value6, java.lang.String value7) {
return this;
}
// -------------------------------------------------------------------------
// Constructors
// -------------------------------------------------------------------------
/**
* Create a detached ChatsnapRecord
*/
public ChatsnapRecord() {
super(mineplex.database.tables.Chatsnap.chatsnap);
}
/**
* Create a detached, initialised ChatsnapRecord
*/
public ChatsnapRecord(java.lang.Integer id, java.lang.Integer reporterId, java.lang.Integer reporteeId, java.sql.Timestamp time, java.lang.String status, java.lang.String reason, java.lang.String data) {
super(mineplex.database.tables.Chatsnap.chatsnap);
setValue(0, id);
setValue(1, reporterId);
setValue(2, reporteeId);
setValue(3, time);
setValue(4, status);
setValue(5, reason);
setValue(6, data);
}
}

View File

@ -46,6 +46,7 @@ import mineplex.core.task.TaskManager;
import mineplex.core.teleport.Teleport;
import mineplex.core.updater.FileUpdater;
import mineplex.core.updater.Updater;
import mineplex.core.velocity.VelocityFix;
import mineplex.core.visibility.VisibilityManager;
import mineplex.hub.modules.StackerManager;
import mineplex.hub.poll.PollManager;
@ -78,6 +79,9 @@ public class Hub extends JavaPlugin implements IRelation
//Logger.initialize(this);
//Velocity Fix
new VelocityFix(this);
//Static Modules
CommandCenter.Initialize(this);
CoreClientManager clientManager = new CoreClientManager(this, webServerAddress);

View File

@ -77,15 +77,8 @@ public class NewsManager extends MiniPlugin
for (Iterator<String> iterator = newsEntries.keySet().iterator(); iterator.hasNext();)
{
int newsPos = Integer.parseInt(iterator.next());
ChatColor col = ChatColor.RED;
if (newsPos == 1) col = ChatColor.GOLD;
else if (newsPos == 2) col = ChatColor.YELLOW;
else if (newsPos == 3) col = ChatColor.GREEN;
else if (newsPos == 4) col = ChatColor.AQUA;
else if (newsPos == 5) col = ChatColor.LIGHT_PURPLE;
newsStrings[newsPos - 1] = col + C.Bold + "MINEPLEX" + ChatColor.RESET + " - " + newsEntries.get(newsPos + "");
newsStrings[newsPos - 1] = newsEntries.get(newsPos + "");
if (newsStrings[newsPos - 1].length() > 64)
newsStrings[newsPos - 1] = newsStrings[newsPos - 1].substring(0, 64);

View File

@ -255,7 +255,7 @@ public class StackerManager extends MiniPlugin implements IThrown
Manager.SetPortalDelay(rider);
rider.leaveVehicle();
rider.setVelocity(new Vector(0.25 - Math.random()/2, Math.random()/2, 0.25 - Math.random()/2));
UtilAction.velocity(rider, new Vector(0.25 - Math.random()/2, Math.random()/2, 0.25 - Math.random()/2));
rider = rider.getPassenger();
}

View File

@ -10,4 +10,9 @@ public class ServerInfo
public String ServerType;
public String Game;
public boolean HostedByStaff;
public int getAvailableSlots()
{
return MaxPlayers - CurrentPlayers;
}
}

View File

@ -9,9 +9,13 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.Sound;
@ -56,7 +60,9 @@ import mineplex.hub.queue.QueueManager;
import mineplex.hub.queue.ui.QueueShop;
import mineplex.hub.server.ui.LobbyShop;
import mineplex.hub.server.ui.QuickShop;
import mineplex.hub.server.ui.ServerCountSorter;
import mineplex.hub.server.ui.ServerNpcShop;
import mineplex.serverdata.Region;
import mineplex.serverdata.data.MinecraftServer;
import mineplex.serverdata.data.ServerGroup;
@ -64,7 +70,12 @@ public class ServerManager extends MiniPlugin
{
private static final Long FREE_PORTAL_TIMER = 20000L;
private static final Long BETA_PORTAL_TIMER = 120000L;
private static final Random random = new Random();
public final int TOP_SERVERS = 3; // The number of top contending servers for auto-joining games
public final int MIN_SLOTS_REQUIRED = 12; // The number of slots the max server must have for auto-join
public final long QUEUE_COOLDOWN = 2000; // Cooldown (in milliseconds) between queueing again for players
private CoreClientManager _clientManager;
private DonationManager _donationManager;
private Portal _portal;
@ -73,9 +84,9 @@ public class ServerManager extends MiniPlugin
private HubManager _hubManager;
private StackerManager _stackerManager;
private QueueManager _queueManager;
private NautHashMap<String, Long> _queueCooldowns = new NautHashMap<String, Long>();
private NautHashMap<String, HashSet<ServerInfo>> _serverKeyInfoMap = new NautHashMap<String, HashSet<ServerInfo>>();
private NautHashMap<String, String> _serverKeyTagMap = new NautHashMap<String, String>();
private NautHashMap<String, Integer> _serverPlayerCounts = new NautHashMap<String, Integer>();
private NautHashMap<String, ServerNpcShop> _serverNpcShopMap = new NautHashMap<String, ServerNpcShop>();
private NautHashMap<String, ServerInfo> _serverInfoMap = new NautHashMap<String, ServerInfo>();
@ -108,7 +119,7 @@ public class ServerManager extends MiniPlugin
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "BungeeCord");
LoadServers();
loadServers();
_quickShop = new QuickShop(this, clientManager, donationManager, "Quick Menu");
_lobbyShop = new LobbyShop(this, clientManager, donationManager, "Lobby Menu");
@ -178,13 +189,13 @@ public class ServerManager extends MiniPlugin
if (serverName != null)
{
List<ServerInfo> serverList = new ArrayList<ServerInfo>(GetServerList(serverName));
List<ServerInfo> serverList = new ArrayList<ServerInfo>(getServerList(serverName));
int slots = 1;
if (serverList.size() > 0)
{
slots = GetRequiredSlots(player, serverList.get(0).ServerType);
slots = getRequiredSlots(player, serverList.get(0).ServerType);
}
try
@ -195,7 +206,7 @@ public class ServerManager extends MiniPlugin
{
if ((serverInfo.MOTD.contains("Starting") || serverInfo.MOTD.contains("Recruiting") || serverInfo.MOTD.contains("Waiting") || serverInfo.MOTD.contains("Cup")) && (serverInfo.MaxPlayers - serverInfo.CurrentPlayers) >= slots)
{
SelectServer(player, serverInfo);
selectServer(player, serverInfo);
return;
}
}
@ -278,22 +289,10 @@ public class ServerManager extends MiniPlugin
timeLeft = 0;
}
// if (party != null)
// {
// if (player.getName().equals(party.GetLeader()))
// {
// for (Player partyPlayer : party.GetPlayersOnline())
// {
// if (!partyPlayer.equals(player))
// timeLeft = Math.max(timeLeft, getMillisecondsUntilPortal(partyPlayer));
// }
// }
// }
return timeLeft;
}
public void RemoveServer(String serverName)
public void removeServer(String serverName)
{
for (String key : _serverKeyInfoMap.keySet())
{
@ -303,21 +302,17 @@ public class ServerManager extends MiniPlugin
_serverInfoMap.remove(serverName);
}
public void addServerGroup(String serverKey, String...serverTag)
public void addServerGroup(ServerGroup serverGroup)
{
_serverKeyInfoMap.put(serverKey, new HashSet<ServerInfo>());
for (String tag : serverTag)
_serverKeyTagMap.put(tag, serverKey);
_serverKeyInfoMap.put(serverGroup.getPrefix(), new HashSet<ServerInfo>());
}
public void AddServerNpc(String serverNpcName, String...serverTag)
public void addServerNpc(ServerGroup serverGroup)
{
addServerGroup(serverNpcName, serverTag);
_serverNpcShopMap.put(serverNpcName, new ServerNpcShop(this, _clientManager, _donationManager, serverNpcName));
_serverNpcShopMap.put(serverGroup.getServerNpcName(), new ServerNpcShop(this, _clientManager, _donationManager, serverGroup));
}
public void RemoveServerNpc(String serverNpcName)
public void removeServerNpc(String serverNpcName)
{
Set<ServerInfo> mappedServers = _serverKeyInfoMap.remove(serverNpcName);
_serverNpcShopMap.remove(serverNpcName);
@ -349,22 +344,23 @@ public class ServerManager extends MiniPlugin
}
}
public Collection<ServerInfo> GetServerList(String serverNpcName)
public Collection<ServerInfo> getServerList(String serverNpcName)
{
System.out.println("contains?" + _serverKeyInfoMap.containsKey(serverNpcName));
return _serverKeyInfoMap.get(serverNpcName);
}
public Set<String> GetAllServers()
public Set<String> getAllServers()
{
return _serverInfoMap.keySet();
}
public ServerInfo GetServerInfo(String serverName)
public ServerInfo getServerInfo(String serverName)
{
return _serverInfoMap.get(serverName);
}
public boolean HasServerNpc(String serverNpcName)
public boolean hasServerNpc(String serverNpcName)
{
return _serverKeyInfoMap.containsKey(serverNpcName);
}
@ -396,7 +392,6 @@ public class ServerManager extends MiniPlugin
_retrieving = true;
_statusManager.retrieveServerGroups(new Callback<Collection<ServerGroup>>()
{
public void run(final Collection<ServerGroup> serverGroups)
@ -451,9 +446,9 @@ public class ServerManager extends MiniPlugin
_serverUpdate.put(serverStatus.getName(), System.currentTimeMillis());
if (_serverKeyTagMap.containsKey(tag))
if (_serverKeyInfoMap.containsKey(tag))
{
_serverKeyInfoMap.get(_serverKeyTagMap.get(tag)).add(serverInfo);
_serverKeyInfoMap.get(tag).add(serverInfo);
if (!_serverPlayerCounts.containsKey(tag))
_serverPlayerCounts.put(tag, 0);
@ -482,9 +477,11 @@ public class ServerManager extends MiniPlugin
});
}
});
updateCooldowns();
}
public void Help(Player caller, String message)
public void help(Player caller, String message)
{
UtilPlayer.message(caller, F.main(_moduleName, "Commands List:"));
UtilPlayer.message(caller, F.help("/servernpc create <name>", "<name> is name of npc.", Rank.OWNER));
@ -499,9 +496,9 @@ public class ServerManager extends MiniPlugin
UtilPlayer.message(caller, F.main(_moduleName, ChatColor.RED + message));
}
public void Help(Player caller)
public void help(Player caller)
{
Help(caller, null);
help(caller, null);
}
public PartyManager getPartyManager()
@ -509,7 +506,7 @@ public class ServerManager extends MiniPlugin
return _partyManager;
}
public void SelectServer(org.bukkit.entity.Player player, ServerInfo serverInfo)
public void selectServer(org.bukkit.entity.Player player, ServerInfo serverInfo)
{
Party party = _partyManager.GetParty(player);
@ -521,8 +518,120 @@ public class ServerManager extends MiniPlugin
_portal.sendPlayerToServer(player, serverInfo.Name);
}
}
/**
* Select a {@code serverType} for a {@code player} that wishes to automatically join the best server
* available for that server type.
* @param player - the player hoping to select a server
* @param serverType - the name of the type of server to be joined
*/
public void selectServer(Player player, String serverType)
{
if (isOnCooldown(player))
{
return;
}
ServerInfo bestServer = getBestServer(player, serverType);
public void ListServerNpcs(Player caller)
if (bestServer != null)
{
selectServer(player, bestServer);
addCooldown(player);
}
}
private boolean isOnCooldown(Player player)
{
if (_queueCooldowns.containsKey(player.getName()))
{
long elapsed = System.currentTimeMillis() - _queueCooldowns.get(player.getName());
return elapsed < QUEUE_COOLDOWN;
}
return false;
}
private void addCooldown(Player player)
{
_queueCooldowns.put(player.getName(), System.currentTimeMillis());
}
private void updateCooldowns()
{
for (Iterator<String> playerIterator = _queueCooldowns.keySet().iterator(); playerIterator.hasNext();)
{
Player player = Bukkit.getPlayer(playerIterator.next());
if (player == null || !isOnCooldown(player))
{
playerIterator.remove();
}
}
}
/**
* @param serverType - the type of server that should be fetched
* @return the best server that a new player should join according to a {@code serverType} constraint.
*/
public ServerInfo getBestServer(Player player, String serverKey)
{
Collection<ServerInfo> serverList = getServerList(serverKey);
if (serverList == null) return null;
List<ServerInfo> servers = new ArrayList<ServerInfo>(serverList);
servers = fetchOpenServers(player, servers, servers.size()); // Removes all full servers from list
Collections.sort(servers, new ServerCountSorter());
int count = Math.min(servers.size(), TOP_SERVERS);
if (count > 0)
{
ServerInfo largestServer = servers.get(0);
if (largestServer.getAvailableSlots() >= MIN_SLOTS_REQUIRED || largestServer.MaxPlayers > 40)
{
System.out.println("Largest.");
return largestServer;
}
else
{
System.out.println("Random.");
return servers.get(random.nextInt(count));
}
}
return null;
}
public List<ServerInfo> fetchOpenServers(Player player, List<ServerInfo> servers, int count)
{
List<ServerInfo> results = new ArrayList<ServerInfo>();
int requiredSlots = (servers.size() > 0) ? getRequiredSlots(player, servers.get(0).ServerType) : 0;
for (ServerInfo server : servers)
{
if (isInProgress(server))
continue;
if (results.size() >= count) break;
if (server.getAvailableSlots() > requiredSlots)
{
results.add(server);
}
}
return results;
}
private boolean isInProgress(ServerInfo serverInfo)
{
return serverInfo.MOTD.contains("Progress") || serverInfo.MOTD.contains("Restarting");
}
public void listServerNpcs(Player caller)
{
UtilPlayer.message(caller, F.main(getName(), "Listing Server Npcs:"));
@ -532,7 +641,7 @@ public class ServerManager extends MiniPlugin
}
}
public void ListServers(Player caller, String serverNpcName)
public void listServers(Player caller, String serverNpcName)
{
UtilPlayer.message(caller, F.main(getName(), "Listing Servers for '" + serverNpcName + "':"));
@ -542,7 +651,7 @@ public class ServerManager extends MiniPlugin
}
}
public void ListOfflineServers(Player caller)
public void listOfflineServers(Player caller)
{
UtilPlayer.message(caller, F.main(getName(), "Listing Offline Servers:"));
@ -555,7 +664,7 @@ public class ServerManager extends MiniPlugin
}
}
public void LoadServers()
public void loadServers()
{
_serverInfoMap.clear();
_serverUpdate.clear();
@ -564,89 +673,59 @@ public class ServerManager extends MiniPlugin
{
_serverKeyInfoMap.get(npcName).clear();
}
_serverKeyTagMap.clear();
FileInputStream fstream = null;
BufferedReader br = null;
HashSet<String> npcNames = new HashSet<String>();
Region region = getPlugin().getConfig().getBoolean("serverstatus.us") ? Region.US : Region.EU;
try
{
File npcFile = new File("ServerManager.dat");
if (npcFile.exists())
for (ServerGroup serverGroup : mineplex.serverdata.servers.ServerManager.getServerRepository(region).getServerGroups(null))
{
fstream = new FileInputStream(npcFile);
br = new BufferedReader(new InputStreamReader(fstream));
String line = br.readLine();
while (line != null)
{
String serverNpcName = line.substring(0, line.indexOf('|')).trim();
String[] serverTags = line.substring(line.indexOf('|') + 1, line.indexOf('|', line.indexOf('|') + 1)).trim().split(",");
String[] locations = line.substring(line.indexOf('|', line.indexOf('|') + 1) + 1).trim().split(",");
addServerGroup(serverGroup);
for (String location : locations)
if (!serverGroup.getServerNpcName().isEmpty())
addServerNpc(serverGroup);
if (!serverGroup.getPortalBottomCornerLocation().isEmpty() && !serverGroup.getPortalTopCornerLocation().isEmpty())
{
Vector bottomVector = ParseVector(serverGroup.getPortalBottomCornerLocation());
Vector topVector = ParseVector(serverGroup.getPortalTopCornerLocation());
int blocks = 0;
while (blocks < 10 && (bottomVector.getBlockX() != topVector.getBlockX() || bottomVector.getBlockZ() != topVector.getBlockZ()))
{
_serverPortalLocations.put(ParseVector(location), serverNpcName);
_serverPortalLocations.put(new Vector(bottomVector.getBlockX(), bottomVector.getBlockY(), bottomVector.getBlockZ()), serverGroup.getServerNpcName());
if (bottomVector.getBlockX() != topVector.getBlockX())
{
bottomVector.add(new Vector(-(bottomVector.getBlockX() - topVector.getBlockX()) / Math.abs(bottomVector.getBlockX() - topVector.getBlockX()), 0, 0));
}
else if (bottomVector.getBlockZ() != topVector.getBlockZ())
{
bottomVector.add(new Vector(0, 0, -(bottomVector.getBlockZ() - topVector.getBlockZ()) / Math.abs(bottomVector.getBlockZ() - topVector.getBlockZ())));
}
blocks++;
}
if (!HasServerNpc(serverNpcName))
{
AddServerNpc(serverNpcName, serverTags);
}
npcNames.add(serverNpcName);
line = br.readLine();
_serverPortalLocations.put(bottomVector, serverGroup.getServerNpcName());
}
}
}
catch (Exception e)
{
System.out.println("ServerManager - Error parsing servers file : " + e.getMessage());
}
finally
{
if (br != null)
{
try
{
br.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if (fstream != null)
{
try
{
fstream.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
System.out.println("ServerManager - Error parsing servergroups : " + e.getMessage());
}
for (String npcName : npcNames)
{
if (!_serverNpcShopMap.containsKey(npcName))
_serverNpcShopMap.remove(npcName);
if (!_serverKeyInfoMap.containsKey(npcName))
_serverKeyInfoMap.remove(npcName);
}
ServerGroup eventGroup = new ServerGroup("Event", "Event Servers", "EVENT");
ServerGroup mpsGroup = new ServerGroup("MPS", "Mineplex Player Servers", "MPS");
addServerNpc(eventGroup);
addServerGroup(eventGroup);
addServerNpc(mpsGroup);
addServerGroup(mpsGroup);
}
public int GetRequiredSlots(Player player, String serverType)
public int getRequiredSlots(Player player, String serverType)
{
int slots = 0;
@ -683,6 +762,18 @@ public class ServerManager extends MiniPlugin
{
return _serverNpcShopMap.get("Mixed Arcade");
}
public ServerNpcShop getServerNPCShopByName(String name)
{
for(String shop : _serverNpcShopMap.keySet())
{
if(shop.equalsIgnoreCase(name))
{
return _serverNpcShopMap.get(shop);
}
}
return null;
}
public ServerNpcShop getSuperSmashMobsShop()
{
@ -722,7 +813,7 @@ public class ServerManager extends MiniPlugin
public ServerNpcShop getSKYShop()
{
return _serverNpcShopMap.get("SkyWars");
return _serverNpcShopMap.get("Skywars");
}
public ServerNpcShop getPlayerGamesShop()

View File

@ -35,7 +35,7 @@ public class LobbyMenu extends ShopPageBase<ServerManager, LobbyShop> implements
@Override
protected void buildPage()
{
List<ServerInfo> serverList = new ArrayList<ServerInfo>(getPlugin().GetServerList(_serverGroup));
List<ServerInfo> serverList = new ArrayList<ServerInfo>(getPlugin().getServerList(_serverGroup));
try
{
@ -99,7 +99,7 @@ public class LobbyMenu extends ShopPageBase<ServerManager, LobbyShop> implements
@Override
public void SelectServer(org.bukkit.entity.Player player, ServerInfo serverInfo)
{
int slots = getPlugin().GetRequiredSlots(player, serverInfo.ServerType);
int slots = getPlugin().getRequiredSlots(player, serverInfo.ServerType);
if (serverInfo.MaxPlayers - serverInfo.CurrentPlayers < slots)
{
@ -107,6 +107,6 @@ public class LobbyMenu extends ShopPageBase<ServerManager, LobbyShop> implements
return;
}
getPlugin().SelectServer(player, serverInfo);
getPlugin().selectServer(player, serverInfo);
}
}

View File

@ -14,7 +14,8 @@ public class LobbyShop extends ShopBase<ServerManager>
{
super(plugin, clientManager, donationManager, name);
plugin.addServerGroup("Lobby", "Lobby");
// TODO: Why is this needed? Re-add?
//plugin.addServerGroup("Lobby", "Lobby");
}
@Override

View File

@ -0,0 +1,13 @@
package mineplex.hub.server.ui;
import java.util.Comparator;
import mineplex.hub.server.ServerInfo;
public class ServerCountSorter implements Comparator<ServerInfo>
{
public int compare(ServerInfo a, ServerInfo b)
{
return b.CurrentPlayers - a.CurrentPlayers;
}
}

View File

@ -64,17 +64,17 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
ChatColor.RESET + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("BR") + ChatColor.RESET + " other players!",
}));
setItem(2, ItemStackFactory.Instance.CreateStack(Material.IRON_SWORD.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Survival Games " + C.cGray + "Last Man Standing", new String[]
setItem(2, ItemStackFactory.Instance.CreateStack(Material.IRON_SWORD.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Survival Games " + C.cGray + "Solo/Team Survival", new String[]
{
ChatColor.RESET + "",
ChatColor.RESET + "Search for chests to find loot and ",
ChatColor.RESET + "fight others to be the last man standing. ",
ChatColor.RESET + "Stay away from the borders!",
ChatColor.RESET + "",
ChatColor.RESET + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("HG") + ChatColor.RESET + " other players!",
}));
ChatColor.RESET + "Join " + ChatColor.GREEN + (getPlugin().getGroupTagPlayerCount("HG") + getPlugin().getGroupTagPlayerCount("SG2")) + ChatColor.RESET + " other players!",
}));
setItem(4, ItemStackFactory.Instance.CreateStack(Material.FEATHER.getId(), (byte) 0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Skywars " + C.cGray + "Solo Survival", new String[]
setItem(4, ItemStackFactory.Instance.CreateStack(Material.FEATHER.getId(), (byte) 0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Skywars " + C.cGray + "Solo/Team Survival", new String[]
{
ChatColor.RESET + "",
ChatColor.RESET + "16 contenders fight for the right to rule the skies!",
@ -83,7 +83,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
ChatColor.RESET + "Way up there, death ever looming if you fall..",
ChatColor.RESET + "Can you fight? Can you live? Can you win Skywars?",
ChatColor.RESET + "",
ChatColor.RESET + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("SKY") + ChatColor.RESET + " other players!",
ChatColor.RESET + "Join " + ChatColor.GREEN + (getPlugin().getGroupTagPlayerCount("SKY") + getPlugin().getGroupTagPlayerCount("SKY2")) + ChatColor.RESET + " other players!",
}));
setItem(6, ItemStackFactory.Instance.CreateStack(Material.GOLDEN_APPLE.getId(), (byte)0, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "UHC " + C.cGray + "Ultra Hardcore Mode", new String[]
@ -453,10 +453,10 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
ChatColor.RESET + "then battle other players to the ",
ChatColor.RESET + "death with your monsters skills!",
ChatColor.RESET + "",
ChatColor.RESET + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("SSM") + ChatColor.RESET + " other players!",
ChatColor.RESET + "Join " + ChatColor.GREEN + (getPlugin().getGroupTagPlayerCount("SSM") + getPlugin().getGroupTagPlayerCount("SSM2")) + ChatColor.RESET + " other players!",
};
_superSmashCycle.add(ItemStackFactory.Instance.CreateStack(397, (byte)4, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Super Smash Mobs", desc));
_superSmashCycle.add(ItemStackFactory.Instance.CreateStack(397, (byte)4, 1, ChatColor.RESET + C.Bold + ChatColor.YELLOW + "Super Smash Mobs " + C.cGray + "Solo/Team Deathmatch", desc));
}
public void Update()

View File

@ -17,6 +17,7 @@ import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilTime;
import mineplex.core.donation.DonationManager;
import mineplex.core.game.GameDisplay;
import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.shop.item.IButton;
import mineplex.core.shop.item.ShopItem;
import mineplex.core.shop.page.ShopPageBase;
@ -36,14 +37,14 @@ public class ServerNpcPage extends ShopPageBase<ServerManager, ServerNpcShop> im
private static final String MESSAGE_FULL_GET_ULTRA = ChatColor.RESET + C.Line + "Get Ultra to join full servers!";
private static final String MESSAGE_RESTARTING = ChatColor.RESET + C.Line + "This server will be open shortly!";
private String _serverNpcKey;
private String _serverGroupName;
private boolean _onMainPage = true;
public ServerNpcPage(ServerManager plugin, ServerNpcShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player, String serverNpcKey)
public ServerNpcPage(ServerManager plugin, ServerNpcShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player, String serverGroupName)
{
super(plugin, shop, clientManager, donationManager, name, player, 54);
_serverNpcKey = serverNpcKey;
_serverGroupName = serverGroupName;
buildPage();
}
@ -51,12 +52,16 @@ public class ServerNpcPage extends ShopPageBase<ServerManager, ServerNpcShop> im
@Override
protected void buildPage()
{
List<ServerInfo> serverList = new ArrayList<ServerInfo>(getPlugin().GetServerList(_serverNpcKey));
System.out.println(_serverGroupName);
System.out.println("getPlugin() null?" + (getPlugin() == null));
List<ServerInfo> serverList = new ArrayList<ServerInfo>(getPlugin().getServerList(_serverGroupName));
int slotsNeeded = 1;
if (serverList.size() > 0)
{
slotsNeeded = getPlugin().GetRequiredSlots(getPlayer(), serverList.get(0).ServerType);
slotsNeeded = getPlugin().getRequiredSlots(getPlayer(), serverList.get(0).ServerType);
}
try
@ -71,6 +76,13 @@ public class ServerNpcPage extends ShopPageBase<ServerManager, ServerNpcShop> im
if (_onMainPage)
{
addButton(4, ItemStackFactory.Instance.CreateStack(Material.DIAMOND_BLOCK, (byte) 0, 1, C.cGreen + "Click to Join instantly!"), new IButton() {
@Override
public void onClick(Player player, ClickType clickType) {
getPlugin().selectServer(player, _serverGroupName);
}
});
buildAvailableServerPage(serverList, slotsNeeded);
}
else
@ -399,14 +411,14 @@ public class ServerNpcPage extends ShopPageBase<ServerManager, ServerNpcShop> im
public void SelectServer(Player player, ServerInfo serverInfo)
{
int slots = getPlugin().GetRequiredSlots(player, serverInfo.ServerType);
int slots = getPlugin().getRequiredSlots(player, serverInfo.ServerType);
if (serverInfo.MaxPlayers - serverInfo.CurrentPlayers < slots && !(getDonationManager().Get(getPlayer().getName()).OwnsUnknownPackage(serverInfo.ServerType + " ULTRA") || getClient().GetRank().Has(Rank.ULTRA)))
if (serverInfo.getAvailableSlots() < slots && !(getDonationManager().Get(getPlayer().getName()).OwnsUnknownPackage(serverInfo.ServerType + " ULTRA") || getClient().GetRank().Has(Rank.ULTRA)))
{
playDenySound(player);
return;
}
getPlugin().SelectServer(player, serverInfo);
getPlugin().selectServer(player, serverInfo);
}
}

View File

@ -11,18 +11,31 @@ import mineplex.core.party.Party;
import mineplex.core.shop.ShopBase;
import mineplex.core.shop.page.ShopPageBase;
import mineplex.hub.server.ServerManager;
import mineplex.serverdata.data.ServerGroup;
public class ServerNpcShop extends ShopBase<ServerManager>
{
public ServerNpcShop(ServerManager plugin, CoreClientManager clientManager, DonationManager donationManager, String name)
private ServerGroup _serverGroup;
public ServerNpcShop(ServerManager plugin, CoreClientManager clientManager, DonationManager donationManager, ServerGroup serverGroup)
{
super(plugin, clientManager, donationManager, name);
super(plugin, clientManager, donationManager, serverGroup.getServerNpcName());
_serverGroup = serverGroup;
}
@Override
protected ShopPageBase<ServerManager, ? extends ShopBase<ServerManager>> buildPagesFor(Player player)
{
return new ServerNpcPage(getPlugin(), this, getClientManager(), getDonationManager(), getName(), player, getName());
if (_serverGroup.getPrefix().equalsIgnoreCase("SSM") || _serverGroup.getPrefix().equalsIgnoreCase("SKY") || _serverGroup.getPrefix().equalsIgnoreCase("HG"))
{
return new ServerTypePage(getPlugin(), this, getClientManager(), getDonationManager(), player, _serverGroup);
}
else
{
return new ServerNpcPage(getPlugin(), this, getClientManager(), getDonationManager(), _serverGroup.getServerNpcName(), player, _serverGroup.getPrefix());
}
}
@Override
@ -65,4 +78,16 @@ public class ServerNpcShop extends ShopBase<ServerManager>
{
getPlugin().getHubManager().GetVisibility().removeHiddenPlayer(player);
}
/*@Override
public boolean attemptShopOpen(Player player)
{
if (_serverGroup.getTeamServerKey().isEmpty() && !_serverGroup.getPrefix().equalsIgnoreCase("EVENT") && !_serverGroup.getPrefix().equalsIgnoreCase("MPS")) // Has no team server key, so auto-join
{
getPlugin().selectServer(player, getName());
return false;
}
return super.attemptShopOpen(player);
}*/
}

View File

@ -0,0 +1,93 @@
package mineplex.hub.server.ui;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.meta.SkullMeta;
import mineplex.core.account.CoreClientManager;
import mineplex.core.achievement.AchievementCategory;
import mineplex.core.common.Rank;
import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilTime;
import mineplex.core.donation.DonationManager;
import mineplex.core.game.GameDisplay;
import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.shop.item.IButton;
import mineplex.core.shop.item.ShopItem;
import mineplex.core.shop.page.ShopPageBase;
import mineplex.hub.server.ServerInfo;
import mineplex.hub.server.ServerManager;
import mineplex.hub.server.ServerSorter;
import mineplex.hub.server.ui.button.JoinServerButton;
import mineplex.hub.server.ui.button.SelectBRButton;
import mineplex.hub.server.ui.button.SelectTypeButton;
import mineplex.serverdata.data.ServerGroup;
public class ServerTypePage extends ShopPageBase<ServerManager, ServerNpcShop>
{
private ServerGroup _serverGroup;
public ServerTypePage(ServerManager plugin, ServerNpcShop shop, CoreClientManager clientManager, DonationManager donationManager,
Player player, ServerGroup serverGroup)
{
super(plugin, shop, clientManager, donationManager, serverGroup.getServerNpcName(), player, 27);
_serverGroup = serverGroup;
buildPage();
}
@Override
protected void buildPage()
{
String friendlyName = _serverGroup.getServerNpcName();
setItem(12, ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM.getId(), (byte)3, 1, ChatColor.RESET + C.cYellow + "Solo " + friendlyName, new String[]
{
ChatColor.RESET + "",
ChatColor.RESET + C.cRed + C.Bold + "WARNING: " + ChatColor.RESET + "Teaming in Solo Mode is bannable!",
ChatColor.RESET + "",
ChatColor.RESET + C.cGreen + "Click to Play",
}));
setItem(14, ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM.getId(), (byte)3, 2, ChatColor.RESET + C.cYellow + "Team " + friendlyName, new String[]
{
ChatColor.RESET + "",
ChatColor.RESET + C.cGray + "2 Player Teams",
ChatColor.RESET + "",
ChatColor.RESET + C.cGreen + "Click to Play"
}));
getButtonMap().put(12, new SelectTypeButton(this, false));
getButtonMap().put(14, new SelectTypeButton(this, true));
}
public void Update()
{
getButtonMap().clear();
buildPage();
}
public void selectServer(Player player, boolean team)
{
if (team)
{
//getPlugin().selectServer(player, _serverGroup.getTeamServerKey()); // TODO: Grab the team-key instead of regular game key
//getPlugin().getServerNPCShopByName(_serverGroup.getServerNpcName() + " 2").attemptShopOpen(player);
getShop().openPageForPlayer(player, new ServerNpcPage(getPlugin(), getShop(), getClientManager(), getDonationManager(), _serverGroup.getServerNpcName(), player, _serverGroup.getTeamServerKey()));
}
else
{
//getPlugin().selectServer(player, _serverGroup.getPrefix());
getShop().openPageForPlayer(player, new ServerNpcPage(getPlugin(), getShop(), getClientManager(), getDonationManager(), _serverGroup.getServerNpcName(), player, _serverGroup.getPrefix()));
}
}
}

View File

@ -0,0 +1,28 @@
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.ServerInfo;
import mineplex.hub.server.ServerManager;
import mineplex.hub.server.ui.IServerPage;
import mineplex.hub.server.ui.ServerTypePage;
public class SelectTypeButton implements IButton
{
private ServerTypePage _page;
private boolean _teamBased;
public SelectTypeButton(ServerTypePage page, boolean teamBased)
{
_page = page;
_teamBased = teamBased;
}
@Override
public void onClick(Player player, ClickType clickType)
{
_page.selectServer(player, _teamBased);
}
}

View File

@ -26,6 +26,7 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent;
import mineplex.core.common.util.F;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.core.updater.UpdateType;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilPlayer;
@ -209,7 +210,7 @@ public class Blizzard extends SkillActive
if (damagee == null) return;
event.SetCancelled(GetName());
damagee.setVelocity(proj.getVelocity().multiply(0.1).add(new Vector(0, 0.15, 0)));
UtilAction.velocity(damagee, proj.getVelocity().multiply(0.1).add(new Vector(0, 0.15, 0)));
}
@EventHandler

View File

@ -391,16 +391,6 @@ public class DamageManager extends MiniPlugin
trajectory.multiply(0.6 * knockback);
trajectory.setY(Math.abs(trajectory.getY()));
//Debug
if (event.GetDamageeEntity() instanceof Player && UtilGear.isMat(((Player)event.GetDamageeEntity()).getItemInHand(), Material.SUGAR))
{
Bukkit.broadcastMessage("--------- " +
UtilEnt.getName(event.GetDamageeEntity()) + " hurt by " + UtilEnt.getName(event.GetDamagerEntity(true)) + "-----------" );
Bukkit.broadcastMessage(F.main("Debug", "Damage: " + event.GetDamage()));
}
//Apply
double vel = 0.2 + trajectory.length() * 0.8;
@ -422,15 +412,6 @@ public class DamageManager extends MiniPlugin
}
}
@EventHandler
public void debugVel2(PlayerVelocityEvent event)
{
if (UtilGear.isMat(((Player)event.getPlayer()).getItemInHand(), Material.SUGAR))
{
Bukkit.broadcastMessage(F.main("Debug", "Event: " + event.getVelocity().length()));
}
}
private void DisplayDamage(CustomDamageEvent event)
{
for (Player player : UtilServer.getPlayers())

View File

@ -6,6 +6,7 @@ import java.util.HashSet;
import mineplex.core.MiniPlugin;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.core.updater.UpdateType;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilTime;
import org.bukkit.Material;
@ -54,8 +55,7 @@ public class PistonJump extends MiniPlugin
//Vector
Vector vec = new Vector(0,1.2,0);
player.setVelocity(vec);
player.setFallDistance(0);
UtilAction.velocity(player, vec);
}
final Block block = below;

View File

@ -57,6 +57,12 @@ public class ServerGroup
private boolean _staffOnly;
private String _resourcePack = "";
private String _npcName = "";
private String _portalBottomCornerLocation = "";
private String _portalTopCornerLocation = "";
private String _teamServerKey = "";
private Region _region;
private Set<MinecraftServer> _servers;
@ -101,6 +107,10 @@ public class ServerGroup
_resourcePack = data.containsKey("resourcePack") ? data.get("resourcePack") : "";
_host = data.get("host");
_region = data.containsKey("region") ? Region.valueOf(data.get("region")) : Region.ALL;
_teamServerKey = data.containsKey("teamServerKey") ? data.get("teamServerKey") : "";
_portalBottomCornerLocation = data.containsKey("portalBottomCornerLocation") ? data.get("portalBottomCornerLocation") : "";
_portalTopCornerLocation = data.containsKey("portalTopCornerLocation") ? data.get("portalTopCornerLocation") : "";
_npcName = data.containsKey("npcName") ? data.get("npcName") : "";
if (serverStatuses != null)
parseServers(serverStatuses);
@ -109,7 +119,8 @@ public class ServerGroup
public ServerGroup(String name, String prefix, String host, int ram, int cpu, int totalServers, int joinable, int portSection, boolean arcade, String worldZip, String plugin, String configPath
, int minPlayers, int maxPlayers, boolean pvp, boolean tournament, boolean tournamentPoints, String games, String serverType, boolean noCheat, boolean worldEdit, boolean teamRejoin
, boolean teamAutoJoin, boolean teamForceBalance, boolean gameAutoStart, boolean gameTimeout, boolean rewardGems, boolean rewardItems, boolean rewardStats
, boolean rewardAchievements, boolean hotbarInventory, boolean hotbarHubClock, boolean playerKickIdle, boolean staffOnly, boolean whitelist, String resourcePack, Region region)
, boolean rewardAchievements, boolean hotbarInventory, boolean hotbarHubClock, boolean playerKickIdle, boolean staffOnly, boolean whitelist, String resourcePack, Region region
, String teamServerKey, String portalBottomCornerLocation, String portalTopCornerLocation, String npcName)
{
_name = name;
_prefix = prefix;
@ -148,6 +159,17 @@ public class ServerGroup
_whitelist = whitelist;
_resourcePack = resourcePack;
_region = region;
_teamServerKey = teamServerKey;
_portalBottomCornerLocation = portalBottomCornerLocation;
_portalTopCornerLocation = portalTopCornerLocation;
_npcName = npcName;
}
public ServerGroup(String name, String npcName, String prefix)
{
_name = name;
_npcName = npcName;
_prefix = prefix;
}
public String getName() { return _name; }
@ -196,6 +218,12 @@ public class ServerGroup
public String getResourcePack() { return _resourcePack; }
public Region getRegion() { return _region; }
public String getTeamServerKey() { return _teamServerKey; }
public String getServerNpcName() { return _npcName; }
public String getPortalBottomCornerLocation() { return _portalBottomCornerLocation; }
public String getPortalTopCornerLocation() { return _portalTopCornerLocation; }
public Set<MinecraftServer> getServers() { return _servers; }
public int getServerCount()
@ -350,6 +378,10 @@ public class ServerGroup
_dataMap.put("resourcePack", _resourcePack);
_dataMap.put("host", _host);
_dataMap.put("region", _region.name());
_dataMap.put("teamServerKey", _teamServerKey);
_dataMap.put("portalBottomCornerLocation", _portalBottomCornerLocation);
_dataMap.put("portalTopCornerLocation", _portalTopCornerLocation);
_dataMap.put("npcName", _npcName);
}
return _dataMap;

View File

@ -28,7 +28,7 @@ public class ServerManager
// The cached repository instances
private static Map<Region, ServerRepository> repositories = new HashMap<Region, ServerRepository>();
/**
* @param host - the host url used to connect to the database
* @param port - the port to connect to the repository

View File

@ -180,9 +180,26 @@ public class ServerMonitor
log("Saved Dedicated Server Stats.");
_historyRepository.saveServerGroupStats((int)totalCPU, (int)totalRAM, _serverGroupMap.values());
log("Saved ServerGroup Stats.");
//_historyRepository.saveNetworkStats(usedCpuPercent, usedRamPercent, availableCPU, availableRAM, _region);
_historyRepository.saveNetworkStats(usedCpuPercent, usedRamPercent, availableCPU, availableRAM, _region);
log("Saved Network Stats.");
if (_count == 0)
{
for (Iterator<ServerGroup> groupStatusIterator = _serverGroups.iterator(); groupStatusIterator.hasNext();)
{
ServerGroup groupStatus = groupStatusIterator.next();
if (groupStatus.getServerType().equalsIgnoreCase("Player"))
{
_repository.removeServerGroup(groupStatus);
_serverGroupMap.remove(groupStatus);
groupStatusIterator.remove();
System.out.println("Removed MPS : " + groupStatus.getName());
}
}
}
for (ServerGroup groupStatus : _serverGroups)
{
NautHashMap<Integer, MinecraftServer> serverMap = new NautHashMap<Integer, MinecraftServer>();

View File

@ -48,6 +48,7 @@ import mineplex.core.status.ServerStatusManager;
import mineplex.core.teleport.Teleport;
import mineplex.core.updater.FileUpdater;
import mineplex.core.updater.Updater;
import mineplex.core.velocity.VelocityFix;
import mineplex.core.visibility.VisibilityManager;
import mineplex.minecraft.game.core.combat.CombatManager;
import mineplex.minecraft.game.core.damage.DamageManager;
@ -86,10 +87,14 @@ public class Arcade extends JavaPlugin
_clientManager = new CoreClientManager(this, webServerAddress);
CommandCenter.Instance.setClientManager(_clientManager);
ItemStackFactory.Initialize(this, false);
Recharge.Initialize(this);
VisibilityManager.Initialize(this);
Give.Initialize(this);
//Velocity Fix
new VelocityFix(this);
_donationManager = new DonationManager(this, _clientManager, webServerAddress);

View File

@ -49,6 +49,7 @@ import mineplex.core.common.jsonchat.JsonMessage;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilGear;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilPlayer;
@ -1333,7 +1334,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation
player.teleport(GetGame().GetSpectatorLocation());
//Set Spec State
player.setVelocity(new Vector(0,1,0));
UtilAction.velocity(player, new Vector(0,1,0));
player.setAllowFlight(true);
player.setFlying(true);
player.setFlySpeed(0.1f);

View File

@ -220,5 +220,10 @@ public enum GameType
{
return _display.getGameCategory();
}
public String GetKitGameName()
{
return _display.getKitGameName();
}
}

View File

@ -294,6 +294,8 @@ public abstract class Game implements Listener
}
if (Manager.GetGameCreationManager().MapPref != null)
{
System.out.println("Map Preference: " + Manager.GetGameCreationManager().MapPref);
HashMap<GameType, ArrayList<String>> matches = new HashMap<GameType, ArrayList<String>>();
for (GameType game : _files.keySet())
{
@ -302,7 +304,7 @@ public abstract class Game implements Listener
{
if (cur.toLowerCase().contains(Manager.GetGameCreationManager().MapPref.toLowerCase()))
{
if(game.toString().toLowerCase().contains(Manager.GetGameCreationManager().MapSource.toLowerCase()))
if(game.GetName().toLowerCase().contains(Manager.GetGameCreationManager().MapSource.toLowerCase()))
{
list.add(cur);
System.out.print("Map Preference: " + cur);
@ -318,6 +320,10 @@ public abstract class Game implements Listener
Manager.GetGameCreationManager().MapPref = null;
Manager.GetGameCreationManager().MapSource = null;
}
else
{
System.out.println("Map Preference: None");
}
WorldData = new WorldData(this);
//Stat Trackers
@ -333,14 +339,6 @@ public abstract class Game implements Listener
new GamesPlayedStatTracker(this)
);
if (gameType != GameType.UHC)
{
registerStatTrackers(
new TeamDeathsStatTracker(this),
new TeamKillsStatTracker(this)
);
}
Manager.setResourcePack(gameType.getResourcePackUrl(), gameType.isEnforceResourcePack());
System.out.println("Loading " + GetName() + "...");

View File

@ -5,6 +5,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import mineplex.core.account.CoreClient;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilAlg;
@ -164,7 +165,14 @@ public class GameTeam
public void DisbandTeam()
{
for (Player player : _players.keySet())
{
for(Player other : UtilServer.getPlayers())
{
other.getScoreboard().getTeam(Host.Manager.GetClients().Get(player).GetRank().Name + _name.toUpperCase()).removePlayer(player);
other.getScoreboard().getTeam(Host.Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
}
UtilPlayer.message(player, F.main("Team", _color + C.Bold + _displayName + " Team was disbanded."));
}
_players.clear();
}

View File

@ -45,6 +45,7 @@ import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.MapUtil;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilEvent;
@ -1178,7 +1179,7 @@ public class Bridge extends TeamGame implements OreObsfucation
UtilPlayer.message(event.getPlayer(), F.main("Game",
"Cannot place blocks in liquids until Bridge is down."));
event.getPlayer().setVelocity(new Vector(0,-0.5,0));
UtilAction.velocity(event.getPlayer(), new Vector(0, -0.5, 0));
event.setCancelled(true);
return;

View File

@ -67,6 +67,7 @@ import mineplex.core.common.Rank;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilEvent;
import mineplex.core.common.util.UtilEvent.ActionType;
@ -707,7 +708,7 @@ public class Build extends SoloGame
event.setTo(event.getFrom());
//Velocity
event.getPlayer().setVelocity(UtilAlg.getTrajectory(event.getTo(), data.Spawn));
UtilAction.velocity(event.getPlayer(), UtilAlg.getTrajectory(event.getTo(), data.Spawn));
}
}

View File

@ -74,6 +74,8 @@ import nautilus.game.arcade.kit.NullKit;
import nautilus.game.arcade.stats.BloodThirstyStatTracker;
import nautilus.game.arcade.stats.KingDamageStatTracker;
import nautilus.game.arcade.stats.KingSlayerStatTracker;
import nautilus.game.arcade.stats.TeamDeathsStatTracker;
import nautilus.game.arcade.stats.TeamKillsStatTracker;
import nautilus.game.arcade.stats.WinAsTeamStatTracker;
public class CastleSiege extends TeamGame
@ -212,7 +214,10 @@ public class CastleSiege extends TeamGame
new WinAsTeamStatTracker(this, notRedTeam, "ForTheKing"),
new KingSlayerStatTracker(this),
new BloodThirstyStatTracker(this),
new KingDamageStatTracker(this)
new KingDamageStatTracker(this),
new TeamDeathsStatTracker(this),
new TeamKillsStatTracker(this)
);
}

View File

@ -34,6 +34,7 @@ import org.bukkit.util.Vector;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilEvent;
import mineplex.core.common.util.UtilServer;
@ -526,8 +527,7 @@ public class DragonEscape extends SoloGame
//Teleport
player.teleport(target.getLocation().add(0, 0.5, 0));
player.setVelocity(new Vector(0,0,0));
player.setFallDistance(0);
UtilAction.zeroVelocity(player);
//Record
_warpTime.put(player, System.currentTimeMillis());

View File

@ -26,6 +26,7 @@ import org.bukkit.util.Vector;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilFirework;
import mineplex.core.common.util.UtilInv;
@ -540,8 +541,7 @@ public class DragonEscapeTeams extends TeamGame
//Teleport
player.teleport(target.getLocation().add(0, 0.5, 0));
player.setVelocity(new Vector(0,0,0));
player.setFallDistance(0);
UtilAction.zeroVelocity(player);
//Record
_warpTime.put(player, System.currentTimeMillis());

View File

@ -7,6 +7,7 @@ import java.util.LinkedList;
import java.util.List;
import mineplex.core.MiniPlugin;
import mineplex.core.common.Rank;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.NautHashMap;
@ -78,11 +79,11 @@ public class EventModule extends MiniPlugin
@EventHandler
public void setHostDebug(PlayerCommandPreprocessEvent event)
{
if (!event.getPlayer().isOp())
return;
if (!event.getMessage().toLowerCase().startsWith("/sethost "))
return;
if (!Manager.GetClients().Get(event.getPlayer()).GetRank().Has(event.getPlayer(), Rank.JNR_DEV, true))
return;
Manager.GetServerConfig().HostName = event.getMessage().split(" ")[1];

View File

@ -8,6 +8,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilMath;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
@ -15,6 +16,7 @@ import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.GameType;
import nautilus.game.arcade.game.SoloGame;
import nautilus.game.arcade.kit.Kit;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
@ -225,7 +227,8 @@ public class HoleInTheWall extends SoloGame
{
wall.getKnockedPlayers().add(player.getUniqueId());
player.setVelocity(_wallVector.clone().normalize().multiply(5).setY(0.3));
UtilAction.velocity(player, _wallVector.clone().normalize().multiply(5).setY(0.3));
player.playSound(player.getLocation(), Sound.NOTE_BASS, 2, 1F);
}
/*Location toTeleport = player.getLocation();

View File

@ -110,6 +110,8 @@ import nautilus.game.arcade.stats.KillFastStatTracker;
import nautilus.game.arcade.stats.KillReasonStatTracker;
import nautilus.game.arcade.stats.KillsWithConditionStatTracker;
import nautilus.game.arcade.stats.MineStrikeLastAliveKillStatTracker;
import nautilus.game.arcade.stats.TeamDeathsStatTracker;
import nautilus.game.arcade.stats.TeamKillsStatTracker;
import net.minecraft.server.v1_7_R4.EntityArrow;
public class MineStrike extends TeamGame
@ -293,7 +295,10 @@ public class MineStrike extends TeamGame
new KillReasonStatTracker(this, "Backstab", "Assassination", false),
new MineStrikeLastAliveKillStatTracker(this),
new KillFastStatTracker(this, 4, 5, "KillingSpree"),
new KillsWithConditionStatTracker(this, "Blindfolded", ConditionType.BLINDNESS, "Flash Bang", 2)
new KillsWithConditionStatTracker(this, "Blindfolded", ConditionType.BLINDNESS, "Flash Bang", 2),
new TeamDeathsStatTracker(this),
new TeamKillsStatTracker(this)
);
}
@ -1279,7 +1284,7 @@ public class MineStrike extends TeamGame
{
Bukkit.getPluginManager().callEvent(new PlayerHeadshotEvent(bullet.Shooter, event.GetDamageePlayer()));
event.AddMod(bullet.Shooter.getName(), "Headshot", damage*2, true);
event.AddMod(bullet.Shooter.getName(), "Headshot", damage, true);
//Wearing Helmet
if (Armor.isArmor(event.GetDamageePlayer().getInventory().getHelmet()) ||
@ -1305,7 +1310,7 @@ public class MineStrike extends TeamGame
//Mini-Stun
else
{
event.GetDamageePlayer().setVelocity(new Vector(0,0,0));
UtilAction.zeroVelocity(event.GetDamageeEntity());
}
event.SetKnockback(false);

View File

@ -35,6 +35,7 @@ import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.Vector;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilPlayer;
@ -307,7 +308,7 @@ public class Paintball extends TeamGame
((CraftPlayer)player).getHandle().spectating = true;
((CraftPlayer)player).getHandle().k = false;
player.setVelocity(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()));
}

View File

@ -5,18 +5,6 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilPlayer;
@ -32,12 +20,28 @@ import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.GameType;
import nautilus.game.arcade.events.GameStateChangeEvent;
import nautilus.game.arcade.game.SoloGame;
import nautilus.game.arcade.game.games.quiver.kits.*;
import nautilus.game.arcade.game.games.quiver.kits.KitBrawler;
import nautilus.game.arcade.game.games.quiver.kits.KitEnchanter;
import nautilus.game.arcade.game.games.quiver.kits.KitLeaper;
import nautilus.game.arcade.game.games.quiver.kits.KitNinja;
import nautilus.game.arcade.game.games.quiver.kits.KitSlamShot;
import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.stats.SharpShooterStatTracker;
import nautilus.game.arcade.stats.WinWithoutBowStatTracker;
import nautilus.game.arcade.stats.WinWithoutDyingStatTracker;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
public class Quiver extends SoloGame
{
private ArrayList<QuiverScore> _ranks = new ArrayList<QuiverScore>();
@ -56,7 +60,8 @@ public class Quiver extends SoloGame
new KitLeaper(manager),
new KitBrawler(manager),
new KitEnchanter(manager),
new KitSlamShot(manager)
new KitSlamShot(manager),
new KitNinja(manager)
},
new String[]
@ -75,6 +80,8 @@ public class Quiver extends SoloGame
this.BlockBreakAllow.add(102);
this.BlockBreakAllow.add(20);
this.DeathSpectateSecs = 1;
_scoreObj = Scoreboard.GetScoreboard().registerNewObjective("Kills", "dummy");
_scoreObj.setDisplaySlot(DisplaySlot.BELOW_NAME);

View File

@ -0,0 +1,64 @@
package nautilus.game.arcade.game.games.quiver.kits;
import mineplex.core.achievement.Achievement;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilServer;
import mineplex.core.itemstack.ItemBuilder;
import mineplex.core.itemstack.ItemStackFactory;
import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.game.Game.GameState;
import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.kit.KitAvailability;
import nautilus.game.arcade.kit.Perk;
import nautilus.game.arcade.kit.perks.PerkVanishing;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
public class KitNinja extends Kit
{
public KitNinja(ArcadeManager manager)
{
super(manager, "Ninja", KitAvailability.Achievement, 0, new String[]
{
"You're a sneaky one, you!"
}, new Perk[]
{
new PerkVanishing()
}, EntityType.ZOMBIE, new ItemBuilder(Material.GOLD_SWORD).build());
this.setAchievementRequirements(new Achievement[]
{
Achievement.OITQ_SHARPSHOOTER,
Achievement.OITQ_WHATS_A_BOW,
Achievement.OITQ_WINS,
});
}
@Override
public void GiveItems(Player player)
{
player.getInventory().addItem(new ItemBuilder(Material.GOLD_SWORD).setUnbreakable(true).build());
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW));
if (Manager.GetGame().GetState() == GameState.Live)
{
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(262, (byte)0, 1, F.item("Super Arrow")));
final Player fPlayer = player;
UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable()
{
public void run()
{
UtilInv.Update(fPlayer);
}
}, 10);
}
}
}

View File

@ -21,9 +21,8 @@ public class KitSlamShot extends Kit
{
public KitSlamShot(ArcadeManager manager)
{
super(manager, "Slam Shooter", KitAvailability.Achievement,
new String[]
super(manager, "Slam Shooter", KitAvailability.Gem,
5000, new String[]
{
"Gets 2 arrows for killing slammed players!"
},
@ -33,21 +32,13 @@ public class KitSlamShot extends Kit
new PerkSeismicSlamOITQ()
},
EntityType.ZOMBIE,
new ItemStack(Material.IRON_SPADE));
this.setAchievementRequirements(new Achievement[]
{
Achievement.OITQ_PERFECTIONIST,
Achievement.OITQ_SHARPSHOOTER,
Achievement.OITQ_WHATS_A_BOW,
Achievement.OITQ_WINS,
});
new ItemStack(Material.DIAMOND_SPADE));
}
@Override
public void GiveItems(Player player)
{
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_SPADE));
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_SPADE));
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW));
if (Manager.GetGame().GetState() == GameState.Live)

View File

@ -6,6 +6,7 @@ import java.util.HashSet;
import java.util.Iterator;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.MapUtil;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAction;
@ -24,6 +25,7 @@ import mineplex.core.common.util.UtilTextMiddle;
import mineplex.core.common.util.UtilTime;
import mineplex.core.common.util.UtilTime.TimeUnit;
import mineplex.core.explosion.ExplosionEvent;
import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.loot.ChestLoot;
import mineplex.core.loot.RandomItem;
import mineplex.core.updater.UpdateType;
@ -41,8 +43,8 @@ import nautilus.game.arcade.game.games.skywars.data.TNTGenerator;
import nautilus.game.arcade.game.games.skywars.events.PlayerKillZombieEvent;
import nautilus.game.arcade.game.games.skywars.kits.KitChicken;
import nautilus.game.arcade.game.games.skywars.kits.KitDestructor;
import nautilus.game.arcade.game.games.skywars.kits.KitMadScientist;
import nautilus.game.arcade.game.games.skywars.kits.KitMiner;
import nautilus.game.arcade.game.games.skywars.kits.KitMadScientist;
import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.ore.OreHider;
import nautilus.game.arcade.stats.DeathBomberStatTracker;
@ -65,6 +67,7 @@ import org.bukkit.entity.Chicken;
import org.bukkit.entity.Egg;
import org.bukkit.entity.EnderPearl;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Item;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
@ -979,7 +982,7 @@ public abstract class Skywars extends Game
if (vel.getY() < 0.1)
vel.setY(0.1);
event.GetDamageeEntity().setVelocity(vel);
UtilAction.velocity(event.GetDamageeEntity(), vel);
}
}

View File

@ -51,6 +51,8 @@ public class TeamSkywars extends Skywars
this.SpawnNearAllies = true;
this.DamageTeamSelf = false;
this.DontAllowOverfill = true;
}
@EventHandler

View File

@ -51,6 +51,8 @@ public class TeamSuperSmash extends SuperSmash
this.DamageTeamSelf = false;
this.TeamArmorHotbar = true;
this.DontAllowOverfill = true;
}
@Override

View File

@ -55,6 +55,8 @@ public class TeamSurvivalGames extends SurvivalGames
this.DamageTeamSelf = false;
this.DontAllowOverfill = true;
}
@EventHandler

View File

@ -136,6 +136,8 @@ public class UHC extends TeamGame
"Borders shrink over time", "Last player/team alive wins!"
});
this.HideTeamSheep = true;
this.StrictAntiHack = true;
this.GameTimeout = 10800000;

View File

@ -42,6 +42,12 @@ import nautilus.game.arcade.game.games.wither.kit.KitWitherMinion;
import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.kit.NullKit;
import nautilus.game.arcade.kit.perks.data.IBlockRestorer;
import nautilus.game.arcade.stats.BloodThirstyStatTracker;
import nautilus.game.arcade.stats.KingDamageStatTracker;
import nautilus.game.arcade.stats.KingSlayerStatTracker;
import nautilus.game.arcade.stats.TeamDeathsStatTracker;
import nautilus.game.arcade.stats.TeamKillsStatTracker;
import nautilus.game.arcade.stats.WinAsTeamStatTracker;
import nautilus.game.arcade.stats.WitherAssaultReviveTracker;
import org.bukkit.Bukkit;
@ -146,6 +152,11 @@ public class WitherGame extends TeamGame implements IBlockRestorer
};
registerStatTrackers(
new TeamDeathsStatTracker(this),
new TeamKillsStatTracker(this)
);
}
@Override

View File

@ -33,6 +33,10 @@ public class ChooseMapButton implements IButton
@Override
public void onClick(Player player, ClickType clickType)
{
_arcadeManager.GetGameCreationManager().MapSource = _gameType.GetName();
if(_gameType.getMapSource() != null)
_arcadeManager.GetGameCreationManager().MapSource = _gameType.getMapSource()[0].GetName();
_arcadeManager.GetGameCreationManager().MapPref = _map;
_arcadeManager.GetGame().setGame(_gameType, player, true);
player.closeInventory();

View File

@ -1,5 +1,8 @@
package nautilus.game.arcade.gui.privateServer.button;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;

View File

@ -34,7 +34,13 @@ public class ChooseMapPage extends BasePage
addBackToSetGamePage();
int slot = 9;
for (String cur : getPlugin().LoadFiles(_gameType.GetName())){
String loadMaps = _gameType.GetName();
if(_gameType.getMapSource() != null)
{
loadMaps = _gameType.getMapSource()[0].GetName();
}
for(String cur : getPlugin().LoadFiles(loadMaps))
{
ChooseMapButton btn = new ChooseMapButton(getPlugin(), getShop(), _gameType, cur);
addButton(slot, new ShopItem(Material.PAPER, cur.split("_")[1], new String[]{"§7Click to select map."}, 1, false), btn);
slot++;

View File

@ -42,6 +42,7 @@ public class GameVotingPage extends BasePage
addBackButton(4);
addStartVoteButton(0);
addEndVoteButton(8);
addPickHighestButton(1);
}
else
{
@ -70,6 +71,49 @@ public class GameVotingPage extends BasePage
}
}
private void addPickHighestButton(int slot)
{
ShopItem item = new ShopItem(Material.DIAMOND_BLOCK, (byte)0, "§b§lSelect Highest Voted Game", new String[]{"§7Game: §e" + getHighestVoted().GetName()}, 1, false, false);
addButton(slot, item, new IButton()
{
@Override
public void onClick(Player player, ClickType clickType)
{
if (!_manager.isHost(player)) //Double Check...
return;
_manager.setVoteInProgress(false);
getPlugin().GetGame().setGame(getHighestVoted(), player, true);
}
});
}
private GameType getHighestVoted()
{
GameType highest = GameType.Skywars;
int highestVotes = getVotes(GameType.Skywars);
for (GameType cur : _manager.getVotes().values())
{
if (getVotes(cur) > highestVotes)
{
highestVotes = getVotes(cur);
highest = cur;
}
}
return highest;
}
private int getVotes(GameType type)
{
int i = 0;
for (GameType cur : _manager.getVotes().values())
{
if (cur.equals(type))
i++;
}
return i;
}
private void addCloseButton(int slot)
{
ShopItem item = new ShopItem(Material.BED, (byte)0, "§cClose Menu", new String[]{}, 1, false, false);

View File

@ -124,6 +124,11 @@ public class OptionsPage extends BasePage
private void togglePublic()
{
if (_config.PlayerServerWhitelist==true)
{
_config.PublicServer = false;
return;
}
_config.PublicServer = !_config.PublicServer;
refresh();
}

View File

@ -1,5 +1,9 @@
package nautilus.game.arcade.gui.privateServer.page;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
@ -13,9 +17,20 @@ import nautilus.game.arcade.gui.privateServer.PrivateServerShop;
public abstract class PlayerPage extends BasePage
{
private List<String> _players;
private boolean useOtherList;
public PlayerPage(ArcadeManager plugin, PrivateServerShop shop, String pageName, Player player)
{
super(plugin, shop, pageName, player);
useOtherList = false;
}
public PlayerPage(ArcadeManager plugin, PrivateServerShop shop, String pageName, Player player, List<String> players)
{
super(plugin, shop, pageName, player);
useOtherList = true;
_players = players;
}
@Override
@ -23,7 +38,20 @@ public abstract class PlayerPage extends BasePage
{
addBackButton(4);
Player[] players = UtilServer.getPlayers();
List<Player> players = new ArrayList<>();
if (useOtherList)
{
players = new ArrayList<>();
for (String s : _players)
{
players.add(Bukkit.getPlayer(s));
}
}
else
{
for (Player p : UtilServer.getPlayers())
players.add(p);
}
int slot = 9;
for (Player player : players)

View File

@ -1,8 +1,15 @@
package nautilus.game.arcade.gui.privateServer.page;
import org.bukkit.entity.Player;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.shop.item.IButton;
import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.gui.privateServer.PrivateServerShop;
@ -13,7 +20,7 @@ import nautilus.game.arcade.gui.privateServer.PrivateServerShop;
* consent of William Burns. 2015.
* 29/07/15
*/
public class WhitelistedPage extends PlayerPage
public class WhitelistedPage extends BasePage
{
public WhitelistedPage(ArcadeManager plugin, PrivateServerShop shop, Player player)
{
@ -22,24 +29,29 @@ public class WhitelistedPage extends PlayerPage
}
@Override
public boolean showPlayer(Player player)
protected void buildPage()
{
if (getPlugin().GetGameHostManager().getWhitelist().contains(player.getName()))
return true;
return false;
}
addBackButton(4);
@Override
public void clicked(int slot, Player player)
{
getPlugin().GetGameHostManager().getWhitelist().remove(player.getName());
getPlugin().GetPortal().sendToHub(player, "You are no longer whitelisted.");
getPlayer().sendMessage(F.main("Whitelist", "§e" + player.getName() + " §7is no longer whitelisted."));
}
int slot = 9;
for (final String s : getPlugin().GetGameHostManager().getWhitelist())
{
ItemStack head = getPlayerHead(s, C.cGreen + C.Bold + s, new String[]{C.cGray + "Click to un-whitelist player"});
final int i = slot;
addButton(slot, head, new IButton()
{
@Override
public void onClick(Player player, ClickType clickType)
{
getPlugin().GetGameHostManager().getWhitelist().remove(s);
removeButton(i);
getPlayer().sendMessage(F.main("Whitelist", "§e" + s + " §7is no longer whitelisted."));
if (Bukkit.getPlayer(s)!=null)
getPlugin().GetPortal().sendToHub(Bukkit.getPlayer(s), "You are no longer whitelisted.");
}
});
@Override
public String getDisplayString(Player player)
{
return "Click to remove from whitelist";
slot++;
}
}
}

View File

@ -14,13 +14,13 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.util.Vector;
import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilMath;
import mineplex.core.recharge.Recharge;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
import nautilus.game.arcade.kit.Perk;
public class PerkBlizzard extends Perk
@ -108,8 +108,9 @@ public class PerkBlizzard extends Perk
if (damagee == null) return;
event.SetCancelled("Blizzard");
damagee.setVelocity(proj.getVelocity().multiply(0.15).add(new Vector(0, 0.15, 0)));
UtilAction.velocity(damagee, proj.getVelocity().multiply(0.15).add(new Vector(0, 0.15, 0)));
//Damage Event
if (damagee instanceof Player)
if (Recharge.Instance.use((Player)damagee, GetName(), 200, false, false))

View File

@ -162,7 +162,7 @@ public class PerkBoneRush extends SmashPerk implements IThrown
DamageCause.CUSTOM, damage, false, true, false,
UtilEnt.getName(data.GetThrower()), reason);
target.setVelocity(data.GetThrown().getVelocity());
UtilAction.velocity(target, data.GetThrown().getVelocity());
}
@Override

View File

@ -105,7 +105,7 @@ public class PerkCreeperExplode extends SmashPerk
double elapsed = (System.currentTimeMillis() - _active.get(player))/1000d;
//Idle in Air
player.setVelocity(new Vector(0,0,0));
UtilAction.zeroVelocity(player);
//Sound
player.getWorld().playSound(player.getLocation(), Sound.CREEPER_HISS, (float)(0.5 + elapsed), (float)(0.5 + elapsed));

View File

@ -145,7 +145,7 @@ public class PerkDeathsGrasp extends Perk
UtilAction.velocity(damagee, UtilAlg.getTrajectory(damagee, damager), 1.8, false, 0, 1, 1.8, true);
damager.setVelocity(new Vector(0,0,0));
UtilAction.zeroVelocity(damager);
damager.getWorld().playSound(damager.getLocation(), Sound.ZOMBIE_HURT, 1f, 0.7f);

View File

@ -16,6 +16,7 @@ import org.bukkit.util.Vector;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilServer;
@ -126,7 +127,7 @@ public class PerkDisruptor extends Perk
_tntMap.remove(event.getItem());
event.getItem().remove();
event.getPlayer().setVelocity(new Vector(0,0.5,0));
UtilAction.velocity(event.getPlayer(), new Vector(0, 0.5, 0));
event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.EXPLODE, 1f, 2f);
event.getPlayer().playEffect(EntityEffect.HURT);

View File

@ -14,6 +14,7 @@ import org.bukkit.util.Vector;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilPlayer;
@ -130,6 +131,6 @@ public class PerkEggGun extends SmashPerk
DamageCause.PROJECTILE, 1, true, true, false,
UtilEnt.getName((LivingEntity)egg.getShooter()), GetName());
event.GetDamageeEntity().setVelocity(new Vector(0,0,0));
UtilAction.zeroVelocity(event.GetDamageeEntity());
}
}

View File

@ -17,6 +17,7 @@ import org.bukkit.util.Vector;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilFirework;
import mineplex.core.common.util.UtilPlayer;
@ -101,7 +102,7 @@ public class PerkFirefly extends SmashPerk
//Teleport
if (!UtilTime.elapsed(data.Time, 1500) && !superActive)
{
data.Player.setVelocity(new Vector(0,0,0));//.teleport(data.Location);
UtilAction.zeroVelocity(data.Player);
data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.2f, 0.6f);
data.Location = data.Player.getLocation();
@ -115,8 +116,7 @@ public class PerkFirefly extends SmashPerk
//Velocity
else if (!UtilTime.elapsed(data.Time, 2500) || superActive)
{
data.Player.setVelocity(data.Player.getLocation().getDirection().multiply(superActive ? 0.9 : 0.7).add(new Vector(0,0.15,0)));
//data.Player.setVelocity(data.Location.getDirection().multiply(0.7).add(new Vector(0,0.1,0)));
UtilAction.velocity(data.Player, data.Player.getLocation().getDirection().multiply(superActive ? 0.9 : 0.7).add(new Vector(0,0.15,0)));
data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.6f, 1.2f);
if (_tick == 0)

View File

@ -13,6 +13,7 @@ import org.bukkit.util.Vector;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilParticle;
@ -123,7 +124,7 @@ public class PerkFlameDash extends Perk
vel.normalize();
vel.setY(0.05);
data.Player.setVelocity(vel);
UtilAction.velocity(data.Player, vel);
//Sound
data.Player.getWorld().playSound(data.Player.getLocation(), Sound.FIZZ, 0.6f, 1.2f);

View File

@ -100,7 +100,7 @@ public class PerkFlameSlam extends Perk
Vector vel = player.getLocation().getDirection();
vel.setY(0);
UtilAlg.Normalize(vel);
player.setVelocity(vel.multiply(0.8));
UtilAction.velocity(player, vel.multiply(0.8));
//Particle
UtilParticle.PlayParticle(ParticleType.FLAME, player.getLocation().add(0, 1, 0), 0.2f, 0.2f, 0.2f, 0, 5,

View File

@ -92,7 +92,7 @@ public class PerkFleshArrow extends SmashPerk
Manager.GetCondition().Factory().Slow(GetName(), ent, event.GetDamagerEntity(true), 4, 3, false, false, false, false);
ent.setVelocity(new Vector(0,-0.5,0));
UtilAction.velocity(ent, new Vector(0,-0.5,0));
}
@EventHandler

View File

@ -13,6 +13,7 @@ import org.bukkit.util.Vector;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.recharge.Recharge;
@ -59,7 +60,7 @@ public class PerkIcePath extends Perk
if (!Recharge.Instance.use(player, GetName(), 12000, true, true))
return;
player.setVelocity(new Vector(0,0,0));
UtilAction.zeroVelocity(player);
player.teleport(player.getLocation().add(0, 0.75, 0));
_data.add(new IcePathData(player));

View File

@ -132,7 +132,7 @@ public class PerkSnowTurret extends SmashPerk
if (damagee.equals(_snowball.get(proj)))
return;
damagee.setVelocity(proj.getVelocity().multiply(0.3).add(new Vector(0, 0.3, 0)));
UtilAction.velocity(damagee, proj.getVelocity().multiply(0.3).add(new Vector(0, 0.3, 0)));
//Damage Event
if (!(damagee instanceof LivingEntity))

View File

@ -73,7 +73,7 @@ public class PerkSpiderLeap extends Perk
{
if (!UtilBlock.airFoliage(block) && !block.isLiquid())
{
player.setVelocity(new Vector(0,0.2,0));
UtilAction.velocity(player, new Vector(0, 0.2, 0));
if (!_secondJump.contains(player))
{

View File

@ -112,7 +112,7 @@ public class PerkTakedown extends Perk
DamageCause.CUSTOM, 8, true, true, false,
damager.getName(), GetName());
damager.setVelocity(new Vector(0,0,0));
UtilAction.zeroVelocity(damager);
//Inform
UtilPlayer.message(damager, F.main("Game", "You hit " + F.name(UtilEnt.getName(damagee)) + " with " + F.skill(GetName()) + "."));

View File

@ -0,0 +1,107 @@
package nautilus.game.arcade.kit.perks;
import mineplex.core.common.util.UtilParticle;
import mineplex.core.common.util.UtilServer;
import mineplex.core.common.util.UtilParticle.ViewDist;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilParticle.ParticleType;
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
import nautilus.game.arcade.kit.Perk;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
public class PerkVanishing extends Perk
{
public PerkVanishing()
{
super("Vanishing Act", new String[]
{
"Become invisible for 1.2 seconds each kill.",
"Attacking with melee removes invisibility."
});
}
@EventHandler
public void kill(CombatDeathEvent event)
{
if (!Manager.GetGame().IsLive())
return;
// //If it's an arrow kill (OITQ)
// if (!event.GetLog().GetKiller().GetReason().toLowerCase().contains("instagib"))
// return;
if (!event.GetLog().GetKiller().IsPlayer())
return;
Player killer = UtilPlayer.searchExact(event.GetLog().GetKiller().GetName());
if (killer == null)
return;
if (!Manager.IsAlive(killer))
return;
if (!Kit.HasKit(killer))
return;
Manager.GetCondition().Factory().Cloak("Vanishing Act", killer, null, 1.2, false, true);
UtilParticle.PlayParticle(ParticleType.LARGE_EXPLODE, killer.getLocation().add(0, 1, 0), 0, 0, 0, 0, 1, ViewDist.LONG, UtilServer.getPlayers());
killer.getWorld().playSound(killer.getLocation(), Sound.FIZZ, 1f, 2f);
}
@EventHandler
public void remove(CustomDamageEvent event)
{
if (event.isCancelled())
return;
if (!Manager.GetGame().IsLive())
return;
//Arrow damage, ignore it!
if (event.GetDamage() > 10)
return;
Player damager = event.GetDamagerPlayer(true);
if (damager == null)
return;
if (!Manager.IsAlive(damager))
return;
if (!Kit.HasKit(damager))
return;
Manager.GetCondition().EndCondition(damager, ConditionType.CLOAK, null);
}
// @EventHandler
// public void remove(UpdateEvent event)
// {
// if (event.getType() != UpdateType.TICK)
// return;
//
// if (!Manager.GetGame().IsLive())
// return;
//
// for (Player player : Manager.GetGame().GetPlayers(true))
// {
// if (!Kit.HasKit(player))
// continue;
//
// if (!UtilPlayer.isChargingBow(player))
// continue;
//
// if (Manager.GetCondition().IsCloaked(player))
// Manager.GetCondition().Clean(player);
// }
// }
}

View File

@ -100,7 +100,7 @@ public class PerkWebShot extends SmashPerk implements IThrown
DamageCause.PROJECTILE, 6, false, false, false,
UtilEnt.getName(data.GetThrower()), GetName());
target.setVelocity(new Vector(0,0,0));
UtilAction.zeroVelocity(target);
return;
}

Some files were not shown because too many files have changed in this diff Show More