diff options
author | snowleo <schneeleo@gmail.com> | 2011-06-08 03:18:33 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-06-08 03:18:33 +0200 |
commit | bcf81d9f0a30b109292815047b0cece2eb0339b9 (patch) | |
tree | 1fbf14bded439c2a564de35efa6e44edd5fd936b /Essentials/src/com/earth2me/essentials/signs/SignTime.java | |
parent | 775c8d34dd3e0e38d590cb31eb11728bf67ae6ed (diff) | |
download | Essentials-bcf81d9f0a30b109292815047b0cece2eb0339b9.tar Essentials-bcf81d9f0a30b109292815047b0cece2eb0339b9.tar.gz Essentials-bcf81d9f0a30b109292815047b0cece2eb0339b9.tar.lz Essentials-bcf81d9f0a30b109292815047b0cece2eb0339b9.tar.xz Essentials-bcf81d9f0a30b109292815047b0cece2eb0339b9.zip |
Refactoring of the signs
Todo: Eco signs, Protection signs
New permission: essentials.signs.[signname].break
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/signs/SignTime.java')
-rw-r--r-- | Essentials/src/com/earth2me/essentials/signs/SignTime.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTime.java b/Essentials/src/com/earth2me/essentials/signs/SignTime.java new file mode 100644 index 000000000..845cfbcca --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/signs/SignTime.java @@ -0,0 +1,57 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.Charge; +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; + + +public class SignTime extends EssentialsSign +{ + public SignTime() + { + super("Time"); + } + + @Override + protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException + { + validateCharge(sign, 2); + final String timeString = sign.getLine(1); + if ("Day".equalsIgnoreCase(timeString)) + { + sign.setLine(1, "§2Day"); + return true; + } + if ("Night".equalsIgnoreCase(timeString)) + { + sign.setLine(1, "§2Night"); + return true; + } + throw new SignException(Util.i18n("onlyDayNight")); + } + + @Override + protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException + { + final Charge charge = getCharge(sign, 2, ess); + charge.isAffordableFor(player); + final String timeString = sign.getLine(1); + long time = player.getWorld().getTime(); + time -= time % 24000; + if ("§2Day".equalsIgnoreCase(timeString)) + { + player.getWorld().setTime(time + 24000); + charge.charge(player); + return true; + } + if ("§2Night".equalsIgnoreCase(timeString)) + { + player.getWorld().setTime(time + 37700); + charge.charge(player); + return true; + } + throw new SignException(Util.i18n("onlyDayNight")); + } +} |