mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-09 08:06:54 +02:00
Revert "Remove Transient :: Formatting Cleanup"
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project-shared-configuration>
|
||||
<!--
|
||||
This file contains additional configuration written by modules in the NetBeans IDE.
|
||||
The configuration is intended to be shared among all the users of project and
|
||||
therefore it is assumed to be part of version control checkout.
|
||||
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
|
||||
-->
|
||||
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
|
||||
<!--
|
||||
Properties that influence various parts of the IDE, especially code formatting and the like.
|
||||
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
|
||||
That way multiple projects can share the same settings (useful for formatting rules for example).
|
||||
Any value defined here will override the pom.xml file value but is only applicable to the current project.
|
||||
-->
|
||||
<netbeans.compile.on.save>all</netbeans.compile.on.save>
|
||||
</properties>
|
||||
This file contains additional configuration written by modules in the NetBeans IDE.
|
||||
The configuration is intended to be shared among all the users of project and
|
||||
therefore it is assumed to be part of version control checkout.
|
||||
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
|
||||
-->
|
||||
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
|
||||
<!--
|
||||
Properties that influence various parts of the IDE, especially code formatting and the like.
|
||||
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
|
||||
That way multiple projects can share the same settings (useful for formatting rules for example).
|
||||
Any value defined here will override the pom.xml file value but is only applicable to the current project.
|
||||
-->
|
||||
<netbeans.compile.on.save>all</netbeans.compile.on.save>
|
||||
</properties>
|
||||
</project-shared-configuration>
|
||||
|
@@ -1,108 +1,108 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>net.essentials3</groupId>
|
||||
<artifactId>BuildAll</artifactId>
|
||||
<version>3.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<parent>
|
||||
<groupId>net.essentials3</groupId>
|
||||
<artifactId>BuildAll</artifactId>
|
||||
<version>3.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>Essentials</artifactId>
|
||||
<dependencies>
|
||||
<!-- Internal Depends -->
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>EssentialsGroupManager</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>0.11.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>1.4.1</version>
|
||||
</dependency>
|
||||
<!-- Test Depends -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.10</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<version>1.9.5</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- External Plugin Depends -->
|
||||
<dependency>
|
||||
<groupId>cosine</groupId>
|
||||
<artifactId>BOSEconomy</artifactId>
|
||||
<version>0.7</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.iConomy</groupId>
|
||||
<artifactId>iConomy</artifactId>
|
||||
<version>5.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.iCo6</groupId>
|
||||
<artifactId>iConomy</artifactId>
|
||||
<version>6.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.ashtheking</groupId>
|
||||
<artifactId>MultiCurrency</artifactId>
|
||||
<version>0.05</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.milkbowl</groupId>
|
||||
<artifactId>Vault</artifactId>
|
||||
<version>1.2</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<artifactId>Essentials</artifactId>
|
||||
<dependencies>
|
||||
<!-- Internal Depends -->
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>EssentialsGroupManager</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>0.11.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>1.4.1</version>
|
||||
</dependency>
|
||||
<!-- Test Depends -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.10</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<version>1.9.5</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- External Plugin Depends -->
|
||||
<dependency>
|
||||
<groupId>cosine</groupId>
|
||||
<artifactId>BOSEconomy</artifactId>
|
||||
<version>0.7</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.iConomy</groupId>
|
||||
<artifactId>iConomy</artifactId>
|
||||
<version>5.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.iCo6</groupId>
|
||||
<artifactId>iConomy</artifactId>
|
||||
<version>6.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.ashtheking</groupId>
|
||||
<artifactId>MultiCurrency</artifactId>
|
||||
<version>0.05</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.milkbowl</groupId>
|
||||
<artifactId>Vault</artifactId>
|
||||
<version>1.2</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>2.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactSet>
|
||||
<includes>
|
||||
<include>commons-io:*</include>
|
||||
<include>org.apache.commons:*</include>
|
||||
</includes>
|
||||
</artifactSet>
|
||||
<minimizeJar>true</minimizeJar>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>org.apache.commons</pattern>
|
||||
<shadedPattern>net.ess3.commons</shadedPattern>
|
||||
</relocation>
|
||||
</relocations>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>2.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactSet>
|
||||
<includes>
|
||||
<include>commons-io:*</include>
|
||||
<include>org.apache.commons:*</include>
|
||||
</includes>
|
||||
</artifactSet>
|
||||
<minimizeJar>true</minimizeJar>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>org.apache.commons</pattern>
|
||||
<shadedPattern>net.ess3.commons</shadedPattern>
|
||||
</relocation>
|
||||
</relocations>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
@@ -49,34 +49,34 @@ import org.bukkit.plugin.InvalidDescriptionException;
|
||||
public class Essentials implements IEssentials
|
||||
{
|
||||
@Getter
|
||||
private ISettings settings;
|
||||
private transient ISettings settings;
|
||||
@Getter
|
||||
private IJails jails;
|
||||
private transient IJails jails;
|
||||
@Getter
|
||||
private IKits kits;
|
||||
private transient IKits kits;
|
||||
@Getter
|
||||
private IWarps warps;
|
||||
private transient IWarps warps;
|
||||
@Getter
|
||||
private IWorth worth;
|
||||
private transient IWorth worth;
|
||||
@Getter
|
||||
private IBackup backup;
|
||||
private transient IBackup backup;
|
||||
@Getter
|
||||
private IItemDb itemDb;
|
||||
private transient IItemDb itemDb;
|
||||
@Getter
|
||||
@Setter
|
||||
private IRanks ranks;
|
||||
private transient IRanks ranks;
|
||||
@Getter
|
||||
private SpawnsHolder spawns;
|
||||
private transient SpawnsHolder spawns;
|
||||
@Getter
|
||||
private final Methods paymentMethod = new Methods();
|
||||
private transient final Methods paymentMethod = new Methods();
|
||||
@Getter
|
||||
private IUserMap userMap;
|
||||
private transient IUserMap userMap;
|
||||
@Getter
|
||||
private final I18n i18n;
|
||||
@Getter
|
||||
private ICommandHandler commandHandler;
|
||||
private transient ICommandHandler commandHandler;
|
||||
@Getter
|
||||
private Economy economy;
|
||||
private transient Economy economy;
|
||||
@Getter
|
||||
private final Server server;
|
||||
@Getter
|
||||
@@ -85,16 +85,16 @@ public class Essentials implements IEssentials
|
||||
private final IPlugin plugin;
|
||||
@Getter
|
||||
@Setter
|
||||
private Metrics metrics;
|
||||
private transient Metrics metrics;
|
||||
@Getter
|
||||
private EssentialsTimer timer;
|
||||
private transient EssentialsTimer timer;
|
||||
@Getter
|
||||
private List<String> vanishedPlayers = new ArrayList<String>();
|
||||
private transient List<String> vanishedPlayers = new ArrayList<String>();
|
||||
@Getter
|
||||
private final StorageQueue storageQueue;
|
||||
private ExecuteTimer execTimer;
|
||||
private final transient StorageQueue storageQueue;
|
||||
private transient ExecuteTimer execTimer;
|
||||
public static boolean testing;
|
||||
private List<IReload> reloadList;
|
||||
private transient List<IReload> reloadList;
|
||||
|
||||
public Essentials(final Server server, final Logger logger, final IPlugin plugin)
|
||||
{
|
||||
|
@@ -12,10 +12,10 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public class EssentialsTimer implements Runnable
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private final Set<IUser> onlineUsers = new HashSet<IUser>();
|
||||
private long lastPoll = System.currentTimeMillis();
|
||||
private final LinkedList<Float> history = new LinkedList<Float>();
|
||||
private final transient IEssentials ess;
|
||||
private final transient Set<IUser> onlineUsers = new HashSet<IUser>();
|
||||
private transient long lastPoll = System.currentTimeMillis();
|
||||
private final transient LinkedList<Float> history = new LinkedList<Float>();
|
||||
|
||||
EssentialsTimer(final IEssentials ess)
|
||||
{
|
||||
|
@@ -19,13 +19,13 @@ public class I18n implements II18n
|
||||
{
|
||||
private static I18n instance;
|
||||
private static final String MESSAGES = "messages";
|
||||
private final Locale defaultLocale = Locale.getDefault();
|
||||
private Locale currentLocale = defaultLocale;
|
||||
private ResourceBundle customBundle;
|
||||
private ResourceBundle localeBundle;
|
||||
private final ResourceBundle defaultBundle;
|
||||
private final Map<String, MessageFormat> messageFormatCache = new HashMap<String, MessageFormat>();
|
||||
private final IEssentials ess;
|
||||
private final transient Locale defaultLocale = Locale.getDefault();
|
||||
private transient Locale currentLocale = defaultLocale;
|
||||
private transient ResourceBundle customBundle;
|
||||
private transient ResourceBundle localeBundle;
|
||||
private final transient ResourceBundle defaultBundle;
|
||||
private final transient Map<String, MessageFormat> messageFormatCache = new HashMap<String, MessageFormat>();
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public I18n(final IEssentials ess)
|
||||
{
|
||||
@@ -100,6 +100,7 @@ public class I18n implements II18n
|
||||
}
|
||||
return messageFormat.format(objects);
|
||||
}
|
||||
|
||||
private final Pattern partSplit = Pattern.compile("[_\\.]");
|
||||
|
||||
public void updateLocale(final String loc)
|
||||
@@ -135,7 +136,7 @@ public class I18n implements II18n
|
||||
|
||||
private static class FileResClassLoader extends ClassLoader
|
||||
{
|
||||
private final File dataFolder;
|
||||
private final transient File dataFolder;
|
||||
|
||||
public FileResClassLoader(final ClassLoader classLoader, final IEssentials ess)
|
||||
{
|
||||
|
@@ -19,15 +19,16 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class ItemDb implements IItemDb
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public ItemDb(final IEssentials ess)
|
||||
{
|
||||
this.ess = ess;
|
||||
file = new ManagedFile("items.csv", ess);
|
||||
}
|
||||
private final Map<String, Long> items = new HashMap<String, Long>();
|
||||
private final ManagedFile file;
|
||||
|
||||
private final transient Map<String, Long> items = new HashMap<String, Long>();
|
||||
private final transient ManagedFile file;
|
||||
private static final Pattern SPLIT = Pattern.compile("[^a-zA-Z0-9]");
|
||||
|
||||
@Override
|
||||
@@ -94,6 +95,7 @@ public class ItemDb implements IItemDb
|
||||
retval.setAmount(quantity);
|
||||
return retval;
|
||||
}
|
||||
|
||||
private final Pattern idMatch = Pattern.compile("^\\d+[:+',;.]\\d+$");
|
||||
private final Pattern metaSplit = Pattern.compile("[:+',;.]");
|
||||
private final Pattern conjoined = Pattern.compile("^[^:+',;.]+[:+',;.]\\d+$");
|
||||
|
@@ -30,7 +30,7 @@ import org.bukkit.plugin.PluginManager;
|
||||
|
||||
public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> implements IJails
|
||||
{
|
||||
private static final Logger LOGGER = Bukkit.getLogger();
|
||||
private static final transient Logger LOGGER = Bukkit.getLogger();
|
||||
|
||||
public Jails(final IEssentials ess)
|
||||
{
|
||||
@@ -110,9 +110,9 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
|
||||
private class JailBlockListener implements Listener
|
||||
{
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockBreak(final BlockBreakEvent event)
|
||||
{
|
||||
|
@@ -25,8 +25,8 @@ import org.bukkit.material.Colorable;
|
||||
|
||||
public class SpawnMob
|
||||
{
|
||||
private static Pattern colon = Pattern.compile(":");
|
||||
private static Pattern comma = Pattern.compile(",");
|
||||
private static transient Pattern colon = Pattern.compile(":");
|
||||
private static transient Pattern comma = Pattern.compile(",");
|
||||
|
||||
public static String mobList(final IUser user) throws NotEnoughArgumentsException
|
||||
{
|
||||
|
@@ -21,6 +21,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
public class Teleport implements Runnable, ITeleport
|
||||
{
|
||||
private static final double MOVE_CONSTANT = 0.3;
|
||||
|
||||
private IUser user;
|
||||
private IUser teleportUser;
|
||||
private int teleTimer = -1;
|
||||
@@ -74,9 +75,9 @@ public class Teleport implements Runnable, ITeleport
|
||||
}
|
||||
|
||||
if (!Permissions.TELEPORT_TIMER_MOVE.isAuthorized(user) && (Math.round(
|
||||
teleportUser.getPlayer().getLocation().getX() * MOVE_CONSTANT) != initX || Math.round(
|
||||
teleportUser.getPlayer().getLocation().getY() * MOVE_CONSTANT) != initY || Math.round(
|
||||
teleportUser.getPlayer().getLocation().getZ() * MOVE_CONSTANT) != initZ || teleportUser.getPlayer().getHealth() < health))
|
||||
teleportUser.getPlayer().getLocation().getX() * MOVE_CONSTANT) != initX || Math.round(
|
||||
teleportUser.getPlayer().getLocation().getY() * MOVE_CONSTANT) != initY || Math.round(
|
||||
teleportUser.getPlayer().getLocation().getZ() * MOVE_CONSTANT) != initZ || teleportUser.getPlayer().getHealth() < health))
|
||||
{ // user moved, cancel teleport
|
||||
cancel(true);
|
||||
return;
|
||||
@@ -122,6 +123,7 @@ public class Teleport implements Runnable, ITeleport
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
|
||||
public void cooldown(boolean check) throws Exception
|
||||
{
|
||||
try
|
||||
@@ -231,6 +233,7 @@ public class Teleport implements Runnable, ITeleport
|
||||
now(new Target(loc), cause);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
//The now function is used when you want to skip tp delay when teleporting someone to a location or player.
|
||||
public void now(Entity entity, boolean cooldown, TeleportCause cause) throws Exception
|
||||
|
@@ -4,13 +4,15 @@ import net.ess3.utils.FormatUtil;
|
||||
|
||||
|
||||
/**
|
||||
* Instead of using this api directly, we recommend to use the register plugin: http://bit.ly/RegisterMethod
|
||||
* Instead of using this api directly, we recommend to use the register plugin:
|
||||
* http://bit.ly/RegisterMethod
|
||||
*/
|
||||
public final class Economy
|
||||
{
|
||||
private Economy()
|
||||
{
|
||||
}
|
||||
|
||||
private static IEssentials ess;
|
||||
private static final String noCallBeforeLoad = "Essentials API is called before Essentials is loaded.";
|
||||
|
||||
@@ -33,10 +35,10 @@ public final class Economy
|
||||
/**
|
||||
* Sets the balance of a user
|
||||
*
|
||||
* @param name Name of the user
|
||||
* @param name Name of the user
|
||||
* @param balance The balance you want to set
|
||||
* @throws UserDoesNotExistException If a user by that name does not exists
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
*/
|
||||
public static void setMoney(String name, double balance) throws UserDoesNotExistException, NoLoanPermittedException
|
||||
{
|
||||
@@ -50,10 +52,10 @@ public final class Economy
|
||||
/**
|
||||
* Adds money to the balance of a user
|
||||
*
|
||||
* @param name Name of the user
|
||||
* @param name Name of the user
|
||||
* @param amount The money you want to add
|
||||
* @throws UserDoesNotExistException If a user by that name does not exists
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
*/
|
||||
public static void add(String name, double amount) throws UserDoesNotExistException, NoLoanPermittedException
|
||||
{
|
||||
@@ -64,10 +66,10 @@ public final class Economy
|
||||
/**
|
||||
* Substracts money from the balance of a user
|
||||
*
|
||||
* @param name Name of the user
|
||||
* @param name Name of the user
|
||||
* @param amount The money you want to substract
|
||||
* @throws UserDoesNotExistException If a user by that name does not exists
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
*/
|
||||
public static void subtract(String name, double amount) throws UserDoesNotExistException, NoLoanPermittedException
|
||||
{
|
||||
@@ -78,10 +80,10 @@ public final class Economy
|
||||
/**
|
||||
* Divides the balance of a user by a value
|
||||
*
|
||||
* @param name Name of the user
|
||||
* @param name Name of the user
|
||||
* @param value The balance is divided by this value
|
||||
* @throws UserDoesNotExistException If a user by that name does not exists
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
*/
|
||||
public static void divide(String name, double value) throws UserDoesNotExistException, NoLoanPermittedException
|
||||
{
|
||||
@@ -92,10 +94,10 @@ public final class Economy
|
||||
/**
|
||||
* Multiplies the balance of a user by a value
|
||||
*
|
||||
* @param name Name of the user
|
||||
* @param name Name of the user
|
||||
* @param value The balance is multiplied by this value
|
||||
* @throws UserDoesNotExistException If a user by that name does not exists
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
*/
|
||||
public static void multiply(String name, double value) throws UserDoesNotExistException, NoLoanPermittedException
|
||||
{
|
||||
@@ -108,7 +110,7 @@ public final class Economy
|
||||
*
|
||||
* @param name Name of the user
|
||||
* @throws UserDoesNotExistException If a user by that name does not exists
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
|
||||
*/
|
||||
public static void resetBalance(String name) throws UserDoesNotExistException, NoLoanPermittedException
|
||||
{
|
||||
@@ -120,7 +122,7 @@ public final class Economy
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name Name of the user
|
||||
* @param name Name of the user
|
||||
* @param amount The amount of money the user should have
|
||||
* @return true, if the user has more or an equal amount of money
|
||||
* @throws UserDoesNotExistException If a user by that name does not exists
|
||||
@@ -131,7 +133,7 @@ public final class Economy
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name Name of the user
|
||||
* @param name Name of the user
|
||||
* @param amount The amount of money the user should have
|
||||
* @return true, if the user has more money
|
||||
* @throws UserDoesNotExistException If a user by that name does not exists
|
||||
@@ -142,7 +144,7 @@ public final class Economy
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name Name of the user
|
||||
* @param name Name of the user
|
||||
* @param amount The amount of money the user should not have
|
||||
* @return true, if the user has less money
|
||||
* @throws UserDoesNotExistException If a user by that name does not exists
|
||||
@@ -165,7 +167,8 @@ public final class Economy
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats the amount of money like all other Essentials functions. Example: $100000 or $12345.67
|
||||
* Formats the amount of money like all other Essentials functions.
|
||||
* Example: $100000 or $12345.67
|
||||
*
|
||||
* @param amount The amount of money
|
||||
* @return Formatted money
|
||||
|
@@ -1,6 +1,5 @@
|
||||
package net.ess3.api;
|
||||
|
||||
|
||||
public interface IComponent extends IReload
|
||||
{
|
||||
/**
|
||||
|
@@ -66,4 +66,5 @@ public interface IEssentials extends IComponent
|
||||
SpawnsHolder getSpawns();
|
||||
|
||||
StorageQueue getStorageQueue();
|
||||
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@ import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
public interface IPlugin extends Plugin
|
||||
{
|
||||
|
||||
/**
|
||||
* Get an instance of essentials
|
||||
*
|
||||
@@ -35,7 +36,7 @@ public interface IPlugin extends Plugin
|
||||
/**
|
||||
* Call an a-sync task to be run with a given delay
|
||||
*
|
||||
* @param run - Code to be run
|
||||
* @param run - Code to be run
|
||||
* @param delay - Long that represents how long to wait
|
||||
* @return - BukkitTask for the task created
|
||||
*/
|
||||
@@ -44,7 +45,7 @@ public interface IPlugin extends Plugin
|
||||
/**
|
||||
* Schedule a sync (ran in main thread) delayed task
|
||||
*
|
||||
* @param run - Code to run
|
||||
* @param run - Code to run
|
||||
* @param delay - Long that represents how long to wait
|
||||
* @return - Integer of the task ID
|
||||
*/
|
||||
@@ -53,8 +54,8 @@ public interface IPlugin extends Plugin
|
||||
/**
|
||||
* Schedule a sync (in the main thread) repeating task
|
||||
*
|
||||
* @param run - Code to run
|
||||
* @param delay - Delay for the first run
|
||||
* @param run - Code to run
|
||||
* @param delay - Delay for the first run
|
||||
* @param period - Time to wait between every run after the first
|
||||
* @return - int of the task ID
|
||||
*/
|
||||
@@ -63,8 +64,8 @@ public interface IPlugin extends Plugin
|
||||
/**
|
||||
* Schedule an a-sync repeating task
|
||||
*
|
||||
* @param run - Code to run
|
||||
* @param delay - Delay for the first run
|
||||
* @param run - Code to run
|
||||
* @param delay - Delay for the first run
|
||||
* @param period - Time to wait between every run after the first
|
||||
* @return - int of the task ID
|
||||
*/
|
||||
@@ -104,8 +105,8 @@ public interface IPlugin extends Plugin
|
||||
/**
|
||||
* Call a re-spawn event on a player
|
||||
*
|
||||
* @param player - Player to re-spawn
|
||||
* @param loc - Location to send
|
||||
* @param player - Player to re-spawn
|
||||
* @param loc - Location to send
|
||||
* @param bedSpawn - do you use bed?
|
||||
* @return - Location after event called
|
||||
*/
|
||||
@@ -136,4 +137,5 @@ public interface IPlugin extends Plugin
|
||||
* @param module - Your plugin instance
|
||||
*/
|
||||
void registerModule(Plugin module);
|
||||
|
||||
}
|
||||
|
@@ -12,9 +12,9 @@ public interface ITeleport
|
||||
/**
|
||||
* Teleport to a location now
|
||||
*
|
||||
* @param loc - location to send to
|
||||
* @param loc - location to send to
|
||||
* @param cooldown - To check cooldown
|
||||
* @param cause - Why was the send caused? Use a {@link TeleportCause}
|
||||
* @param cause - Why was the send caused? Use a {@link TeleportCause}
|
||||
* @throws Exception
|
||||
*/
|
||||
void now(Location loc, boolean cooldown, TeleportCause cause) throws Exception;
|
||||
|
@@ -35,7 +35,7 @@ public interface IWarps extends IReload
|
||||
* Set a warp
|
||||
*
|
||||
* @param name - Name of warp
|
||||
* @param loc - Location of warp
|
||||
* @param loc - Location of warp
|
||||
* @throws Exception
|
||||
*/
|
||||
void setWarp(String name, Location loc) throws Exception;
|
||||
|
@@ -17,7 +17,7 @@ public interface IWorth extends IReload
|
||||
* Set the price of an ItemStack
|
||||
*
|
||||
* @param itemStack - ItemStack to set price for
|
||||
* @param price - Price to set on item
|
||||
* @param price - Price to set on item
|
||||
*/
|
||||
void setPrice(ItemStack itemStack, double price);
|
||||
}
|
||||
|
@@ -15,11 +15,11 @@ import org.bukkit.command.CommandSender;
|
||||
|
||||
public class Backup implements Runnable, IBackup
|
||||
{
|
||||
private final Server server;
|
||||
private final IEssentials ess;
|
||||
private final AtomicBoolean running = new AtomicBoolean(false);
|
||||
private int taskId = -1;
|
||||
private final AtomicBoolean active = new AtomicBoolean(false);
|
||||
private transient final Server server;
|
||||
private transient final IEssentials ess;
|
||||
private transient final AtomicBoolean running = new AtomicBoolean(false);
|
||||
private transient int taskId = -1;
|
||||
private transient final AtomicBoolean active = new AtomicBoolean(false);
|
||||
|
||||
public Backup(final IEssentials ess)
|
||||
{
|
||||
@@ -60,10 +60,10 @@ public class Backup implements Runnable, IBackup
|
||||
final net.ess3.settings.Backup backupSettings = settings.getData().getGeneral().getBackup();
|
||||
|
||||
String backupCommand = backupSettings.getCommand() == null || backupSettings.getCommand().isEmpty() ? ("NORUN") : backupSettings.getCommand();
|
||||
|
||||
|
||||
/*if (backupCommand.equals("NORUN")) { TODO: Un-comment if you do not want commands to be run if there is no backup command
|
||||
return;
|
||||
}*/
|
||||
return;
|
||||
}*/
|
||||
|
||||
ess.getLogger().log(Level.INFO, _("backupStarted"));
|
||||
|
||||
@@ -82,7 +82,7 @@ public class Backup implements Runnable, IBackup
|
||||
|
||||
private class BackupRunner implements Runnable
|
||||
{
|
||||
private final String command;
|
||||
private final transient String command;
|
||||
|
||||
public BackupRunner(final String command)
|
||||
{
|
||||
|
@@ -11,9 +11,11 @@ import org.bukkit.enchantments.Enchantment;
|
||||
|
||||
public final class Enchantments
|
||||
{
|
||||
|
||||
private Enchantments()
|
||||
{
|
||||
}
|
||||
|
||||
private static final Map<String, Enchantment> ENCHANTMENTS = new HashMap<String, Enchantment>();
|
||||
|
||||
static
|
||||
|
@@ -8,6 +8,7 @@ import org.bukkit.entity.EntityType;
|
||||
public class LivingEntities
|
||||
{
|
||||
final private static Map<String, EntityType> entities = new HashMap<String, EntityType>();
|
||||
|
||||
final private static EnumMap<EntityType, String> entityI18n = new EnumMap<EntityType, String>(EntityType.class);
|
||||
final private static EnumMap<EntityType, String> entityI18nPlural = new EnumMap<EntityType, String>(EntityType.class);
|
||||
|
||||
@@ -40,9 +41,9 @@ public class LivingEntities
|
||||
return count == 1 ? _(entityI18n.get(type)) : _(entityI18nPlural.get(type));
|
||||
}
|
||||
|
||||
|
||||
public static class MobException extends Exception
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -109,7 +109,7 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
|
||||
private class Calculator implements Runnable
|
||||
{
|
||||
private final Viewer viewer;
|
||||
private final transient Viewer viewer;
|
||||
private final boolean force;
|
||||
|
||||
public Calculator(final Viewer viewer, final boolean force)
|
||||
@@ -176,9 +176,9 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
|
||||
private class Viewer implements Runnable
|
||||
{
|
||||
private final CommandSender sender;
|
||||
private final int page;
|
||||
private final boolean force;
|
||||
private final transient CommandSender sender;
|
||||
private final transient int page;
|
||||
private final transient boolean force;
|
||||
|
||||
public Viewer(final CommandSender sender, final int page, final boolean force)
|
||||
{
|
||||
|
@@ -10,13 +10,13 @@ import org.bukkit.TreeType;
|
||||
|
||||
public class Commandbigtree extends EssentialsCommand
|
||||
{
|
||||
private static enum BigTree
|
||||
{
|
||||
private static enum BigTree {
|
||||
REDWOOD(TreeType.TALL_REDWOOD),
|
||||
TREE(TreeType.BIG_TREE),
|
||||
JUNGLE(TreeType.JUNGLE);
|
||||
private final TreeType bukkitType;
|
||||
|
||||
private final TreeType bukkitType;
|
||||
|
||||
private BigTree(final TreeType bukkitType)
|
||||
{
|
||||
this.bukkitType = bukkitType;
|
||||
@@ -27,8 +27,9 @@ public class Commandbigtree extends EssentialsCommand
|
||||
return bukkitType;
|
||||
}
|
||||
}
|
||||
|
||||
private final static EnumConverter<BigTree> BIGTREE_PARSER = EnumConverter.getInstance(BigTree.class);
|
||||
|
||||
|
||||
@Override
|
||||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
|
@@ -10,7 +10,7 @@ import org.bukkit.command.CommandSender;
|
||||
|
||||
public class Commanddelhome extends EssentialsCommand
|
||||
{
|
||||
private final Pattern colon = Pattern.compile(":");
|
||||
private final transient Pattern colon = Pattern.compile(":");
|
||||
|
||||
@Override
|
||||
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
|
@@ -7,6 +7,7 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public class Commandenderchest extends EssentialsCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
|
@@ -7,7 +7,7 @@ import org.bukkit.command.CommandSender;
|
||||
|
||||
public class Commandessentials extends EssentialsCommand
|
||||
{
|
||||
private int taskid; // TODO: Needed?
|
||||
private transient int taskid; // TODO: Needed?
|
||||
|
||||
@Override
|
||||
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
|
@@ -13,31 +13,31 @@ public class Commandfireball extends EssentialsCommand
|
||||
Class<? extends Entity> clazz = Fireball.class;
|
||||
if (args.length > 0)
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("small"))
|
||||
if(args[0].equalsIgnoreCase("small"))
|
||||
{
|
||||
clazz = SmallFireball.class;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("arrow"))
|
||||
else if(args[0].equalsIgnoreCase("arrow"))
|
||||
{
|
||||
clazz = Arrow.class;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("skull"))
|
||||
else if(args[0].equalsIgnoreCase("skull"))
|
||||
{
|
||||
clazz = WitherSkull.class;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("egg"))
|
||||
else if(args[0].equalsIgnoreCase("egg"))
|
||||
{
|
||||
clazz = Egg.class;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("snowball"))
|
||||
else if(args[0].equalsIgnoreCase("snowball"))
|
||||
{
|
||||
clazz = Snowball.class;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("expbottle"))
|
||||
else if(args[0].equalsIgnoreCase("expbottle"))
|
||||
{
|
||||
clazz = ThrownExpBottle.class;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("large"))
|
||||
else if(args[0].equalsIgnoreCase("large"))
|
||||
{
|
||||
clazz = LargeFireball.class;
|
||||
}
|
||||
|
@@ -10,6 +10,7 @@ import org.bukkit.command.CommandSender;
|
||||
|
||||
public class Commandgamemode extends EssentialsSettingsCommand
|
||||
{
|
||||
|
||||
protected void setValue(final IUser player, GameMode value)
|
||||
{
|
||||
if (value == null)
|
||||
@@ -123,4 +124,5 @@ public class Commandgamemode extends EssentialsSettingsCommand
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -13,7 +13,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class Commandgive extends EssentialsCommand
|
||||
{
|
||||
private final Pattern data = Pattern.compile("[:+',;.]");
|
||||
private final transient Pattern data = Pattern.compile("[:+',;.]");
|
||||
|
||||
@Override
|
||||
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
|
@@ -15,7 +15,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
|
||||
public class Commandhome extends EssentialsCommand
|
||||
{
|
||||
private final Pattern colon = Pattern.compile(":");
|
||||
private final transient Pattern colon = Pattern.compile(":");
|
||||
|
||||
@Override
|
||||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
|
@@ -11,7 +11,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class Commanditem extends EssentialsCommand
|
||||
{
|
||||
private final Pattern data = Pattern.compile("[:+',;.]");
|
||||
private final transient Pattern data = Pattern.compile("[:+',;.]");
|
||||
|
||||
@Override
|
||||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
|
@@ -24,9 +24,8 @@ public class Commandmore extends EssentialsCommand
|
||||
}
|
||||
else
|
||||
{
|
||||
stacks = new ItemStack[]
|
||||
{
|
||||
player.getItemInHand()
|
||||
stacks = new ItemStack[]{
|
||||
player.getItemInHand()
|
||||
};
|
||||
}
|
||||
for (ItemStack stack : stacks)
|
||||
|
@@ -39,8 +39,8 @@ public class Commandmute extends EssentialsCommand
|
||||
final boolean muted = player.getData().isMuted();
|
||||
sender.sendMessage(
|
||||
muted ? (muteTimestamp > 0 ? _("mutedPlayerFor", player.getPlayer().getDisplayName(), DateUtil.formatDateDiff(muteTimestamp)) : _(
|
||||
"mutedPlayer", player.getPlayer().getDisplayName())) : _(
|
||||
"unmutedPlayer", player.getPlayer().getDisplayName()));
|
||||
"mutedPlayer", player.getPlayer().getDisplayName())) : _(
|
||||
"unmutedPlayer", player.getPlayer().getDisplayName()));
|
||||
player.sendMessage(
|
||||
muted ? (muteTimestamp > 0 ? _("playerMutedFor", DateUtil.formatDateDiff(muteTimestamp)) : _("playerMuted")) : _("playerUnmuted"));
|
||||
}
|
||||
|
@@ -14,6 +14,7 @@ import org.bukkit.inventory.*;
|
||||
|
||||
public class Commandrecipe extends EssentialsCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
public void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
@@ -88,7 +89,7 @@ public class Commandrecipe extends EssentialsCommand
|
||||
for (int k = 0; k < recipe.getShape()[j].length(); k++)
|
||||
{
|
||||
final ItemStack item = recipe.getIngredientMap().get(recipe.getShape()[j].toCharArray()[k]);
|
||||
if (item == null)
|
||||
if(item == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@@ -34,21 +34,21 @@ public class Commandseen extends EssentialsCommand
|
||||
final IUser u = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender));
|
||||
u.setDisplayNick();
|
||||
sender.sendMessage(_("seenOnline", u.getPlayer().getDisplayName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGIN))));
|
||||
if (u.getData().isAfk())
|
||||
if(u.getData().isAfk())
|
||||
{
|
||||
sender.sendMessage(_("whoisAFK", _("true")));
|
||||
}
|
||||
if (u.getData().isJailed())
|
||||
if(u.getData().isJailed())
|
||||
{
|
||||
sender.sendMessage(_("whoisJail", u.getTimestamp(TimestampType.JAIL) > 0
|
||||
? DateUtil.formatDateDiff(u.getTimestamp(TimestampType.JAIL))
|
||||
: _("true")));
|
||||
? DateUtil.formatDateDiff(u.getTimestamp(TimestampType.JAIL))
|
||||
: _("true")));
|
||||
}
|
||||
if (u.getData().isMuted())
|
||||
if(u.getData().isMuted())
|
||||
{
|
||||
sender.sendMessage(_("whoisMuted", u.getTimestamp(TimestampType.MUTE) > 0
|
||||
? DateUtil.formatDateDiff(u.getTimestamp(TimestampType.MUTE))
|
||||
: _("true")));
|
||||
? DateUtil.formatDateDiff(u.getTimestamp(TimestampType.MUTE))
|
||||
: _("true")));
|
||||
}
|
||||
}
|
||||
catch (PlayerNotFoundException e)
|
||||
|
@@ -148,8 +148,8 @@ public class Commandsell extends EssentialsCommand
|
||||
user.giveMoney(worth * amount);
|
||||
user.sendMessage(
|
||||
_(
|
||||
"itemSold", FormatUtil.displayCurrency(worth * amount, ess), amount, is.getType().toString().toLowerCase(Locale.ENGLISH),
|
||||
FormatUtil.displayCurrency(worth, ess)));
|
||||
"itemSold", FormatUtil.displayCurrency(worth * amount, ess), amount, is.getType().toString().toLowerCase(Locale.ENGLISH),
|
||||
FormatUtil.displayCurrency(worth, ess)));
|
||||
logger.log(
|
||||
Level.INFO, _(
|
||||
"itemSoldConsole", player.getDisplayName(), is.getType().toString().toLowerCase(Locale.ENGLISH),
|
||||
|
@@ -9,7 +9,7 @@ import net.ess3.permissions.Permissions;
|
||||
|
||||
public class Commandsethome extends EssentialsCommand
|
||||
{
|
||||
private final Pattern colon = Pattern.compile(":");
|
||||
private final transient Pattern colon = Pattern.compile(":");
|
||||
|
||||
@Override
|
||||
public void run(final IUser user, final String commandLabel, String[] args) throws Exception
|
||||
@@ -78,8 +78,8 @@ public class Commandsethome extends EssentialsCommand
|
||||
}
|
||||
user.sendMessage(
|
||||
_(
|
||||
"homeSet", user.getPlayer().getLocation().getWorld().getName(), user.getPlayer().getLocation().getBlockX(),
|
||||
user.getPlayer().getLocation().getBlockY(), user.getPlayer().getLocation().getBlockZ()));
|
||||
"homeSet", user.getPlayer().getLocation().getWorld().getName(), user.getPlayer().getLocation().getBlockX(),
|
||||
user.getPlayer().getLocation().getBlockY(), user.getPlayer().getLocation().getBlockZ()));
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -36,6 +36,7 @@ public class Commandsetwarp extends EssentialsCommand
|
||||
}
|
||||
|
||||
if (warpLoc == null || Permissions.WARP_OVERWRITE.isAuthorized(user, args[0]))
|
||||
|
||||
{
|
||||
warps.setWarp(args[0], loc);
|
||||
}
|
||||
|
@@ -8,6 +8,7 @@ import org.bukkit.command.CommandSender;
|
||||
|
||||
public class Commandsocialspy extends EssentialsToggleCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
protected void setValue(final IUser player, final boolean value)
|
||||
{
|
||||
|
@@ -46,7 +46,7 @@ public class Commandspawner extends EssentialsCommand
|
||||
throw new Exception(_("unableToSpawnMob"));
|
||||
}
|
||||
int delay = 0;
|
||||
if (args.length > 1 && Util.isInt(args[1]))
|
||||
if(args.length > 1 && Util.isInt(args[1]))
|
||||
{
|
||||
delay = Integer.parseInt(args[1]);
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@ import net.ess3.api.IUser;
|
||||
|
||||
public class Commandspawnmob extends EssentialsCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
|
@@ -10,6 +10,7 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public class Commandspeed extends EssentialsCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
|
@@ -21,7 +21,7 @@ public class Commandtpaccept extends EssentialsCommand
|
||||
|
||||
final IUser target = user.getTeleportRequester();
|
||||
if (target == null || !target.isOnline() || (user.isTpRequestHere() && !Permissions.TPAHERE.isAuthorized(
|
||||
target)) || (!user.isTpRequestHere() && !Permissions.TPA.isAuthorized(target) && !Permissions.TPAALL.isAuthorized(target)))
|
||||
target)) || (!user.isTpRequestHere() && !Permissions.TPA.isAuthorized(target) && !Permissions.TPAALL.isAuthorized(target)))
|
||||
{
|
||||
throw new Exception(_("noPendingRequest"));
|
||||
}
|
||||
|
@@ -8,6 +8,7 @@ import org.bukkit.command.CommandSender;
|
||||
|
||||
public class Commandtptoggle extends EssentialsToggleCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
protected void setValue(final IUser player, final boolean value)
|
||||
{
|
||||
|
@@ -61,8 +61,8 @@ public class Commandwhois extends EssentialsCommand
|
||||
sender.sendMessage(_("whoisExp", SetExpFix.getTotalExperience(player), player.getLevel()));
|
||||
sender.sendMessage(
|
||||
_(
|
||||
"whoisLocation", player.getLocation().getWorld().getName(), player.getLocation().getBlockX(), player.getLocation().getBlockY(),
|
||||
player.getLocation().getBlockZ()));
|
||||
"whoisLocation", player.getLocation().getWorld().getName(), player.getLocation().getBlockX(), player.getLocation().getBlockY(),
|
||||
player.getLocation().getBlockZ()));
|
||||
sender.sendMessage(_("whoisMoney", FormatUtil.displayCurrency(user.getMoney(), ess)));
|
||||
sender.sendMessage(_("whoisIPAddress", player.getAddress().getAddress().toString()));
|
||||
final String location = userData.getGeolocation();
|
||||
@@ -77,12 +77,12 @@ public class Commandwhois extends EssentialsCommand
|
||||
sender.sendMessage(_("whoisAFK", (userData.isAfk() ? _("true") : _("false"))));
|
||||
sender.sendMessage(
|
||||
_(
|
||||
"whoisJail", (userData.isJailed() ? user.getTimestamp(UserData.TimestampType.JAIL) > 0 ? DateUtil.formatDateDiff(
|
||||
user.getTimestamp(UserData.TimestampType.JAIL)) : _("true") : _("false"))));
|
||||
"whoisJail", (userData.isJailed() ? user.getTimestamp(UserData.TimestampType.JAIL) > 0 ? DateUtil.formatDateDiff(
|
||||
user.getTimestamp(UserData.TimestampType.JAIL)) : _("true") : _("false"))));
|
||||
sender.sendMessage(
|
||||
_(
|
||||
"whoisMute", (userData.isMuted() ? user.getTimestamp(UserData.TimestampType.MUTE) > 0 ? DateUtil.formatDateDiff(
|
||||
user.getTimestamp(UserData.TimestampType.MUTE)) : _("true") : _("false"))));
|
||||
"whoisMute", (userData.isMuted() ? user.getTimestamp(UserData.TimestampType.MUTE) > 0 ? DateUtil.formatDateDiff(
|
||||
user.getTimestamp(UserData.TimestampType.MUTE)) : _("true") : _("false"))));
|
||||
|
||||
if (!foundPlayer)
|
||||
{
|
||||
|
@@ -43,10 +43,10 @@ public class Commandworth extends EssentialsCommand
|
||||
|
||||
user.sendMessage(
|
||||
iStack.getDurability() != 0 ? _(
|
||||
"worthMeta", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), iStack.getDurability(),
|
||||
FormatUtil.displayCurrency(worth * amount, ess), amount, FormatUtil.displayCurrency(worth, ess)) : _(
|
||||
"worth", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), FormatUtil.displayCurrency(worth * amount, ess),
|
||||
amount, FormatUtil.displayCurrency(worth, ess)));
|
||||
"worthMeta", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), iStack.getDurability(),
|
||||
FormatUtil.displayCurrency(worth * amount, ess), amount, FormatUtil.displayCurrency(worth, ess)) : _(
|
||||
"worth", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), FormatUtil.displayCurrency(worth * amount, ess),
|
||||
amount, FormatUtil.displayCurrency(worth, ess)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -81,10 +81,10 @@ public class Commandworth extends EssentialsCommand
|
||||
|
||||
sender.sendMessage(
|
||||
iStack.getDurability() != 0 ? _(
|
||||
"worthMeta", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), iStack.getDurability(),
|
||||
FormatUtil.displayCurrency(worth * amount, ess), amount, FormatUtil.displayCurrency(worth, ess)) : _(
|
||||
"worth", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), FormatUtil.displayCurrency(worth * amount, ess),
|
||||
amount, FormatUtil.displayCurrency(worth, ess)));
|
||||
"worthMeta", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), iStack.getDurability(),
|
||||
FormatUtil.displayCurrency(worth * amount, ess), amount, FormatUtil.displayCurrency(worth, ess)) : _(
|
||||
"worth", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), FormatUtil.displayCurrency(worth * amount, ess),
|
||||
amount, FormatUtil.displayCurrency(worth, ess)));
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -16,12 +16,12 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public abstract class EssentialsCommand extends AbstractSuperpermsPermission implements IEssentialsCommand
|
||||
{
|
||||
protected String commandName;
|
||||
protected IEssentials ess;
|
||||
protected IEssentialsModule module;
|
||||
protected Server server;
|
||||
protected Logger logger;
|
||||
private String permission;
|
||||
protected transient String commandName;
|
||||
protected transient IEssentials ess;
|
||||
protected transient IEssentialsModule module;
|
||||
protected transient Server server;
|
||||
protected transient Logger logger;
|
||||
private transient String permission;
|
||||
|
||||
@Override
|
||||
public void init(final IEssentials ess, final String commandName)
|
||||
|
@@ -14,15 +14,15 @@ import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class EssentialsCommandHandler implements ICommandHandler, TabExecutor
|
||||
{
|
||||
private final ClassLoader classLoader;
|
||||
private final String commandPath;
|
||||
private final String permissionPrefix; // TODO: Needed?
|
||||
private final IEssentialsModule module;
|
||||
private static final Logger LOGGER = Bukkit.getLogger();
|
||||
private final Map<String, List<PluginCommand>> altcommands = new HashMap<String, List<PluginCommand>>();
|
||||
private final Map<String, String> disabledList = new HashMap<String, String>();
|
||||
private final Map<String, IEssentialsCommand> commands = new HashMap<String, IEssentialsCommand>();
|
||||
private final IEssentials ess;
|
||||
private final transient ClassLoader classLoader;
|
||||
private final transient String commandPath;
|
||||
private final transient String permissionPrefix;// TODO: Needed?
|
||||
private final transient IEssentialsModule module;
|
||||
private static final transient Logger LOGGER = Bukkit.getLogger();
|
||||
private final transient Map<String, List<PluginCommand>> altcommands = new HashMap<String, List<PluginCommand>>();
|
||||
private final transient Map<String, String> disabledList = new HashMap<String, String>();
|
||||
private final transient Map<String, IEssentialsCommand> commands = new HashMap<String, IEssentialsCommand>();
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public EssentialsCommandHandler(ClassLoader classLoader, String commandPath, String permissionPrefix, IEssentials ess)
|
||||
{
|
||||
|
@@ -8,6 +8,7 @@ import org.bukkit.command.CommandSender;
|
||||
|
||||
public abstract class EssentialsSettingsCommand extends EssentialsCommand
|
||||
{
|
||||
|
||||
abstract protected void informSender(final CommandSender sender, final boolean value, final IUser player);
|
||||
|
||||
abstract protected void informPlayer(final IUser player);
|
||||
@@ -81,4 +82,5 @@ public abstract class EssentialsSettingsCommand extends EssentialsCommand
|
||||
informSender(sender, true, matchPlayer);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ import net.ess3.api.IUser;
|
||||
|
||||
public abstract class EssentialsToggleCommand extends EssentialsSettingsCommand
|
||||
{
|
||||
|
||||
abstract protected void setValue(final IUser player, final boolean value);
|
||||
|
||||
abstract protected boolean getValue(final IUser player);
|
||||
|
@@ -17,3 +17,5 @@ public class WarpNotFoundException extends Exception
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@@ -14,7 +14,7 @@ public class EnumConverter<E extends Enum<E>> implements ArgumentsParser<E>, Ser
|
||||
private static final Pattern REPLACE = Pattern.compile("[_-]");
|
||||
private final Map<String, E> enumMap = new HashMap<String, E>();
|
||||
private final Map<E, String> serializedMap;
|
||||
|
||||
|
||||
private EnumConverter(final Class<E> enumClass)
|
||||
{
|
||||
serializedMap = new EnumMap<E, String>(enumClass);
|
||||
@@ -24,7 +24,7 @@ public class EnumConverter<E extends Enum<E>> implements ArgumentsParser<E>, Ser
|
||||
serializedMap.put(t, prettifyString(t.name()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static <T extends Enum<T>> EnumConverter<T> getInstance(final Class<T> enumClass)
|
||||
{
|
||||
synchronized (converterMap)
|
||||
@@ -38,7 +38,7 @@ public class EnumConverter<E extends Enum<E>> implements ArgumentsParser<E>, Ser
|
||||
return converter;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ParserResult<E> parse(final String... args)
|
||||
{
|
||||
@@ -51,18 +51,18 @@ public class EnumConverter<E extends Enum<E>> implements ArgumentsParser<E>, Ser
|
||||
}
|
||||
return new FirstEntryParserResult<E>(e, args);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String serialize(final E input)
|
||||
{
|
||||
return serializedMap.get(input);
|
||||
}
|
||||
|
||||
|
||||
private String cleanString(final String input)
|
||||
{
|
||||
return REPLACE.matcher(input).replaceAll("").toLowerCase(Locale.ENGLISH);
|
||||
}
|
||||
|
||||
|
||||
private String prettifyString(final String input)
|
||||
{
|
||||
return input.replace('_', '-').toLowerCase(Locale.ENGLISH);
|
||||
|
@@ -11,6 +11,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
* TODO: make sure this is up-to date
|
||||
*/
|
||||
|
||||
|
||||
public final class InventoryWorkaround
|
||||
{
|
||||
private InventoryWorkaround()
|
||||
@@ -27,7 +28,7 @@ public final class InventoryWorkaround
|
||||
for (int i = 0; i < stacks.length; i++)
|
||||
{
|
||||
final ItemStack cItem = stacks[i];
|
||||
if (cItem != null && cItem.getAmount() < maxAmount && cItem.isSimilar(item))
|
||||
if(cItem != null && cItem.getAmount() < maxAmount && cItem.isSimilar(item))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
|
@@ -35,4 +35,6 @@ public class Money implements StorageObject
|
||||
balanceMap.remove(name);
|
||||
balances = balanceMap;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -22,12 +22,12 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class Trade
|
||||
{
|
||||
private final String command;
|
||||
private final String fallbackCommand;
|
||||
private final Double money;
|
||||
private final ItemStack itemStack;
|
||||
private final Integer exp;
|
||||
private final IEssentials ess;
|
||||
private final transient String command;
|
||||
private final transient String fallbackCommand;
|
||||
private final transient Double money;
|
||||
private final transient ItemStack itemStack;
|
||||
private final transient Integer exp;
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public Trade(final String command, final IEssentials ess)
|
||||
{
|
||||
@@ -211,6 +211,7 @@ public class Trade
|
||||
}
|
||||
return cost;
|
||||
}
|
||||
|
||||
private static FileWriter fw = null;
|
||||
|
||||
public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, Location loc, IEssentials ess)
|
||||
|
@@ -26,6 +26,7 @@ public class Worth implements StorageObject
|
||||
{
|
||||
return sell == null ? Collections.<MaterialData, Double>emptyMap() : Collections.unmodifiableMap(sell);
|
||||
}
|
||||
|
||||
@MapKeyType(MaterialData.class)
|
||||
@MapValueType(Double.class)
|
||||
@Getter(AccessLevel.NONE)
|
||||
@@ -36,6 +37,7 @@ public class Worth implements StorageObject
|
||||
{
|
||||
return buy == null ? Collections.<MaterialData, Double>emptyMap() : Collections.unmodifiableMap(buy);
|
||||
}
|
||||
|
||||
@MapKeyType(EnchantmentLevel.class)
|
||||
@MapValueType(Double.class)
|
||||
@Getter(AccessLevel.NONE)
|
||||
|
@@ -6,8 +6,7 @@ import org.bukkit.plugin.Plugin;
|
||||
/**
|
||||
* Interface to be implemented by a payment method.
|
||||
*
|
||||
* @author Nijikokun <nijikokun@shortmail.com> (
|
||||
* @nijikokun)
|
||||
* @author Nijikokun <nijikokun@shortmail.com> (@nijikokun)
|
||||
* @copyright Copyright (C) 2011
|
||||
* @license AOL license <http://aol.nexua.org>
|
||||
*/
|
||||
@@ -17,8 +16,7 @@ public interface Method
|
||||
* Encodes the Plugin into an Object disguised as the Plugin. If you want the original Plugin Class you must cast it
|
||||
* to the correct Plugin, to do so you have to verify the name and or version then cast.
|
||||
* <p/>
|
||||
* <
|
||||
* pre>
|
||||
* <pre>
|
||||
* if(method.getName().equalsIgnoreCase("iConomy"))
|
||||
* iConomy plugin = ((iConomy)method.getPlugin());</pre>
|
||||
*
|
||||
@@ -50,7 +48,8 @@ public interface Method
|
||||
public String getVersion();
|
||||
|
||||
/**
|
||||
* Returns the amount of decimal places that get stored NOTE: it will return -1 if there is no rounding
|
||||
* Returns the amount of decimal places that get stored
|
||||
* NOTE: it will return -1 if there is no rounding
|
||||
*
|
||||
* @return <code>int</code> for each decimal place
|
||||
*/
|
||||
@@ -89,9 +88,7 @@ public interface Method
|
||||
public boolean hasAccount(String name);
|
||||
|
||||
/**
|
||||
* Check to see if an account
|
||||
* <code>name</code> is tied to a
|
||||
* <code>bank</code>.
|
||||
* Check to see if an account <code>name</code> is tied to a <code>bank</code>.
|
||||
*
|
||||
* @param bank Bank name
|
||||
* @param name Account name
|
||||
@@ -110,16 +107,14 @@ public interface Method
|
||||
/**
|
||||
* Forces an account creation
|
||||
*
|
||||
* @param name Account name
|
||||
* @param name Account name
|
||||
* @param balance Initial account balance
|
||||
* @return <code>boolean</code>
|
||||
*/
|
||||
public boolean createAccount(String name, Double balance);
|
||||
|
||||
/**
|
||||
* Returns a
|
||||
* <code>MethodAccount</code> class for an account
|
||||
* <code>name</code>.
|
||||
* Returns a <code>MethodAccount</code> class for an account <code>name</code>.
|
||||
*
|
||||
* @param name Account name
|
||||
* @return <code>MethodAccount</code> <em>or</em> <code>Null</code>
|
||||
@@ -127,9 +122,7 @@ public interface Method
|
||||
public MethodAccount getAccount(String name);
|
||||
|
||||
/**
|
||||
* Returns a
|
||||
* <code>MethodBankAccount</code> class for an account
|
||||
* <code>name</code>.
|
||||
* Returns a <code>MethodBankAccount</code> class for an account <code>name</code>.
|
||||
*
|
||||
* @param bank Bank name
|
||||
* @param name Account name
|
||||
@@ -138,7 +131,8 @@ public interface Method
|
||||
public MethodBankAccount getBankAccount(String bank, String name);
|
||||
|
||||
/**
|
||||
* Checks to verify the compatibility between this Method and a plugin. Internal usage only, for the most part.
|
||||
* Checks to verify the compatibility between this Method and a plugin.
|
||||
* Internal usage only, for the most part.
|
||||
*
|
||||
* @param plugin Plugin
|
||||
* @return <code>boolean</code>
|
||||
|
@@ -22,10 +22,8 @@ import org.bukkit.plugin.PluginManager;
|
||||
* preferred: "iConomy"
|
||||
* </pre></blockquote>
|
||||
*
|
||||
* @author: Nijikokun <nijikokun@shortmail.com> (
|
||||
* @nijikokun)
|
||||
* @copyright: Copyright (C) 2011
|
||||
* @license: AOL license <http://aol.nexua.org>
|
||||
* @author: Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright: Copyright (C) 2011 @license: AOL license
|
||||
* <http://aol.nexua.org>
|
||||
*/
|
||||
public class Methods
|
||||
{
|
||||
@@ -257,7 +255,8 @@ public class Methods
|
||||
/**
|
||||
* Grab the existing and initialized (hopefully) Method Class.
|
||||
*
|
||||
* @return <code>Method</code> <em>or</em> <code>Null</code>
|
||||
* @return <code>Method</code> <em>or</em>
|
||||
* <code>Null</code>
|
||||
*/
|
||||
public static Method getMethod()
|
||||
{
|
||||
|
@@ -9,10 +9,8 @@ import org.bukkit.plugin.Plugin;
|
||||
* BOSEconomy 7 Implementation of Method
|
||||
*
|
||||
* @author Acrobot
|
||||
* @author Nijikokun <nijikokun@shortmail.com> (
|
||||
* @nijikokun)
|
||||
* @copyright (c) 2011
|
||||
* @license AOL license <http://aol.nexua.org>
|
||||
* @author Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright (c) 2011 @license AOL license
|
||||
* <http://aol.nexua.org>
|
||||
*/
|
||||
public class BOSE7 implements Method
|
||||
{
|
||||
|
@@ -12,10 +12,8 @@ import org.bukkit.plugin.Plugin;
|
||||
/**
|
||||
* iConomy 5 Implementation of Method
|
||||
*
|
||||
* @author Nijikokun <nijikokun@shortmail.com> (
|
||||
* @nijikokun)
|
||||
* @copyright (c) 2011
|
||||
* @license AOL license <http://aol.nexua.org>
|
||||
* @author Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright (c) 2011 @license AOL license
|
||||
* <http://aol.nexua.org>
|
||||
*/
|
||||
public class iCo5 implements Method
|
||||
{
|
||||
|
@@ -11,10 +11,8 @@ import org.bukkit.plugin.Plugin;
|
||||
/**
|
||||
* iConomy 6 Implementation of Method
|
||||
*
|
||||
* @author Nijikokun <nijikokun@shortmail.com> (
|
||||
* @nijikokun)
|
||||
* @copyright (c) 2011
|
||||
* @license AOL license <http://aol.nexua.org>
|
||||
* @author Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright (c) 2011 @license AOL license
|
||||
* <http://aol.nexua.org>
|
||||
*/
|
||||
public class iCo6 implements Method
|
||||
{
|
||||
|
@@ -15,7 +15,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class EssentialsBlockListener implements Listener
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public EssentialsBlockListener(final IEssentials ess)
|
||||
{
|
||||
|
@@ -19,7 +19,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class EssentialsEntityListener implements Listener
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public EssentialsEntityListener(final IEssentials ess)
|
||||
{
|
||||
@@ -41,7 +41,7 @@ public class EssentialsEntityListener implements Listener
|
||||
attacker.updateActivity(true);
|
||||
if (settings.getData().getGeneral().getLoginAttackDelay() > 0 && !Permissions.PVPDELAY_EXEMPT.isAuthorized(
|
||||
attacker) && (System.currentTimeMillis() < (attacker.getTimestamp(
|
||||
TimestampType.LOGIN) + settings.getData().getGeneral().getLoginAttackDelay())))
|
||||
TimestampType.LOGIN) + settings.getData().getGeneral().getLoginAttackDelay())))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
@@ -40,9 +40,9 @@ import org.bukkit.inventory.ItemStack;
|
||||
public class EssentialsPlayerListener implements Listener
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private final Server server;
|
||||
private final IEssentials ess;
|
||||
private final IUserMap userMap;
|
||||
private final transient Server server;
|
||||
private final transient IEssentials ess;
|
||||
private final transient IUserMap userMap;
|
||||
|
||||
public EssentialsPlayerListener(final IEssentials parent)
|
||||
{
|
||||
@@ -56,8 +56,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
public void onPlayerRespawn(final PlayerRespawnEvent event)
|
||||
{
|
||||
final Player player = event.getPlayer();
|
||||
if (!player.isOnline())
|
||||
{
|
||||
if (!player.isOnline()) {
|
||||
return;
|
||||
}
|
||||
final IUser user = userMap.getUser(player);
|
||||
@@ -174,83 +173,83 @@ public class EssentialsPlayerListener implements Listener
|
||||
delayedJoin(event.getPlayer());
|
||||
}
|
||||
});
|
||||
/* TODO: Make sure my update is good
|
||||
if (!event.getPlayer().isOnline())
|
||||
{
|
||||
return;
|
||||
}
|
||||
/* TODO: Make sure my update is good
|
||||
if (!event.getPlayer().isOnline())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ess.getBackup().startTask();
|
||||
ess.getBackup().startTask();
|
||||
|
||||
final String joinMessage = ess.getSettings().getData().getGeneral().getJoinMessage();
|
||||
if (joinMessage != null)
|
||||
{
|
||||
final IText itOutput = new KeywordReplacer(new SimpleTextInput(joinMessage), ess.getUserMap().getUser(event.getPlayer()), ess);
|
||||
final SimpleTextPager stPager = new SimpleTextPager(itOutput);
|
||||
event.setJoinMessage(FormatUtil.replaceFormat(stPager.getString(0)));
|
||||
}
|
||||
else
|
||||
{
|
||||
event.setJoinMessage(joinMessage);
|
||||
}
|
||||
final String joinMessage = ess.getSettings().getData().getGeneral().getJoinMessage();
|
||||
if (joinMessage != null)
|
||||
{
|
||||
final IText itOutput = new KeywordReplacer(new SimpleTextInput(joinMessage), ess.getUserMap().getUser(event.getPlayer()), ess);
|
||||
final SimpleTextPager stPager = new SimpleTextPager(itOutput);
|
||||
event.setJoinMessage(FormatUtil.replaceFormat(stPager.getString(0)));
|
||||
}
|
||||
else
|
||||
{
|
||||
event.setJoinMessage(joinMessage);
|
||||
}
|
||||
|
||||
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
||||
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
||||
|
||||
user.updateDisplayName();
|
||||
user.getData().setIpAddress(user.getPlayer().getAddress().getAddress().getHostAddress());
|
||||
user.updateActivity(false);
|
||||
user.updateDisplayName();
|
||||
user.getData().setIpAddress(user.getPlayer().getAddress().getAddress().getHostAddress());
|
||||
user.updateActivity(false);
|
||||
|
||||
for (String p : ess.getVanishedPlayers())
|
||||
{
|
||||
if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(user))
|
||||
{
|
||||
user.getPlayer().hidePlayer(ess.getUserMap().getUser(p).getPlayer());
|
||||
}
|
||||
}
|
||||
for (String p : ess.getVanishedPlayers())
|
||||
{
|
||||
if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(user))
|
||||
{
|
||||
user.getPlayer().hidePlayer(ess.getUserMap().getUser(p).getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
if (Permissions.SLEEPINGIGNORED.isAuthorized(user))
|
||||
{
|
||||
user.getPlayer().setSleepingIgnored(true);
|
||||
}
|
||||
user.queueSave();
|
||||
if (Permissions.SLEEPINGIGNORED.isAuthorized(user))
|
||||
{
|
||||
user.getPlayer().setSleepingIgnored(true);
|
||||
}
|
||||
user.queueSave();
|
||||
|
||||
|
||||
final ISettings settings = ess.getSettings();
|
||||
final ISettings settings = ess.getSettings();
|
||||
|
||||
if (!settings.getData().getCommands().isDisabled("motd") && Permissions.MOTD.isAuthorized(user))
|
||||
{
|
||||
try
|
||||
{
|
||||
final IText input = new TextInput(user, "motd", true, ess);
|
||||
final IText output = new KeywordReplacer(input, user, ess);
|
||||
final TextPager pager = new TextPager(output, true);
|
||||
pager.showPage("1", null, "motd", user);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
if (settings.getData().getGeneral().isDebug())
|
||||
{
|
||||
LOGGER.log(Level.WARNING, ex.getMessage(), ex);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER.log(Level.WARNING, ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!settings.getData().getCommands().isDisabled("motd") && Permissions.MOTD.isAuthorized(user))
|
||||
{
|
||||
try
|
||||
{
|
||||
final IText input = new TextInput(user, "motd", true, ess);
|
||||
final IText output = new KeywordReplacer(input, user, ess);
|
||||
final TextPager pager = new TextPager(output, true);
|
||||
pager.showPage("1", null, "motd", user);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
if (settings.getData().getGeneral().isDebug())
|
||||
{
|
||||
LOGGER.log(Level.WARNING, ex.getMessage(), ex);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER.log(Level.WARNING, ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!settings.getData().getCommands().isDisabled("mail") && Permissions.MAIL.isAuthorized(user))
|
||||
{
|
||||
final List<String> mail = user.getData().getMails();
|
||||
if (mail == null || mail.isEmpty())
|
||||
{
|
||||
user.sendMessage(_("noNewMail"));
|
||||
}
|
||||
else
|
||||
{
|
||||
user.sendMessage(_("youHaveNewMail", mail.size()));
|
||||
}
|
||||
}*/
|
||||
if (!settings.getData().getCommands().isDisabled("mail") && Permissions.MAIL.isAuthorized(user))
|
||||
{
|
||||
final List<String> mail = user.getData().getMails();
|
||||
if (mail == null || mail.isEmpty())
|
||||
{
|
||||
user.sendMessage(_("noNewMail"));
|
||||
}
|
||||
else
|
||||
{
|
||||
user.sendMessage(_("youHaveNewMail", mail.size()));
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
public void delayedJoin(final Player player)
|
||||
@@ -331,19 +330,19 @@ public class EssentialsPlayerListener implements Listener
|
||||
user.sendMessage(_("youHaveNewMail", mail.size()));
|
||||
}
|
||||
}
|
||||
if (Permissions.FLY_SAFELOGIN.isAuthorized(user))
|
||||
if(Permissions.FLY_SAFELOGIN.isAuthorized(user))
|
||||
{
|
||||
final Location loc = user.getPlayer().getLocation();
|
||||
final World world = loc.getWorld();
|
||||
final int x = loc.getBlockX();
|
||||
int y = loc.getBlockY();
|
||||
final int z = loc.getBlockZ();
|
||||
while (LocationUtil.isBlockUnsafe(world, x, y, z) && y > -1)
|
||||
while(LocationUtil.isBlockUnsafe(world, x, y, z) && y > -1)
|
||||
{
|
||||
y--;
|
||||
}
|
||||
|
||||
if (loc.getBlockY() - y > 1 || y < 0)
|
||||
if(loc.getBlockY() - y > 1 || y < 0)
|
||||
{
|
||||
user.getPlayer().setAllowFlight(true);
|
||||
user.getPlayer().setFlying(true);
|
||||
@@ -352,6 +351,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerLogin(final PlayerLoginEvent event)
|
||||
{
|
||||
@@ -449,6 +449,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private final Pattern spaceSplit = Pattern.compile(" ");
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
@@ -612,7 +613,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
{
|
||||
final IUser invOwner = userMap.getUser((Player)invHolder);
|
||||
if (user.isInvSee() && (!Permissions.INVSEE_MODIFY.isAuthorized(user) || Permissions.INVSEE_PREVENT_MODIFY.isAuthorized(
|
||||
invOwner) || !invOwner.isOnline()))
|
||||
invOwner) || !invOwner.isOnline()))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
@@ -620,7 +621,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
}
|
||||
if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH)
|
||||
{
|
||||
final IUser user = userMap.getUser((Player)event.getWhoClicked());
|
||||
final IUser user = userMap.getUser((Player) event.getWhoClicked());
|
||||
if (user.isRecipeSee())
|
||||
{
|
||||
event.setCancelled(true);
|
||||
|
@@ -19,7 +19,7 @@ import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class EssentialsPluginListener implements Listener, IReload
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public EssentialsPluginListener(final IEssentials ess)
|
||||
{
|
||||
@@ -36,10 +36,9 @@ public class EssentialsPluginListener implements Listener, IReload
|
||||
if (!Methods.hasMethod() && Methods.setMethod(ess.getServer().getPluginManager()))
|
||||
{
|
||||
ess.getLogger().log(
|
||||
Level.INFO, "Payment method found ({0} version: {1})", new Object[]
|
||||
{
|
||||
Methods.getMethod().getName(), Methods.getMethod().getVersion()
|
||||
});
|
||||
Level.INFO, "Payment method found ({0} version: {1})", new Object[]{
|
||||
Methods.getMethod().getName(), Methods.getMethod().getVersion()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -14,8 +14,8 @@ import org.bukkit.event.player.PlayerJoinEvent;
|
||||
|
||||
public class MetricsListener implements Listener
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private final MetricsStarter starter;
|
||||
private final transient IEssentials ess;
|
||||
private final transient MetricsStarter starter;
|
||||
|
||||
public MetricsListener(final IEssentials parent, final MetricsStarter starter)
|
||||
{
|
||||
@@ -30,7 +30,7 @@ public class MetricsListener implements Listener
|
||||
|
||||
ISettings settings = ess.getSettings();
|
||||
if (settings.getData().getGeneral().getMetricsEnabled() == null && (Permissions.ESSENTIALS.isAuthorized(
|
||||
event.getPlayer()) || event.getPlayer().hasPermission("bukkit.broadcast.admin")))
|
||||
event.getPlayer()) || event.getPlayer().hasPermission("bukkit.broadcast.admin")))
|
||||
{
|
||||
player.sendMessage(_("metrics1"));
|
||||
player.sendMessage(_("metrics2"));
|
||||
|
@@ -14,7 +14,7 @@ import net.ess3.metrics.Metrics.Plotter;
|
||||
public class MetricsStarter implements Runnable
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private Boolean start;
|
||||
private transient Boolean start;
|
||||
|
||||
|
||||
private enum Modules
|
||||
@@ -30,7 +30,10 @@ public class MetricsStarter implements Runnable
|
||||
EssentialsProtect,
|
||||
EssentialsGeoIP,
|
||||
EssentialsXMPP
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
;
|
||||
|
||||
public MetricsStarter(final IEssentials plugin)
|
||||
{
|
||||
|
@@ -1,6 +1,5 @@
|
||||
package net.ess3.permissions;
|
||||
|
||||
|
||||
public class BasePermission extends AbstractSuperpermsPermission
|
||||
{
|
||||
protected String permission;
|
||||
|
@@ -121,7 +121,7 @@ public enum Permissions implements IPermission
|
||||
private static final String base = "essentials.";
|
||||
private final String permission;
|
||||
private final PermissionDefault defaultPerm;
|
||||
private String parent = null;
|
||||
private transient String parent = null;
|
||||
|
||||
private Permissions()
|
||||
{
|
||||
@@ -164,6 +164,7 @@ public enum Permissions implements IPermission
|
||||
{
|
||||
return PermissionFactory.checkPermission(sender, this);
|
||||
}
|
||||
|
||||
public static DotStarPermission ENCHANT = new DotStarPermission("essentials.enchant");
|
||||
public static MaterialDotStarPermission GIVE = new MaterialDotStarPermission("essentials.give", PermissionDefault.TRUE);
|
||||
public static DotStarPermission RANKS = new DotStarPermission("essentials.ranks");
|
||||
|
@@ -12,8 +12,8 @@ import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class GMGroups extends AbstractRanks implements IRanks
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private final GroupManager groupManager;
|
||||
private final transient IEssentials ess;
|
||||
private final transient GroupManager groupManager;
|
||||
|
||||
public GMGroups(final IEssentials ess, final Plugin groupManager)
|
||||
{
|
||||
|
@@ -17,11 +17,12 @@ public class Ranks implements StorageObject
|
||||
final RankOptions defaultOptions = new RankOptions();
|
||||
ranks.put("default", defaultOptions);
|
||||
}
|
||||
|
||||
@Comment(
|
||||
{
|
||||
"The order of the ranks matters, the ranks are checked from top to bottom.", "All rank names have to be lower case.",
|
||||
"The ranks can be connected to users using the permission essentials.ranks.rankname"
|
||||
})
|
||||
{
|
||||
"The order of the ranks matters, the ranks are checked from top to bottom.", "All rank names have to be lower case.",
|
||||
"The ranks can be connected to users using the permission essentials.ranks.rankname"
|
||||
})
|
||||
@MapValueType(RankOptions.class)
|
||||
private LinkedHashMap<String, RankOptions> ranks = new LinkedHashMap<String, RankOptions>();
|
||||
}
|
||||
|
@@ -18,16 +18,17 @@ public class Backup implements StorageObject
|
||||
@Comment("Add a command that backups your data, e.g. 'rdiff-backup World1 backups/World1'")
|
||||
private String command;
|
||||
@Comment(
|
||||
{
|
||||
"Runs these commands before a backup.", "This will run every time time (in minutes) you specify in the interval setting.",
|
||||
"ex: say \"Hello World\" will make the server say Hello World"
|
||||
})
|
||||
{
|
||||
"Runs these commands before a backup.", "This will run every time time (in minutes) you specify in the interval setting.",
|
||||
"ex: say \"Hello World\" will make the server say Hello World"
|
||||
})
|
||||
private List<String> commandsBeforeBackup;
|
||||
|
||||
@Comment(
|
||||
{
|
||||
"Runs these commands after a backup.", "This will run every time time (in minutes) you specify in the interval setting.",
|
||||
"ex: say \"Hello World\" will make the server say Hello World"
|
||||
})
|
||||
{
|
||||
"Runs these commands after a backup.", "This will run every time time (in minutes) you specify in the interval setting.",
|
||||
"ex: say \"Hello World\" will make the server say Hello World"
|
||||
})
|
||||
private List<String> commandsAfterBackup;
|
||||
|
||||
public Backup()
|
||||
@@ -48,4 +49,5 @@ public class Backup implements StorageObject
|
||||
{
|
||||
return commandsAfterBackup == null ? Collections.<String>emptyList() : Collections.unmodifiableList(commandsAfterBackup);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -13,20 +13,20 @@ public class Chat implements StorageObject
|
||||
@Comment("The character(s) to prefix all nicknames, so that you know they are not true usernames.")
|
||||
private String nicknamePrefix = "~";
|
||||
@Comment(
|
||||
{
|
||||
"Disable this if you have any other plugin, that modifies the displayname of a user.",
|
||||
"If it is not set, it will be enabled if EssentialsChat is installed, otherwise not."
|
||||
})
|
||||
{
|
||||
"Disable this if you have any other plugin, that modifies the displayname of a user.",
|
||||
"If it is not set, it will be enabled if EssentialsChat is installed, otherwise not."
|
||||
})
|
||||
private Boolean changeDisplayname;
|
||||
private String displaynameFormat = "{PREFIX}{NICKNAMEPREFIX}{NAME}{SUFFIX}";
|
||||
@Comment(
|
||||
{
|
||||
"If EssentialsChat is installed, this will define how far a player's voice travels, in blocks. Set to 0 to make all chat global.",
|
||||
"Note that users with the \"essentials.chat.spy\" permission will hear everything, regardless of this setting.",
|
||||
"Users with essentials.chat.shout can override this by prefixing text with an exclamation mark (!)",
|
||||
"Or with essentials.chat.question can override this by prefixing text with a question mark (?)",
|
||||
"You can add command costs for shout/question by adding chat-shout and chat-question to the command costs section."
|
||||
})
|
||||
{
|
||||
"If EssentialsChat is installed, this will define how far a player's voice travels, in blocks. Set to 0 to make all chat global.",
|
||||
"Note that users with the \"essentials.chat.spy\" permission will hear everything, regardless of this setting.",
|
||||
"Users with essentials.chat.shout can override this by prefixing text with an exclamation mark (!)",
|
||||
"Or with essentials.chat.question can override this by prefixing text with a question mark (?)",
|
||||
"You can add command costs for shout/question by adding chat-shout and chat-question to the command costs section."
|
||||
})
|
||||
private int localRadius = 0;
|
||||
@Comment("Set the default chat format here, it will be overwritten by group specific chat formats.")
|
||||
private String defaultFormat = "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}";
|
||||
|
@@ -26,16 +26,16 @@ public class Commands implements StorageObject
|
||||
private Speed speed = new Speed();
|
||||
@ListType
|
||||
@Comment(
|
||||
{
|
||||
"When a command conflicts with another plugin, by default, Essentials will try to force the OTHER plugin to take",
|
||||
"priority. If a command is in this list, Essentials will try to give ITSELF priority. This does not always work:",
|
||||
"usually whichever plugin was updated most recently wins out. However, the full name of the command will always work.",
|
||||
"For example, if WorldGuard and Essentials are both enabled, and WorldGuard takes control over /god, /essentials:god",
|
||||
"will still map to Essentials, whereas it might normally get forced upon WorldGuard. Commands prefixed with an \"e\",",
|
||||
"such as /egod, will always grant Essentials priority.",
|
||||
"We should try to take priority over /god. If this doesn't work, use /essentials:god or /egod.",
|
||||
"If god is set using WorldGuard, use /ungod to remove then use whichever you see fit."
|
||||
})
|
||||
{
|
||||
"When a command conflicts with another plugin, by default, Essentials will try to force the OTHER plugin to take",
|
||||
"priority. If a command is in this list, Essentials will try to give ITSELF priority. This does not always work:",
|
||||
"usually whichever plugin was updated most recently wins out. However, the full name of the command will always work.",
|
||||
"For example, if WorldGuard and Essentials are both enabled, and WorldGuard takes control over /god, /essentials:god",
|
||||
"will still map to Essentials, whereas it might normally get forced upon WorldGuard. Commands prefixed with an \"e\",",
|
||||
"such as /egod, will always grant Essentials priority.",
|
||||
"We should try to take priority over /god. If this doesn't work, use /essentials:god or /egod.",
|
||||
"If god is set using WorldGuard, use /ungod to remove then use whichever you see fit."
|
||||
})
|
||||
@Getter(AccessLevel.NONE)
|
||||
@Setter(AccessLevel.NONE)
|
||||
private List<String> overridden = null;
|
||||
|
@@ -26,29 +26,32 @@ public class Economy implements StorageObject
|
||||
{
|
||||
return currencySymbol == null || currencySymbol.isEmpty() ? "$" : currencySymbol.substring(0, 1);
|
||||
}
|
||||
private final static double MAXMONEY = 10000000000000.0;
|
||||
|
||||
private final transient static double MAXMONEY = 10000000000000.0;
|
||||
@Comment(
|
||||
{
|
||||
"Set the maximum amount of money a player can have",
|
||||
"The amount is always limited to 10 trillions because of the limitations of a java double"
|
||||
})
|
||||
{
|
||||
"Set the maximum amount of money a player can have",
|
||||
"The amount is always limited to 10 trillions because of the limitations of a java double"
|
||||
})
|
||||
private double maxMoney = MAXMONEY;
|
||||
|
||||
public double getMaxMoney()
|
||||
{
|
||||
return Math.abs(maxMoney) > MAXMONEY ? MAXMONEY : Math.abs(maxMoney);
|
||||
}
|
||||
|
||||
@Comment(
|
||||
{
|
||||
"Set the minimum amount of money a player can have (must be above the negative of max-money).",
|
||||
"Setting this to 0, will disable overdrafts/loans completely. Users need 'essentials.eco.loan' perm to go below 0."
|
||||
})
|
||||
{
|
||||
"Set the minimum amount of money a player can have (must be above the negative of max-money).",
|
||||
"Setting this to 0, will disable overdrafts/loans completely. Users need 'essentials.eco.loan' perm to go below 0."
|
||||
})
|
||||
private double minMoney = -MAXMONEY;
|
||||
|
||||
public double getMinMoney()
|
||||
{
|
||||
return Math.abs(minMoney) > MAXMONEY ? -MAXMONEY : minMoney;
|
||||
}
|
||||
|
||||
@Comment("Enable this to log all interactions with trade/buy/sell signs and sell command")
|
||||
private boolean logEnabled = false;
|
||||
private Worth worth = new Worth();
|
||||
|
@@ -17,24 +17,24 @@ public class General implements StorageObject
|
||||
@Comment("Turn this on, if you want to see more error messages, if something goes wrong.")
|
||||
private boolean debug = false;
|
||||
@Comment(
|
||||
{
|
||||
"Set the locale here, if you want to change the language of Essentials.",
|
||||
"If this is not set, Essentials will use the language of your computer.", "Available locales: da, de, en, fr, nl"
|
||||
})
|
||||
{
|
||||
"Set the locale here, if you want to change the language of Essentials.",
|
||||
"If this is not set, Essentials will use the language of your computer.", "Available locales: da, de, en, fr, nl"
|
||||
})
|
||||
private String locale;
|
||||
@Comment(
|
||||
{
|
||||
"The number of items given, if the quantity parameter is left out in /item or /give.",
|
||||
"If this number is below 1, the maximum stack size size is given. If oversized stacks",
|
||||
"is not enabled, any number higher then the maximum stack size results in more than one stack."
|
||||
})
|
||||
{
|
||||
"The number of items given, if the quantity parameter is left out in /item or /give.",
|
||||
"If this number is below 1, the maximum stack size size is given. If oversized stacks",
|
||||
"is not enabled, any number higher then the maximum stack size results in more than one stack."
|
||||
})
|
||||
private int defaultStacksize = -1;
|
||||
@Comment(
|
||||
{
|
||||
"Oversized stacks are stacks that ignore the normal max stacksize.",
|
||||
"They can be obtained using /give and /item, if the player has essentials.oversizedstacks permission.",
|
||||
"How many items should be in a oversized stack?"
|
||||
})
|
||||
{
|
||||
"Oversized stacks are stacks that ignore the normal max stacksize.",
|
||||
"They can be obtained using /give and /item, if the player has essentials.oversizedstacks permission.",
|
||||
"How many items should be in a oversized stack?"
|
||||
})
|
||||
private int oversizedStacksize = 64;
|
||||
|
||||
|
||||
@@ -42,19 +42,21 @@ public class General implements StorageObject
|
||||
{
|
||||
FILE, GROUPMANAGER, VAULT
|
||||
}
|
||||
|
||||
|
||||
@Comment(
|
||||
{
|
||||
"Sets the place where group options should be stored:", " FILE: Options are stored inside groups.yml in the Essentials folder",
|
||||
" GROUPMANAGER: Options are stored using the GroupManager groups",
|
||||
" VAULT: Options are stored using a permissions plugin supported by Vault"
|
||||
})
|
||||
{
|
||||
"Sets the place where group options should be stored:", " FILE: Options are stored inside groups.yml in the Essentials folder",
|
||||
" GROUPMANAGER: Options are stored using the GroupManager groups",
|
||||
" VAULT: Options are stored using a permissions plugin supported by Vault"
|
||||
})
|
||||
private GroupStorage groupStorage = GroupStorage.FILE;
|
||||
@Comment(
|
||||
{
|
||||
"Set to true to enable per-world permissions for teleporting between worlds with essentials commands",
|
||||
"This applies to /world, /back, /tp[a|o][here|all], but not warps.",
|
||||
"Give someone permission to teleport to a world with essentials.world.<worldname>"
|
||||
})
|
||||
{
|
||||
"Set to true to enable per-world permissions for teleporting between worlds with essentials commands",
|
||||
"This applies to /world, /back, /tp[a|o][here|all], but not warps.",
|
||||
"Give someone permission to teleport to a world with essentials.world.<worldname>"
|
||||
})
|
||||
private boolean worldTeleportPermissions = false;
|
||||
private boolean worldHomePermissions = false;
|
||||
@Comment("Delay to wait before people can cause attack damage after logging in ")
|
||||
@@ -69,6 +71,7 @@ public class General implements StorageObject
|
||||
{
|
||||
this.loginAttackDelay = loginAttackDelay / 1000;
|
||||
}
|
||||
|
||||
private Boolean metricsEnabled = null;
|
||||
@Comment("The join message when players join the server")
|
||||
private String joinMessage = "&e{PLAYER} has joined the game";
|
||||
|
@@ -21,10 +21,11 @@ public class Kits implements StorageObject
|
||||
kit.setDelay(10.0);
|
||||
kit.setItems(
|
||||
Arrays.<ItemStack>asList(
|
||||
new ItemStack(Material.DIAMOND_SPADE, 1), new ItemStack(Material.DIAMOND_PICKAXE, 1), new ItemStack(Material.DIAMOND_AXE, 1)));
|
||||
new ItemStack(Material.DIAMOND_SPADE, 1), new ItemStack(Material.DIAMOND_PICKAXE, 1), new ItemStack(Material.DIAMOND_AXE, 1)));
|
||||
kits = new HashMap<String, Kit>();
|
||||
kits.put("tools", kit);
|
||||
}
|
||||
|
||||
@MapValueType(Kit.class)
|
||||
@Getter(AccessLevel.NONE)
|
||||
@Setter(AccessLevel.NONE)
|
||||
|
@@ -12,39 +12,39 @@ import net.ess3.storage.StorageObject;
|
||||
public class Settings implements StorageObject
|
||||
{
|
||||
@Comment(
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| General Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| General Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
private General general = new General();
|
||||
@Comment(
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| Chat Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| Chat Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
private Chat chat = new Chat();
|
||||
@Comment(
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| Economy Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| Economy Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
private Economy economy = new Economy();
|
||||
@Comment(
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| Commands Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| Commands Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
private Commands commands = new Commands();
|
||||
@Comment(
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| Worlds Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
{
|
||||
"##########################################################", "+------------------------------------------------------+ #",
|
||||
"| Worlds Settings | #", "+------------------------------------------------------+ #",
|
||||
"##########################################################"
|
||||
})
|
||||
@MapValueType(WorldOptions.class)
|
||||
@Getter(AccessLevel.NONE)
|
||||
@Setter(AccessLevel.NONE)
|
||||
|
@@ -8,7 +8,7 @@ import net.ess3.storage.AsyncStorageObjectHolder;
|
||||
|
||||
public class SettingsHolder extends AsyncStorageObjectHolder<Settings> implements ISettings
|
||||
{
|
||||
private volatile boolean debug = false;
|
||||
private transient volatile boolean debug = false;
|
||||
|
||||
public SettingsHolder(final IEssentials ess)
|
||||
{
|
||||
|
@@ -16,22 +16,22 @@ import org.bukkit.Location;
|
||||
public class Spawns implements StorageObject
|
||||
{
|
||||
@Comment(
|
||||
{
|
||||
"Should we announce to the server when someone logs in for the first time?",
|
||||
"If so, use this format, replacing {DISPLAYNAME} with the player name.", "If not, set to ''"
|
||||
})
|
||||
{
|
||||
"Should we announce to the server when someone logs in for the first time?",
|
||||
"If so, use this format, replacing {DISPLAYNAME} with the player name.", "If not, set to ''"
|
||||
})
|
||||
private String newPlayerAnnouncement = "&dWelcome {DISPLAYNAME} to the server!";
|
||||
@Comment(
|
||||
{
|
||||
"Priority of the respawn event listener", "Set this to lowest, if you want e.g. Multiverse to handle the respawning",
|
||||
"Set this to normal, if you want EssentialsSpawn to handle the respawning",
|
||||
"Set this to highest, if you want to force EssentialsSpawn to handle the respawning"
|
||||
})
|
||||
{
|
||||
"Priority of the respawn event listener", "Set this to lowest, if you want e.g. Multiverse to handle the respawning",
|
||||
"Set this to normal, if you want EssentialsSpawn to handle the respawning",
|
||||
"Set this to highest, if you want to force EssentialsSpawn to handle the respawning"
|
||||
})
|
||||
private String respawnPriority = "normal";
|
||||
@Comment(
|
||||
{
|
||||
"When we spawn for the first time, which spawnpoint do we use?", "Set to none if you want to use the spawn point of the world."
|
||||
})
|
||||
{
|
||||
"When we spawn for the first time, which spawnpoint do we use?", "Set to none if you want to use the spawn point of the world."
|
||||
})
|
||||
private String newbieSpawn = "none";
|
||||
@Comment("List of all spawnpoints")
|
||||
@MapValueType(StoredLocation.class)
|
||||
|
@@ -38,7 +38,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
|
||||
/**
|
||||
* Sets a spawn location
|
||||
*
|
||||
* @param loc - Location you want to set as spawn
|
||||
* @param loc - Location you want to set as spawn
|
||||
* @param group - Group to save it undr in the config
|
||||
*/
|
||||
public void setSpawn(final Location loc, final String group)
|
||||
@@ -174,8 +174,8 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
|
||||
|
||||
private class SpawnPlayerListener implements Listener // TODO: What is this for?
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private final SpawnsHolder spawns;
|
||||
private final transient IEssentials ess;
|
||||
private final transient SpawnsHolder spawns;
|
||||
|
||||
public SpawnPlayerListener(final IEssentials ess, final SpawnsHolder spawns)
|
||||
{
|
||||
@@ -187,6 +187,8 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
|
||||
public void onPlayerRespawn(final PlayerRespawnEvent event)
|
||||
{
|
||||
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
||||
|
||||
final ISettings settings = ess.getSettings();
|
||||
boolean respawnAtHome = ess.getSettings().getData().getCommands().getHome().isRespawnAtHome();
|
||||
if (respawnAtHome)
|
||||
{
|
||||
@@ -238,7 +240,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
|
||||
|
||||
private class NewPlayerTeleport implements Runnable
|
||||
{
|
||||
private final IUser user;
|
||||
private final transient IUser user;
|
||||
|
||||
public NewPlayerTeleport(final IUser user)
|
||||
{
|
||||
|
@@ -26,6 +26,7 @@ public class WorldOptions implements StorageObject
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Comment("Disables godmode for all players if they teleport to this world.")
|
||||
private boolean godmode = true;
|
||||
@Comment("Prevent creatures spawning")
|
||||
|
@@ -9,4 +9,5 @@ import net.ess3.storage.StorageObject;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class Worlds implements StorageObject
|
||||
{
|
||||
|
||||
}
|
@@ -32,9 +32,8 @@ public class Alert implements StorageObject
|
||||
|
||||
public void setupDefaults()
|
||||
{
|
||||
Material[] mat =
|
||||
{
|
||||
Material.LAVA, Material.STATIONARY_LAVA, Material.TNT, Material.LAVA_BUCKET
|
||||
Material[] mat = {
|
||||
Material.LAVA, Material.STATIONARY_LAVA, Material.TNT, Material.LAVA_BUCKET
|
||||
};
|
||||
alertOnPlacement.addAll(Arrays.asList(mat));
|
||||
alertOnUse.add(Material.LAVA_BUCKET);
|
||||
|
@@ -11,22 +11,24 @@ import net.ess3.storage.StorageObject;
|
||||
public class AntiBuild implements StorageObject
|
||||
{
|
||||
@Comment(
|
||||
{
|
||||
"Should people with build: false in permissions be allowed to build", "Set true to disable building for those people",
|
||||
"Setting to false means EssentialsAntiBuild will never prevent you from building"
|
||||
})
|
||||
{
|
||||
"Should people with build: false in permissions be allowed to build", "Set true to disable building for those people",
|
||||
"Setting to false means EssentialsAntiBuild will never prevent you from building"
|
||||
})
|
||||
private boolean disableBuild = true;
|
||||
@Comment(
|
||||
{
|
||||
"Should people with build: false in permissions be allowed to use items", "Set true to disable using for those people",
|
||||
"Setting to false means EssentialsAntiBuild will never prevent you from using"
|
||||
})
|
||||
{
|
||||
"Should people with build: false in permissions be allowed to use items", "Set true to disable using for those people",
|
||||
"Setting to false means EssentialsAntiBuild will never prevent you from using"
|
||||
})
|
||||
private boolean disableUse = true;
|
||||
@Comment(
|
||||
{
|
||||
"Should we tell people they are not allowed to build"
|
||||
})
|
||||
{
|
||||
"Should we tell people they are not allowed to build"
|
||||
})
|
||||
private boolean warnOnBuildDisallow = true;
|
||||
|
||||
private Alert alert = new Alert();
|
||||
private BlackList blacklist = new BlackList();
|
||||
|
||||
}
|
||||
|
@@ -15,33 +15,33 @@ import org.bukkit.Material;
|
||||
public class BlackList implements StorageObject
|
||||
{
|
||||
@Comment(
|
||||
{
|
||||
"Which blocks should people be prevented from placing"
|
||||
})
|
||||
{
|
||||
"Which blocks should people be prevented from placing"
|
||||
})
|
||||
@ListType(Material.class)
|
||||
@Getter(AccessLevel.NONE)
|
||||
@Setter(AccessLevel.NONE)
|
||||
private Set<Material> placement = new HashSet<Material>();
|
||||
@Comment(
|
||||
{
|
||||
"Which items should people be prevented from using"
|
||||
})
|
||||
{
|
||||
"Which items should people be prevented from using"
|
||||
})
|
||||
@ListType(Material.class)
|
||||
@Getter(AccessLevel.NONE)
|
||||
@Setter(AccessLevel.NONE)
|
||||
private Set<Material> usage = new HashSet<Material>();
|
||||
@Comment(
|
||||
{
|
||||
"Which blocks should people be prevented from breaking"
|
||||
})
|
||||
{
|
||||
"Which blocks should people be prevented from breaking"
|
||||
})
|
||||
@ListType(Material.class)
|
||||
@Getter(AccessLevel.NONE)
|
||||
@Setter(AccessLevel.NONE)
|
||||
private Set<Material> breaking = new HashSet<Material>();
|
||||
@Comment(
|
||||
{
|
||||
"Which blocks should not be pushed by pistons"
|
||||
})
|
||||
{
|
||||
"Which blocks should not be pushed by pistons"
|
||||
})
|
||||
@ListType(Material.class)
|
||||
@Getter(AccessLevel.NONE)
|
||||
@Setter(AccessLevel.NONE)
|
||||
@@ -49,9 +49,8 @@ public class BlackList implements StorageObject
|
||||
|
||||
public void setupDefaults()
|
||||
{
|
||||
Material[] mat =
|
||||
{
|
||||
Material.LAVA, Material.STATIONARY_LAVA, Material.TNT, Material.LAVA_BUCKET
|
||||
Material[] mat = {
|
||||
Material.LAVA, Material.STATIONARY_LAVA, Material.TNT, Material.LAVA_BUCKET
|
||||
};
|
||||
placement.addAll(Arrays.asList(mat));
|
||||
}
|
||||
|
@@ -11,21 +11,22 @@ import net.ess3.storage.StorageObject;
|
||||
public class Afk implements StorageObject
|
||||
{
|
||||
@Comment(
|
||||
{
|
||||
"After this timeout in seconds, the user will be set as afk.", "Set to -1 for no timeout."
|
||||
})
|
||||
{
|
||||
"After this timeout in seconds, the user will be set as afk.", "Set to -1 for no timeout."
|
||||
})
|
||||
private long autoAFK = 300;
|
||||
@Comment(
|
||||
{
|
||||
"Auto-AFK Kick", "After this timeout in seconds, the user will be kicked from the server.", "Set to -1 for no timeout."
|
||||
})
|
||||
{
|
||||
"Auto-AFK Kick", "After this timeout in seconds, the user will be kicked from the server.", "Set to -1 for no timeout."
|
||||
})
|
||||
private long autoAFKKick = -1;
|
||||
@Comment(
|
||||
{
|
||||
"Set this to true, if you want to freeze the player, if he is afk.", "Other players or monsters can't push him out of afk mode then.",
|
||||
"This will also enable temporary god mode for the afk player.", "The player has to use the command /afk to leave the afk mode.",
|
||||
"You have to add a message to your welcome message or help page,", "since the player will not get a message, if he tries to move."
|
||||
})
|
||||
{
|
||||
"Set this to true, if you want to freeze the player, if he is afk.", "Other players or monsters can't push him out of afk mode then.",
|
||||
"This will also enable temporary god mode for the afk player.", "The player has to use the command /afk to leave the afk mode.",
|
||||
"You have to add a message to your welcome message or help page,", "since the player will not get a message, if he tries to move."
|
||||
})
|
||||
private boolean freezeAFKPlayers = false;
|
||||
|
||||
private boolean disableItemPickupWhileAfk = true;
|
||||
}
|
||||
|
@@ -11,9 +11,9 @@ import net.ess3.storage.StorageObject;
|
||||
public class Back implements StorageObject
|
||||
{
|
||||
@Comment(
|
||||
{
|
||||
"Do you want essentials to keep track of previous location for /back in the teleport listener?",
|
||||
"If you set this to true any plugin that uses teleport will have the previous location registered."
|
||||
})
|
||||
{
|
||||
"Do you want essentials to keep track of previous location for /back in the teleport listener?",
|
||||
"If you set this to true any plugin that uses teleport will have the previous location registered."
|
||||
})
|
||||
private boolean registerBackInListener = false;
|
||||
}
|
||||
|
@@ -13,11 +13,11 @@ public class Help implements StorageObject
|
||||
@Comment("Show other plugins commands in help")
|
||||
private boolean showNonEssCommandsInHelp = true;
|
||||
@Comment(
|
||||
{
|
||||
"Hide plugins which don't give a permission in their plugin.yml for each command.",
|
||||
"You can override a true value here for a single plugin by adding a permission to a user/group.",
|
||||
"The individual permission is: essentials.help.<plugin>, anyone with essentials.* or '*' will see all help this setting reguardless.",
|
||||
"You can use negative permissions to remove access to just a single plugins help if the following is enabled."
|
||||
})
|
||||
{
|
||||
"Hide plugins which don't give a permission in their plugin.yml for each command.",
|
||||
"You can override a true value here for a single plugin by adding a permission to a user/group.",
|
||||
"The individual permission is: essentials.help.<plugin>, anyone with essentials.* or '*' will see all help this setting reguardless.",
|
||||
"You can use negative permissions to remove access to just a single plugins help if the following is enabled."
|
||||
})
|
||||
private boolean hidePermissionlessCommands = true;
|
||||
}
|
||||
|
@@ -13,11 +13,11 @@ public class Home implements StorageObject
|
||||
@Comment("When players die, should they respawn at their homes, instead of the spawnpoint?")
|
||||
private boolean respawnAtHome = false;
|
||||
@Comment(
|
||||
{
|
||||
"When a player interacts with a bed, should their home be set to that location?",
|
||||
"If you enable this and remove default player access to the /sethome command, ",
|
||||
"you can make beds the only way for players to set their home location."
|
||||
})
|
||||
{
|
||||
"When a player interacts with a bed, should their home be set to that location?",
|
||||
"If you enable this and remove default player access to the /sethome command, ",
|
||||
"you can make beds the only way for players to set their home location."
|
||||
})
|
||||
private boolean bedSetsHome = false;
|
||||
@Comment("If no home is set, should the player be send to spawn, when /home is used.")
|
||||
private boolean spawnIfNoHome = false;
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package net.ess3.settings.commands;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import net.ess3.storage.Comment;
|
||||
|
@@ -21,6 +21,7 @@ public class SocialSpy implements StorageObject
|
||||
socialspyCommands.addAll(Arrays.asList("msg", "r", "mail", "m", "t", "emsg", "tell", "er", "reply", "ereply", "email"));
|
||||
}
|
||||
}
|
||||
|
||||
@ListType
|
||||
@Comment("Commands to listen for in socialspy")
|
||||
private List<String> socialspyCommands = new ArrayList<String>();
|
||||
|
@@ -10,14 +10,9 @@ import net.ess3.storage.StorageObject;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class Speed implements StorageObject
|
||||
{
|
||||
@Comment(
|
||||
{
|
||||
"Set the max fly speed, values range from 0.2 to 1.0"
|
||||
})
|
||||
@Comment({"Set the max fly speed, values range from 0.2 to 1.0"})
|
||||
private double maxFlySpeed = 1.0f;
|
||||
@Comment(
|
||||
{
|
||||
"Set the max walk speed, values range from 0.1 to 1.0"
|
||||
})
|
||||
|
||||
@Comment({"Set the max walk speed, values range from 0.1 to 1.0"})
|
||||
private double maxWalkSpeed = 0.8f;
|
||||
}
|
||||
|
@@ -11,20 +11,17 @@ import net.ess3.storage.StorageObject;
|
||||
public class Teleport implements StorageObject
|
||||
{
|
||||
@Comment(
|
||||
{
|
||||
"Set timeout in seconds for players to accept tpa before request is cancelled.", "Set to 0 for no timeout."
|
||||
})
|
||||
{
|
||||
"Set timeout in seconds for players to accept tpa before request is cancelled.", "Set to 0 for no timeout."
|
||||
})
|
||||
private int requestTimeout = 120;
|
||||
@Comment(
|
||||
{
|
||||
"Cancels a request made by tpa / tphere on world change to prevent cross world tp"
|
||||
})
|
||||
@Comment({"Cancels a request made by tpa / tphere on world change to prevent cross world tp"})
|
||||
private boolean cancelRequestsOnWorldChange = false;
|
||||
@Comment(
|
||||
{
|
||||
"The delay, in seconds, a player can't be attacked by other players after he has been teleported by a command",
|
||||
"This will also prevent that the player can attack other players"
|
||||
})
|
||||
{
|
||||
"The delay, in seconds, a player can't be attacked by other players after he has been teleported by a command",
|
||||
"This will also prevent that the player can attack other players"
|
||||
})
|
||||
private long invulnerability = 0;
|
||||
|
||||
public long getInvulnerability()
|
||||
|
@@ -10,6 +10,7 @@ import net.ess3.storage.StorageObject;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class Prevent implements StorageObject
|
||||
{
|
||||
|
||||
private boolean lavaFlow = false;
|
||||
private boolean waterFlow = false;
|
||||
// private boolean waterbucketFlow = false; TODO: Test if this still works
|
||||
@@ -29,8 +30,8 @@ public class Prevent implements StorageObject
|
||||
private boolean endermanPickup = false;
|
||||
private boolean villagerDeath = false;
|
||||
@Comment(
|
||||
{
|
||||
"Monsters won't follow players", "permission essentials.protect.entitytarget.bypass disables this"
|
||||
})
|
||||
{
|
||||
"Monsters won't follow players", "permission essentials.protect.entitytarget.bypass disables this"
|
||||
})
|
||||
private boolean entitytarget = false;
|
||||
}
|
@@ -13,13 +13,15 @@ public class Protect implements StorageObject
|
||||
@Comment("General physics/behavior modifications")
|
||||
private Prevent prevent = new Prevent();
|
||||
@Comment(
|
||||
{
|
||||
"Maximum height the creeper should explode. -1 allows them to explode everywhere.",
|
||||
"Set prevent.creeper-explosion to true, if you want to disable creeper explosions."
|
||||
})
|
||||
{
|
||||
"Maximum height the creeper should explode. -1 allows them to explode everywhere.",
|
||||
"Set prevent.creeper-explosion to true, if you want to disable creeper explosions."
|
||||
})
|
||||
private int creeperMaxHeight = -1;
|
||||
|
||||
@Comment("Disable weather options")
|
||||
private boolean disableStorm = false;
|
||||
private boolean disableThunder = false;
|
||||
private boolean disableLighting = false;
|
||||
|
||||
}
|
||||
|
@@ -11,8 +11,8 @@ import org.bukkit.Bukkit;
|
||||
|
||||
public abstract class AbstractDelayedYamlFileReader<T extends StorageObject> implements Runnable
|
||||
{
|
||||
private final Class<T> clazz;
|
||||
private final IEssentials ess;
|
||||
private final transient Class<T> clazz;
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public AbstractDelayedYamlFileReader(final IEssentials ess, final Class<T> clazz)
|
||||
{
|
||||
|
@@ -11,8 +11,8 @@ import org.bukkit.Bukkit;
|
||||
|
||||
public abstract class AbstractDelayedYamlFileWriter implements Runnable
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private final ReentrantLock lock = new ReentrantLock(); // TODO: Needed?
|
||||
private final transient IEssentials ess;
|
||||
private final transient ReentrantLock lock = new ReentrantLock(); // TODO: Needed?
|
||||
|
||||
public AbstractDelayedYamlFileWriter(final IEssentials ess)
|
||||
{
|
||||
|
@@ -10,14 +10,14 @@ import org.bukkit.Bukkit;
|
||||
|
||||
public abstract class AsyncStorageObjectHolder<T extends StorageObject> implements IStorageObjectHolder<T>
|
||||
{
|
||||
private T data;
|
||||
private final Class<T> clazz;
|
||||
protected final IEssentials ess;
|
||||
private final StorageObjectDataWriter writer;
|
||||
private final StorageObjectDataReader reader;
|
||||
private final AtomicBoolean loaded = new AtomicBoolean(false);
|
||||
private transient T data;
|
||||
private final transient Class<T> clazz;
|
||||
protected final transient IEssentials ess;
|
||||
private final transient StorageObjectDataWriter writer;
|
||||
private final transient StorageObjectDataReader reader;
|
||||
private final transient AtomicBoolean loaded = new AtomicBoolean(false);
|
||||
private volatile long savetime = 0;
|
||||
private final File file;
|
||||
private final transient File file;
|
||||
|
||||
public AsyncStorageObjectHolder(final IEssentials ess, final Class<T> clazz, final File file)
|
||||
{
|
||||
|
@@ -21,9 +21,9 @@ import org.yaml.snakeyaml.nodes.*;
|
||||
|
||||
public class BukkitConstructor extends Constructor
|
||||
{
|
||||
private final Pattern DATAPATTERN = Pattern.compile("[:+',;.]");
|
||||
private final Pattern WORD = Pattern.compile("\\W");
|
||||
private final IPlugin plugin;
|
||||
private final transient Pattern DATAPATTERN = Pattern.compile("[:+',;.]");
|
||||
private final transient Pattern WORD = Pattern.compile("\\W");
|
||||
private final transient IPlugin plugin;
|
||||
|
||||
public BukkitConstructor(final Class<?> clazz, final IPlugin plugin)
|
||||
{
|
||||
|
@@ -18,7 +18,7 @@ import org.bukkit.Bukkit;
|
||||
public class ManagedFile
|
||||
{
|
||||
private final static int BUFFERSIZE = 1024 * 8;
|
||||
private final File file;
|
||||
private final transient File file;
|
||||
|
||||
public ManagedFile(final String filename, final IEssentials ess)
|
||||
{
|
||||
|
@@ -26,11 +26,11 @@ import org.apache.commons.io.IOUtils;
|
||||
|
||||
public abstract class StorageObjectMap<I> extends CacheLoader<String, I> implements IStorageObjectMap<I>
|
||||
{
|
||||
protected final IEssentials ess;
|
||||
private final File folder;
|
||||
protected final Cache<String, I> cache = CacheBuilder.newBuilder().softValues().build(this);
|
||||
protected final ConcurrentSkipListSet<String> keys = new ConcurrentSkipListSet<String>();
|
||||
protected final ConcurrentSkipListMap<String, File> zippedfiles = new ConcurrentSkipListMap<String, File>();
|
||||
protected final transient IEssentials ess;
|
||||
private final transient File folder;
|
||||
protected final transient Cache<String, I> cache = CacheBuilder.newBuilder().softValues().build(this);
|
||||
protected final transient ConcurrentSkipListSet<String> keys = new ConcurrentSkipListSet<String>();
|
||||
protected final transient ConcurrentSkipListMap<String, File> zippedfiles = new ConcurrentSkipListMap<String, File>();
|
||||
private final Pattern zipCheck = Pattern.compile("^[a-zA-Z0-9]*-?[a-zA-Z0-9]+\\.yml$");
|
||||
|
||||
public StorageObjectMap(final IEssentials ess, final String folderName)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user