mirror of
https://github.com/EssentialsX/Essentials.git
synced 2024-11-19 00:55:32 +01:00
2.9 Release
This commit is contained in:
commit
ff6221f1a8
4
.gitignore
vendored
4
.gitignore
vendored
@ -42,4 +42,6 @@
|
|||||||
/EssentialsGroupManager/.externalToolBuilders
|
/EssentialsGroupManager/.externalToolBuilders
|
||||||
/EssentialsAntiBuild/nbproject/private/
|
/EssentialsAntiBuild/nbproject/private/
|
||||||
/EssentialsAntiBuild/dist/
|
/EssentialsAntiBuild/dist/
|
||||||
/EssentialsAntiBuild/build/
|
/EssentialsAntiBuild/build/
|
||||||
|
/jars
|
||||||
|
/out
|
@ -65,7 +65,7 @@ import org.yaml.snakeyaml.error.YAMLException;
|
|||||||
|
|
||||||
public class Essentials extends JavaPlugin implements IEssentials
|
public class Essentials extends JavaPlugin implements IEssentials
|
||||||
{
|
{
|
||||||
public static final int BUKKIT_VERSION = 2352;
|
public static final int BUKKIT_VERSION = 2396;
|
||||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||||
private transient ISettings settings;
|
private transient ISettings settings;
|
||||||
private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this);
|
private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this);
|
||||||
|
@ -344,6 +344,11 @@ public class EssentialsConf extends YamlConfiguration
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void saveWithError() throws IOException
|
||||||
|
{
|
||||||
|
save(configFile);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void save(final File file) throws IOException
|
public synchronized void save(final File file) throws IOException
|
||||||
{
|
{
|
||||||
|
@ -27,6 +27,7 @@ public class EssentialsEntityListener implements Listener
|
|||||||
this.ess = ess;
|
this.ess = ess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This method does something undocumented reguarding certain bucket types #EasterEgg
|
||||||
@EventHandler(priority = EventPriority.LOW)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void onEntityDamage(final EntityDamageByEntityEvent event)
|
public void onEntityDamage(final EntityDamageByEntityEvent event)
|
||||||
{
|
{
|
||||||
@ -53,6 +54,11 @@ public class EssentialsEntityListener implements Listener
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (attacker.isHidden() && !attacker.isAuthorized("essentials.vanish.pvp"))
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
attacker.updateActivity(true);
|
attacker.updateActivity(true);
|
||||||
final List<String> commandList = attacker.getPowertool(attacker.getItemInHand());
|
final List<String> commandList = attacker.getPowertool(attacker.getItemInHand());
|
||||||
if (commandList != null && !commandList.isEmpty())
|
if (commandList != null && !commandList.isEmpty())
|
||||||
|
@ -213,6 +213,7 @@ public class EssentialsPlayerListener implements Listener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Makes the compass item ingame always point to the first essentials home. #EasterEgg
|
||||||
private void updateCompass(final User user)
|
private void updateCompass(final User user)
|
||||||
{
|
{
|
||||||
Location loc = user.getHome(user.getLocation());
|
Location loc = user.getHome(user.getLocation());
|
||||||
@ -347,7 +348,7 @@ public class EssentialsPlayerListener implements Listener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void onPlayerChangedWorldHack(final PlayerChangedWorldEvent event)
|
public void onPlayerChangedWorldHack(final PlayerChangedWorldEvent event)
|
||||||
{
|
{
|
||||||
final Player user = event.getPlayer();
|
final Player user = event.getPlayer();
|
||||||
@ -414,6 +415,7 @@ public class EssentialsPlayerListener implements Listener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This method allows the /jump lock feature to work, allows teleporting while flying #EasterEgg
|
||||||
private void useFlyClickJump(final User user)
|
private void useFlyClickJump(final User user)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -20,6 +20,9 @@ public class EssentialsPluginListener implements Listener, IConf
|
|||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void onPluginEnable(final PluginEnableEvent event)
|
public void onPluginEnable(final PluginEnableEvent event)
|
||||||
{
|
{
|
||||||
|
if (event.getPlugin().getName().equals("EssentialsChat")) {
|
||||||
|
ess.getSettings().setEssentialsChatActive(true);
|
||||||
|
}
|
||||||
ess.getPermissionsHandler().checkPermissions();
|
ess.getPermissionsHandler().checkPermissions();
|
||||||
ess.getAlternativeCommandsHandler().addPlugin(event.getPlugin());
|
ess.getAlternativeCommandsHandler().addPlugin(event.getPlugin());
|
||||||
if (!ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().setMethod(ess.getServer().getPluginManager()))
|
if (!ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().setMethod(ess.getServer().getPluginManager()))
|
||||||
@ -31,6 +34,9 @@ public class EssentialsPluginListener implements Listener, IConf
|
|||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void onPluginDisable(final PluginDisableEvent event)
|
public void onPluginDisable(final PluginDisableEvent event)
|
||||||
{
|
{
|
||||||
|
if (event.getPlugin().getName().equals("EssentialsChat")) {
|
||||||
|
ess.getSettings().setEssentialsChatActive(false);
|
||||||
|
}
|
||||||
ess.getPermissionsHandler().checkPermissions();
|
ess.getPermissionsHandler().checkPermissions();
|
||||||
ess.getAlternativeCommandsHandler().removePlugin(event.getPlugin());
|
ess.getAlternativeCommandsHandler().removePlugin(event.getPlugin());
|
||||||
// Check to see if the plugin thats being disabled is the one we are using
|
// Check to see if the plugin thats being disabled is the one we are using
|
||||||
|
@ -179,4 +179,8 @@ public interface ISettings extends IConf
|
|||||||
double getMaxFlySpeed();
|
double getMaxFlySpeed();
|
||||||
|
|
||||||
double getMaxWalkSpeed();
|
double getMaxWalkSpeed();
|
||||||
|
|
||||||
|
public int getMailsPerMinute();
|
||||||
|
|
||||||
|
public void setEssentialsChatActive(boolean b);
|
||||||
}
|
}
|
||||||
|
@ -439,6 +439,7 @@ public class Settings implements ISettings
|
|||||||
chatRadius = _getChatRadius();
|
chatRadius = _getChatRadius();
|
||||||
commandCosts = _getCommandCosts();
|
commandCosts = _getCommandCosts();
|
||||||
warnOnBuildDisallow = _warnOnBuildDisallow();
|
warnOnBuildDisallow = _warnOnBuildDisallow();
|
||||||
|
mailsPerMinute = _getMailsPerMinute();
|
||||||
}
|
}
|
||||||
private List<Integer> itemSpawnBl = new ArrayList<Integer>();
|
private List<Integer> itemSpawnBl = new ArrayList<Integer>();
|
||||||
|
|
||||||
@ -695,6 +696,7 @@ public class Settings implements ISettings
|
|||||||
}
|
}
|
||||||
private boolean prefixsuffixconfigured = false;
|
private boolean prefixsuffixconfigured = false;
|
||||||
private boolean addprefixsuffix = false;
|
private boolean addprefixsuffix = false;
|
||||||
|
private boolean essentialsChatActive = false;
|
||||||
|
|
||||||
private boolean _addPrefixSuffix()
|
private boolean _addPrefixSuffix()
|
||||||
{
|
{
|
||||||
@ -706,10 +708,16 @@ public class Settings implements ISettings
|
|||||||
return config.hasProperty("add-prefix-suffix");
|
return config.hasProperty("add-prefix-suffix");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setEssentialsChatActive(boolean essentialsChatActive)
|
||||||
|
{
|
||||||
|
this.essentialsChatActive = essentialsChatActive;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean addPrefixSuffix()
|
public boolean addPrefixSuffix()
|
||||||
{
|
{
|
||||||
return prefixsuffixconfigured ? addprefixsuffix : ess.getServer().getPluginManager().isPluginEnabled("EssentialsChat");
|
return prefixsuffixconfigured ? addprefixsuffix : essentialsChatActive;
|
||||||
}
|
}
|
||||||
private boolean disablePrefix = false;
|
private boolean disablePrefix = false;
|
||||||
|
|
||||||
@ -928,10 +936,23 @@ public class Settings implements ISettings
|
|||||||
return maxSpeed > 1.0 ? 1.0 : Math.abs(maxSpeed);
|
return maxSpeed > 1.0 ? 1.0 : Math.abs(maxSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//This option does not exist in the config.yml because it wasn't yet implemented in bukkit
|
||||||
|
//The code was commented out in the /speed command
|
||||||
@Override
|
@Override
|
||||||
public double getMaxWalkSpeed()
|
public double getMaxWalkSpeed()
|
||||||
{
|
{
|
||||||
double maxSpeed = config.getDouble("max-walk-speed", 0.8);
|
double maxSpeed = config.getDouble("max-walk-speed", 0.8);
|
||||||
return maxSpeed > 1.0 ? 1.0 : Math.abs(maxSpeed);
|
return maxSpeed > 1.0 ? 1.0 : Math.abs(maxSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int mailsPerMinute;
|
||||||
|
|
||||||
|
private int _getMailsPerMinute() {
|
||||||
|
return config.getInt("mails-per-minute", 1000);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public int getMailsPerMinute()
|
||||||
|
{
|
||||||
|
return mailsPerMinute;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,16 +37,17 @@ public class Teleport implements Runnable, ITeleport
|
|||||||
{
|
{
|
||||||
if (this.name != null)
|
if (this.name != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
return ess.getServer().getPlayerExact(name).getLocation();
|
return ess.getServer().getPlayerExact(name).getLocation();
|
||||||
}
|
}
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private IUser user;
|
private IUser user;
|
||||||
|
private IUser teleportUser;
|
||||||
private int teleTimer = -1;
|
private int teleTimer = -1;
|
||||||
private long started; // time this task was initiated
|
private long started; // time this task was initiated
|
||||||
private long delay; // how long to delay the teleport
|
private long tpdelay; // how long to delay the teleport
|
||||||
private int health;
|
private int health;
|
||||||
// note that I initially stored a clone of the location for reference, but...
|
// note that I initially stored a clone of the location for reference, but...
|
||||||
// when comparing locations, I got incorrect mismatches (rounding errors, looked like)
|
// when comparing locations, I got incorrect mismatches (rounding errors, looked like)
|
||||||
@ -61,13 +62,19 @@ public class Teleport implements Runnable, ITeleport
|
|||||||
private TeleportCause cause;
|
private TeleportCause cause;
|
||||||
|
|
||||||
private void initTimer(long delay, Target target, Trade chargeFor, TeleportCause cause)
|
private void initTimer(long delay, Target target, Trade chargeFor, TeleportCause cause)
|
||||||
|
{
|
||||||
|
initTimer(delay, user, target, chargeFor, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initTimer(long delay, IUser teleportUser, Target target, Trade chargeFor, TeleportCause cause)
|
||||||
{
|
{
|
||||||
this.started = System.currentTimeMillis();
|
this.started = System.currentTimeMillis();
|
||||||
this.delay = delay;
|
this.tpdelay = delay;
|
||||||
this.health = user.getHealth();
|
this.health = teleportUser.getHealth();
|
||||||
this.initX = Math.round(user.getLocation().getX() * MOVE_CONSTANT);
|
this.initX = Math.round(teleportUser.getLocation().getX() * MOVE_CONSTANT);
|
||||||
this.initY = Math.round(user.getLocation().getY() * MOVE_CONSTANT);
|
this.initY = Math.round(teleportUser.getLocation().getY() * MOVE_CONSTANT);
|
||||||
this.initZ = Math.round(user.getLocation().getZ() * MOVE_CONSTANT);
|
this.initZ = Math.round(teleportUser.getLocation().getZ() * MOVE_CONSTANT);
|
||||||
|
this.teleportUser = teleportUser;
|
||||||
this.teleportTarget = target;
|
this.teleportTarget = target;
|
||||||
this.chargeFor = chargeFor;
|
this.chargeFor = chargeFor;
|
||||||
this.cause = cause;
|
this.cause = cause;
|
||||||
@ -79,31 +86,38 @@ public class Teleport implements Runnable, ITeleport
|
|||||||
|
|
||||||
if (user == null || !user.isOnline() || user.getLocation() == null)
|
if (user == null || !user.isOnline() || user.getLocation() == null)
|
||||||
{
|
{
|
||||||
cancel();
|
cancel(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Math.round(user.getLocation().getX() * MOVE_CONSTANT) != initX
|
if (teleportUser == null || !teleportUser.isOnline() || teleportUser.getLocation() == null)
|
||||||
|| Math.round(user.getLocation().getY() * MOVE_CONSTANT) != initY
|
{
|
||||||
|| Math.round(user.getLocation().getZ() * MOVE_CONSTANT) != initZ
|
cancel(false);
|
||||||
|| user.getHealth() < health)
|
return;
|
||||||
{ // user moved, cancel teleport
|
}
|
||||||
|
|
||||||
|
if (!user.isAuthorized("essentials.teleport.timer.move")
|
||||||
|
&& (Math.round(teleportUser.getLocation().getX() * MOVE_CONSTANT) != initX
|
||||||
|
|| Math.round(teleportUser.getLocation().getY() * MOVE_CONSTANT) != initY
|
||||||
|
|| Math.round(teleportUser.getLocation().getZ() * MOVE_CONSTANT) != initZ
|
||||||
|
|| teleportUser.getHealth() < health))
|
||||||
|
{
|
||||||
|
// user moved, cancel teleport
|
||||||
cancel(true);
|
cancel(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
health = teleportUser.getHealth(); // in case user healed, then later gets injured
|
||||||
health = user.getHealth(); // in case user healed, then later gets injured
|
|
||||||
|
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
if (now > started + delay)
|
if (now > started + tpdelay)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
cooldown(false);
|
cooldown(false);
|
||||||
user.sendMessage(_("teleportationCommencing"));
|
teleportUser.sendMessage(_("teleportationCommencing"));
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
now(teleportTarget, cause);
|
teleportUser.getTeleport().now(teleportTarget, cause);
|
||||||
|
cancel(false);
|
||||||
if (chargeFor != null)
|
if (chargeFor != null)
|
||||||
{
|
{
|
||||||
chargeFor.charge(user);
|
chargeFor.charge(user);
|
||||||
@ -117,6 +131,10 @@ public class Teleport implements Runnable, ITeleport
|
|||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
user.sendMessage(_("cooldownWithMessage", ex.getMessage()));
|
user.sendMessage(_("cooldownWithMessage", ex.getMessage()));
|
||||||
|
if (user != teleportUser)
|
||||||
|
{
|
||||||
|
teleportUser.sendMessage(_("cooldownWithMessage", ex.getMessage()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -127,22 +145,6 @@ public class Teleport implements Runnable, ITeleport
|
|||||||
this.ess = ess;
|
this.ess = ess;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void respawn(final Trade chargeFor, TeleportCause cause) throws Exception
|
|
||||||
{
|
|
||||||
final Player player = user.getBase();
|
|
||||||
final Location bed = player.getBedSpawnLocation();
|
|
||||||
final PlayerRespawnEvent pre = new PlayerRespawnEvent(player, bed == null ? player.getWorld().getSpawnLocation() : bed, bed != null);
|
|
||||||
ess.getServer().getPluginManager().callEvent(pre);
|
|
||||||
teleport(new Target(pre.getRespawnLocation()), chargeFor, cause);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void warp(String warp, Trade chargeFor, TeleportCause cause) throws Exception
|
|
||||||
{
|
|
||||||
Location loc = ess.getWarps().getWarp(warp);
|
|
||||||
teleport(new Target(loc), chargeFor, cause);
|
|
||||||
user.sendMessage(_("warpingTo", warp));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void cooldown(boolean check) throws Exception
|
public void cooldown(boolean check) throws Exception
|
||||||
{
|
{
|
||||||
final Calendar time = new GregorianCalendar();
|
final Calendar time = new GregorianCalendar();
|
||||||
@ -181,6 +183,7 @@ public class Teleport implements Runnable, ITeleport
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//If we need to cancel a pending teleport call this method
|
||||||
public void cancel(boolean notifyUser)
|
public void cancel(boolean notifyUser)
|
||||||
{
|
{
|
||||||
if (teleTimer == -1)
|
if (teleTimer == -1)
|
||||||
@ -193,6 +196,10 @@ public class Teleport implements Runnable, ITeleport
|
|||||||
if (notifyUser)
|
if (notifyUser)
|
||||||
{
|
{
|
||||||
user.sendMessage(_("pendingTeleportCancelled"));
|
user.sendMessage(_("pendingTeleportCancelled"));
|
||||||
|
if (teleportUser != user)
|
||||||
|
{
|
||||||
|
teleportUser.sendMessage(_("pendingTeleportCancelled"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
@ -201,16 +208,40 @@ public class Teleport implements Runnable, ITeleport
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cancel()
|
//The now function is used when you want to skip tp delay when teleporting someone to a location or player.
|
||||||
|
public void now(Location loc, boolean cooldown, TeleportCause cause) throws Exception
|
||||||
|
{
|
||||||
|
if (cooldown)
|
||||||
|
{
|
||||||
|
cooldown(false);
|
||||||
|
}
|
||||||
|
now(new Target(loc), cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void now(Player entity, boolean cooldown, TeleportCause cause) throws Exception
|
||||||
|
{
|
||||||
|
if (cooldown)
|
||||||
|
{
|
||||||
|
cooldown(false);
|
||||||
|
}
|
||||||
|
now(new Target(entity), cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void now(Target target, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
cancel(false);
|
cancel(false);
|
||||||
|
user.setLastLocation();
|
||||||
|
user.getBase().teleport(Util.getSafeDestination(target.getLocation()), cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//The teleport function is used when you want to normally teleport someone to a location or player.
|
||||||
|
//This method is nolonger used internally and will be removed.
|
||||||
|
@Deprecated
|
||||||
public void teleport(Location loc, Trade chargeFor) throws Exception
|
public void teleport(Location loc, Trade chargeFor) throws Exception
|
||||||
{
|
{
|
||||||
teleport(new Target(loc), chargeFor, TeleportCause.PLUGIN);
|
teleport(loc, chargeFor, TeleportCause.PLUGIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void teleport(Location loc, Trade chargeFor, TeleportCause cause) throws Exception
|
public void teleport(Location loc, Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
teleport(new Target(loc), chargeFor, cause);
|
teleport(new Target(loc), chargeFor, cause);
|
||||||
@ -241,58 +272,82 @@ public class Teleport implements Runnable, ITeleport
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
cancel();
|
cancel(false);
|
||||||
Calendar c = new GregorianCalendar();
|
warnUser(user, delay);
|
||||||
c.add(Calendar.SECOND, (int)delay);
|
|
||||||
c.add(Calendar.MILLISECOND, (int)((delay * 1000.0) % 1000.0));
|
|
||||||
user.sendMessage(_("dontMoveMessage", Util.formatDateDiff(c.getTimeInMillis())));
|
|
||||||
initTimer((long)(delay * 1000.0), target, chargeFor, cause);
|
initTimer((long)(delay * 1000.0), target, chargeFor, cause);
|
||||||
|
|
||||||
teleTimer = ess.scheduleSyncRepeatingTask(this, 10, 10);
|
teleTimer = ess.scheduleSyncRepeatingTask(this, 10, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void now(Target target, TeleportCause cause) throws Exception
|
//The teleportToMe function is a wrapper used to handle teleporting players to them, like /tphere
|
||||||
|
public void teleportToMe(User otherUser, Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
cancel();
|
Target target = new Target(user);
|
||||||
user.setLastLocation();
|
|
||||||
user.getBase().teleport(Util.getSafeDestination(target.getLocation()), cause);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void now(Location loc, boolean cooldown, TeleportCause cause) throws Exception
|
double delay = ess.getSettings().getTeleportDelay();
|
||||||
{
|
|
||||||
if (cooldown)
|
if (chargeFor != null)
|
||||||
|
{
|
||||||
|
chargeFor.isAffordableFor(user);
|
||||||
|
}
|
||||||
|
cooldown(true);
|
||||||
|
if (delay <= 0 || user.isAuthorized("essentials.teleport.timer.bypass"))
|
||||||
{
|
{
|
||||||
cooldown(false);
|
cooldown(false);
|
||||||
|
otherUser.getTeleport().now(target, cause);
|
||||||
|
if (chargeFor != null)
|
||||||
|
{
|
||||||
|
chargeFor.charge(user);
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
now(new Target(loc), cause);
|
|
||||||
|
cancel(false);
|
||||||
|
warnUser(otherUser, delay);
|
||||||
|
initTimer((long)(delay * 1000.0), otherUser, target, chargeFor, cause);
|
||||||
|
|
||||||
|
teleTimer = ess.scheduleSyncRepeatingTask(this, 10, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void now(Location loc, Trade chargeFor, TeleportCause cause) throws Exception
|
private void warnUser(final IUser user, final double delay)
|
||||||
{
|
{
|
||||||
cooldown(false);
|
Calendar c = new GregorianCalendar();
|
||||||
chargeFor.charge(user);
|
c.add(Calendar.SECOND, (int)delay);
|
||||||
now(new Target(loc), cause);
|
c.add(Calendar.MILLISECOND, (int)((delay * 1000.0) % 1000.0));
|
||||||
|
user.sendMessage(_("dontMoveMessage", Util.formatDateDiff(c.getTimeInMillis())));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void now(Player entity, boolean cooldown, TeleportCause cause) throws Exception
|
//The respawn function is a wrapper used to handle tp fallback, on /jail and /home
|
||||||
|
public void respawn(final Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
if (cooldown)
|
final Player player = user.getBase();
|
||||||
{
|
final Location bed = player.getBedSpawnLocation();
|
||||||
cooldown(false);
|
final PlayerRespawnEvent pre = new PlayerRespawnEvent(player, bed == null ? player.getWorld().getSpawnLocation() : bed, bed != null);
|
||||||
}
|
ess.getServer().getPluginManager().callEvent(pre);
|
||||||
now(new Target(entity), cause);
|
teleport(new Target(pre.getRespawnLocation()), chargeFor, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//The warp function is a wrapper used to teleport a player to a /warp
|
||||||
|
public void warp(String warp, Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
|
{
|
||||||
|
Location loc = ess.getWarps().getWarp(warp);
|
||||||
|
user.sendMessage(_("warpingTo", warp));
|
||||||
|
teleport(new Target(loc), chargeFor, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
//The back function is a wrapper used to teleport a player /back to their previous location.
|
||||||
public void back(Trade chargeFor) throws Exception
|
public void back(Trade chargeFor) throws Exception
|
||||||
{
|
{
|
||||||
teleport(new Target(user.getLastLocation()), chargeFor, TeleportCause.COMMAND);
|
teleport(new Target(user.getLastLocation()), chargeFor, TeleportCause.COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//This function is used to throw a user back after a jail sentence
|
||||||
public void back() throws Exception
|
public void back() throws Exception
|
||||||
{
|
{
|
||||||
now(new Target(user.getLastLocation()), TeleportCause.COMMAND);
|
now(new Target(user.getLastLocation()), TeleportCause.COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//This function handles teleporting to /home
|
||||||
public void home(Location loc, Trade chargeFor) throws Exception
|
public void home(Location loc, Trade chargeFor) throws Exception
|
||||||
{
|
{
|
||||||
teleport(new Target(loc), chargeFor, TeleportCause.COMMAND);
|
teleport(new Target(loc), chargeFor, TeleportCause.COMMAND);
|
||||||
|
@ -234,6 +234,9 @@ public class Trade
|
|||||||
|
|
||||||
public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, Location loc, IEssentials ess)
|
public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, Location loc, IEssentials ess)
|
||||||
{
|
{
|
||||||
|
//isEcoLogUpdateEnabled() - This refers to log entries with no location, ie API updates #EasterEgg
|
||||||
|
//isEcoLogEnabled() - This refers to log entries with with location, ie /pay /sell and eco signs.
|
||||||
|
|
||||||
if ((loc == null && !ess.getSettings().isEcoLogUpdateEnabled())
|
if ((loc == null && !ess.getSettings().isEcoLogUpdateEnabled())
|
||||||
|| (loc != null && !ess.getSettings().isEcoLogEnabled()))
|
|| (loc != null && !ess.getSettings().isEcoLogEnabled()))
|
||||||
{
|
{
|
||||||
|
@ -306,6 +306,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
|||||||
|
|
||||||
if (ess.getSettings().addPrefixSuffix())
|
if (ess.getSettings().addPrefixSuffix())
|
||||||
{
|
{
|
||||||
|
//These two extra toggles are not documented, because they are mostly redundant #EasterEgg
|
||||||
if (!ess.getSettings().disablePrefix())
|
if (!ess.getSettings().disablePrefix())
|
||||||
{
|
{
|
||||||
final String ptext = ess.getPermissionsHandler().getPrefix(base).replace('&', '§');
|
final String ptext = ess.getPermissionsHandler().getPrefix(base).replace('&', '§');
|
||||||
|
@ -161,7 +161,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
|||||||
public void setHome(String name, Location loc)
|
public void setHome(String name, Location loc)
|
||||||
{
|
{
|
||||||
//Invalid names will corrupt the yaml
|
//Invalid names will corrupt the yaml
|
||||||
name = Util.sanitizeFileName(name);
|
name = Util.safeString(name);
|
||||||
homes.put(name, loc);
|
homes.put(name, loc);
|
||||||
config.setProperty("homes." + name, loc);
|
config.setProperty("homes." + name, loc);
|
||||||
config.save();
|
config.save();
|
||||||
@ -172,7 +172,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
|||||||
String search = getHomeName(name);
|
String search = getHomeName(name);
|
||||||
if (!homes.containsKey(search))
|
if (!homes.containsKey(search))
|
||||||
{
|
{
|
||||||
search = Util.sanitizeFileName(search);
|
search = Util.safeString(search);
|
||||||
}
|
}
|
||||||
if (homes.containsKey(search))
|
if (homes.containsKey(search))
|
||||||
{
|
{
|
||||||
@ -635,7 +635,10 @@ public abstract class UserData extends PlayerExtension implements IConf
|
|||||||
public void setLastLogin(long time)
|
public void setLastLogin(long time)
|
||||||
{
|
{
|
||||||
_setLastLogin(time);
|
_setLastLogin(time);
|
||||||
_setLastLoginAddress(base.getAddress().getAddress().getHostAddress());
|
if (base.getAddress() != null && base.getAddress().getAddress() != null)
|
||||||
|
{
|
||||||
|
_setLastLoginAddress(base.getAddress().getAddress().getHostAddress());
|
||||||
|
}
|
||||||
config.save();
|
config.save();
|
||||||
}
|
}
|
||||||
private long lastLogout;
|
private long lastLogout;
|
||||||
|
@ -24,12 +24,19 @@ public class Util
|
|||||||
private final static Pattern INVALIDFILECHARS = Pattern.compile("[^a-z0-9]");
|
private final static Pattern INVALIDFILECHARS = Pattern.compile("[^a-z0-9]");
|
||||||
private final static Pattern INVALIDCHARS = Pattern.compile("[^\t\n\r\u0020-\u007E\u0085\u00A0-\uD7FF\uE000-\uFFFC]");
|
private final static Pattern INVALIDCHARS = Pattern.compile("[^\t\n\r\u0020-\u007E\u0085\u00A0-\uD7FF\uE000-\uFFFC]");
|
||||||
|
|
||||||
|
//Used to clean file names before saving to disk
|
||||||
public static String sanitizeFileName(final String name)
|
public static String sanitizeFileName(final String name)
|
||||||
{
|
{
|
||||||
final String newName = INVALIDFILECHARS.matcher(name.toLowerCase(Locale.ENGLISH)).replaceAll("_");
|
return safeString(name);
|
||||||
return newName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Used to clean strings/names before saving as filenames/permissions
|
||||||
|
public static String safeString(final String string)
|
||||||
|
{
|
||||||
|
return INVALIDFILECHARS.matcher(string.toLowerCase(Locale.ENGLISH)).replaceAll("_");
|
||||||
|
}
|
||||||
|
|
||||||
|
//Less restrictive string sanitizing, when not used as perm or filename
|
||||||
public static String sanitizeString(final String string)
|
public static String sanitizeString(final String string)
|
||||||
{
|
{
|
||||||
return INVALIDCHARS.matcher(string).replaceAll("");
|
return INVALIDCHARS.matcher(string).replaceAll("");
|
||||||
|
@ -3,6 +3,7 @@ package com.earth2me.essentials;
|
|||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import com.earth2me.essentials.commands.WarpNotFoundException;
|
import com.earth2me.essentials.commands.WarpNotFoundException;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
@ -70,7 +71,14 @@ public class Warps implements IConf
|
|||||||
}
|
}
|
||||||
conf.setProperty(null, loc);
|
conf.setProperty(null, loc);
|
||||||
conf.setProperty("name", name);
|
conf.setProperty("name", name);
|
||||||
conf.save();
|
try
|
||||||
|
{
|
||||||
|
conf.saveWithError();
|
||||||
|
}
|
||||||
|
catch (IOException ex)
|
||||||
|
{
|
||||||
|
throw new IOException(_("invalidWarpName"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void delWarp(String name) throws Exception
|
public void delWarp(String name) throws Exception
|
||||||
|
@ -6,7 +6,7 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.entity.TNTPrimed;
|
import org.bukkit.entity.TNTPrimed;
|
||||||
|
|
||||||
|
// This command has a in theme message that only shows if you supply a parameter #EasterEgg
|
||||||
public class Commandantioch extends EssentialsCommand
|
public class Commandantioch extends EssentialsCommand
|
||||||
{
|
{
|
||||||
public Commandantioch()
|
public Commandantioch()
|
||||||
|
@ -27,6 +27,7 @@ public class Commandbalance extends EssentialsCommand
|
|||||||
@Override
|
@Override
|
||||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
|
//TODO: Remove 'other' perm
|
||||||
final double bal = (args.length < 1
|
final double bal = (args.length < 1
|
||||||
|| !(user.isAuthorized("essentials.balance.others")
|
|| !(user.isAuthorized("essentials.balance.others")
|
||||||
|| user.isAuthorized("essentials.balance.other"))
|
|| user.isAuthorized("essentials.balance.other"))
|
||||||
|
@ -20,6 +20,7 @@ public class Commandban extends EssentialsCommand
|
|||||||
@Override
|
@Override
|
||||||
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
|
boolean nomatch = false;
|
||||||
if (args.length < 1)
|
if (args.length < 1)
|
||||||
{
|
{
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
@ -31,6 +32,7 @@ public class Commandban extends EssentialsCommand
|
|||||||
}
|
}
|
||||||
catch (NoSuchFieldException e)
|
catch (NoSuchFieldException e)
|
||||||
{
|
{
|
||||||
|
nomatch = true;
|
||||||
user = ess.getUser(new OfflinePlayer(args[0], ess));
|
user = ess.getUser(new OfflinePlayer(args[0], ess));
|
||||||
}
|
}
|
||||||
if (!user.isOnline())
|
if (!user.isOnline())
|
||||||
@ -44,7 +46,7 @@ public class Commandban extends EssentialsCommand
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (user.isAuthorized("essentials.ban.exempt"))
|
if (user.isAuthorized("essentials.ban.exempt") && sender instanceof Player)
|
||||||
{
|
{
|
||||||
sender.sendMessage(_("banExempt"));
|
sender.sendMessage(_("banExempt"));
|
||||||
return;
|
return;
|
||||||
@ -65,13 +67,17 @@ public class Commandban extends EssentialsCommand
|
|||||||
user.setBanReason(banReason);
|
user.setBanReason(banReason);
|
||||||
user.setBanned(true);
|
user.setBanned(true);
|
||||||
user.kickPlayer(banReason);
|
user.kickPlayer(banReason);
|
||||||
|
|
||||||
server.getLogger().log(Level.INFO, _("playerBanned", senderName, user.getName(), banReason));
|
server.getLogger().log(Level.INFO, _("playerBanned", senderName, user.getName(), banReason));
|
||||||
|
|
||||||
|
if (nomatch) {
|
||||||
|
sender.sendMessage(_("userUnknown", user.getName()));
|
||||||
|
}
|
||||||
|
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final User player = ess.getUser(onlinePlayer);
|
final User player = ess.getUser(onlinePlayer);
|
||||||
if (player.isAuthorized("essentials.ban.notify"))
|
if (onlinePlayer == sender || player.isAuthorized("essentials.ban.notify"))
|
||||||
{
|
{
|
||||||
onlinePlayer.sendMessage(_("playerBanned", senderName, user.getName(), banReason));
|
onlinePlayer.sendMessage(_("playerBanned", senderName, user.getName(), banReason));
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.ConsoleCommandSender;
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
// This command has 4 undocumented behaviours #EasterEgg
|
||||||
public class Commandessentials extends EssentialsCommand
|
public class Commandessentials extends EssentialsCommand
|
||||||
{
|
{
|
||||||
public Commandessentials()
|
public Commandessentials()
|
||||||
@ -55,6 +55,7 @@ public class Commandessentials extends EssentialsCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//If you do not supply an argument this command will list 'overridden' commands.
|
||||||
private void run_disabled(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
private void run_disabled(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
sender.sendMessage("Essentials " + ess.getDescription().getVersion());
|
sender.sendMessage("Essentials " + ess.getDescription().getVersion());
|
||||||
|
@ -41,18 +41,25 @@ public class Commandgamemode extends EssentialsCommand
|
|||||||
gamemodeOtherPlayers(server, user, gameMode, args[1]);
|
gamemodeOtherPlayers(server, user, gameMode, args[1]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
gameMode = matchGameMode(args[0].toLowerCase(Locale.ENGLISH));
|
gameMode = matchGameMode(args[0].toLowerCase(Locale.ENGLISH));
|
||||||
}
|
}
|
||||||
catch (NotEnoughArgumentsException e) {
|
catch (NotEnoughArgumentsException e)
|
||||||
gameMode = matchGameMode(commandLabel);
|
{
|
||||||
gamemodeOtherPlayers(server, user, gameMode, args[0]);
|
if (user.isAuthorized("essentials.gamemode.others"))
|
||||||
return;
|
{
|
||||||
|
gameMode = matchGameMode(commandLabel);
|
||||||
|
gamemodeOtherPlayers(server, user, gameMode, args[0]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (gameMode == null) {
|
if (gameMode == null)
|
||||||
|
{
|
||||||
gameMode = user.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : user.getGameMode() == GameMode.CREATIVE ? GameMode.ADVENTURE : GameMode.SURVIVAL;
|
gameMode = user.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : user.getGameMode() == GameMode.CREATIVE ? GameMode.ADVENTURE : GameMode.SURVIVAL;
|
||||||
}
|
}
|
||||||
user.setGameMode(gameMode);
|
user.setGameMode(gameMode);
|
||||||
@ -104,11 +111,12 @@ public class Commandgamemode extends EssentialsCommand
|
|||||||
mode = GameMode.ADVENTURE;
|
mode = GameMode.ADVENTURE;
|
||||||
}
|
}
|
||||||
else if (modeString.equalsIgnoreCase("gmt") || modeString.equalsIgnoreCase("egmt")
|
else if (modeString.equalsIgnoreCase("gmt") || modeString.equalsIgnoreCase("egmt")
|
||||||
|| modeString.contains("toggle") || modeString.contains("cycle") || modeString.equalsIgnoreCase("t"))
|
|| modeString.contains("toggle") || modeString.contains("cycle") || modeString.equalsIgnoreCase("t"))
|
||||||
{
|
{
|
||||||
mode = null;
|
mode = null;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
return mode;
|
return mode;
|
||||||
|
@ -23,7 +23,6 @@ public class Commandhome extends EssentialsCommand
|
|||||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
final Trade charge = new Trade(this.getName(), ess);
|
final Trade charge = new Trade(this.getName(), ess);
|
||||||
charge.isAffordableFor(user);
|
|
||||||
User player = user;
|
User player = user;
|
||||||
String homeName = "";
|
String homeName = "";
|
||||||
String[] nameParts;
|
String[] nameParts;
|
||||||
@ -45,7 +44,7 @@ public class Commandhome extends EssentialsCommand
|
|||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if ("bed".equalsIgnoreCase(homeName))
|
if ("bed".equalsIgnoreCase(homeName) && user.isAuthorized("essentials.home.bed"))
|
||||||
{
|
{
|
||||||
final Location bed = player.getBedSpawnLocation();
|
final Location bed = player.getBedSpawnLocation();
|
||||||
if (bed != null && bed.getBlock().getType() == Material.BED_BLOCK)
|
if (bed != null && bed.getBlock().getType() == Material.BED_BLOCK)
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
|
|
||||||
|
// This method contains an undocumented sub command #EasterEgg
|
||||||
public class Commandjump extends EssentialsCommand
|
public class Commandjump extends EssentialsCommand
|
||||||
{
|
{
|
||||||
public Commandjump()
|
public Commandjump()
|
||||||
|
@ -24,23 +24,29 @@ public class Commandkick extends EssentialsCommand
|
|||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
final User user = getPlayer(server, args, 0);
|
final User target = getPlayer(server, args, 0, true);
|
||||||
if (sender instanceof Player && user.isAuthorized("essentials.kick.exempt"))
|
if (sender instanceof Player) {
|
||||||
{
|
User user = ess.getUser(sender);
|
||||||
throw new Exception(_("kickExempt"));
|
if (target.isHidden() && !user.isAuthorized("essentials.list.hidden")) {
|
||||||
|
throw new PlayerNotFoundException();
|
||||||
|
}
|
||||||
|
if (target.isAuthorized("essentials.kick.exempt"))
|
||||||
|
{
|
||||||
|
throw new Exception(_("kickExempt"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
final String kickReason = args.length > 1 ? getFinalArg(args, 1) : _("kickDefault");
|
final String kickReason = args.length > 1 ? getFinalArg(args, 1) : _("kickDefault");
|
||||||
user.kickPlayer(kickReason);
|
target.kickPlayer(kickReason);
|
||||||
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
||||||
|
|
||||||
server.getLogger().log(Level.INFO, _("playerKicked", senderName, user.getName(), kickReason));
|
server.getLogger().log(Level.INFO, _("playerKicked", senderName, target.getName(), kickReason));
|
||||||
|
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
User player = ess.getUser(onlinePlayer);
|
User player = ess.getUser(onlinePlayer);
|
||||||
if (player.isAuthorized("essentials.kick.notify"))
|
if (player.isAuthorized("essentials.kick.notify"))
|
||||||
{
|
{
|
||||||
onlinePlayer.sendMessage(_("playerKicked", senderName, user.getName(), kickReason));
|
onlinePlayer.sendMessage(_("playerKicked", senderName, target.getName(), kickReason));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ public class Commandkill extends EssentialsCommand
|
|||||||
{
|
{
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: TL this
|
//TODO: TL this
|
||||||
if (args[0].trim().length() < 2)
|
if (args[0].trim().length() < 2)
|
||||||
{
|
{
|
||||||
@ -32,12 +32,18 @@ public class Commandkill extends EssentialsCommand
|
|||||||
{
|
{
|
||||||
final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer, sender instanceof Player && ((Player)sender).getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Short.MAX_VALUE);
|
final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer, sender instanceof Player && ((Player)sender).getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Short.MAX_VALUE);
|
||||||
server.getPluginManager().callEvent(ede);
|
server.getPluginManager().callEvent(ede);
|
||||||
if (ede.isCancelled() && !sender.hasPermission("essentials.kill.force"))
|
if (ede.isCancelled() && sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.kill.force"))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
matchPlayer.damage(Short.MAX_VALUE);
|
matchPlayer.damage(Short.MAX_VALUE);
|
||||||
|
|
||||||
|
if (matchPlayer.getHealth() > 0)
|
||||||
|
{
|
||||||
|
matchPlayer.setHealth(0);
|
||||||
|
}
|
||||||
|
|
||||||
sender.sendMessage(_("kill", matchPlayer.getDisplayName()));
|
sender.sendMessage(_("kill", matchPlayer.getDisplayName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.entity.Ocelot;
|
import org.bukkit.entity.Ocelot;
|
||||||
|
|
||||||
|
// This command is not documented on the wiki #EasterEgg
|
||||||
public class Commandkittycannon extends EssentialsCommand
|
public class Commandkittycannon extends EssentialsCommand
|
||||||
{
|
{
|
||||||
private static Random random = new Random();
|
private static Random random = new Random();
|
||||||
|
@ -11,6 +11,9 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
public class Commandmail extends EssentialsCommand
|
public class Commandmail extends EssentialsCommand
|
||||||
{
|
{
|
||||||
|
private static int mailsPerMinute = 0;
|
||||||
|
private static long timestamp = 0;
|
||||||
|
|
||||||
public Commandmail()
|
public Commandmail()
|
||||||
{
|
{
|
||||||
super("mail");
|
super("mail");
|
||||||
@ -58,8 +61,22 @@ public class Commandmail extends EssentialsCommand
|
|||||||
}
|
}
|
||||||
if (!u.isIgnoredPlayer(user))
|
if (!u.isIgnoredPlayer(user))
|
||||||
{
|
{
|
||||||
final String mail = Util.sanitizeString(Util.stripFormat(getFinalArg(args, 2)));
|
final String mail = user.getName() + ": " + Util.sanitizeString(Util.stripFormat(getFinalArg(args, 2)));
|
||||||
u.addMail(user.getName() + ": " + mail);
|
if (mail.length() > 1000)
|
||||||
|
{
|
||||||
|
throw new Exception("Mail message too long. Try to keep it below 1000");
|
||||||
|
}
|
||||||
|
if (Math.abs(System.currentTimeMillis() - timestamp) > 60000)
|
||||||
|
{
|
||||||
|
timestamp = System.currentTimeMillis();
|
||||||
|
mailsPerMinute = 0;
|
||||||
|
}
|
||||||
|
mailsPerMinute++;
|
||||||
|
if (mailsPerMinute > ess.getSettings().getMailsPerMinute())
|
||||||
|
{
|
||||||
|
throw new Exception("Too many mails have been send within the last minute. Maximum: " + ess.getSettings().getMailsPerMinute());
|
||||||
|
}
|
||||||
|
u.addMail(mail);
|
||||||
}
|
}
|
||||||
user.sendMessage(_("mailSent"));
|
user.sendMessage(_("mailSent"));
|
||||||
return;
|
return;
|
||||||
|
@ -5,7 +5,7 @@ import com.earth2me.essentials.Util;
|
|||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
// This command can be used to echo messages to the users screen, mostly useless but also an #EasterEgg
|
||||||
public class Commandping extends EssentialsCommand
|
public class Commandping extends EssentialsCommand
|
||||||
{
|
{
|
||||||
public Commandping()
|
public Commandping()
|
||||||
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||||||
|
|
||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
|
import com.earth2me.essentials.Util;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
@ -45,7 +46,7 @@ public class Commandsethome extends EssentialsCommand
|
|||||||
}
|
}
|
||||||
if (usersHome == null)
|
if (usersHome == null)
|
||||||
{
|
{
|
||||||
throw new Exception(_("playerNotFound"));
|
throw new NoSuchFieldException(_("playerNotFound"));
|
||||||
}
|
}
|
||||||
name = args[1].toLowerCase(Locale.ENGLISH);
|
name = args[1].toLowerCase(Locale.ENGLISH);
|
||||||
}
|
}
|
||||||
@ -55,9 +56,9 @@ public class Commandsethome extends EssentialsCommand
|
|||||||
{
|
{
|
||||||
name = "home";
|
name = "home";
|
||||||
}
|
}
|
||||||
if ("bed".equals(name))
|
if ("bed".equals(name) || Util.isInt(name))
|
||||||
{
|
{
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NoSuchFieldException(_("invalidHomeName"));
|
||||||
}
|
}
|
||||||
usersHome.setHome(name, location);
|
usersHome.setHome(name, location);
|
||||||
user.sendMessage(_("homeSet", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ()));
|
user.sendMessage(_("homeSet", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ()));
|
||||||
|
@ -22,9 +22,10 @@ public class Commandsetwarp extends EssentialsCommand
|
|||||||
{
|
{
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].matches("[0-9]+")) {
|
if (Util.isInt(args[0]))
|
||||||
throw new NotEnoughArgumentsException();
|
{
|
||||||
|
throw new NoSuchFieldException(_("invalidWarpName"));
|
||||||
}
|
}
|
||||||
|
|
||||||
final Location loc = user.getLocation();
|
final Location loc = user.getLocation();
|
||||||
@ -39,7 +40,7 @@ public class Commandsetwarp extends EssentialsCommand
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
if (warpLoc == null || user.isAuthorized("essentials.warp.overwrite." + Util.sanitizeFileName(args[0])))
|
if (warpLoc == null || user.isAuthorized("essentials.warp.overwrite." + Util.safeString(args[0])))
|
||||||
{
|
{
|
||||||
warps.setWarp(args[0], loc);
|
warps.setWarp(args[0], loc);
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import java.util.logging.Logger;
|
|||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
public class Commandsudo extends EssentialsCommand
|
public class Commandsudo extends EssentialsCommand
|
||||||
@ -26,6 +27,15 @@ public class Commandsudo extends EssentialsCommand
|
|||||||
}
|
}
|
||||||
|
|
||||||
final User user = getPlayer(server, args, 0, false);
|
final User user = getPlayer(server, args, 0, false);
|
||||||
|
if(args[1].toLowerCase().startsWith("c:"))
|
||||||
|
{
|
||||||
|
if (user.isAuthorized("essentials.sudo.exempt") && sender instanceof Player)
|
||||||
|
{
|
||||||
|
throw new Exception(_("sudoExempt"));
|
||||||
|
}
|
||||||
|
user.chat(getFinalArg(args, 1).substring(2));
|
||||||
|
return;
|
||||||
|
}
|
||||||
final String command = args[1];
|
final String command = args[1];
|
||||||
final String[] arguments = new String[args.length - 2];
|
final String[] arguments = new String[args.length - 2];
|
||||||
if (arguments.length > 0)
|
if (arguments.length > 0)
|
||||||
@ -33,7 +43,7 @@ public class Commandsudo extends EssentialsCommand
|
|||||||
System.arraycopy(args, 2, arguments, 0, args.length - 2);
|
System.arraycopy(args, 2, arguments, 0, args.length - 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user.isAuthorized("essentials.sudo.exempt"))
|
if (user.isAuthorized("essentials.sudo.exempt") && sender instanceof Player)
|
||||||
{
|
{
|
||||||
throw new Exception(_("sudoExempt"));
|
throw new Exception(_("sudoExempt"));
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ public class Commandtpaccept extends EssentialsCommand
|
|||||||
|
|
||||||
if (user.isTpRequestHere())
|
if (user.isTpRequestHere())
|
||||||
{
|
{
|
||||||
user.getTeleport().teleport(target, charge, TeleportCause.COMMAND);
|
target.getTeleport().teleportToMe(user, charge, TeleportCause.COMMAND);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -27,7 +27,7 @@ public class Commandtphere extends EssentialsCommand
|
|||||||
{
|
{
|
||||||
throw new Exception(_("noPerm", "essentials.worlds." + user.getWorld().getName()));
|
throw new Exception(_("noPerm", "essentials.worlds." + user.getWorld().getName()));
|
||||||
}
|
}
|
||||||
player.getTeleport().teleport(user, new Trade(this.getName(), ess), TeleportCause.COMMAND);
|
user.getTeleport().teleportToMe(player, new Trade(this.getName(), ess), TeleportCause.COMMAND);
|
||||||
user.sendMessage(_("teleporting"));
|
user.sendMessage(_("teleporting"));
|
||||||
player.sendMessage(_("teleporting"));
|
player.sendMessage(_("teleporting"));
|
||||||
throw new NoChargeException();
|
throw new NoChargeException();
|
||||||
|
@ -37,8 +37,9 @@ public class Commandwarp extends EssentialsCommand
|
|||||||
}
|
}
|
||||||
if (args.length > 0)
|
if (args.length > 0)
|
||||||
{
|
{
|
||||||
|
//TODO: Remove 'otherplayers' permission.
|
||||||
User otherUser = null;
|
User otherUser = null;
|
||||||
if (args.length == 2 && user.isAuthorized("essentials.warp.otherplayers"))
|
if (args.length == 2 && (user.isAuthorized("essentials.warp.otherplayers") || user.isAuthorized("essentials.warp.others")))
|
||||||
{
|
{
|
||||||
otherUser = ess.getUser(server.getPlayer(args[1]));
|
otherUser = ess.getUser(server.getPlayer(args[1]));
|
||||||
if (otherUser == null)
|
if (otherUser == null)
|
||||||
|
@ -56,14 +56,14 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
|||||||
}
|
}
|
||||||
if (args[pos].isEmpty())
|
if (args[pos].isEmpty())
|
||||||
{
|
{
|
||||||
throw new NoSuchFieldException(_("playerNotFound"));
|
throw new PlayerNotFoundException();
|
||||||
}
|
}
|
||||||
final User user = ess.getUser(args[pos]);
|
final User user = ess.getUser(args[pos]);
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
if (!getOffline && (!user.isOnline() || user.isHidden()))
|
if (!getOffline && (!user.isOnline() || user.isHidden()))
|
||||||
{
|
{
|
||||||
throw new NoSuchFieldException(_("playerNotFound"));
|
throw new PlayerNotFoundException();
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
@ -85,7 +85,7 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
|||||||
return userMatch;
|
return userMatch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new NoSuchFieldException(_("playerNotFound"));
|
throw new PlayerNotFoundException();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
|
import static com.earth2me.essentials.I18n._;
|
||||||
|
|
||||||
|
public class PlayerNotFoundException extends NoSuchFieldException
|
||||||
|
{
|
||||||
|
public PlayerNotFoundException()
|
||||||
|
{
|
||||||
|
super(_("playerNotFound"));
|
||||||
|
}
|
||||||
|
}
|
@ -21,6 +21,11 @@ public class SignPlayerListener implements Listener
|
|||||||
this.ess = ess;
|
this.ess = ess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//This following code below listens to cancelled events to fix a bukkit issue
|
||||||
|
//Right clicking signs with a block in hand, can now fire cancelled events.
|
||||||
|
//This is because when the block place is cancelled (for example not enough space for the block to be placed),
|
||||||
|
//the event will be marked as cancelled, thus preventing 30% of sign purchases.
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOW)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void onPlayerInteract(final PlayerInteractEvent event)
|
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||||
{
|
{
|
||||||
|
@ -10,7 +10,7 @@ import org.bukkit.block.BlockFace;
|
|||||||
import org.bukkit.block.Sign;
|
import org.bukkit.block.Sign;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
@Deprecated // This sign will be removed soon
|
||||||
public class SignProtection extends EssentialsSign
|
public class SignProtection extends EssentialsSign
|
||||||
{
|
{
|
||||||
private final transient Set<Material> protectedBlocks = EnumSet.noneOf(Material.class);
|
private final transient Set<Material> protectedBlocks = EnumSet.noneOf(Material.class);
|
||||||
|
@ -315,6 +315,9 @@ login-attack-delay: 5
|
|||||||
#Set the max fly speed, values range from 0.1 to 1.0
|
#Set the max fly speed, values range from 0.1 to 1.0
|
||||||
max-fly-speed: 0.8
|
max-fly-speed: 0.8
|
||||||
|
|
||||||
|
#Set the maximum amount of mails that can be send within a minute.
|
||||||
|
mails-per-minute: 1000
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
# +------------------------------------------------------+ #
|
# +------------------------------------------------------+ #
|
||||||
# | EssentialsHome | #
|
# | EssentialsHome | #
|
||||||
|
@ -1163,13 +1163,13 @@ smoothstonehalfblock,44,0
|
|||||||
stonehalfblock,44,0
|
stonehalfblock,44,0
|
||||||
shalfblock,44,0
|
shalfblock,44,0
|
||||||
halfblock,44,0
|
halfblock,44,0
|
||||||
sanddstonestep,44,1
|
sandstonestep,44,1
|
||||||
sstonestep,44,1
|
sstonestep,44,1
|
||||||
ssstep,44,1
|
ssstep,44,1
|
||||||
sanddstoneslab,44,1
|
sandstoneslab,44,1
|
||||||
sstoneslab,44,1
|
sstoneslab,44,1
|
||||||
ssslab,44,1
|
ssslab,44,1
|
||||||
sanddstonehalfblock,44,1
|
sandstonehalfblock,44,1
|
||||||
sstonehalfblock,44,1
|
sstonehalfblock,44,1
|
||||||
sshalfblock,44,1
|
sshalfblock,44,1
|
||||||
woodenplankstonestep,44,2
|
woodenplankstonestep,44,2
|
||||||
@ -1329,7 +1329,6 @@ burningfurnace,62,0
|
|||||||
bfurnace,62,0
|
bfurnace,62,0
|
||||||
signpost,63,0
|
signpost,63,0
|
||||||
spost,63,0
|
spost,63,0
|
||||||
door,64,0
|
|
||||||
woodendoorhalf,64,0
|
woodendoorhalf,64,0
|
||||||
wooddoorhalf,64,0
|
wooddoorhalf,64,0
|
||||||
wdoorhalf,64,0
|
wdoorhalf,64,0
|
||||||
@ -1589,6 +1588,7 @@ doort,96,0
|
|||||||
trapd,96,0
|
trapd,96,0
|
||||||
dtrap,96,0
|
dtrap,96,0
|
||||||
silverfish,97,0
|
silverfish,97,0
|
||||||
|
monsteregg,97,0
|
||||||
monstereggsmoothstone,97,0
|
monstereggsmoothstone,97,0
|
||||||
monstereggsstone,97,0
|
monstereggsstone,97,0
|
||||||
meggsmoothstone,97,0
|
meggsmoothstone,97,0
|
||||||
@ -3397,6 +3397,7 @@ sign,323,0
|
|||||||
woodendoor,324,0
|
woodendoor,324,0
|
||||||
wooddoor,324,0
|
wooddoor,324,0
|
||||||
wdoor,324,0
|
wdoor,324,0
|
||||||
|
door,324,0
|
||||||
bucket,325,0
|
bucket,325,0
|
||||||
bukkit,325,0
|
bukkit,325,0
|
||||||
waterbucket,326,0
|
waterbucket,326,0
|
||||||
@ -3946,14 +3947,98 @@ waterbottle,373,0
|
|||||||
fullbottle,373,0
|
fullbottle,373,0
|
||||||
watervase,373,0
|
watervase,373,0
|
||||||
fullvase,373,0
|
fullvase,373,0
|
||||||
|
clearpotion,373,6
|
||||||
|
clearpot,373,6
|
||||||
|
clearextendedpotion,373,7
|
||||||
|
clearexpotion,373,7
|
||||||
|
clear2potion,373,7
|
||||||
|
clearextendedpot,373,7
|
||||||
|
clearexpot,373,7
|
||||||
|
clear2pot,373,7
|
||||||
|
diffusepotion,373,11
|
||||||
|
diffusepot,373,11
|
||||||
|
artlesspotion,373,13
|
||||||
|
artlesspot,373,13
|
||||||
|
thinpotion,373,14
|
||||||
|
thinpot,373,14
|
||||||
|
thinextendedpotion,373,15
|
||||||
|
thinexpotion,373,15
|
||||||
|
thin2potion,373,15
|
||||||
|
thinextendedpot,373,15
|
||||||
|
thinexpot,373,15
|
||||||
|
thin2pot,373,15
|
||||||
awkwardpotion,373,16
|
awkwardpotion,373,16
|
||||||
awkwardpot,373,16
|
awkwardpot,373,16
|
||||||
|
bunglingpotion,373,22
|
||||||
|
bunglingpot,373,22
|
||||||
|
bunglingextendedpotion,373,23
|
||||||
|
bunglingexpotion,373,23
|
||||||
|
bungling2potion,373,23
|
||||||
|
bunglingextendedpot,373,23
|
||||||
|
bunglingexpot,373,23
|
||||||
|
bungling2pot,373,23
|
||||||
|
smoothpotion,373,27
|
||||||
|
smoothpot,373,27
|
||||||
|
suavepotion,373,29
|
||||||
|
suavepot,373,29
|
||||||
|
debonairpotion,373,30
|
||||||
|
debonairpot,373,30
|
||||||
|
debonairextendedpotion,373,31
|
||||||
|
debonairexpotion,373,31
|
||||||
|
debonair2potion,373,31
|
||||||
|
debonairextendedpot,373,31
|
||||||
|
debonairexpot,373,31
|
||||||
|
debonair2pot,373,31
|
||||||
thickpotion,373,32
|
thickpotion,373,32
|
||||||
thickpot,373,32
|
thickpot,373,32
|
||||||
mundaneexpotion,373,64
|
charmingpotion,373,38
|
||||||
|
charmingpot,373,38
|
||||||
|
charmingextendedpotion,373,39
|
||||||
|
charmingexpotion,373,39
|
||||||
|
charming2potion,373,39
|
||||||
|
charmingextendedpot,373,39
|
||||||
|
charmingexpot,373,39
|
||||||
|
charming2pot,373,39
|
||||||
|
refinedpotion,373,43
|
||||||
|
refinedpot,373,43
|
||||||
|
cordialpotion,373,45
|
||||||
|
cordialpot,373,45
|
||||||
|
sparklingpotion,373,46
|
||||||
|
sparklingpot,373,46
|
||||||
|
sparklingextendedpotion,373,47
|
||||||
|
sparklingexpotion,373,47
|
||||||
|
sparkling2potion,373,47
|
||||||
|
sparklingextendedpot,373,47
|
||||||
|
sparklingexpot,373,47
|
||||||
|
sparkling2pot,373,47
|
||||||
|
potentpotion,373,48
|
||||||
|
potentpot,373,48
|
||||||
|
rankpotion,373,54
|
||||||
|
rankpot,373,54
|
||||||
|
rankextendedpotion,373,55
|
||||||
|
rankexpotion,373,55
|
||||||
|
rank2potion,373,55
|
||||||
|
rankextendedpot,373,55
|
||||||
|
rankexpot,373,55
|
||||||
|
rank2pot,373,55
|
||||||
|
acridpotion,373,59
|
||||||
|
acridpot,373,59
|
||||||
|
grosspotion,373,61
|
||||||
|
grosspot,373,61
|
||||||
|
stinkypotion,373,62
|
||||||
|
stinkypot,373,62
|
||||||
|
stinkyextendedpotion,373,63
|
||||||
|
stinkyexpotion,373,63
|
||||||
|
stinky2potion,373,63
|
||||||
|
stinkyextendedpot,373,63
|
||||||
|
stinkyexpot,373,63
|
||||||
|
stinky2pot,373,63
|
||||||
mundaneextendedpotion,373,64
|
mundaneextendedpotion,373,64
|
||||||
mundaneexpot,373,64
|
mundaneexpotion,373,64
|
||||||
|
mundane2potion,373,64
|
||||||
mundaneextendedpot,373,64
|
mundaneextendedpot,373,64
|
||||||
|
mundaneexpot,373,64
|
||||||
|
mundane2pot,373,64
|
||||||
mundanepotion,373,8192
|
mundanepotion,373,8192
|
||||||
mundanepot,373,8192
|
mundanepot,373,8192
|
||||||
regenerationpotion,373,8193
|
regenerationpotion,373,8193
|
||||||
@ -4076,7 +4161,7 @@ healinglevel2pot,373,8229
|
|||||||
heallevel2pot,373,8229
|
heallevel2pot,373,8229
|
||||||
healingiipot,373,8229
|
healingiipot,373,8229
|
||||||
healiipot,373,8229
|
healiipot,373,8229
|
||||||
h2potpot,373,8229
|
h2pot,373,8229
|
||||||
strengthleveliipotion,373,8233
|
strengthleveliipotion,373,8233
|
||||||
strongleveliipotion,373,8233
|
strongleveliipotion,373,8233
|
||||||
strleveliipotion,373,8233
|
strleveliipotion,373,8233
|
||||||
@ -4308,6 +4393,22 @@ splhealingpot,373,16389
|
|||||||
splhealpot,373,16389
|
splhealpot,373,16389
|
||||||
spllifepot,373,16389
|
spllifepot,373,16389
|
||||||
sphpot,373,16389
|
sphpot,373,16389
|
||||||
|
splashclearpotion,373,16390
|
||||||
|
splashclearpot,373,16390
|
||||||
|
splclearpotion,373,16390
|
||||||
|
splclearpot,373,16390
|
||||||
|
splashclearextendedpotion,373,16391
|
||||||
|
splashclearexpotion,373,16391
|
||||||
|
splashclear2potion,373,16391
|
||||||
|
splashclearextendedpot,373,16391
|
||||||
|
splashclearexpot,373,16391
|
||||||
|
splashclear2pot,373,16391
|
||||||
|
splclearextendedpotion,373,16391
|
||||||
|
splclearexpotion,373,16391
|
||||||
|
splclear2potion,373,16391
|
||||||
|
splclearextendedpot,373,16391
|
||||||
|
splclearexpot,373,16391
|
||||||
|
splclear2pot,373,16391
|
||||||
splashweaknesspotion,373,16392
|
splashweaknesspotion,373,16392
|
||||||
splashweakpotion,373,16392
|
splashweakpotion,373,16392
|
||||||
splashweaknesspot,373,16392
|
splashweaknesspot,373,16392
|
||||||
@ -4339,6 +4440,10 @@ splslowpotion,373,16394
|
|||||||
splslownesspot,373,16394
|
splslownesspot,373,16394
|
||||||
splslowpot,373,16394
|
splslowpot,373,16394
|
||||||
spslpot,373,16394
|
spslpot,373,16394
|
||||||
|
splashdiffusepotion,373,16395
|
||||||
|
splashdiffusepot,373,16395
|
||||||
|
spldiffusepotion,373,16395
|
||||||
|
spldiffusepot,373,16395
|
||||||
splashharmingpotion,373,16396
|
splashharmingpotion,373,16396
|
||||||
splashdamagepotion,373,16396
|
splashdamagepotion,373,16396
|
||||||
splashdmgpotion,373,16396
|
splashdmgpotion,373,16396
|
||||||
@ -4352,6 +4457,74 @@ splharmingpot,373,16396
|
|||||||
spldamagepot,373,16396
|
spldamagepot,373,16396
|
||||||
spldmgpot,373,16396
|
spldmgpot,373,16396
|
||||||
spdpot,373,16396
|
spdpot,373,16396
|
||||||
|
splashartlesspotion,373,16397
|
||||||
|
splashartlesspot,373,16397
|
||||||
|
splartlesspotion,373,16397
|
||||||
|
splartlesspot,373,16397
|
||||||
|
splashthinpotion,373,16398
|
||||||
|
splashthinpot,373,16398
|
||||||
|
splthinpotion,373,16398
|
||||||
|
splthinpot,373,16398
|
||||||
|
splashthinextendedpotion,373,16399
|
||||||
|
splashthinexpotion,373,16399
|
||||||
|
splashthin2potion,373,16399
|
||||||
|
splashthinextendedpot,373,16399
|
||||||
|
splashthinexpot,373,16399
|
||||||
|
splashthin2pot,373,16399
|
||||||
|
splthinextendedpotion,373,16399
|
||||||
|
splthinexpotion,373,16399
|
||||||
|
splthin2potion,373,16399
|
||||||
|
splthinextendedpot,373,16399
|
||||||
|
splthinexpot,373,16399
|
||||||
|
splthin2pot,373,16399
|
||||||
|
splashawkwardpotion,373,16400
|
||||||
|
splashawkwardpot,373,16400
|
||||||
|
splawkwardpotion,373,16400
|
||||||
|
splawkwardpot,373,16400
|
||||||
|
splashbunglingpotion,373,16406
|
||||||
|
splashbunglingpot,373,16406
|
||||||
|
splbunglingpotion,373,16406
|
||||||
|
splbunglingpot,373,16406
|
||||||
|
splashbunglingextendedpotion,373,16407
|
||||||
|
splashbunglingexpotion,373,16407
|
||||||
|
splashbungling2potion,373,16407
|
||||||
|
splashbunglingextendedpot,373,16407
|
||||||
|
splashbunglingexpot,373,16407
|
||||||
|
splashbungling2pot,373,16407
|
||||||
|
splbunglingextendedpotion,373,16407
|
||||||
|
splbunglingexpotion,373,16407
|
||||||
|
splbungling2potion,373,16407
|
||||||
|
splbunglingextendedpot,373,16407
|
||||||
|
splbunglingexpot,373,16407
|
||||||
|
splbungling2pot,373,16407
|
||||||
|
splashsmoothpotion,373,16411
|
||||||
|
splashsmoothpot,373,16411
|
||||||
|
splsmoothpotion,373,16411
|
||||||
|
splsmoothpot,373,16411
|
||||||
|
splashsuavepotion,373,16413
|
||||||
|
splashsuavepot,373,16413
|
||||||
|
splsuavepotion,373,16413
|
||||||
|
splsuavepot,373,16413
|
||||||
|
splashdebonairpotion,373,16414
|
||||||
|
splashdebonairpot,373,16414
|
||||||
|
spldebonairpotion,373,16414
|
||||||
|
spldebonairpot,373,16414
|
||||||
|
splashdebonairextendedpotion,373,16415
|
||||||
|
splashdebonairexpotion,373,16415
|
||||||
|
splashdebonair2potion,373,16415
|
||||||
|
splashdebonairextendedpot,373,16415
|
||||||
|
splashdebonairexpot,373,16415
|
||||||
|
splashdebonair2pot,373,16415
|
||||||
|
spldebonairextendedpotion,373,16415
|
||||||
|
spldebonairexpotion,373,16415
|
||||||
|
spldebonair2potion,373,16415
|
||||||
|
spldebonairextendedpot,373,16415
|
||||||
|
spldebonairexpot,373,16415
|
||||||
|
spldebonair2pot,373,16415
|
||||||
|
splashthickpotion,373,16416
|
||||||
|
splashthickpot,373,16416
|
||||||
|
splthickpotion,373,16416
|
||||||
|
splthickpot,373,16416
|
||||||
splashregenerationleveliipotion,373,16417
|
splashregenerationleveliipotion,373,16417
|
||||||
splashregenerateleveliipotion,373,16417
|
splashregenerateleveliipotion,373,16417
|
||||||
splashregenleveliipotion,373,16417
|
splashregenleveliipotion,373,16417
|
||||||
@ -4476,6 +4649,22 @@ splheallevel2pot,373,16421
|
|||||||
splhealingiipot,373,16421
|
splhealingiipot,373,16421
|
||||||
splhealiipot,373,16421
|
splhealiipot,373,16421
|
||||||
sph2pot,373,16421
|
sph2pot,373,16421
|
||||||
|
splashcharmingpotion,373,16422
|
||||||
|
splashcharmingpot,373,16422
|
||||||
|
splcharmingpotion,373,16422
|
||||||
|
splcharmingpot,373,16422
|
||||||
|
splashcharmingextendedpotion,373,16423
|
||||||
|
splashcharmingexpotion,373,16423
|
||||||
|
splashcharming2potion,373,16423
|
||||||
|
splashcharmingextendedpot,373,16423
|
||||||
|
splashcharmingexpot,373,16423
|
||||||
|
splashcharming2pot,373,16423
|
||||||
|
splcharmingextendedpotion,373,16423
|
||||||
|
splcharmingexpotion,373,16423
|
||||||
|
splcharming2potion,373,16423
|
||||||
|
splcharmingextendedpot,373,16423
|
||||||
|
splcharmingexpot,373,16423
|
||||||
|
splcharming2pot,373,16423
|
||||||
splashstrengthleveliipotion,373,16425
|
splashstrengthleveliipotion,373,16425
|
||||||
splashstrongleveliipotion,373,16425
|
splashstrongleveliipotion,373,16425
|
||||||
splashstrleveliipotion,373,16425
|
splashstrleveliipotion,373,16425
|
||||||
@ -4513,6 +4702,10 @@ splstrengthiipot,373,16425
|
|||||||
splstrongiipot,373,16425
|
splstrongiipot,373,16425
|
||||||
splstriipot,373,16425
|
splstriipot,373,16425
|
||||||
spst2pot,373,16425
|
spst2pot,373,16425
|
||||||
|
splashrefinedpotion,373,16427
|
||||||
|
splashrefinedpot,373,16427
|
||||||
|
splrefinedpotion,373,16427
|
||||||
|
splrefinedpot,373,16427
|
||||||
splashharmingleveliipotion,373,16428
|
splashharmingleveliipotion,373,16428
|
||||||
splashdamageleveliipotion,373,16428
|
splashdamageleveliipotion,373,16428
|
||||||
splashdmgleveliipotion,373,16428
|
splashdmgleveliipotion,373,16428
|
||||||
@ -4550,6 +4743,82 @@ splharmingiipot,373,16428
|
|||||||
spldamageiipot,373,16428
|
spldamageiipot,373,16428
|
||||||
spldmgiipot,373,16428
|
spldmgiipot,373,16428
|
||||||
spd2pot,373,16428
|
spd2pot,373,16428
|
||||||
|
splashcordialpotion,373,16429
|
||||||
|
splashcordialpot,373,16429
|
||||||
|
splcordialpotion,373,16429
|
||||||
|
splcordialpot,373,16429
|
||||||
|
splashsparklingpotion,373,16430
|
||||||
|
splashsparklingpot,373,16430
|
||||||
|
splsparklingpotion,373,16430
|
||||||
|
splsparklingpot,373,16430
|
||||||
|
splashsparklingextendedpotion,373,16431
|
||||||
|
splashsparklingexpotion,373,16431
|
||||||
|
splashsparkling2potion,373,16431
|
||||||
|
splashsparklingextendedpot,373,16431
|
||||||
|
splashsparklingexpot,373,16431
|
||||||
|
splashsparkling2pot,373,16431
|
||||||
|
splsparklingextendedpotion,373,16431
|
||||||
|
splsparklingexpotion,373,16431
|
||||||
|
splsparkling2potion,373,16431
|
||||||
|
splsparklingextendedpot,373,16431
|
||||||
|
splsparklingexpot,373,16431
|
||||||
|
splsparkling2pot,373,16431
|
||||||
|
splashpotentpotion,373,16432
|
||||||
|
splashpotentpot,373,16432
|
||||||
|
splpotentpotion,373,16432
|
||||||
|
splpotentpot,373,16432
|
||||||
|
splashrankpotion,373,16438
|
||||||
|
splashrankpot,373,16438
|
||||||
|
splrankpotion,373,16438
|
||||||
|
splrankpot,373,16438
|
||||||
|
splashrankextendedpotion,373,16439
|
||||||
|
splashrankexpotion,373,16439
|
||||||
|
splashrank2potion,373,16439
|
||||||
|
splashrankextendedpot,373,16439
|
||||||
|
splashrankexpot,373,16439
|
||||||
|
splashrank2pot,373,16439
|
||||||
|
splrankextendedpotion,373,16439
|
||||||
|
splrankexpotion,373,16439
|
||||||
|
splrank2potion,373,16439
|
||||||
|
splrankextendedpot,373,16439
|
||||||
|
splrankexpot,373,16439
|
||||||
|
splrank2pot,373,16439
|
||||||
|
splashacridpotion,373,16443
|
||||||
|
splashacridpot,373,16443
|
||||||
|
splacridpotion,373,16443
|
||||||
|
splacridpot,373,16443
|
||||||
|
splashgrosspotion,373,16445
|
||||||
|
splashgrosspot,373,16445
|
||||||
|
splgrosspotion,373,16445
|
||||||
|
splgrosspot,373,16445
|
||||||
|
splashstinkypotion,373,16446
|
||||||
|
splashstinkypot,373,16446
|
||||||
|
splstinkypotion,373,16446
|
||||||
|
splstinkypot,373,16446
|
||||||
|
splashstinkyextendedpotion,373,16447
|
||||||
|
splashstinkyexpotion,373,16447
|
||||||
|
splashstinky2potion,373,16447
|
||||||
|
splashstinkyextendedpot,373,16447
|
||||||
|
splashstinkyexpot,373,16447
|
||||||
|
splashstinky2pot,373,16447
|
||||||
|
splstinkyextendedpotion,373,16447
|
||||||
|
splstinkyexpotion,373,16447
|
||||||
|
splstinky2potion,373,16447
|
||||||
|
splstinkyextendedpot,373,16447
|
||||||
|
splstinkyexpot,373,16447
|
||||||
|
splstinky2pot,373,16447
|
||||||
|
splashmundaneextendedpotion,373,16448
|
||||||
|
splashmundaneexpotion,373,16448
|
||||||
|
splashmundane2potion,373,16448
|
||||||
|
splashmundaneextendedpot,373,16448
|
||||||
|
splashmundaneexpot,373,16448
|
||||||
|
splashmundane2pot,373,16448
|
||||||
|
splmundaneextendedpotion,373,16448
|
||||||
|
splmundaneexpotion,373,16448
|
||||||
|
splmundane2potion,373,16448
|
||||||
|
splmundaneextendedpot,373,16448
|
||||||
|
splmundaneexpot,373,16448
|
||||||
|
splmundane2pot,373,16448
|
||||||
splashregenerationextendedpotion,373,16449
|
splashregenerationextendedpotion,373,16449
|
||||||
splashregenerateextendedpotion,373,16449
|
splashregenerateextendedpotion,373,16449
|
||||||
splashregenextendepotion,373,16449
|
splashregenextendepotion,373,16449
|
||||||
|
|
@ -2,7 +2,7 @@
|
|||||||
# Single quotes have to be doubled: ''
|
# Single quotes have to be doubled: ''
|
||||||
# Translations start here
|
# Translations start here
|
||||||
# by:
|
# by:
|
||||||
action=\u00a7d* {0} {1}
|
action=\u00a75* {0} \u00a75{1}
|
||||||
addedToAccount=\u00a7a{0} has been added to your account.
|
addedToAccount=\u00a7a{0} has been added to your account.
|
||||||
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
||||||
adventure= adventure
|
adventure= adventure
|
||||||
@ -264,7 +264,7 @@ notRecommendedBukkit= \u00a74* ! * Bukkit version is not the recommended build f
|
|||||||
notSupportedYet=Not supported yet.
|
notSupportedYet=Not supported yet.
|
||||||
nothingInHand=\u00a74You have nothing in your hand.
|
nothingInHand=\u00a74You have nothing in your hand.
|
||||||
now=now
|
now=now
|
||||||
nuke=\u00a7dMay death rain upon them
|
nuke=\u00a75May death rain upon them
|
||||||
numberRequired=A number goes there, silly.
|
numberRequired=A number goes there, silly.
|
||||||
onlyDayNight=/time only supports day/night.
|
onlyDayNight=/time only supports day/night.
|
||||||
onlyPlayers=\u00a74Only in-game players can use {0}.
|
onlyPlayers=\u00a74Only in-game players can use {0}.
|
||||||
@ -397,8 +397,8 @@ unvanished=\u00a76You are once again visible.
|
|||||||
unvanishedReload=\u00a74A reload has forced you to become visible.
|
unvanishedReload=\u00a74A reload has forced you to become visible.
|
||||||
upgradingFilesError=Error while upgrading the files
|
upgradingFilesError=Error while upgrading the files
|
||||||
userDoesNotExist=\u00a74The user\u00a7c {0} \u00a74does not exist.
|
userDoesNotExist=\u00a74The user\u00a7c {0} \u00a74does not exist.
|
||||||
userIsAway=\u00a7d{0} \u00a7dis now AFK
|
userIsAway=\u00a75{0} \u00a75is now AFK
|
||||||
userIsNotAway=\u00a7d{0} \u00a7dis no longer AFK
|
userIsNotAway=\u00a75{0} \u00a75is no longer AFK
|
||||||
userJailed=\u00a76You have been jailed
|
userJailed=\u00a76You have been jailed
|
||||||
userUsedPortal={0} used an existing exit portal.
|
userUsedPortal={0} used an existing exit portal.
|
||||||
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
||||||
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -460,3 +460,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -230,7 +230,7 @@ nickChanged=Nickname ge\u00e4ndert.
|
|||||||
nickDisplayName=\u00a77Du musst \u00a7fchange-displayname\u00a7c in der Essentials-Config aktivieren.
|
nickDisplayName=\u00a77Du musst \u00a7fchange-displayname\u00a7c in der Essentials-Config aktivieren.
|
||||||
nickInUse=\u00a7cDieser Name wird bereits verwendet.
|
nickInUse=\u00a7cDieser Name wird bereits verwendet.
|
||||||
nickNamesAlpha=\u00a7cNicknamen d\u00fcrfen nur alphanumerische Zeichen enthalten.
|
nickNamesAlpha=\u00a7cNicknamen d\u00fcrfen nur alphanumerische Zeichen enthalten.
|
||||||
nickNoMore=\u00a7Du hast keinen Nicknamen mehr.
|
nickNoMore=\u00a7cDu hast keinen Nicknamen mehr.
|
||||||
nickOthersPermission=\u00a7cDu hast keine Rechte um den Nicknamen von anderen zu \u00e4ndern.
|
nickOthersPermission=\u00a7cDu hast keine Rechte um den Nicknamen von anderen zu \u00e4ndern.
|
||||||
nickSet=\u00a77Dein Nickname ist nun \u00a7c{0}
|
nickSet=\u00a77Dein Nickname ist nun \u00a7c{0}
|
||||||
noAccessCommand=\u00a7cDu hast keinen Zugriff auf diesen Befehl.
|
noAccessCommand=\u00a7cDu hast keinen Zugriff auf diesen Befehl.
|
||||||
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Single quotes have to be doubled: ''
|
# Single quotes have to be doubled: ''
|
||||||
# Translations start here
|
# Translations start here
|
||||||
# by:
|
# by:
|
||||||
action=\u00a7d* {0} {1}
|
action=\u00a75* {0} \u00a75{1}
|
||||||
addedToAccount=\u00a7a{0} has been added to your account.
|
addedToAccount=\u00a7a{0} has been added to your account.
|
||||||
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
||||||
adventure= adventure
|
adventure= adventure
|
||||||
@ -264,7 +264,7 @@ notRecommendedBukkit= \u00a74* ! * Bukkit version is not the recommended build f
|
|||||||
notSupportedYet=Not supported yet.
|
notSupportedYet=Not supported yet.
|
||||||
nothingInHand=\u00a74You have nothing in your hand.
|
nothingInHand=\u00a74You have nothing in your hand.
|
||||||
now=now
|
now=now
|
||||||
nuke=\u00a7dMay death rain upon them
|
nuke=\u00a75May death rain upon them
|
||||||
numberRequired=A number goes there, silly.
|
numberRequired=A number goes there, silly.
|
||||||
onlyDayNight=/time only supports day/night.
|
onlyDayNight=/time only supports day/night.
|
||||||
onlyPlayers=\u00a74Only in-game players can use {0}.
|
onlyPlayers=\u00a74Only in-game players can use {0}.
|
||||||
@ -397,8 +397,8 @@ unvanished=\u00a76You are once again visible.
|
|||||||
unvanishedReload=\u00a74A reload has forced you to become visible.
|
unvanishedReload=\u00a74A reload has forced you to become visible.
|
||||||
upgradingFilesError=Error while upgrading the files
|
upgradingFilesError=Error while upgrading the files
|
||||||
userDoesNotExist=\u00a74The user\u00a7c {0} \u00a74does not exist.
|
userDoesNotExist=\u00a74The user\u00a7c {0} \u00a74does not exist.
|
||||||
userIsAway=\u00a7d{0} \u00a7dis now AFK
|
userIsAway=\u00a75{0} \u00a75is now AFK
|
||||||
userIsNotAway=\u00a7d{0} \u00a7dis no longer AFK
|
userIsNotAway=\u00a75{0} \u00a75is no longer AFK
|
||||||
userJailed=\u00a76You have been jailed
|
userJailed=\u00a76You have been jailed
|
||||||
userUsedPortal={0} used an existing exit portal.
|
userUsedPortal={0} used an existing exit portal.
|
||||||
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
||||||
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -457,3 +457,6 @@ uptime=\u00a76Uptime:\u00a7c {0}
|
|||||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
|
||||||
|
invalidHomeName=\u00a74Invalid home name
|
||||||
|
invalidWarpName=\u00a74Invalid warp name
|
||||||
|
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
|
||||||
|
@ -240,6 +240,42 @@ public class FakeServer implements Server
|
|||||||
{
|
{
|
||||||
throw new UnsupportedOperationException("Not supported yet.");
|
throw new UnsupportedOperationException("Not supported yet.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BukkitTask runTask(Plugin plugin, Runnable r) throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BukkitTask runTaskAsynchronously(Plugin plugin, Runnable r) throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BukkitTask runTaskLater(Plugin plugin, Runnable r, long l) throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BukkitTask runTaskLaterAsynchronously(Plugin plugin, Runnable r, long l) throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BukkitTask runTaskTimer(Plugin plugin, Runnable r, long l, long l1) throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BukkitTask runTaskTimerAsynchronously(Plugin plugin, Runnable r, long l, long l1) throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet.");
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,9 +12,9 @@ is divided into following sections:
|
|||||||
- execution
|
- execution
|
||||||
- debugging
|
- debugging
|
||||||
- javadoc
|
- javadoc
|
||||||
- junit compilation
|
- test compilation
|
||||||
- junit execution
|
- test execution
|
||||||
- junit debugging
|
- test debugging
|
||||||
- applet
|
- applet
|
||||||
- cleanup
|
- cleanup
|
||||||
|
|
||||||
@ -181,6 +181,7 @@ is divided into following sections:
|
|||||||
</and>
|
</and>
|
||||||
</condition>
|
</condition>
|
||||||
<property name="run.jvmargs" value=""/>
|
<property name="run.jvmargs" value=""/>
|
||||||
|
<property name="run.jvmargs.ide" value=""/>
|
||||||
<property name="javac.compilerargs" value=""/>
|
<property name="javac.compilerargs" value=""/>
|
||||||
<property name="work.dir" value="${basedir}"/>
|
<property name="work.dir" value="${basedir}"/>
|
||||||
<condition property="no.deps">
|
<condition property="no.deps">
|
||||||
@ -225,6 +226,27 @@ is divided into following sections:
|
|||||||
<property name="jar.index.metainf" value="${jar.index}"/>
|
<property name="jar.index.metainf" value="${jar.index}"/>
|
||||||
<property name="copylibs.rebase" value="true"/>
|
<property name="copylibs.rebase" value="true"/>
|
||||||
<available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
|
<available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
|
||||||
|
<condition property="junit.available">
|
||||||
|
<or>
|
||||||
|
<available classname="org.junit.Test" classpath="${run.test.classpath}"/>
|
||||||
|
<available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
|
||||||
|
</or>
|
||||||
|
</condition>
|
||||||
|
<condition property="testng.available">
|
||||||
|
<available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
|
||||||
|
</condition>
|
||||||
|
<condition property="junit+testng.available">
|
||||||
|
<and>
|
||||||
|
<istrue value="${junit.available}"/>
|
||||||
|
<istrue value="${testng.available}"/>
|
||||||
|
</and>
|
||||||
|
</condition>
|
||||||
|
<condition else="testng" property="testng.mode" value="mixed">
|
||||||
|
<istrue value="${junit+testng.available}"/>
|
||||||
|
</condition>
|
||||||
|
<condition else="" property="testng.debug.mode" value="-mixed">
|
||||||
|
<istrue value="${junit+testng.available}"/>
|
||||||
|
</condition>
|
||||||
</target>
|
</target>
|
||||||
<target name="-post-init">
|
<target name="-post-init">
|
||||||
<!-- Empty placeholder for easier customization. -->
|
<!-- Empty placeholder for easier customization. -->
|
||||||
@ -357,11 +379,52 @@ is divided into following sections:
|
|||||||
</sequential>
|
</sequential>
|
||||||
</macrodef>
|
</macrodef>
|
||||||
</target>
|
</target>
|
||||||
<target name="-init-macrodef-junit">
|
<target if="${junit.available}" name="-init-macrodef-junit-init">
|
||||||
|
<condition else="false" property="nb.junit.batch" value="true">
|
||||||
|
<and>
|
||||||
|
<istrue value="${junit.available}"/>
|
||||||
|
<not>
|
||||||
|
<isset property="test.method"/>
|
||||||
|
</not>
|
||||||
|
</and>
|
||||||
|
</condition>
|
||||||
|
<condition else="false" property="nb.junit.single" value="true">
|
||||||
|
<and>
|
||||||
|
<istrue value="${junit.available}"/>
|
||||||
|
<isset property="test.method"/>
|
||||||
|
</and>
|
||||||
|
</condition>
|
||||||
|
</target>
|
||||||
|
<target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
|
||||||
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
|
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
<attribute default="${includes}" name="includes"/>
|
<attribute default="${includes}" name="includes"/>
|
||||||
<attribute default="${excludes}" name="excludes"/>
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
<attribute default="**" name="testincludes"/>
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<element name="customize" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<property name="junit.forkmode" value="perTest"/>
|
||||||
|
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
|
||||||
|
<test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
|
||||||
|
<syspropertyset>
|
||||||
|
<propertyref prefix="test-sys-prop."/>
|
||||||
|
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||||
|
</syspropertyset>
|
||||||
|
<formatter type="brief" usefile="false"/>
|
||||||
|
<formatter type="xml"/>
|
||||||
|
<jvmarg value="-ea"/>
|
||||||
|
<customize/>
|
||||||
|
</junit>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
|
||||||
|
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<element name="customize" optional="true"/>
|
||||||
<sequential>
|
<sequential>
|
||||||
<property name="junit.forkmode" value="perTest"/>
|
<property name="junit.forkmode" value="perTest"/>
|
||||||
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
|
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
|
||||||
@ -370,32 +433,270 @@ is divided into following sections:
|
|||||||
<filename name="@{testincludes}"/>
|
<filename name="@{testincludes}"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
</batchtest>
|
</batchtest>
|
||||||
<classpath>
|
|
||||||
<path path="${run.test.classpath}"/>
|
|
||||||
</classpath>
|
|
||||||
<syspropertyset>
|
<syspropertyset>
|
||||||
<propertyref prefix="test-sys-prop."/>
|
<propertyref prefix="test-sys-prop."/>
|
||||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||||
</syspropertyset>
|
</syspropertyset>
|
||||||
<formatter type="brief" usefile="false"/>
|
<formatter type="brief" usefile="false"/>
|
||||||
<formatter type="xml"/>
|
<formatter type="xml"/>
|
||||||
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
|
|
||||||
<jvmarg value="-ea"/>
|
<jvmarg value="-ea"/>
|
||||||
<jvmarg line="${run.jvmargs}"/>
|
<customize/>
|
||||||
</junit>
|
</junit>
|
||||||
</sequential>
|
</sequential>
|
||||||
</macrodef>
|
</macrodef>
|
||||||
</target>
|
</target>
|
||||||
<target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" name="profile-init"/>
|
<target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
|
||||||
<target name="-profile-pre-init">
|
<target if="${testng.available}" name="-init-macrodef-testng">
|
||||||
|
<macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<element name="customize" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
|
||||||
|
<isset property="test.method"/>
|
||||||
|
</condition>
|
||||||
|
<union id="test.set">
|
||||||
|
<fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
|
||||||
|
<filename name="@{testincludes}"/>
|
||||||
|
</fileset>
|
||||||
|
</union>
|
||||||
|
<taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
|
||||||
|
<testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="EssentialsAntiBuild" testname="TestNG tests" workingDir="${work.dir}">
|
||||||
|
<xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
|
||||||
|
<propertyset>
|
||||||
|
<propertyref prefix="test-sys-prop."/>
|
||||||
|
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||||
|
</propertyset>
|
||||||
|
<customize/>
|
||||||
|
</testng>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target name="-init-macrodef-test-impl">
|
||||||
|
<macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<element implicit="true" name="customize" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<echo>No tests executed.</echo>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
|
||||||
|
<macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<element implicit="true" name="customize" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
|
||||||
|
<customize/>
|
||||||
|
</j2seproject3:junit>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
|
||||||
|
<macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<element implicit="true" name="customize" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
|
||||||
|
<customize/>
|
||||||
|
</j2seproject3:testng>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
|
||||||
|
<macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<sequential>
|
||||||
|
<j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
|
||||||
|
<customize>
|
||||||
|
<classpath>
|
||||||
|
<path path="${run.test.classpath}"/>
|
||||||
|
</classpath>
|
||||||
|
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||||
|
<jvmarg line="${run.jvmargs}"/>
|
||||||
|
<jvmarg line="${run.jvmargs.ide}"/>
|
||||||
|
</customize>
|
||||||
|
</j2seproject3:test-impl>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
|
||||||
|
<macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<element name="customize" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<property name="junit.forkmode" value="perTest"/>
|
||||||
|
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
|
||||||
|
<test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
|
||||||
|
<syspropertyset>
|
||||||
|
<propertyref prefix="test-sys-prop."/>
|
||||||
|
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||||
|
</syspropertyset>
|
||||||
|
<formatter type="brief" usefile="false"/>
|
||||||
|
<formatter type="xml"/>
|
||||||
|
<jvmarg value="-ea"/>
|
||||||
|
<jvmarg line="${debug-args-line}"/>
|
||||||
|
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
|
||||||
|
<customize/>
|
||||||
|
</junit>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
|
||||||
|
<macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<element name="customize" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<property name="junit.forkmode" value="perTest"/>
|
||||||
|
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
|
||||||
|
<batchtest todir="${build.test.results.dir}">
|
||||||
|
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
|
||||||
|
<filename name="@{testincludes}"/>
|
||||||
|
</fileset>
|
||||||
|
</batchtest>
|
||||||
|
<syspropertyset>
|
||||||
|
<propertyref prefix="test-sys-prop."/>
|
||||||
|
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||||
|
</syspropertyset>
|
||||||
|
<formatter type="brief" usefile="false"/>
|
||||||
|
<formatter type="xml"/>
|
||||||
|
<jvmarg value="-ea"/>
|
||||||
|
<jvmarg line="${debug-args-line}"/>
|
||||||
|
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
|
||||||
|
<customize/>
|
||||||
|
</junit>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
|
||||||
|
<macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<element implicit="true" name="customize" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
|
||||||
|
<customize/>
|
||||||
|
</j2seproject3:junit-debug>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target if="${testng.available}" name="-init-macrodef-testng-debug">
|
||||||
|
<macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${main.class}" name="testClass"/>
|
||||||
|
<attribute default="" name="testMethod"/>
|
||||||
|
<element name="customize2" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
|
||||||
|
<isset property="test.method"/>
|
||||||
|
</condition>
|
||||||
|
<condition else="-suitename EssentialsAntiBuild -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
|
||||||
|
<matches pattern=".*\.xml" string="@{testClass}"/>
|
||||||
|
</condition>
|
||||||
|
<delete dir="${build.test.results.dir}" quiet="true"/>
|
||||||
|
<mkdir dir="${build.test.results.dir}"/>
|
||||||
|
<j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}">
|
||||||
|
<customize>
|
||||||
|
<customize2/>
|
||||||
|
<jvmarg value="-ea"/>
|
||||||
|
<arg line="${testng.debug.mode}"/>
|
||||||
|
<arg line="-d ${build.test.results.dir}"/>
|
||||||
|
<arg line="-listener org.testng.reporters.VerboseReporter"/>
|
||||||
|
<arg line="${testng.cmd.args}"/>
|
||||||
|
</customize>
|
||||||
|
</j2seproject3:debug>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
|
||||||
|
<macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${main.class}" name="testClass"/>
|
||||||
|
<attribute default="" name="testMethod"/>
|
||||||
|
<element implicit="true" name="customize2" optional="true"/>
|
||||||
|
<sequential>
|
||||||
|
<j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
|
||||||
|
<customize2/>
|
||||||
|
</j2seproject3:testng-debug>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
|
||||||
|
<macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<attribute default="${main.class}" name="testClass"/>
|
||||||
|
<attribute default="" name="testMethod"/>
|
||||||
|
<sequential>
|
||||||
|
<j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
|
||||||
|
<customize>
|
||||||
|
<classpath>
|
||||||
|
<path path="${run.test.classpath}"/>
|
||||||
|
</classpath>
|
||||||
|
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||||
|
<jvmarg line="${run.jvmargs}"/>
|
||||||
|
<jvmarg line="${run.jvmargs.ide}"/>
|
||||||
|
</customize>
|
||||||
|
</j2seproject3:test-debug-impl>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
|
||||||
|
<macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||||
|
<attribute default="${includes}" name="includes"/>
|
||||||
|
<attribute default="${excludes}" name="excludes"/>
|
||||||
|
<attribute default="**" name="testincludes"/>
|
||||||
|
<attribute default="" name="testmethods"/>
|
||||||
|
<attribute default="${main.class}" name="testClass"/>
|
||||||
|
<attribute default="" name="testMethod"/>
|
||||||
|
<sequential>
|
||||||
|
<j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
|
||||||
|
<customize2>
|
||||||
|
<syspropertyset>
|
||||||
|
<propertyref prefix="test-sys-prop."/>
|
||||||
|
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||||
|
</syspropertyset>
|
||||||
|
</customize2>
|
||||||
|
</j2seproject3:testng-debug-impl>
|
||||||
|
</sequential>
|
||||||
|
</macrodef>
|
||||||
|
</target>
|
||||||
|
<target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
|
||||||
|
<!--
|
||||||
|
pre NB7.2 profiling section; consider it deprecated
|
||||||
|
-->
|
||||||
|
<target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
|
||||||
|
<target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
|
||||||
<!-- Empty placeholder for easier customization. -->
|
<!-- Empty placeholder for easier customization. -->
|
||||||
<!-- You can override this target in the ../build.xml file. -->
|
<!-- You can override this target in the ../build.xml file. -->
|
||||||
</target>
|
</target>
|
||||||
<target name="-profile-post-init">
|
<target if="profiler.info.jvmargs.agent" name="-profile-post-init">
|
||||||
<!-- Empty placeholder for easier customization. -->
|
<!-- Empty placeholder for easier customization. -->
|
||||||
<!-- You can override this target in the ../build.xml file. -->
|
<!-- You can override this target in the ../build.xml file. -->
|
||||||
</target>
|
</target>
|
||||||
<target name="-profile-init-macrodef-profile">
|
<target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile">
|
||||||
<macrodef name="resolve">
|
<macrodef name="resolve">
|
||||||
<attribute name="name"/>
|
<attribute name="name"/>
|
||||||
<attribute name="value"/>
|
<attribute name="value"/>
|
||||||
@ -427,10 +728,13 @@ is divided into following sections:
|
|||||||
</sequential>
|
</sequential>
|
||||||
</macrodef>
|
</macrodef>
|
||||||
</target>
|
</target>
|
||||||
<target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" name="-profile-init-check">
|
<target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check">
|
||||||
<fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
|
<fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
|
||||||
<fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
|
<fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
|
||||||
</target>
|
</target>
|
||||||
|
<!--
|
||||||
|
end of pre NB7.2 profiling section
|
||||||
|
-->
|
||||||
<target depends="-init-debug-args" name="-init-macrodef-nbjpda">
|
<target depends="-init-debug-args" name="-init-macrodef-nbjpda">
|
||||||
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
|
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||||
<attribute default="${main.class}" name="name"/>
|
<attribute default="${main.class}" name="name"/>
|
||||||
@ -488,6 +792,7 @@ is divided into following sections:
|
|||||||
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
|
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
|
||||||
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
|
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
|
||||||
<jvmarg line="${run.jvmargs}"/>
|
<jvmarg line="${run.jvmargs}"/>
|
||||||
|
<jvmarg line="${run.jvmargs.ide}"/>
|
||||||
<classpath>
|
<classpath>
|
||||||
<path path="@{classpath}"/>
|
<path path="@{classpath}"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
@ -504,6 +809,7 @@ is divided into following sections:
|
|||||||
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
|
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||||
<attribute default="${main.class}" name="classname"/>
|
<attribute default="${main.class}" name="classname"/>
|
||||||
<attribute default="${run.classpath}" name="classpath"/>
|
<attribute default="${run.classpath}" name="classpath"/>
|
||||||
|
<attribute default="jvm" name="jvm"/>
|
||||||
<element name="customize" optional="true"/>
|
<element name="customize" optional="true"/>
|
||||||
<sequential>
|
<sequential>
|
||||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||||
@ -511,6 +817,7 @@ is divided into following sections:
|
|||||||
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
|
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
|
||||||
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
|
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
|
||||||
<jvmarg line="${run.jvmargs}"/>
|
<jvmarg line="${run.jvmargs}"/>
|
||||||
|
<jvmarg line="${run.jvmargs.ide}"/>
|
||||||
<classpath>
|
<classpath>
|
||||||
<path path="@{classpath}"/>
|
<path path="@{classpath}"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
@ -537,6 +844,9 @@ is divided into following sections:
|
|||||||
<path path="${run.classpath.without.build.classes.dir}"/>
|
<path path="${run.classpath.without.build.classes.dir}"/>
|
||||||
<chainedmapper>
|
<chainedmapper>
|
||||||
<flattenmapper/>
|
<flattenmapper/>
|
||||||
|
<filtermapper>
|
||||||
|
<replacestring from=" " to="%20"/>
|
||||||
|
</filtermapper>
|
||||||
<globmapper from="*" to="lib/*"/>
|
<globmapper from="*" to="lib/*"/>
|
||||||
</chainedmapper>
|
</chainedmapper>
|
||||||
</pathconvert>
|
</pathconvert>
|
||||||
@ -582,7 +892,7 @@ is divided into following sections:
|
|||||||
<target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
|
<target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
|
||||||
<property name="ap.cmd.line.internal" value=""/>
|
<property name="ap.cmd.line.internal" value=""/>
|
||||||
</target>
|
</target>
|
||||||
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
|
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
|
||||||
<!--
|
<!--
|
||||||
===================
|
===================
|
||||||
COMPILATION SECTION
|
COMPILATION SECTION
|
||||||
@ -805,7 +1115,11 @@ is divided into following sections:
|
|||||||
PROFILING SECTION
|
PROFILING SECTION
|
||||||
=================
|
=================
|
||||||
-->
|
-->
|
||||||
<target depends="profile-init,compile" description="Profile a project in the IDE." if="netbeans.home" name="profile">
|
<!--
|
||||||
|
pre NB7.2 profiler integration
|
||||||
|
-->
|
||||||
|
<target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
|
||||||
|
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
|
||||||
<nbprofiledirect>
|
<nbprofiledirect>
|
||||||
<classpath>
|
<classpath>
|
||||||
<path path="${run.classpath}"/>
|
<path path="${run.classpath}"/>
|
||||||
@ -813,8 +1127,9 @@ is divided into following sections:
|
|||||||
</nbprofiledirect>
|
</nbprofiledirect>
|
||||||
<profile/>
|
<profile/>
|
||||||
</target>
|
</target>
|
||||||
<target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="netbeans.home" name="profile-single">
|
<target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72">
|
||||||
<fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
|
<fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
|
||||||
|
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
|
||||||
<nbprofiledirect>
|
<nbprofiledirect>
|
||||||
<classpath>
|
<classpath>
|
||||||
<path path="${run.classpath}"/>
|
<path path="${run.classpath}"/>
|
||||||
@ -822,12 +1137,8 @@ is divided into following sections:
|
|||||||
</nbprofiledirect>
|
</nbprofiledirect>
|
||||||
<profile classname="${profile.class}"/>
|
<profile classname="${profile.class}"/>
|
||||||
</target>
|
</target>
|
||||||
<!--
|
<target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72">
|
||||||
=========================
|
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
|
||||||
APPLET PROFILING SECTION
|
|
||||||
=========================
|
|
||||||
-->
|
|
||||||
<target depends="profile-init,compile-single" if="netbeans.home" name="profile-applet">
|
|
||||||
<nbprofiledirect>
|
<nbprofiledirect>
|
||||||
<classpath>
|
<classpath>
|
||||||
<path path="${run.classpath}"/>
|
<path path="${run.classpath}"/>
|
||||||
@ -839,12 +1150,8 @@ is divided into following sections:
|
|||||||
</customize>
|
</customize>
|
||||||
</profile>
|
</profile>
|
||||||
</target>
|
</target>
|
||||||
<!--
|
<target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
|
||||||
=========================
|
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
|
||||||
TESTS PROFILING SECTION
|
|
||||||
=========================
|
|
||||||
-->
|
|
||||||
<target depends="profile-init,compile-test-single" if="netbeans.home" name="profile-test-single">
|
|
||||||
<nbprofiledirect>
|
<nbprofiledirect>
|
||||||
<classpath>
|
<classpath>
|
||||||
<path path="${run.test.classpath}"/>
|
<path path="${run.test.classpath}"/>
|
||||||
@ -866,6 +1173,42 @@ is divided into following sections:
|
|||||||
<formatter type="xml"/>
|
<formatter type="xml"/>
|
||||||
</junit>
|
</junit>
|
||||||
</target>
|
</target>
|
||||||
|
<!--
|
||||||
|
end of pre NB72 profiling section
|
||||||
|
-->
|
||||||
|
<target if="netbeans.home" name="-profile-check">
|
||||||
|
<condition property="profiler.configured">
|
||||||
|
<or>
|
||||||
|
<contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
|
||||||
|
<contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
|
||||||
|
</or>
|
||||||
|
</condition>
|
||||||
|
</target>
|
||||||
|
<target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
|
||||||
|
<startprofiler/>
|
||||||
|
<antcall target="run"/>
|
||||||
|
</target>
|
||||||
|
<target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent">
|
||||||
|
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||||
|
<startprofiler/>
|
||||||
|
<antcall target="run-single"/>
|
||||||
|
</target>
|
||||||
|
<target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/>
|
||||||
|
<target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs">
|
||||||
|
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
|
||||||
|
<startprofiler/>
|
||||||
|
<antcall target="test-single"/>
|
||||||
|
</target>
|
||||||
|
<target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main">
|
||||||
|
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||||
|
<startprofiler/>
|
||||||
|
<antcal target="run-test-with-main"/>
|
||||||
|
</target>
|
||||||
|
<target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent">
|
||||||
|
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
|
||||||
|
<startprofiler/>
|
||||||
|
<antcall target="run-applet"/>
|
||||||
|
</target>
|
||||||
<!--
|
<!--
|
||||||
===============
|
===============
|
||||||
JAVADOC SECTION
|
JAVADOC SECTION
|
||||||
@ -909,7 +1252,7 @@ is divided into following sections:
|
|||||||
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
|
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
|
||||||
<!--
|
<!--
|
||||||
=========================
|
=========================
|
||||||
JUNIT COMPILATION SECTION
|
TEST COMPILATION SECTION
|
||||||
=========================
|
=========================
|
||||||
-->
|
-->
|
||||||
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
|
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
|
||||||
@ -952,14 +1295,14 @@ is divided into following sections:
|
|||||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
|
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
|
||||||
<!--
|
<!--
|
||||||
=======================
|
=======================
|
||||||
JUNIT EXECUTION SECTION
|
TEST EXECUTION SECTION
|
||||||
=======================
|
=======================
|
||||||
-->
|
-->
|
||||||
<target depends="init" if="have.tests" name="-pre-test-run">
|
<target depends="init" if="have.tests" name="-pre-test-run">
|
||||||
<mkdir dir="${build.test.results.dir}"/>
|
<mkdir dir="${build.test.results.dir}"/>
|
||||||
</target>
|
</target>
|
||||||
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
|
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
|
||||||
<j2seproject3:junit testincludes="**/*Test.java"/>
|
<j2seproject3:test testincludes="**/*Test.java"/>
|
||||||
</target>
|
</target>
|
||||||
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
|
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
|
||||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||||
@ -972,39 +1315,40 @@ is divided into following sections:
|
|||||||
</target>
|
</target>
|
||||||
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
|
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
|
||||||
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
|
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
|
||||||
<j2seproject3:junit excludes="" includes="${test.includes}"/>
|
<j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
|
||||||
</target>
|
</target>
|
||||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
|
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
|
||||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||||
</target>
|
</target>
|
||||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
|
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
|
||||||
|
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
|
||||||
|
<fail unless="test.class">Must select some files in the IDE or set test.class</fail>
|
||||||
|
<fail unless="test.method">Must select some method in the IDE or set test.method</fail>
|
||||||
|
<j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
|
||||||
|
</target>
|
||||||
|
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
|
||||||
|
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||||
|
</target>
|
||||||
|
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/>
|
||||||
<!--
|
<!--
|
||||||
=======================
|
=======================
|
||||||
JUNIT DEBUGGING SECTION
|
TEST DEBUGGING SECTION
|
||||||
=======================
|
=======================
|
||||||
-->
|
-->
|
||||||
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
|
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
|
||||||
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
|
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
|
||||||
<property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
|
<j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
|
||||||
<delete file="${test.report.file}"/>
|
</target>
|
||||||
<mkdir dir="${build.test.results.dir}"/>
|
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
|
||||||
<j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
|
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
|
||||||
<customize>
|
<fail unless="test.method">Must select some method in the IDE or set test.method</fail>
|
||||||
<syspropertyset>
|
<j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
|
||||||
<propertyref prefix="test-sys-prop."/>
|
|
||||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
|
||||||
</syspropertyset>
|
|
||||||
<arg value="${test.class}"/>
|
|
||||||
<arg value="showoutput=true"/>
|
|
||||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
|
|
||||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
|
|
||||||
</customize>
|
|
||||||
</j2seproject3:debug>
|
|
||||||
</target>
|
</target>
|
||||||
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
|
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
|
||||||
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
|
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
|
||||||
</target>
|
</target>
|
||||||
<target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
|
<target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
|
||||||
|
<target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
|
||||||
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
|
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
|
||||||
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
|
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
|
||||||
</target>
|
</target>
|
||||||
@ -1076,9 +1420,12 @@ is divided into following sections:
|
|||||||
<target name="-check-call-dep">
|
<target name="-check-call-dep">
|
||||||
<property file="${call.built.properties}" prefix="already.built."/>
|
<property file="${call.built.properties}" prefix="already.built."/>
|
||||||
<condition property="should.call.dep">
|
<condition property="should.call.dep">
|
||||||
<not>
|
<and>
|
||||||
<isset property="already.built.${call.subproject}"/>
|
<not>
|
||||||
</not>
|
<isset property="already.built.${call.subproject}"/>
|
||||||
|
</not>
|
||||||
|
<available file="${call.script}"/>
|
||||||
|
</and>
|
||||||
</condition>
|
</condition>
|
||||||
</target>
|
</target>
|
||||||
<target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
|
<target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
|
||||||
|
@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=28e38971@1.38.3.45
|
|||||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||||
nbproject/build-impl.xml.data.CRC32=ddb4519c
|
nbproject/build-impl.xml.data.CRC32=ddb4519c
|
||||||
nbproject/build-impl.xml.script.CRC32=cfb9443d
|
nbproject/build-impl.xml.script.CRC32=00e1454b
|
||||||
nbproject/build-impl.xml.stylesheet.CRC32=fcddb364@1.50.3.46
|
nbproject/build-impl.xml.stylesheet.CRC32=6ddba6b6@1.53.1.46
|
||||||
|
@ -36,6 +36,10 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
{
|
{
|
||||||
if (block == null)
|
if (block == null)
|
||||||
{
|
{
|
||||||
|
if (ess.getSettings().isDebug())
|
||||||
|
{
|
||||||
|
ess.getLogger().log(Level.INFO, "AntiBuild permission check failed, invalid block.");
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return metaPermCheck(user, action, block.getTypeId(), block.getData());
|
return metaPermCheck(user, action, block.getTypeId(), block.getData());
|
||||||
|
BIN
lib/bukkit.jar
BIN
lib/bukkit.jar
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user