mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2024-07-14 00:15:06 +00:00
Merge remote-tracking branch 'remotes/origin/2.9' into groupmanager
This commit is contained in:
commit
cd0fde05b7
|
@ -269,11 +269,11 @@ public final class DescParseTickFormat
|
|||
|
||||
// How many ingame days have passed since the server start?
|
||||
final long days = ticks / ticksPerDay;
|
||||
ticks = ticks - days * ticksPerDay;
|
||||
ticks -= days * ticksPerDay;
|
||||
|
||||
// How many hours on the last day?
|
||||
final long hours = ticks / ticksPerHour;
|
||||
ticks = ticks - hours * ticksPerHour;
|
||||
ticks -= hours * ticksPerHour;
|
||||
|
||||
// How many minutes on the last day?
|
||||
final long minutes = (long)Math.floor(ticks / ticksPerMinute);
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.logging.Logger;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Ageable;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
|
@ -46,7 +47,7 @@ public class EssentialsEntityListener implements Listener
|
|||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
|
||||
if (attacker.isGodModeEnabled() && !attacker.isAuthorized("essentials.god.pvp"))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
|
@ -161,4 +162,16 @@ public class EssentialsEntityListener implements Listener
|
|||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onPotionSplashEvent(final PotionSplashEvent event)
|
||||
{
|
||||
for (LivingEntity entity : event.getAffectedEntities())
|
||||
{
|
||||
if (entity instanceof Player && ess.getUser(entity).isGodModeEnabled())
|
||||
{
|
||||
event.setIntensity(entity, 0d);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -347,7 +347,7 @@ public class EssentialsPlayerListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerChangedWorldHack(final PlayerChangedWorldEvent event)
|
||||
{
|
||||
final Player user = event.getPlayer();
|
||||
|
@ -496,7 +496,7 @@ public class EssentialsPlayerListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
public void onInventoryClickEvent(final InventoryClickEvent event)
|
||||
{
|
||||
if (event.getView().getTopInventory().getType() == InventoryType.PLAYER)
|
||||
|
|
|
@ -143,7 +143,7 @@ public class I18n implements II18n
|
|||
{
|
||||
private final transient File dataFolder;
|
||||
|
||||
public FileResClassLoader(final ClassLoader classLoader, final IEssentials ess)
|
||||
FileResClassLoader(final ClassLoader classLoader, final IEssentials ess)
|
||||
{
|
||||
super(classLoader);
|
||||
this.dataFolder = ess.getDataFolder();
|
||||
|
|
|
@ -92,10 +92,6 @@ public interface ISettings extends IConf
|
|||
|
||||
boolean isCommandOverridden(String name);
|
||||
|
||||
boolean isCommandRestricted(IEssentialsCommand cmd);
|
||||
|
||||
boolean isCommandRestricted(String label);
|
||||
|
||||
boolean isDebug();
|
||||
|
||||
boolean isEcoDisabled();
|
||||
|
|
|
@ -146,26 +146,6 @@ public class Settings implements ISettings
|
|||
return disCommands;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCommandRestricted(IEssentialsCommand cmd)
|
||||
{
|
||||
return isCommandRestricted(cmd.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCommandRestricted(String label)
|
||||
{
|
||||
for (String c : config.getStringList("restricted-commands"))
|
||||
{
|
||||
if (!c.equalsIgnoreCase(label))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return config.getBoolean("restrict-" + label.toLowerCase(Locale.ENGLISH), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlayerCommand(String label)
|
||||
{
|
||||
|
@ -387,6 +367,7 @@ public class Settings implements ISettings
|
|||
format = format.replace("{WORLDNAME}", "{1}");
|
||||
format = format.replace("{SHORTWORLDNAME}", "{2}");
|
||||
format = format.replaceAll("\\{(\\D*?)\\}", "\\[$1\\]");
|
||||
format = "§r".concat(format);
|
||||
mFormat = new MessageFormat(format);
|
||||
chatFormats.put(group, mFormat);
|
||||
}
|
||||
|
|
|
@ -21,13 +21,13 @@ public class Teleport implements Runnable, ITeleport
|
|||
private final Location location;
|
||||
private final String name;
|
||||
|
||||
public Target(Location location)
|
||||
Target(Location location)
|
||||
{
|
||||
this.location = location;
|
||||
this.name = null;
|
||||
}
|
||||
|
||||
public Target(Player entity)
|
||||
Target(Player entity)
|
||||
{
|
||||
this.name = entity.getName();
|
||||
this.location = null;
|
||||
|
@ -37,13 +37,14 @@ public class Teleport implements Runnable, ITeleport
|
|||
{
|
||||
if (this.name != null)
|
||||
{
|
||||
|
||||
|
||||
return ess.getServer().getPlayerExact(name).getLocation();
|
||||
}
|
||||
return location;
|
||||
}
|
||||
}
|
||||
private IUser user;
|
||||
private IUser teleportUser;
|
||||
private int teleTimer = -1;
|
||||
private long started; // time this task was initiated
|
||||
private long delay; // how long to delay the teleport
|
||||
|
@ -61,13 +62,19 @@ public class Teleport implements Runnable, ITeleport
|
|||
private 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.delay = delay;
|
||||
this.health = user.getHealth();
|
||||
this.initX = Math.round(user.getLocation().getX() * MOVE_CONSTANT);
|
||||
this.initY = Math.round(user.getLocation().getY() * MOVE_CONSTANT);
|
||||
this.initZ = Math.round(user.getLocation().getZ() * MOVE_CONSTANT);
|
||||
this.health = teleportUser.getHealth();
|
||||
this.initX = Math.round(teleportUser.getLocation().getX() * MOVE_CONSTANT);
|
||||
this.initY = Math.round(teleportUser.getLocation().getY() * MOVE_CONSTANT);
|
||||
this.initZ = Math.round(teleportUser.getLocation().getZ() * MOVE_CONSTANT);
|
||||
this.teleportUser = teleportUser;
|
||||
this.teleportTarget = target;
|
||||
this.chargeFor = chargeFor;
|
||||
this.cause = cause;
|
||||
|
@ -79,31 +86,38 @@ public class Teleport implements Runnable, ITeleport
|
|||
|
||||
if (user == null || !user.isOnline() || user.getLocation() == null)
|
||||
{
|
||||
cancel();
|
||||
cancel(false);
|
||||
return;
|
||||
}
|
||||
if (Math.round(user.getLocation().getX() * MOVE_CONSTANT) != initX
|
||||
|| Math.round(user.getLocation().getY() * MOVE_CONSTANT) != initY
|
||||
|| Math.round(user.getLocation().getZ() * MOVE_CONSTANT) != initZ
|
||||
|| user.getHealth() < health)
|
||||
{ // user moved, cancel teleport
|
||||
if (teleportUser == null || !teleportUser.isOnline() || teleportUser.getLocation() == null)
|
||||
{
|
||||
cancel(false);
|
||||
return;
|
||||
}
|
||||
|
||||
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);
|
||||
return;
|
||||
}
|
||||
|
||||
health = user.getHealth(); // in case user healed, then later gets injured
|
||||
|
||||
health = teleportUser.getHealth(); // in case user healed, then later gets injured
|
||||
long now = System.currentTimeMillis();
|
||||
if (now > started + delay)
|
||||
{
|
||||
try
|
||||
{
|
||||
cooldown(false);
|
||||
user.sendMessage(_("teleportationCommencing"));
|
||||
teleportUser.sendMessage(_("teleportationCommencing"));
|
||||
try
|
||||
{
|
||||
|
||||
now(teleportTarget, cause);
|
||||
teleportUser.getTeleport().now(teleportTarget, cause);
|
||||
cancel(false);
|
||||
if (chargeFor != null)
|
||||
{
|
||||
chargeFor.charge(user);
|
||||
|
@ -117,6 +131,10 @@ public class Teleport implements Runnable, ITeleport
|
|||
catch (Exception ex)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (teleTimer == -1)
|
||||
|
@ -193,6 +196,10 @@ public class Teleport implements Runnable, ITeleport
|
|||
if (notifyUser)
|
||||
{
|
||||
user.sendMessage(_("pendingTeleportCancelled"));
|
||||
if (teleportUser != user)
|
||||
{
|
||||
teleportUser.sendMessage(_("pendingTeleportCancelled"));
|
||||
}
|
||||
}
|
||||
}
|
||||
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);
|
||||
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
|
||||
{
|
||||
teleport(new Target(loc), chargeFor, TeleportCause.PLUGIN);
|
||||
teleport(loc, chargeFor, TeleportCause.PLUGIN);
|
||||
}
|
||||
|
||||
|
||||
public void teleport(Location loc, Trade chargeFor, TeleportCause cause) throws Exception
|
||||
{
|
||||
teleport(new Target(loc), chargeFor, cause);
|
||||
|
@ -241,58 +272,82 @@ public class Teleport implements Runnable, ITeleport
|
|||
return;
|
||||
}
|
||||
|
||||
cancel();
|
||||
Calendar c = new GregorianCalendar();
|
||||
c.add(Calendar.SECOND, (int)delay);
|
||||
c.add(Calendar.MILLISECOND, (int)((delay * 1000.0) % 1000.0));
|
||||
user.sendMessage(_("dontMoveMessage", Util.formatDateDiff(c.getTimeInMillis())));
|
||||
cancel(false);
|
||||
warnUser(user);
|
||||
initTimer((long)(delay * 1000.0), target, chargeFor, cause);
|
||||
|
||||
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();
|
||||
user.setLastLocation();
|
||||
user.getBase().teleport(Util.getSafeDestination(target.getLocation()), cause);
|
||||
}
|
||||
Target target = new Target(user);
|
||||
|
||||
public void now(Location loc, boolean cooldown, TeleportCause cause) throws Exception
|
||||
{
|
||||
if (cooldown)
|
||||
double delay = ess.getSettings().getTeleportDelay();
|
||||
|
||||
if (chargeFor != null)
|
||||
{
|
||||
chargeFor.isAffordableFor(user);
|
||||
}
|
||||
cooldown(true);
|
||||
if (delay <= 0 || user.isAuthorized("essentials.teleport.timer.bypass"))
|
||||
{
|
||||
cooldown(false);
|
||||
otherUser.getTeleport().now(target, cause);
|
||||
if (chargeFor != null)
|
||||
{
|
||||
chargeFor.charge(user);
|
||||
}
|
||||
return;
|
||||
}
|
||||
now(new Target(loc), cause);
|
||||
|
||||
cancel(false);
|
||||
warnUser(otherUser);
|
||||
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)
|
||||
{
|
||||
cooldown(false);
|
||||
chargeFor.charge(user);
|
||||
now(new Target(loc), cause);
|
||||
Calendar c = new GregorianCalendar();
|
||||
c.add(Calendar.SECOND, (int)delay);
|
||||
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)
|
||||
{
|
||||
cooldown(false);
|
||||
}
|
||||
now(new Target(entity), cause);
|
||||
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);
|
||||
}
|
||||
|
||||
//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);
|
||||
teleport(new Target(loc), chargeFor, cause);
|
||||
user.sendMessage(_("warpingTo", warp));
|
||||
}
|
||||
|
||||
//The back function is a wrapper used to teleport a player /back to their previous location.
|
||||
public void back(Trade chargeFor) throws Exception
|
||||
{
|
||||
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
|
||||
{
|
||||
now(new Target(user.getLastLocation()), TeleportCause.COMMAND);
|
||||
}
|
||||
|
||||
//This function handles teleporting to /home
|
||||
public void home(Location loc, Trade chargeFor) throws Exception
|
||||
{
|
||||
teleport(new Target(loc), chargeFor, TeleportCause.COMMAND);
|
||||
|
|
|
@ -63,20 +63,22 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
|||
@Override
|
||||
public boolean isAuthorized(final String node)
|
||||
{
|
||||
final boolean result = isAuthorizedCheck(node);
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
ess.getLogger().log(Level.INFO, "checking if " + base.getName() + " has " + node);
|
||||
ess.getLogger().log(Level.INFO, "checking if " + base.getName() + " has " + node + " - " + result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean isAuthorizedCheck(final String node)
|
||||
{
|
||||
|
||||
if (base instanceof OfflinePlayer)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isOp())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (isJailed())
|
||||
{
|
||||
return false;
|
||||
|
|
|
@ -28,8 +28,9 @@ public abstract class UserData extends PlayerExtension implements IConf
|
|||
config = new EssentialsConf(new File(folder, Util.sanitizeFileName(base.getName()) + ".yml"));
|
||||
reloadConfig();
|
||||
}
|
||||
|
||||
public final void reset () {
|
||||
|
||||
public final void reset()
|
||||
{
|
||||
config.getFile().delete();
|
||||
config = new EssentialsConf(new File(folder, Util.sanitizeFileName(base.getName()) + ".yml"));
|
||||
reloadConfig();
|
||||
|
@ -108,26 +109,25 @@ public abstract class UserData extends PlayerExtension implements IConf
|
|||
return new HashMap<String, Object>();
|
||||
}
|
||||
|
||||
public Location getHome(String name) throws Exception
|
||||
private String getHomeName(String search)
|
||||
{
|
||||
Location loc = config.getLocation("homes." + name, getServer());
|
||||
if (loc == null)
|
||||
if (Util.isInt(search))
|
||||
{
|
||||
try
|
||||
{
|
||||
loc = config.getLocation("homes." + getHomes().get(Integer.parseInt(name) - 1), getServer());
|
||||
search = getHomes().get(Integer.parseInt(search) - 1);
|
||||
}
|
||||
catch (IndexOutOfBoundsException e)
|
||||
catch (Exception e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return loc;
|
||||
return search;
|
||||
}
|
||||
|
||||
public Location getHome(String name) throws Exception
|
||||
{
|
||||
String search = getHomeName(name);
|
||||
return config.getLocation("homes." + search, getServer());
|
||||
}
|
||||
|
||||
public Location getHome(final Location world)
|
||||
|
@ -169,20 +169,20 @@ public abstract class UserData extends PlayerExtension implements IConf
|
|||
|
||||
public void delHome(String name) throws Exception
|
||||
{
|
||||
String search = name;
|
||||
String search = getHomeName(name);
|
||||
if (!homes.containsKey(search))
|
||||
{
|
||||
search = Util.sanitizeFileName(name);
|
||||
search = Util.sanitizeFileName(search);
|
||||
}
|
||||
if (homes.containsKey(search))
|
||||
{
|
||||
homes.remove(name);
|
||||
config.removeProperty("homes." + name);
|
||||
homes.remove(search);
|
||||
config.removeProperty("homes." + search);
|
||||
config.save();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception(_("invalidHome", name));
|
||||
throw new Exception(_("invalidHome", search));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,10 +23,13 @@ public class Util
|
|||
private final static Logger logger = Logger.getLogger("Minecraft");
|
||||
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 BADFILENAMES = Pattern.compile("^(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(\\.(.+))?$", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.COMMENTS);
|
||||
|
||||
public static String sanitizeFileName(final String name)
|
||||
{
|
||||
final String newName = INVALIDFILECHARS.matcher(name.toLowerCase(Locale.ENGLISH)).replaceAll("_");
|
||||
String newName = INVALIDFILECHARS.matcher(name.toLowerCase(Locale.ENGLISH)).replaceAll("_");
|
||||
if(BADFILENAMES.matcher(newName).matches())
|
||||
newName = "_" + newName;
|
||||
return newName;
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ public class Commandban extends EssentialsCommand
|
|||
}
|
||||
else
|
||||
{
|
||||
if (user.isAuthorized("essentials.ban.exempt"))
|
||||
if (user.isAuthorized("essentials.ban.exempt") && sender instanceof Player)
|
||||
{
|
||||
sender.sendMessage(_("banExempt"));
|
||||
return;
|
||||
|
|
|
@ -53,10 +53,7 @@ public class Commandgc extends EssentialsCommand
|
|||
break;
|
||||
}
|
||||
|
||||
sender.sendMessage(
|
||||
"\u00a76" + worldType + " \"" + w.getName() + "\": "
|
||||
+ w.getLoadedChunks().length + _("gcchunks")
|
||||
+ w.getEntities().size() + _("gcentities"));
|
||||
sender.sendMessage(_("gcWorld", worldType, w.getName(), w.getLoadedChunks().length, w.getEntities().size()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,6 +6,8 @@ import java.util.List;
|
|||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
|
||||
public class Commandheal extends EssentialsCommand
|
||||
|
@ -33,9 +35,7 @@ public class Commandheal extends EssentialsCommand
|
|||
{
|
||||
user.healCooldown();
|
||||
}
|
||||
user.setHealth(20);
|
||||
user.setFoodLevel(20);
|
||||
user.sendMessage(_("heal"));
|
||||
healPlayer(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -63,10 +63,19 @@ public class Commandheal extends EssentialsCommand
|
|||
{
|
||||
continue;
|
||||
}
|
||||
p.setHealth(20);
|
||||
p.setFoodLevel(20);
|
||||
p.sendMessage(_("heal"));
|
||||
healPlayer(p);
|
||||
sender.sendMessage(_("healOther", p.getDisplayName()));
|
||||
}
|
||||
}
|
||||
|
||||
private void healPlayer(final Player p)
|
||||
{
|
||||
p.setHealth(20);
|
||||
p.setFoodLevel(20);
|
||||
p.sendMessage(_("heal"));
|
||||
for (PotionEffect effect : p.getActivePotionEffects())
|
||||
{
|
||||
p.removePotionEffect(effect.getType());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,9 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
|
||||
|
@ -55,9 +57,10 @@ public class Commandsethome extends EssentialsCommand
|
|||
{
|
||||
name = "home";
|
||||
}
|
||||
if ("bed".equals(name))
|
||||
if ("bed".equals(name) || Util.isInt(name))
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
user.sendMessage(_("invalidHomeName"));
|
||||
throw new NoChargeException();
|
||||
}
|
||||
usersHome.setHome(name, location);
|
||||
user.sendMessage(_("homeSet", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ()));
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.logging.Logger;
|
|||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class Commandsudo extends EssentialsCommand
|
||||
|
@ -26,6 +27,15 @@ public class Commandsudo extends EssentialsCommand
|
|||
}
|
||||
|
||||
final User user = getPlayer(server, args, 0, false);
|
||||
if(args[1].equalsIgnoreCase("say"))
|
||||
{
|
||||
if (user.isAuthorized("essentials.sudo.exempt"))
|
||||
{
|
||||
throw new Exception(_("sudoExempt"));
|
||||
}
|
||||
user.chat(getFinalArg(args, 2));
|
||||
return;
|
||||
}
|
||||
final String command = args[1];
|
||||
final String[] arguments = new String[args.length - 2];
|
||||
if (arguments.length > 0)
|
||||
|
@ -33,7 +43,7 @@ public class Commandsudo extends EssentialsCommand
|
|||
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"));
|
||||
}
|
||||
|
|
|
@ -65,12 +65,13 @@ public class Commandtpaccept extends EssentialsCommand
|
|||
|
||||
if (user.isTpRequestHere())
|
||||
{
|
||||
user.getTeleport().teleport(target, charge, TeleportCause.COMMAND);
|
||||
target.getTeleport().teleportToMe(user, charge, TeleportCause.COMMAND);
|
||||
}
|
||||
else
|
||||
{
|
||||
target.getTeleport().teleport(user, charge, TeleportCause.COMMAND);
|
||||
}
|
||||
user.requestTeleport(null, false);
|
||||
throw new NoChargeException();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ public class Commandtphere extends EssentialsCommand
|
|||
{
|
||||
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"));
|
||||
player.sendMessage(_("teleporting"));
|
||||
throw new NoChargeException();
|
||||
|
|
|
@ -223,7 +223,7 @@ public class Metrics
|
|||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage());
|
||||
Bukkit.getLogger().log(Level.FINE, "[Metrics] " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}, 0, PING_INTERVAL * 1200);
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import java.util.List;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
||||
public class ConfigPermissionsHandler implements IPermissionsHandler
|
||||
public class ConfigPermissionsHandler extends SuperpermsHandler
|
||||
{
|
||||
private final transient IEssentials ess;
|
||||
|
||||
|
@ -15,47 +14,17 @@ public class ConfigPermissionsHandler implements IPermissionsHandler
|
|||
this.ess = (IEssentials)ess;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGroup(final Player base)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getGroups(final Player base)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBuild(final Player base, final String group)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(final Player base, final String group)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(final Player base, final String node)
|
||||
{
|
||||
final String[] cmds = node.split("\\.", 2);
|
||||
return !ess.getSettings().isCommandRestricted(cmds[cmds.length - 1])
|
||||
&& ess.getSettings().isPlayerCommand(cmds[cmds.length - 1]);
|
||||
return ess.getSettings().isPlayerCommand(cmds[cmds.length - 1]) || super.hasPermission(base, node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPrefix(final Player base)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSuffix(final Player base)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import ru.tehkode.permissions.PermissionUser;
|
|||
import ru.tehkode.permissions.bukkit.PermissionsEx;
|
||||
|
||||
|
||||
public class PermissionsExHandler implements IPermissionsHandler
|
||||
public class PermissionsExHandler extends SuperpermsHandler
|
||||
{
|
||||
private final transient PermissionManager manager;
|
||||
|
||||
|
@ -66,7 +66,7 @@ public class PermissionsExHandler implements IPermissionsHandler
|
|||
@Override
|
||||
public boolean hasPermission(final Player base, final String node)
|
||||
{
|
||||
return manager.has(base.getName(), node, base.getWorld().getName());
|
||||
return super.hasPermission(base, node);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -200,7 +200,8 @@ public class PermissionsHandler implements IPermissionsHandler
|
|||
{
|
||||
if (!(handler instanceof ConfigPermissionsHandler))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using config based permissions. Enable superperms in config.");
|
||||
LOGGER.log(Level.INFO, "Essentials: Using config file enhanced permissions.");
|
||||
LOGGER.log(Level.INFO, "Permissions listed in as player-commands will be given to all users.");
|
||||
handler = new ConfigPermissionsHandler(plugin);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,25 +31,26 @@ public class SuperpermsHandler implements IPermissionsHandler
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(final Player base, final String node)
|
||||
public boolean hasPermission(final Player base, String node)
|
||||
{
|
||||
if (base.hasPermission("-" + node))
|
||||
String permCheck = node;
|
||||
int index;
|
||||
while (true)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
final String[] parts = node.split("\\.");
|
||||
final StringBuilder builder = new StringBuilder(node.length());
|
||||
for (String part : parts)
|
||||
{
|
||||
builder.append('*');
|
||||
if (base.hasPermission(builder.toString()))
|
||||
if (base.isPermissionSet(permCheck))
|
||||
{
|
||||
return true;
|
||||
return base.hasPermission(permCheck);
|
||||
}
|
||||
builder.deleteCharAt(builder.length() - 1);
|
||||
builder.append(part).append('.');
|
||||
|
||||
index = node.lastIndexOf('.');
|
||||
if (index < 1)
|
||||
{
|
||||
return base.hasPermission("*");
|
||||
}
|
||||
|
||||
node = node.substring(0, index);
|
||||
permCheck = node + ".*";
|
||||
}
|
||||
return base.hasPermission(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -438,11 +438,13 @@ public class EssentialsSign
|
|||
{
|
||||
private final transient SignChangeEvent event;
|
||||
private final transient Block block;
|
||||
private final transient Sign sign;
|
||||
|
||||
public EventSign(final SignChangeEvent event)
|
||||
EventSign(final SignChangeEvent event)
|
||||
{
|
||||
this.event = event;
|
||||
this.block = event.getBlock();
|
||||
this.sign = (Sign)block.getState();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -455,6 +457,8 @@ public class EssentialsSign
|
|||
public final void setLine(final int index, final String text)
|
||||
{
|
||||
event.setLine(index, text);
|
||||
sign.setLine(index, text);
|
||||
updateSign();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -466,6 +470,7 @@ public class EssentialsSign
|
|||
@Override
|
||||
public void updateSign()
|
||||
{
|
||||
sign.update();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -475,7 +480,7 @@ public class EssentialsSign
|
|||
private final transient Sign sign;
|
||||
private final transient Block block;
|
||||
|
||||
public BlockSign(final Block block)
|
||||
BlockSign(final Block block)
|
||||
{
|
||||
this.block = block;
|
||||
this.sign = (Sign)block.getState();
|
||||
|
|
|
@ -88,6 +88,16 @@ public class SignBlockListener implements Listener
|
|||
{
|
||||
event.setLine(i, Util.formatString(user, "essentials.signs", event.getLine(i)));
|
||||
}
|
||||
|
||||
final String topLine = event.getLine(0);
|
||||
for (Signs signs : Signs.values())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (topLine.equalsIgnoreCase(sign.getSuccessName()))
|
||||
{
|
||||
event.setLine(0, Util.stripFormat(topLine));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
|
@ -98,9 +108,8 @@ public class SignBlockListener implements Listener
|
|||
return;
|
||||
}
|
||||
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (event.getLine(0).equalsIgnoreCase(sign.getSuccessName()))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
|
@ -137,9 +146,8 @@ public class SignBlockListener implements Listener
|
|||
{
|
||||
return;
|
||||
}
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockPlace(block, event.getPlayer(), ess))
|
||||
{
|
||||
|
|
|
@ -21,11 +21,13 @@ public class SignEnchant extends EssentialsSign
|
|||
final String[] enchantLevel = sign.getLine(2).split(":");
|
||||
if (enchantLevel.length != 2)
|
||||
{
|
||||
sign.setLine(2, "§c<enchant>");
|
||||
throw new SignException(_("invalidSignLine", 3));
|
||||
}
|
||||
final Enchantment enchantment = Enchantments.getByName(enchantLevel[0]);
|
||||
if (enchantment == null)
|
||||
{
|
||||
sign.setLine(2, "§c<enchant>");
|
||||
throw new SignException(_("enchantmentNotFound"));
|
||||
}
|
||||
int level;
|
||||
|
@ -35,6 +37,7 @@ public class SignEnchant extends EssentialsSign
|
|||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
sign.setLine(2, "§c<enchant>");
|
||||
throw new SignException(ex.getMessage(), ex);
|
||||
}
|
||||
if (level < 1 || level > enchantment.getMaxLevel())
|
||||
|
|
|
@ -19,7 +19,14 @@ public class SignFree extends EssentialsSign
|
|||
@Override
|
||||
protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException
|
||||
{
|
||||
getItemStack(sign.getLine(1), 1, ess);
|
||||
try {
|
||||
getItemStack(sign.getLine(1), 1, ess);
|
||||
}
|
||||
catch (SignException ex)
|
||||
{
|
||||
sign.setLine(1, "§c<item>");
|
||||
throw new SignException(ex.getMessage(), ex);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ public class SignKit extends EssentialsSign
|
|||
final String kitName = sign.getLine(1).toLowerCase(Locale.ENGLISH).trim();
|
||||
final String group = sign.getLine(2);
|
||||
if ((!group.isEmpty() && ("§2Everyone".equals(group) || player.inGroup(group)))
|
||||
|| (group.isEmpty() && (player.isAuthorized("essentials.kit." + kitName))))
|
||||
|| (group.isEmpty() && (player.isAuthorized("essentials.kits." + kitName))))
|
||||
{
|
||||
final Trade charge = getTrade(sign, 3, ess);
|
||||
charge.isAffordableFor(player);
|
||||
|
|
|
@ -25,6 +25,7 @@ public class SignRepair extends EssentialsSign
|
|||
}
|
||||
else if (!repairTarget.equalsIgnoreCase("all") && !repairTarget.equalsIgnoreCase("hand") )
|
||||
{
|
||||
sign.setLine(1, "§c<hand|all>");
|
||||
throw new SignException(_("invalidSignLine", 2));
|
||||
}
|
||||
validateTrade(sign, 2, ess);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.earth2me.essentials.signs;
|
||||
|
||||
import com.earth2me.essentials.ChargeException;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.User;
|
||||
|
@ -22,8 +23,8 @@ public class SignWarp extends EssentialsSign
|
|||
|
||||
if (warpName.isEmpty())
|
||||
{
|
||||
sign.setLine(1, "§dWarp name!");
|
||||
return false;
|
||||
sign.setLine(1, "§c<Warp name>");
|
||||
throw new SignException(_("invalidSignLine", 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -52,7 +53,7 @@ public class SignWarp extends EssentialsSign
|
|||
if ((!group.isEmpty()
|
||||
&& ("§2Everyone".equals(group)
|
||||
|| player.inGroup(group)))
|
||||
|| (group.isEmpty() && (!ess.getSettings().getPerWarpPermission() || player.isAuthorized("essentials.warp." + warpName))))
|
||||
|| (group.isEmpty() && (!ess.getSettings().getPerWarpPermission() || player.isAuthorized("essentials.warps." + warpName))))
|
||||
{
|
||||
final Trade charge = getTrade(sign, 3, ess);
|
||||
try
|
||||
|
|
|
@ -29,6 +29,7 @@ public class SignWeather extends EssentialsSign
|
|||
sign.setLine(1, "§2Storm");
|
||||
return true;
|
||||
}
|
||||
sign.setLine(1, "§c<sun|storm>");
|
||||
throw new SignException(_("onlySunStorm"));
|
||||
}
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ public abstract class AsyncStorageObjectHolder<T extends StorageObject> implemen
|
|||
|
||||
private class StorageObjectDataWriter extends AbstractDelayedYamlFileWriter
|
||||
{
|
||||
public StorageObjectDataWriter()
|
||||
StorageObjectDataWriter()
|
||||
{
|
||||
super(ess, getStorageFile());
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ public abstract class AsyncStorageObjectHolder<T extends StorageObject> implemen
|
|||
|
||||
private class StorageObjectDataReader extends AbstractDelayedYamlFileReader<T>
|
||||
{
|
||||
public StorageObjectDataReader()
|
||||
StorageObjectDataReader()
|
||||
{
|
||||
super(ess, getStorageFile(), clazz);
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
package com.earth2me.essentials.textreader;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
public class SimpleTextInput implements IText
|
||||
|
@ -11,7 +8,7 @@ public class SimpleTextInput implements IText
|
|||
private final transient List<String> lines = new ArrayList<String>();
|
||||
|
||||
public SimpleTextInput (final String input) {
|
||||
lines.add(input);
|
||||
lines.addAll(Arrays.asList(input.split("\\n")));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.earth2me.essentials.textreader;
|
||||
|
||||
import java.util.List;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
|
||||
|
@ -20,7 +21,12 @@ public class SimpleTextPager
|
|||
}
|
||||
}
|
||||
|
||||
public String getString(int line)
|
||||
public List<String> getLines()
|
||||
{
|
||||
return text.getLines();
|
||||
}
|
||||
|
||||
public String getLine(int line)
|
||||
{
|
||||
if (text.getLines().size() < line)
|
||||
{
|
||||
|
|
|
@ -70,7 +70,7 @@ public class TextPager
|
|||
}
|
||||
for (int i = start; i < lines.size() && i < start + (onePage ? 20 : 9); i++)
|
||||
{
|
||||
sender.sendMessage(lines.get(i));
|
||||
sender.sendMessage("§r" + lines.get(i));
|
||||
}
|
||||
if (!onePage && page < pages && commandName != null)
|
||||
{
|
||||
|
@ -137,7 +137,7 @@ public class TextPager
|
|||
}
|
||||
for (int i = start; i < end && i < start + (onePage ? 20 : 9); i++)
|
||||
{
|
||||
sender.sendMessage(lines.get(i));
|
||||
sender.sendMessage("§r" + lines.get(i));
|
||||
}
|
||||
if (!onePage && page < pages && commandName != null)
|
||||
{
|
||||
|
@ -189,7 +189,7 @@ public class TextPager
|
|||
}
|
||||
for (int i = start; i < chapterend && i < start + (onePage ? 20 : 9); i++)
|
||||
{
|
||||
sender.sendMessage(lines.get(i));
|
||||
sender.sendMessage("§r" + lines.get(i));
|
||||
}
|
||||
if (!onePage && page < pages && commandName != null)
|
||||
{
|
||||
|
|
|
@ -8,15 +8,10 @@
|
|||
# If you receive an error when Essentials loads, ensure that:
|
||||
# - No tabs are present: YAML only allows spaces
|
||||
# - Indents are correct: YAML hierarchy is based entirely on indentation
|
||||
# - You have "escaped" all apostrophes in your text: If you want to write "don't", for example, write "don''t" instead (note the doubled apostrphe)
|
||||
# - List items are prefixed with a hyphen and indented:
|
||||
# lists:
|
||||
# - look like this
|
||||
# not:
|
||||
# - like this
|
||||
# - You have "escaped" all apostrophes in your text: If you want to write "don't", for example, write "don''t" instead (note the doubled apostrophe)
|
||||
# - Text with symbols is enclosed in single or double quotation marks
|
||||
# - CraftBukkit and Permissions have been updated: CraftBukkit and Essentials almost always line up, but sometimes other plugins fall behind CraftBukkit's multiple daily updates
|
||||
# - You have saved the document as UTF-8, NOT the default, ANSI
|
||||
|
||||
# If you have problems join the Essentials help support channel: http://tiny.cc/EssentialsChat
|
||||
|
||||
############################################################
|
||||
# +------------------------------------------------------+ #
|
||||
|
@ -96,18 +91,20 @@ overridden-commands:
|
|||
disabled-commands:
|
||||
# - nick
|
||||
|
||||
# Restricted commands have been removed.
|
||||
# Now we have a whitelist, all commands not on this list are only available to ops.
|
||||
# These will have NO EFFECT if you have Permissions installed!
|
||||
# They are here only if you want something simpler than Permissions.
|
||||
# If you do not wish to use a permission system, you can define a list of 'player perms' below.
|
||||
# This list has no effect if your using a supported permissions system.
|
||||
# If your using an unsupported permissions system simply delete this section.
|
||||
# Whitelist the commands and permissions you wish to give players by default (everything else is op only).
|
||||
# These are the permissions without the "essentials." part.
|
||||
player-commands:
|
||||
- afk
|
||||
- afk.auto
|
||||
- back
|
||||
- back.ondeath
|
||||
- balance
|
||||
- balance.others
|
||||
- balancetop
|
||||
- build
|
||||
- chat.color
|
||||
- chat.format
|
||||
- chat.shout
|
||||
|
@ -138,8 +135,6 @@ player-commands:
|
|||
- near
|
||||
- pay
|
||||
- ping
|
||||
- powertool
|
||||
- powertooltoggle
|
||||
- protect
|
||||
- r
|
||||
- rules
|
||||
|
@ -190,7 +185,7 @@ kits:
|
|||
dtools:
|
||||
delay: 10
|
||||
items:
|
||||
- 277 1 efficiency:1
|
||||
- 277 1 efficiency:1 durability:1
|
||||
- 278 1
|
||||
- 279:780 1
|
||||
tools:
|
||||
|
@ -206,7 +201,6 @@ kits:
|
|||
# To enable signs, remove # symbol. To disable all signs, comment/remove each sign.
|
||||
# Essentials Colored sign support will be enabled when any sign types are enabled.
|
||||
# Color is not an actual sign, its for enabling using color codes on signs, when the correct permissions are given.
|
||||
# We recommend not enabling chest protection signs if you don't intend to use them, (or are using LWC/Lockette).
|
||||
|
||||
enabledSigns:
|
||||
#- color
|
||||
|
@ -226,9 +220,7 @@ enabledSigns:
|
|||
#- spawnmob
|
||||
#- repair
|
||||
#- time
|
||||
#- weather
|
||||
#- protection
|
||||
|
||||
#- weather
|
||||
|
||||
# How many times per second can Essentials signs be interacted with per player.
|
||||
# Values should be between 1-20, 20 being virtually no lag protection.
|
||||
|
@ -254,16 +246,12 @@ debug: false
|
|||
|
||||
# Set the locale for all messages
|
||||
# If you don't set this, the default locale of the server will be used.
|
||||
# Don't forget to remove the # infront of the line
|
||||
# Don't forget to remove the # in front of the line
|
||||
#locale: de_DE
|
||||
|
||||
# Turn off god mode when people exit
|
||||
remove-god-on-disconnect: false
|
||||
|
||||
# Use the permission system of bukkit
|
||||
# This only works if no other permission plugins are installed
|
||||
use-bukkit-permissions: false
|
||||
|
||||
# Auto-AFK
|
||||
# After this timeout in seconds, the user will be set as afk.
|
||||
# Set to -1 for no timeout.
|
||||
|
@ -285,11 +273,11 @@ freeze-afk-players: false
|
|||
disable-item-pickup-while-afk: false
|
||||
|
||||
# Should we automatically remove afk status when the player moves?
|
||||
# Player will be removed from afk on chat/command reguardless of this setting.
|
||||
# Player will be removed from afk on chat/command regardless of this setting.
|
||||
# Disable this to reduce server lag.
|
||||
cancel-afk-on-move: true
|
||||
|
||||
# You can disable the death messages of minecraft here
|
||||
# You can disable the death messages of Minecraft here
|
||||
death-messages: true
|
||||
|
||||
# Add worlds to this list, if you want to automatically disable god mode there
|
||||
|
@ -299,17 +287,17 @@ no-god-in-worlds:
|
|||
# Set to true to enable per-world permissions for teleporting between worlds with essentials commands
|
||||
# This applies to /world, /back, /tp[a|o][here|all], but not warps.
|
||||
# Give someone permission to teleport to a world with essentials.worlds.<worldname>
|
||||
# This does not effect the /home command, there is a seperate toggle below for this.
|
||||
# This does not effect the /home command, there is a separate toggle below for this.
|
||||
world-teleport-permissions: false
|
||||
|
||||
# The number of items given if the quantity parameter is left out in /item or /give.
|
||||
# If this number is below 1, the maximum stack size size is given. If oversized stacks
|
||||
# is not enabled, any number higher then the maximum stack size results in more than one stack.
|
||||
# If this number is below 1, the maximum stack size size is given. If over-sized stacks
|
||||
# are not enabled, any number higher then the maximum stack size results in more than one stack.
|
||||
default-stack-size: -1
|
||||
|
||||
# Oversized stacks are stacks that ignore the normal max stacksize.
|
||||
# Over-sized stacks are stacks that ignore the normal max stack size.
|
||||
# They can be obtained using /give and /item, if the player has essentials.oversizedstacks permission.
|
||||
# How many items should be in an oversized stack?
|
||||
# How many items should be in an over-sized stack?
|
||||
oversized-stacksize: 64
|
||||
|
||||
# Allow repair of enchanted weapons and armor.
|
||||
|
@ -369,7 +357,7 @@ starting-balance: 0
|
|||
# These are now defined in worth.yml
|
||||
|
||||
# Defines the cost to use the given commands PER USE
|
||||
# Some commands like /repair have subcosts, check the wiki for more information.
|
||||
# Some commands like /repair have sub-costs, check the wiki for more information.
|
||||
command-costs:
|
||||
# /example costs $1000 PER USE
|
||||
#example: 1000
|
||||
|
@ -564,15 +552,15 @@ protect:
|
|||
storm: false
|
||||
thunder: false
|
||||
lightning: false
|
||||
|
||||
|
||||
############################################################
|
||||
# +------------------------------------------------------+ #
|
||||
# | EssentialsAntiBuild | #
|
||||
# +------------------------------------------------------+ #
|
||||
############################################################
|
||||
|
||||
|
||||
# Disable various default physics and behaviors
|
||||
|
||||
|
||||
# Should people with build: false in permissions be allowed to build
|
||||
# Set true to disable building for those people
|
||||
# Setting to false means EssentialsAntiBuild will never prevent you from building
|
||||
|
@ -585,7 +573,7 @@ protect:
|
|||
|
||||
# Should we tell people they are not allowed to build
|
||||
warn-on-build-disallow: true
|
||||
|
||||
|
||||
# For which block types would you like to be alerted?
|
||||
# You can find a list of IDs in plugins/Essentials/items.csv after loading Essentials for the first time.
|
||||
# 10 = lava :: 11 = still lava :: 46 = TNT :: 327 = lava bucket
|
||||
|
@ -624,7 +612,7 @@ newbies:
|
|||
# When we spawn for the first time, which spawnpoint do we use?
|
||||
# Set to "none" if you want to use the spawn point of the world.
|
||||
spawnpoint: newbies
|
||||
|
||||
|
||||
# Do we want to give users anything on first join? Set to '' to disable
|
||||
# This kit will be given regardless of cost, and permissions.
|
||||
#kit: ''
|
||||
|
|
|
@ -25,28 +25,30 @@ when he does not select a chapter.
|
|||
|
||||
#Colors
|
||||
Minecraft colors:
|
||||
&0 &&0 &1 &&1 &2 &&2 &3 &&3
|
||||
&4 &&4 &5 &&5 &6 &&6 &7 &&7
|
||||
&8 &&8 &9 &&9 &a &&a &b &&b
|
||||
&c &&c &d &&d &e &&e &f &&f
|
||||
&&k &k Magic!
|
||||
&0 &&0 &1 &&1 &2 &&2 &3 &&3
|
||||
&4 &&4 &5 &&5 &6 &&6 &7 &&7
|
||||
&8 &&8 &9 &&9 &a &&a &b &&b
|
||||
&c &&c &d &&d &e &&e &f &&f
|
||||
|
||||
&&k &k Magic!&r &&l &l Bold!
|
||||
&&m &m Strike!&r &&n &n Underline!
|
||||
&&o &o Italic!&r &&r &r reset format codes!
|
||||
|
||||
#Tags
|
||||
PLAYER: {PLAYER}
|
||||
USERNAME: {PLAYER}
|
||||
IP: {IP}
|
||||
ADDRESS: {ADDRESS}
|
||||
BALANCE: {BALANCE}
|
||||
MAILS: {MAILS}
|
||||
WORLD: {WORLD}
|
||||
WORLDS: {WORLDS}
|
||||
ONLINE: {ONLINE}
|
||||
UNIQUE: {UNIQUE}
|
||||
PLAYERLIST: {PLAYERLIST}
|
||||
TIME: {TIME}
|
||||
DATE: {DATE}
|
||||
WORLDTIME12: {WORLDTIME12}
|
||||
WORLDTIME24: {WORLDTIME24}
|
||||
WORLDDATE: {WORLDDATE}
|
||||
PLUGINS: {PLUGINS}
|
||||
VERSION: {VERSION}
|
||||
&6Player name:&r {PLAYER}
|
||||
&6IP:&r {IP}
|
||||
&6Address:&r {ADDRESS}
|
||||
&6Balance:&r {BALANCE}
|
||||
&6Unread mails:&r {MAILS}
|
||||
&6Current world:&r {WORLD}
|
||||
&6Worlds list:&r {WORLDS}
|
||||
&6Number of online players:&r {ONLINE}
|
||||
&6Number of unique players who joined the server:&r {UNIQUE}
|
||||
&6Player list:&r {PLAYERLIST}
|
||||
&6Time of server:&r {TIME}
|
||||
&6Date of server:&r {DATE}
|
||||
&6Time of world PM/AM:&r {WORLDTIME12}
|
||||
&6Time of world:&r {WORLDTIME24}
|
||||
&6Date of world:&r {WORLDDATE}
|
||||
&6Plugin list:&r {PLUGINS}
|
||||
&6Version of Craftbukkit:&r {VERSION}
|
|
@ -1,4 +1,4 @@
|
|||
#version: teamcity
|
||||
#version: TeamCity
|
||||
#If you change this file, it will not be automatically updated after the next release,
|
||||
#item,id,metadata
|
||||
stone,1,0
|
||||
|
@ -1587,7 +1587,9 @@ tdoor,96,0
|
|||
doort,96,0
|
||||
trapd,96,0
|
||||
dtrap,96,0
|
||||
monsteregg,97,0
|
||||
silverfish,97,0
|
||||
monsteregg,97,0
|
||||
monstereggsmoothstone,97,0
|
||||
monstereggsstone,97,0
|
||||
meggsmoothstone,97,0
|
||||
|
@ -3396,6 +3398,7 @@ sign,323,0
|
|||
woodendoor,324,0
|
||||
wooddoor,324,0
|
||||
wdoor,324,0
|
||||
door,324,0
|
||||
bucket,325,0
|
||||
bukkit,325,0
|
||||
waterbucket,326,0
|
||||
|
@ -3945,14 +3948,98 @@ waterbottle,373,0
|
|||
fullbottle,373,0
|
||||
watervase,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
|
||||
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
|
||||
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
|
||||
mundaneexpot,373,64
|
||||
mundaneexpotion,373,64
|
||||
mundane2potion,373,64
|
||||
mundaneextendedpot,373,64
|
||||
mundaneexpot,373,64
|
||||
mundane2pot,373,64
|
||||
mundanepotion,373,8192
|
||||
mundanepot,373,8192
|
||||
regenerationpotion,373,8193
|
||||
|
@ -3964,8 +4051,10 @@ regenpot,373,8193
|
|||
rpot,373,8193
|
||||
swiftnesspotion,373,8194
|
||||
swiftpotion,373,8194
|
||||
speedpotion,373,8194
|
||||
swiftnesspot,373,8194
|
||||
swiftpot,373,8194
|
||||
speedpot,373,8194
|
||||
swpot,373,8194
|
||||
fireresistancepotion,373,8195
|
||||
fireresistpotion,373,8195
|
||||
|
@ -3997,7 +4086,7 @@ strpotion,373,8201
|
|||
strengthpot,373,8201
|
||||
strongpot,373,8201
|
||||
strpot,373,8201
|
||||
spot,373,8201
|
||||
stpot,373,8201
|
||||
slownesspotion,373,8202
|
||||
slowpotion,373,8202
|
||||
slownesspot,373,8202
|
||||
|
@ -4031,16 +4120,22 @@ regeniipot,373,8225
|
|||
r2pot,373,8225
|
||||
swiftnessleveliipotion,373,8226
|
||||
swiftleveliipotion,373,8226
|
||||
speedleveliipotion,373,8226
|
||||
swiftnesslevel2potion,373,8226
|
||||
swiftlevel2potion,373,8226
|
||||
speedlevel2potion,373,8226
|
||||
swiftnessiipotion,373,8226
|
||||
swiftiipotion,373,8226
|
||||
speediipotion,373,8226
|
||||
swiftnessleveliipot,373,8226
|
||||
swiftleveliipot,373,8226
|
||||
speedleveliipot,373,8226
|
||||
swiftnesslevel2pot,373,8226
|
||||
swiftlevel2pot,373,8226
|
||||
speedlevel2pot,373,8226
|
||||
swiftnessiipot,373,8226
|
||||
swiftiipot,373,8226
|
||||
speediipot,373,8226
|
||||
sw2pot,373,8226
|
||||
posionleveliipotion,373,8228
|
||||
acidleveliipotion,373,8228
|
||||
|
@ -4086,7 +4181,7 @@ strlevel2pot,373,8233
|
|||
strengthiipot,373,8233
|
||||
strongiipot,373,8233
|
||||
striipot,373,8233
|
||||
s2pot,373,8233
|
||||
st2pot,373,8233
|
||||
harmingleveliipotion,373,8236
|
||||
damageleveliipotion,373,8236
|
||||
dmgleveliipotion,373,8236
|
||||
|
@ -4121,12 +4216,16 @@ regenexpot,373,8257
|
|||
repot,373,8257
|
||||
swiftnessextendedpotion,373,8258
|
||||
swiftextendedpotion,373,8258
|
||||
speedextendedpotion,373,8258
|
||||
swiftnessexpotion,373,8258
|
||||
swiftexpotion,373,8258
|
||||
speedexpotion,373,8258
|
||||
swiftnessextendedpot,373,8258
|
||||
swiftextendedpot,373,8258
|
||||
speedextendedpot,373,8258
|
||||
swiftnessexpot,373,8258
|
||||
swiftexpot,373,8258
|
||||
speedexpot,373,8258
|
||||
swepot,373,8258
|
||||
fireresistanceextendedpotion,373,8259
|
||||
fireresistextendedpotion,373,8259
|
||||
|
@ -4171,7 +4270,7 @@ strextendedpot,373,8265
|
|||
strengthexpot,373,8265
|
||||
strongexpot,373,8265
|
||||
strexpot,373,8265
|
||||
sepot,373,8265
|
||||
stepot,373,8265
|
||||
slownessextendedpotion,373,8266
|
||||
slowextenedpotion,373,8266
|
||||
slownessexpotion,373,8266
|
||||
|
@ -4184,19 +4283,37 @@ slepot,373,8266
|
|||
regenerationdualbitpotion,373,8289
|
||||
regeneratedualbitpotion,373,8289
|
||||
regendualbitpotion,373,8289
|
||||
regenerationdbpotion,373,8289
|
||||
regeneratedbpotion,373,8289
|
||||
regendbpotion,373,8289
|
||||
regenerationdualbitpot,373,8289
|
||||
regeneratedualbitpot,373,8289
|
||||
regendualbitpot,373,8289
|
||||
regenerationdbpot,373,8289
|
||||
regeneratedbpot,373,8289
|
||||
regendbpot,373,8289
|
||||
rdbpot,373,8289
|
||||
swiftnessdualbitpotion,373,8290
|
||||
swiftdualbitpotion,373,8290
|
||||
speeddualbitpotion,373,8290
|
||||
swiftnessdualbitpot,373,8290
|
||||
swiftdualbitpot,373,8290
|
||||
speeddualbitpot,373,8290
|
||||
swiftnessdbpotion,373,8290
|
||||
swiftdbpotion,373,8290
|
||||
speeddbpotion,373,8290
|
||||
swiftnessdbpot,373,8290
|
||||
swiftdbpot,373,8290
|
||||
speeddbpot,373,8290
|
||||
swdbpot,373,8290
|
||||
poisondualbitpotion,373,8292
|
||||
aciddualbitpotion,373,8292
|
||||
poisondualbitpot,373,8292
|
||||
aciddualbitpot,373,8292
|
||||
poisondbpotion,373,8292
|
||||
aciddbpotion,373,8292
|
||||
poisondbpot,373,8292
|
||||
aciddbpot,373,8292
|
||||
pdbpot,373,8292
|
||||
strengthdualbitpotion,373,8297
|
||||
strongdualbitpotion,373,8297
|
||||
|
@ -4204,7 +4321,13 @@ strdualbitpotion,373,8297
|
|||
strengthdualbitpot,373,8297
|
||||
strongdualbitpot,373,8297
|
||||
strdualbitpot,373,8297
|
||||
sdbpot,373,8297
|
||||
strengthdbpotion,373,8297
|
||||
strongdbpotion,373,8297
|
||||
strdbpotion,373,8297
|
||||
strengthdbpot,373,8297
|
||||
strongdbpot,373,8297
|
||||
strdbpot,373,8297
|
||||
stdbpot,373,8297
|
||||
splashmundanepotion,373,16384
|
||||
splmundanepotion,373,16384
|
||||
splashregenerationpotion,373,16385
|
||||
|
@ -4225,12 +4348,16 @@ splregenpot,373,16385
|
|||
sprpot,373,16385
|
||||
splashswiftnesspotion,373,16386
|
||||
splashswiftpotion,373,16386
|
||||
splashspeedpotion,373,16386
|
||||
splashswiftnesspot,373,16386
|
||||
splashswiftpot,373,16386
|
||||
splashspeedpot,373,16386
|
||||
splswiftnesspotion,373,16386
|
||||
splswiftpotion,373,16386
|
||||
splspeedpotion,373,16386
|
||||
splswiftnesspot,373,16386
|
||||
splswiftpot,373,16386
|
||||
splspeedpot,373,16386
|
||||
spswpot,373,16386
|
||||
splashfireresistancepotion,373,16387
|
||||
splashfireresistpotion,373,16387
|
||||
|
@ -4267,6 +4394,22 @@ splhealingpot,373,16389
|
|||
splhealpot,373,16389
|
||||
spllifepot,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
|
||||
splashweakpotion,373,16392
|
||||
splashweaknesspot,373,16392
|
||||
|
@ -4288,7 +4431,7 @@ splstrpotion,373,16393
|
|||
splstrengthpot,373,16393
|
||||
splstrongpot,373,16393
|
||||
splstrpot,373,16393
|
||||
spspot,373,16393
|
||||
spstpot,373,16393
|
||||
splashslownesspotion,373,16394
|
||||
splashslowpotion,373,16394
|
||||
splashslownesspot,373,16394
|
||||
|
@ -4298,13 +4441,16 @@ splslowpotion,373,16394
|
|||
splslownesspot,373,16394
|
||||
splslowpot,373,16394
|
||||
spslpot,373,16394
|
||||
splashdiffusepotion,373,16395
|
||||
splashdiffusepot,373,16395
|
||||
spldiffusepotion,373,16395
|
||||
spldiffusepot,373,16395
|
||||
splashharmingpotion,373,16396
|
||||
splashdamagepotion,373,16396
|
||||
splashdmgpotion,373,16396
|
||||
splashharmingpot,373,16396
|
||||
splashdamagepot,373,16396
|
||||
splashdmgpot,373,16396
|
||||
dmgsplashpot,373,16396
|
||||
splharmingpotion,373,16396
|
||||
spldamagepotion,373,16396
|
||||
spldmgpotion,373,16396
|
||||
|
@ -4312,6 +4458,74 @@ splharmingpot,373,16396
|
|||
spldamagepot,373,16396
|
||||
spldmgpot,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
|
||||
splashregenerateleveliipotion,373,16417
|
||||
splashregenleveliipotion,373,16417
|
||||
|
@ -4351,28 +4565,40 @@ splregeniipot,373,16417
|
|||
spr2pot,373,16417
|
||||
splashswiftnessleveliipotion,373,16418
|
||||
splashswiftleveliipotion,373,16418
|
||||
splashspeedleveliipotion,373,16418
|
||||
splashswiftnesslevel2potion,373,16418
|
||||
splashswiftlevel2potion,373,16418
|
||||
splashspeedlevel2potion,373,16418
|
||||
splashswiftnessiipotion,373,16418
|
||||
splashswiftiipotion,373,16418
|
||||
splashspeediipotion,373,16418
|
||||
splashswiftnessleveliipot,373,16418
|
||||
splashswiftleveliipot,373,16418
|
||||
splashspeedleveliipot,373,16418
|
||||
splashswiftnesslevel2pot,373,16418
|
||||
splashswiftlevel2pot,373,16418
|
||||
splashspeedlevel2pot,373,16418
|
||||
splashswiftnessiipot,373,16418
|
||||
splashswiftiipot,373,16418
|
||||
splashspeediipot,373,16418
|
||||
splswiftnessleveliipotion,373,16418
|
||||
splswiftleveliipotion,373,16418
|
||||
splspeedleveliipotion,373,16418
|
||||
splswiftnesslevel2potion,373,16418
|
||||
splswiftlevel2potion,373,16418
|
||||
splspeedlevel2potion,373,16418
|
||||
splswiftnessiipotion,373,16418
|
||||
splswiftiipotion,373,16418
|
||||
splspeediipotion,373,16418
|
||||
splswiftnessleveliipot,373,16418
|
||||
splswiftleveliipot,373,16418
|
||||
splspeedleveliipot,373,16418
|
||||
splswiftnesslevel2pot,373,16418
|
||||
splswiftlevel2pot,373,16418
|
||||
splspeedlevel2pot,373,16418
|
||||
splswiftnessiipot,373,16418
|
||||
splswiftiipot,373,16418
|
||||
splspeediipot,373,16418
|
||||
spsw2pot,373,16418
|
||||
splashposionleveliipotion,373,16420
|
||||
splashacidleveliipotion,373,16420
|
||||
|
@ -4424,6 +4650,22 @@ splheallevel2pot,373,16421
|
|||
splhealingiipot,373,16421
|
||||
splhealiipot,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
|
||||
splashstrongleveliipotion,373,16425
|
||||
splashstrleveliipotion,373,16425
|
||||
|
@ -4460,7 +4702,11 @@ splstrlevel2pot,373,16425
|
|||
splstrengthiipot,373,16425
|
||||
splstrongiipot,373,16425
|
||||
splstriipot,373,16425
|
||||
sps2pot,373,16425
|
||||
spst2pot,373,16425
|
||||
splashrefinedpotion,373,16427
|
||||
splashrefinedpot,373,16427
|
||||
splrefinedpotion,373,16427
|
||||
splrefinedpot,373,16427
|
||||
splashharmingleveliipotion,373,16428
|
||||
splashdamageleveliipotion,373,16428
|
||||
splashdmgleveliipotion,373,16428
|
||||
|
@ -4498,6 +4744,82 @@ splharmingiipot,373,16428
|
|||
spldamageiipot,373,16428
|
||||
spldmgiipot,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
|
||||
splashregenerateextendedpotion,373,16449
|
||||
splashregenextendepotion,373,16449
|
||||
|
@ -4525,20 +4847,28 @@ splregenexpot,373,16449
|
|||
sprepot,373,16449
|
||||
splashswiftnessextendedpotion,373,16450
|
||||
splashswiftextendedpotion,373,16450
|
||||
splashspeedextendedpotion,373,16450
|
||||
splashswiftnessexpotion,373,16450
|
||||
splashswiftexpotion,373,16450
|
||||
splashspeedexpotion,373,16450
|
||||
splashswiftnessextendedpot,373,16450
|
||||
splashswiftextendedpot,373,16450
|
||||
splashspeedextendedpot,373,16450
|
||||
splashswiftnessexpot,373,16450
|
||||
splashswiftexpot,373,16450
|
||||
splashspeedexpot,373,16450
|
||||
splswiftnessextendedpotion,373,16450
|
||||
splswiftextendedpotion,373,16450
|
||||
splspeedextendedpotion,373,16450
|
||||
splswiftnessexpotion,373,16450
|
||||
splswiftexpotion,373,16450
|
||||
splspeedexpotion,373,16450
|
||||
splswiftnessextendedpot,373,16450
|
||||
splswiftextendedpot,373,16450
|
||||
splspeedextendedpot,373,16450
|
||||
splswiftnessexpot,373,16450
|
||||
splswiftexpot,373,16450
|
||||
splspeedexpot,373,16450
|
||||
spswepot,373,16450
|
||||
splashfireresistanceextendedpotion,373,16451
|
||||
splashfireresistextendedpotion,373,16451
|
||||
|
@ -4623,7 +4953,7 @@ splstrextendedpot,373,16457
|
|||
splstrengthexpot,373,16457
|
||||
splstrongexpot,373,16457
|
||||
splstrexpot,373,16457
|
||||
spsepot,373,16457
|
||||
spstepot,373,16457
|
||||
splashslownessextendedpotion,373,16458
|
||||
splashslowextenedpotion,373,16458
|
||||
splashslownessexpotion,373,16458
|
||||
|
@ -4653,15 +4983,43 @@ splregendualbitpotion,373,16481
|
|||
splregenerationdualbitpot,373,16481
|
||||
splregeneratedualbitpot,373,16481
|
||||
splregendualbitpot,373,16481
|
||||
splashregenerationdbpotion,373,16481
|
||||
splashregeneratedbpotion,373,16481
|
||||
splashregendbpotion,373,16481
|
||||
splashregenerationdbpot,373,16481
|
||||
splashregeneratedbpot,373,16481
|
||||
splashregendbpot,373,16481
|
||||
splregenerationdbpotion,373,16481
|
||||
splregeneratedbpotion,373,16481
|
||||
splregendbpotion,373,16481
|
||||
splregenerationdbpot,373,16481
|
||||
splregeneratedbpot,373,16481
|
||||
splregendbpot,373,16481
|
||||
sprdbpot,373,16481
|
||||
splashswiftnessdualbitpotion,373,16482
|
||||
splashswiftdualbitpotion,373,16482
|
||||
splashspeeddualbitpotion,373,16482
|
||||
splashswiftnessdualbitpot,373,16482
|
||||
splashswiftdualbitpot,373,16482
|
||||
splashspeeddualbitpot,373,16482
|
||||
splswiftnessdualbitpotion,373,16482
|
||||
splswiftdualbitpotion,373,16482
|
||||
splspeeddualbitpotion,373,16482
|
||||
splswiftnessdualbitpot,373,16482
|
||||
splswiftdualbitpot,373,16482
|
||||
splspeeddualbitpot,373,16482
|
||||
splashswiftnessdbpotion,373,16482
|
||||
splashswiftdbpotion,373,16482
|
||||
splashspeeddbpotion,373,16482
|
||||
splashswiftnessdbpot,373,16482
|
||||
splashswiftdbpot,373,16482
|
||||
splashspeeddbpot,373,16482
|
||||
splswiftnessdbpotion,373,16482
|
||||
splswiftdbpotion,373,16482
|
||||
splspeeddbpotion,373,16482
|
||||
splswiftnessdbpot,373,16482
|
||||
splswiftdbpot,373,16482
|
||||
splspeeddbpot,373,16482
|
||||
spswdbpot,373,16482
|
||||
splashpoisondualbitpotion,373,16484
|
||||
splashaciddualbitpotion,373,16484
|
||||
|
@ -4671,6 +5029,14 @@ splpoisondualbitpotion,373,16484
|
|||
splaciddualbitpotion,373,16484
|
||||
splpoisondualbitpot,373,16484
|
||||
splaciddualbitpot,373,16484
|
||||
splashpoisondbpotion,373,16484
|
||||
splashaciddbpotion,373,16484
|
||||
splashpoisondbpot,373,16484
|
||||
splashaciddbpot,373,16484
|
||||
splpoisondbpotion,373,16484
|
||||
splaciddbpotion,373,16484
|
||||
splpoisondbpot,373,16484
|
||||
splaciddbpot,373,16484
|
||||
sppdbpot,373,16484
|
||||
splashstrengthdualbitpotion,373,16489
|
||||
splashstrongdualbitpotion,373,16489
|
||||
|
@ -4684,7 +5050,19 @@ splstrdualbitpotion,373,16489
|
|||
splstrengthdualbitpot,373,16489
|
||||
splstrongdualbitpot,373,16489
|
||||
splstrdualbitpot,373,16489
|
||||
spsdbpot,373,16489
|
||||
splashstrengthdbpotion,373,16489
|
||||
splashstrongdbpotion,373,16489
|
||||
splashstrdbpotion,373,16489
|
||||
splashstrengthdbpot,373,16489
|
||||
splashstrongdbpot,373,16489
|
||||
splashstrdbpot,373,16489
|
||||
splstrengthdbpotion,373,16489
|
||||
splstrongdbpotion,373,16489
|
||||
splstrdbpotion,373,16489
|
||||
splstrengthdbpot,373,16489
|
||||
splstrongdbpot,373,16489
|
||||
splstrdbpot,373,16489
|
||||
spstdbpot,373,16489
|
||||
glassbottle,374,0
|
||||
bottle,374,0
|
||||
gbottle,374,0
|
||||
|
|
|
|
@ -28,7 +28,7 @@ banIpAddress=\u00a76Banned IP address
|
|||
bigTreeFailure=\u00a74Big tree generation failure. Try again on grass or dirt.
|
||||
bigTreeSuccess= \u00a76Big tree spawned.
|
||||
blockList=\u00a76Essentials relayed the following commands to another plugin:
|
||||
broadcast=\u00a76[\u00a74Broadcast\u00a76]\u00a7a {0}
|
||||
broadcast=\u00a7r\u00a76[\u00a74Broadcast\u00a76]\u00a7a {0}
|
||||
buildAlert=\u00a74You are not permitted to build
|
||||
bukkitFormatChanged=Bukkit version format changed. Version not checked.
|
||||
burnMsg=\u00a76You set\u00a7c {0} \u00a76on fire for\u00a7c {1} seconds\u00a76.
|
||||
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a74You have nobody to whom you can reply.
|
||||
freedMemory=Freed {0} MB.
|
||||
gameMode=\u00a76Set game mode\u00a7c {0} \u00a76for {1}\u00a76.
|
||||
gcchunks= chunks,
|
||||
gcentities= entities
|
||||
gcfree=\u00a76Free memory:\u00a7c {0} MB
|
||||
gcmax=\u00a76Maximum memory:\u00a7c {0} MB
|
||||
gctotal=\u00a76Allocated memory:\u00a7c {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -108,8 +108,6 @@ flying=flying
|
|||
foreverAlone=\u00a7cNemas komu odepsat.
|
||||
freedMemory=Uvolneno {0} MB.
|
||||
gameMode=\u00a77Nastavil jsi herni mod z {0} na {1}.
|
||||
gcchunks= chunky,
|
||||
gcentities= entity
|
||||
gcfree=Volna pamet: {0} MB
|
||||
gcmax=Dostupna pamet: {0} MB
|
||||
gctotal=Vyuzita pamet: {0} MB
|
||||
|
@ -459,3 +457,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a7cDu har ingen til hvem du kan svare.
|
||||
freedMemory=Frigjorde {0} MB.
|
||||
gameMode=\u00a77Satte game mode {0} for {1}.
|
||||
gcchunks= chunks,
|
||||
gcentities= entities
|
||||
gcfree=Free memory: {0} MB
|
||||
gcmax=Maximum memory: {0} MB
|
||||
gctotal=Allocated memory: {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a7cDu hast niemanden, dem du antworten kannst.
|
||||
freedMemory={0} MB frei gemacht.
|
||||
gameMode=\u00a77Set game mode {0} for {1}.
|
||||
gcchunks= Chunks,
|
||||
gcentities= Einheiten
|
||||
gcfree=Freier Speicher: {0} MB
|
||||
gcmax=Maximaler Speicher: {0} MB
|
||||
gctotal=Reservierter Speicher: {0} MB
|
||||
|
@ -232,7 +230,7 @@ nickChanged=Nickname ge\u00e4ndert.
|
|||
nickDisplayName=\u00a77Du musst \u00a7fchange-displayname\u00a7c in der Essentials-Config aktivieren.
|
||||
nickInUse=\u00a7cDieser Name wird bereits verwendet.
|
||||
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.
|
||||
nickSet=\u00a77Dein Nickname ist nun \u00a7c{0}
|
||||
noAccessCommand=\u00a7cDu hast keinen Zugriff auf diesen Befehl.
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -28,7 +28,7 @@ banIpAddress=\u00a76Banned IP address
|
|||
bigTreeFailure=\u00a74Big tree generation failure. Try again on grass or dirt.
|
||||
bigTreeSuccess= \u00a76Big tree spawned.
|
||||
blockList=\u00a76Essentials relayed the following commands to another plugin:
|
||||
broadcast=\u00a76[\u00a74Broadcast\u00a76]\u00a7a {0}
|
||||
broadcast=\u00a7r\u00a76[\u00a74Broadcast\u00a76]\u00a7a {0}
|
||||
buildAlert=\u00a74You are not permitted to build
|
||||
bukkitFormatChanged=Bukkit version format changed. Version not checked.
|
||||
burnMsg=\u00a76You set\u00a7c {0} \u00a76on fire for\u00a7c {1} seconds\u00a76.
|
||||
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a74You have nobody to whom you can reply.
|
||||
freedMemory=Freed {0} MB.
|
||||
gameMode=\u00a76Set game mode\u00a7c {0} \u00a76for {1}\u00a76.
|
||||
gcchunks= chunks,
|
||||
gcentities= entities
|
||||
gcfree=\u00a76Free memory:\u00a7c {0} MB
|
||||
gcmax=\u00a76Maximum memory:\u00a7c {0} MB
|
||||
gctotal=\u00a76Allocated memory:\u00a7c {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=volando
|
|||
foreverAlone=\u00a7cNo tienes nadie a quien puedas responder.
|
||||
freedMemory= {0} MB libres.
|
||||
gameMode=\u00a77Modo de juego {0} activado para {1}.
|
||||
gcchunks= pixeles
|
||||
gcentities= entidades
|
||||
gcfree=Memoria libre: {0} MB
|
||||
gcmax=Memoria maxima: {0} MB
|
||||
gctotal=Memoria localizada: {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a7cSinulla ei ole ket\u00e4\u00e4n kenelle vastata.
|
||||
freedMemory=Vapaata muistia {0} MB.
|
||||
gameMode=\u00a77Asetit pelimuodon "{0}" pelaajalle {1}.
|
||||
gcchunks= chunkkia,
|
||||
gcentities= kokonaisuutta
|
||||
gcfree=Vapaa muisti: {0} MB
|
||||
gcmax=Maksimi muisti: {0} MB
|
||||
gctotal=Sallittu muisti: {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a7cVous n''avez personne \u00e0 qui r\u00e9pondre
|
||||
freedMemory=A lib\u00e9r\u00e9 {0} Mo.
|
||||
gameMode=\u00a77Mode de jeu {0} pour {1}.
|
||||
gcchunks=portions,
|
||||
gcentities=entit\u00e9s
|
||||
gcfree=M\u00e9moire libre : {0} Mo
|
||||
gcmax=M\u00e9moire maximale : {0} Mo
|
||||
gctotal=M\u00e9moire utilis\u00e9e : {0} Mo
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a7cNon c''e'' nessuno a cui rispondere.
|
||||
freedMemory=Liberati {0} MB.
|
||||
gameMode=\u00a77Modalita''di gioco {0} impostata per {1}.
|
||||
gcchunks= blocchi,
|
||||
gcentities= entita''
|
||||
gcfree=Memoria libera: {0} MB
|
||||
gcmax=Memoria massima: {0} MB
|
||||
gctotal=Memoria allocata: {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=vliegen
|
|||
foreverAlone=\u00a7cJe hebt niemand waarnaar je kan reageren.
|
||||
freedMemory={0} MB gelost.
|
||||
gameMode=\u00a77Zet spel modus {0} voor {1}.
|
||||
gcchunks= chunks,
|
||||
gcentities= entiteiten
|
||||
gcfree=Vrij geheugen: {0} MB
|
||||
gcmax=Maximaal geheugen: {0} MB
|
||||
gctotal=Gealloceerd geheugen: {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a7cNie masz komu odpisac.
|
||||
freedMemory=Zwolniono {0} MB.
|
||||
gameMode=\u00a77Ustawiono tryb gry {0} dla {1}.
|
||||
gcchunks= chunki
|
||||
gcentities= jednostki
|
||||
gcfree=Wolna pamiec: {0} MB
|
||||
gcmax=Maksymalna pamiec: {0} MB
|
||||
gctotal=Alokowana pamiec: {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a7cVoc\u00ea nao tem ninguem a quem responder.
|
||||
freedMemory=Livre {0} MB.
|
||||
gameMode=\u00a77Gamemode {0} definido para {1}.
|
||||
gcchunks= chunks,
|
||||
gcentities= entidades
|
||||
gcfree=Memoria livre: {0} MB
|
||||
gcmax=Mem\u00f3ria Maxima: {0} MB
|
||||
gctotal=Mem\u00f3ria alocada: {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -105,8 +105,6 @@ flying=flying
|
|||
foreverAlone=\u00a7cDu har ingen att svara.
|
||||
freedMemory=Befriade {0} MB.
|
||||
gameMode=\u00a77Satte {0}s spell\u00e4ge till {1}.
|
||||
gcchunks= bitar,
|
||||
gcentities= enheter
|
||||
gcfree=Ledigt minne: {0} MB
|
||||
gcmax=Maximalt minne: {0} MB
|
||||
gctotal=Tilldelat minne: {0} MB
|
||||
|
@ -456,3 +454,7 @@ distance=\u00a76Distance: {0}
|
|||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
warpList={0}
|
||||
uptime=\u00a76Uptime:\u00a7c {0}
|
||||
antiBuildCraft=\u00a74You are not permitted to create\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
|
||||
invalidHomeName=\u00a74Invalid home name
|
||||
|
|
|
@ -128,9 +128,9 @@ commands:
|
|||
usage: /<command> [player]
|
||||
aliases: [coords,egetpos,position,eposition,whereami,ewhereami]
|
||||
gc:
|
||||
description: Reports garbage collection and tick info; useful to developers.
|
||||
description: Reports memory, uptime and tick info.
|
||||
usage: /<command>
|
||||
aliases: [elag,lag,mem,memory,egc,emem,ememory]
|
||||
aliases: [elag,lag,mem,memory,egc,emem,ememory,uptime,euptime]
|
||||
give:
|
||||
description: Give a player an item.
|
||||
usage: /<command> <player> <item|numeric> [amount <enchantmentname[:level]> ...]
|
||||
|
@ -351,7 +351,7 @@ commands:
|
|||
usage: /<command> [day|night|dawn|17:30|4pm|4000ticks] [worldname|all]
|
||||
aliases: [etime, day, night, eday, enight]
|
||||
togglejail:
|
||||
description: Jails/Unjails a player and tp them to the jail specified.
|
||||
description: Jails/Unjails a player, TPs them to the jail specified.
|
||||
usage: /<command> <player> <jailname> [datediff]
|
||||
aliases: [tjail,jail,ejail,unjail,eunjail,etogglejail]
|
||||
top:
|
||||
|
@ -450,3 +450,8 @@ commands:
|
|||
description: Calculates the worth of items in hand or as specified.
|
||||
usage: /<command> [item] [amount]
|
||||
aliases: [eworth,price,eprice]
|
||||
|
||||
permissions:
|
||||
essentials.*:
|
||||
default: op
|
||||
description: Give players with op everything by default
|
|
@ -7,13 +7,17 @@ import java.util.logging.Level;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.*;
|
||||
import org.bukkit.event.inventory.CraftItemEvent;
|
||||
import org.bukkit.event.painting.PaintingBreakByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerPickupItemEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
|
@ -28,7 +32,7 @@ public class EssentialsAntiBuildListener implements Listener
|
|||
this.ess = prot.getEssentialsConnect().getEssentials();
|
||||
}
|
||||
|
||||
private boolean metaPermCheck(User user, String action, Block block)
|
||||
private boolean metaPermCheck(final User user, final String action, final Block block)
|
||||
{
|
||||
if (block == null)
|
||||
{
|
||||
|
@ -37,13 +41,13 @@ public class EssentialsAntiBuildListener implements Listener
|
|||
return metaPermCheck(user, action, block.getTypeId(), block.getData());
|
||||
}
|
||||
|
||||
private boolean metaPermCheck(User user, String action, int blockId)
|
||||
private boolean metaPermCheck(final User user, final String action, final int blockId)
|
||||
{
|
||||
final String blockPerm = "essentials.build." + action + "." + blockId;
|
||||
return user.isAuthorized(blockPerm);
|
||||
}
|
||||
|
||||
private boolean metaPermCheck(User user, String action, int blockId, byte data)
|
||||
private boolean metaPermCheck(final User user, final String action, final int blockId, final byte data)
|
||||
{
|
||||
final String blockPerm = "essentials.build." + action + "." + blockId;
|
||||
final String dataPerm = blockPerm + ":" + data;
|
||||
|
@ -137,7 +141,7 @@ public class EssentialsAntiBuildListener implements Listener
|
|||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPaintingBreak(PaintingBreakByEntityEvent event)
|
||||
public void onPaintingBreak(final PaintingBreakByEntityEvent event)
|
||||
{
|
||||
final Entity entity = event.getRemover();
|
||||
if (entity instanceof Player)
|
||||
|
@ -156,7 +160,7 @@ public class EssentialsAntiBuildListener implements Listener
|
|||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockPistonExtend(BlockPistonExtendEvent event)
|
||||
public void onBlockPistonExtend(final BlockPistonExtendEvent event)
|
||||
{
|
||||
for (Block block : event.getBlocks())
|
||||
{
|
||||
|
@ -169,7 +173,7 @@ public class EssentialsAntiBuildListener implements Listener
|
|||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockPistonRetract(BlockPistonRetractEvent event)
|
||||
public void onBlockPistonRetract(final BlockPistonRetractEvent event)
|
||||
{
|
||||
if (!event.isSticky())
|
||||
{
|
||||
|
@ -230,4 +234,66 @@ public class EssentialsAntiBuildListener implements Listener
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onCraftItemEvent(final CraftItemEvent event)
|
||||
{
|
||||
HumanEntity entity = event.getWhoClicked();
|
||||
|
||||
if (entity instanceof Player)
|
||||
{
|
||||
final User user = ess.getUser(entity);
|
||||
final ItemStack item = event.getRecipe().getResult();
|
||||
|
||||
if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
|
||||
{
|
||||
if (!metaPermCheck(user, "craft", item.getTypeId(), item.getData().getData()))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
if (ess.getSettings().warnOnBuildDisallow())
|
||||
{
|
||||
user.sendMessage(_("antiBuildCraft", item.getType().toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onPlayerPickupItem(PlayerPickupItemEvent event)
|
||||
{
|
||||
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
final ItemStack item = event.getItem().getItemStack();
|
||||
|
||||
if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
|
||||
{
|
||||
if (!metaPermCheck(user, "pickup", item.getTypeId(), item.getData().getData()))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
event.getItem().setPickupDelay(50);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onPlayerDropItem(final PlayerDropItemEvent event)
|
||||
{
|
||||
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
final ItemStack item = event.getItemDrop().getItemStack();
|
||||
|
||||
if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
|
||||
{
|
||||
if (!metaPermCheck(user, "drop", item.getTypeId(), item.getData().getData()))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
user.updateInventory();
|
||||
if (ess.getSettings().warnOnBuildDisallow())
|
||||
{
|
||||
user.sendMessage(_("antiBuildDrop", item.getType().toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,14 +25,9 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
this.ess = prot.getEssentialsConnect().getEssentials();
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockPlace(final BlockPlaceEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
|
||||
final Block blockPlaced = event.getBlockPlaced();
|
||||
|
@ -79,13 +74,9 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockIgnite(BlockIgniteEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final Block block = event.getBlock();
|
||||
if ((block.getType() == Material.RAILS || block.getType() == Material.POWERED_RAIL || block.getType() == Material.DETECTOR_RAIL)
|
||||
&& prot.getSettingBool(ProtectConfig.protect_rails))
|
||||
|
@ -130,13 +121,9 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockFromTo(final BlockFromToEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final Block toBlock = event.getToBlock();
|
||||
if ((toBlock.getType() == Material.RAILS || toBlock.getType() == Material.POWERED_RAIL || toBlock.getType() == Material.DETECTOR_RAIL)
|
||||
&& prot.getSettingBool(ProtectConfig.protect_rails))
|
||||
|
@ -171,13 +158,9 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockBurn(final BlockBurnEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final Block block = event.getBlock();
|
||||
if ((block.getType() == Material.RAILS || block.getType() == Material.POWERED_RAIL || block.getType() == Material.DETECTOR_RAIL) && prot.getSettingBool(ProtectConfig.protect_rails))
|
||||
{
|
||||
|
@ -207,13 +190,9 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
BlockFace.SELF
|
||||
};
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockBreak(final BlockBreakEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
|
||||
final Block block = event.getBlock();
|
||||
|
@ -290,13 +269,9 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockPistonExtend(BlockPistonExtendEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
for (Block block : event.getBlocks())
|
||||
{
|
||||
if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS
|
||||
|
@ -338,10 +313,10 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockPistonRetract(BlockPistonRetractEvent event)
|
||||
{
|
||||
if (event.isCancelled() || !event.isSticky())
|
||||
if (!event.isSticky())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -26,13 +26,9 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
this.ess = prot.getEssentialsConnect().getEssentials();
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEntityDamage(final EntityDamageEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final Entity target = event.getEntity();
|
||||
|
||||
if (target instanceof Villager && prot.getSettingBool(ProtectConfig.prevent_villager_death))
|
||||
|
@ -191,10 +187,10 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEntityExplode(final EntityExplodeEvent event)
|
||||
{
|
||||
if (event.isCancelled() || event.getEntity() == null)
|
||||
if (event.getEntity() == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -263,17 +259,13 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onCreatureSpawn(final CreatureSpawnEvent event)
|
||||
{
|
||||
if (event.getEntity() instanceof Player)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final EntityType creature = event.getEntityType();
|
||||
if (creature == null)
|
||||
{
|
||||
|
@ -290,13 +282,9 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEntityTarget(final EntityTargetEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!(event.getTarget() instanceof Player))
|
||||
{
|
||||
return;
|
||||
|
@ -316,7 +304,7 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onExplosionPrime(ExplosionPrimeEvent event)
|
||||
{
|
||||
if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
|
||||
|
@ -326,13 +314,9 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEntityChangeBlock(EntityChangeBlockEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (event.getEntityType() == EntityType.ENDERMAN && prot.getSettingBool(ProtectConfig.prevent_enderman_pickup))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
|
|
|
@ -17,11 +17,10 @@ public class EssentialsProtectWeatherListener implements Listener
|
|||
this.prot = prot;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onWeatherChange(final WeatherChangeEvent event)
|
||||
{
|
||||
if (!event.isCancelled()
|
||||
&& prot.getSettingBool(ProtectConfig.disable_weather_storm)
|
||||
if (prot.getSettingBool(ProtectConfig.disable_weather_storm)
|
||||
&& event.toWeatherState())
|
||||
{
|
||||
event.setCancelled(true);
|
||||
|
@ -29,21 +28,19 @@ public class EssentialsProtectWeatherListener implements Listener
|
|||
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onLightningStrike(final LightningStrikeEvent event)
|
||||
{
|
||||
if (!event.isCancelled()
|
||||
&& prot.getSettingBool(ProtectConfig.disable_weather_lightning))
|
||||
if (prot.getSettingBool(ProtectConfig.disable_weather_lightning))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onThunderChange(final ThunderChangeEvent event)
|
||||
{
|
||||
if (!event.isCancelled()
|
||||
&& prot.getSettingBool(ProtectConfig.disable_weather_thunder)
|
||||
if (prot.getSettingBool(ProtectConfig.disable_weather_thunder)
|
||||
&& event.toThunderState())
|
||||
{
|
||||
event.setCancelled(true);
|
||||
|
|
|
@ -101,7 +101,11 @@ public class EssentialsSpawnPlayerListener implements Listener
|
|||
{
|
||||
final IText output = new KeywordReplacer(ess.getSettings().getAnnounceNewPlayerFormat(), user, ess);
|
||||
final SimpleTextPager pager = new SimpleTextPager(output);
|
||||
ess.broadcastMessage(user, pager.getString(0));
|
||||
|
||||
for (String line : pager.getLines())
|
||||
{
|
||||
ess.broadcastMessage(user, line);
|
||||
}
|
||||
}
|
||||
|
||||
final String kitName = ess.getSettings().getNewPlayerKit();
|
||||
|
|
Loading…
Reference in a new issue