diff options
author | snowleo <schneeleo@gmail.com> | 2011-12-14 16:04:15 +0100 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-12-14 16:04:15 +0100 |
commit | 0f1eb9b4f910b4f61f4c89fbad14b6485c372756 (patch) | |
tree | 62257261b99340c51a36b9dbdc97d72ec226a01f /EssentialsSigns/src/com/earth2me/essentials/signs/SignWarp.java | |
parent | 503e837cfdf1eaf0a4ae8b04199fc1c60dd82923 (diff) | |
download | Essentials-0f1eb9b4f910b4f61f4c89fbad14b6485c372756.tar Essentials-0f1eb9b4f910b4f61f4c89fbad14b6485c372756.tar.gz Essentials-0f1eb9b4f910b4f61f4c89fbad14b6485c372756.tar.lz Essentials-0f1eb9b4f910b4f61f4c89fbad14b6485c372756.tar.xz Essentials-0f1eb9b4f910b4f61f4c89fbad14b6485c372756.zip |
Moved signs code to a new module
Diffstat (limited to 'EssentialsSigns/src/com/earth2me/essentials/signs/SignWarp.java')
-rw-r--r-- | EssentialsSigns/src/com/earth2me/essentials/signs/SignWarp.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignWarp.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignWarp.java new file mode 100644 index 000000000..3ab254705 --- /dev/null +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignWarp.java @@ -0,0 +1,70 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.api.IEssentials; +import com.earth2me.essentials.Trade; +import com.earth2me.essentials.api.IUser; +import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; + + +public class SignWarp extends EssentialsSign +{ + public SignWarp() + { + super("Warp"); + } + + @Override + protected boolean onSignCreate(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException + { + validateTrade(sign, 3, ess); + final String warpName = sign.getLine(1); + + if (warpName.isEmpty()) + { + sign.setLine(1, "§dWarp name!"); + return false; + } + else + { + try + { + ess.getWarps().getWarp(warpName); + } + catch (Exception ex) + { + throw new SignException(ex.getMessage(), ex); + } + final String group = sign.getLine(2); + if ("Everyone".equalsIgnoreCase(group) || "Everybody".equalsIgnoreCase(group)) + { + sign.setLine(2, "§2Everyone"); + } + return true; + } + } + + @Override + protected boolean onSignInteract(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException + { + final String warpName = sign.getLine(1); + final String group = sign.getLine(2); + if ((!group.isEmpty() + && ("§2Everyone".equals(group) + || player.inGroup(group))) + || (group.isEmpty() && (!ess.getSettings().getPerWarpPermission() || player.isAuthorized("essentials.warp." + warpName)))) + { + final Trade charge = getTrade(sign, 3, ess); + try + { + player.getTeleport().warp(warpName, charge, TeleportCause.PLUGIN); + } + catch (Exception ex) + { + throw new SignException(ex.getMessage(), ex); + } + return true; + } + return false; + } +} |