1
0
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:
ementalo
2012-07-17 12:26:55 +01:00
445 changed files with 13482 additions and 14755 deletions

View File

@@ -1,7 +0,0 @@
package com.earth2me.essentials.signs;
import net.ess3.api.IEssentialsModule;
public interface ISignsPlugin extends IEssentialsModule {
SignsConfigHolder getSettings();
}

View File

@@ -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();
}
}

View File

@@ -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

View File

@@ -0,0 +1,9 @@
package net.ess3.signs;
import net.ess3.api.IEssentialsModule;
public interface ISignsPlugin extends IEssentialsModule
{
SignsConfigHolder getSettings();
}

View File

@@ -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;
}
}

View File

@@ -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))
{

View File

@@ -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

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.signs;
package net.ess3.signs;
import net.ess3.api.IEssentials;
import net.ess3.api.IUser;

View File

@@ -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;

View File

@@ -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))
{

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.signs;
package net.ess3.signs;
public class SignException extends Exception

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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)

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.signs;
package net.ess3.signs;
import static net.ess3.I18n._;
import net.ess3.api.IEssentials;

View File

@@ -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;
}
}
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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[]
{

View File

@@ -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

View File

@@ -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);
}
}

View File

@@ -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;

View File

@@ -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

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.signs;
package net.ess3.signs;
public enum Signs

View File

@@ -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;
}

View File

@@ -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()
{
}
}

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.signs;
package net.ess3.signs;
import net.ess3.api.IPermission;
import net.ess3.permissions.BasePermission;

View File

@@ -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]