Merge remote-tracking branch 'origin/master' into foo
This commit is contained in:
commit
a72eee9cf3
@ -10,6 +10,7 @@ import mineplex.serverdata.data.BungeeServer;
|
||||
import mineplex.serverdata.data.DataRepository;
|
||||
import mineplex.serverdata.redis.RedisDataRepository;
|
||||
import mineplex.serverdata.servers.ConnectionData;
|
||||
import mineplex.serverdata.servers.ConnectionData.ConnectionType;
|
||||
import mineplex.serverdata.servers.ServerManager;
|
||||
import mineplex.serverdata.servers.ServerRepository;
|
||||
import net.md_5.bungee.api.ServerPing.Players;
|
||||
@ -46,10 +47,10 @@ public class PlayerCount implements Listener, Runnable
|
||||
Region.ALL, BungeeServer.class, "bungeeServers");
|
||||
|
||||
if (_region == Region.US)
|
||||
_secondRepository = new RedisDataRepository<BungeeServer>(new ConnectionData("10.81.1.156", 6379), new ConnectionData("10.81.1.156", 6377),
|
||||
_secondRepository = new RedisDataRepository<BungeeServer>(new ConnectionData("10.81.1.156", 6379, ConnectionType.MASTER, "ServerStatus"), new ConnectionData("10.81.1.156", 6377, ConnectionType.SLAVE, "ServerStatus"),
|
||||
Region.ALL, BungeeServer.class, "bungeeServers");
|
||||
else
|
||||
_secondRepository = new RedisDataRepository<BungeeServer>(new ConnectionData("10.3.203.80", 6379), new ConnectionData("10.3.203.80", 6377),
|
||||
_secondRepository = new RedisDataRepository<BungeeServer>(new ConnectionData("10.3.203.80", 6379, ConnectionType.MASTER, "ServerStatus"), new ConnectionData("10.3.203.80", 6377, ConnectionType.SLAVE, "ServerStatus"),
|
||||
Region.ALL, BungeeServer.class, "bungeeServers");
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ import com.neustar.ultra.api.webservice.v01.UltraWSException;
|
||||
/*
|
||||
* User: jbodner
|
||||
* Date: 1/28/13
|
||||
* Time: 1:11 PM4
|
||||
* Time: 1:11 PM
|
||||
*
|
||||
* Copyright 2000-2013 NeuStar, Inc. All rights reserved.
|
||||
* NeuStar, the Neustar logo and related names and logos are registered
|
||||
|
@ -26,6 +26,7 @@ import mineplex.serverdata.data.DataRepository;
|
||||
import mineplex.serverdata.redis.RedisDataRepository;
|
||||
import mineplex.serverdata.servers.ConnectionData;
|
||||
import mineplex.serverdata.servers.ServerManager;
|
||||
import mineplex.serverdata.servers.ConnectionData.ConnectionType;
|
||||
|
||||
public class BungeeRotator
|
||||
{
|
||||
@ -105,7 +106,7 @@ public class BungeeRotator
|
||||
_repository = new RedisDataRepository<BungeeServer>(ServerManager.getMasterConnection(), ServerManager.getSlaveConnection(),
|
||||
Region.ALL, BungeeServer.class, "bungeeServers");
|
||||
|
||||
_secondRepository = new RedisDataRepository<BungeeServer>(new ConnectionData("10.81.1.156", 6379), new ConnectionData("10.81.1.156", 6377),
|
||||
_secondRepository = new RedisDataRepository<BungeeServer>(new ConnectionData("10.33.53.16", 6379, ConnectionType.MASTER, "ServerStatus"), new ConnectionData("10.33.53.16", 6377, ConnectionType.SLAVE, "ServerStatus"),
|
||||
Region.ALL, BungeeServer.class, "bungeeServers");
|
||||
|
||||
//_ipRepository = new PlayerStatsRepository();
|
||||
|
@ -31,7 +31,7 @@ public class BenefitManager extends MiniDbClientPlugin<BenefitData>
|
||||
|
||||
//_benefits.add(new Christmas2014(plugin, _repository, inventoryManager));
|
||||
//_benefits.add(new Thanksgiving2014(plugin, _repository, inventoryManager));
|
||||
_benefits.add(new Players40k(plugin, _repository, inventoryManager));
|
||||
_benefits.add(new Players40k(this, _repository, inventoryManager));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
|
@ -5,15 +5,16 @@ import java.sql.SQLException;
|
||||
|
||||
import mineplex.core.database.DBPool;
|
||||
import mineplex.core.database.RepositoryBase;
|
||||
import mineplex.core.database.column.ColumnInt;
|
||||
import mineplex.core.database.column.ColumnVarChar;
|
||||
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public class BenefitManagerRepository extends RepositoryBase
|
||||
{
|
||||
private static String CREATE_BENEFIT_TABLE = "CREATE TABLE IF NOT EXISTS rankBenefits (id INT NOT NULL AUTO_INCREMENT, accountId INT, benefit VARCHAR(100), PRIMARY KEY (id), INDEX rankUuid (uuid));";
|
||||
private static String CREATE_BENEFIT_TABLE = "CREATE TABLE IF NOT EXISTS rankBenefits (id INT NOT NULL AUTO_INCREMENT, accountId INT, benefit VARCHAR(100), PRIMARY KEY (id), FOREIGN KEY (accountId) REFERENCES accounts(id));";
|
||||
|
||||
private static String INSERT_BENEFIT = "INSERT INTO rankBenefits (uuid, benefit) VALUES (?, ?);";
|
||||
private static String INSERT_BENEFIT = "INSERT INTO rankBenefits (accountId, benefit) VALUES (?, ?);";
|
||||
|
||||
public BenefitManagerRepository(JavaPlugin plugin)
|
||||
{
|
||||
@ -23,7 +24,7 @@ public class BenefitManagerRepository extends RepositoryBase
|
||||
@Override
|
||||
protected void initialize()
|
||||
{
|
||||
// executeUpdate(CREATE_BENEFIT_TABLE);
|
||||
executeUpdate(CREATE_BENEFIT_TABLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -31,9 +32,9 @@ public class BenefitManagerRepository extends RepositoryBase
|
||||
{
|
||||
}
|
||||
|
||||
public boolean addBenefit(String uuid, String benefit)
|
||||
public boolean addBenefit(int accountId, String benefit)
|
||||
{
|
||||
return executeUpdate(INSERT_BENEFIT, new ColumnVarChar("uuid", 100, uuid), new ColumnVarChar("benefit", 100, benefit)) > 0;
|
||||
return executeUpdate(INSERT_BENEFIT, new ColumnInt("accountId", accountId), new ColumnVarChar("benefit", 100, benefit)) > 0;
|
||||
}
|
||||
|
||||
public BenefitData retrievePlayerBenefitData(ResultSet resultSet) throws SQLException
|
||||
@ -42,9 +43,11 @@ public class BenefitManagerRepository extends RepositoryBase
|
||||
|
||||
while (resultSet.next())
|
||||
{
|
||||
playerBenefit.Benefits.add(resultSet.getString(1));
|
||||
playerBenefit.Benefits.add(resultSet.getString(1));
|
||||
}
|
||||
|
||||
playerBenefit.Loaded = true;
|
||||
|
||||
return playerBenefit;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package mineplex.core.benefit.benefits;
|
||||
|
||||
import mineplex.core.benefit.BenefitManager;
|
||||
import mineplex.core.benefit.BenefitManagerRepository;
|
||||
import mineplex.core.common.util.Callback;
|
||||
|
||||
@ -9,11 +10,11 @@ import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public abstract class BenefitBase
|
||||
{
|
||||
private JavaPlugin _plugin;
|
||||
private BenefitManager _plugin;
|
||||
private String _name;
|
||||
private BenefitManagerRepository _repository;
|
||||
|
||||
protected BenefitBase(JavaPlugin plugin, String name, BenefitManagerRepository repository)
|
||||
protected BenefitBase(BenefitManager plugin, String name, BenefitManagerRepository repository)
|
||||
{
|
||||
_plugin = plugin;
|
||||
_name = name;
|
||||
@ -22,7 +23,7 @@ public abstract class BenefitBase
|
||||
|
||||
public JavaPlugin getPlugin()
|
||||
{
|
||||
return _plugin;
|
||||
return _plugin.getPlugin();
|
||||
}
|
||||
|
||||
public BenefitManagerRepository getRepository()
|
||||
@ -34,11 +35,11 @@ public abstract class BenefitBase
|
||||
|
||||
public void recordBenefit(final Player player, final Callback<Boolean> callback)
|
||||
{
|
||||
Bukkit.getServer().getScheduler().runTaskAsynchronously(_plugin, new Runnable()
|
||||
Bukkit.getServer().getScheduler().runTaskAsynchronously(_plugin.getPlugin(), new Runnable()
|
||||
{
|
||||
public void run()
|
||||
{
|
||||
boolean success = _repository.addBenefit(player.getUniqueId().toString(), _name);
|
||||
boolean success = _repository.addBenefit(_plugin.getClientManager().Get(player).getAccountId(), _name);
|
||||
|
||||
callback.run(success);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package mineplex.core.benefit.benefits;
|
||||
|
||||
import mineplex.core.benefit.BenefitManager;
|
||||
import mineplex.core.benefit.BenefitManagerRepository;
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.Callback;
|
||||
@ -13,7 +14,7 @@ public class Christmas2014 extends BenefitBase
|
||||
{
|
||||
private InventoryManager _inventoryManager;
|
||||
|
||||
public Christmas2014(JavaPlugin plugin, BenefitManagerRepository repository, InventoryManager inventoryManager)
|
||||
public Christmas2014(BenefitManager plugin, BenefitManagerRepository repository, InventoryManager inventoryManager)
|
||||
{
|
||||
super(plugin, "Christmas2014", repository);
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package mineplex.core.benefit.benefits;
|
||||
|
||||
import mineplex.core.benefit.BenefitManager;
|
||||
import mineplex.core.benefit.BenefitManagerRepository;
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.Callback;
|
||||
@ -13,7 +14,7 @@ public class Players40k extends BenefitBase
|
||||
{
|
||||
private InventoryManager _inventoryManager;
|
||||
|
||||
public Players40k(JavaPlugin plugin, BenefitManagerRepository repository, InventoryManager inventoryManager)
|
||||
public Players40k(BenefitManager plugin, BenefitManagerRepository repository, InventoryManager inventoryManager)
|
||||
{
|
||||
super(plugin, "Players40k", repository);
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package mineplex.core.benefit.benefits;
|
||||
|
||||
import mineplex.core.benefit.BenefitManager;
|
||||
import mineplex.core.benefit.BenefitManagerRepository;
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.Callback;
|
||||
@ -13,7 +14,7 @@ public class Thanksgiving2014 extends BenefitBase
|
||||
{
|
||||
private InventoryManager _inventoryManager;
|
||||
|
||||
public Thanksgiving2014(JavaPlugin plugin, BenefitManagerRepository repository, InventoryManager inventoryManager)
|
||||
public Thanksgiving2014(BenefitManager plugin, BenefitManagerRepository repository, InventoryManager inventoryManager)
|
||||
{
|
||||
super(plugin, "Thanksgiving2014", repository);
|
||||
|
||||
|
@ -10,8 +10,6 @@ public enum Category
|
||||
PermMute,
|
||||
Other; // Represents perm ban - (or old perm mutes)
|
||||
|
||||
//test
|
||||
|
||||
public static boolean contains(String s)
|
||||
{
|
||||
try
|
||||
|
17
Plugins/Mineplex.Queue.Core/.project
Normal file
17
Plugins/Mineplex.Queue.Core/.project
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Mineplex.Queue.Core</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import mineplex.serverdata.servers.ConnectionData;
|
||||
import mineplex.serverdata.servers.ConnectionData.ConnectionType;
|
||||
|
||||
public class RedisConfig
|
||||
{
|
||||
@ -14,18 +15,15 @@ public class RedisConfig
|
||||
private static Random random = new Random(); // Utility random
|
||||
|
||||
// The connections managed by this configuration
|
||||
private ConnectionData _masterConnection;
|
||||
private List<ConnectionData> _slaveConnections;
|
||||
private List<ConnectionData> _connections;
|
||||
|
||||
/**
|
||||
* Class constructor
|
||||
* @param master
|
||||
* @param slaves
|
||||
* @param connections
|
||||
*/
|
||||
public RedisConfig(ConnectionData master, List<ConnectionData> slaves)
|
||||
public RedisConfig(List<ConnectionData> connections)
|
||||
{
|
||||
_masterConnection = master;
|
||||
_slaveConnections = slaves;
|
||||
_connections = connections;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -34,7 +32,8 @@ public class RedisConfig
|
||||
*/
|
||||
public RedisConfig()
|
||||
{
|
||||
this(new ConnectionData(DEFAULT_IP, DEFAULT_PORT), new ArrayList<ConnectionData>());
|
||||
_connections = new ArrayList<ConnectionData>();
|
||||
_connections.add(new ConnectionData(DEFAULT_IP, DEFAULT_PORT, ConnectionType.MASTER, "DefaultConnection"));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -43,23 +42,39 @@ public class RedisConfig
|
||||
*/
|
||||
public ConnectionData getConnection()
|
||||
{
|
||||
return getConnection(true);
|
||||
return getConnection(true, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param writeable - whether the returned connection reference can receive write-requests.
|
||||
* @return a {@link ConnectionData} referencing a valid redis-connection from this configuration.
|
||||
*/
|
||||
public ConnectionData getConnection(boolean writeable)
|
||||
public ConnectionData getConnection(boolean writeable, String name)
|
||||
{
|
||||
if (writeable || _slaveConnections.size() == 0)
|
||||
List<ConnectionData> connections = getConnections(writeable, name);
|
||||
|
||||
if (connections.size() > 0)
|
||||
{
|
||||
return _masterConnection;
|
||||
int index = random.nextInt(connections.size());
|
||||
return connections.get(index);
|
||||
}
|
||||
else
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<ConnectionData> getConnections(boolean writeable, String name)
|
||||
{
|
||||
List<ConnectionData> connections = new ArrayList<ConnectionData>();
|
||||
ConnectionType type = (writeable) ? ConnectionType.MASTER : ConnectionType.SLAVE;
|
||||
|
||||
for (ConnectionData connection : _connections)
|
||||
{
|
||||
int index = random.nextInt(_slaveConnections.size());
|
||||
return _slaveConnections.get(index);
|
||||
if (connection.getType() == type && connection.nameMatches(name))
|
||||
{
|
||||
connections.add(connection);
|
||||
}
|
||||
}
|
||||
|
||||
return connections;
|
||||
}
|
||||
}
|
||||
|
@ -7,22 +7,48 @@ package mineplex.serverdata.servers;
|
||||
*/
|
||||
public class ConnectionData
|
||||
{
|
||||
|
||||
public enum ConnectionType
|
||||
{
|
||||
MASTER,
|
||||
SLAVE;
|
||||
}
|
||||
|
||||
private ConnectionType _type; // The type of connection available
|
||||
public ConnectionType getType() { return _type; }
|
||||
|
||||
private String _name; // The name associated with this connection
|
||||
public String getName() { return _name; }
|
||||
|
||||
private String _host; // The host URL to connect to repository
|
||||
private String _host; // The host URL to connect to repository
|
||||
public String getHost() { return _host; }
|
||||
|
||||
private int _port; // The port to connect to repository
|
||||
private int _port; // The port to connect to repository
|
||||
public int getPort() { return _port; }
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* @param host - the host URL defining the repository
|
||||
* @param port - the port used for connection to repository
|
||||
* @param type - the type of connection referenced by this ConnectionData
|
||||
* @param name - the name associated with ConnectionData
|
||||
*/
|
||||
public ConnectionData(String host, int port)
|
||||
public ConnectionData(String host, int port, ConnectionType type, String name)
|
||||
{
|
||||
_host = host;
|
||||
_port = port;
|
||||
_type = type;
|
||||
_name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @return true, if {@code name} is null or it matches (case-insensitive) the {@code _name} associated
|
||||
* with this ConnectionData, false otherwise.
|
||||
*/
|
||||
public boolean nameMatches(String name)
|
||||
{
|
||||
return (name == null || name.equalsIgnoreCase(_name));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@ import java.util.Random;
|
||||
import mineplex.serverdata.Region;
|
||||
import mineplex.serverdata.redis.RedisConfig;
|
||||
import mineplex.serverdata.redis.RedisServerRepository;
|
||||
import mineplex.serverdata.servers.ConnectionData.ConnectionType;
|
||||
|
||||
/**
|
||||
* ServerManager handles the creation/management of {@link ServerRepository}s for use.
|
||||
@ -20,6 +21,8 @@ import mineplex.serverdata.redis.RedisServerRepository;
|
||||
*/
|
||||
public class ServerManager
|
||||
{
|
||||
public static final String SERVER_STATUS_LABEL = "ServerStatus"; // Label differentiating ServerStatus related servers
|
||||
|
||||
// Configuration determining connection information
|
||||
private static RedisConfig _config;
|
||||
|
||||
@ -32,7 +35,7 @@ public class ServerManager
|
||||
* @param region - the geographical region of the {@link ServerRepository}.
|
||||
* @return a newly instanced (or cached) {@link ServerRepository} for the specified {@code region}.
|
||||
*/
|
||||
public static ServerRepository getServerRepository(ConnectionData writeConn, ConnectionData readConn, Region region)
|
||||
private static ServerRepository getServerRepository(ConnectionData writeConn, ConnectionData readConn, Region region)
|
||||
{
|
||||
if (repositories.containsKey(region)) return repositories.get(region);
|
||||
|
||||
@ -49,7 +52,7 @@ public class ServerManager
|
||||
*/
|
||||
public static ServerRepository getServerRepository(Region region)
|
||||
{
|
||||
return getServerRepository(getMasterConnection(), getSlaveConnection(), region);
|
||||
return getServerRepository(getConnection(true, SERVER_STATUS_LABEL), getConnection(false, SERVER_STATUS_LABEL), region);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,13 +72,18 @@ public class ServerManager
|
||||
return getConnection(false);
|
||||
}
|
||||
|
||||
public static ConnectionData getConnection(boolean writeable, String name)
|
||||
{
|
||||
return getConfig().getConnection(writeable, name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param writeable - whether the connection referenced in return can receive write-requests
|
||||
* @return a newly generated {@code ConnectionData} pointing to a valid connection.
|
||||
*/
|
||||
public static ConnectionData getConnection(boolean writeable)
|
||||
{
|
||||
return getConfig().getConnection(writeable);
|
||||
return getConnection(writeable, "DefaultConnection");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,32 +99,28 @@ public class ServerManager
|
||||
|
||||
if (configFile.exists())
|
||||
{
|
||||
List<ConnectionData> connections = new ArrayList<ConnectionData>();
|
||||
List<String> lines = Files.readAllLines(configFile.toPath(), Charset.defaultCharset());
|
||||
|
||||
ConnectionData master = deserializeConnection(lines.get(0));
|
||||
List<ConnectionData> slaves = new ArrayList<ConnectionData>();
|
||||
|
||||
for (int i = 1; i < lines.size(); i++)
|
||||
for (String line : lines)
|
||||
{
|
||||
ConnectionData slave = deserializeConnection(lines.get(i));
|
||||
slaves.add(slave);
|
||||
ConnectionData connection = deserializeConnection(line);
|
||||
connections.add(connection);
|
||||
|
||||
}
|
||||
|
||||
System.out.println("LOADED " + (master != null) + " " + slaves.size());
|
||||
|
||||
_config = new RedisConfig(master, slaves);
|
||||
System.out.println("Master connection " + master.getHost() + " port " + master.getPort());
|
||||
_config = new RedisConfig(connections);
|
||||
}
|
||||
else
|
||||
{
|
||||
System.out.println("redis-config.dat not found at " + configFile.toPath().toString());
|
||||
log("redis-config.dat not found at " + configFile.toPath().toString());
|
||||
_config = new RedisConfig();
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
exception.printStackTrace();
|
||||
System.out.println("---Unable To Parse Redis Configuration File---");
|
||||
log("---Unable To Parse Redis Configuration File---");
|
||||
}
|
||||
|
||||
}
|
||||
@ -132,14 +136,22 @@ public class ServerManager
|
||||
{
|
||||
String[] args = line.split(" ");
|
||||
|
||||
if (args.length == 2)
|
||||
if (args.length >= 2)
|
||||
{
|
||||
String ip = args[0];
|
||||
int port = Integer.parseInt(args[1]);
|
||||
String typeName = (args.length >= 3) ? args[2].toUpperCase() : "MASTER"; // Defaults to MASTER if omitted.
|
||||
ConnectionType type = ConnectionType.valueOf(typeName);
|
||||
String name = (args.length >= 4) ? args[3] : "DefaultConnection"; // Defaults to DefaultConnection if omitted.
|
||||
|
||||
return new ConnectionData(ip, port);
|
||||
return new ConnectionData(ip, port, type, name);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static void log(String message)
|
||||
{
|
||||
System.out.println(String.format("[ServerManager] %s", message));
|
||||
}
|
||||
}
|
||||
|
17
Plugins/Mineplex.ServerProcesses/.project
Normal file
17
Plugins/Mineplex.ServerProcesses/.project
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Mineplex.ServerProcesses</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
@ -96,7 +96,10 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
|
||||
//Lilly Pad Bridge
|
||||
private ArrayList<Location> _lillyPads = new ArrayList<Location>();
|
||||
|
||||
|
||||
//Ice
|
||||
private ArrayList<Location> _iceBridge = new ArrayList<Location>();
|
||||
|
||||
private HashSet<BridgePart> _bridgeParts = new HashSet<BridgePart>();
|
||||
|
||||
//Animals
|
||||
@ -108,14 +111,13 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
|
||||
//Chest Loot
|
||||
private ArrayList<ItemStack> _chestLoot = new ArrayList<ItemStack>();
|
||||
|
||||
|
||||
//Ore
|
||||
private OreHider _ore;
|
||||
private double _oreDensity = 2.2;
|
||||
|
||||
//Map Flags
|
||||
private int _buildHeight = -1;
|
||||
private int _iceForm = -1;
|
||||
|
||||
//Player Respawn
|
||||
private HashSet<String> _usedLife = new HashSet<String>();
|
||||
@ -150,16 +152,16 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
"Special loot is located in the center.",
|
||||
"The last team alive wins!"
|
||||
});
|
||||
|
||||
|
||||
_ore = new OreHider();
|
||||
|
||||
// Flags
|
||||
GameTimeout = Manager.IsTournamentServer() ? 5400000 : 3600000;
|
||||
|
||||
Manager.GetExplosion().SetLiquidDamage(false);
|
||||
|
||||
|
||||
this.StrictAntiHack = true;
|
||||
|
||||
|
||||
DamageSelf = true;
|
||||
|
||||
ItemDrop = true;
|
||||
@ -211,7 +213,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
new TntMinerStatTracker(this),
|
||||
new KillFastStatTracker(this, 4, 10, "Rampage"),
|
||||
new DeathBomberStatTracker(this, 5)
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -253,9 +255,6 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
@Override
|
||||
public void ParseData()
|
||||
{
|
||||
if (!WorldData.GetDataLocs("WHITE").isEmpty())
|
||||
WorldWaterDamage = 4;
|
||||
|
||||
ParseLavaBridge();
|
||||
ParseWoodBridge();
|
||||
ParseIceBridge();
|
||||
@ -379,7 +378,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private void ParseOre(ArrayList<Location> teamOre)
|
||||
{
|
||||
@ -648,15 +647,12 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
|
||||
_lavaSource = WorldData.GetDataLocs("BLACK");
|
||||
}
|
||||
|
||||
|
||||
private void ParseIceBridge()
|
||||
{
|
||||
if (WorldData.GetCustomLocs("WATER_HEIGHT").isEmpty())
|
||||
return;
|
||||
|
||||
_iceForm = WorldData.GetCustomLocs("WATER_HEIGHT").get(0).getBlockY();
|
||||
_iceBridge = WorldData.GetCustomLocs("LIGHT_BLUE");
|
||||
}
|
||||
|
||||
|
||||
private void ParseLillyPad()
|
||||
{
|
||||
_lillyPads = WorldData.GetDataLocs("LIME");
|
||||
@ -673,15 +669,15 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
|
||||
if (!UtilTime.elapsed(this.GetStateTime(), _bridgeTime))
|
||||
return;
|
||||
|
||||
|
||||
if (!_bridgesDown)
|
||||
{
|
||||
Manager.GetExplosion().SetLiquidDamage(true);
|
||||
this.Announce(C.cRed + C.Bold + "ALERT: " + ChatColor.RESET + C.Bold + "THE BRIDGES ARE SPAWNING!");
|
||||
}
|
||||
|
||||
|
||||
_bridgesDown = true;
|
||||
|
||||
|
||||
for (Kit kit : this.GetKits())
|
||||
{
|
||||
if (kit instanceof KitDestructor)
|
||||
@ -696,63 +692,6 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
BuildLillyPad();
|
||||
}
|
||||
|
||||
private void BuildIce()
|
||||
{
|
||||
if (_iceForm <= 0)
|
||||
return;
|
||||
|
||||
if (UtilTime.elapsed(this.GetStateTime(), _bridgeTime + 120000))
|
||||
{
|
||||
WorldData.World.setStorm(false);
|
||||
return;
|
||||
}
|
||||
|
||||
WorldData.World.setStorm(true);
|
||||
|
||||
//Short Delay (so snow properly starts)
|
||||
if (!UtilTime.elapsed(this.GetStateTime(), _bridgeTime + 6000))
|
||||
return;
|
||||
|
||||
int xVar = WorldData.MaxX - WorldData.MinX;
|
||||
int zVar = WorldData.MaxZ - WorldData.MinZ;
|
||||
|
||||
//do area
|
||||
BuildIceArea(WorldData.MinX, WorldData.MinX + xVar/2, WorldData.MinZ, WorldData.MinZ + zVar/2, Material.REDSTONE_BLOCK);
|
||||
BuildIceArea(WorldData.MinX + xVar/2, WorldData.MaxX, WorldData.MinZ, WorldData.MinZ + zVar/2, Material.GOLD_BLOCK);
|
||||
BuildIceArea(WorldData.MinX, WorldData.MinX + xVar/2, WorldData.MinZ + zVar/2, WorldData.MaxZ, Material.EMERALD_BLOCK);
|
||||
BuildIceArea(WorldData.MinX + xVar/2, WorldData.MaxX, WorldData.MinZ + zVar/2, WorldData.MaxZ, Material.DIAMOND_BLOCK);
|
||||
}
|
||||
|
||||
private void BuildIceArea(int xLow, int xHigh, int zLow, int zHigh, Material mat)
|
||||
{
|
||||
int attempts = 1000;
|
||||
int complete = 10;
|
||||
|
||||
//Team A
|
||||
while (attempts > 0 && complete > 0)
|
||||
{
|
||||
attempts--;
|
||||
|
||||
int x = xLow + UtilMath.r(xHigh - xLow);
|
||||
int z = zLow + UtilMath.r(zHigh - zLow);
|
||||
|
||||
Block block = WorldData.World.getBlockAt(x, _iceForm, z);
|
||||
|
||||
if (!block.isLiquid())
|
||||
continue;
|
||||
|
||||
if (block.getRelative(BlockFace.NORTH).isLiquid() &&
|
||||
block.getRelative(BlockFace.EAST).isLiquid() &&
|
||||
block.getRelative(BlockFace.SOUTH).isLiquid() &&
|
||||
block.getRelative(BlockFace.WEST).isLiquid())
|
||||
continue;
|
||||
|
||||
block.setType(Material.ICE);
|
||||
|
||||
complete--;
|
||||
}
|
||||
}
|
||||
|
||||
private void BuildLava()
|
||||
{
|
||||
for (int i = 0; i < 3; i++)
|
||||
@ -783,27 +722,71 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
0.5f + (float) Math.random());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void BuildLillyPad()
|
||||
{
|
||||
for (int i = 0; i < 2; i++)
|
||||
if (_lillyPads != null && !_lillyPads.isEmpty())
|
||||
{
|
||||
// Random Block
|
||||
Location bestLoc = _lillyPads.get(UtilMath.r(_lillyPads.size()));
|
||||
Location loc = _lillyPads.get(UtilMath.r(_lillyPads.size()));
|
||||
|
||||
if (bestLoc.getBlock().getRelative(BlockFace.DOWN).isLiquid())
|
||||
if (!loc.getBlock().getRelative(BlockFace.DOWN).isLiquid())
|
||||
continue;
|
||||
|
||||
_lillyPads.remove(bestLoc);
|
||||
_lillyPads.remove(loc);
|
||||
|
||||
MapUtil.QuickChangeBlockAt(loc, Material.WATER_LILY);
|
||||
|
||||
MapUtil.QuickChangeBlockAt(bestLoc, Material.WATER_LILY);
|
||||
|
||||
// Sound
|
||||
bestLoc.getWorld().playEffect(bestLoc, Effect.STEP_SOUND, 111);
|
||||
loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 111);
|
||||
}
|
||||
}
|
||||
|
||||
private void BuildIce()
|
||||
{
|
||||
if (UtilTime.elapsed(this.GetStateTime(), _bridgeTime + 120000))
|
||||
{
|
||||
WorldData.World.setStorm(false);
|
||||
return;
|
||||
}
|
||||
|
||||
WorldData.World.setStorm(true);
|
||||
|
||||
int attempts = 0;
|
||||
int done = 0;
|
||||
while (done < 2 && attempts < 500 && _iceBridge != null && !_iceBridge.isEmpty())
|
||||
{
|
||||
attempts++;
|
||||
|
||||
// Random Block
|
||||
Location loc = _iceBridge.get(UtilMath.r(_iceBridge.size()));
|
||||
|
||||
Block block = loc.getBlock().getRelative(BlockFace.DOWN);
|
||||
|
||||
if (!block.isLiquid())
|
||||
continue;
|
||||
|
||||
if (block.getRelative(BlockFace.NORTH).isLiquid() &&
|
||||
block.getRelative(BlockFace.EAST).isLiquid() &&
|
||||
block.getRelative(BlockFace.SOUTH).isLiquid() &&
|
||||
block.getRelative(BlockFace.WEST).isLiquid())
|
||||
continue;
|
||||
|
||||
_iceBridge.remove(loc);
|
||||
|
||||
if (Math.random() > 0.25)
|
||||
MapUtil.QuickChangeBlockAt(loc, Material.PACKED_ICE);
|
||||
else
|
||||
MapUtil.QuickChangeBlockAt(loc, Material.ICE);
|
||||
|
||||
// Sound
|
||||
loc.getWorld().playEffect(loc, Effect.STEP_SOUND, Material.ICE);
|
||||
|
||||
done++;
|
||||
}
|
||||
}
|
||||
|
||||
private void BuildWood()
|
||||
{
|
||||
if (_woodBridgeBlocks != null && !_woodBridgeBlocks.isEmpty())
|
||||
@ -1051,7 +1034,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
|
||||
if (_bridgesDown)
|
||||
return;
|
||||
|
||||
|
||||
//In Liquid
|
||||
if (event.getBlock().getRelative(BlockFace.UP).isLiquid() ||
|
||||
event.getBlockReplacedState().getTypeId() == 8 ||
|
||||
@ -1061,9 +1044,9 @@ 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));
|
||||
|
||||
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -1178,7 +1161,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
{
|
||||
if (event.getBucket() != Material.WATER_BUCKET)
|
||||
return;
|
||||
|
||||
|
||||
if (WorldWaterDamage > 0)
|
||||
{
|
||||
UtilPlayer.message(
|
||||
@ -1186,7 +1169,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
F.main("Game", "Cannot use " + F.elem("Water Bucket") + " on this map."));
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
|
||||
else if (!_bridgesDown)
|
||||
{
|
||||
UtilPlayer.message(
|
||||
@ -1263,7 +1246,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
{
|
||||
if (!team.IsTeamAlive())
|
||||
continue;
|
||||
|
||||
|
||||
Scoreboard.WriteBlank();
|
||||
|
||||
for (Player player : team.GetPlayers(true))
|
||||
@ -1446,7 +1429,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
SetState(GameState.End);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ArrayList<GameTeam> bestTeams = new ArrayList<GameTeam>();
|
||||
int bestKills = 0;
|
||||
|
||||
@ -1508,7 +1491,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
{
|
||||
return _bridgesDown;
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void CheatChestBreak(BlockBreakEvent event)
|
||||
{
|
||||
@ -1517,7 +1500,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
|
||||
if (event.getBlock().getType() != Material.CHEST)
|
||||
return;
|
||||
|
||||
|
||||
if (!IsAlive(event.getPlayer()))
|
||||
return;
|
||||
|
||||
@ -1531,7 +1514,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void CheatChestBreak(BlockPlaceEvent event)
|
||||
{
|
||||
@ -1540,7 +1523,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
|
||||
if (event.getBlock().getType() != Material.CHEST)
|
||||
return;
|
||||
|
||||
|
||||
if (!IsAlive(event.getPlayer()))
|
||||
return;
|
||||
|
||||
@ -1554,19 +1537,19 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void CheatChestInteract(PlayerInteractEvent event)
|
||||
{
|
||||
if (_bridgesDown)
|
||||
return;
|
||||
|
||||
|
||||
if (event.getClickedBlock() == null)
|
||||
return;
|
||||
|
||||
if (event.getClickedBlock().getType() != Material.CHEST)
|
||||
return;
|
||||
|
||||
|
||||
if (!IsAlive(event.getPlayer()))
|
||||
return;
|
||||
|
||||
@ -1580,50 +1563,50 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void PreBridgeDamage(CustomDamageEvent event)
|
||||
{
|
||||
if (event.IsCancelled())
|
||||
return;
|
||||
|
||||
|
||||
if (_bridgesDown || event.GetProjectile() != null)
|
||||
return;
|
||||
|
||||
|
||||
GameTeam damageeTeam = GetTeam(event.GetDamageePlayer());
|
||||
GameTeam damagerTeam = GetTeam(event.GetDamagerPlayer(false));
|
||||
|
||||
|
||||
if (damageeTeam == null || damagerTeam == null)
|
||||
return;
|
||||
|
||||
|
||||
if (damageeTeam.equals(damagerTeam))
|
||||
return;
|
||||
|
||||
|
||||
Player damagee = event.GetDamageePlayer();
|
||||
Player damager = event.GetDamagerPlayer(false);
|
||||
|
||||
|
||||
//Damagee is closer to Damagers Island
|
||||
if (UtilMath.offset(damagee.getLocation(), UtilWorld.averageLocation(damageeTeam.GetSpawns())) >
|
||||
UtilMath.offset(damagee.getLocation(), UtilWorld.averageLocation(damagerTeam.GetSpawns())))
|
||||
UtilMath.offset(damagee.getLocation(), UtilWorld.averageLocation(damagerTeam.GetSpawns())))
|
||||
{
|
||||
cheaterKill(damagee);
|
||||
}
|
||||
|
||||
|
||||
//Damagee is closer to Damagees Island
|
||||
if (UtilMath.offset(damager.getLocation(), UtilWorld.averageLocation(damagerTeam.GetSpawns())) >
|
||||
UtilMath.offset(damager.getLocation(), UtilWorld.averageLocation(damageeTeam.GetSpawns())))
|
||||
UtilMath.offset(damager.getLocation(), UtilWorld.averageLocation(damageeTeam.GetSpawns())))
|
||||
{
|
||||
cheaterKill(damager);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void cheaterKill(Player player)
|
||||
{
|
||||
Announce(C.Bold + player.getName() + " was killed for cheating!");
|
||||
_usedLife.add(player.getName());
|
||||
player.damage(9999);
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void liquidFlow(BlockFromToEvent event)
|
||||
{
|
||||
@ -1635,40 +1618,40 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @EventHandler
|
||||
// public void liquidBlockDeny(BlockBreakEvent event)
|
||||
// {
|
||||
// if (_bridgesDown)
|
||||
// return;
|
||||
//
|
||||
// if (!IsAlive(event.getPlayer()))
|
||||
// return;
|
||||
//
|
||||
// if (event.getBlock().getRelative(BlockFace.UP).isLiquid() || event.getBlock().getRelative(BlockFace.UP).getRelative(BlockFace.UP).isLiquid())
|
||||
// {
|
||||
// UtilPlayer.message(event.getPlayer(), F.main("Game",
|
||||
// "Cannot tunnel under liquids."));
|
||||
//
|
||||
// event.setCancelled(true);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// @EventHandler
|
||||
// public void liquidBlockDeny(BlockBreakEvent event)
|
||||
// {
|
||||
// if (_bridgesDown)
|
||||
// return;
|
||||
//
|
||||
// if (!IsAlive(event.getPlayer()))
|
||||
// return;
|
||||
//
|
||||
// if (event.getBlock().getRelative(BlockFace.UP).isLiquid() || event.getBlock().getRelative(BlockFace.UP).getRelative(BlockFace.UP).isLiquid())
|
||||
// {
|
||||
// UtilPlayer.message(event.getPlayer(), F.main("Game",
|
||||
// "Cannot tunnel under liquids."));
|
||||
//
|
||||
// event.setCancelled(true);
|
||||
// }
|
||||
// }
|
||||
|
||||
@EventHandler
|
||||
public void vehicleDeny(PlayerInteractEvent event)
|
||||
{
|
||||
if (!UtilEvent.isAction(event, ActionType.R))
|
||||
return;
|
||||
|
||||
|
||||
if (UtilGear.isMat(event.getPlayer().getItemInHand(), Material.BOAT))
|
||||
{
|
||||
UtilPlayer.message(event.getPlayer(), F.main("Game",
|
||||
"You cannot place boats."));
|
||||
|
||||
"You cannot place boats."));
|
||||
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double GetKillsGems(Player killer, Player killed, boolean assist)
|
||||
{
|
||||
@ -1677,7 +1660,7 @@ public class Bridge extends TeamGame implements OreObsfucation
|
||||
else
|
||||
return 12;
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void toggleOre(PlayerCommandPreprocessEvent event)
|
||||
{
|
||||
|
@ -993,17 +993,26 @@ public class GameFlagManager implements Listener
|
||||
@EventHandler
|
||||
public void WorldWaterDamage(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.FAST)
|
||||
return;
|
||||
|
||||
Game game = Manager.GetGame();
|
||||
if (game == null) return;
|
||||
|
||||
if (game.WorldWaterDamage <= 0)
|
||||
return;
|
||||
|
||||
if (!game.IsLive())
|
||||
return;
|
||||
|
||||
if (event.getType() != UpdateType.FAST)
|
||||
return;
|
||||
|
||||
if (game.WorldWaterDamage <= 0)
|
||||
{
|
||||
if (!game.WorldData.GetCustomLocs("WATER_DAMAGE").isEmpty())
|
||||
{
|
||||
game.WorldWaterDamage = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (GameTeam team : game.GetTeamList())
|
||||
for (Player player : team.GetPlayers(true))
|
||||
@ -1012,7 +1021,7 @@ public class GameFlagManager implements Listener
|
||||
{
|
||||
//Damage Event
|
||||
Manager.GetDamage().NewDamageEvent(player, null, null,
|
||||
DamageCause.DROWNING, 4, true, false, false,
|
||||
DamageCause.DROWNING, game.WorldWaterDamage, true, false, false,
|
||||
"Water", "Water Damage");
|
||||
|
||||
player.getWorld().playSound(player.getLocation(),
|
||||
|
@ -30,7 +30,7 @@ public class GameGemManager implements Listener
|
||||
{
|
||||
ArcadeManager Manager;
|
||||
|
||||
boolean DoubleGem = true;
|
||||
boolean DoubleGem = false;
|
||||
|
||||
public GameGemManager(ArcadeManager manager)
|
||||
{
|
||||
|
165
Pocket/LICENSE
165
Pocket/LICENSE
@ -1,165 +0,0 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
Binary file not shown.
@ -1,53 +0,0 @@
|
||||
# ![PocketMine-MP](http://cdn.pocketmine.net/img/PocketMine-MP-h.png)
|
||||
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
__PocketMine-MP is a free, open-source software that creates Minecraft: Pocket Edition servers and allows extending its functionalities__
|
||||
|
||||
### [Homepage](http://www.pocketmine.net/)
|
||||
|
||||
### [Forums](http://forums.pocketmine.net/)
|
||||
|
||||
### [Plugin Repository](http://plugins.pocketmine.net/)
|
||||
|
||||
<!--## [FAQ: Frequently Asked Questions](https://github.com/PocketMine/PocketMine-MP/wiki/Frequently-Asked-Questions)-->
|
||||
|
||||
### [Official Jenkins server](http://jenkins.pocketmine.net/)
|
||||
|
||||
### API Documentation
|
||||
* [Official Doxygen-generated documentation](http://docs.pocketmine.net/)
|
||||
* [Latest Doxygen generated from development](http://jenkins.pocketmine.net/job/PocketMine-MP-doc/doxygen/)
|
||||
|
||||
### [Twitter @PocketMine](https://twitter.com/PocketMine)
|
||||
|
||||
### IRC Chat #pocketmine (or #mcpedevs) @ irc.freenode.net
|
||||
[#pocketmine + #mcpedevs channel WebIRC](http://webchat.freenode.net/?channels=pocketmine,mcpedevs)
|
||||
|
||||
### Want to contribute?
|
||||
* Check the [Contributing Guidelines](CONTRIBUTING.md)
|
||||
|
||||
|
||||
## Third-party Libraries/Protocols Used
|
||||
* __[PHP Sockets](http://php.net/manual/en/book.sockets.php)__
|
||||
* __[PHP SQLite3](http://php.net/manual/en/book.sqlite3.php)__
|
||||
* __[PHP BCMath](http://php.net/manual/en/book.bc.php)__
|
||||
* __[PHP pthreads](http://pthreads.org/)__ by _[krakjoe](https://github.com/krakjoe)_: Threading for PHP - Share Nothing, Do Everything.
|
||||
* __[PHP YAML](https://code.google.com/p/php-yaml/)__ by _Bryan Davis_: The Yaml PHP Extension provides a wrapper to the LibYAML library.
|
||||
* __[LibYAML](http://pyyaml.org/wiki/LibYAML)__ by _Kirill Simonov_: A YAML 1.1 parser and emitter written in C.
|
||||
* __[cURL](http://curl.haxx.se/)__: cURL is a command line tool for transferring data with URL syntax
|
||||
* __[Zlib](http://www.zlib.net/)__: A Massively Spiffy Yet Delicately Unobtrusive Compression Library
|
||||
* __[Source RCON Protocol](https://developer.valvesoftware.com/wiki/Source_RCON_Protocol)__
|
||||
* __[UT3 Query Protocol](http://wiki.unrealadmin.org/UT3_query_protocol)__
|
@ -1,6 +0,0 @@
|
||||
# Updated 06/29/15 12:14 by PocketMine-MP 1.5dev-1254
|
||||
# victim name | ban date | banned by | banned until | reason
|
||||
|
||||
fanta|2015-06-29 12:12:30 +1000|CONSOLE|Forever|Banned by an operator.
|
||||
xflare_|2015-06-29 12:14:49 +1000|CONSOLE|Forever|Banned by an operator.
|
||||
fantasticps3|2015-06-29 12:14:53 +1000|CONSOLE|Forever|Banned by an operator.
|
@ -1 +0,0 @@
|
||||
chiss
|
@ -1 +0,0 @@
|
||||
Test
|
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module-library">
|
||||
<library name="PHP">
|
||||
<CLASSES>
|
||||
<root url="file://D:/Mineplex/PocketMine-MP-master" />
|
||||
</CLASSES>
|
||||
<SOURCES>
|
||||
<root url="file://D:/Mineplex/PocketMine-MP-master" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</orderEntry>
|
||||
</component>
|
||||
</module>
|
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
|
||||
</project>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/Test.iml" filepath="$PROJECT_DIR$/.idea/Test.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -1,5 +0,0 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<state>
|
||||
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
|
||||
</state>
|
||||
</component>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="" />
|
||||
</component>
|
||||
</project>
|
@ -1,655 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="55bf2e6d-8fc4-4bc6-a94f-e308c0957d36" name="Default" comment="" />
|
||||
<ignored path="Test.iws" />
|
||||
<ignored path=".idea/workspace.xml" />
|
||||
<ignored path=".idea/dataSources.local.xml" />
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="TRACKING_ENABLED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
||||
<component name="CreatePatchCommitExecutor">
|
||||
<option name="PATCH_PATH" value="" />
|
||||
</component>
|
||||
<component name="DaemonCodeAnalyzer">
|
||||
<disable_hints />
|
||||
</component>
|
||||
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
|
||||
<component name="FavoritesManager">
|
||||
<favorites_list name="Test" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<file leaf-file-name="Main.php" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/Main.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="-17.0" vertical-offset="425" max-vertical-offset="1360">
|
||||
<caret line="51" column="0" selection-start-line="51" selection-start-column="0" selection-end-line="51" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="e#35#70#0#PHP" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="UtilString.php" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/util/UtilString.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="-1.3076923" vertical-offset="0" max-vertical-offset="357">
|
||||
<caret line="2" column="18" selection-start-line="2" selection-start-column="10" selection-end-line="2" selection-end-column="18" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="plugin.yml" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/plugin.yml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="51" max-vertical-offset="153">
|
||||
<caret line="3" column="10" selection-start-line="3" selection-start-column="10" selection-end-line="3" selection-end-column="10" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="GameManager.php" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/games/GameManager.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="204">
|
||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Game.php" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/games/Game.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="204">
|
||||
<caret line="6" column="3" selection-start-line="6" selection-start-column="3" selection-end-line="6" selection-end-column="3" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="TickTask.php" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/tasks/TickTask.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="476">
|
||||
<caret line="6" column="23" selection-start-line="6" selection-start-column="23" selection-end-line="6" selection-end-column="23" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="StrangePacket.php" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/packets/StrangePacket.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.5862069" vertical-offset="0" max-vertical-offset="870">
|
||||
<caret line="30" column="9" selection-start-line="30" selection-start-column="9" selection-end-line="30" selection-end-column="9" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Task.php" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/src/pocketmine/scheduler/Task.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="1037">
|
||||
<caret line="23" column="15" selection-start-line="23" selection-start-column="15" selection-end-line="23" selection-end-column="15" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="PluginTask.php" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/src/pocketmine/scheduler/PluginTask.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="357" max-vertical-offset="629">
|
||||
<caret line="38" column="5" selection-start-line="36" selection-start-column="4" selection-end-line="38" selection-end-column="5" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="TickEvent.php" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/events/TickEvent.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="459">
|
||||
<caret line="6" column="26" selection-start-line="6" selection-start-column="26" selection-end-line="6" selection-end-column="26" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/Source Files/src/chiss/test/Test.php" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/test/util/UtilString.php" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/test/packets/StrangePacket.php" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/test/events/TickEvent.php" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/test/tasks/TickTask.php" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/test/Test.php" />
|
||||
<option value="$PROJECT_DIR$/plugin.yml" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/plugin/util/UtilString.php" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/plugin/packets/StrangePacket.php" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/plugin/events/TickEvent.php" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/plugin/tasks/TickTask.php" />
|
||||
<option value="$PROJECT_DIR$/src/chiss/plugin/Main.php" />
|
||||
<option value="$PROJECT_DIR$/src/mineplex/plugin/util/UtilString.php" />
|
||||
<option value="$PROJECT_DIR$/src/mineplex/plugin/tasks/TickTask.php" />
|
||||
<option value="$PROJECT_DIR$/src/mineplex/plugin/packets/StrangePacket.php" />
|
||||
<option value="$PROJECT_DIR$/src/mineplex/plugin/events/TickEvent.php" />
|
||||
<option value="$PROJECT_DIR$/src/mineplex/plugin/Main.php" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="JsGulpfileManager">
|
||||
<detection-done>true</detection-done>
|
||||
</component>
|
||||
<component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true">
|
||||
<include_path>
|
||||
<path value="D:\Mineplex\PocketMine-MP-master" />
|
||||
</include_path>
|
||||
</component>
|
||||
<component name="ProjectFrameBounds">
|
||||
<option name="x" value="-8" />
|
||||
<option name="y" value="-8" />
|
||||
<option name="width" value="1936" />
|
||||
<option name="height" value="1056" />
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
||||
<OptionsSetting value="true" id="Add" />
|
||||
<OptionsSetting value="true" id="Remove" />
|
||||
<OptionsSetting value="true" id="Checkout" />
|
||||
<OptionsSetting value="true" id="Update" />
|
||||
<OptionsSetting value="true" id="Status" />
|
||||
<OptionsSetting value="true" id="Edit" />
|
||||
<ConfirmationsSetting value="0" id="Add" />
|
||||
<ConfirmationsSetting value="0" id="Remove" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||
<flattenPackages />
|
||||
<showMembers />
|
||||
<showModules />
|
||||
<showLibraryContents />
|
||||
<hideEmptyPackages />
|
||||
<abbreviatePackageNames />
|
||||
<autoscrollToSource />
|
||||
<autoscrollFromSource />
|
||||
<sortByType />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Test" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Test" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Test" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="src" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="plugin" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Test" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="src" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="plugin" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="util" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Test" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="src" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="plugin" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="tasks" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Test" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="src" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="plugin" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="packets" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Test" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="src" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="plugin" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="games" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Test" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="src" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="mineplex" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="plugin" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="events" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="D:\Games\PocketMine-MP\plugins\Test" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<configuration default="true" type="PHPUnitRunConfigurationType" factoryName="PHPUnit">
|
||||
<TestRunner />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="PhpLocalRunConfigurationType" factoryName="PHP Console">
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="PhpBehatConfigurationType" factoryName="Behat">
|
||||
<BehatRunner />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
|
||||
<node-options />
|
||||
<gulpfile />
|
||||
<tasks />
|
||||
<arguments />
|
||||
<pass-parent-envs>true</pass-parent-envs>
|
||||
<envs />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="PhpUnitRemoteRunConfigurationType" factoryName="PHPUnit on Server">
|
||||
<method />
|
||||
</configuration>
|
||||
<list size="0" />
|
||||
</component>
|
||||
<component name="ShelveChangesManager" show_recycled="false" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="55bf2e6d-8fc4-4bc6-a94f-e308c0957d36" name="Default" comment="" />
|
||||
<created>1435563636561</created>
|
||||
<option name="number" value="Default" />
|
||||
<updated>1435563636561</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.15991472" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32900432" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
</layout>
|
||||
</component>
|
||||
<component name="Vcs.Log.UiProperties">
|
||||
<option name="RECENTLY_FILTERED_USER_GROUPS">
|
||||
<collection />
|
||||
</option>
|
||||
<option name="RECENTLY_FILTERED_BRANCH_GROUPS">
|
||||
<collection />
|
||||
</option>
|
||||
</component>
|
||||
<component name="VcsContentAnnotationSettings">
|
||||
<option name="myLimit" value="2678400000" />
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<option name="myTodoPanelSettings">
|
||||
<TodoPanelSettings />
|
||||
</option>
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager />
|
||||
<watches-manager />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/Main.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1360">
|
||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="e#35#70#0#PHP" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/util/UtilString.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="34" max-vertical-offset="357">
|
||||
<caret line="2" column="18" selection-start-line="2" selection-start-column="10" selection-end-line="2" selection-end-column="18" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plugin.yml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="51" max-vertical-offset="153">
|
||||
<caret line="3" column="10" selection-start-line="3" selection-start-column="10" selection-end-line="3" selection-end-column="10" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/games/GameManager.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="204">
|
||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/games/Game.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="204">
|
||||
<caret line="6" column="3" selection-start-line="6" selection-start-column="3" selection-end-line="6" selection-end-column="3" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/tasks/TickTask.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="476">
|
||||
<caret line="6" column="23" selection-start-line="6" selection-start-column="23" selection-end-line="6" selection-end-column="23" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/packets/StrangePacket.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="34" max-vertical-offset="850">
|
||||
<caret line="2" column="18" selection-start-line="2" selection-start-column="18" selection-end-line="2" selection-end-column="18" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/src/pocketmine/scheduler/Task.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="1037">
|
||||
<caret line="23" column="15" selection-start-line="23" selection-start-column="15" selection-end-line="23" selection-end-column="15" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/src/pocketmine/scheduler/PluginTask.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="357" max-vertical-offset="629">
|
||||
<caret line="38" column="5" selection-start-line="36" selection-start-column="4" selection-end-line="38" selection-end-column="5" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/events/TickEvent.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="459">
|
||||
<caret line="6" column="26" selection-start-line="6" selection-start-column="26" selection-end-line="6" selection-end-column="26" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/src/pocketmine/plugin/PluginBase.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.39977604" vertical-offset="476" max-vertical-offset="4811">
|
||||
<caret line="70" column="0" selection-start-line="70" selection-start-column="0" selection-end-line="70" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/tests/TravisTest.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.28555432" vertical-offset="0" max-vertical-offset="893">
|
||||
<caret line="32" column="0" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/src/pocketmine/network/protocol/SetTimePacket.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.3807391" vertical-offset="0" max-vertical-offset="893">
|
||||
<caret line="37" column="0" selection-start-line="37" selection-start-column="0" selection-end-line="37" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/src/pocketmine/event/player/PlayerMoveEvent.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="-7.8461537" vertical-offset="0" max-vertical-offset="697">
|
||||
<caret line="31" column="16" selection-start-line="31" selection-start-column="16" selection-end-line="31" selection-end-column="16" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/src/pocketmine/scheduler/PluginTask.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="357" max-vertical-offset="629">
|
||||
<caret line="38" column="5" selection-start-line="36" selection-start-column="4" selection-end-line="38" selection-end-column="5" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../../../../PocketMine-MP-master/src/pocketmine/scheduler/Task.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="1037">
|
||||
<caret line="23" column="15" selection-start-line="23" selection-start-column="15" selection-end-line="23" selection-end-column="15" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plugin.yml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="153">
|
||||
<caret line="3" column="10" selection-start-line="3" selection-start-column="10" selection-end-line="3" selection-end-column="10" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/games/Game.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="204">
|
||||
<caret line="6" column="3" selection-start-line="6" selection-start-column="3" selection-end-line="6" selection-end-column="3" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/tasks/TickTask.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="476">
|
||||
<caret line="6" column="23" selection-start-line="6" selection-start-column="23" selection-end-line="6" selection-end-column="23" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/games/GameManager.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="896">
|
||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/events/TickEvent.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="102" max-vertical-offset="459">
|
||||
<caret line="6" column="26" selection-start-line="6" selection-start-column="26" selection-end-line="6" selection-end-column="26" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/Main.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="-17.0" vertical-offset="425" max-vertical-offset="1360">
|
||||
<caret line="51" column="0" selection-start-line="51" selection-start-column="0" selection-end-line="51" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="e#35#70#0#PHP" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/util/UtilString.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="-1.3076923" vertical-offset="0" max-vertical-offset="357">
|
||||
<caret line="2" column="18" selection-start-line="2" selection-start-column="10" selection-end-line="2" selection-end-column="18" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mineplex/plugin/packets/StrangePacket.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.5862069" vertical-offset="0" max-vertical-offset="870">
|
||||
<caret line="30" column="9" selection-start-line="30" selection-start-column="9" selection-end-line="30" selection-end-column="9" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
</project>
|
@ -2,8 +2,12 @@
|
||||
|
||||
namespace mineplex\plugin;
|
||||
|
||||
use mineplex\plugin\core\updater\UpdateType;
|
||||
use mineplex\plugin\tasks\TickTask;
|
||||
use mineplex\plugin\events\TickEvent;
|
||||
use mineplex\plugin\core\updater\Updater;
|
||||
use mineplex\plugin\core\updater\UpdateEvent;
|
||||
use mineplex\plugin\core\updater\UpdateType as UpdaterType;
|
||||
use mineplex\plugin\util\UtilString;
|
||||
use mineplex\plugin\packets\StrangePacket;
|
||||
|
||||
@ -19,6 +23,7 @@ class Main extends PluginBase implements Listener
|
||||
$this->getServer()->getScheduler()->scheduleRepeatingTask(new TickTask($this), 1);
|
||||
|
||||
$this->getServer()->getPluginManager()->registerEvents($this, $this);
|
||||
new Updater($this);
|
||||
}
|
||||
|
||||
public function onDisable()
|
||||
@ -68,7 +73,7 @@ class Main extends PluginBase implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
public function onTick(TickEvent $event)
|
||||
public function onTick(UpdateEvent $event)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: jwilliams
|
||||
* Date: 6/29/2015
|
||||
* Time: 7:12 PM
|
||||
*/
|
||||
|
||||
namespace mineplex\plugin\core\updater;
|
||||
|
||||
use pocketmine\event\Event;
|
||||
|
||||
class UpdateEvent extends Event
|
||||
{
|
||||
public static $handlerList = null;
|
||||
|
||||
public $time;
|
||||
|
||||
public function __construct($time)
|
||||
{
|
||||
$this->time = $time;
|
||||
}
|
||||
|
||||
public function getTime()
|
||||
{
|
||||
return $this->time;
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: jwilliams
|
||||
* Date: 6/29/2015
|
||||
* Time: 6:52 PM
|
||||
*/
|
||||
|
||||
namespace mineplex\plugin\core\updater;
|
||||
|
||||
|
||||
class UpdateType
|
||||
{
|
||||
const MIN_64 = 3840000;
|
||||
const MIN_32 = 1920000;
|
||||
const MIN_16 = 960000;
|
||||
const MIN_08 = 480000;
|
||||
const MIN_04 = 240000;
|
||||
const MIN_02 = 120000;
|
||||
const MIN_01 = 60000;
|
||||
const SLOWEST = 32000;
|
||||
const SLOWER = 16000;
|
||||
const SLOW = 4000;
|
||||
const TWOSEC = 2000;
|
||||
const SEC = 1000;
|
||||
const FAST = 500;
|
||||
const FASTER = 250;
|
||||
const FASTEST = 125;
|
||||
const TICK = 49;
|
||||
|
||||
public $time;
|
||||
|
||||
public function __construct($time=0)
|
||||
{
|
||||
$this->time = $time;
|
||||
}
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: jwilliams
|
||||
* Date: 6/29/2015
|
||||
* Time: 6:45 PM
|
||||
*/
|
||||
|
||||
namespace mineplex\plugin\core\updater;
|
||||
|
||||
use pocketmine\plugin\PluginBase;
|
||||
use pocketmine\scheduler\PluginTask;
|
||||
|
||||
class Updater extends PluginTask
|
||||
{
|
||||
private $plugin;
|
||||
private $last;
|
||||
private $updateTypes;
|
||||
|
||||
public function __construct(PluginBase $host)
|
||||
{
|
||||
$this->plugin = $host;
|
||||
$this->owner = $host;
|
||||
$this->plugin->getServer()->getScheduler()->scheduleRepeatingTask($this, 1);
|
||||
|
||||
$this->updateTypes = array(
|
||||
new UpdateType(UpdateType::TICK)
|
||||
, new UpdateType(UpdateType::FASTEST)
|
||||
, new UpdateType(UpdateType::FASTER)
|
||||
, new UpdateType(UpdateType::FAST)
|
||||
, new UpdateType(UpdateType::SEC)
|
||||
, new UpdateType(UpdateType::TWOSEC)
|
||||
, new UpdateType(UpdateType::SLOW)
|
||||
, new UpdateType(UpdateType::SLOWER)
|
||||
, new UpdateType(UpdateType::SLOWEST)
|
||||
, new UpdateType(UpdateType::MIN_01)
|
||||
, new UpdateType(UpdateType::MIN_02)
|
||||
, new UpdateType(UpdateType::MIN_04)
|
||||
, new UpdateType(UpdateType::MIN_08)
|
||||
, new UpdateType(UpdateType::MIN_16)
|
||||
, new UpdateType(UpdateType::MIN_32)
|
||||
, new UpdateType(UpdateType::MIN_64));
|
||||
}
|
||||
|
||||
public function onRun($currentTick)
|
||||
{
|
||||
$timeSpent = round(microtime(true) * 1000) - $this->last;
|
||||
$this->last = round(microtime(true) * 1000);
|
||||
|
||||
foreach ($this->updateTypes as &$updateType)
|
||||
{
|
||||
if ($timeSpent >= $updateType->time)
|
||||
{
|
||||
$this->plugin->getServer()->getPluginManager()->callEvent(new UpdateEvent($updateType->time));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: C
|
||||
* Date: 29/06/2015
|
||||
* Time: 7:14 PM
|
||||
*/
|
@ -1,7 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: C
|
||||
* Date: 29/06/2015
|
||||
* Time: 7:14 PM
|
||||
*/
|
@ -1,103 +0,0 @@
|
||||
# Main configuration file for PocketMine-MP
|
||||
# These settings are the ones that cannot be included in server.properties
|
||||
# Some of these settings are safe, others can break your server if modified incorrectly
|
||||
|
||||
settings:
|
||||
shutdown-message: "Server closed"
|
||||
#Allow listing plugins via Query
|
||||
query-plugins: true
|
||||
#Show a console message when a plugin uses deprecated API methods
|
||||
deprecated-verbose: true
|
||||
#Enable plugin and core profiling by default
|
||||
enable-profiling: false
|
||||
advanced-cache: false
|
||||
upnp-forwarding: false
|
||||
#Sends anonymous statistics to create usage reports
|
||||
send-usage: true
|
||||
#Number of AsyncTask workers
|
||||
#WARNING: This will increase global memory usage, but it won't be listed in the total.
|
||||
async-workers: 15
|
||||
|
||||
debug:
|
||||
#If > 1, it will show debug messages in the console
|
||||
level: 1
|
||||
#Enables /status
|
||||
commands: false
|
||||
|
||||
level-settings:
|
||||
#The default format that levels will use when created
|
||||
default-format: mcregion
|
||||
#If true, converts from a format that is not the default to the default format on load
|
||||
#NOTE: This is currently not implemented
|
||||
convert-format: false
|
||||
|
||||
chunk-sending:
|
||||
#Amount of chunks sent to players per tick
|
||||
per-tick: 1
|
||||
#Compression level used when sending chunks. Higher = more CPU, less bandwidth usage
|
||||
compression-level: 6
|
||||
#Amount of chunks sent around each player
|
||||
max-chunks: 56
|
||||
|
||||
chunk-ticking:
|
||||
#Max amount of chunks processed each tick
|
||||
per-tick: 50
|
||||
#Radius of chunks around a player to tick
|
||||
tick-radius: 2
|
||||
#NOTE: This is currently not implemented
|
||||
light-updates: false
|
||||
clear-tick-list: false
|
||||
|
||||
chunk-generation:
|
||||
#Whether to run the generation on a different thread or on the main thread
|
||||
#Generation will be less glitchy on the main thread, but will lag more
|
||||
#Using this with fast generators is recommended
|
||||
use-async: true
|
||||
#Max. amount of chunks to generate per tick, only for use-async: false
|
||||
per-tick: 1
|
||||
|
||||
chunk-gc:
|
||||
period-in-ticks: 600
|
||||
|
||||
ticks-per:
|
||||
animal-spawns: 100
|
||||
monster-spawns: 100
|
||||
autosave: 6000
|
||||
cache-cleanup: 900
|
||||
|
||||
spawn-limits:
|
||||
monsters: 0
|
||||
animals: 0
|
||||
water-animals: 0
|
||||
ambient: 0
|
||||
|
||||
auto-report:
|
||||
#Send crash reports for processing
|
||||
enabled: true
|
||||
send-code: true
|
||||
send-settings: true
|
||||
send-phpinfo: true
|
||||
host: crash.pocketmine.net
|
||||
|
||||
auto-updater:
|
||||
enabled: true
|
||||
on-update:
|
||||
warn-console: true
|
||||
warn-ops: true
|
||||
#Can be development, beta or stable.
|
||||
preferred-channel: stable
|
||||
#If using a development version, it will suggest changing the channel
|
||||
suggest-channels: true
|
||||
host: www.pocketmine.net
|
||||
|
||||
aliases:
|
||||
#Examples:
|
||||
#showtheversion: version
|
||||
#savestop: [save-all, stop]
|
||||
|
||||
worlds:
|
||||
#These settings will override the generator set in server.properties and allows loading multiple levels
|
||||
#Example:
|
||||
#world:
|
||||
# seed: 404
|
||||
# generator: FLAT:2;7,59x1,3x3,2;1;decoration(treecount=80 grasscount=45)
|
15112
Pocket/server.log
15112
Pocket/server.log
File diff suppressed because it is too large
Load Diff
@ -1,26 +0,0 @@
|
||||
#Properties Config file
|
||||
#Mon Jun 29 19:57:13 AEST 2015
|
||||
server-name=Chiss World
|
||||
server-port=19132
|
||||
memory-limit=2048M
|
||||
gamemode=0
|
||||
max-players=100
|
||||
spawn-protection=16
|
||||
white-list=off
|
||||
enable-query=on
|
||||
enable-rcon=off
|
||||
motd=Chiss World Yay
|
||||
announce-player-achievements=off
|
||||
allow-flight=off
|
||||
spawn-animals=off
|
||||
spawn-mobs=off
|
||||
force-gamemode=off
|
||||
hardcore=off
|
||||
pvp=off
|
||||
difficulty=1
|
||||
generator-settings=
|
||||
level-name=world
|
||||
level-seed=
|
||||
level-type=FLAT
|
||||
rcon.password=fTbky+Ma7n
|
||||
auto-save=off
|
@ -1,32 +0,0 @@
|
||||
@echo off
|
||||
TITLE PocketMine-MP server software for Minecraft: Pocket Edition
|
||||
cd /d %~dp0
|
||||
|
||||
if exist bin\php\php.exe (
|
||||
set PHPRC=""
|
||||
set PHP_BINARY=bin\php\php.exe
|
||||
) else (
|
||||
set PHP_BINARY=php
|
||||
)
|
||||
|
||||
if exist PocketMine-MP.phar (
|
||||
set POCKETMINE_FILE=PocketMine-MP.phar
|
||||
) else (
|
||||
if exist src\pocketmine\PocketMine.php (
|
||||
set POCKETMINE_FILE=src\pocketmine\PocketMine.php
|
||||
) else (
|
||||
echo "Couldn't find a valid PocketMine-MP installation"
|
||||
pause
|
||||
exit 1
|
||||
)
|
||||
)
|
||||
|
||||
REM if exist bin\php\php_wxwidgets.dll (
|
||||
REM %PHP_BINARY% %POCKETMINE_FILE% --enable-gui %*
|
||||
REM ) else (
|
||||
if exist bin\mintty.exe (
|
||||
start "" bin\mintty.exe -o Columns=88 -o Rows=32 -o AllowBlinking=0 -o FontQuality=3 -o Font="DejaVu Sans Mono" -o FontHeight=10 -o CursorType=0 -o CursorBlinks=1 -h error -t "PocketMine-MP" -i bin/pocketmine.ico -w max %PHP_BINARY% %POCKETMINE_FILE% --enable-ansi %*
|
||||
) else (
|
||||
%PHP_BINARY% -c bin\php %POCKETMINE_FILE% %*
|
||||
)
|
||||
REM )
|
Loading…
Reference in New Issue
Block a user