mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-25 23:46:15 +02:00
Merge of server-layer branch
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
|
||||
import net.ess3.api.IEssentialsModule;
|
||||
|
||||
public interface ISignsPlugin extends IEssentialsModule {
|
||||
SignsConfigHolder getSettings();
|
||||
}
|
@@ -1,4 +1,8 @@
|
||||
<<<<<<< HEAD:EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSign.java
|
||||
package com.earth2me.essentials.signs;
|
||||
=======
|
||||
package net.ess3.signs;
|
||||
>>>>>>> master:EssentialsSigns/src/net/ess3/signs/EssentialsSign.java
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import static net.ess3.I18n._;
|
||||
@@ -22,12 +26,12 @@ public class EssentialsSign
|
||||
{
|
||||
private static final Set<Material> EMPTY_SET = new HashSet<Material>();
|
||||
protected transient final String signName;
|
||||
|
||||
|
||||
public EssentialsSign(final String signName)
|
||||
{
|
||||
this.signName = signName;
|
||||
}
|
||||
|
||||
|
||||
public final boolean onSignCreate(final SignChangeEvent event, final IEssentials ess)
|
||||
{
|
||||
final ISign sign = new EventSign(event);
|
||||
@@ -59,22 +63,22 @@ public class EssentialsSign
|
||||
// Return true, so the player sees the wrong sign.
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public String getSuccessName()
|
||||
{
|
||||
return _("signFormatSuccess", this.signName);
|
||||
}
|
||||
|
||||
|
||||
public String getTemplateName()
|
||||
{
|
||||
return _("signFormatTemplate", this.signName);
|
||||
}
|
||||
|
||||
|
||||
private String getUsername(final IUser user)
|
||||
{
|
||||
return user.getName().substring(0, user.getName().length() > 13 ? 13 : user.getName().length());
|
||||
}
|
||||
|
||||
|
||||
public final boolean onSignInteract(final Block block, final Player player, final IEssentials ess)
|
||||
{
|
||||
final ISign sign = new BlockSign(block);
|
||||
@@ -86,7 +90,7 @@ public class EssentialsSign
|
||||
}
|
||||
catch (ChargeException ex)
|
||||
{
|
||||
ess.getCommandHandler().showCommandError(user,signName, ex);
|
||||
ess.getCommandHandler().showCommandError(user, signName, ex);
|
||||
return false;
|
||||
}
|
||||
catch (SignException ex)
|
||||
@@ -95,7 +99,7 @@ public class EssentialsSign
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public final boolean onSignBreak(final Block block, final Player player, final IEssentials ess)
|
||||
{
|
||||
final ISign sign = new BlockSign(block);
|
||||
@@ -111,25 +115,25 @@ public class EssentialsSign
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected boolean onSignCreate(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
protected boolean onSignInteract(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
protected boolean onSignBreak(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public final boolean onBlockPlace(final Block block, final Player player, final IEssentials ess)
|
||||
{
|
||||
IUser user = ess.getUser(player);
|
||||
final IUser user = ess.getUser(player);
|
||||
try
|
||||
{
|
||||
return onBlockPlace(block, user, getUsername(user), ess);
|
||||
@@ -144,10 +148,10 @@ public class EssentialsSign
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public final boolean onBlockInteract(final Block block, final Player player, final IEssentials ess)
|
||||
{
|
||||
IUser user = ess.getUser(player);
|
||||
final IUser user = ess.getUser(player);
|
||||
try
|
||||
{
|
||||
return onBlockInteract(block, user, getUsername(user), ess);
|
||||
@@ -162,10 +166,10 @@ public class EssentialsSign
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public final boolean onBlockBreak(final Block block, final Player player, final IEssentials ess)
|
||||
{
|
||||
IUser user = ess.getUser(player);
|
||||
final IUser user = ess.getUser(player);
|
||||
try
|
||||
{
|
||||
return onBlockBreak(block, user, getUsername(user), ess);
|
||||
@@ -176,32 +180,32 @@ public class EssentialsSign
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public boolean onBlockBreak(final Block block, final IEssentials ess)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public boolean onBlockExplode(final Block block, final IEssentials ess)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public boolean onBlockBurn(final Block block, final IEssentials ess)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public boolean onBlockIgnite(final Block block, final IEssentials ess)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public boolean onBlockPush(final Block block, final IEssentials ess)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public static boolean checkIfBlockBreaksSigns(final Block block)
|
||||
{
|
||||
final Block sign = block.getRelative(BlockFace.UP);
|
||||
@@ -230,32 +234,32 @@ public class EssentialsSign
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isValidSign(final ISign sign)
|
||||
{
|
||||
return sign.getLine(0).matches("§1\\[.*\\]");
|
||||
}
|
||||
|
||||
|
||||
protected boolean onBlockPlace(final Block block, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
protected boolean onBlockInteract(final Block block, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
protected boolean onBlockBreak(final Block block, final IUser player, final String username, final IEssentials ess) throws SignException
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public Set<Material> getBlocks()
|
||||
{
|
||||
return EMPTY_SET;
|
||||
}
|
||||
|
||||
|
||||
protected final void validateTrade(final ISign sign, final int index, final IEssentials ess) throws SignException
|
||||
{
|
||||
final String line = sign.getLine(index).trim();
|
||||
@@ -270,7 +274,7 @@ public class EssentialsSign
|
||||
sign.setLine(index, Util.shortCurrency(money, ess));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected final void validateTrade(final ISign sign, final int amountIndex, final int itemIndex,
|
||||
final IUser player, final IEssentials ess) throws SignException
|
||||
{
|
||||
@@ -286,7 +290,7 @@ public class EssentialsSign
|
||||
sign.setLine(amountIndex, Integer.toString(item.getAmount()));
|
||||
sign.setLine(itemIndex, sign.getLine(itemIndex).trim());
|
||||
}
|
||||
|
||||
|
||||
protected final Trade getTrade(final ISign sign, final int amountIndex, final int itemIndex,
|
||||
final IUser player, final IEssentials ess) throws SignException
|
||||
{
|
||||
@@ -304,7 +308,7 @@ public class EssentialsSign
|
||||
item.setAmount(amount);
|
||||
return new Trade(item, ess);
|
||||
}
|
||||
|
||||
|
||||
protected final void validateInteger(final ISign sign, final int index) throws SignException
|
||||
{
|
||||
final String line = sign.getLine(index).trim();
|
||||
@@ -315,7 +319,7 @@ public class EssentialsSign
|
||||
final int quantity = getIntegerPositive(line);
|
||||
sign.setLine(index, Integer.toString(quantity));
|
||||
}
|
||||
|
||||
|
||||
protected final int getIntegerPositive(final String line) throws SignException
|
||||
{
|
||||
final int quantity = getInteger(line);
|
||||
@@ -325,13 +329,13 @@ public class EssentialsSign
|
||||
}
|
||||
return quantity;
|
||||
}
|
||||
|
||||
|
||||
protected final int getInteger(final String line) throws SignException
|
||||
{
|
||||
try
|
||||
{
|
||||
final int quantity = Integer.parseInt(line);
|
||||
|
||||
|
||||
return quantity;
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
@@ -339,7 +343,7 @@ public class EssentialsSign
|
||||
throw new SignException("Invalid sign", ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected final ItemStack getItemStack(final String itemName, final int quantity, final IEssentials ess) throws SignException
|
||||
{
|
||||
try
|
||||
@@ -353,13 +357,13 @@ public class EssentialsSign
|
||||
throw new SignException(ex.getMessage(), ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected final Double getMoney(final String line) throws SignException
|
||||
{
|
||||
final boolean isMoney = line.matches("^[^0-9-\\.][\\.0-9]+$");
|
||||
return isMoney ? getDoublePositive(line.substring(1)) : null;
|
||||
}
|
||||
|
||||
|
||||
protected final Double getDoublePositive(final String line) throws SignException
|
||||
{
|
||||
final double quantity = getDouble(line);
|
||||
@@ -369,7 +373,7 @@ public class EssentialsSign
|
||||
}
|
||||
return quantity;
|
||||
}
|
||||
|
||||
|
||||
protected final Double getDouble(final String line) throws SignException
|
||||
{
|
||||
try
|
||||
@@ -381,12 +385,12 @@ public class EssentialsSign
|
||||
throw new SignException(ex.getMessage(), ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected final Trade getTrade(final ISign sign, final int index, final IEssentials ess) throws SignException
|
||||
{
|
||||
return getTrade(sign, index, 1, ess);
|
||||
}
|
||||
|
||||
|
||||
protected final Trade getTrade(final ISign sign, final int index, final int decrement, final IEssentials ess) throws SignException
|
||||
{
|
||||
final String line = sign.getLine(index).trim();
|
||||
@@ -394,7 +398,7 @@ public class EssentialsSign
|
||||
{
|
||||
return new Trade(signName.toLowerCase(Locale.ENGLISH) + "sign", ess);
|
||||
}
|
||||
|
||||
|
||||
final Double money = getMoney(line);
|
||||
if (money == null)
|
||||
{
|
||||
@@ -404,7 +408,7 @@ public class EssentialsSign
|
||||
throw new SignException(_("invalidCharge"));
|
||||
}
|
||||
final int quantity = getIntegerPositive(split[0]);
|
||||
|
||||
|
||||
final String item = split[1].toLowerCase(Locale.ENGLISH);
|
||||
if (item.equalsIgnoreCase("times"))
|
||||
{
|
||||
@@ -428,89 +432,89 @@ public class EssentialsSign
|
||||
return new Trade(money, ess);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static class EventSign implements ISign
|
||||
{
|
||||
private final transient SignChangeEvent event;
|
||||
private final transient Block block;
|
||||
|
||||
|
||||
public EventSign(final SignChangeEvent event)
|
||||
{
|
||||
this.event = event;
|
||||
this.block = event.getBlock();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public final String getLine(final int index)
|
||||
{
|
||||
return event.getLine(index);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public final void setLine(final int index, final String text)
|
||||
{
|
||||
event.setLine(index, text);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Block getBlock()
|
||||
{
|
||||
return block;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateSign()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static class BlockSign implements ISign
|
||||
{
|
||||
private final transient Sign sign;
|
||||
private final transient Block block;
|
||||
|
||||
|
||||
public BlockSign(final Block block)
|
||||
{
|
||||
this.block = block;
|
||||
this.sign = (Sign)block.getState();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public final String getLine(final int index)
|
||||
{
|
||||
return sign.getLine(index);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public final void setLine(final int index, final String text)
|
||||
{
|
||||
sign.setLine(index, text);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public final Block getBlock()
|
||||
{
|
||||
return block;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public final void updateSign()
|
||||
{
|
||||
sign.update();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public interface ISign
|
||||
{
|
||||
String getLine(final int index);
|
||||
|
||||
|
||||
void setLine(final int index, final String text);
|
||||
|
||||
|
||||
public Block getBlock();
|
||||
|
||||
|
||||
void updateSign();
|
||||
}
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.api.IEssentials;
|
||||
@@ -12,14 +12,13 @@ import org.bukkit.plugin.java.JavaPlugin;
|
||||
public class EssentialsSignsPlugin extends JavaPlugin implements ISignsPlugin
|
||||
{
|
||||
private static final transient Logger LOGGER = Bukkit.getLogger();
|
||||
private transient IEssentials ess;
|
||||
private transient SignsConfigHolder config;
|
||||
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
final PluginManager pluginManager = getServer().getPluginManager();
|
||||
ess = (IEssentials)pluginManager.getPlugin("Essentials3");
|
||||
final IEssentials ess = (IEssentials)pluginManager.getPlugin("Essentials-3");
|
||||
if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion()))
|
||||
{
|
||||
LOGGER.log(Level.WARNING, _("versionMismatchAll"));
|
||||
@@ -38,8 +37,8 @@ public class EssentialsSignsPlugin extends JavaPlugin implements ISignsPlugin
|
||||
|
||||
final SignEntityListener signEntityListener = new SignEntityListener(ess, this);
|
||||
pluginManager.registerEvents(signEntityListener, this);
|
||||
|
||||
config = new SignsConfigHolder(ess, this);
|
||||
|
||||
config = new SignsConfigHolder(ess, this);
|
||||
}
|
||||
|
||||
@Override
|
9
EssentialsSigns/src/net/ess3/signs/ISignsPlugin.java
Normal file
9
EssentialsSigns/src/net/ess3/signs/ISignsPlugin.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.IEssentialsModule;
|
||||
|
||||
|
||||
public interface ISignsPlugin extends IEssentialsModule
|
||||
{
|
||||
SignsConfigHolder getSettings();
|
||||
}
|
@@ -1,8 +1,9 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.utils.Util;
|
||||
|
||||
|
||||
public class SignBalance extends EssentialsSign
|
||||
@@ -15,7 +16,7 @@ public class SignBalance extends EssentialsSign
|
||||
@Override
|
||||
protected boolean onSignInteract(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException
|
||||
{
|
||||
player.sendMessage(_("balance", player.getMoney()));
|
||||
player.sendMessage(_("balance", Util.displayCurrency(player.getMoney(), ess)));
|
||||
return true;
|
||||
}
|
||||
}
|
@@ -1,7 +1,9 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.ISettings;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.utils.Util;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Material;
|
||||
@@ -19,6 +21,8 @@ public class SignBlockListener implements Listener
|
||||
private final transient IEssentials ess;
|
||||
private final transient ISignsPlugin plugin;
|
||||
private final static Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private final static int WALL_SIGN = Material.WALL_SIGN.getId();
|
||||
private final static int SIGN_POST = Material.SIGN_POST.getId();
|
||||
|
||||
public SignBlockListener(final IEssentials ess, final ISignsPlugin plugin)
|
||||
{
|
||||
@@ -26,10 +30,12 @@ public class SignBlockListener implements Listener
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockBreak(final BlockBreakEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
ISettings settings = ess.getSettings();
|
||||
settings.acquireReadLock();
|
||||
if (plugin.getSettings().areSignsDisabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -43,7 +49,7 @@ public class SignBlockListener implements Listener
|
||||
public boolean protectSignsAndBlocks(final Block block, final Player player)
|
||||
{
|
||||
final int mat = block.getTypeId();
|
||||
if (mat == Material.SIGN_POST.getId() || mat == Material.WALL_SIGN.getId())
|
||||
if (mat == SIGN_POST || mat == WALL_SIGN)
|
||||
{
|
||||
final Sign csign = (Sign)block.getState();
|
||||
|
||||
@@ -56,15 +62,13 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
// prevent any signs be broken by destroying the block they are attached to
|
||||
if (EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
{
|
||||
// prevent any signs be broken by destroying the block they are attached to
|
||||
if (EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Prevented that a block was broken next to a sign.");
|
||||
return true;
|
||||
}
|
||||
for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
|
||||
LOGGER.log(Level.INFO, "Prevented that a block was broken next to a sign.");
|
||||
return true;
|
||||
}
|
||||
for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
|
||||
{
|
||||
if (sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockBreak(block, player, ess))
|
||||
@@ -72,26 +76,24 @@ public class SignBlockListener implements Listener
|
||||
LOGGER.log(Level.INFO, "A block was protected by a sign.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onSignChange(final SignChangeEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
if (plugin.getSettings().areSignsDisabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
IUser user = ess.getUser(event.getPlayer());
|
||||
if (SignsPermissions.COLOR.isAuthorized(user))
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
event.setLine(i, event.getLine(i).replaceAll("&([0-9a-f])", "§$1"));
|
||||
}
|
||||
event.setLine(i, Util.formatString(user, "essentials.signs", event.getLine(i)));
|
||||
}
|
||||
|
||||
for (Signs signs : Signs.values())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
@@ -109,25 +111,25 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockPlace(final BlockPlaceEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
if (plugin.getSettings().areSignsDisabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Block against = event.getBlockAgainst();
|
||||
if ((against.getType() == Material.WALL_SIGN
|
||||
|| against.getType() == Material.SIGN_POST)
|
||||
if ((against.getTypeId() == WALL_SIGN
|
||||
|| against.getTypeId() == SIGN_POST)
|
||||
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(against)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
final Block block = event.getBlock();
|
||||
if (block.getType() == Material.WALL_SIGN
|
||||
|| block.getType() == Material.SIGN_POST)
|
||||
if (block.getTypeId() == WALL_SIGN
|
||||
|| block.getTypeId() == SIGN_POST)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -143,17 +145,17 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockBurn(final BlockBurnEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
if (plugin.getSettings().areSignsDisabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Block block = event.getBlock();
|
||||
if (((block.getType() == Material.WALL_SIGN
|
||||
|| block.getType() == Material.SIGN_POST)
|
||||
if (((block.getTypeId() == WALL_SIGN
|
||||
|| block.getTypeId() == SIGN_POST)
|
||||
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|
||||
|| EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
{
|
||||
@@ -171,17 +173,17 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockIgnite(final BlockIgniteEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
if (plugin.getSettings().areSignsDisabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Block block = event.getBlock();
|
||||
if (((block.getType() == Material.WALL_SIGN
|
||||
|| block.getType() == Material.SIGN_POST)
|
||||
if (((block.getTypeId() == WALL_SIGN
|
||||
|| block.getTypeId() == SIGN_POST)
|
||||
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|
||||
|| EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
{
|
||||
@@ -202,10 +204,15 @@ public class SignBlockListener implements Listener
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockPistonExtend(final BlockPistonExtendEvent event)
|
||||
{
|
||||
if (plugin.getSettings().areSignsDisabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (Block block : event.getBlocks())
|
||||
{
|
||||
if (((block.getType() == Material.WALL_SIGN
|
||||
|| block.getType() == Material.SIGN_POST)
|
||||
if (((block.getTypeId() == WALL_SIGN
|
||||
|| block.getTypeId() == SIGN_POST)
|
||||
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|
||||
|| EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
{
|
||||
@@ -227,11 +234,16 @@ public class SignBlockListener implements Listener
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockPistonRetract(final BlockPistonRetractEvent event)
|
||||
{
|
||||
if (plugin.getSettings().areSignsDisabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.isSticky())
|
||||
{
|
||||
final Block block = event.getBlock();
|
||||
if (((block.getType() == Material.WALL_SIGN
|
||||
|| block.getType() == Material.SIGN_POST)
|
||||
if (((block.getTypeId() == WALL_SIGN
|
||||
|| block.getTypeId() == SIGN_POST)
|
||||
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|
||||
|| EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
{
|
@@ -1,9 +1,9 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.economy.Trade;
|
||||
|
||||
|
||||
public class SignBuy extends EssentialsSign
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
@@ -1,11 +1,11 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.bukkit.Enchantments;
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.bukkit.Enchantments;
|
||||
import net.ess3.economy.Trade;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@@ -39,7 +39,7 @@ public class SignEnchant extends EssentialsSign
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
throw new SignException(ex.getMessage());
|
||||
throw new SignException(ex.getMessage(), ex);
|
||||
}
|
||||
if (level < 1 || level > enchantment.getMaxLevel())
|
||||
{
|
||||
@@ -55,7 +55,7 @@ public class SignEnchant extends EssentialsSign
|
||||
}
|
||||
catch (Throwable ex)
|
||||
{
|
||||
throw new SignException(ex.getMessage());
|
||||
throw new SignException(ex.getMessage(), ex);
|
||||
}
|
||||
getTrade(sign, 3, ess);
|
||||
return true;
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.IEssentials;
|
||||
import org.bukkit.Material;
|
||||
@@ -24,10 +24,15 @@ public class SignEntityListener implements Listener
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onEntityExplode(final EntityExplodeEvent event)
|
||||
{
|
||||
if (plugin.getSettings().areSignsDisabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (Block block : event.blockList())
|
||||
{
|
||||
if (((block.getType() == Material.WALL_SIGN
|
||||
|| block.getType() == Material.SIGN_POST)
|
||||
if (((block.getTypeId() == Material.WALL_SIGN.getId()
|
||||
|| block.getTypeId() == Material.SIGN_POST.getId())
|
||||
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|
||||
|| EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
{
|
||||
@@ -45,17 +50,17 @@ public class SignEntityListener implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onEntityChangeBlock(final EntityChangeBlockEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
if (plugin.getSettings().areSignsDisabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Block block = event.getBlock();
|
||||
if (((block.getType() == Material.WALL_SIGN
|
||||
|| block.getType() == Material.SIGN_POST)
|
||||
if (((block.getTypeId() == Material.WALL_SIGN.getId()
|
||||
|| block.getTypeId() == Material.SIGN_POST.getId())
|
||||
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|
||||
|| EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
{
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
|
||||
public class SignException extends Exception
|
@@ -1,10 +1,10 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.craftbukkit.InventoryWorkaround;
|
||||
import net.ess3.economy.Trade;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.economy.Trade;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.GameMode;
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.economy.Trade;
|
||||
|
||||
|
||||
public class SignHeal extends EssentialsSign
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.economy.Trade;
|
||||
@@ -32,7 +32,7 @@ public class SignKit extends EssentialsSign
|
||||
{
|
||||
try
|
||||
{
|
||||
ess.getKits().getKit(kitName);
|
||||
ess.getKits().getKit(kitName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -58,11 +58,10 @@ public class SignKit extends EssentialsSign
|
||||
final Trade charge = getTrade(sign, 3, ess);
|
||||
charge.isAffordableFor(player);
|
||||
try
|
||||
{
|
||||
final Kit kit = ess.getKits().getKit(kitName);
|
||||
{;
|
||||
final Kit kit = ess.getKits().getKit(kitName);
|
||||
ess.getKits().checkTime(player, kit);
|
||||
ess.getKits().sendKit(player, kit);
|
||||
|
||||
//TODO: Implement Kits from 2.9
|
||||
charge.charge(player);
|
||||
}
|
||||
catch (Exception ex)
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.api.IEssentials;
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.IEssentials;
|
||||
import org.bukkit.Material;
|
||||
@@ -22,26 +22,22 @@ public class SignPlayerListener implements Listener
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
if (plugin.getSettings().areSignsDisabled() || event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Block block = event.getClickedBlock();
|
||||
if (block == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int mat = block.getTypeId();
|
||||
if (mat == Material.SIGN_POST.getId() || mat == Material.WALL_SIGN.getId())
|
||||
{
|
||||
if (event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
final Sign csign = (Sign)block.getState();
|
||||
for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
|
||||
{
|
||||
@@ -62,7 +58,6 @@ public class SignPlayerListener implements Listener
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,11 +1,11 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.utils.Util;
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.utils.Util;
|
||||
import java.util.*;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
@@ -147,7 +147,7 @@ public class SignProtection extends EssentialsSign
|
||||
{
|
||||
return SignProtectionState.OWNER;
|
||||
}
|
||||
if (Util.stripColor(sign.getLine(3)).equalsIgnoreCase(username))
|
||||
if (Util.stripFormat(sign.getLine(3)).equalsIgnoreCase(username))
|
||||
{
|
||||
return SignProtectionState.OWNER;
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.economy.Trade;
|
||||
|
||||
|
||||
public class SignSell extends EssentialsSign
|
@@ -1,10 +1,10 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.commands.Commandspawnmob;
|
||||
import net.ess3.economy.Trade;
|
||||
|
||||
|
||||
public class SignSpawnmob extends EssentialsSign
|
||||
@@ -22,14 +22,13 @@ public class SignSpawnmob extends EssentialsSign
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//TODO: This should call a method not a command
|
||||
@Override
|
||||
protected boolean onSignInteract(ISign sign, IUser player, String username, IEssentials ess) throws SignException, ChargeException
|
||||
{
|
||||
final Trade charge = getTrade(sign, 3, ess);
|
||||
charge.isAffordableFor(player);
|
||||
Commandspawnmob command = new Commandspawnmob();
|
||||
Commandspawnmob command = new Commandspawnmob();
|
||||
command.init(ess, "spawnmob");
|
||||
String[] args = new String[]
|
||||
{
|
@@ -1,10 +1,10 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.economy.Trade;
|
||||
|
||||
|
||||
public class SignTime extends EssentialsSign
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import static net.ess3.I18n._;
|
||||
@@ -228,7 +228,7 @@ public class SignTrade extends EssentialsSign
|
||||
}
|
||||
catch (SignException e)
|
||||
{
|
||||
throw new SignException(_("tradeSignEmpty"));
|
||||
throw new SignException(_("tradeSignEmpty"), e);
|
||||
}
|
||||
}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.permissions.WarpPermissions;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.ChargeException;
|
||||
import static net.ess3.I18n._;
|
||||
import net.ess3.economy.Trade;
|
||||
import net.ess3.api.ChargeException;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.economy.Trade;
|
||||
|
||||
|
||||
public class SignWeather extends EssentialsSign
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
|
||||
public enum Signs
|
@@ -1,10 +1,12 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.storage.StorageObject;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class SignsConfig implements StorageObject {
|
||||
|
||||
public class SignsConfig implements StorageObject
|
||||
{
|
||||
private Map<String, Boolean> signs = new HashMap<String, Boolean>();
|
||||
|
||||
public Map<String, Boolean> getSigns()
|
||||
@@ -12,7 +14,7 @@ public class SignsConfig implements StorageObject {
|
||||
return signs;
|
||||
}
|
||||
|
||||
public void setSigns(Map<String, Boolean> signs)
|
||||
public void setSigns(final Map<String, Boolean> signs)
|
||||
{
|
||||
this.signs = signs;
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.storage.AsyncStorageObjectHolder;
|
||||
@@ -10,8 +10,9 @@ import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class SignsConfigHolder extends AsyncStorageObjectHolder<SignsConfig>
|
||||
{
|
||||
private final Plugin plugin;
|
||||
private final transient Plugin plugin;
|
||||
private Set<EssentialsSign> enabledSigns = new HashSet<EssentialsSign>();
|
||||
private boolean signsEnabled = false;
|
||||
|
||||
public SignsConfigHolder(final IEssentials ess, final Plugin plugin)
|
||||
{
|
||||
@@ -21,14 +22,20 @@ public class SignsConfigHolder extends AsyncStorageObjectHolder<SignsConfig>
|
||||
acquireReadLock();
|
||||
try
|
||||
{
|
||||
Map<String, Boolean> signs = getData().getSigns();
|
||||
final Map<String, Boolean> signs = getData().getSigns();
|
||||
for (Map.Entry<String, Boolean> entry : signs.entrySet())
|
||||
{
|
||||
Signs sign = Signs.valueOf(entry.getKey().toUpperCase(Locale.ENGLISH));
|
||||
if (entry.getKey().trim().toUpperCase(Locale.ENGLISH).equals("COLOR") || entry.getKey().trim().toUpperCase(Locale.ENGLISH).equals("COLOUR"))
|
||||
{
|
||||
signsEnabled = true;
|
||||
continue;
|
||||
}
|
||||
final Signs sign = Signs.valueOf(entry.getKey().toUpperCase(Locale.ENGLISH));
|
||||
if (sign != null && entry.getValue())
|
||||
{
|
||||
enabledSigns.add(sign.getSign());
|
||||
}
|
||||
signsEnabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
@@ -38,7 +45,7 @@ public class SignsConfigHolder extends AsyncStorageObjectHolder<SignsConfig>
|
||||
acquireWriteLock();
|
||||
try
|
||||
{
|
||||
Map<String, Boolean> signs = new HashMap<String, Boolean>();
|
||||
final Map<String, Boolean> signs = new HashMap<String, Boolean>();
|
||||
for (Signs sign : Signs.values())
|
||||
{
|
||||
signs.put(sign.toString(), enabledSigns.contains(sign.getSign()));
|
||||
@@ -61,4 +68,19 @@ public class SignsConfigHolder extends AsyncStorageObjectHolder<SignsConfig>
|
||||
{
|
||||
return enabledSigns;
|
||||
}
|
||||
|
||||
public boolean areSignsDisabled()
|
||||
{
|
||||
return !signsEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finishRead()
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finishWrite()
|
||||
{
|
||||
}
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.signs;
|
||||
package net.ess3.signs;
|
||||
|
||||
import net.ess3.api.IPermission;
|
||||
import net.ess3.permissions.BasePermission;
|
@@ -1,9 +1,9 @@
|
||||
# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.)
|
||||
name: EssentialsSigns
|
||||
main: com.earth2me.essentials.signs.EssentialsSignsPlugin
|
||||
main: net.ess3.signs.EssentialsSignsPlugin
|
||||
# Note to developers: This next line cannot change, or the automatic versioning system will break.
|
||||
version: ${build.number}
|
||||
website: http://tiny.cc/EssentialsWiki
|
||||
description: Provides signs, utilizing Essentials.
|
||||
authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits]
|
||||
depend: [Essentials3]
|
||||
depend: [Essentials-3]
|
Reference in New Issue
Block a user