Merge remote-tracking branch 'origin/master' into monster-maze
This commit is contained in:
commit
0a9f7cc888
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
|
@ -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►");
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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>
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -10,4 +10,9 @@ public class ServerInfo
|
|||
public String ServerType;
|
||||
public String Game;
|
||||
public boolean HostedByStaff;
|
||||
|
||||
public int getAvailableSlots()
|
||||
{
|
||||
return MaxPlayers - CurrentPlayers;
|
||||
}
|
||||
}
|
|
@ -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()
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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()
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}*/
|
||||
}
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>();
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -220,5 +220,10 @@ public enum GameType
|
|||
{
|
||||
return _display.getGameCategory();
|
||||
}
|
||||
|
||||
public String GetKitGameName()
|
||||
{
|
||||
return _display.getKitGameName();
|
||||
}
|
||||
|
||||
}
|
|
@ -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() + "...");
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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];
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,8 @@ public class TeamSkywars extends Skywars
|
|||
this.SpawnNearAllies = true;
|
||||
|
||||
this.DamageTeamSelf = false;
|
||||
|
||||
this.DontAllowOverfill = true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
|
|
@ -51,6 +51,8 @@ public class TeamSuperSmash extends SuperSmash
|
|||
this.DamageTeamSelf = false;
|
||||
|
||||
this.TeamArmorHotbar = true;
|
||||
|
||||
this.DontAllowOverfill = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -55,6 +55,8 @@ public class TeamSurvivalGames extends SurvivalGames
|
|||
|
||||
this.DamageTeamSelf = false;
|
||||
|
||||
this.DontAllowOverfill = true;
|
||||
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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++;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))
|
||||
{
|
||||
|
|
|
@ -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()) + "."));
|
||||
|
|
|
@ -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);
|
||||
// }
|
||||
// }
|
||||
}
|
|
@ -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
Loading…
Reference in New Issue