diff options
301 files changed, 3186 insertions, 7784 deletions
diff --git a/Essentials/pom.xml b/Essentials/pom.xml index 037bb6f11..b6c41cbbb 100644 --- a/Essentials/pom.xml +++ b/Essentials/pom.xml @@ -36,7 +36,7 @@ <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> - <version>0.11.2</version> + <version>0.11.4</version> </dependency> <dependency> <groupId>ru.tehkode</groupId> @@ -91,5 +91,11 @@ <artifactId>Vault</artifactId> <version>1.2</version> </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <version>1.9.0</version> + <scope>test</scope> + </dependency> </dependencies> </project> diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index 15b63260d..df5ba9e0e 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cYou do the crime, you do the time. jailNotExist=That jail does not exist. jailReleased=\u00a77Player \u00a7e{0}\u00a77 unjailed. jailReleasedPlayerNotify=\u00a77You have been released! -jailSentenceExtended=Jail time extend to: {0) +jailSentenceExtended=Jail time extend to: {0} jailSet=\u00a77Jail {0} has been set jumpError=That would hurt your computer's brain. kickDefault=Kicked from server diff --git a/Essentials/src/messages_cs.properties b/Essentials/src/messages_cs.properties index 3a20bf6cb..773310b58 100644 --- a/Essentials/src/messages_cs.properties +++ b/Essentials/src/messages_cs.properties @@ -174,7 +174,7 @@ jailMessage=\u00a7cPorusil jsi pravidla, ted si to odsedis! jailNotExist=Toto vezeni neexistuje. jailReleased=\u00a77Hrac \u00a7e{0}\u00a77 byl propusten na svobodu. jailReleasedPlayerNotify=\u00a77Byl jsi propusten na svobodu! -jailSentenceExtended=Cas ve vezeni prodlouzen na: {0) +jailSentenceExtended=Cas ve vezeni prodlouzen na: {0} jailSet=\u00a77Vezeni {0} bylo vytvoreno. jumpError=Tohle by tvuj procesor nemusel rozdychat. kickDefault=Vyhozen ze serveru diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index cb1ee1056..7eeb72a3a 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cDu bryder reglerne, du tager straffen. jailNotExist=Det f\u00e6ngsel eksisterer ikke. jailReleased=\u00a77Player \u00a7e{0}\u00a77 befriet fra f\u00c3\u00a6ngslet. jailReleasedPlayerNotify=\u00a77Du er blevet befriet fra f\u00c3\u00a6nglset! -jailSentenceExtended=F\u00c3\u00a6ngselsdom forl\u00c3\u00a6nget til: {0) +jailSentenceExtended=F\u00c3\u00a6ngselsdom forl\u00c3\u00a6nget til: {0} jailSet=\u00a77F\u00e6ngsel {0} er blevet sat. jumpError=Dette vil skade din computer''s hjerne. kickDefault=Kicked fra serveren. diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index 5b6c8d95d..d02e428ee 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cDu hast ein Verbrechen begangen, also hast du Zeit. jailNotExist=Dieses Gef\u00e4ngnis existiert nicht. jailReleased=\u00a77Spieler \u00a7e{0}\u00a77 wurde freigelassen. jailReleasedPlayerNotify=\u00a77Du wurdest freigelassen! -jailSentenceExtended=Gef\u00e4ngnisszeit erweitert auf: {0) +jailSentenceExtended=Gef\u00e4ngnisszeit erweitert auf: {0} jailSet=\u00a77Gef\u00e4ngnis {0} wurde erstellt. jumpError=Das w\u00fcrde deinen Computer \u00fcberlasten. kickDefault=Vom Server geworfen diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index 15b63260d..df5ba9e0e 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cYou do the crime, you do the time. jailNotExist=That jail does not exist. jailReleased=\u00a77Player \u00a7e{0}\u00a77 unjailed. jailReleasedPlayerNotify=\u00a77You have been released! -jailSentenceExtended=Jail time extend to: {0) +jailSentenceExtended=Jail time extend to: {0} jailSet=\u00a77Jail {0} has been set jumpError=That would hurt your computer's brain. kickDefault=Kicked from server diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties index 640707b2b..2786c96ec 100644 --- a/Essentials/src/messages_es.properties +++ b/Essentials/src/messages_es.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cPor hacer el mal, tiempo en la carcel estaras. jailNotExist=Esa carcel no existe. jailReleased=\u00a77Player \u00a7e{0}\u00a77 liberado. jailReleasedPlayerNotify=\u00a77 Has sido liberado!! -jailSentenceExtended=El tiempo en la carcel se alarga hasta: {0) +jailSentenceExtended=El tiempo en la carcel se alarga hasta: {0} jailSet=\u00a77Carcel {0} ha sido puesta jumpError=Eso es demasiado para tu ordenador! kickDefault=Echado del servidor. diff --git a/Essentials/src/messages_fi.properties b/Essentials/src/messages_fi.properties index f56a0a00b..300c858ee 100644 --- a/Essentials/src/messages_fi.properties +++ b/Essentials/src/messages_fi.properties @@ -166,7 +166,7 @@ jailMessage=\u00a7cSin\u00e4 teet rikoksen, istut my\u00f6s sen mukaan. jailNotExist=Tuota vankilaa ei ole olemassa. jailReleased=\u00a77Pelaaja \u00a7e{0}\u00a77 vapautettu. jailReleasedPlayerNotify=\u00a77Sinut on vapautettu! -jailSentenceExtended=Vankila aika pidennetty: {0) +jailSentenceExtended=Vankila aika pidennetty: {0} jailSet=\u00a77Vankila {0} on asetettu jumpError=Tuo vahingoittaisi koneesi aivoja. kickDefault=Potkittu palvelimelta diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index d0243cf32..6cbc99a09 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cVous avez commis un crime, vous en payez le prix. jailNotExist=Cette prison n'existe pas. jailReleased=\u00a77Joueur \u00a7e{0}\u00a77 lib\u00e9r\u00e9. jailReleasedPlayerNotify=\u00a77Vous avez \u00e9t\u00e9 lib\u00e9r\u00e9 ! -jailSentenceExtended=Dur\u00e9e d''emprisonnement rallong\u00e9e de : {0) +jailSentenceExtended=Dur\u00e9e d''emprisonnement rallong\u00e9e de : {0} jailSet=\u00a77La prison {0} a \u00e9t\u00e9 cr\u00e9\u00e9. jumpError=\u00c7a aurait pu faire mal au cerveau de votre ordinateur. kickDefault=\u00c9ject\u00e9 du serveur diff --git a/Essentials/src/messages_it.properties b/Essentials/src/messages_it.properties index 4a966bd50..e63648ed6 100644 --- a/Essentials/src/messages_it.properties +++ b/Essentials/src/messages_it.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cAvrai tempo per riflettere..in prigione. jailNotExist=La prigione dichiarata non esiste. jailReleased=\u00a77Player \u00a7e{0}\u00a77 scarcerato. jailReleasedPlayerNotify=\u00a77Sei stato scarcerato! -jailSentenceExtended=Tempo di incarcerazione aumentato di: {0) +jailSentenceExtended=Tempo di incarcerazione aumentato di: {0} jailSet=\u00a77{0} e'' ora una prigione. jumpError=Cosi'' facendo danneggerai la cpu. kickDefault=Kickato dal server diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index a9335f9e0..3c07ca556 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cJij begaat het misdrijf, jij zit je tijd uit. jailNotExist=Die gevangenis bestaat niet. jailReleased=\u00a77Speler \u00a7e{0}\u00a77 vrijgelaten. jailReleasedPlayerNotify=\u00a77Je bent vrijgelaten! -jailSentenceExtended=Gevangenistijd verlengt tot: {0) +jailSentenceExtended=Gevangenistijd verlengt tot: {0} jailSet=\u00a77Gevangenis {0} is ingesteld jumpError=Dat zou je computers hersenen beschadigen. kickDefault=Je bent van de server afgeschopt. diff --git a/Essentials/src/messages_pl.properties b/Essentials/src/messages_pl.properties index 7d55bd58e..fd4dcc151 100644 --- a/Essentials/src/messages_pl.properties +++ b/Essentials/src/messages_pl.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cZa kazde przewinienie czeka kara. jailNotExist=Nie ma takiego wiezienia.. jailReleased=\u00a77Gracz \u00a7e{0}\u00a77 wypuszczony z wiezienia. jailReleasedPlayerNotify=\u00a77Zostales zwolniony! -jailSentenceExtended=Czas pobyty w wiezieniu zwiekszony do: {0) +jailSentenceExtended=Czas pobyty w wiezieniu zwiekszony do: {0} jailSet=\u00a77Zostalo stworzone wiezienie \u0093{0}\u0094. jumpError=To moglo by ci cos zrobic. kickDefault=Zostales wyrzucony z serwera. diff --git a/Essentials/src/messages_pt.properties b/Essentials/src/messages_pt.properties index e4ccd73a7..fbd1c4266 100644 --- a/Essentials/src/messages_pt.properties +++ b/Essentials/src/messages_pt.properties @@ -169,7 +169,7 @@ jailMessage=\u00a7cVoc\u00ea faz o crime, voc\u00ea cumpre a pena. jailNotExist=esta cadeia nao existe. jailReleased=\u00a77Player \u00a7e{0}\u00a77 libertado. jailReleasedPlayerNotify=\u00a77Voc\u00ea foi solto! -jailSentenceExtended=Tempo de prisao estendido para: {0) +jailSentenceExtended=Tempo de prisao estendido para: {0} jailSet=\u00a77Cela {0} foi definida jumpError=Isso prejudica o c\u00e9rebro do seu computador. kickDefault=Kickado do servidor. diff --git a/Essentials/src/messages_se.properties b/Essentials/src/messages_se.properties index f0741b3db..34aaf86c3 100644 --- a/Essentials/src/messages_se.properties +++ b/Essentials/src/messages_se.properties @@ -166,7 +166,7 @@ jailMessage=\u00a7cBryter du mot reglerna, får du stå ditt kast. jailNotExist=Det fängelset finns inte. jailReleased=\u00a77Spelaren \u00a7e{0}\u00a77 är frisläppt. jailReleasedPlayerNotify=\u00a77Du har blivit frisläppt! -jailSentenceExtended=Fängelsestraffet förlängt till: {0) +jailSentenceExtended=Fängelsestraffet förlängt till: {0} jailSet=\u00a77Fängelset {0} har skapats jumpError=Det skulle skadat din dators hjärna. kickDefault=Utsparkad från server diff --git a/Essentials/src/net/ess3/Console.java b/Essentials/src/net/ess3/Console.java index 4639a531a..93c638a77 100644 --- a/Essentials/src/net/ess3/Console.java +++ b/Essentials/src/net/ess3/Console.java @@ -1,7 +1,7 @@ package net.ess3; import net.ess3.api.IReplyTo; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public final class Console implements IReplyTo diff --git a/Essentials/src/net/ess3/Essentials.java b/Essentials/src/net/ess3/Essentials.java index f99604076..f1deaee99 100644 --- a/Essentials/src/net/ess3/Essentials.java +++ b/Essentials/src/net/ess3/Essentials.java @@ -17,10 +17,6 @@ */ package net.ess3; -import net.ess3.api.server.Player; -import net.ess3.api.server.Plugin; -import net.ess3.api.server.Server; -import net.ess3.api.server.World; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -36,21 +32,16 @@ import net.ess3.economy.Economy; import net.ess3.economy.Trade; import net.ess3.economy.WorthHolder; import net.ess3.economy.register.Methods; -import net.ess3.listener.*; import net.ess3.metrics.Metrics; -import net.ess3.metrics.MetricsListener; -import net.ess3.metrics.MetricsStarter; import net.ess3.ranks.RanksStorage; import net.ess3.settings.SettingsHolder; import net.ess3.settings.SpawnsHolder; import net.ess3.user.UserMap; import net.ess3.utils.ExecuteTimer; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.Server; +import org.bukkit.World; +import org.bukkit.entity.Player; import org.bukkit.plugin.InvalidDescriptionException; -import org.yaml.snakeyaml.error.YAMLException; public class Essentials implements IEssentials @@ -78,7 +69,7 @@ public class Essentials implements IEssentials @Getter private final Logger logger; @Getter - private final Plugin plugin; + private final IPlugin plugin; public static boolean testing; private transient Metrics metrics; @Getter @@ -86,7 +77,7 @@ public class Essentials implements IEssentials @Getter private transient List<String> vanishedPlayers = new ArrayList<String>(); - public Essentials(final Server server, final Logger logger, final Plugin plugin) + public Essentials(final Server server, final Logger logger, final IPlugin plugin) { this.server = server; this.logger = logger; @@ -131,83 +122,44 @@ public class Essentials implements IEssentials execTimer.start(); execTimer.mark("I18n1"); - - execTimer.mark("BukkitCheck"); - try - { - //final EssentialsUpgrade upgrade = new EssentialsUpgrade(this); - //upgrade.beforeSettings(); - //execTimer.mark("Upgrade"); - reloadList = new ArrayList<IReload>(); - settings = new SettingsHolder(this); - reloadList.add(settings); - execTimer.mark("Settings"); - //upgrade.afterSettings(); - //execTimer.mark("Upgrade2"); - i18n.updateLocale(settings.getLocale()); - userMap = new UserMap(this); - reloadList.add(userMap); - execTimer.mark("Init(Usermap)"); - groups = new RanksStorage(this); - reloadList.add((RanksStorage)groups); - warps = new Warps(this); - reloadList.add(warps); - execTimer.mark("Init(Spawn/Warp)"); - worth = new WorthHolder(this); - reloadList.add(worth); - itemDb = new ItemDb(this); - reloadList.add(itemDb); - execTimer.mark("Init(Worth/ItemDB)"); - kits = new Kits(this); - reloadList.add(kits); - commandHandler = new EssentialsCommandHandler(Essentials.class.getClassLoader(), "net.ess3.commands.Command", "essentials.", this); - reloadList.add(commandHandler); - economy = new Economy(this); - reloadList.add(economy); - spawns = new SpawnsHolder(this); - reloadList.add(spawns); - onReload(); - } - catch (YAMLException exception) - { - if (pm.getPlugin("EssentialsUpdate") != null) - { - logger.log(Level.SEVERE, I18n._("essentialsHelp2")); - } - else - { - logger.log(Level.SEVERE, I18n._("essentialsHelp1")); - } - logger.log(Level.SEVERE, exception.toString()); - pm.registerEvents(new Listener() - { - @EventHandler(priority = EventPriority.LOW) - public void onPlayerJoin(final PlayerJoinEvent event) - { - event.getPlayer().sendMessage("Essentials failed to load, read the log file."); - } - }, this); - for (Player player : getServer().getOnlinePlayers()) - { - player.sendMessage("Essentials failed to load, read the log file."); - } - this.setEnabled(false); - return; - } - backup = new Backup(this); - //permissionsHandler = new PermissionsHandler(this); - final EssentialsPluginListener serverListener = new EssentialsPluginListener(this); - pm.registerEvents(serverListener, this); - reloadList.add(serverListener); - final EssentialsPlayerListener playerListener = new EssentialsPlayerListener(this); - pm.registerEvents(playerListener, this); + execTimer.mark("BukkitCheck"); - final EssentialsBlockListener blockListener = new EssentialsBlockListener(this); - pm.registerEvents(blockListener, this); + //final EssentialsUpgrade upgrade = new EssentialsUpgrade(this); + //upgrade.beforeSettings(); + //execTimer.mark("Upgrade"); + reloadList = new ArrayList<IReload>(); + settings = new SettingsHolder(this); + reloadList.add(settings); + execTimer.mark("Settings"); + //upgrade.afterSettings(); + //execTimer.mark("Upgrade2"); + i18n.updateLocale(settings.getLocale()); + userMap = new UserMap(this); + reloadList.add(userMap); + execTimer.mark("Init(Usermap)"); + groups = new RanksStorage(this); + reloadList.add((RanksStorage)groups); + warps = new Warps(this); + reloadList.add(warps); + execTimer.mark("Init(Spawn/Warp)"); + worth = new WorthHolder(this); + reloadList.add(worth); + itemDb = new ItemDb(this); + reloadList.add(itemDb); + execTimer.mark("Init(Worth/ItemDB)"); + kits = new Kits(this); + reloadList.add(kits); + commandHandler = new EssentialsCommandHandler(Essentials.class.getClassLoader(), "net.ess3.commands.Command", "essentials.", this); + reloadList.add(commandHandler); + economy = new Economy(this); + reloadList.add(economy); + spawns = new SpawnsHolder(this); + reloadList.add(spawns); + onReload(); - final EssentialsEntityListener entityListener = new EssentialsEntityListener(this); - pm.registerEvents(entityListener, this); + backup = new Backup(this); + //permissionsHandler = new PermissionsHandler(this); jails = new Jails(this); reloadList.add(jails); @@ -217,17 +169,6 @@ public class Essentials implements IEssentials getPlugin().scheduleSyncRepeatingTask(timer, 1, 100); execTimer.mark("RegListeners"); - final MetricsStarter metricsStarter = new MetricsStarter(this); - if (metricsStarter.getStart() != null && metricsStarter.getStart() == true) - { - getServer().getScheduler().scheduleAsyncDelayedTask(this, metricsStarter, 1); - } - else if (metricsStarter.getStart() != null && metricsStarter.getStart() == false) - { - final MetricsListener metricsListener = new MetricsListener(this, metricsStarter); - pm.registerEvents(metricsListener, this); - } - final String timeroutput = execTimer.end(); if (getSettings().isDebug()) { @@ -240,7 +181,7 @@ public class Essentials implements IEssentials { for (Player p : getServer().getOnlinePlayers()) { - IUser user = getUser(p); + IUser user = getUserMap().getUser(p); if (user.isVanished()) { user.toggleVanished(); @@ -308,18 +249,6 @@ public class Essentials implements IEssentials } @Override - public IUser getUser(final Player player) - { - return userMap.getUser(player); - } - - @Override - public IUser getUser(final String playerName) - { - return userMap.getUser(playerName); - } - - @Override public World getWorld(final String name) { if (name.matches("[0-9]+")) @@ -358,14 +287,14 @@ public class Essentials implements IEssentials } for (Player player : getServer().getOnlinePlayers()) { - final IUser user = player.getUser(); + final IUser user = getUserMap().getUser(player); if (!user.isIgnoringPlayer(sender)) { player.sendMessage(message); } } - return getServer().getOnlinePlayers().size(); + return getServer().getOnlinePlayers().length; } /* @@ -382,7 +311,7 @@ public class Essentials implements IEssentials { return userMap; } - + @Override public IRanks getRanks() { @@ -412,4 +341,10 @@ public class Essentials implements IEssentials { return economy; } + + @Override + public void reload() + { + //do something + } } diff --git a/Essentials/src/net/ess3/EssentialsTimer.java b/Essentials/src/net/ess3/EssentialsTimer.java index 9066e2f0c..8382b6290 100644 --- a/Essentials/src/net/ess3/EssentialsTimer.java +++ b/Essentials/src/net/ess3/EssentialsTimer.java @@ -5,9 +5,9 @@ import java.util.logging.Level; import net.ess3.api.IEssentials; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; import net.ess3.user.UserData.TimestampType; +import org.bukkit.entity.Player; public class EssentialsTimer implements Runnable @@ -46,7 +46,7 @@ public class EssentialsTimer implements Runnable try { - final IUser user = player.getUser(); + final IUser user = ess.getUserMap().getUser(player); if (user == null) { continue; } diff --git a/Essentials/src/net/ess3/ItemDb.java b/Essentials/src/net/ess3/ItemDb.java index 2159fd4e3..2127dd93e 100644 --- a/Essentials/src/net/ess3/ItemDb.java +++ b/Essentials/src/net/ess3/ItemDb.java @@ -1,7 +1,5 @@ package net.ess3; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -14,6 +12,8 @@ import net.ess3.api.IItemDb; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; import net.ess3.storage.ManagedFile; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; public class ItemDb implements IItemDb @@ -129,9 +129,9 @@ public class ItemDb implements IItemDb metaData = (short)((item >> 32) & 0xffffL); } } - else if (Material.get(itemname) != null) + else if (Material.matchMaterial(itemname) != null) { - itemid = Material.get(itemname).getId(); + itemid = Material.matchMaterial(itemname).getId(); metaData = 0; } else @@ -140,12 +140,12 @@ public class ItemDb implements IItemDb } } - final Material mat = Material.get(itemid); + final Material mat = Material.getMaterial(itemid); if (mat == null) { throw new Exception(_("unknownItemId", itemid)); } - final ItemStack retval = ItemStack.create(mat, mat.getMaxStackSize(), metaData); + final ItemStack retval = new ItemStack(mat, mat.getMaxStackSize(), metaData); return retval; } } diff --git a/Essentials/src/net/ess3/Jails.java b/Essentials/src/net/ess3/Jails.java index e2dfec477..7dc513a67 100644 --- a/Essentials/src/net/ess3/Jails.java +++ b/Essentials/src/net/ess3/Jails.java @@ -1,15 +1,15 @@ package net.ess3; -import static net.ess3.I18n._; -import net.ess3.api.IEssentials; -import net.ess3.api.IJails; -import net.ess3.api.IUser; -import net.ess3.storage.AsyncStorageObjectHolder; import java.io.File; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import lombok.Cleanup; +import static net.ess3.I18n._; +import net.ess3.api.IEssentials; +import net.ess3.api.IJails; +import net.ess3.api.IUser; +import net.ess3.storage.AsyncStorageObjectHolder; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.event.EventHandler; @@ -42,8 +42,8 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp final PluginManager pluginManager = ess.getServer().getPluginManager(); final JailBlockListener blockListener = new JailBlockListener(); final JailPlayerListener playerListener = new JailPlayerListener(); - pluginManager.registerEvents(blockListener, ess); - pluginManager.registerEvents(playerListener, ess); + pluginManager.registerEvents(blockListener, ess.getPlugin()); + pluginManager.registerEvents(playerListener, ess.getPlugin()); } @Override @@ -157,6 +157,24 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp } } + @Override + public void finishRead() + { + + } + + @Override + public void finishWrite() + { + + } + + @Override + public int getCount() + { + throw new UnsupportedOperationException("Not supported yet."); + } + private class JailBlockListener implements Listener { diff --git a/Essentials/src/net/ess3/Kits.java b/Essentials/src/net/ess3/Kits.java index 3dfcac31f..24d7cdf5f 100644 --- a/Essentials/src/net/ess3/Kits.java +++ b/Essentials/src/net/ess3/Kits.java @@ -7,12 +7,12 @@ import static net.ess3.I18n._; import net.ess3.api.IEssentials; import net.ess3.api.IKits; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; import net.ess3.commands.NoChargeException; import net.ess3.settings.Kit; import net.ess3.storage.AsyncStorageObjectHolder; import net.ess3.user.UserData.TimestampType; import net.ess3.utils.DateUtil; +import org.bukkit.inventory.ItemStack; public class Kits extends AsyncStorageObjectHolder<net.ess3.settings.Kits> implements IKits diff --git a/Essentials/src/net/ess3/Teleport.java b/Essentials/src/net/ess3/Teleport.java index 04e47e493..39d6bf8a3 100644 --- a/Essentials/src/net/ess3/Teleport.java +++ b/Essentials/src/net/ess3/Teleport.java @@ -1,21 +1,20 @@ package net.ess3; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.logging.Logger; import static net.ess3.I18n._; import net.ess3.api.IEssentials; import net.ess3.api.ITeleport; import net.ess3.api.IUser; -import net.ess3.api.server.Player; -import net.ess3.api.server.Location; -import net.ess3.commands.NotEnoughArgumentsException; import net.ess3.economy.Trade; import net.ess3.permissions.Permissions; import net.ess3.user.CooldownException; import net.ess3.user.UserData.TimestampType; import net.ess3.utils.DateUtil; import net.ess3.utils.LocationUtil; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.logging.Logger; +import org.bukkit.Location; +import org.bukkit.entity.Entity; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -24,11 +23,10 @@ public class Teleport implements Runnable, ITeleport private static final double MOVE_CONSTANT = 0.3; - private static class Target { private final Location location; - private final Player entity; + private final Entity entity; public Target(Location location) { @@ -36,7 +34,7 @@ public class Teleport implements Runnable, ITeleport this.entity = null; } - public Target(Player entity) + public Target(Entity entity) { this.entity = entity; this.location = null; @@ -72,10 +70,10 @@ public class Teleport implements Runnable, ITeleport { 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 = user.getPlayer().getHealth(); + this.initX = Math.round(user.getPlayer().getLocation().getX() * MOVE_CONSTANT); + this.initY = Math.round(user.getPlayer().getLocation().getY() * MOVE_CONSTANT); + this.initZ = Math.round(user.getPlayer().getLocation().getZ() * MOVE_CONSTANT); this.teleportTarget = target; this.chargeFor = chargeFor; this.cause = cause; @@ -85,21 +83,21 @@ public class Teleport implements Runnable, ITeleport public void run() { - if (user == null || !user.isOnline() || user.getLocation() == null) + if (user == null || !user.isOnline() || user.getPlayer().getLocation() == null) { cancel(); 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) + if (Math.round(user.getPlayer().getLocation().getX() * MOVE_CONSTANT) != initX + || Math.round(user.getPlayer().getLocation().getY() * MOVE_CONSTANT) != initY + || Math.round(user.getPlayer().getLocation().getZ() * MOVE_CONSTANT) != initZ + || user.getPlayer().getHealth() < health) { // user moved, cancel teleport cancel(true); return; } - health = user.getHealth(); // in case user healed, then later gets injured + health = user.getPlayer().getHealth(); // in case user healed, then later gets injured long now = System.currentTimeMillis(); if (now > started + delay) @@ -139,7 +137,7 @@ public class Teleport implements Runnable, ITeleport public void respawn(final Trade chargeFor, TeleportCause cause) throws Exception { final Location bed = user.getBedSpawnLocation(); - final Location respawnLoc = ess.getPlugin().callRespawnEvent(user, bed == null ? user.getWorld().getSpawnLocation() : bed, bed != null); + final Location respawnLoc = ess.getPlugin().callRespawnEvent(user.getPlayer(), bed == null ? user.getPlayer().getWorld().getSpawnLocation() : bed, bed != null); teleport(new Target(respawnLoc), chargeFor, cause); } @@ -200,7 +198,7 @@ public class Teleport implements Runnable, ITeleport teleport(new Target(loc), chargeFor, cause); } - public void teleport(Player entity, Trade chargeFor, TeleportCause cause) throws Exception + public void teleport(Entity entity, Trade chargeFor, TeleportCause cause) throws Exception { teleport(new Target(entity), chargeFor, cause); } @@ -239,7 +237,7 @@ public class Teleport implements Runnable, ITeleport { cancel(); user.setLastLocation(); - user.getBase().teleport(LocationUtil.getSafeDestination(target.getLocation()), cause); + user.getPlayer().teleport(LocationUtil.getSafeDestination(target.getLocation()), cause); } @Override @@ -259,7 +257,7 @@ public class Teleport implements Runnable, ITeleport now(new Target(loc), cause); } - public void now(Player entity, boolean cooldown, TeleportCause cause) throws Exception + public void now(Entity entity, boolean cooldown, TeleportCause cause) throws Exception { if (cooldown) { diff --git a/Essentials/src/net/ess3/Warps.java b/Essentials/src/net/ess3/Warps.java index 08398b8e1..04663f6bd 100644 --- a/Essentials/src/net/ess3/Warps.java +++ b/Essentials/src/net/ess3/Warps.java @@ -1,16 +1,16 @@ package net.ess3; +import java.io.File; +import java.util.*; import static net.ess3.I18n._; import net.ess3.api.IEssentials; import net.ess3.api.IWarp; import net.ess3.api.IWarps; import net.ess3.api.InvalidNameException; -import net.ess3.api.server.Location; import net.ess3.commands.WarpNotFoundException; import net.ess3.settings.WarpHolder; import net.ess3.storage.StorageObjectMap; -import java.io.File; -import java.util.*; +import org.bukkit.Location; public class Warps extends StorageObjectMap<IWarp> implements IWarps diff --git a/Essentials/src/net/ess3/api/Economy.java b/Essentials/src/net/ess3/api/Economy.java index b16db0556..8b02dbbf1 100644 --- a/Essentials/src/net/ess3/api/Economy.java +++ b/Essentials/src/net/ess3/api/Economy.java @@ -1,5 +1,6 @@ package net.ess3.api; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; @@ -169,7 +170,7 @@ public final class Economy { throw new RuntimeException(noCallBeforeLoad); } - return Util.displayCurrency(amount, ess); + return FormatUtil.displayCurrency(amount, ess); } /** diff --git a/Essentials/src/net/ess3/api/ICommandHandler.java b/Essentials/src/net/ess3/api/ICommandHandler.java index be7a9e6c4..33093d4bd 100644 --- a/Essentials/src/net/ess3/api/ICommandHandler.java +++ b/Essentials/src/net/ess3/api/ICommandHandler.java @@ -1,8 +1,8 @@ package net.ess3.api; -import net.ess3.api.server.CommandSender; import java.util.Map; import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; diff --git a/Essentials/src/net/ess3/api/IEssentials.java b/Essentials/src/net/ess3/api/IEssentials.java index fba576dfc..f84633530 100644 --- a/Essentials/src/net/ess3/api/IEssentials.java +++ b/Essentials/src/net/ess3/api/IEssentials.java @@ -3,11 +3,10 @@ package net.ess3.api; import java.util.List; import java.util.logging.Logger; import net.ess3.EssentialsTimer; -import net.ess3.api.server.Plugin; -import net.ess3.api.server.Server; -import net.ess3.api.server.World; import net.ess3.economy.register.Methods; import net.ess3.metrics.Metrics; +import org.bukkit.Server; +import org.bukkit.World; public interface IEssentials extends IComponent @@ -47,7 +46,7 @@ public interface IEssentials extends IComponent //int scheduleSyncDelayedTask(Runnable run, long delay); //int scheduleSyncRepeatingTask(Runnable run, long delay, long period); //IPermissionsHandler getPermissionsHandler(); - //void reload(); + void reload(); void setRanks(IRanks groups); @@ -59,7 +58,7 @@ public interface IEssentials extends IComponent Logger getLogger(); - Plugin getPlugin(); + IPlugin getPlugin(); List<String> getVanishedPlayers(); diff --git a/Essentials/src/net/ess3/api/IItemDb.java b/Essentials/src/net/ess3/api/IItemDb.java index fa9e1d868..8738b1bab 100644 --- a/Essentials/src/net/ess3/api/IItemDb.java +++ b/Essentials/src/net/ess3/api/IItemDb.java @@ -1,6 +1,7 @@ package net.ess3.api; -import net.ess3.api.server.ItemStack; +import org.bukkit.inventory.ItemStack; + public interface IItemDb extends IReload diff --git a/Essentials/src/net/ess3/api/IPermission.java b/Essentials/src/net/ess3/api/IPermission.java index f210a890f..66cf09ad0 100644 --- a/Essentials/src/net/ess3/api/IPermission.java +++ b/Essentials/src/net/ess3/api/IPermission.java @@ -1,7 +1,9 @@ package net.ess3.api; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Permission; +import org.bukkit.command.CommandSender; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; + public interface IPermission @@ -12,5 +14,5 @@ public interface IPermission Permission getPermission(); - Permission.Default getPermissionDefault(); + PermissionDefault getPermissionDefault(); } diff --git a/Essentials/src/net/ess3/api/server/Plugin.java b/Essentials/src/net/ess3/api/IPlugin.java index f0d10740c..83565f35e 100644 --- a/Essentials/src/net/ess3/api/server/Plugin.java +++ b/Essentials/src/net/ess3/api/IPlugin.java @@ -1,12 +1,13 @@ -package net.ess3.api.server; +package net.ess3.api; import java.io.File; -import java.io.InputStream; -import java.util.logging.Logger; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; - -public interface Plugin -{ +public interface IPlugin extends Plugin { + IEssentials getEssentials(); + int scheduleAsyncDelayedTask(final Runnable run); int scheduleSyncDelayedTask(final Runnable run); @@ -14,26 +15,18 @@ public interface Plugin int scheduleSyncDelayedTask(final Runnable run, final long delay); int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period); - + int scheduleAsyncRepeatingTask(final Runnable run, final long delay, final long period); File getRootFolder(); - - File getDataFolder(); - void cancelTask(int taskId); + void cancelTask(final int taskId); String getVersion(); - - Class getClassByName(String name); - InputStream getResource(String string); - + Class getClassByName(final String name); + Location callRespawnEvent(Player player, Location loc, boolean bedSpawn); - + void callSuicideEvent(Player player); - - Logger getLogger(); - - Server getServer(); } diff --git a/Essentials/src/net/ess3/api/IReplyTo.java b/Essentials/src/net/ess3/api/IReplyTo.java index 6e96166bb..7d232c709 100644 --- a/Essentials/src/net/ess3/api/IReplyTo.java +++ b/Essentials/src/net/ess3/api/IReplyTo.java @@ -1,6 +1,7 @@ package net.ess3.api; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; + public interface IReplyTo diff --git a/Essentials/src/net/ess3/api/IUser.java b/Essentials/src/net/ess3/api/IUser.java index bb1d985ed..800c8aa64 100644 --- a/Essentials/src/net/ess3/api/IUser.java +++ b/Essentials/src/net/ess3/api/IUser.java @@ -1,19 +1,18 @@ package net.ess3.api; import java.util.List; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Location; -import net.ess3.api.server.Player; import net.ess3.storage.IStorageObjectHolder; import net.ess3.user.CooldownException; import net.ess3.user.UserData; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; -public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, IReplyTo, Comparable<IUser> +public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolder<UserData>, IReload, IReplyTo, Comparable<IUser> { - Player getBase(); - double getMoney(); void takeMoney(double value); @@ -49,7 +48,7 @@ public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, void updateActivity(boolean broadcast); void updateDisplayName(); - + void setDisplayNick(); boolean checkJailTimeout(long currentTime); @@ -75,8 +74,6 @@ public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, void setIgnoredPlayer(IUser user, boolean set); Location getAfkPosition(); - - void dispose(); void updateCompass(); @@ -107,23 +104,42 @@ public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, public void updateMoneyCache(double userMoney); public boolean canAfford(double amount, boolean b); - + boolean isVanished(); - + void resetInvulnerabilityAfterTeleport(); - + void toggleVanished(); - + boolean isInvSee(); - + void setInvSee(boolean invsee); - boolean hasInvulnerabilityAfterTeleport(); - - void update(final Player base); + boolean isEnderSee(); + void setEnderSee(boolean endersee); + + boolean hasInvulnerabilityAfterTeleport(); + void setGodModeEnabled(boolean set); - + void setVanished(boolean set); - + + /** + * Since the Player object should not be stored for a long time, this method should be called again with a null + * value or the close() method should be called. + * + * @param player + */ + void setPlayerCache(Player player); + + /** + * If this is not cached using the setPlayerCache method, this call is slow and should not be called often. + * + * It iterates over all players, that are online and does a equal check on their names. + * + * @return + */ + @Override + Player getPlayer(); } diff --git a/Essentials/src/net/ess3/api/IUserMap.java b/Essentials/src/net/ess3/api/IUserMap.java index 63cbb7340..8b94fc5ac 100644 --- a/Essentials/src/net/ess3/api/IUserMap.java +++ b/Essentials/src/net/ess3/api/IUserMap.java @@ -1,9 +1,10 @@ package net.ess3.api; -import net.ess3.api.server.Player; -import net.ess3.user.TooManyMatchesException; import java.io.File; import java.util.Set; +import net.ess3.user.PlayerNotFoundException; +import net.ess3.user.TooManyMatchesException; +import org.bukkit.entity.Player; public interface IUserMap extends IReload @@ -22,7 +23,17 @@ public interface IUserMap extends IReload File getUserFile(final String name) throws InvalidNameException; - IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException; + /** + * This method never returns null. + * + * @param name + * @param includeHidden + * @param includeOffline + * @return + * @throws TooManyMatchesException if more than one player is found matching the name + * @throws PlayerNotFoundException if the player matching the name is not found + */ + IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException; Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline); } diff --git a/Essentials/src/net/ess3/api/IWarps.java b/Essentials/src/net/ess3/api/IWarps.java index 00939ff7e..908994486 100644 --- a/Essentials/src/net/ess3/api/IWarps.java +++ b/Essentials/src/net/ess3/api/IWarps.java @@ -1,8 +1,8 @@ package net.ess3.api; -import net.ess3.api.server.Location; import java.io.File; import java.util.Collection; +import org.bukkit.Location; public interface IWarps extends IReload diff --git a/Essentials/src/net/ess3/api/IWorth.java b/Essentials/src/net/ess3/api/IWorth.java index 770170c31..ffc38a203 100644 --- a/Essentials/src/net/ess3/api/IWorth.java +++ b/Essentials/src/net/ess3/api/IWorth.java @@ -1,7 +1,6 @@ package net.ess3.api; -import net.ess3.api.server.ItemStack; - +import org.bukkit.inventory.ItemStack; public interface IWorth extends IReload diff --git a/Essentials/src/net/ess3/api/ondemand/OnDemand.java b/Essentials/src/net/ess3/api/ondemand/OnDemand.java deleted file mode 100644 index a2ec8e246..000000000 --- a/Essentials/src/net/ess3/api/ondemand/OnDemand.java +++ /dev/null @@ -1,22 +0,0 @@ -package net.ess3.api.ondemand; - -import java.lang.ref.WeakReference; - - -public abstract class OnDemand<T> -{ - protected WeakReference<T> reference = null; - - public final T get() - { - T obj = reference == null ? null : reference.get(); - if (obj == null) - { - obj = getNew(); - reference = new WeakReference<T>(obj); - } - return obj; - } - - protected abstract T getNew(); -} diff --git a/Essentials/src/net/ess3/api/ondemand/UserOnDemand.java b/Essentials/src/net/ess3/api/ondemand/UserOnDemand.java deleted file mode 100644 index b4805fb9d..000000000 --- a/Essentials/src/net/ess3/api/ondemand/UserOnDemand.java +++ /dev/null @@ -1,29 +0,0 @@ -package net.ess3.api.ondemand; - -import net.ess3.api.IUser; -import net.ess3.api.server.Player; -import net.ess3.api.server.Server; - - -public class UserOnDemand extends OnDemand<IUser> -{ - private final String name; - private final Server server; - - public UserOnDemand(String name, Server server) - { - this.name = name; - this.server = server; - } - - @Override - protected IUser getNew() - { - Player player = server.getPlayer(name); - if (player == null) - { - return null; - } - return player.getUser(); - } -} diff --git a/Essentials/src/net/ess3/api/server/Block.java b/Essentials/src/net/ess3/api/server/Block.java deleted file mode 100644 index 633c1c6f8..000000000 --- a/Essentials/src/net/ess3/api/server/Block.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.ess3.api.server; - -import lombok.Delegate; - -public class Block { - - public Block(ItemStack stack, Location location) - { - this.stack = stack; - this.location = location; - } - - - @Delegate - private final ItemStack stack; - @Delegate - private final Location location; - - public ItemStack convertToItem() - { - final ItemStack is = ItemStack.create(this.stack.getType(), 1, this.stack.getDurability()); - return this.stack.getType().convertToItem(is); - } -} diff --git a/Essentials/src/net/ess3/api/server/CommandSender.java b/Essentials/src/net/ess3/api/server/CommandSender.java deleted file mode 100644 index 768dde9bb..000000000 --- a/Essentials/src/net/ess3/api/server/CommandSender.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.ess3.api.server; - -public interface CommandSender { - boolean isPlayer(); - - void sendMessage(String message); - - boolean isOp(); - - boolean hasPermission(Permission bukkitPermission); - - void sendMessage(String[] string); -} diff --git a/Essentials/src/net/ess3/api/server/Enchantment.java b/Essentials/src/net/ess3/api/server/Enchantment.java deleted file mode 100644 index 3e7baa0cf..000000000 --- a/Essentials/src/net/ess3/api/server/Enchantment.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.ess3.api.server; - -public abstract class Enchantment { - - public abstract int getMaxLevel(); - -} diff --git a/Essentials/src/net/ess3/api/server/IInventory.java b/Essentials/src/net/ess3/api/server/IInventory.java deleted file mode 100644 index 783495864..000000000 --- a/Essentials/src/net/ess3/api/server/IInventory.java +++ /dev/null @@ -1,19 +0,0 @@ -package net.ess3.api.server; - -import java.util.Map; - -public interface IInventory { - - public boolean containsItem(boolean b, boolean b0, ItemStack itemStack); - - public Map<Integer, ItemStack> addItem(ItemStack itemStack); - - public Map<Integer, ItemStack> addItem(boolean b, ItemStack itemStack); - - public Map<Integer, ItemStack> addItem(boolean b, int oversizedStacksize, ItemStack itemStack); - - public boolean addAllItems(boolean b, ItemStack itemStack); - - public void removeItem(boolean b, boolean b0, ItemStack itemStack); - -} diff --git a/Essentials/src/net/ess3/api/server/IPermission.java b/Essentials/src/net/ess3/api/server/IPermission.java deleted file mode 100644 index 23fee3a03..000000000 --- a/Essentials/src/net/ess3/api/server/IPermission.java +++ /dev/null @@ -1,5 +0,0 @@ -package net.ess3.api.server; - -public interface IPermission { - -} diff --git a/Essentials/src/net/ess3/api/server/ItemStack.java b/Essentials/src/net/ess3/api/server/ItemStack.java deleted file mode 100644 index b383f4fd7..000000000 --- a/Essentials/src/net/ess3/api/server/ItemStack.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.ess3.api.server; - - -public abstract class ItemStack implements Cloneable -{ - public interface ItemStackFactory - { - ItemStack create(int id, int amount, int data); - ItemStack clone(ItemStack stack); - } - private static ItemStackFactory factory; - - public static void setFactory(final ItemStackFactory factory) - { - ItemStack.factory = factory; - } - - public static ItemStack create(int id, int amount, int data) - { - return factory.create(id, amount, data); - } - - public static ItemStack create(Material mat, int amount, int data) - { - return factory.create(mat.getId(), amount, data); - } - - public abstract Material getType(); - - public abstract void setType(Material mat); - - public abstract void setType(int id); - - public abstract int getAmount(); - - public abstract void setAmount(int value); - - public abstract short getDurability(); - - public abstract void setDurability(short value); - - public abstract int getMaxStackSize(); - - public abstract boolean isAir(); - - public abstract void addEnchantment(Enchantment enchantment, int level); - - @Override - public ItemStack clone() - { - return factory.clone(this); - } -} diff --git a/Essentials/src/net/ess3/api/server/Location.java b/Essentials/src/net/ess3/api/server/Location.java deleted file mode 100644 index 825e2f814..000000000 --- a/Essentials/src/net/ess3/api/server/Location.java +++ /dev/null @@ -1,52 +0,0 @@ -package net.ess3.api.server; - - -public abstract class Location -{ - public interface LocationFactory { - Location create(String worldName, double x, double y, double z, double yaw, double pitch); - Location create(World world, double x, double y, double z, double yaw, double pitch); - } - private static LocationFactory factory; - - public static void setFactory(final LocationFactory factory) { - Location.factory = factory; - } - - public static Location create(String worldName, double x, double y, double z) { - return factory.create(worldName, x, y, z, 0, 0); - } - - public static Location create(String worldName, double x, double y, double z, double yaw, double pitch) { - return factory.create(worldName, x, y, z, yaw, pitch); - } - - public static Location create(World world, double x, double y, double z) { - return factory.create(world, x, y, z, 0, 0); - } - - public static Location create(World world, double x, double y, double z, double yaw, double pitch) { - return factory.create(world, x, y, z, yaw, pitch); - } - - - public abstract double getX(); - - public abstract double getY(); - - public abstract double getZ(); - - public abstract float getYaw(); - - public abstract float getPitch(); - - public abstract int getBlockX(); - - public abstract int getBlockY(); - - public abstract int getBlockZ(); - - public abstract World getWorld(); - - public abstract double distanceSquared(Location location); -} diff --git a/Essentials/src/net/ess3/api/server/Material.java b/Essentials/src/net/ess3/api/server/Material.java deleted file mode 100644 index 5c41f8302..000000000 --- a/Essentials/src/net/ess3/api/server/Material.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.ess3.api.server; - -public abstract class Material { - - private static Material instance; - - public static void setInstance(final Material instance) { - Material.instance = instance; - } - - public static Material get(final int id) { - return instance.getMaterialById(id); - } - - public static Material get(final String name) { - return instance.getMaterialByName(name); - } - - public static Material match(String string) - { - return instance.matchMaterial(string); - } - - protected abstract Material getMaterialByName(String name); - - protected abstract Material getMaterialById(int id); - - public abstract int getId(); - - public abstract String getName(); - - public abstract int getMaxStackSize(); - - public abstract int getMaxDurability(); - - protected abstract Material matchMaterial(String string); - - public abstract ItemStack convertToItem(ItemStack is); -} diff --git a/Essentials/src/net/ess3/api/server/Permission.java b/Essentials/src/net/ess3/api/server/Permission.java deleted file mode 100644 index f4fb37cc4..000000000 --- a/Essentials/src/net/ess3/api/server/Permission.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.ess3.api.server; - - -public abstract class Permission -{ - public enum Default - { - TRUE, FALSE, OP, NOT_OP; - } - - - public interface PermissionFactory - { - Permission create(String name, Permission.Default defaultPermission); - } - private static PermissionFactory factory; - - public static void setFactory(final PermissionFactory factory) - { - Permission.factory = factory; - } - - public static Permission create(final String name, Permission.Default defaultPermission) - { - return factory.create(name, defaultPermission); - } -} diff --git a/Essentials/src/net/ess3/api/server/Player.java b/Essentials/src/net/ess3/api/server/Player.java deleted file mode 100644 index d8928c4d1..000000000 --- a/Essentials/src/net/ess3/api/server/Player.java +++ /dev/null @@ -1,63 +0,0 @@ -package net.ess3.api.server; - -import net.ess3.api.IUser; - - -public interface Player extends CommandSender -{ - IUser getUser(); - - String getName(); - - String getDisplayName(); - - boolean isOnline(); - - void setBanned(boolean bool); - - void kickPlayer(String reason); - - World getWorld(); - - Location getLocation(); - - Location getEyeLocation(); - - void setFireTicks(int value); - - void setFoodLevel(int value); - - void setSaturation(float value); - - int getHealth(); - - void setHealth(int value); - - void updateInventory(); - - ItemStack getItemInHand(); - - Location getBedSpawnLocation(); - - boolean hasPlayedBefore(); - - IInventory getInventory(); - - void setTotalExperience(final int exp); - - int getTotalExperience(); - - void setDisplayName(String name); - - void setPlayerListName(String name); - - void setSleepingIgnored(boolean b); - - boolean isBanned(); - - void setCompassTarget(Location loc); - - void damage(int value); - - boolean isInSurvivalMode(); -} diff --git a/Essentials/src/net/ess3/api/server/Server.java b/Essentials/src/net/ess3/api/server/Server.java deleted file mode 100644 index 5a2f14431..000000000 --- a/Essentials/src/net/ess3/api/server/Server.java +++ /dev/null @@ -1,30 +0,0 @@ -package net.ess3.api.server; - -import java.util.Collection; -import java.util.List; - - -public interface Server -{ - List<World> getWorlds(); - - World getWorld(String name); - - int broadcastMessage(String message); - - Collection<Player> getOnlinePlayers(); - - CommandSender getConsoleSender(); - - void dispatchCommand(CommandSender sender, String command); - - void banIP(String ip); - - <T> T getServiceProvider(Class<T> clazz); - - String getVersion(); - - public void unbanIP(String string); - - public Player getPlayer(String name); -} diff --git a/Essentials/src/net/ess3/api/server/World.java b/Essentials/src/net/ess3/api/server/World.java deleted file mode 100644 index 5648ea7ac..000000000 --- a/Essentials/src/net/ess3/api/server/World.java +++ /dev/null @@ -1,28 +0,0 @@ -package net.ess3.api.server; - -import java.util.UUID; -import org.bukkit.TreeType; - -public interface World { - String getName(); - - boolean generateTree(Location safeLocation, TreeType tree); - - int getHighestBlockYAt(int topX, int topZ); - - ItemStack dropItem(Location loc, ItemStack stack); - - UUID getUID(); - - Location getSpawnLocation(); - - void dropItemNaturally(Location location, ItemStack overflowStack); - - void setStorm(boolean b); - - void setWeatherDuration(int i); - - long getTime(); - - boolean setSpawnLocation(int blockX, int blockY, int blockZ); -} diff --git a/Essentials/src/net/ess3/api/server/events/EventFactory.java b/Essentials/src/net/ess3/api/server/events/EventFactory.java deleted file mode 100644 index fdaf8199f..000000000 --- a/Essentials/src/net/ess3/api/server/events/EventFactory.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.ess3.api.server.events; - - -public interface EventFactory -{ - public void register(EventListener listener, EventType type, EventPriority priority, boolean ignoreCancelled); -} diff --git a/Essentials/src/net/ess3/api/server/events/EventListener.java b/Essentials/src/net/ess3/api/server/events/EventListener.java deleted file mode 100644 index 975a10357..000000000 --- a/Essentials/src/net/ess3/api/server/events/EventListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.ess3.api.server.events; - -import net.ess3.api.IUser; -import net.ess3.api.ondemand.OnDemand; -import net.ess3.api.server.Block; - - -public abstract class EventListener -{ - private static EventFactory eventFactory; - - public final void register(EventType type, EventPriority priority, boolean ignoreCancelled) - { - eventFactory.register(this, type, priority, ignoreCancelled); - } - - public boolean onBlockPlace(Block block, OnDemand<IUser> user) - { - return true; - } -} diff --git a/Essentials/src/net/ess3/api/server/events/EventPriority.java b/Essentials/src/net/ess3/api/server/events/EventPriority.java deleted file mode 100644 index 76c4d891b..000000000 --- a/Essentials/src/net/ess3/api/server/events/EventPriority.java +++ /dev/null @@ -1,12 +0,0 @@ -package net.ess3.api.server.events; - - -public enum EventPriority -{ - LOWEST, - LOW, - NORMAL, - HIGH, - HIGHEST, - MONITOR -} diff --git a/Essentials/src/net/ess3/api/server/events/EventType.java b/Essentials/src/net/ess3/api/server/events/EventType.java deleted file mode 100644 index 694ad04ee..000000000 --- a/Essentials/src/net/ess3/api/server/events/EventType.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.ess3.api.server.events; - - -public enum EventType -{ - PLACE_BLOCK -} diff --git a/Essentials/src/net/ess3/backup/Backup.java b/Essentials/src/net/ess3/backup/Backup.java index 534b5655e..adb24e924 100644 --- a/Essentials/src/net/ess3/backup/Backup.java +++ b/Essentials/src/net/ess3/backup/Backup.java @@ -1,17 +1,17 @@ package net.ess3.backup; -import static net.ess3.I18n._; -import net.ess3.api.IBackup; -import net.ess3.api.IEssentials; -import net.ess3.api.ISettings; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Level; import lombok.Cleanup; +import static net.ess3.I18n._; +import net.ess3.api.IBackup; +import net.ess3.api.IEssentials; +import net.ess3.api.ISettings; +import org.bukkit.Server; +import org.bukkit.command.CommandSender; public class Backup implements Runnable, IBackup @@ -26,7 +26,7 @@ public class Backup implements Runnable, IBackup { this.ess = ess; server = ess.getServer(); - if (!server.getOnlinePlayers().isEmpty()) + if (server.getOnlinePlayers().length > 0) { startTask(); } @@ -134,7 +134,7 @@ public class Backup implements Runnable, IBackup public void run() { server.dispatchCommand(server.getConsoleSender(), "save-on"); - if (server.getOnlinePlayers().isEmpty()) + if (server.getOnlinePlayers().length > 0) { running.set(false); if (taskId != -1) diff --git a/Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java b/Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java deleted file mode 100644 index e39e0c9a2..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.ess3.bukkit; - -import net.ess3.api.server.Block; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Location; - -public class BukkitBlockFactory { - - public static Block convert(org.bukkit.block.Block block) { - Location loc = Location.create(block.getWorld().getName(), block.getX(), block.getY(), block.getZ()); - return new Block(ItemStack.create(block.getTypeId(), 1, block.getData()), loc); - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitCommandSender.java b/Essentials/src/net/ess3/bukkit/BukkitCommandSender.java deleted file mode 100644 index 278a7bcba..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitCommandSender.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.ess3.bukkit; - -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Permission; - - -public class BukkitCommandSender implements CommandSender -{ - @Delegate - @Getter - private org.bukkit.command.CommandSender commandSender; - - public BukkitCommandSender(org.bukkit.command.CommandSender commandSender) - { - this.commandSender = commandSender; - } - - @Override - public boolean isPlayer() - { - return false; - } - - @Override - public boolean isOp() - { - return commandSender.isOp(); - } - - @Override - public boolean hasPermission(Permission permission) - { - if (commandSender == null) { - return false; - } else { - return commandSender.hasPermission(((BukkitPermission)permission).getBukkitPermission()); - } - } - - @Override - public void sendMessage(String message) - { - commandSender.sendMessage(message); - } - - @Override - public void sendMessage(String[] string) - { - commandSender.sendMessage(string); - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitItemStack.java b/Essentials/src/net/ess3/bukkit/BukkitItemStack.java deleted file mode 100644 index 2cec7023c..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitItemStack.java +++ /dev/null @@ -1,74 +0,0 @@ -package net.ess3.bukkit; - -import net.ess3.api.server.Enchantment; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; -import lombok.Delegate; -import lombok.Getter; - - -public class BukkitItemStack extends net.ess3.api.server.ItemStack -{ - public static class BukkitItemStackFactory implements ItemStackFactory - { - @Override - public ItemStack create(int id, int amount, int data) - { - return new BukkitItemStack(new org.bukkit.inventory.ItemStack(id, amount, (short)data)); - } - - @Override - public ItemStack clone(final ItemStack stack) - { - return new BukkitItemStack(((BukkitItemStack)stack).getItemStack().clone()); - } - } - - - private interface Excludes - { - org.bukkit.Material getType(); - } - @Delegate(excludes = - { - Excludes.class - }) - @Getter - private final org.bukkit.inventory.ItemStack itemStack; - - public BukkitItemStack(final org.bukkit.inventory.ItemStack itemStack) - { - super(); - this.itemStack = itemStack; - } - - @Override - public void addEnchantment(Enchantment enchantment, int level) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Material getType() - { - return Material.get(itemStack.getTypeId()); - } - - @Override - public void setType(Material type) - { - itemStack.setTypeId(type.getId()); - } - - @Override - public void setType(int id) - { - itemStack.setTypeId(id); - } - - @Override - public boolean isAir() - { - return itemStack.getTypeId() == 0; - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitLocation.java b/Essentials/src/net/ess3/bukkit/BukkitLocation.java deleted file mode 100644 index 21021873c..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitLocation.java +++ /dev/null @@ -1,63 +0,0 @@ -package net.ess3.bukkit; - -import net.ess3.api.server.World; -import net.ess3.api.server.Location; -import lombok.Delegate; -import lombok.Getter; - - -public class BukkitLocation extends Location -{ - public static class BukkitLocationFactory implements LocationFactory - { - private final org.bukkit.Server server; - - public BukkitLocationFactory(org.bukkit.Server server) - { - this.server = server; - } - - @Override - public Location create(String worldName, double x, double y, double z, double yaw, double pitch) - { - org.bukkit.World world = server.getWorld(worldName); - return new BukkitLocation(new org.bukkit.Location(world, x, y, z, (float)yaw, (float)pitch)); - } - - @Override - public Location create(World world, double x, double y, double z, double yaw, double pitch) - { - return new BukkitLocation(new org.bukkit.Location(((BukkitWorld)world).getBukkitWorld(), x, y, z, (float)yaw, (float)pitch)); - } - } - - - private interface Excludes - { - org.bukkit.World getWorld(); - } - @Delegate(excludes = - { - Excludes.class - }) - @Getter - private final org.bukkit.Location bukkitLocation; - - public BukkitLocation(org.bukkit.Location bukkitLocation) - { - this.bukkitLocation = bukkitLocation; - } - - @Override - public World getWorld() - { - return new BukkitWorld(bukkitLocation.getWorld()); - } - - @Override - public double distanceSquared(final Location location) - { - return bukkitLocation.distanceSquared(((BukkitLocation)location).getBukkitLocation()); - } - -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitMaterial.java b/Essentials/src/net/ess3/bukkit/BukkitMaterial.java index 84a6e7145..268413a54 100644 --- a/Essentials/src/net/ess3/bukkit/BukkitMaterial.java +++ b/Essentials/src/net/ess3/bukkit/BukkitMaterial.java @@ -1,125 +1,57 @@ package net.ess3.bukkit; -import java.util.EnumMap; -import lombok.Delegate; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; -public class BukkitMaterial extends Material +public class BukkitMaterial { - private static EnumMap<org.bukkit.Material, BukkitMaterial> materials = new EnumMap<org.bukkit.Material, BukkitMaterial>(org.bukkit.Material.class); - - static - { - for (org.bukkit.Material material : org.bukkit.Material.values()) - { - materials.put(material, new BukkitMaterial(material)); - } - } - - @Override - public int getId() - { - return this.material.getId(); - } - - @Override - public int getMaxStackSize() - { - return this.material.getMaxStackSize(); - } - - private interface Excludes { - short getMaxDurability(); - } - @Delegate(excludes={Excludes.class}) - private final org.bukkit.Material material; - - private BukkitMaterial(final org.bukkit.Material material) - { - this.material = material; - } - - @Override - protected Material getMaterialByName(final String name) - { - final org.bukkit.Material mat = org.bukkit.Material.getMaterial(name); - return materials.get(mat); - } - - @Override - protected Material getMaterialById(final int id) - { - final org.bukkit.Material mat = org.bukkit.Material.getMaterial(id); - return materials.get(mat); - } - - @Override - protected Material matchMaterial(String string) - { - final org.bukkit.Material mat = org.bukkit.Material.matchMaterial(string); - return materials.get(mat); - } - - @Override - public String getName() - { - return this.material.toString(); - } - - @Override - public int getMaxDurability() - { - return (short)this.material.getMaxDurability(); - } - - @Override - public ItemStack convertToItem(ItemStack is) + public static ItemStack convertBlockToItem(Material mat, short data) { - switch (org.bukkit.Material.getMaterial(is.getType().getId())) + final ItemStack is = new ItemStack(mat, 1, data); + switch (is.getType()) { case WOODEN_DOOR: - is.setType(org.bukkit.Material.WOOD_DOOR.getId()); + is.setType(org.bukkit.Material.WOOD_DOOR); is.setDurability((short)0); break; case IRON_DOOR_BLOCK: - is.setType(org.bukkit.Material.IRON_DOOR.getId()); + is.setType(org.bukkit.Material.IRON_DOOR); is.setDurability((short)0); break; case SIGN_POST: case WALL_SIGN: - is.setType(org.bukkit.Material.SIGN.getId()); + is.setType(org.bukkit.Material.SIGN); is.setDurability((short)0); break; case CROPS: - is.setType(org.bukkit.Material.SEEDS.getId()); + is.setType(org.bukkit.Material.SEEDS); is.setDurability((short)0); break; case CAKE_BLOCK: - is.setType(org.bukkit.Material.CAKE.getId()); + is.setType(org.bukkit.Material.CAKE); is.setDurability((short)0); break; case BED_BLOCK: - is.setType(org.bukkit.Material.BED.getId()); + is.setType(org.bukkit.Material.BED); is.setDurability((short)0); break; case REDSTONE_WIRE: - is.setType(org.bukkit.Material.REDSTONE.getId()); + is.setType(org.bukkit.Material.REDSTONE); is.setDurability((short)0); break; case REDSTONE_TORCH_OFF: case REDSTONE_TORCH_ON: - is.setType(org.bukkit.Material.REDSTONE_TORCH_ON.getId()); + is.setType(org.bukkit.Material.REDSTONE_TORCH_ON); is.setDurability((short)0); break; case DIODE_BLOCK_OFF: case DIODE_BLOCK_ON: - is.setType(org.bukkit.Material.DIODE.getId()); + is.setType(org.bukkit.Material.DIODE); is.setDurability((short)0); break; case DOUBLE_STEP: - is.setType(org.bukkit.Material.STEP.getId()); + is.setType(org.bukkit.Material.STEP); break; case TORCH: case RAILS: @@ -147,10 +79,10 @@ public class BukkitMaterial extends Material case FIRE: return null; case PUMPKIN_STEM: - is.setType(org.bukkit.Material.PUMPKIN_SEEDS.getId()); + is.setType(org.bukkit.Material.PUMPKIN_SEEDS); break; case MELON_STEM: - is.setType(org.bukkit.Material.MELON_SEEDS.getId()); + is.setType(org.bukkit.Material.MELON_SEEDS); break; } return is; diff --git a/Essentials/src/net/ess3/bukkit/BukkitPermission.java b/Essentials/src/net/ess3/bukkit/BukkitPermission.java deleted file mode 100644 index 9c60a10e2..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitPermission.java +++ /dev/null @@ -1,82 +0,0 @@ -package net.ess3.bukkit; - -import java.util.regex.Pattern; -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.server.Permission; -import org.bukkit.Bukkit; -import org.bukkit.permissions.PermissionDefault; -import org.bukkit.plugin.PluginManager; - - -public class BukkitPermission extends Permission -{ - public static class BukkitPermissionFactory implements PermissionFactory - { - private static transient final Pattern DOT_PATTERN = Pattern.compile("\\."); - - @Override - public Permission create(String permission, Permission.Default defaultPerm) - { - final PluginManager pluginManager = Bukkit.getServer().getPluginManager(); - final String[] parts = DOT_PATTERN.split(permission); - final StringBuilder builder = new StringBuilder(permission.length()); - org.bukkit.permissions.Permission parent = null; - for (int i = 0; i < parts.length - 1; i++) - { - builder.append(parts[i]).append(".*"); - String permString = builder.toString(); - org.bukkit.permissions.Permission perm = pluginManager.getPermission(permString); - if (perm == null) - { - perm = new org.bukkit.permissions.Permission(permString, PermissionDefault.FALSE); - pluginManager.addPermission(perm); - if (parent != null) - { - parent.getChildren().put(perm.getName(), Boolean.TRUE); - } - parent = perm; - } - builder.deleteCharAt(builder.length() - 1); - } - org.bukkit.permissions.Permission perm = pluginManager.getPermission(permission); - if (perm == null) - { - perm = new org.bukkit.permissions.Permission(permission, getBukkitDefaultPermission(defaultPerm)); - pluginManager.addPermission(perm); - if (parent != null) - { - parent.getChildren().put(perm.getName(), Boolean.TRUE); - } - parent = perm; - } - perm.recalculatePermissibles(); - return new BukkitPermission(perm); - } - } - @Delegate - @Getter - private final org.bukkit.permissions.Permission bukkitPermission; - - public BukkitPermission(org.bukkit.permissions.Permission bukkitPermission) - { - this.bukkitPermission = bukkitPermission; - } - - public static PermissionDefault getBukkitDefaultPermission(final Permission.Default defaultPerm) - { - switch (defaultPerm) - { - case TRUE: - return PermissionDefault.TRUE; - case OP: - return PermissionDefault.OP; - case NOT_OP: - return PermissionDefault.NOT_OP; - case FALSE: - return PermissionDefault.FALSE; - default: - return PermissionDefault.FALSE; - } - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitPlayer.java b/Essentials/src/net/ess3/bukkit/BukkitPlayer.java deleted file mode 100644 index 7b357e278..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitPlayer.java +++ /dev/null @@ -1,213 +0,0 @@ -package net.ess3.bukkit; - -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.IUser; -import net.ess3.api.server.IInventory; -import net.ess3.api.server.Location; -import net.ess3.api.server.Player; -import net.ess3.api.server.World; -import org.bukkit.GameMode; -import org.bukkit.OfflinePlayer; - - -public class BukkitPlayer extends BukkitCommandSender implements Player -{ - private interface Excludes - { - org.bukkit.World getWorld(); - - org.bukkit.Location getLocation(); - - org.bukkit.Location getEyeLocation(); - - org.bukkit.inventory.ItemStack getItemInHand(); - - org.bukkit.Location getBedSpawnLocation(); - - org.bukkit.inventory.Inventory getInventory(); - - void setTotalExperience(int i); - - int getTotalExperience(); - } - @Delegate(types = - { - org.bukkit.entity.Player.class, org.bukkit.entity.LivingEntity.class - }, excludes = - { - OfflinePlayer.class, org.bukkit.command.CommandSender.class, Excludes.class - }) - @Getter - private transient org.bukkit.entity.Player onlinePlayer; - /** - * a set of data and methods common to both offline and online players. - */ - @Delegate(excludes = - { - Excludes.class - }) - @Getter - private transient OfflinePlayer safePlayer; - private final transient BukkitServer server; - private transient IUser user = null; - - public BukkitPlayer(final OfflinePlayer player, final BukkitServer server) - { - super(player.getPlayer()); - this.server = server; - if (player.isOnline()) - { - - setOnlinePlayer(player.getPlayer()); - } - else - { - setOfflinePlayer(player); - } - } - - public final void setOfflinePlayer(final OfflinePlayer offlinePlayer) - { - safePlayer = offlinePlayer; - onlinePlayer = null; - } - - public final void setOnlinePlayer(final org.bukkit.entity.Player onlinePlayer) - { - safePlayer = this.onlinePlayer = onlinePlayer; - } - - public String getSafeDisplayName() - { - return onlinePlayer == null ? getName() : getDisplayName(); - } - - @Override - public IUser getUser() - { - return user; - } - - @Override - public boolean isPlayer() - { - return true; - } - - @Override - public World getWorld() - { - return server.getWorld(onlinePlayer.getWorld().getName()); - } - - @Override - public Location getLocation() - { - return new BukkitLocation(onlinePlayer.getLocation()); - } - - @Override - public Location getEyeLocation() - { - return new BukkitLocation(onlinePlayer.getEyeLocation()); - } - - @Override - public BukkitItemStack getItemInHand() - { - return new BukkitItemStack(onlinePlayer.getItemInHand()); - } - - @Override - public Location getBedSpawnLocation() - { - return new BukkitLocation(onlinePlayer.getBedSpawnLocation()); - } - - @Override - public IInventory getInventory() - { - return new Inventory(onlinePlayer.getInventory()); - } - - @Override - public void setTotalExperience(final int exp) - { - if (exp < 0) - { - throw new IllegalArgumentException("Experience is negative!"); - } - onlinePlayer.setExp(0); - onlinePlayer.setLevel(0); - onlinePlayer.setTotalExperience(0); - int amount = exp; - while (amount > 0) - { - final int expToLevel = getExpToLevel(); - amount -= expToLevel; - if (amount >= 0) - { - // give until next level - onlinePlayer.giveExp(expToLevel); - } - else - { - // give the rest - amount += expToLevel; - onlinePlayer.giveExp(amount); - amount = 0; - } - } - } - - /*private int getExpToLevel() - { - return getExpToLevel(onlinePlayer.getLevel()); - }*/ - - private static int getExpToLevel(final int level) - { - return 7 + (level * 7 >> 1); - } - - @Override - public int getTotalExperience() - { - int exp = (int) (getExpToLevel() * onlinePlayer.getExp()); - int currentLevel = onlinePlayer.getLevel(); - - while (currentLevel > 0) { - currentLevel--; - exp += getExpToLevel(currentLevel); - } - return exp; - } - - - @Override - public void sendMessage(final String message) - { - onlinePlayer.sendMessage(message); - } - - @Override - public void sendMessage(final String[] string) - { - onlinePlayer.sendMessage(string); - } - - - @Override - public void setCompassTarget(final Location loc) - { - onlinePlayer.setCompassTarget(((BukkitLocation)loc).getBukkitLocation()); - } - - - @Override - public boolean isInSurvivalMode() - { - return onlinePlayer.getGameMode() == GameMode.SURVIVAL; - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitPlugin.java b/Essentials/src/net/ess3/bukkit/BukkitPlugin.java index 0d60bee19..c07f5d974 100644 --- a/Essentials/src/net/ess3/bukkit/BukkitPlugin.java +++ b/Essentials/src/net/ess3/bukkit/BukkitPlugin.java @@ -1,106 +1,195 @@ package net.ess3.bukkit; -import net.ess3.api.server.Player; -import net.ess3.api.server.Plugin; -import net.ess3.api.server.Location; import java.io.File; -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.server.Server; +import java.util.logging.Level; +import net.ess3.Essentials; +import static net.ess3.I18n._; +import net.ess3.api.IEssentials; +import net.ess3.api.IPlugin; +import net.ess3.listener.EssentialsBlockListener; +import net.ess3.listener.EssentialsEntityListener; +import net.ess3.listener.EssentialsPlayerListener; +import net.ess3.listener.EssentialsPluginListener; +import net.ess3.metrics.MetricsListener; +import net.ess3.metrics.MetricsStarter; +import org.bukkit.Location; +import org.bukkit.command.Command; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPluginLoader; -public class BukkitPlugin implements Plugin -{ - private interface Excludes { - public org.bukkit.Server getServer(); +public class BukkitPlugin extends JavaPlugin implements IPlugin +{ + private Essentials ess; + + @Override + public void onEnable() + { + + final PluginManager pm = this.getServer().getPluginManager(); + //pm.registerEvents(getServer(), this); + ess = new Essentials(getServer(), getLogger(), this); + if (VersionCheck.checkVersion(this)) + { + try + { + ess.onEnable(); + } + catch (RuntimeException ex) + { + if (pm.getPlugin("EssentialsUpdate") == null) + { + getLogger().log(Level.SEVERE, _("essentialsHelp1")); + } + else + { + getLogger().log(Level.SEVERE, _("essentialsHelp2")); + } + getLogger().log(Level.SEVERE, ex.toString()); + pm.registerEvents(new Listener() + { + @EventHandler(priority = EventPriority.LOW) + public void onPlayerJoin(final PlayerJoinEvent event) + { + event.getPlayer().sendMessage("Essentials failed to load, read the log file."); + } + }, this); + for (Player player : getServer().getOnlinePlayers()) + { + player.sendMessage("Essentials failed to load, read the log file."); + } + this.setEnabled(false); + return; + } + } + else + { + this.setEnabled(false); + return; + } + + final EssentialsPluginListener serverListener = new EssentialsPluginListener(ess); + pm.registerEvents(serverListener, this); + ess.addReloadListener(serverListener); + + final EssentialsPlayerListener playerListener = new EssentialsPlayerListener(ess); + pm.registerEvents(playerListener, this); + + final EssentialsBlockListener blockListener = new EssentialsBlockListener(ess); + pm.registerEvents(blockListener, this); + + final EssentialsEntityListener entityListener = new EssentialsEntityListener(ess); + pm.registerEvents(entityListener, this); + + + final MetricsStarter metricsStarter = new MetricsStarter(ess); + if (metricsStarter.getStart() != null && metricsStarter.getStart() == true) + { + getServer().getScheduler().scheduleAsyncDelayedTask(this, metricsStarter, 1); + } + else if (metricsStarter.getStart() != null && metricsStarter.getStart() == false) + { + final MetricsListener metricsListener = new MetricsListener(ess, metricsStarter); + pm.registerEvents(metricsListener, this); + } + } + + @Override + public void onDisable() + { + if (ess != null) + { + ess.onDisable(); + } } - @Delegate(excludes={Excludes.class}) - @Getter - private final org.bukkit.plugin.Plugin bukkitPlugin; - @Getter - private final Server server; - public BukkitPlugin(final org.bukkit.plugin.Plugin plugin, final Server server) + @Override + public boolean onCommand(final org.bukkit.command.CommandSender sender, final Command command, final String label, final String[] args) { - this.bukkitPlugin = plugin; - this.server = server; + return ess.getCommandHandler().handleCommand(sender, command, label, args); } @Override public int scheduleAsyncDelayedTask(final Runnable run) { - return bukkitPlugin.getServer().getScheduler().scheduleAsyncDelayedTask(bukkitPlugin, run); + return getServer().getScheduler().scheduleAsyncDelayedTask(this, run); } @Override public int scheduleSyncDelayedTask(final Runnable run) { - return bukkitPlugin.getServer().getScheduler().scheduleSyncDelayedTask(bukkitPlugin, run); + return getServer().getScheduler().scheduleSyncDelayedTask(this, run); } @Override public int scheduleSyncDelayedTask(final Runnable run, final long delay) { - return bukkitPlugin.getServer().getScheduler().scheduleSyncDelayedTask(bukkitPlugin, run, delay); + return getServer().getScheduler().scheduleSyncDelayedTask(this, run, delay); } @Override public int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period) { - return bukkitPlugin.getServer().getScheduler().scheduleSyncRepeatingTask(bukkitPlugin, run, delay, period); + return getServer().getScheduler().scheduleSyncRepeatingTask(this, run, delay, period); } - + @Override public int scheduleAsyncRepeatingTask(final Runnable run, final long delay, final long period) { - return bukkitPlugin.getServer().getScheduler().scheduleAsyncRepeatingTask(bukkitPlugin, run, delay, period); + return getServer().getScheduler().scheduleAsyncRepeatingTask(this, run, delay, period); } - + @Override public File getRootFolder() { - return bukkitPlugin.getDataFolder().getParentFile().getParentFile(); + return getDataFolder().getParentFile().getParentFile(); } @Override public void cancelTask(final int taskId) { - bukkitPlugin.getServer().getScheduler().cancelTask(taskId); + getServer().getScheduler().cancelTask(taskId); } @Override public String getVersion() { - return bukkitPlugin.getDescription().getVersion(); + return getDescription().getVersion(); } @Override public Class getClassByName(final String name) { - final JavaPluginLoader jpl = (JavaPluginLoader)bukkitPlugin.getPluginLoader(); + final JavaPluginLoader jpl = (JavaPluginLoader)this.getPluginLoader(); return jpl.getClassByName(name); } @Override public Location callRespawnEvent(Player player, Location loc, boolean bedSpawn) { - final PlayerRespawnEvent pre = new PlayerRespawnEvent(((BukkitPlayer)player).getOnlinePlayer(), ((BukkitLocation)loc).getBukkitLocation() , bedSpawn); - getBukkitServer().getPluginManager().callEvent(pre); - return new BukkitLocation(pre.getRespawnLocation()); + final PlayerRespawnEvent pre = new PlayerRespawnEvent(player, loc, bedSpawn); + getServer().getPluginManager().callEvent(pre); + return pre.getRespawnLocation(); } @Override public void callSuicideEvent(Player player) { - EntityDamageEvent ede = new EntityDamageEvent(((BukkitPlayer)player).getOnlinePlayer(), EntityDamageEvent.DamageCause.SUICIDE, 1000); - getBukkitServer().getPluginManager().callEvent(ede); + EntityDamageEvent ede = new EntityDamageEvent(player, EntityDamageEvent.DamageCause.SUICIDE, 1000); + getServer().getPluginManager().callEvent(ede); } - - public org.bukkit.Server getBukkitServer() + + @Override + public IEssentials getEssentials() { - return bukkitPlugin.getServer(); + return ess; } } diff --git a/Essentials/src/net/ess3/bukkit/BukkitServer.java b/Essentials/src/net/ess3/bukkit/BukkitServer.java deleted file mode 100644 index d0f548f09..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitServer.java +++ /dev/null @@ -1,134 +0,0 @@ -package net.ess3.bukkit; - -import java.util.*; -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.IEssentials; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.Server; -import net.ess3.api.server.World; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerLoginEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.world.WorldLoadEvent; -import org.bukkit.event.world.WorldUnloadEvent; -import org.bukkit.plugin.RegisteredServiceProvider; - - -public class BukkitServer implements Server, Listener -{ - private IEssentials ess; - private interface Excludes - { - List<org.bukkit.World> getWorlds(); - - org.bukkit.World getWorld(String name); - - org.bukkit.entity.Player[] getOnlinePlayers(); - - BukkitCommandSender getConsoleSender(); - - org.bukkit.entity.Player getPlayer(String name); - } - @Delegate(excludes = Excludes.class) - private final org.bukkit.Server server; - @Getter - private List<World> worlds; - private Map<String, World> worldsMap; - @Getter - private Collection<Player> onlinePlayers; - private Map<String, Player> onlinePlayersMap; - @Getter - private CommandSender consoleSender; - - public BukkitServer(final org.bukkit.Server server) - { - this.server = server; - consoleSender = new BukkitCommandSender(server.getConsoleSender()); - updateWorlds(); - } - - private void updateWorlds() - { - final ArrayList<World> lworlds = new ArrayList<World>(server.getWorlds().size()); - final HashMap<String, World> lworldsMap = new HashMap<String, World>(); - for (org.bukkit.World world : server.getWorlds()) - { - final BukkitWorld w = new BukkitWorld(world); - lworlds.add(w); - lworldsMap.put(world.getName(), w); - lworldsMap.put(world.getName().toLowerCase(Locale.ENGLISH), w); - } - this.worlds = Collections.unmodifiableList(lworlds); - this.worldsMap = Collections.unmodifiableMap(lworldsMap); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public synchronized void onWorldLoadEvent(final WorldLoadEvent event) - { - updateWorlds(); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public synchronized void onWorldUnloadEvent(final WorldUnloadEvent event) - { - updateWorlds(); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public synchronized void onPlayerLoginEvent(final PlayerLoginEvent event) - { - final HashMap<String, Player> oplayersMap = new HashMap<String, Player>(onlinePlayersMap); - BukkitPlayer p = new BukkitPlayer(event.getPlayer(), this); - - oplayersMap.put(event.getPlayer().getName(), p); - onlinePlayersMap = Collections.unmodifiableMap(oplayersMap); - onlinePlayers = Collections.unmodifiableCollection(oplayersMap.values()); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public synchronized void onPlayerQuitEvent(final PlayerQuitEvent event) - { - final ArrayList<Player> oplayers = new ArrayList<Player>(onlinePlayers); - final HashMap<String, Player> oplayersMap = new HashMap<String, Player>(onlinePlayersMap); - oplayersMap.remove(event.getPlayer().getName()); - onlinePlayersMap = Collections.unmodifiableMap(oplayersMap); - onlinePlayers = Collections.unmodifiableCollection(oplayersMap.values()); - } - - @Override - public World getWorld(final String name) - { - final World world = worldsMap.get(name); - if (world == null) - { - return worldsMap.get(name.toLowerCase(Locale.ENGLISH)); - } - return world; - } - - @Override - public void dispatchCommand(final CommandSender sender, final String command) - { - server.dispatchCommand(((BukkitCommandSender)sender).getCommandSender(), command); - } - - @Override - public <T> T getServiceProvider(final Class<T> clazz) - { - final RegisteredServiceProvider<T> rsp = server.getServicesManager().getRegistration(clazz); - return rsp.getProvider(); - } - - public Player getPlayer(final org.bukkit.entity.Player player) { - return onlinePlayersMap.get(player.getName()); - } - - @Override - public Player getPlayer(final String playerName) { - return onlinePlayersMap.get(playerName); - } -} diff --git a/Essentials/src/net/ess3/bukkit/BukkitWorld.java b/Essentials/src/net/ess3/bukkit/BukkitWorld.java deleted file mode 100644 index 894a40f85..000000000 --- a/Essentials/src/net/ess3/bukkit/BukkitWorld.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.ess3.bukkit; - -import lombok.Delegate; -import lombok.Getter; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Location; -import net.ess3.api.server.World; -import org.bukkit.TreeType; - -public class BukkitWorld implements World { - private interface Excludes - { - boolean generateTree(Location safeLocation, TreeType tree); - - ItemStack dropItem(Location loc, ItemStack stack); - - Location getSpawnLocation(); - - void dropItemNaturally(Location location, ItemStack overflowStack); - } - @Delegate(excludes = Excludes.class) - @Getter - private final org.bukkit.World bukkitWorld; - - public BukkitWorld(final org.bukkit.World world) - { - this.bukkitWorld = world; - } - - @Override - public boolean generateTree(Location safeLocation, TreeType tree) - { - return bukkitWorld.generateTree(((BukkitLocation)safeLocation).getBukkitLocation(), tree); - } - - @Override - public ItemStack dropItem(Location loc, ItemStack stack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getSpawnLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void dropItemNaturally(Location location, ItemStack overflowStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } -} diff --git a/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java b/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java deleted file mode 100644 index b198fef87..000000000 --- a/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java +++ /dev/null @@ -1,95 +0,0 @@ -package net.ess3.bukkit; - -import java.util.logging.Level; -import net.ess3.Essentials; -import static net.ess3.I18n._; -import net.ess3.api.server.*; -import org.bukkit.command.Command; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.plugin.PluginManager; -import org.bukkit.plugin.java.JavaPlugin; - - -public class EssentialsPlugin extends JavaPlugin -{ - private transient Essentials ess; - - public EssentialsPlugin() - { - Material.setInstance(BukkitMaterial.get(0)); - ItemStack.setFactory(new BukkitItemStack.BukkitItemStackFactory()); - Location.setFactory(new BukkitLocation.BukkitLocationFactory(getServer())); - Permission.setFactory(new BukkitPermission.BukkitPermissionFactory()); - } - - @Override - public void onEnable() - { - - BukkitServer server = new BukkitServer(getServer()); - final PluginManager pm = this.getServer().getPluginManager(); - pm.registerEvents(server, this); - ess = new Essentials(server, getLogger(), new BukkitPlugin(this, server)); - if (VersionCheck.checkVersion(this)) - { - try - { - ess.onEnable(); - } - catch (RuntimeException ex) - { - if (pm.getPlugin("EssentialsUpdate") == null) - { - getLogger().log(Level.SEVERE, _("essentialsHelp1")); - } - else - { - getLogger().log(Level.SEVERE, _("essentialsHelp2")); - } - getLogger().log(Level.SEVERE, ex.toString()); - pm.registerEvents(new Listener() - { - @EventHandler(priority = EventPriority.LOW) - public void onPlayerJoin(final PlayerJoinEvent event) - { - event.getPlayer().sendMessage("Essentials failed to load, read the log file."); - } - }, this); - for (Player player : getServer().getOnlinePlayers()) - { - player.sendMessage("Essentials failed to load, read the log file."); - } - this.setEnabled(false); - } - } - else - { - this.setEnabled(false); - } - } - - @Override - public void onDisable() - { - if (ess != null) - { - ess.onDisable(); - } - } - - @Override - public boolean onCommand(final org.bukkit.command.CommandSender sender, final Command command, final String label, final String[] args) - { - CommandSender commandSender; - if (sender instanceof org.bukkit.entity.Player) { - commandSender = ((BukkitServer)ess.getServer()).getPlayer((org.bukkit.entity.Player)sender); - } else { - commandSender = new BukkitCommandSender(sender); - } - return ess.getCommandHandler().handleCommand(commandSender, command, label, args); - } -} diff --git a/Essentials/src/net/ess3/bukkit/Inventory.java b/Essentials/src/net/ess3/bukkit/Inventory.java deleted file mode 100644 index 47e05f979..000000000 --- a/Essentials/src/net/ess3/bukkit/Inventory.java +++ /dev/null @@ -1,54 +0,0 @@ -package net.ess3.bukkit; - -import net.ess3.api.server.IInventory; -import net.ess3.api.server.ItemStack; -import java.util.Map; -import lombok.Delegate; -import org.bukkit.inventory.PlayerInventory; - -public class Inventory implements IInventory { - @Delegate - private org.bukkit.inventory.PlayerInventory inventory; - - Inventory(PlayerInventory inventory) - { - this.inventory = inventory; - } - - @Override - public boolean containsItem(boolean b, boolean b0, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Map<Integer, ItemStack> addItem(boolean b, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean addAllItems(boolean b, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void removeItem(boolean b, boolean b0, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Map<Integer, ItemStack> addItem(boolean b, int oversizedStacksize, ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Map<Integer, ItemStack> addItem(ItemStack itemStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - -} diff --git a/Essentials/src/net/ess3/bukkit/LivingEntities.java b/Essentials/src/net/ess3/bukkit/LivingEntities.java new file mode 100644 index 000000000..96ca05ce5 --- /dev/null +++ b/Essentials/src/net/ess3/bukkit/LivingEntities.java @@ -0,0 +1,58 @@ +package net.ess3.bukkit; + +import java.util.Collections; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.logging.Level; +import static net.ess3.I18n._; +import org.bukkit.Location; +import org.bukkit.Server; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; + + +public class LivingEntities +{ + final private static Map<String, EntityType> entities = new HashMap<String, EntityType>(); + + final private static EnumMap<EntityType, String> entityI18n = new EnumMap<EntityType, String>(EntityType.class); + final private static EnumMap<EntityType, String> entityI18nPlural = new EnumMap<EntityType, String>(EntityType.class); + + static + { + for (EntityType entityType : EntityType.values()) + { + if (entityType.isAlive() && entityType.isSpawnable()) + { + String entityName = entityType.name().toLowerCase(Locale.ENGLISH).replace("_", ""); + entities.put(entityName, entityType); + entityI18n.put(entityType, entityName); + entityI18nPlural.put(entityType,entityName+"Plural"); + } + } + } + + public static Set<String> getLivingEntityList() + { + return Collections.unmodifiableSet(entities.keySet()); + } + + public static EntityType fromName(final String name) + { + return entities.get(name.toLowerCase(Locale.ENGLISH)); + } + + public static String getName(int count, EntityType type) { + return count == 1? _(entityI18n.get(type)):_(entityI18nPlural.get(type)); + } + + public static class MobException extends Exception + { + private static final long serialVersionUID = 1L; + } + +} diff --git a/Essentials/src/net/ess3/bukkit/Mob.java b/Essentials/src/net/ess3/bukkit/Mob.java deleted file mode 100644 index 0dd0bfab6..000000000 --- a/Essentials/src/net/ess3/bukkit/Mob.java +++ /dev/null @@ -1,116 +0,0 @@ -package net.ess3.bukkit; - -import java.util.*; -import java.util.logging.Level; -import java.util.logging.Logger; -import static net.ess3.I18n._; -import org.bukkit.Location; -import org.bukkit.Server; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; - - -public enum Mob -{ - CHICKEN("Chicken", Enemies.FRIENDLY, EntityType.CHICKEN), - COW("Cow", Enemies.FRIENDLY, EntityType.COW), - CREEPER("Creeper", Enemies.ENEMY, EntityType.CREEPER), - GHAST("Ghast", Enemies.ENEMY, EntityType.GHAST), - GIANT("Giant", Enemies.ENEMY, EntityType.GIANT), - PIG("Pig", Enemies.FRIENDLY, EntityType.PIG), - PIGZOMB("PigZombie", Enemies.NEUTRAL, EntityType.PIG_ZOMBIE), - SHEEP("Sheep", Enemies.FRIENDLY, "", EntityType.SHEEP), - SKELETON("Skeleton", Enemies.ENEMY, EntityType.SKELETON), - SLIME("Slime", Enemies.ENEMY, EntityType.SLIME), - SPIDER("Spider", Enemies.ENEMY, EntityType.SPIDER), - SQUID("Squid", Enemies.FRIENDLY, EntityType.SQUID), - ZOMBIE("Zombie", Enemies.ENEMY, EntityType.ZOMBIE), - WOLF("Wolf", Enemies.NEUTRAL, EntityType.WOLF), - CAVESPIDER("CaveSpider", Enemies.ENEMY, EntityType.CAVE_SPIDER), - ENDERMAN("Enderman", Enemies.ENEMY, "", EntityType.ENDERMAN), - SILVERFISH("Silverfish", Enemies.ENEMY, "", EntityType.SILVERFISH), - ENDERDRAGON("EnderDragon", Enemies.ENEMY, EntityType.ENDER_DRAGON), - VILLAGER("Villager", Enemies.FRIENDLY, EntityType.VILLAGER), - BLAZE("Blaze", Enemies.ENEMY, EntityType.BLAZE), - MUSHROOMCOW("MushroomCow", Enemies.FRIENDLY, EntityType.MUSHROOM_COW), - MAGMACUBE("MagmaCube", Enemies.ENEMY, EntityType.MAGMA_CUBE), - SNOWMAN("Snowman", Enemies.FRIENDLY, "", EntityType.SNOWMAN), - OCELOT("Ocelot", Enemies.NEUTRAL, EntityType.OCELOT), - IRONGOLEM("IronGolem", Enemies.NEUTRAL, EntityType.IRON_GOLEM); - - public static final Logger logger = Logger.getLogger("Minecraft"); - - private Mob(String n, Enemies en, String s, EntityType type) - { - this.suffix = s; - this.name = n; - this.type = en; - this.bukkitType = type; - } - - private Mob(String n, Enemies en, EntityType type) - { - this.name = n; - this.type = en; - this.bukkitType = type; - } - public String suffix = "s"; - final public String name; - final public Enemies type; - final private EntityType bukkitType; - private static final Map<String, Mob> hashMap = new HashMap<String, Mob>(); - - static - { - for (Mob mob : Mob.values()) - { - hashMap.put(mob.name.toLowerCase(Locale.ENGLISH), mob); - } - } - - public static Set<String> getMobList() { - return Collections.unmodifiableSet(hashMap.keySet()); - } - - public LivingEntity spawn(final Player player, final Server server, final Location loc) throws MobException - { - final LivingEntity entity = player.getWorld().spawn(loc, (Class<? extends LivingEntity>)this.bukkitType.getEntityClass()); - if (entity == null) - { - logger.log(Level.WARNING, _("unableToSpawnMob")); - throw new MobException(); - } - return entity; - } - - - public enum Enemies - { - FRIENDLY("friendly"), - NEUTRAL("neutral"), - ENEMY("enemy"); - - private Enemies(final String type) - { - this.type = type; - } - final protected String type; - } - - public EntityType getType() - { - return bukkitType; - } - - public static Mob fromName(final String name) - { - return hashMap.get(name.toLowerCase(Locale.ENGLISH)); - } - - - public static class MobException extends Exception - { - private static final long serialVersionUID = 1L; - } -} diff --git a/Essentials/src/net/ess3/bukkit/PermissionFactory.java b/Essentials/src/net/ess3/bukkit/PermissionFactory.java new file mode 100644 index 000000000..3d8c2da9b --- /dev/null +++ b/Essentials/src/net/ess3/bukkit/PermissionFactory.java @@ -0,0 +1,51 @@ +package net.ess3.bukkit; + +import java.util.regex.Pattern; +import org.bukkit.Bukkit; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; +import org.bukkit.plugin.PluginManager; + + +public class PermissionFactory +{ + private static transient final Pattern DOT_PATTERN = Pattern.compile("\\."); + + public static Permission registerPermission(String permission, PermissionDefault defaultPerm) + { + final PluginManager pluginManager = Bukkit.getServer().getPluginManager(); + final String[] parts = DOT_PATTERN.split(permission); + final StringBuilder builder = new StringBuilder(permission.length()); + Permission parent = null; + for (int i = 0; i < parts.length - 1; i++) + { + builder.append(parts[i]).append(".*"); + String permString = builder.toString(); + Permission perm = pluginManager.getPermission(permString); + if (perm == null) + { + perm = new Permission(permString, PermissionDefault.FALSE); + pluginManager.addPermission(perm); + if (parent != null) + { + parent.getChildren().put(perm.getName(), Boolean.TRUE); + } + parent = perm; + } + builder.deleteCharAt(builder.length() - 1); + } + Permission perm = pluginManager.getPermission(permission); + if (perm == null) + { + perm = new Permission(permission, defaultPerm); + pluginManager.addPermission(perm); + if (parent != null) + { + parent.getChildren().put(perm.getName(), Boolean.TRUE); + } + parent = perm; + } + perm.recalculatePermissibles(); + return perm; + } +} diff --git a/Essentials/src/net/ess3/bukkit/VersionCheck.java b/Essentials/src/net/ess3/bukkit/VersionCheck.java index 0413e15ba..10573a2d3 100644 --- a/Essentials/src/net/ess3/bukkit/VersionCheck.java +++ b/Essentials/src/net/ess3/bukkit/VersionCheck.java @@ -1,9 +1,9 @@ package net.ess3.bukkit; -import static net.ess3.I18n._; import java.util.logging.Level; import java.util.regex.Matcher; import java.util.regex.Pattern; +import static net.ess3.I18n._; import org.bukkit.plugin.PluginManager; diff --git a/Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java b/Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java deleted file mode 100644 index 16397d373..000000000 --- a/Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.ess3.bukkit.events; - -import net.ess3.api.server.events.EventListener; -import org.bukkit.event.Event; -import org.bukkit.event.EventException; -import org.bukkit.event.Listener; -import org.bukkit.plugin.EventExecutor; - - -public abstract class BaseEventExecutor implements EventExecutor -{ - protected final EventListener listener; - - public BaseEventExecutor(final EventListener listener) - { - this.listener = listener; - } - - @Override - public abstract void execute(Listener ll, Event event) throws EventException; -} diff --git a/Essentials/src/net/ess3/bukkit/events/BukkitEventFactory.java b/Essentials/src/net/ess3/bukkit/events/BukkitEventFactory.java deleted file mode 100644 index cc36c272d..000000000 --- a/Essentials/src/net/ess3/bukkit/events/BukkitEventFactory.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.ess3.bukkit.events; - -import net.ess3.api.server.Plugin; -import net.ess3.api.server.events.EventFactory; -import net.ess3.api.server.events.EventListener; -import net.ess3.api.server.events.EventPriority; -import net.ess3.api.server.events.EventType; - - -public class BukkitEventFactory implements EventFactory -{ - private Plugin plugin; - - public BukkitEventFactory(Plugin plugin) - { - this.plugin = plugin; - } - - @Override - public void register(EventListener listener, EventType type, EventPriority priority, boolean ignoreCancelled) - { - BukkitListener bukkitListener = new BukkitListener(plugin); - bukkitListener.register(listener, type, priority, ignoreCancelled); - } -} diff --git a/Essentials/src/net/ess3/bukkit/events/BukkitListener.java b/Essentials/src/net/ess3/bukkit/events/BukkitListener.java deleted file mode 100644 index 2bce6e31c..000000000 --- a/Essentials/src/net/ess3/bukkit/events/BukkitListener.java +++ /dev/null @@ -1,70 +0,0 @@ -package net.ess3.bukkit.events; - -import net.ess3.api.server.Plugin; -import net.ess3.api.server.events.EventListener; -import net.ess3.api.server.events.EventPriority; -import net.ess3.api.server.events.EventType; -import net.ess3.bukkit.BukkitPlugin; -import org.bukkit.event.Event; -import org.bukkit.event.Listener; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.plugin.EventExecutor; - - -public class BukkitListener implements Listener -{ - private Plugin plugin; - - public BukkitListener(final Plugin plugin) - { - this.plugin = plugin; - } - - public void register(EventListener listener, EventType type, EventPriority priority, boolean ignoreCancelled) - { - Class<? extends Event> event = getEventClass(type); - org.bukkit.event.EventPriority bukkitPriority = getEventPriority(priority); - EventExecutor executor = getEventExecutor(type, listener); - ((BukkitPlugin)plugin).getBukkitServer().getPluginManager().registerEvent(event, this, bukkitPriority, executor, ((BukkitPlugin)plugin).getBukkitPlugin(), ignoreCancelled); - } - - private static Class<? extends Event> getEventClass(final EventType type) - { - switch (type) - { - case PLACE_BLOCK: - return BlockPlaceEvent.class; - } - throw new RuntimeException("Missing Event Class"); - } - - private static org.bukkit.event.EventPriority getEventPriority(final EventPriority priority) - { - switch (priority) - { - case LOWEST: - return org.bukkit.event.EventPriority.LOWEST; - case LOW: - return org.bukkit.event.EventPriority.LOW; - case NORMAL: - return org.bukkit.event.EventPriority.NORMAL; - case HIGH: - return org.bukkit.event.EventPriority.HIGH; - case HIGHEST: - return org.bukkit.event.EventPriority.HIGHEST; - case MONITOR: - return org.bukkit.event.EventPriority.MONITOR; - } - throw new RuntimeException("Missing Event Priority"); - } - - private EventExecutor getEventExecutor(final EventType type, final EventListener listener) - { - switch (type) - { - case PLACE_BLOCK: - return new PlaceBlockExecutor(listener, plugin.getServer()); - } - throw new RuntimeException("Missing Event Executor"); - } -} diff --git a/Essentials/src/net/ess3/bukkit/events/PlaceBlockExecutor.java b/Essentials/src/net/ess3/bukkit/events/PlaceBlockExecutor.java deleted file mode 100644 index 4216da9f3..000000000 --- a/Essentials/src/net/ess3/bukkit/events/PlaceBlockExecutor.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.ess3.bukkit.events; - -import net.ess3.api.ondemand.UserOnDemand; -import net.ess3.api.server.Block; -import net.ess3.api.server.Server; -import net.ess3.api.server.events.EventListener; -import net.ess3.bukkit.BukkitBlockFactory; -import org.bukkit.event.Event; -import org.bukkit.event.EventException; -import org.bukkit.event.Listener; -import org.bukkit.event.block.BlockPlaceEvent; - - -public class PlaceBlockExecutor extends BaseEventExecutor -{ - private final Server server; - public PlaceBlockExecutor(EventListener listener, Server server) - { - super(listener); - this.server = server; - } - - @Override - public void execute(Listener ll, Event event) throws EventException - { - org.bukkit.block.Block bukkitBlock = ((BlockPlaceEvent)event).getBlockPlaced(); - Block block = BukkitBlockFactory.convert(bukkitBlock); - String playername = ((BlockPlaceEvent)event).getPlayer().getName(); - boolean success = listener.onBlockPlace(block, new UserOnDemand(playername, server)); - ((BlockPlaceEvent)event).setCancelled(!success); - } -} diff --git a/Essentials/src/net/ess3/commands/Commandafk.java b/Essentials/src/net/ess3/commands/Commandafk.java index 1daa5b46c..3f15469cc 100644 --- a/Essentials/src/net/ess3/commands/Commandafk.java +++ b/Essentials/src/net/ess3/commands/Commandafk.java @@ -32,7 +32,7 @@ public class Commandafk extends EssentialsCommand //user.sendMessage(_("markedAsNotAway")); if (!user.isHidden()) { - ess.broadcastMessage(user, _("userIsNotAway", user.getDisplayName())); + ess.broadcastMessage(user, _("userIsNotAway", user.getPlayer().getDisplayName())); } user.updateActivity(false); } @@ -41,7 +41,7 @@ public class Commandafk extends EssentialsCommand //user.sendMessage(_("markedAsAway")); if (!user.isHidden()) { - ess.broadcastMessage(user, _("userIsAway", user.getDisplayName())); + ess.broadcastMessage(user, _("userIsAway", user.getPlayer().getDisplayName())); } } } diff --git a/Essentials/src/net/ess3/commands/Commandback.java b/Essentials/src/net/ess3/commands/Commandback.java index 58537fa11..3fa5e6bbe 100644 --- a/Essentials/src/net/ess3/commands/Commandback.java +++ b/Essentials/src/net/ess3/commands/Commandback.java @@ -1,8 +1,8 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.economy.Trade; import net.ess3.api.IUser; +import net.ess3.economy.Trade; public class Commandback extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandbackup.java b/Essentials/src/net/ess3/commands/Commandbackup.java index 5cd9737ab..85f423c6f 100644 --- a/Essentials/src/net/ess3/commands/Commandbackup.java +++ b/Essentials/src/net/ess3/commands/Commandbackup.java @@ -2,7 +2,7 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IBackup; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandbackup extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandbalance.java b/Essentials/src/net/ess3/commands/Commandbalance.java index c5bdaab15..a7c89e63a 100644 --- a/Essentials/src/net/ess3/commands/Commandbalance.java +++ b/Essentials/src/net/ess3/commands/Commandbalance.java @@ -2,9 +2,10 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; import net.ess3.permissions.Permissions; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; public class Commandbalance extends EssentialsCommand @@ -16,7 +17,7 @@ public class Commandbalance extends EssentialsCommand { throw new NotEnoughArgumentsException(); } - sender.sendMessage(_("balance", Util.displayCurrency(ess.getUserMap().matchUser(args[0], true, true).getMoney(), ess))); + sender.sendMessage(_("balance", FormatUtil.displayCurrency(ess.getUserMap().matchUser(args[0], true, true).getMoney(), ess))); } @Override @@ -26,6 +27,6 @@ public class Commandbalance extends EssentialsCommand || !Permissions.BALANCE_OTHERS.isAuthorized(user) ? user : ess.getUserMap().matchUser(args[0], true, true)).getMoney(); - user.sendMessage(_("balance", Util.displayCurrency(bal, ess))); + user.sendMessage(_("balance", FormatUtil.displayCurrency(bal, ess))); } } diff --git a/Essentials/src/net/ess3/commands/Commandbalancetop.java b/Essentials/src/net/ess3/commands/Commandbalancetop.java index de952eb20..f085846c2 100644 --- a/Essentials/src/net/ess3/commands/Commandbalancetop.java +++ b/Essentials/src/net/ess3/commands/Commandbalancetop.java @@ -1,15 +1,16 @@ package net.ess3.commands; -import static net.ess3.I18n._; -import net.ess3.utils.Util; -import net.ess3.api.IUser; -import net.ess3.utils.textreader.ArrayListInput; -import net.ess3.utils.textreader.TextPager; import java.text.DateFormat; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.locks.ReentrantReadWriteLock; -import net.ess3.api.server.CommandSender; +import static net.ess3.I18n._; +import net.ess3.api.IUser; +import net.ess3.utils.FormatUtil; +import net.ess3.utils.Util; +import net.ess3.utils.textreader.ArrayListInput; +import net.ess3.utils.textreader.TextPager; +import org.bukkit.command.CommandSender; public class Commandbalancetop extends EssentialsCommand @@ -111,7 +112,7 @@ public class Commandbalancetop extends EssentialsCommand final double userMoney = user.getMoney(); user.updateMoneyCache(userMoney); totalMoney += userMoney; - balances.put(user.getDisplayName(), userMoney); + balances.put(user.getPlayer().getDisplayName(), userMoney); } } @@ -125,11 +126,11 @@ public class Commandbalancetop extends EssentialsCommand } }); - cache.getLines().add(_("serverTotal", Util.displayCurrency(totalMoney, ess))); + cache.getLines().add(_("serverTotal", FormatUtil.displayCurrency(totalMoney, ess))); int pos = 1; for (Map.Entry<String, Double> entry : sortedEntries) { - cache.getLines().add(pos + ". " + entry.getKey() + ", " + Util.displayCurrency(entry.getValue(), ess)); + cache.getLines().add(pos + ". " + entry.getKey() + ", " + FormatUtil.displayCurrency(entry.getValue(), ess)); pos++; } cacheage = System.currentTimeMillis(); diff --git a/Essentials/src/net/ess3/commands/Commandban.java b/Essentials/src/net/ess3/commands/Commandban.java index 85b7ffc1b..f244fecaa 100644 --- a/Essentials/src/net/ess3/commands/Commandban.java +++ b/Essentials/src/net/ess3/commands/Commandban.java @@ -1,13 +1,13 @@ package net.ess3.commands; +import lombok.Cleanup; import net.ess3.Console; import static net.ess3.I18n._; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; import net.ess3.user.Ban; -import lombok.Cleanup; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandban extends EssentialsCommand @@ -55,13 +55,12 @@ public class Commandban extends EssentialsCommand } user.setBanned(true); - user.kickPlayer(banReason); - for (Player onlinePlayer : server.getOnlinePlayers()) + user.getPlayer().kickPlayer(banReason); + for (Player player : server.getOnlinePlayers()) { - final IUser player = onlinePlayer.getUser(); if (Permissions.BAN_NOTIFY.isAuthorized(player)) { - onlinePlayer.sendMessage(_("playerBanned", senderName, user.getName(), banReason)); + player.sendMessage(_("playerBanned", senderName, user.getName(), banReason)); } } } diff --git a/Essentials/src/net/ess3/commands/Commandbanip.java b/Essentials/src/net/ess3/commands/Commandbanip.java index 0b74e2c66..ff9eca5fe 100644 --- a/Essentials/src/net/ess3/commands/Commandbanip.java +++ b/Essentials/src/net/ess3/commands/Commandbanip.java @@ -1,9 +1,9 @@ package net.ess3.commands; +import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.IUser; -import lombok.Cleanup; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandbanip extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandbigtree.java b/Essentials/src/net/ess3/commands/Commandbigtree.java index 981a81575..f02714438 100644 --- a/Essentials/src/net/ess3/commands/Commandbigtree.java +++ b/Essentials/src/net/ess3/commands/Commandbigtree.java @@ -2,9 +2,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.Location; import net.ess3.utils.LocationUtil; -//TODO: remove bukkit +import org.bukkit.Location; import org.bukkit.TreeType; @@ -31,9 +30,9 @@ public class Commandbigtree extends EssentialsCommand throw new NotEnoughArgumentsException(); } - final Location loc = LocationUtil.getTarget(user); + final Location loc = LocationUtil.getTarget(user.getPlayer()); final Location safeLocation = LocationUtil.getSafeDestination(loc); - final boolean success = user.getWorld().generateTree(safeLocation, tree); + final boolean success = user.getPlayer().getWorld().generateTree(safeLocation, tree); if (success) { user.sendMessage(_("bigTreeSuccess")); diff --git a/Essentials/src/net/ess3/commands/Commandbreak.java b/Essentials/src/net/ess3/commands/Commandbreak.java index 2ff282708..22b829e6c 100644 --- a/Essentials/src/net/ess3/commands/Commandbreak.java +++ b/Essentials/src/net/ess3/commands/Commandbreak.java @@ -2,8 +2,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.Material; import net.ess3.permissions.Permissions; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.block.BlockBreakEvent; @@ -14,7 +14,7 @@ public class Commandbreak extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final Block block = user.getTargetBlock(null, 20); + final Block block = user.getPlayer().getTargetBlock(null, 20); if (block == null) { throw new NoChargeException(); @@ -29,7 +29,7 @@ public class Commandbreak extends EssentialsCommand } //final List<ItemStack> list = (List<ItemStack>)block.getDrops(); //final BlockBreakEvent event = new BlockBreakEvent(block, user.getBase(), list); - final BlockBreakEvent event = new BlockBreakEvent(block, user.getBase()); + final BlockBreakEvent event = new BlockBreakEvent(block, user.getPlayer()); server.getPluginManager().callEvent(event); if (event.isCancelled()) { diff --git a/Essentials/src/net/ess3/commands/Commandbroadcast.java b/Essentials/src/net/ess3/commands/Commandbroadcast.java index cba57f7c3..4f01c11bb 100644 --- a/Essentials/src/net/ess3/commands/Commandbroadcast.java +++ b/Essentials/src/net/ess3/commands/Commandbroadcast.java @@ -1,8 +1,9 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.api.server.CommandSender; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; @@ -15,6 +16,6 @@ public class Commandbroadcast extends EssentialsCommand { throw new NotEnoughArgumentsException(); } - ess.broadcastMessage(null, _("broadcast", Util.replaceFormat(getFinalArg(args, 0)))); + ess.broadcastMessage(null, _("broadcast", FormatUtil.replaceFormat(getFinalArg(args, 0)))); } } diff --git a/Essentials/src/net/ess3/commands/Commandburn.java b/Essentials/src/net/ess3/commands/Commandburn.java index d4fe4f5ec..512399739 100644 --- a/Essentials/src/net/ess3/commands/Commandburn.java +++ b/Essentials/src/net/ess3/commands/Commandburn.java @@ -1,8 +1,8 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import net.ess3.api.IUser; +import org.bukkit.command.CommandSender; public class Commandburn extends EssentialsCommand @@ -15,10 +15,10 @@ public class Commandburn extends EssentialsCommand throw new NotEnoughArgumentsException(); } - for (Player p : ess.getUserMap().matchUsers(args[0], false, false)) + for (IUser p : ess.getUserMap().matchUsers(args[0], false, false)) { - p.setFireTicks(Integer.parseInt(args[1]) * 20); - sender.sendMessage(_("burnMsg", p.getDisplayName(), Integer.parseInt(args[1]))); + p.getPlayer().setFireTicks(Integer.parseInt(args[1]) * 20); + sender.sendMessage(_("burnMsg", p.getPlayer().getDisplayName(), Integer.parseInt(args[1]))); } } } diff --git a/Essentials/src/net/ess3/commands/Commandclearinventory.java b/Essentials/src/net/ess3/commands/Commandclearinventory.java index 3c91f38a9..f7740c96c 100644 --- a/Essentials/src/net/ess3/commands/Commandclearinventory.java +++ b/Essentials/src/net/ess3/commands/Commandclearinventory.java @@ -1,54 +1,34 @@ package net.ess3.commands; +import java.util.List; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; import net.ess3.permissions.Permissions; -import java.util.List; -import net.ess3.api.server.Player; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandclearinventory extends EssentialsCommand { - //TODO: Cleanup @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { if (args.length > 0 && Permissions.CLEARINVENTORY_OTHERS.isAuthorized(user)) { - //TODO: Fix fringe user match case. - if (args[0].length() >= 3) + IUser p = ess.getUserMap().matchUser(args[0], false, false); + if (p != null) { - List<Player> online = server.matchPlayer(args[0]); - - if (!online.isEmpty()) - { - for (Player p : online) - { - p.getInventory().clear(); - user.sendMessage(_("inventoryClearedOthers", p.getDisplayName())); - } - return; - } - throw new Exception(_("playerNotFound")); + p.getPlayer().getInventory().clear(); + user.sendMessage(_("inventoryClearedOthers", p.getPlayer().getDisplayName())); } else { - Player p = ess.getUserMap().matchUser(args[0], false, false); - if (p != null) - { - p.getInventory().clear(); - user.sendMessage(_("inventoryClearedOthers", p.getDisplayName())); - } - else - { - throw new Exception(_("playerNotFound")); - } + throw new Exception(_("playerNotFound")); } } else { - user.getInventory().clear(); + user.getPlayer().getInventory().clear(); user.sendMessage(_("inventoryCleared")); } } diff --git a/Essentials/src/net/ess3/commands/Commandcompass.java b/Essentials/src/net/ess3/commands/Commandcompass.java index 8554c4608..82e164d21 100644 --- a/Essentials/src/net/ess3/commands/Commandcompass.java +++ b/Essentials/src/net/ess3/commands/Commandcompass.java @@ -9,7 +9,7 @@ public class Commandcompass extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final int bearing = (int)(user.getLocation().getYaw() + 180 + 360) % 360; + final int bearing = (int)(user.getPlayer().getLocation().getYaw() + 180 + 360) % 360; String dir; if (bearing < 23) { diff --git a/Essentials/src/net/ess3/commands/Commanddelhome.java b/Essentials/src/net/ess3/commands/Commanddelhome.java index fc3e220bc..7cb078537 100644 --- a/Essentials/src/net/ess3/commands/Commanddelhome.java +++ b/Essentials/src/net/ess3/commands/Commanddelhome.java @@ -1,12 +1,11 @@ package net.ess3.commands; +import java.util.Locale; +import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; -import java.util.Locale; -import lombok.Cleanup; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import org.bukkit.command.CommandSender; public class Commanddelhome extends EssentialsCommand @@ -20,7 +19,7 @@ public class Commanddelhome extends EssentialsCommand } @Cleanup - IUser user = sender instanceof Player ? ess.getUserMap().getUser((Player)sender) : null; + IUser user = sender instanceof IUser ? (IUser)sender : null; String name; String[] expandedArg; diff --git a/Essentials/src/net/ess3/commands/Commanddeljail.java b/Essentials/src/net/ess3/commands/Commanddeljail.java index bfbf9ebcb..4aa7c479e 100644 --- a/Essentials/src/net/ess3/commands/Commanddeljail.java +++ b/Essentials/src/net/ess3/commands/Commanddeljail.java @@ -1,7 +1,7 @@ package net.ess3.commands; -import net.ess3.api.server.CommandSender; import static net.ess3.I18n._; +import org.bukkit.command.CommandSender; public class Commanddeljail extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commanddelwarp.java b/Essentials/src/net/ess3/commands/Commanddelwarp.java index 30a8d12a4..e6a465ccd 100644 --- a/Essentials/src/net/ess3/commands/Commanddelwarp.java +++ b/Essentials/src/net/ess3/commands/Commanddelwarp.java @@ -1,7 +1,7 @@ package net.ess3.commands; -import net.ess3.api.server.CommandSender; import static net.ess3.I18n._; +import org.bukkit.command.CommandSender; public class Commanddelwarp extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commanddepth.java b/Essentials/src/net/ess3/commands/Commanddepth.java index 31f621767..681455b90 100644 --- a/Essentials/src/net/ess3/commands/Commanddepth.java +++ b/Essentials/src/net/ess3/commands/Commanddepth.java @@ -9,7 +9,7 @@ public class Commanddepth extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final int depth = user.getLocation().getBlockY() - 63; + final int depth = user.getPlayer().getLocation().getBlockY() - 63; if (depth > 0) { user.sendMessage(_("depthAboveSea", depth)); diff --git a/Essentials/src/net/ess3/commands/Commandeco.java b/Essentials/src/net/ess3/commands/Commandeco.java index b82ac04e7..4b73517f2 100644 --- a/Essentials/src/net/ess3/commands/Commandeco.java +++ b/Essentials/src/net/ess3/commands/Commandeco.java @@ -1,13 +1,12 @@ package net.ess3.commands; -import net.ess3.api.ISettings; -import net.ess3.api.IUser; -import static net.ess3.I18n._; - import java.util.Locale; import lombok.Cleanup; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import static net.ess3.I18n._; +import net.ess3.api.ISettings; +import net.ess3.api.IUser; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandeco extends EssentialsCommand @@ -62,7 +61,7 @@ public class Commandeco extends EssentialsCommand { for (Player onlinePlayer : server.getOnlinePlayers()) { - final IUser player = onlinePlayer.getUser(); + final IUser player = ess.getUserMap().getUser(onlinePlayer); switch (cmd) { case GIVE: diff --git a/Essentials/src/net/ess3/commands/Commandenchant.java b/Essentials/src/net/ess3/commands/Commandenchant.java index c84acdb66..138682c84 100644 --- a/Essentials/src/net/ess3/commands/Commandenchant.java +++ b/Essentials/src/net/ess3/commands/Commandenchant.java @@ -1,21 +1,16 @@ package net.ess3.commands; -import net.ess3.bukkit.Enchantments; -import static net.ess3.I18n._; -import net.ess3.utils.Util; -import net.ess3.api.IUser; -import net.ess3.permissions.EnchantPermissions; import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.TreeSet; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; import net.ess3.bukkit.Enchantments; import net.ess3.permissions.EnchantPermissions; import net.ess3.utils.Util; import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; public class Commandenchant extends EssentialsCommand @@ -24,7 +19,7 @@ public class Commandenchant extends EssentialsCommand @Override protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final ItemStack stack = user.getItemInHand(); + final ItemStack stack = user.getPlayer().getItemInHand(); if (stack == null) { throw new Exception(_("nothingInHand")); @@ -68,8 +63,8 @@ public class Commandenchant extends EssentialsCommand { stack.addEnchantment(enchantment, level); } - user.getInventory().setxItemInHand(stack); - user.updateInventory(); + user.getPlayer().getInventory().setItemInHand(stack); + user.getPlayer().updateInventory(); final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH); if (level == 0) { diff --git a/Essentials/src/net/ess3/commands/Commandenderchest.java b/Essentials/src/net/ess3/commands/Commandenderchest.java new file mode 100644 index 000000000..54214f812 --- /dev/null +++ b/Essentials/src/net/ess3/commands/Commandenderchest.java @@ -0,0 +1,26 @@ +package net.ess3.commands; + +import net.ess3.api.IUser; +import net.ess3.permissions.Permissions; + + +public class Commandenderchest extends EssentialsCommand +{ + + @Override + protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception + { + if (args.length > 0 && Permissions.ENDERCHEST_OTHERS.isAuthorized(user)) + { + final IUser invUser = ess.getUserMap().matchUser(args[0], false, false); + user.getPlayer().openInventory(invUser.getPlayer().getEnderChest()); + user.setEnderSee(true); + } + else + { + user.getPlayer().openInventory(user.getPlayer().getEnderChest()); + user.setEnderSee(false); + } + + } +} diff --git a/Essentials/src/net/ess3/commands/Commandessentials.java b/Essentials/src/net/ess3/commands/Commandessentials.java index ac62cef7a..0d2311c45 100644 --- a/Essentials/src/net/ess3/commands/Commandessentials.java +++ b/Essentials/src/net/ess3/commands/Commandessentials.java @@ -1,22 +1,14 @@ package net.ess3.commands; -import static net.ess3.I18n._; - -import net.ess3.api.server.Player; -import java.util.HashMap; import java.util.Map; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Location; -import net.ess3.api.server.Material; -//TODO: remove bukkit -import org.bukkit.block.Block; +import static net.ess3.I18n._; +import org.bukkit.command.CommandSender; public class Commandessentials extends EssentialsCommand { private transient int taskid; - private final transient Map<Player, Block> noteBlocks = new HashMap<Player, Block>(); - + @Override protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception { @@ -28,14 +20,6 @@ public class Commandessentials extends EssentialsCommand { run_debug(sender, args); } - else if (args[0].equalsIgnoreCase("nya")) - { - run_nya(sender, args); - } - else if (args[0].equalsIgnoreCase("moo")) - { - run_moo(sender, args); - } else { run_reload(sender, args); @@ -70,103 +54,4 @@ public class Commandessentials extends EssentialsCommand ess.reload(); sender.sendMessage(_("essentialsReload", ess.getPlugin().getVersion())); } - - private void run_nya(final CommandSender sender, final String[] args) throws Exception - { - final Map<String, Byte> noteMap = new HashMap<String, Byte>(); - noteMap.put("1F#", (byte)0x0); - noteMap.put("1G", (byte)0x1); - noteMap.put("1G#", (byte)0x2); - noteMap.put("1A", (byte)0x3); - noteMap.put("1A#", (byte)0x4); - noteMap.put("1B", (byte)0x5); - noteMap.put("1C", (byte)0x6); - noteMap.put("1C#", (byte)0x7); - noteMap.put("1D", (byte)0x8); - noteMap.put("1D#", (byte)0x9); - noteMap.put("1E", (byte)0xA); - noteMap.put("1F", (byte)0xB); - noteMap.put("2F#", (byte)(0x0 + 0xC)); - noteMap.put("2G", (byte)(0x1 + 0xC)); - noteMap.put("2G#", (byte)(0x2 + 0xC)); - noteMap.put("2A", (byte)(0x3 + 0xC)); - noteMap.put("2A#", (byte)(0x4 + 0xC)); - noteMap.put("2B", (byte)(0x5 + 0xC)); - noteMap.put("2C", (byte)(0x6 + 0xC)); - noteMap.put("2C#", (byte)(0x7 + 0xC)); - noteMap.put("2D", (byte)(0x8 + 0xC)); - noteMap.put("2D#", (byte)(0x9 + 0xC)); - noteMap.put("2E", (byte)(0xA + 0xC)); - noteMap.put("2F", (byte)(0xB + 0xC)); - if (!noteBlocks.isEmpty()) - { - return; - } - final String tuneStr = "1D#,1E,2F#,,2A#,1E,1D#,1E,2F#,2B,2D#,2E,2D#,2A#,2B,,2F#,,1D#,1E,2F#,2B,2C#,2A#,2B,2C#,2E,2D#,2E,2C#,,2F#,,2G#,,1D,1D#,,1C#,1D,1C#,1B,,1B,,1C#,,1D,,1D,1C#,1B,1C#,1D#,2F#,2G#,1D#,2F#,1C#,1D#,1B,1C#,1B,1D#,,2F#,,2G#,1D#,2F#,1C#,1D#,1B,1D,1D#,1D,1C#,1B,1C#,1D,,1B,1C#,1D#,2F#,1C#,1D,1C#,1B,1C#,,1B,,1C#,,2F#,,2G#,,1D,1D#,,1C#,1D,1C#,1B,,1B,,1C#,,1D,,1D,1C#,1B,1C#,1D#,2F#,2G#,1D#,2F#,1C#,1D#,1B,1C#,1B,1D#,,2F#,,2G#,1D#,2F#,1C#,1D#,1B,1D,1D#,1D,1C#,1B,1C#,1D,,1B,1C#,1D#,2F#,1C#,1D,1C#,1B,1C#,,1B,,1B,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1B,,"; - final String[] tune = tuneStr.split(","); - for (Player player : server.getOnlinePlayers()) - { - final Location loc = player.getLocation(); - loc.add(0, 3, 0); - while (loc.getBlockY() < player.getLocation().getBlockY() + 10 && loc.getBlock().getTypeId() != 0) - { - loc.add(0, 1, 0); - } - if (loc.getBlock().getTypeId() == 0) - { - noteBlocks.put(player, loc.getBlock()); - player.sendBlockChange(loc, Material.NOTE_BLOCK, (byte)0); - } - } - taskid = ess.getPlugin().scheduleSyncRepeatingTask(new Runnable() - { - int i = 0; - - @Override - public void run() - { - final String note = tune[i]; - i++; - if (i >= tune.length) - { - Commandessentials.this.stopTune(); - } - if (note.isEmpty()) - { - return; - } - Map<Player, Block> noteBlocks = Commandessentials.this.noteBlocks; - for (Player onlinePlayer : server.getOnlinePlayers()) - { - final Block block = noteBlocks.get(onlinePlayer); - if (block == null || block.getType() != Material.NOTE_BLOCK) - { - continue; - } - onlinePlayer.playNote(block.getLocation(), (byte)0, noteMap.get(note)); - } - } - }, 20, 2); - } - - private void stopTune() - { - ess.getPlugin().cancelTask(taskid); - for (Block block : noteBlocks.values()) - { - if (block.getType() == Material.NOTE_BLOCK) - { - block.setType(Material.AIR); - } - } - noteBlocks.clear(); - } - - private void run_moo(final CommandSender sender, final String args[]) - { - if(sender == ess.getServer().getConsoleSender()) - sender.sendMessage(new String[]{" (__)", " (oo)", " /------\\/", " / | ||", " * /\\---/\\", " ~~ ~~", "....\"Have you mooed today?\"..." } ); - else - sender.sendMessage(new String[]{" (__)", " (oo)", " /------\\/", " / | | |", " * /\\---/\\", " ~~ ~~", "....\"Have you mooed today?\"..." } ); - } } diff --git a/Essentials/src/net/ess3/commands/Commandexp.java b/Essentials/src/net/ess3/commands/Commandexp.java index 0150126b7..072434550 100644 --- a/Essentials/src/net/ess3/commands/Commandexp.java +++ b/Essentials/src/net/ess3/commands/Commandexp.java @@ -2,11 +2,10 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.craftbukkit.SetExpFix; import net.ess3.permissions.Permissions; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; public class Commandexp extends EssentialsCommand @@ -115,9 +114,9 @@ public class Commandexp extends EssentialsCommand private void showExp(final CommandSender sender, final IUser target) { - final int totalExp = SetExpFix.getTotalExperience(target); - final int expLeft = (int)Util.roundDouble(((((3.5 * target.getLevel()) + 6.7) - (totalExp - ((1.75 * (target.getLevel() * target.getLevel())) + (5.00 * target.getLevel())))) + 1)); - sender.sendMessage(_("exp", target.getDisplayName(), SetExpFix.getTotalExperience(target), target.getLevel(), expLeft)); + final int totalExp = SetExpFix.getTotalExperience(target.getPlayer()); + final int expLeft = (int)Util.roundDouble(((((3.5 * target.getPlayer().getLevel()) + 6.7) - (totalExp - ((1.75 * (target.getPlayer().getLevel() * target.getPlayer().getLevel())) + (5.00 * target.getPlayer().getLevel())))) + 1)); + sender.sendMessage(_("exp", target.getPlayer().getDisplayName(), SetExpFix.getTotalExperience(target.getPlayer()), target.getPlayer().getLevel(), expLeft)); } private void setExp(final CommandSender sender, final IUser target, final String strAmount, final boolean give) @@ -125,13 +124,13 @@ public class Commandexp extends EssentialsCommand Long amount = Long.parseLong(strAmount); if (give) { - amount += SetExpFix.getTotalExperience(target); + amount += SetExpFix.getTotalExperience(target.getPlayer()); } if (amount > Integer.MAX_VALUE) { amount = (long)Integer.MAX_VALUE; } - SetExpFix.setTotalExperience(target, amount.intValue()); - sender.sendMessage(_("expSet", target.getDisplayName(), amount)); + SetExpFix.setTotalExperience(target.getPlayer(), amount.intValue()); + sender.sendMessage(_("expSet", target.getPlayer().getDisplayName(), amount)); } }
\ No newline at end of file diff --git a/Essentials/src/net/ess3/commands/Commandext.java b/Essentials/src/net/ess3/commands/Commandext.java index 61d5cc317..7fc130416 100644 --- a/Essentials/src/net/ess3/commands/Commandext.java +++ b/Essentials/src/net/ess3/commands/Commandext.java @@ -2,8 +2,7 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import org.bukkit.command.CommandSender; public class Commandext extends EssentialsCommand @@ -24,7 +23,7 @@ public class Commandext extends EssentialsCommand { if (args.length < 1) { - user.setFireTicks(0); + user.getPlayer().setFireTicks(0); user.sendMessage(_("extinguish")); return; } @@ -34,10 +33,10 @@ public class Commandext extends EssentialsCommand private void extinguishPlayers(final CommandSender sender, final String name) throws Exception { - for (Player matchPlayer : ess.getUserMap().matchUsers(name, false, false)) + for (IUser matchPlayer : ess.getUserMap().matchUsers(name, false, false)) { - matchPlayer.setFireTicks(0); - sender.sendMessage(_("extinguishOthers", matchPlayer.getDisplayName())); + matchPlayer.getPlayer().setFireTicks(0); + sender.sendMessage(_("extinguishOthers", matchPlayer.getPlayer().getDisplayName())); } } } diff --git a/Essentials/src/net/ess3/commands/Commandfeed.java b/Essentials/src/net/ess3/commands/Commandfeed.java index 0f8867ae4..d58f14fa3 100644 --- a/Essentials/src/net/ess3/commands/Commandfeed.java +++ b/Essentials/src/net/ess3/commands/Commandfeed.java @@ -1,12 +1,10 @@ package net.ess3.commands; -import java.util.List; import java.util.Set; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; +import org.bukkit.command.CommandSender; public class Commandfeed extends EssentialsCommand @@ -20,8 +18,8 @@ public class Commandfeed extends EssentialsCommand } else { - user.setFoodLevel(20); - user.setSaturation(10); + user.getPlayer().setFoodLevel(20); + user.getPlayer().setSaturation(10); user.sendMessage(_("feed")); } } @@ -34,11 +32,11 @@ public class Commandfeed extends EssentialsCommand sender.sendMessage(_("playerNotFound")); return; } - for (Player player : users) + for (IUser player : users) { - player.setFoodLevel(20); - player.setSaturation(10); - sender.sendMessage(_("feedOther", player.getDisplayName())); + player.getPlayer().setFoodLevel(20); + player.getPlayer().setSaturation(10); + sender.sendMessage(_("feedOther", player.getPlayer().getDisplayName())); } } } diff --git a/Essentials/src/net/ess3/commands/Commandfireball.java b/Essentials/src/net/ess3/commands/Commandfireball.java index 8f4c0a536..c6a7c24a9 100644 --- a/Essentials/src/net/ess3/commands/Commandfireball.java +++ b/Essentials/src/net/ess3/commands/Commandfireball.java @@ -1,7 +1,6 @@ package net.ess3.commands; import net.ess3.api.IUser; -//TODO: remove bukkit import org.bukkit.entity.Fireball; import org.bukkit.entity.SmallFireball; import org.bukkit.util.Vector; @@ -17,8 +16,8 @@ public class Commandfireball extends EssentialsCommand { small = true; } - final Vector direction = user.getEyeLocation().getDirection().multiply(2); - final Fireball fireball = user.getWorld().spawn(user.getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ()), small ? SmallFireball.class : Fireball.class); - fireball.setShooter(user.getBase()); + final Vector direction = user.getPlayer().getEyeLocation().getDirection().multiply(2); + final Fireball fireball = user.getPlayer().getWorld().spawn(user.getPlayer().getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ()), small ? SmallFireball.class : Fireball.class); + fireball.setShooter(user.getPlayer()); } } diff --git a/Essentials/src/net/ess3/commands/Commandfly.java b/Essentials/src/net/ess3/commands/Commandfly.java index 82f5023fc..881fecc30 100644 --- a/Essentials/src/net/ess3/commands/Commandfly.java +++ b/Essentials/src/net/ess3/commands/Commandfly.java @@ -2,10 +2,9 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.Server; import net.ess3.permissions.Permissions; +import org.bukkit.Server; +import org.bukkit.command.CommandSender; @@ -31,39 +30,39 @@ public class Commandfly extends EssentialsCommand flyOtherPlayers(server, user, args); return; } - user.setAllowFlight(!user.getAllowFlight()); - if (!user.getAllowFlight()) + user.getPlayer().setAllowFlight(!user.getPlayer().getAllowFlight()); + if (!user.getPlayer().getAllowFlight()) { - user.setFlying(false); + user.getPlayer().setFlying(false); } - user.sendMessage(_("flyMode", _(user.getAllowFlight() ? "enabled" : "disabled"), user.getDisplayName())); + user.sendMessage(_("flyMode", _(user.getPlayer().getAllowFlight() ? "enabled" : "disabled"), user.getPlayer().getDisplayName())); } private void flyOtherPlayers(final Server server, final CommandSender sender, final String[] args) { - for (Player matchPlayer : ess.getUserMap().matchUsers(args[0],false,false)) + for (IUser matchPlayer : ess.getUserMap().matchUsers(args[0],false,false)) { if (args.length > 1) { if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1")) { - matchPlayer.setAllowFlight(true); + matchPlayer.getPlayer().setAllowFlight(true); } else { - matchPlayer.setAllowFlight(false); + matchPlayer.getPlayer().setAllowFlight(false); } } else { - matchPlayer.setAllowFlight(!matchPlayer.getAllowFlight()); + matchPlayer.getPlayer().setAllowFlight(!matchPlayer.getPlayer().getAllowFlight()); } - if (!matchPlayer.getAllowFlight()) + if (!matchPlayer.getPlayer().getAllowFlight()) { - matchPlayer.setFlying(false); + matchPlayer.getPlayer().setFlying(false); } - sender.sendMessage(_("flyMode", _(matchPlayer.getAllowFlight() ? "enabled" : "disabled"), matchPlayer.getDisplayName())); + sender.sendMessage(_("flyMode", _(matchPlayer.getPlayer().getAllowFlight() ? "enabled" : "disabled"), matchPlayer.getPlayer().getDisplayName())); } } } diff --git a/Essentials/src/net/ess3/commands/Commandgamemode.java b/Essentials/src/net/ess3/commands/Commandgamemode.java index 2e0705303..eb74b6c33 100644 --- a/Essentials/src/net/ess3/commands/Commandgamemode.java +++ b/Essentials/src/net/ess3/commands/Commandgamemode.java @@ -3,10 +3,9 @@ package net.ess3.commands; import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; -// TODO: net.ess3 gamemode +import org.bukkit.GameMode; +import org.bukkit.command.CommandSender; public class Commandgamemode extends EssentialsCommand @@ -31,30 +30,30 @@ public class Commandgamemode extends EssentialsCommand return; } - user.setGameMode(user.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL); - user.sendMessage(_("gameMode", _(user.getGameMode().toString().toLowerCase(Locale.ENGLISH)), user.getDisplayName())); + user.getPlayer().setGameMode(user.getPlayer().getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL); + user.sendMessage(_("gameMode", _(user.getPlayer().getGameMode().toString().toLowerCase(Locale.ENGLISH)), user.getPlayer().getDisplayName())); } private void gamemodeOtherPlayers(final CommandSender sender, final String args[]) { - for (Player player : ess.getUserMap().matchUsers(args[0], false, false)) + for (IUser player : ess.getUserMap().matchUsers(args[0], false, false)) { if (args.length > 1) { if (args[1].contains("creat") || args[1].equalsIgnoreCase("1")) { - player.setGameMode(GameMode.CREATIVE); + player.getPlayer().setGameMode(GameMode.CREATIVE); } else { - player.setGameMode(GameMode.SURVIVAL); + player.getPlayer().setGameMode(GameMode.SURVIVAL); } } else { - player.setGameMode(player.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL); + player.getPlayer().setGameMode(player.getPlayer().getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL); } - sender.sendMessage(_("gameMode", _(player.getGameMode().toString().toLowerCase(Locale.ENGLISH)), player.getDisplayName())); + sender.sendMessage(_("gameMode", _(player.getPlayer().getGameMode().toString().toLowerCase(Locale.ENGLISH)), player.getPlayer().getDisplayName())); } } } diff --git a/Essentials/src/net/ess3/commands/Commandgc.java b/Essentials/src/net/ess3/commands/Commandgc.java index 9eb45af65..6f7a0b78b 100644 --- a/Essentials/src/net/ess3/commands/Commandgc.java +++ b/Essentials/src/net/ess3/commands/Commandgc.java @@ -1,10 +1,9 @@ package net.ess3.commands; import static net.ess3.I18n._; -//TODO - Remove bukkit refs -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.World; import org.bukkit.ChatColor; +import org.bukkit.World; +import org.bukkit.command.CommandSender; diff --git a/Essentials/src/net/ess3/commands/Commandgetpos.java b/Essentials/src/net/ess3/commands/Commandgetpos.java index 5c0273742..7b2dd2e68 100644 --- a/Essentials/src/net/ess3/commands/Commandgetpos.java +++ b/Essentials/src/net/ess3/commands/Commandgetpos.java @@ -1,9 +1,9 @@ package net.ess3.commands; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Location; import net.ess3.permissions.Permissions; +import org.bukkit.Location; +import org.bukkit.command.CommandSender; @@ -18,12 +18,12 @@ public class Commandgetpos extends EssentialsCommand final IUser otherUser = ess.getUserMap().matchUser(args[0], false, false); if (!otherUser.isHidden() || Permissions.LIST_HIDDEN.isAuthorized(user)) { - outputPosition(user, otherUser.getLocation(), user.getLocation()); + outputPosition(user, otherUser.getPlayer().getLocation(), user.getPlayer().getLocation()); return; } } - outputPosition(user, user.getLocation(), null); + outputPosition(user, user.getPlayer().getLocation(), null); } @Override @@ -34,7 +34,7 @@ public class Commandgetpos extends EssentialsCommand throw new NotEnoughArgumentsException(); } final IUser user = ess.getUserMap().matchUser(args[0], false, false); - outputPosition(sender, user.getLocation(), null); + outputPosition(sender, user.getPlayer().getLocation(), null); } //TODO: Translate diff --git a/Essentials/src/net/ess3/commands/Commandgive.java b/Essentials/src/net/ess3/commands/Commandgive.java index 6cbc178f3..db58eba4f 100644 --- a/Essentials/src/net/ess3/commands/Commandgive.java +++ b/Essentials/src/net/ess3/commands/Commandgive.java @@ -3,15 +3,12 @@ package net.ess3.commands; import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; -import net.ess3.api.server.Player; import net.ess3.permissions.GivePermissions; import net.ess3.utils.Util; -//TODO: remove bukkit imports import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; public class Commandgive extends EssentialsCommand @@ -23,8 +20,8 @@ public class Commandgive extends EssentialsCommand { throw new NotEnoughArgumentsException(); } - - final IUser giveTo = getPlayer(args, 0); + + final IUser giveTo = ess.getUserMap().matchUser(args[0], false, false); final ItemStack stack = ess.getItemDb().get(args[1], giveTo); @@ -35,14 +32,14 @@ public class Commandgive extends EssentialsCommand } if (args.length > 3 && Util.isInt(args[2]) && Util.isInt(args[3])) - { + { stack.setAmount(Integer.parseInt(args[2])); stack.setDurability(Short.parseShort(args[3])); } else if (args.length > 2 && Integer.parseInt(args[2]) > 0) { stack.setAmount(Integer.parseInt(args[2])); - } + } if (args.length > 3) { @@ -53,7 +50,7 @@ public class Commandgive extends EssentialsCommand { continue; } - final Enchantment enchantment = Commandenchant.getEnchantment(split[0], sender instanceof Player ? ess.getUserMap().getUser((Player)sender) : null); + final Enchantment enchantment = Commandenchant.getEnchantment(split[0], sender instanceof IUser ? (IUser)sender : null); int level; if (split.length > 1) { @@ -67,16 +64,16 @@ public class Commandgive extends EssentialsCommand } } - if (stack.getType() == Material.AIR) + if (stack.getTypeId() == 0) { throw new Exception(_("cantSpawnItem", "Air")); } - + giveTo.giveItems(stack, false); //TODO: TL this. final String itemName = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace('_', ' '); - sender.sendMessage(ChatColor.BLUE + "Giving " + stack.getAmount() + " of " + itemName + " to " + giveTo.getDisplayName() + "."); - + sender.sendMessage(ChatColor.BLUE + "Giving " + stack.getAmount() + " of " + itemName + " to " + giveTo.getPlayer().getDisplayName() + "."); + } } diff --git a/Essentials/src/net/ess3/commands/Commandgod.java b/Essentials/src/net/ess3/commands/Commandgod.java index 0f74689d3..11daf7321 100644 --- a/Essentials/src/net/ess3/commands/Commandgod.java +++ b/Essentials/src/net/ess3/commands/Commandgod.java @@ -2,9 +2,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; +import org.bukkit.command.CommandSender; @@ -36,9 +35,8 @@ public class Commandgod extends EssentialsCommand private void godOtherPlayers(final CommandSender sender, final String[] args) { - for (Player matchPlayer : server.matchPlayer(args[0])) + for (IUser player : ess.getUserMap().matchUsers(args[0], false, true)) { - final IUser player = ess.getUserMap().getUser(matchPlayer); if (player.isHidden()) { continue; @@ -62,7 +60,7 @@ public class Commandgod extends EssentialsCommand final boolean enabled = player.isGodModeEnabled(); player.sendMessage(_("godMode", (enabled ? _("enabled") : _("disabled")))); - sender.sendMessage(_("godMode", _(enabled ? "godEnabledFor" : "godDisabledFor", matchPlayer.getDisplayName()))); + sender.sendMessage(_("godMode", _(enabled ? "godEnabledFor" : "godDisabledFor", player.getName()))); } } } diff --git a/Essentials/src/net/ess3/commands/Commandhat.java b/Essentials/src/net/ess3/commands/Commandhat.java index 68aeb92f4..d4534f55a 100644 --- a/Essentials/src/net/ess3/commands/Commandhat.java +++ b/Essentials/src/net/ess3/commands/Commandhat.java @@ -2,11 +2,10 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; import net.ess3.craftbukkit.InventoryWorkaround; -//TODO: not sure if this is correct -import net.ess3.api.server.IInventory; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.PlayerInventory; @@ -17,7 +16,7 @@ public class Commandhat extends EssentialsCommand { if (args.length > 0 && (args[0].contains("rem") || args[0].contains("off") || args[0].equalsIgnoreCase("0"))) { - final PlayerInventory inv = user.getInventory(); + final PlayerInventory inv = user.getPlayer().getInventory(); final ItemStack head = inv.getHelmet(); if (head == null || head.getType() == Material.AIR) { @@ -27,18 +26,18 @@ public class Commandhat extends EssentialsCommand { final ItemStack air = new ItemStack(Material.AIR); inv.setHelmet(air); - InventoryWorkaround.addItem(user.getInventory(), true, head); + InventoryWorkaround.addItem(user.getPlayer().getInventory(), true, head); user.sendMessage(_("hatRemoved")); } } else { - if (user.getItemInHand().getType() != Material.AIR) + if (user.getPlayer().getItemInHand().getType() != Material.AIR) { - final ItemStack hand = user.getItemInHand(); + final ItemStack hand = user.getPlayer().getItemInHand(); if (hand.getType().getMaxDurability() == 0) { - final PlayerInventory inv = user.getInventory(); + final PlayerInventory inv = user.getPlayer().getInventory(); final ItemStack head = inv.getHelmet(); inv.removeItem(hand); inv.setHelmet(hand); diff --git a/Essentials/src/net/ess3/commands/Commandheal.java b/Essentials/src/net/ess3/commands/Commandheal.java index 946583a19..5159da699 100644 --- a/Essentials/src/net/ess3/commands/Commandheal.java +++ b/Essentials/src/net/ess3/commands/Commandheal.java @@ -1,13 +1,11 @@ package net.ess3.commands; -import java.util.List; import java.util.Set; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; import net.ess3.user.UserData.TimestampType; +import org.bukkit.command.CommandSender; public class Commandheal extends EssentialsCommand @@ -26,9 +24,9 @@ public class Commandheal extends EssentialsCommand user.checkCooldown(TimestampType.LASTHEAL, ess.getRanks().getHealCooldown(user), true, Permissions.HEAL_COOLDOWN_BYPASS); - user.setHealth(20); - user.setFireTicks(0); - user.setFoodLevel(20); + user.getPlayer().setHealth(20); + user.getPlayer().setFireTicks(0); + user.getPlayer().setFoodLevel(20); user.sendMessage(_("heal")); } @@ -51,12 +49,12 @@ public class Commandheal extends EssentialsCommand sender.sendMessage(_("playerNotFound")); return; } - for (Player p : users) + for (IUser p : users) { - p.setHealth(20); - p.setFoodLevel(20); - p.sendMessage(_("heal")); - sender.sendMessage(_("healOther", p.getDisplayName())); + p.getPlayer().setHealth(20); + p.getPlayer().setFoodLevel(20); + p.getPlayer().sendMessage(_("heal")); + sender.sendMessage(_("healOther", p.getPlayer().getDisplayName())); } } } diff --git a/Essentials/src/net/ess3/commands/Commandhelp.java b/Essentials/src/net/ess3/commands/Commandhelp.java index ecd9e0ca0..dd3cb96fe 100644 --- a/Essentials/src/net/ess3/commands/Commandhelp.java +++ b/Essentials/src/net/ess3/commands/Commandhelp.java @@ -3,9 +3,9 @@ package net.ess3.commands; import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; import net.ess3.utils.Util; import net.ess3.utils.textreader.*; +import org.bukkit.command.CommandSender; diff --git a/Essentials/src/net/ess3/commands/Commandhelpop.java b/Essentials/src/net/ess3/commands/Commandhelpop.java index 5ca9a5386..d3bb267fb 100644 --- a/Essentials/src/net/ess3/commands/Commandhelpop.java +++ b/Essentials/src/net/ess3/commands/Commandhelpop.java @@ -3,9 +3,10 @@ package net.ess3.commands; import java.util.logging.Level; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; +import org.bukkit.entity.Player; public class Commandhelpop extends EssentialsCommand @@ -18,11 +19,10 @@ public class Commandhelpop extends EssentialsCommand throw new NotEnoughArgumentsException(); } user.setDisplayNick(); - final String message = _("helpOp", user.getDisplayName(), Util.stripFormat(getFinalArg(args, 0))); + final String message = _("helpOp", user.getPlayer().getDisplayName(), FormatUtil.stripFormat(getFinalArg(args, 0))); logger.log(Level.INFO, message); - for (Player onlinePlayer : server.getOnlinePlayers()) + for (Player player : server.getOnlinePlayers()) { - final IUser player = onlinePlayer.getUser(); if (!Permissions.HELPOP_RECEIVE.isAuthorized(player)) { continue; diff --git a/Essentials/src/net/ess3/commands/Commandhome.java b/Essentials/src/net/ess3/commands/Commandhome.java index afcac8979..d36fe75a7 100644 --- a/Essentials/src/net/ess3/commands/Commandhome.java +++ b/Essentials/src/net/ess3/commands/Commandhome.java @@ -4,13 +4,12 @@ import java.util.List; import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.Location; -import net.ess3.api.server.Material; import net.ess3.economy.Trade; import net.ess3.permissions.Permissions; import net.ess3.permissions.WorldPermissions; import net.ess3.utils.Util; -//TODO: remove this +import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -98,7 +97,7 @@ public class Commandhome extends EssentialsCommand { throw new NotEnoughArgumentsException(); } - if (user.getWorld() != loc.getWorld() && ess.getSettings().getData().getGeneral().isWorldHomePermissions() + if (user.getPlayer().getWorld() != loc.getWorld() && ess.getSettings().getData().getGeneral().isWorldHomePermissions() && !WorldPermissions.getPermission(loc.getWorld().getName()).isAuthorized(user)) { throw new Exception(_("noPerm", "essentials.world." + loc.getWorld().getName())); diff --git a/Essentials/src/net/ess3/commands/Commandignore.java b/Essentials/src/net/ess3/commands/Commandignore.java index d421e62f2..14dae478a 100644 --- a/Essentials/src/net/ess3/commands/Commandignore.java +++ b/Essentials/src/net/ess3/commands/Commandignore.java @@ -13,19 +13,7 @@ public class Commandignore extends EssentialsCommand { throw new NotEnoughArgumentsException(); } - IUser player; - try - { - player = ess.getUserMap().matchUser(args[0], false, false); - } - catch (NoSuchFieldException ex) - { - player = ess.getUserMap().getUser(args[0]); - } - if (player == null) - { - throw new Exception(_("playerNotFound")); - } + IUser player = ess.getUserMap().matchUser(args[0], false, false); user.acquireWriteLock(); if (user.isIgnoringPlayer(player)) diff --git a/Essentials/src/net/ess3/commands/Commandinfo.java b/Essentials/src/net/ess3/commands/Commandinfo.java index c101ea3d6..cf8d90818 100644 --- a/Essentials/src/net/ess3/commands/Commandinfo.java +++ b/Essentials/src/net/ess3/commands/Commandinfo.java @@ -1,10 +1,10 @@ package net.ess3.commands; -import net.ess3.api.server.CommandSender; import net.ess3.utils.textreader.IText; import net.ess3.utils.textreader.KeywordReplacer; import net.ess3.utils.textreader.TextInput; import net.ess3.utils.textreader.TextPager; +import org.bukkit.command.CommandSender; public class Commandinfo extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandinvsee.java b/Essentials/src/net/ess3/commands/Commandinvsee.java index 41f031cef..f20ac8142 100644 --- a/Essentials/src/net/ess3/commands/Commandinvsee.java +++ b/Essentials/src/net/ess3/commands/Commandinvsee.java @@ -1,10 +1,10 @@ package net.ess3.commands; +import java.util.Arrays; import static net.ess3.I18n._; import net.ess3.api.IUser; import net.ess3.user.Inventory; -import java.util.Arrays; -import net.ess3.api.server.ItemStack; +import org.bukkit.inventory.ItemStack; @@ -26,17 +26,17 @@ public class Commandinvsee extends EssentialsCommand user.acquireWriteLock(); if (invUser == user && user.getData().getInventory() != null) { - invUser.getInventory().setContents(user.getData().getInventory().getBukkitInventory()); + invUser.getPlayer().getInventory().setContents(user.getData().getInventory().getBukkitInventory()); user.getData().setInventory(null); user.sendMessage(_("invRestored")); throw new NoChargeException(); } if (user.getData().getInventory() == null) { - user.getData().setInventory(new Inventory(user.getInventory().getContents())); + user.getData().setInventory(new Inventory(user.getPlayer().getInventory().getContents())); } - ItemStack[] invUserStack = invUser.getInventory().getContents(); - final int userStackLength = user.getInventory().getContents().length; + ItemStack[] invUserStack = invUser.getPlayer().getInventory().getContents(); + final int userStackLength = user.getPlayer().getInventory().getContents().length; if (invUserStack.length < userStackLength) { invUserStack = Arrays.copyOf(invUserStack, userStackLength); @@ -45,8 +45,8 @@ public class Commandinvsee extends EssentialsCommand { throw new Exception(_("invBigger")); } - user.getInventory().setContents(invUserStack); - user.sendMessage(_("invSee", invUser.getDisplayName())); + user.getPlayer().getInventory().setContents(invUserStack); + user.sendMessage(_("invSee", invUser.getPlayer().getDisplayName())); user.sendMessage(_("invSeeHelp")); throw new NoChargeException(); } diff --git a/Essentials/src/net/ess3/commands/Commanditem.java b/Essentials/src/net/ess3/commands/Commanditem.java index 132e1d4aa..b3807481b 100644 --- a/Essentials/src/net/ess3/commands/Commanditem.java +++ b/Essentials/src/net/ess3/commands/Commanditem.java @@ -1,11 +1,11 @@ package net.ess3.commands; +import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.Enchantment; -import net.ess3.api.server.ItemStack; import net.ess3.permissions.ItemPermissions; -import java.util.Locale; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; public class Commanditem extends EssentialsCommand @@ -53,7 +53,7 @@ public class Commanditem extends EssentialsCommand } } - if (stack.isAir()) + if (stack.getTypeId() == 0) { throw new Exception(_("cantSpawnItem", "Air")); } diff --git a/Essentials/src/net/ess3/commands/Commanditemdb.java b/Essentials/src/net/ess3/commands/Commanditemdb.java index 552ce7b27..3008ebfda 100644 --- a/Essentials/src/net/ess3/commands/Commanditemdb.java +++ b/Essentials/src/net/ess3/commands/Commanditemdb.java @@ -1,10 +1,9 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; -import net.ess3.api.server.Player; +import net.ess3.api.IUser; +import org.bukkit.command.CommandSender; +import org.bukkit.inventory.ItemStack; @@ -16,9 +15,9 @@ public class Commanditemdb extends EssentialsCommand ItemStack itemStack = null; if (args.length < 1) { - if (sender instanceof Player) + if (sender instanceof IUser) { - itemStack = ((Player)sender).getItemInHand(); + itemStack = ((IUser)sender).getPlayer().getItemInHand(); } if (itemStack == null) { @@ -32,7 +31,7 @@ public class Commanditemdb extends EssentialsCommand sender.sendMessage(itemStack.getType().toString() + "- " + itemStack.getTypeId() + ":" + Integer.toString(itemStack.getData().getData())); - if (itemStack.getType() != Material.AIR) + if (itemStack.getTypeId() != 0) { int maxuses = itemStack.getType().getMaxDurability(); int durability = ((maxuses + 1) - itemStack.getDurability()); diff --git a/Essentials/src/net/ess3/commands/Commandjails.java b/Essentials/src/net/ess3/commands/Commandjails.java index 44f2de4e1..6a68c1e91 100644 --- a/Essentials/src/net/ess3/commands/Commandjails.java +++ b/Essentials/src/net/ess3/commands/Commandjails.java @@ -1,7 +1,7 @@ package net.ess3.commands; -import net.ess3.api.server.CommandSender; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; public class Commandjails extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandjump.java b/Essentials/src/net/ess3/commands/Commandjump.java index 542d5cdbe..835db0fb9 100644 --- a/Essentials/src/net/ess3/commands/Commandjump.java +++ b/Essentials/src/net/ess3/commands/Commandjump.java @@ -1,11 +1,10 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.economy.Trade; import net.ess3.api.IUser; -import net.ess3.api.server.ILocation; //shouldn't this be location? -import net.ess3.api.server.Location; +import net.ess3.economy.Trade; import net.ess3.utils.LocationUtil; +import org.bukkit.Location; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -15,11 +14,11 @@ public class Commandjump extends EssentialsCommand public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { Location loc; - final ILocation cloc = user.getLocation(); + final Location cloc = user.getPlayer().getLocation(); try { - loc = LocationUtil.getTarget(user); + loc = LocationUtil.getTarget(user.getPlayer()); loc.setYaw(cloc.getYaw()); loc.setPitch(cloc.getPitch()); loc.setY(loc.getY() + 1); diff --git a/Essentials/src/net/ess3/commands/Commandkick.java b/Essentials/src/net/ess3/commands/Commandkick.java index de6495be0..ed3965794 100644 --- a/Essentials/src/net/ess3/commands/Commandkick.java +++ b/Essentials/src/net/ess3/commands/Commandkick.java @@ -3,9 +3,9 @@ package net.ess3.commands; import net.ess3.Console; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandkick extends EssentialsCommand @@ -24,13 +24,12 @@ public class Commandkick extends EssentialsCommand throw new Exception(_("kickExempt")); } final String kickReason = args.length > 1 ? getFinalArg(args, 1) : _("kickDefault"); - user.kickPlayer(kickReason); - final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME; + user.getPlayer().kickPlayer(kickReason); + final String senderName = sender instanceof IUser ? ((IUser)sender).getPlayer().getDisplayName() : Console.NAME; for (Player onlinePlayer : server.getOnlinePlayers()) { - final IUser player = onlinePlayer.getUser(); - if (Permissions.KICK_NOTIFY.isAuthorized(player)) + if (Permissions.KICK_NOTIFY.isAuthorized(onlinePlayer)) { onlinePlayer.sendMessage(_("playerKicked", senderName, user.getName(), kickReason)); } diff --git a/Essentials/src/net/ess3/commands/Commandkickall.java b/Essentials/src/net/ess3/commands/Commandkickall.java index e66409f69..fbea0199e 100644 --- a/Essentials/src/net/ess3/commands/Commandkickall.java +++ b/Essentials/src/net/ess3/commands/Commandkickall.java @@ -1,8 +1,9 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import net.ess3.api.IUser; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandkickall extends EssentialsCommand @@ -12,7 +13,7 @@ public class Commandkickall extends EssentialsCommand { for (Player onlinePlayer : server.getOnlinePlayers()) { - if (sender.isPlayer() && onlinePlayer.getName().equalsIgnoreCase(((Player)sender).getName())) + if (sender instanceof IUser && onlinePlayer.getName().equalsIgnoreCase(((Player)sender).getName())) { continue; } diff --git a/Essentials/src/net/ess3/commands/Commandkill.java b/Essentials/src/net/ess3/commands/Commandkill.java index 1b1ed1055..a098f8096 100644 --- a/Essentials/src/net/ess3/commands/Commandkill.java +++ b/Essentials/src/net/ess3/commands/Commandkill.java @@ -1,10 +1,8 @@ package net.ess3.commands; import static net.ess3.I18n._; - -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -//TODO: remove this +import net.ess3.api.IUser; +import org.bukkit.command.CommandSender; import org.bukkit.event.entity.EntityDamageEvent; @@ -18,17 +16,17 @@ public class Commandkill extends EssentialsCommand throw new NotEnoughArgumentsException(); } - for (Player matchPlayer : ess.getUserMap().matchUsers(args[0], false, false)) + for (IUser matchPlayer : ess.getUserMap().matchUsers(args[0], false, false)) { - final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer, sender instanceof Player && ((Player)sender).getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Short.MAX_VALUE); + final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer.getPlayer(), sender instanceof IUser && sender.getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Short.MAX_VALUE); server.getPluginManager().callEvent(ede); if (ede.isCancelled() && !sender.hasPermission("essentials.kill.force")) { continue; } - matchPlayer.damage(Short.MAX_VALUE); - sender.sendMessage(_("kill", matchPlayer.getDisplayName())); + matchPlayer.getPlayer().damage(Short.MAX_VALUE); + sender.sendMessage(_("kill", matchPlayer.getPlayer().getDisplayName())); } } } diff --git a/Essentials/src/net/ess3/commands/Commandkillall.java b/Essentials/src/net/ess3/commands/Commandkillall.java index a04eccd7d..b8518b73f 100644 --- a/Essentials/src/net/ess3/commands/Commandkillall.java +++ b/Essentials/src/net/ess3/commands/Commandkillall.java @@ -1,16 +1,12 @@ package net.ess3.commands; -import static net.ess3.I18n._; - -import net.ess3.bukkit.Mob; import java.util.Collections; import java.util.Locale; import static net.ess3.I18n._; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.World; -import net.ess3.bukkit.Mob; -//TODO: remove these +import net.ess3.bukkit.LivingEntities; import org.bukkit.Chunk; +import org.bukkit.World; +import org.bukkit.command.CommandSender; import org.bukkit.entity.*; import org.bukkit.event.entity.EntityDeathEvent; @@ -78,11 +74,11 @@ public class Commandkillall extends EssentialsCommand Class<? extends Entity> entityClass = null; if (!animals && !monster && !all) { - if (Mob.fromName(killType) == null) + if (LivingEntities.fromName(killType) == null) { throw new Exception(_("invalidMob")); } - entityClass = Mob.fromName(killType).getType().getEntityClass(); + entityClass = LivingEntities.fromName(killType).getEntityClass(); } int numKills = 0; for (Chunk chunk : world.getLoadedChunks()) diff --git a/Essentials/src/net/ess3/commands/Commandkit.java b/Essentials/src/net/ess3/commands/Commandkit.java index f3ea78ce1..7ba4264fe 100644 --- a/Essentials/src/net/ess3/commands/Commandkit.java +++ b/Essentials/src/net/ess3/commands/Commandkit.java @@ -1,13 +1,13 @@ package net.ess3.commands; +import java.util.Collection; +import java.util.Locale; import static net.ess3.I18n._; -import net.ess3.economy.Trade; -import net.ess3.utils.Util; import net.ess3.api.IUser; +import net.ess3.economy.Trade; import net.ess3.permissions.KitPermissions; import net.ess3.settings.Kit; -import java.util.Collection; -import java.util.Locale; +import net.ess3.utils.Util; public class Commandkit extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandkittycannon.java b/Essentials/src/net/ess3/commands/Commandkittycannon.java index 80dd7c4dd..455ddd1a5 100644 --- a/Essentials/src/net/ess3/commands/Commandkittycannon.java +++ b/Essentials/src/net/ess3/commands/Commandkittycannon.java @@ -3,9 +3,8 @@ package net.ess3.commands; import java.util.Random; import net.ess3.api.IUser; -import net.ess3.api.server.Location; -import net.ess3.bukkit.Mob; -//TODO: remove this +import org.bukkit.Location; +import org.bukkit.entity.EntityType; import org.bukkit.entity.Ocelot; @@ -16,8 +15,8 @@ public class Commandkittycannon extends EssentialsCommand @Override protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final Mob cat = Mob.OCELOT; - final Ocelot ocelot = (Ocelot)cat.spawn(user, server, user.getEyeLocation()); + final EntityType cat = EntityType.OCELOT; + final Ocelot ocelot = (Ocelot)user.getPlayer().getWorld().spawn(user.getPlayer().getEyeLocation(), cat.getEntityClass()); if (ocelot == null) { return; @@ -25,7 +24,7 @@ public class Commandkittycannon extends EssentialsCommand final int i = random.nextInt(Ocelot.Type.values().length); ocelot.setCatType(Ocelot.Type.values()[i]); ocelot.setTamed(true); - ocelot.setVelocity(user.getEyeLocation().getDirection().multiply(2)); + ocelot.setVelocity(user.getPlayer().getEyeLocation().getDirection().multiply(2)); ess.getPlugin().scheduleSyncDelayedTask(new Runnable() { @Override diff --git a/Essentials/src/net/ess3/commands/Commandlightning.java b/Essentials/src/net/ess3/commands/Commandlightning.java index fd7d62db4..56a7122a4 100644 --- a/Essentials/src/net/ess3/commands/Commandlightning.java +++ b/Essentials/src/net/ess3/commands/Commandlightning.java @@ -1,13 +1,11 @@ package net.ess3.commands; +import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; -import lombok.Cleanup; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -//TODO: remove this +import org.bukkit.command.CommandSender; import org.bukkit.entity.LightningStrike; @@ -18,13 +16,13 @@ public class Commandlightning extends EssentialsCommand { IUser user = null; - if (sender instanceof Player) + if (isUser(sender)) { - user = ess.getUserMap().getUser(((Player)sender)); + user = getUser(sender); } if ((args.length < 1 || !Permissions.LIGHTNING_OTHERS.isAuthorized(user)) && user != null) { - user.getWorld().strikeLightning(user.getTargetBlock(null, 600).getLocation()); + user.getPlayer().getWorld().strikeLightning(user.getPlayer().getTargetBlock(null, 600).getLocation()); return; } @@ -45,13 +43,13 @@ public class Commandlightning extends EssentialsCommand } } - for (Player matchPlayer : ess.getUserMap().matchUsers(args[0], false, false)) + for (IUser matchPlayer : ess.getUserMap().matchUsers(args[0], false, false)) { - sender.sendMessage(_("lightningUse", matchPlayer.getDisplayName())); - final LightningStrike strike = matchPlayer.getWorld().strikeLightningEffect(matchPlayer.getLocation()); - if (!ess.getUserMap().getUser(matchPlayer).isGodModeEnabled()) + sender.sendMessage(_("lightningUse", matchPlayer.getPlayer().getDisplayName())); + final LightningStrike strike = matchPlayer.getPlayer().getWorld().strikeLightningEffect(matchPlayer.getPlayer().getLocation()); + if (!matchPlayer.isGodModeEnabled()) { - matchPlayer.damage(power, strike); + matchPlayer.getPlayer().damage(power, strike); } @Cleanup final ISettings settings = ess.getSettings(); diff --git a/Essentials/src/net/ess3/commands/Commandlist.java b/Essentials/src/net/ess3/commands/Commandlist.java index b8fc52738..826dc12d2 100644 --- a/Essentials/src/net/ess3/commands/Commandlist.java +++ b/Essentials/src/net/ess3/commands/Commandlist.java @@ -1,13 +1,14 @@ package net.ess3.commands; +import java.util.*; import static net.ess3.I18n._; -import net.ess3.utils.Util; import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import java.util.*; +import net.ess3.utils.FormatUtil; +import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandlist extends EssentialsCommand { @@ -22,7 +23,7 @@ public class Commandlist extends EssentialsCommand int playerHidden = 0; for (Player onlinePlayer : server.getOnlinePlayers()) { - if (onlinePlayer.getUser().isHidden()) + if (ess.getUserMap().getUser(onlinePlayer).isHidden()) { playerHidden++; } @@ -31,11 +32,11 @@ public class Commandlist extends EssentialsCommand String online; if (showhidden && playerHidden > 0) { - online = _("listAmountHidden", server.getOnlinePlayers().size() - playerHidden, playerHidden, server.getMaxPlayers()); + online = _("listAmountHidden", server.getOnlinePlayers().length - playerHidden, playerHidden, server.getMaxPlayers()); } else { - online = _("listAmount", server.getOnlinePlayers().size() - playerHidden, server.getMaxPlayers()); + online = _("listAmount", server.getOnlinePlayers().length - playerHidden, server.getMaxPlayers()); } sender.sendMessage(online); @@ -56,7 +57,7 @@ public class Commandlist extends EssentialsCommand Map<String, List<IUser>> sort = new HashMap<String, List<IUser>>(); for (Player onlinePlayer : server.getOnlinePlayers()) { - final IUser player = onlinePlayer.getUser(); + final IUser player = getUser(onlinePlayer); if (player.isHidden() && !showhidden) { continue; @@ -75,7 +76,7 @@ public class Commandlist extends EssentialsCommand for (String group : groups) { final StringBuilder groupString = new StringBuilder(); - groupString.append(_("listGroupTag",Util.replaceFormat(group))); + groupString.append(_("listGroupTag",FormatUtil.replaceFormat(group))); final List<IUser> users = sort.get(group); Collections.sort(users); boolean first = true; @@ -106,7 +107,7 @@ public class Commandlist extends EssentialsCommand groupString.append(_("listHiddenTag")); } user.setDisplayNick(); - groupString.append(user.getDisplayName()); + groupString.append(user.getPlayer().getDisplayName()); groupString.append("§f"); } sender.sendMessage(groupString.toString()); @@ -117,7 +118,7 @@ public class Commandlist extends EssentialsCommand final List<IUser> users = new ArrayList<IUser>(); for (Player onlinePlayer : server.getOnlinePlayers()) { - final IUser player =onlinePlayer.getUser(); + final IUser player = getUser(onlinePlayer); if (player.isHidden() && !showhidden) { continue; @@ -156,7 +157,7 @@ public class Commandlist extends EssentialsCommand onlineUsers.append(_("listHiddenTag")); } user.setDisplayNick(); - onlineUsers.append(user.getDisplayName()); + onlineUsers.append(user.getPlayer().getDisplayName()); onlineUsers.append("§f"); } sender.sendMessage(onlineUsers.toString()); diff --git a/Essentials/src/net/ess3/commands/Commandmail.java b/Essentials/src/net/ess3/commands/Commandmail.java index 8685133f6..935a31803 100644 --- a/Essentials/src/net/ess3/commands/Commandmail.java +++ b/Essentials/src/net/ess3/commands/Commandmail.java @@ -3,10 +3,10 @@ package net.ess3.commands; import java.util.List; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; public class Commandmail extends EssentialsCommand @@ -37,23 +37,14 @@ public class Commandmail extends EssentialsCommand throw new Exception(_("noPerm", "essentials.mail.send")); } - Player player = ess.getUserMap().matchUser(args[1], true, true); - IUser u; - if (player != null) - { - u = player.getUser(); - } - else - { - u = ess.getUserMap().matchUser(args[1], true, true); - } + IUser u = ess.getUserMap().matchUser(args[1], true, true); if (u == null) { throw new Exception(_("playerNeverOnServer", args[1])); } if (!u.isIgnoringPlayer(user)) { - final String mail = Util.sanitizeString(Util.stripFormat(getFinalArg(args, 2))); + final String mail = Util.sanitizeString(FormatUtil.stripFormat(getFinalArg(args, 2))); u.addMail(user.getName() + ": " + mail); } user.sendMessage(_("mailSent")); @@ -65,7 +56,7 @@ public class Commandmail extends EssentialsCommand { throw new Exception(_("noPerm", "essentials.mail.sendall")); } - ess.getPlugin().scheduleAsyncDelayedTask(new SendAll(user.getName() + ": " + Util.stripColor(getFinalArg(args, 1)))); + ess.getPlugin().scheduleAsyncDelayedTask(new SendAll(user.getName() + ": " + FormatUtil.stripColor(getFinalArg(args, 1)))); user.sendMessage(_("mailSent")); return; } @@ -92,20 +83,7 @@ public class Commandmail extends EssentialsCommand } else if (args.length >= 3 && "send".equalsIgnoreCase(args[0])) { - Player player = ess.getUserMap().matchUser(args[1], true, true); - IUser u; - if (player != null) - { - u = player.getUser(); - } - else - { - u = ess.getUserMap().matchUser(args[1], true, true); - } - if (u == null) - { - throw new Exception(_("playerNeverOnServer", args[1])); - } + IUser u = ess.getUserMap().matchUser(args[1], true, true); u.addMail("Server: " + getFinalArg(args, 2)); sender.sendMessage(_("mailSent")); return; @@ -117,20 +95,7 @@ public class Commandmail extends EssentialsCommand else if (args.length >= 2) { //allow sending from console without "send" argument, since it's the only thing the console can do - Player player = ess.getUserMap().matchUser(args[0], true, true); - IUser u; - if (player != null) - { - u = player.getUser(); - } - else - { - u = ess.getUserMap().matchUser(args[0], true, true); - } - if (u == null) - { - throw new Exception(_("playerNeverOnServer", args[0])); - } + IUser u = ess.getUserMap().matchUser(args[0], true, true); u.addMail("Server: " + getFinalArg(args, 1)); sender.sendMessage(_("mailSent")); return; diff --git a/Essentials/src/net/ess3/commands/Commandme.java b/Essentials/src/net/ess3/commands/Commandme.java index fb62ec234..59c28fdfe 100644 --- a/Essentials/src/net/ess3/commands/Commandme.java +++ b/Essentials/src/net/ess3/commands/Commandme.java @@ -1,9 +1,10 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.utils.Util; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; +import net.ess3.utils.FormatUtil; +import net.ess3.utils.Util; public class Commandme extends EssentialsCommand @@ -24,14 +25,14 @@ public class Commandme extends EssentialsCommand String message = getFinalArg(args, 0); if (Permissions.CHAT_COLOR.isAuthorized(user)) { - message = Util.replaceFormat(message); + message = FormatUtil.replaceFormat(message); } else { - message = Util.stripColor(message); + message = FormatUtil.stripColor(message); } user.setDisplayNick(); - ess.broadcastMessage(user, _("action", user.getDisplayName(), message)); + ess.broadcastMessage(user, _("action", user.getPlayer().getDisplayName(), message)); } } diff --git a/Essentials/src/net/ess3/commands/Commandmore.java b/Essentials/src/net/ess3/commands/Commandmore.java index 450e644e4..5c4d392a5 100644 --- a/Essentials/src/net/ess3/commands/Commandmore.java +++ b/Essentials/src/net/ess3/commands/Commandmore.java @@ -1,12 +1,12 @@ package net.ess3.commands; +import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.permissions.ItemPermissions; import net.ess3.permissions.Permissions; -import java.util.Locale; -import net.ess3.api.server.ItemStack; +import org.bukkit.inventory.ItemStack; public class Commandmore extends EssentialsCommand @@ -14,7 +14,7 @@ public class Commandmore extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final ItemStack stack = user.getItemInHand(); + final ItemStack stack = user.getPlayer().getItemInHand(); if (stack == null) { throw new Exception(_("cantSpawnItem", "Air")); @@ -51,6 +51,6 @@ public class Commandmore extends EssentialsCommand { stack.setAmount(defaultStackSize > 0 ? defaultStackSize : stack.getMaxStackSize()); } - user.updateInventory(); + user.getPlayer().updateInventory(); } }
\ No newline at end of file diff --git a/Essentials/src/net/ess3/commands/Commandmotd.java b/Essentials/src/net/ess3/commands/Commandmotd.java index d59edd7f1..907a41b34 100644 --- a/Essentials/src/net/ess3/commands/Commandmotd.java +++ b/Essentials/src/net/ess3/commands/Commandmotd.java @@ -1,10 +1,10 @@ package net.ess3.commands; -import net.ess3.api.server.CommandSender; import net.ess3.utils.textreader.IText; import net.ess3.utils.textreader.KeywordReplacer; import net.ess3.utils.textreader.TextInput; import net.ess3.utils.textreader.TextPager; +import org.bukkit.command.CommandSender; public class Commandmotd extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandmsg.java b/Essentials/src/net/ess3/commands/Commandmsg.java index ce29ed5b9..35b01bcf6 100644 --- a/Essentials/src/net/ess3/commands/Commandmsg.java +++ b/Essentials/src/net/ess3/commands/Commandmsg.java @@ -1,15 +1,16 @@ package net.ess3.commands; +import java.util.List; +import java.util.Set; +import lombok.Cleanup; import net.ess3.Console; import static net.ess3.I18n._; -import net.ess3.utils.Util; import net.ess3.api.IReplyTo; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; -import java.util.List; -import lombok.Cleanup; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import net.ess3.utils.FormatUtil; +import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; @@ -24,10 +25,10 @@ public class Commandmsg extends EssentialsCommand } String message = getFinalArg(args, 1); - if (sender instanceof Player) + if (isUser(sender)) { @Cleanup - IUser user = ess.getUserMap().getUser((Player)sender); + IUser user = getUser(sender); user.acquireReadLock(); if (user.getData().isMuted()) { @@ -35,22 +36,22 @@ public class Commandmsg extends EssentialsCommand } if (Permissions.MSG_COLOR.isAuthorized(user)) { - message = Util.replaceFormat(message); + message = FormatUtil.replaceFormat(message); } else { - message = Util.stripColor(message); + message = FormatUtil.stripColor(message); } } else { - message = Util.replaceFormat(message); + message = FormatUtil.replaceFormat(message); } final String translatedMe = _("me"); - final IReplyTo replyTo = sender instanceof Player ? ess.getUserMap().getUser((Player)sender) : Console.getConsoleReplyTo(); - final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME; + final IReplyTo replyTo = isUser(sender) ? getUser(sender) : Console.getConsoleReplyTo(); + final String senderName = isUser(sender) ? getPlayer(sender).getDisplayName() : Console.NAME; if (args[0].equalsIgnoreCase(Console.NAME)) { @@ -62,7 +63,7 @@ public class Commandmsg extends EssentialsCommand return; } - final List<Player> matchedPlayers = ess.getUserMap().matchUser(args[0], false, false); + final Set<IUser> matchedPlayers = ess.getUserMap().matchUsers(args[0], true, false); if (matchedPlayers.isEmpty()) { @@ -70,9 +71,8 @@ public class Commandmsg extends EssentialsCommand } int i = 0; - for (Player matchedPlayer : matchedPlayers) + for (IUser u : matchedPlayers) { - final IUser u = ess.getUserMap().getUser(matchedPlayer); if (u.isHidden()) { i++; @@ -83,17 +83,16 @@ public class Commandmsg extends EssentialsCommand throw new Exception(_("playerNotFound")); } - for (Player matchedPlayer : matchedPlayers) + for (IUser matchedPlayer : matchedPlayers) { - sender.sendMessage(_("msgFormat", translatedMe, matchedPlayer.getDisplayName(), message)); - final IUser matchedUser = ess.getUserMap().getUser(matchedPlayer); - if (sender instanceof Player && (matchedUser.isIgnoringPlayer(ess.getUserMap().getUser((Player)sender)) || matchedUser.isHidden())) + sender.sendMessage(_("msgFormat", translatedMe, matchedPlayer.getPlayer().getDisplayName(), message)); + if (isUser(sender) && (matchedPlayer.isIgnoringPlayer(getUser(sender)) || matchedPlayer.isHidden())) { continue; } matchedPlayer.sendMessage(_("msgFormat", senderName, translatedMe, message)); - replyTo.setReplyTo(ess.getUserMap().getUser(matchedPlayer)); - ess.getUserMap().getUser(matchedPlayer).setReplyTo(sender); + replyTo.setReplyTo(matchedPlayer); + matchedPlayer.setReplyTo(sender); } } } diff --git a/Essentials/src/net/ess3/commands/Commandmute.java b/Essentials/src/net/ess3/commands/Commandmute.java index fe3ae21b5..2fffc300c 100644 --- a/Essentials/src/net/ess3/commands/Commandmute.java +++ b/Essentials/src/net/ess3/commands/Commandmute.java @@ -1,13 +1,12 @@ package net.ess3.commands; +import lombok.Cleanup; import static net.ess3.I18n._; - import net.ess3.api.IUser; import net.ess3.permissions.Permissions; import net.ess3.user.UserData.TimestampType; import net.ess3.utils.DateUtil; -import net.ess3.api.server.CommandSender; -import lombok.Cleanup; +import org.bukkit.command.CommandSender; public class Commandmute extends EssentialsCommand { @@ -43,9 +42,9 @@ public class Commandmute extends EssentialsCommand sender.sendMessage( muted ? (muteTimestamp > 0 - ? _("mutedPlayerFor", player.getDisplayName(), DateUtil.formatDateDiff(muteTimestamp)) - : _("mutedPlayer", player.getDisplayName())) - : _("unmutedPlayer", player.getDisplayName())); + ? _("mutedPlayerFor", player.getPlayer().getDisplayName(), DateUtil.formatDateDiff(muteTimestamp)) + : _("mutedPlayer", player.getPlayer().getDisplayName())) + : _("unmutedPlayer", player.getPlayer().getDisplayName())); player.sendMessage( muted ? (muteTimestamp > 0 diff --git a/Essentials/src/net/ess3/commands/Commandnear.java b/Essentials/src/net/ess3/commands/Commandnear.java index 86aa0bc03..d8c313012 100644 --- a/Essentials/src/net/ess3/commands/Commandnear.java +++ b/Essentials/src/net/ess3/commands/Commandnear.java @@ -2,11 +2,11 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Location; -import net.ess3.api.server.Player; -import net.ess3.api.server.World; import net.ess3.permissions.Permissions; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandnear extends EssentialsCommand @@ -79,17 +79,17 @@ public class Commandnear extends EssentialsCommand private String getLocal(final IUser user, final long radius) { - final Location loc = user.getLocation(); + final Location loc = user.getPlayer().getLocation(); final World world = loc.getWorld(); final StringBuilder output = new StringBuilder(); final long radiusSquared = radius * radius; for (Player onlinePlayer : server.getOnlinePlayers()) { - final IUser player = ess.getUserMap().getUser(onlinePlayer); + final IUser player = getUser(onlinePlayer); if (!player.equals(user) && !player.isHidden()) { - final Location playerLoc = player.getLocation(); + final Location playerLoc = onlinePlayer.getLocation(); if (playerLoc.getWorld() != world) { continue; @@ -102,7 +102,7 @@ public class Commandnear extends EssentialsCommand { output.append(", "); } - output.append(player.getDisplayName()).append("§f(§4").append((long)Math.sqrt(delta)).append("m§f)"); + output.append(onlinePlayer.getDisplayName()).append("§f(§4").append((long)Math.sqrt(delta)).append("m§f)"); } } } diff --git a/Essentials/src/net/ess3/commands/Commandnick.java b/Essentials/src/net/ess3/commands/Commandnick.java index a0ec13c91..0be72fd81 100644 --- a/Essentials/src/net/ess3/commands/Commandnick.java +++ b/Essentials/src/net/ess3/commands/Commandnick.java @@ -5,11 +5,12 @@ import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.Server; import net.ess3.permissions.Permissions; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; +import org.bukkit.Server; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandnick extends EssentialsCommand @@ -70,11 +71,11 @@ public class Commandnick extends EssentialsCommand { if (user == null || Permissions.NICK_COLOR.isAuthorized(user)) { - return Util.replaceFormat(nick); + return FormatUtil.replaceFormat(nick); } else { - return Util.formatString(user, "essentials.nick", nick); + return FormatUtil.formatString(user, "essentials.nick", nick); } } @@ -108,7 +109,7 @@ public class Commandnick extends EssentialsCommand { for (Player p : server.getOnlinePlayers()) { - if (target.getBase() == p) + if (target.getPlayer().equals(p)) { continue; } @@ -123,7 +124,7 @@ public class Commandnick extends EssentialsCommand target.getData().setNickname(nick); target.updateDisplayName(); - target.sendMessage(_("nickSet", target.getDisplayName() + "§7.")); + target.sendMessage(_("nickSet", target.getPlayer().getDisplayName() + "§7.")); } } } diff --git a/Essentials/src/net/ess3/commands/Commandpay.java b/Essentials/src/net/ess3/commands/Commandpay.java index a4f2e0682..d24a3a4a7 100644 --- a/Essentials/src/net/ess3/commands/Commandpay.java +++ b/Essentials/src/net/ess3/commands/Commandpay.java @@ -1,9 +1,9 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.economy.Trade; import net.ess3.api.IUser; -import net.ess3.api.server.Player; +import net.ess3.economy.Trade; +import org.bukkit.entity.Player; @@ -25,10 +25,10 @@ public class Commandpay extends EssentialsCommand double amount = Double.parseDouble(args[1].replaceAll("[^0-9\\.]", "")); boolean foundUser = false; - for (Player p : ess.getUserMap().matchUsers(args[0], false, true)) + for (IUser u : ess.getUserMap().matchUsers(args[0], false, true)) { - user.payUser(p.getUser(), amount); - Trade.log("Command", "Pay", "Player", user.getName(), new Trade(amount, ess), p.getName(), new Trade(amount, ess), user.getLocation(), ess); + user.payUser(u, amount); + Trade.log("Command", "Pay", "Player", user.getName(), new Trade(amount, ess), u.getName(), new Trade(amount, ess), user.getPlayer().getLocation(), ess); foundUser = true; } diff --git a/Essentials/src/net/ess3/commands/Commandping.java b/Essentials/src/net/ess3/commands/Commandping.java index 1aebfa971..cf247e8de 100644 --- a/Essentials/src/net/ess3/commands/Commandping.java +++ b/Essentials/src/net/ess3/commands/Commandping.java @@ -1,8 +1,9 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.utils.Util; import net.ess3.api.IUser; +import net.ess3.utils.FormatUtil; +import net.ess3.utils.Util; public class Commandping extends EssentialsCommand @@ -16,7 +17,7 @@ public class Commandping extends EssentialsCommand } else { - user.sendMessage(Util.replaceFormat(getFinalArg(args, 0))); + user.sendMessage(FormatUtil.replaceFormat(getFinalArg(args, 0))); } } } diff --git a/Essentials/src/net/ess3/commands/Commandpowertool.java b/Essentials/src/net/ess3/commands/Commandpowertool.java index a95ca6797..00187a4a6 100644 --- a/Essentials/src/net/ess3/commands/Commandpowertool.java +++ b/Essentials/src/net/ess3/commands/Commandpowertool.java @@ -5,10 +5,10 @@ import java.util.List; import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; import net.ess3.permissions.Permissions; import net.ess3.utils.Util; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; public class Commandpowertool extends EssentialsCommand @@ -27,7 +27,7 @@ public class Commandpowertool extends EssentialsCommand return; } - final ItemStack itemStack = user.getItemInHand(); + final ItemStack itemStack = user.getPlayer().getItemInHand(); if (itemStack == null || itemStack.getType() == Material.AIR) { throw new Exception(_("powerToolAir")); diff --git a/Essentials/src/net/ess3/commands/Commandptime.java b/Essentials/src/net/ess3/commands/Commandptime.java index 396497618..357f117b5 100644 --- a/Essentials/src/net/ess3/commands/Commandptime.java +++ b/Essentials/src/net/ess3/commands/Commandptime.java @@ -3,11 +3,11 @@ package net.ess3.commands; import java.util.*; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.World; import net.ess3.permissions.Permissions; import net.ess3.utils.DescParseTickFormat; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; @@ -94,14 +94,14 @@ public class Commandptime extends EssentialsCommand for (IUser user : users) { - if (user.getPlayerTimeOffset() == 0) + if (user.getPlayer().getPlayerTimeOffset() == 0) { sender.sendMessage(_("pTimeNormal", user.getName())); } else { - String time = DescParseTickFormat.format(user.getPlayerTime()); - if (!user.isPlayerTimeRelative()) + String time = DescParseTickFormat.format(user.getPlayer().getPlayerTime()); + if (!user.getPlayer().isPlayerTimeRelative()) { sender.sendMessage(_("pTimeCurrentFixed", user.getName(), time)); } @@ -124,7 +124,7 @@ public class Commandptime extends EssentialsCommand // Reset for (IUser user : users) { - user.resetPlayerTime(); + user.getPlayer().resetPlayerTime(); } } else @@ -132,15 +132,15 @@ public class Commandptime extends EssentialsCommand // Set for (IUser user : users) { - final World world = user.getWorld(); - long time = user.getPlayerTime(); + final World world = user.getPlayer().getWorld(); + long time = user.getPlayer().getPlayerTime(); time -= time % 24000; time += 24000 + ticks; if (relative) { time -= world.getTime(); } - user.setPlayerTime(time, relative); + user.getPlayer().setPlayerTime(time, relative); } } diff --git a/Essentials/src/net/ess3/commands/Commandr.java b/Essentials/src/net/ess3/commands/Commandr.java index 1e0b5750e..d080c696f 100644 --- a/Essentials/src/net/ess3/commands/Commandr.java +++ b/Essentials/src/net/ess3/commands/Commandr.java @@ -2,12 +2,13 @@ package net.ess3.commands; import net.ess3.Console; import static net.ess3.I18n._; -import net.ess3.utils.Util; import net.ess3.api.IReplyTo; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; +import net.ess3.utils.FormatUtil; +import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandr extends EssentialsCommand @@ -29,18 +30,18 @@ public class Commandr extends EssentialsCommand IUser user = ess.getUserMap().getUser((Player)sender); if (Permissions.MSG_COLOR.isAuthorized(user)) { - message = Util.replaceFormat(message); + message = FormatUtil.replaceFormat(message); } else { - message = Util.replaceFormat(message); + message = FormatUtil.replaceFormat(message); } replyTo = user; - senderName = user.getDisplayName(); + senderName = user.getPlayer().getDisplayName(); } else { - message = Util.replaceFormat(message); + message = FormatUtil.replaceFormat(message); replyTo = Console.getConsoleReplyTo(); senderName = Console.NAME; } diff --git a/Essentials/src/net/ess3/commands/Commandrealname.java b/Essentials/src/net/ess3/commands/Commandrealname.java index f21c7e2c5..a5b5e933c 100644 --- a/Essentials/src/net/ess3/commands/Commandrealname.java +++ b/Essentials/src/net/ess3/commands/Commandrealname.java @@ -5,9 +5,10 @@ import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandrealname extends EssentialsCommand @@ -30,15 +31,15 @@ public class Commandrealname extends EssentialsCommand continue; } u.setDisplayNick(); - final String displayName = Util.stripFormat(u.getDisplayName()).toLowerCase(Locale.ENGLISH); + final String displayName = FormatUtil.stripFormat(u.getPlayer().getDisplayName()).toLowerCase(Locale.ENGLISH); settings.acquireReadLock(); if (!whois.equals(displayName) - && !displayName.equals(Util.stripFormat(settings.getData().getChat().getNicknamePrefix()) + whois) + && !displayName.equals(FormatUtil.stripFormat(settings.getData().getChat().getNicknamePrefix()) + whois) && !whois.equalsIgnoreCase(u.getName())) { continue; } - sender.sendMessage(u.getDisplayName() + " " + _("is") + " " + u.getName()); + sender.sendMessage(u.getPlayer().getDisplayName() + " " + _("is") + " " + u.getName()); } } } diff --git a/Essentials/src/net/ess3/commands/Commandremove.java b/Essentials/src/net/ess3/commands/Commandremove.java index 8aa2f28de..02cbd16a1 100644 --- a/Essentials/src/net/ess3/commands/Commandremove.java +++ b/Essentials/src/net/ess3/commands/Commandremove.java @@ -3,10 +3,9 @@ package net.ess3.commands; import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.World; -//TODO: remove bukkit import org.bukkit.Chunk; +import org.bukkit.World; +import org.bukkit.command.CommandSender; import org.bukkit.entity.*; //Todo: Fix this up @@ -30,7 +29,7 @@ public class Commandremove extends EssentialsCommand throw new NotEnoughArgumentsException(); } ToRemove toRemove; - final World world = user.getWorld(); + final World world = user.getPlayer().getWorld(); int radius = 0; if (args.length < 2) diff --git a/Essentials/src/net/ess3/commands/Commandrepair.java b/Essentials/src/net/ess3/commands/Commandrepair.java index 8b9df4a06..c0a9515d7 100644 --- a/Essentials/src/net/ess3/commands/Commandrepair.java +++ b/Essentials/src/net/ess3/commands/Commandrepair.java @@ -6,11 +6,11 @@ import java.util.Locale; import static net.ess3.I18n._; import net.ess3.api.ChargeException; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; import net.ess3.economy.Trade; import net.ess3.permissions.Permissions; import net.ess3.utils.Util; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; public class Commandrepair extends EssentialsCommand @@ -25,7 +25,7 @@ public class Commandrepair extends EssentialsCommand if (args[0].equalsIgnoreCase("hand")) { - final ItemStack item = user.getItemInHand(); + final ItemStack item = user.getPlayer().getItemInHand(); if (item == null) { throw new Exception(_("repairInvalidType")); @@ -53,11 +53,11 @@ public class Commandrepair extends EssentialsCommand final Trade charge = new Trade("repair-all", ess); charge.isAffordableFor(user); final List<String> repaired = new ArrayList<String>(); - repairItems(user.getInventory().getContents(), user, repaired); + repairItems(user.getPlayer().getInventory().getContents(), user, repaired); if (Permissions.REPAIR_ARMOR.isAuthorized(user)) { - repairItems(user.getInventory().getArmorContents(), user, repaired); + repairItems(user.getPlayer().getInventory().getArmorContents(), user, repaired); } if (repaired.isEmpty()) diff --git a/Essentials/src/net/ess3/commands/Commandrules.java b/Essentials/src/net/ess3/commands/Commandrules.java index d9993d641..1e15a6097 100644 --- a/Essentials/src/net/ess3/commands/Commandrules.java +++ b/Essentials/src/net/ess3/commands/Commandrules.java @@ -1,10 +1,10 @@ package net.ess3.commands; -import net.ess3.api.server.CommandSender; import net.ess3.utils.textreader.IText; import net.ess3.utils.textreader.KeywordReplacer; import net.ess3.utils.textreader.TextInput; import net.ess3.utils.textreader.TextPager; +import org.bukkit.command.CommandSender; public class Commandrules extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandseen.java b/Essentials/src/net/ess3/commands/Commandseen.java index 9dbb6a7f9..dce074a98 100644 --- a/Essentials/src/net/ess3/commands/Commandseen.java +++ b/Essentials/src/net/ess3/commands/Commandseen.java @@ -1,13 +1,13 @@ package net.ess3.commands; +import lombok.Cleanup; import static net.ess3.I18n._; - import net.ess3.api.IUser; import net.ess3.permissions.Permissions; +import net.ess3.user.PlayerNotFoundException; import net.ess3.user.UserData.TimestampType; import net.ess3.utils.DateUtil; -import net.ess3.api.server.CommandSender; -import lombok.Cleanup; +import org.bukkit.command.CommandSender; public class Commandseen extends EssentialsCommand { @@ -32,9 +32,9 @@ public class Commandseen extends EssentialsCommand try { IUser u = ess.getUserMap().matchUser(args[0], false, false); - sender.sendMessage(_("seenOnline", u.getDisplayName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGIN)))); + sender.sendMessage(_("seenOnline", u.getPlayer().getDisplayName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGIN)))); } - catch (NoSuchFieldException e) + catch (PlayerNotFoundException e) { @Cleanup IUser u = ess.getUserMap().getUser(args[0]); @@ -43,7 +43,7 @@ public class Commandseen extends EssentialsCommand { throw new Exception(_("playerNotFound")); } - sender.sendMessage(_("seenOffline", u.getDisplayName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGOUT)))); + sender.sendMessage(_("seenOffline", u.getPlayer().getDisplayName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGOUT)))); if (u.isBanned()) { sender.sendMessage(_("whoisBanned", show ? u.getData().getBan().getReason() : _("true"))); diff --git a/Essentials/src/net/ess3/commands/Commandsell.java b/Essentials/src/net/ess3/commands/Commandsell.java index 5826d10b4..06d759d90 100644 --- a/Essentials/src/net/ess3/commands/Commandsell.java +++ b/Essentials/src/net/ess3/commands/Commandsell.java @@ -4,11 +4,12 @@ import java.util.Locale; import java.util.logging.Level; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; import net.ess3.craftbukkit.InventoryWorkaround; import net.ess3.economy.Trade; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; @@ -24,11 +25,11 @@ public class Commandsell extends EssentialsCommand ItemStack is = null; if (args[0].equalsIgnoreCase("hand")) { - is = user.getItemInHand(); + is = user.getPlayer().getItemInHand(); } else if (args[0].equalsIgnoreCase("inventory") || args[0].equalsIgnoreCase("invent") || args[0].equalsIgnoreCase("all")) { - for (ItemStack stack : user.getInventory().getContents()) + for (ItemStack stack : user.getPlayer().getInventory().getContents()) { if (stack == null || stack.getType() == Material.AIR) { @@ -46,7 +47,7 @@ public class Commandsell extends EssentialsCommand } else if (args[0].equalsIgnoreCase("blocks")) { - for (ItemStack stack : user.getInventory().getContents()) + for (ItemStack stack : user.getPlayer().getInventory().getContents()) { if (stack == null || stack.getTypeId() > 255 || stack.getType() == Material.AIR) { @@ -95,7 +96,7 @@ public class Commandsell extends EssentialsCommand int max = 0; - for (ItemStack s : user.getInventory().getContents()) + for (ItemStack s : user.getPlayer().getInventory().getContents()) { if (s == null) { @@ -142,12 +143,12 @@ public class Commandsell extends EssentialsCommand //TODO: Prices for Enchantments final ItemStack ris = is.clone(); ris.setAmount(amount); - InventoryWorkaround.removeItem(user.getInventory(), true, true, ris); - user.updateInventory(); - Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth * amount, ess), user.getLocation(), ess); + InventoryWorkaround.removeItem(user.getPlayer().getInventory(), true, true, ris); + user.getPlayer().updateInventory(); + Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth * amount, ess), user.getPlayer().getLocation(), ess); user.giveMoney(worth * amount); - user.sendMessage(_("itemSold", Util.displayCurrency(worth * amount, ess), amount, is.getType().toString().toLowerCase(Locale.ENGLISH), Util.displayCurrency(worth, ess))); - logger.log(Level.INFO, _("itemSoldConsole", user.getDisplayName(), is.getType().toString().toLowerCase(Locale.ENGLISH), Util.displayCurrency(worth * amount, ess), amount, Util.displayCurrency(worth, ess))); + user.sendMessage(_("itemSold", FormatUtil.displayCurrency(worth * amount, ess), amount, is.getType().toString().toLowerCase(Locale.ENGLISH), FormatUtil.displayCurrency(worth, ess))); + logger.log(Level.INFO, _("itemSoldConsole", user.getPlayer().getDisplayName(), is.getType().toString().toLowerCase(Locale.ENGLISH), FormatUtil.displayCurrency(worth * amount, ess), amount, FormatUtil.displayCurrency(worth, ess))); } } diff --git a/Essentials/src/net/ess3/commands/Commandsethome.java b/Essentials/src/net/ess3/commands/Commandsethome.java index 511d05487..4f74e55dc 100644 --- a/Essentials/src/net/ess3/commands/Commandsethome.java +++ b/Essentials/src/net/ess3/commands/Commandsethome.java @@ -38,7 +38,7 @@ public class Commandsethome extends EssentialsCommand { user.getData().setHomes(new HashMap<String, net.ess3.storage.StoredLocation>()); } - user.getData().getHomes().put(args[0].toLowerCase(Locale.ENGLISH), new net.ess3.storage.StoredLocation(user.getLocation())); + user.getData().getHomes().put(args[0].toLowerCase(Locale.ENGLISH), new net.ess3.storage.StoredLocation(user.getPlayer().getLocation())); } else { @@ -76,7 +76,7 @@ public class Commandsethome extends EssentialsCommand { usersHome.getData().setHomes(new HashMap<String, net.ess3.storage.StoredLocation>()); } - usersHome.getData().getHomes().put(name, new net.ess3.storage.StoredLocation(user.getLocation())); + usersHome.getData().getHomes().put(name, new net.ess3.storage.StoredLocation(user.getPlayer().getLocation())); } } } @@ -87,9 +87,9 @@ public class Commandsethome extends EssentialsCommand { user.getData().setHomes(new HashMap<String, net.ess3.storage.StoredLocation>()); } - user.getData().getHomes().put("home", new net.ess3.storage.StoredLocation(user.getLocation())); + user.getData().getHomes().put("home", new net.ess3.storage.StoredLocation(user.getPlayer().getLocation())); } - user.sendMessage(_("homeSet", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ())); + user.sendMessage(_("homeSet", user.getPlayer().getLocation().getWorld().getName(), user.getPlayer().getLocation().getBlockX(), user.getPlayer().getLocation().getBlockY(), user.getPlayer().getLocation().getBlockZ())); } } diff --git a/Essentials/src/net/ess3/commands/Commandsetjail.java b/Essentials/src/net/ess3/commands/Commandsetjail.java index 9938b025c..a3fd4fbb6 100644 --- a/Essentials/src/net/ess3/commands/Commandsetjail.java +++ b/Essentials/src/net/ess3/commands/Commandsetjail.java @@ -14,7 +14,7 @@ public class Commandsetjail extends EssentialsCommand { throw new NotEnoughArgumentsException(); } - ess.getJails().setJail(args[0], user.getLocation()); + ess.getJails().setJail(args[0], user.getPlayer().getLocation()); user.sendMessage(_("jailSet", Util.sanitizeString(args[0]))); } diff --git a/Essentials/src/net/ess3/commands/Commandsetspawn.java b/Essentials/src/net/ess3/commands/Commandsetspawn.java index ccf319892..45b942943 100644 --- a/Essentials/src/net/ess3/commands/Commandsetspawn.java +++ b/Essentials/src/net/ess3/commands/Commandsetspawn.java @@ -11,7 +11,7 @@ public class Commandsetspawn extends EssentialsCommand public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { final String group = args.length > 0 ? getFinalArg(args, 0) : "default"; - ((SpawnsHolder)module).setSpawn(user.getLocation(), group); + ((SpawnsHolder)module).setSpawn(user.getPlayer().getLocation(), group); user.sendMessage(_("spawnSet", group)); } } diff --git a/Essentials/src/net/ess3/commands/Commandsetwarp.java b/Essentials/src/net/ess3/commands/Commandsetwarp.java index d44dbc746..5f7401035 100644 --- a/Essentials/src/net/ess3/commands/Commandsetwarp.java +++ b/Essentials/src/net/ess3/commands/Commandsetwarp.java @@ -3,8 +3,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; import net.ess3.api.IWarps; -import net.ess3.api.server.Location; import net.ess3.permissions.WarpPermissions; +import org.bukkit.Location; @@ -24,7 +24,7 @@ public class Commandsetwarp extends EssentialsCommand throw new NotEnoughArgumentsException(); } - final Location loc = user.getLocation(); + final Location loc = user.getPlayer().getLocation(); final IWarps warps = ess.getWarps(); Location warpLoc = null; diff --git a/Essentials/src/net/ess3/commands/Commandsetworth.java b/Essentials/src/net/ess3/commands/Commandsetworth.java index dab455ad2..92de472bc 100644 --- a/Essentials/src/net/ess3/commands/Commandsetworth.java +++ b/Essentials/src/net/ess3/commands/Commandsetworth.java @@ -2,8 +2,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.ItemStack; +import org.bukkit.command.CommandSender; +import org.bukkit.inventory.ItemStack; @@ -22,7 +22,7 @@ public class Commandsetworth extends EssentialsCommand if (args.length == 1) { - stack = user.getInventory().getItemInHand(); + stack = user.getPlayer().getInventory().getItemInHand(); price = args[0]; } else diff --git a/Essentials/src/net/ess3/commands/Commandspawn.java b/Essentials/src/net/ess3/commands/Commandspawn.java index bb177ae79..23b2bf5ef 100644 --- a/Essentials/src/net/ess3/commands/Commandspawn.java +++ b/Essentials/src/net/ess3/commands/Commandspawn.java @@ -2,12 +2,11 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Location; import net.ess3.economy.Trade; import net.ess3.permissions.Permissions; import net.ess3.settings.SpawnsHolder; -//TODO: remove bukkit +import org.bukkit.Location; +import org.bukkit.command.CommandSender; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -24,7 +23,7 @@ public class Commandspawn extends EssentialsCommand respawn(otherUser, null); if (!otherUser.equals(user)) { - otherUser.sendMessage(_("teleportAtoB", user.getDisplayName(), "spawn")); + otherUser.sendMessage(_("teleportAtoB", user.getPlayer().getDisplayName(), "spawn")); user.sendMessage(_("teleporting")); } } @@ -43,7 +42,7 @@ public class Commandspawn extends EssentialsCommand } final IUser user = ess.getUserMap().matchUser(args[0], false, false); respawn(user, null); - user.sendMessage(_("teleportAtoB", user.getDisplayName(), "spawn")); + user.sendMessage(_("teleportAtoB", user.getPlayer().getDisplayName(), "spawn")); sender.sendMessage(_("teleporting")); } diff --git a/Essentials/src/net/ess3/commands/Commandspawner.java b/Essentials/src/net/ess3/commands/Commandspawner.java index 57eaec651..aeef9e133 100644 --- a/Essentials/src/net/ess3/commands/Commandspawner.java +++ b/Essentials/src/net/ess3/commands/Commandspawner.java @@ -1,17 +1,17 @@ package net.ess3.commands; +import java.util.Locale; import static net.ess3.I18n._; -import net.ess3.bukkit.Mob; -import net.ess3.economy.Trade; import net.ess3.api.IUser; +import net.ess3.bukkit.LivingEntities; +import net.ess3.economy.Trade; import net.ess3.permissions.SpawnerPermissions; import net.ess3.utils.LocationUtil; import net.ess3.utils.Util; -import java.util.Locale; -import net.ess3.api.server.Location; -import net.ess3.api.server.Material; -//TODO: remove bukkit +import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.block.CreatureSpawner; +import org.bukkit.entity.EntityType; public class Commandspawner extends EssentialsCommand @@ -21,10 +21,10 @@ public class Commandspawner extends EssentialsCommand { if (args.length < 1 || args[0].length() < 2) { - throw new NotEnoughArgumentsException(_("mobsAvailable", Util.joinList(Mob.getMobList()))); + throw new NotEnoughArgumentsException(_("mobsAvailable", Util.joinList(LivingEntities.getLivingEntityList()))); } - final Location target = LocationUtil.getTarget(user); + final Location target = LocationUtil.getTarget(user.getPlayer()); if (target == null || target.getBlock().getType() != Material.MOB_SPAWNER) { throw new Exception(_("mobSpawnTarget")); @@ -34,22 +34,22 @@ public class Commandspawner extends EssentialsCommand { String name = args[0]; - Mob mob = null; - mob = Mob.fromName(name); + EntityType mob = null; + mob = LivingEntities.fromName(name); if (mob == null) { user.sendMessage(_("invalidMob")); return; } - if (!SpawnerPermissions.getPermission(mob.name).isAuthorized(user)) + if (!SpawnerPermissions.getPermission(mob.getName()).isAuthorized(user)) { throw new Exception(_("unableToSpawnMob")); } - final Trade charge = new Trade("spawner-" + mob.name.toLowerCase(Locale.ENGLISH), ess); + final Trade charge = new Trade("spawner-" + mob.getName().toLowerCase(Locale.ENGLISH), ess); charge.isAffordableFor(user); - ((CreatureSpawner)target.getBlock().getState()).setSpawnedType(mob.getType()); + ((CreatureSpawner)target.getBlock().getState()).setSpawnedType(mob); charge.charge(user); - user.sendMessage(_("setSpawner", mob.name)); + user.sendMessage(_("setSpawner", mob.getName())); } catch (Throwable ex) { diff --git a/Essentials/src/net/ess3/commands/Commandspawnmob.java b/Essentials/src/net/ess3/commands/Commandspawnmob.java index d83749272..14cf3c241 100644 --- a/Essentials/src/net/ess3/commands/Commandspawnmob.java +++ b/Essentials/src/net/ess3/commands/Commandspawnmob.java @@ -7,16 +7,16 @@ import java.util.Set; import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.Location; -import net.ess3.bukkit.Mob; -import net.ess3.bukkit.Mob.MobException; +import net.ess3.bukkit.LivingEntities; +import net.ess3.bukkit.LivingEntities.MobException; import net.ess3.permissions.SpawnmobPermissions; import net.ess3.utils.LocationUtil; import net.ess3.utils.Util; import org.bukkit.DyeColor; +import org.bukkit.Location; import org.bukkit.block.Block; -import org.bukkit.entity.Villager.Profession; import org.bukkit.entity.*; +import org.bukkit.entity.Villager.Profession; import org.bukkit.material.Colorable; //TODO - Bukkit cleanup @@ -27,7 +27,7 @@ public class Commandspawnmob extends EssentialsCommand { if (args.length < 1) { - final Set<String> mobList = Mob.getMobList(); + final Set<String> mobList = LivingEntities.getLivingEntityList(); final Set<String> availableList = new HashSet<String>(); for (String mob : mobList) { @@ -66,22 +66,22 @@ public class Commandspawnmob extends EssentialsCommand Entity spawnedMob = null; - Mob mob = null; + EntityType mob = null; Entity spawnedMount = null; - Mob mobMount = null; + EntityType mobMount = null; - mob = Mob.fromName(mobType); + mob = LivingEntities.fromName(mobType); if (mob == null) { throw new Exception(_("invalidMob")); } - if (!SpawnmobPermissions.getPermission(mob.name).isAuthorized(user)) + if (!SpawnmobPermissions.getPermission(mob.getName()).isAuthorized(user)) { throw new Exception(_("noPermToSpawnMob")); } - final Block block = LocationUtil.getTarget(user).getBlock(); + final Block block = LocationUtil.getTarget(user.getPlayer()).getBlock(); if (block == null) { throw new Exception(_("unableToSpawnMob")); @@ -89,37 +89,37 @@ public class Commandspawnmob extends EssentialsCommand IUser otherUser = null; if (args.length >= 3) { - otherUser = getPlayer(args, 2); + otherUser = ess.getUserMap().getUser(args[2]); } - final Location loc = (otherUser == null) ? block.getLocation() : otherUser.getLocation(); + final Location loc = (otherUser == null) ? block.getLocation() : otherUser.getPlayer().getLocation(); final Location sloc = LocationUtil.getSafeDestination(loc); try { - spawnedMob = mob.spawn(user, server, sloc); + spawnedMob = user.getPlayer().getWorld().spawn(sloc, (Class<? extends LivingEntity>)mob.getEntityClass()); } - catch (MobException e) + catch (Exception e) { throw new Exception(_("unableToSpawnMob"), e); } if (mountType != null) { - mobMount = Mob.fromName(mountType); + mobMount = LivingEntities.fromName(mountType); if (mobMount == null) { user.sendMessage(_("invalidMob")); return; } - if (!SpawnmobPermissions.getPermission(mobMount.name).isAuthorized(user)) + if (!SpawnmobPermissions.getPermission(mobMount.getName()).isAuthorized(user)) { throw new Exception(_("noPermToSpawnMob")); } try { - spawnedMount = mobMount.spawn(user, server, loc); + spawnedMount = user.getPlayer().getWorld().spawn(loc, (Class<? extends LivingEntity>)mobMount.getEntityClass()); } - catch (MobException e) + catch (Exception e) { throw new Exception(_("unableToSpawnMob"), e); } @@ -127,11 +127,11 @@ public class Commandspawnmob extends EssentialsCommand } if (mobData != null) { - changeMobData(mob.getType(), spawnedMob, mobData, user); + changeMobData(mob, spawnedMob, mobData, user); } if (spawnedMount != null && mountData != null) { - changeMobData(mobMount.getType(), spawnedMount, mountData, user); + changeMobData(mobMount, spawnedMount, mountData, user); } if (args.length >= 2) { @@ -157,14 +157,14 @@ public class Commandspawnmob extends EssentialsCommand { for (int i = 1; i < mobCount; i++) { - spawnedMob = mob.spawn(user, server, loc); + spawnedMob = user.getPlayer().getWorld().spawn(sloc, (Class<? extends LivingEntity>)mob.getEntityClass()); if (mobMount != null) { try { - spawnedMount = mobMount.spawn(user, server, loc); + spawnedMount = user.getPlayer().getWorld().spawn(loc, (Class<? extends LivingEntity>)mobMount.getEntityClass()); } - catch (MobException e) + catch (Exception e) { throw new Exception(_("unableToSpawnMob"), e); } @@ -172,14 +172,14 @@ public class Commandspawnmob extends EssentialsCommand } if (mobData != null) { - changeMobData(mob.getType(), spawnedMob, mobData, user); + changeMobData(mob, spawnedMob, mobData, user); } if (spawnedMount != null && mountData != null) { - changeMobData(mobMount.getType(), spawnedMount, mountData, user); + changeMobData(mobMount, spawnedMount, mountData, user); } } - user.sendMessage(mobCount + " " + mob.name.toLowerCase(Locale.ENGLISH) + mob.suffix + " " + _("spawned")); + user.sendMessage(mobCount + " " + mob.getName().toLowerCase(Locale.ENGLISH) + " " + _("spawned")); } catch (MobException e1) { @@ -196,7 +196,7 @@ public class Commandspawnmob extends EssentialsCommand } else { - user.sendMessage(mob.name + " " + _("spawned")); + user.sendMessage(mob.getName() + " " + _("spawned")); } } @@ -244,7 +244,7 @@ public class Commandspawnmob extends EssentialsCommand { final Tameable tameable = ((Tameable)spawned); tameable.setTamed(true); - tameable.setOwner(user.getBase()); + tameable.setOwner(user.getPlayer()); } if (type == EntityType.WOLF && data.contains("angry")) @@ -279,21 +279,6 @@ public class Commandspawnmob extends EssentialsCommand ((Villager)spawned).setProfession(prof); } } - } - if (type == EntityType.OCELOT) - { - if (data.contains("siamese")) - { - ((Ocelot)spawned).setCatType(Ocelot.Type.SIAMESE_CAT); - } - if (data.contains("red")) - { - ((Ocelot)spawned).setCatType(Ocelot.Type.RED_CAT); - } - if (data.contains("black")) - { - ((Ocelot)spawned).setCatType(Ocelot.Type.BLACK_CAT); - } - } + } } } diff --git a/Essentials/src/net/ess3/commands/Commandspeed.java b/Essentials/src/net/ess3/commands/Commandspeed.java new file mode 100644 index 000000000..cb20da50b --- /dev/null +++ b/Essentials/src/net/ess3/commands/Commandspeed.java @@ -0,0 +1,150 @@ +package net.ess3.commands; + +import static net.ess3.I18n._; +import net.ess3.api.IUser; +import net.ess3.permissions.Permissions; +import org.bukkit.Server; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + + +public class Commandspeed extends EssentialsCommand +{ + + @Override + protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception + { + if (args.length < 2) + { + throw new NotEnoughArgumentsException(); + } + final boolean isFly = isFlyMode(args[0]); + final float speed = getMoveSpeed(args[1]); + speedOtherPlayers(server, sender, isFly, true, speed, args[2]); + } + + @Override + protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception + { + if (args.length < 1) + { + throw new NotEnoughArgumentsException(); + } + + boolean isFly; + float speed; + boolean isBypass = Permissions.SPEED_BYPASS.isAuthorized(user); + if (args.length == 1) + { + //isFly = user.isFlying(); + isFly = true; + speed = getMoveSpeed(args[0]); + } + else + { + //isFly = isFlyMode(args[0]); + //speed = getMoveSpeed(args[1]); + //if (args.length > 2 && user.isAuthorized("essentials.speed.others")) + //{ + // speedOtherPlayers(server, user, isFly, isBypass, speed, args[2]); + // return; + //} + isFly = true; + speed = getMoveSpeed(args[0]); + if (Permissions.SPEED_OTHERS.isAuthorized(user)) + { + speedOtherPlayers(server, user, isFly, isBypass, speed, args[1]); + return; + } + } + + //if (isFly) + //{ + user.getPlayer().setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass)); + user.sendMessage(_("moveSpeed", _("flying"), speed, user.getPlayer().getDisplayName())); + //} + //else + //{ + // user.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass)); + // user.sendMessage(_("moveSpeed", _("walking"), speed, user.getDisplayName())); + //} + } + + private void speedOtherPlayers(final Server server, final CommandSender sender, final boolean isFly, final boolean isBypass, final float speed, final String target) + { + for (Player matchPlayer : server.matchPlayer(target)) + { + if (isFly) + { + matchPlayer.setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass)); + sender.sendMessage(_("moveSpeed", _("flying"), speed, matchPlayer.getDisplayName())); + } + //else + // { + // matchPlayer.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass)); + // sender.sendMessage(_("moveSpeed", _("walking"), speed, matchPlayer.getDisplayName())); + // } + } + } + + private boolean isFlyMode(final String modeString) throws NotEnoughArgumentsException + { + boolean isFlyMode; + if (modeString.contains("fly") || modeString.equalsIgnoreCase("f")) + { + isFlyMode = true; + } + else if (modeString.contains("walk") || modeString.contains("run") + || modeString.equalsIgnoreCase("w") || modeString.equalsIgnoreCase("r")) + { + isFlyMode = false; + } + else + { + throw new NotEnoughArgumentsException(); + } + return isFlyMode; + } + + private float getMoveSpeed(final String moveSpeed) throws NotEnoughArgumentsException + { + float userSpeed; + try + { + userSpeed = Float.parseFloat(moveSpeed); + if (userSpeed > 10f) + { + userSpeed = 10f; + } + else if (userSpeed < 0f) + { + userSpeed = 0f; + } + } + catch (NumberFormatException e) + { + throw new NotEnoughArgumentsException(); + } + return userSpeed; + } + + private float getRealMoveSpeed(final float userSpeed, final boolean isFly, final boolean isBypass) + { + final float defaultSpeed = isFly ? 0.1f : 0.2f; + float maxSpeed = 1f; + if (!isBypass) + { + maxSpeed = ess.getSettings().getData().getCommands().getSpeed().getMaxFlySpeed();// : ess.getSettings().ess.getSettings().getData().getCommands().getSpeed()getMaxWalkSpeed()); + } + + if (userSpeed < 1f) + { + return defaultSpeed * userSpeed; + } + else + { + float ratio = ((userSpeed - 1) / 9) * (maxSpeed - defaultSpeed); + return ratio + defaultSpeed; + } + } +} diff --git a/Essentials/src/net/ess3/commands/Commandsudo.java b/Essentials/src/net/ess3/commands/Commandsudo.java index 84d5d9b36..58279c9ef 100644 --- a/Essentials/src/net/ess3/commands/Commandsudo.java +++ b/Essentials/src/net/ess3/commands/Commandsudo.java @@ -2,8 +2,9 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; import net.ess3.permissions.Permissions; +import org.bukkit.command.CommandSender; +import org.bukkit.command.PluginCommand; public class Commandsudo extends EssentialsCommand @@ -29,13 +30,13 @@ public class Commandsudo extends EssentialsCommand throw new Exception(_("sudoExempt")); } - sender.sendMessage(_("sudoRun", user.getDisplayName(), command, getFinalArg(arguments, 0))); + sender.sendMessage(_("sudoRun", user.getPlayer().getDisplayName(), command, getFinalArg(arguments, 0))); ess.getServer().dispatchCommand(user, command); final PluginCommand execCommand = ess.getServer().getPluginCommand(command); if (execCommand != null) { - execCommand.execute(user.getBase(), command, arguments); + execCommand.execute(user.getPlayer(), command, arguments); } } diff --git a/Essentials/src/net/ess3/commands/Commandsuicide.java b/Essentials/src/net/ess3/commands/Commandsuicide.java index c9598ee3e..03f80bb25 100644 --- a/Essentials/src/net/ess3/commands/Commandsuicide.java +++ b/Essentials/src/net/ess3/commands/Commandsuicide.java @@ -9,10 +9,10 @@ public class Commandsuicide extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - ess.getPlugin().callSuicideEvent(user.getBase()); - user.damage(Short.MAX_VALUE); + ess.getPlugin().callSuicideEvent(user.getPlayer()); + user.getPlayer().damage(Short.MAX_VALUE); user.sendMessage(_("suicideMessage")); user.setDisplayNick(); - ess.broadcastMessage(user,_("suicideSuccess", user.getDisplayName())); + ess.broadcastMessage(user,_("suicideSuccess", user.getPlayer().getDisplayName())); } } diff --git a/Essentials/src/net/ess3/commands/Commandtempban.java b/Essentials/src/net/ess3/commands/Commandtempban.java index fe3f01b1f..28febd4e6 100644 --- a/Essentials/src/net/ess3/commands/Commandtempban.java +++ b/Essentials/src/net/ess3/commands/Commandtempban.java @@ -2,13 +2,12 @@ package net.ess3.commands; import net.ess3.Console; import static net.ess3.I18n._; - import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.Permissions; import net.ess3.user.Ban; import net.ess3.utils.DateUtil; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandtempban extends EssentialsCommand @@ -46,7 +45,7 @@ public class Commandtempban extends EssentialsCommand user.getData().getBan().setReason(banReason); user.getData().getBan().setTimeout(banTimestamp); user.setBanned(true); - user.kickPlayer(banReason); + user.getPlayer().kickPlayer(banReason); final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME; for (Player onlinePlayer : server.getOnlinePlayers()) diff --git a/Essentials/src/net/ess3/commands/Commandthunder.java b/Essentials/src/net/ess3/commands/Commandthunder.java index 0b96ccc55..5c2c472a0 100644 --- a/Essentials/src/net/ess3/commands/Commandthunder.java +++ b/Essentials/src/net/ess3/commands/Commandthunder.java @@ -2,7 +2,7 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.World; +import org.bukkit.World; public class Commandthunder extends EssentialsCommand @@ -15,7 +15,7 @@ public class Commandthunder extends EssentialsCommand throw new NotEnoughArgumentsException(); } - final World world = user.getWorld(); + final World world = user.getPlayer().getWorld(); final boolean setThunder = args[0].equalsIgnoreCase("true"); if (args.length > 1) { diff --git a/Essentials/src/net/ess3/commands/Commandtime.java b/Essentials/src/net/ess3/commands/Commandtime.java index c0ea66898..378fa511f 100644 --- a/Essentials/src/net/ess3/commands/Commandtime.java +++ b/Essentials/src/net/ess3/commands/Commandtime.java @@ -3,12 +3,12 @@ package net.ess3.commands; import java.util.*; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.World; import net.ess3.permissions.Permissions; import net.ess3.utils.DescParseTickFormat; import net.ess3.utils.Util; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandtime extends EssentialsCommand @@ -129,7 +129,7 @@ public class Commandtime extends EssentialsCommand } else { - worlds.add(user.getWorld()); + worlds.add(user.getPlayer().getWorld()); } return worlds; } diff --git a/Essentials/src/net/ess3/commands/Commandtogglejail.java b/Essentials/src/net/ess3/commands/Commandtogglejail.java index 8cd17d683..059197e93 100644 --- a/Essentials/src/net/ess3/commands/Commandtogglejail.java +++ b/Essentials/src/net/ess3/commands/Commandtogglejail.java @@ -1,13 +1,12 @@ package net.ess3.commands; +import lombok.Cleanup; import static net.ess3.I18n._; - import net.ess3.api.IUser; import net.ess3.permissions.Permissions; import net.ess3.user.UserData.TimestampType; import net.ess3.utils.DateUtil; -import lombok.Cleanup; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandtogglejail extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandtop.java b/Essentials/src/net/ess3/commands/Commandtop.java index 17edad493..cf0e7b4f1 100644 --- a/Essentials/src/net/ess3/commands/Commandtop.java +++ b/Essentials/src/net/ess3/commands/Commandtop.java @@ -1,10 +1,9 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.economy.Trade; import net.ess3.api.IUser; -import net.ess3.api.server.Location; -//TODO: remove bukkit +import net.ess3.economy.Trade; +import org.bukkit.Location; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -13,10 +12,10 @@ public class Commandtop extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - final int topX = user.getLocation().getBlockX(); - final int topZ = user.getLocation().getBlockZ(); - final int topY = user.getWorld().getHighestBlockYAt(topX, topZ); - user.getTeleport().teleport(new Location(user.getWorld(), user.getLocation().getX(), topY + 1, user.getLocation().getZ(), user.getLocation().getYaw(), user.getLocation().getPitch()), new Trade(commandName, ess), TeleportCause.COMMAND); + final int topX = user.getPlayer().getLocation().getBlockX(); + final int topZ = user.getPlayer().getLocation().getBlockZ(); + final int topY = user.getPlayer().getWorld().getHighestBlockYAt(topX, topZ); + user.getTeleport().teleport(new Location(user.getPlayer().getWorld(), user.getPlayer().getLocation().getX(), topY + 1, user.getPlayer().getLocation().getZ(), user.getPlayer().getLocation().getYaw(), user.getPlayer().getLocation().getPitch()), new Trade(commandName, ess), TeleportCause.COMMAND); user.sendMessage(_("teleportTop")); } } diff --git a/Essentials/src/net/ess3/commands/Commandtp.java b/Essentials/src/net/ess3/commands/Commandtp.java index a9b4873d6..999b220e4 100644 --- a/Essentials/src/net/ess3/commands/Commandtp.java +++ b/Essentials/src/net/ess3/commands/Commandtp.java @@ -5,11 +5,10 @@ import net.ess3.Console; import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; import net.ess3.economy.Trade; import net.ess3.permissions.Permissions; import net.ess3.permissions.WorldPermissions; -//TODO: remove bukkit +import org.bukkit.command.CommandSender; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -32,17 +31,17 @@ public class Commandtp extends EssentialsCommand player.acquireReadLock(); if (!player.getData().isTeleportEnabled()) { - throw new Exception(_("teleportDisabled", player.getDisplayName())); + throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName())); } - if (user.getWorld() != player.getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() - && !WorldPermissions.getPermission(player.getWorld().getName()).isAuthorized(user)) + if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() + && !WorldPermissions.getPermission(player.getPlayer().getWorld().getName()).isAuthorized(user)) { - throw new Exception(_("noPerm", "essentials.world." + player.getWorld().getName())); + throw new Exception(_("noPerm", "essentials.world." + player.getPlayer().getWorld().getName())); } user.sendMessage(_("teleporting")); final Trade charge = new Trade(commandName, ess); charge.isAffordableFor(user); - user.getTeleport().teleport(player, charge, TeleportCause.COMMAND); + user.getTeleport().teleport(player.getPlayer(), charge, TeleportCause.COMMAND); throw new NoChargeException(); default: @@ -60,19 +59,19 @@ public class Commandtp extends EssentialsCommand if (!target.getData().isTeleportEnabled()) { - throw new Exception(_("teleportDisabled", target.getDisplayName())); + throw new Exception(_("teleportDisabled", target.getPlayer().getDisplayName())); } if (!toPlayer.getData().isTeleportEnabled()) { - throw new Exception(_("teleportDisabled", toPlayer.getDisplayName())); + throw new Exception(_("teleportDisabled", toPlayer.getPlayer().getDisplayName())); } - if (target.getWorld() != toPlayer.getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() - && !WorldPermissions.getPermission(toPlayer.getWorld().getName()).isAuthorized(user)) + if (target.getPlayer().getWorld() != toPlayer.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() + && !WorldPermissions.getPermission(toPlayer.getPlayer().getWorld().getName()).isAuthorized(user)) { - throw new Exception(_("noPerm", "essentials.world." + toPlayer.getWorld().getName())); + throw new Exception(_("noPerm", "essentials.world." + toPlayer.getPlayer().getWorld().getName())); } - target.getTeleport().now(toPlayer, false, TeleportCause.COMMAND); - target.sendMessage(_("teleportAtoB", user.getDisplayName(), toPlayer.getDisplayName())); + target.getTeleport().now(toPlayer.getPlayer(), false, TeleportCause.COMMAND); + target.sendMessage(_("teleportAtoB", user.getPlayer().getDisplayName(), toPlayer.getPlayer().getDisplayName())); break; } } @@ -86,9 +85,9 @@ public class Commandtp extends EssentialsCommand } sender.sendMessage(_("teleporting")); - final IUser target = getPlayer(args, 0); - final IUser toPlayer = getPlayer(args, 1); - target.getTeleport().now(toPlayer, false, TeleportCause.COMMAND); - target.sendMessage(_("teleportAtoB", Console.NAME, toPlayer.getDisplayName())); + final IUser target = ess.getUserMap().getUser(args[0]); + final IUser toPlayer =ess.getUserMap().getUser(args[1]); + target.getTeleport().now(toPlayer.getPlayer(), false, TeleportCause.COMMAND); + target.sendMessage(_("teleportAtoB", Console.NAME, toPlayer.getPlayer().getDisplayName())); } } diff --git a/Essentials/src/net/ess3/commands/Commandtpa.java b/Essentials/src/net/ess3/commands/Commandtpa.java index db78e27e7..7429368ea 100644 --- a/Essentials/src/net/ess3/commands/Commandtpa.java +++ b/Essentials/src/net/ess3/commands/Commandtpa.java @@ -22,20 +22,20 @@ public class Commandtpa extends EssentialsCommand player.acquireReadLock(); if (!player.getData().isTeleportEnabled()) { - throw new Exception(_("teleportDisabled", player.getDisplayName())); + throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName())); } @Cleanup ISettings settings = ess.getSettings(); settings.acquireReadLock(); - if (user.getWorld() != player.getWorld() && ess.getSettings().getData().getGeneral().isWorldTeleportPermissions() - && !WorldPermissions.getPermission(user.getWorld().getName()).isAuthorized(user)) + if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && ess.getSettings().getData().getGeneral().isWorldTeleportPermissions() + && !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(user)) { - throw new Exception(_("noPerm", "essentials.world." + player.getWorld().getName())); + throw new Exception(_("noPerm", "essentials.world." + player.getPlayer().getWorld().getName())); } if (!player.isIgnoringPlayer(user)) { player.requestTeleport(user, false); - player.sendMessage(_("teleportRequest", user.getDisplayName())); + player.sendMessage(_("teleportRequest", user.getPlayer().getDisplayName())); player.sendMessage(_("typeTpaccept")); player.sendMessage(_("typeTpdeny")); int tpaAcceptCancellation = 0; @@ -45,6 +45,6 @@ public class Commandtpa extends EssentialsCommand player.sendMessage(_("teleportRequestTimeoutInfo", tpaAcceptCancellation)); } } - user.sendMessage(_("requestSent", player.getDisplayName())); + user.sendMessage(_("requestSent", player.getPlayer().getDisplayName())); } } diff --git a/Essentials/src/net/ess3/commands/Commandtpaall.java b/Essentials/src/net/ess3/commands/Commandtpaall.java index 79bc2a5fd..a510690a7 100644 --- a/Essentials/src/net/ess3/commands/Commandtpaall.java +++ b/Essentials/src/net/ess3/commands/Commandtpaall.java @@ -4,9 +4,9 @@ import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.WorldPermissions; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class Commandtpaall extends EssentialsCommand @@ -47,15 +47,15 @@ public class Commandtpaall extends EssentialsCommand @Cleanup ISettings settings = ess.getSettings(); settings.acquireReadLock(); - if (user.getWorld() != player.getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() - && !WorldPermissions.getPermission(user.getWorld().getName()).isAuthorized(user)) + if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() + && !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(user)) { continue; } try { player.requestTeleport(user, true); - player.sendMessage(_("teleportHereRequest", user.getDisplayName())); + player.sendMessage(_("teleportHereRequest", user.getPlayer().getDisplayName())); player.sendMessage(_("typeTpaccept")); int tpaAcceptCancellation = 0; tpaAcceptCancellation = settings.getData().getCommands().getTpa().getTimeout(); diff --git a/Essentials/src/net/ess3/commands/Commandtpaccept.java b/Essentials/src/net/ess3/commands/Commandtpaccept.java index 0d758df7f..59b909958 100644 --- a/Essentials/src/net/ess3/commands/Commandtpaccept.java +++ b/Essentials/src/net/ess3/commands/Commandtpaccept.java @@ -1,11 +1,10 @@ package net.ess3.commands; import static net.ess3.I18n._; -import net.ess3.economy.Trade; import net.ess3.api.ISettings; import net.ess3.api.IUser; +import net.ess3.economy.Trade; import net.ess3.permissions.Permissions; -//TODO: remove bukkit import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -22,8 +21,8 @@ public class Commandtpaccept extends EssentialsCommand final IUser target = user.getTeleportRequester(); if (target == null || !target.isOnline() - || (user.isTeleportRequestHere() && !Permissions.TPAHERE.isAuthorized(target)) - || (!user.isTeleportRequestHere() && !Permissions.TPA.isAuthorized(target) && !Permissions.TPAALL.isAuthorized(target))) + || (user.isTpRequestHere() && !Permissions.TPAHERE.isAuthorized(target)) + || (!user.isTpRequestHere() && !Permissions.TPA.isAuthorized(target) && !Permissions.TPAALL.isAuthorized(target))) { throw new Exception(_("noPendingRequest")); } @@ -52,7 +51,7 @@ public class Commandtpaccept extends EssentialsCommand } final Trade charge = new Trade(commandName, ess); - if (user.isTeleportRequestHere()) + if (user.isTpRequestHere()) { charge.isAffordableFor(user); } @@ -61,15 +60,15 @@ public class Commandtpaccept extends EssentialsCommand charge.isAffordableFor(target); } user.sendMessage(_("requestAccepted")); - target.sendMessage(_("requestAcceptedFrom", user.getDisplayName())); + target.sendMessage(_("requestAcceptedFrom", user.getPlayer().getDisplayName())); - if (user.isTeleportRequestHere()) + if (user.isTpRequestHere()) { - user.getTeleport().teleport(target, charge, TeleportCause.COMMAND); + user.getTeleport().teleport(target.getPlayer(), charge, TeleportCause.COMMAND); } else { - target.getTeleport().teleport(user, charge, TeleportCause.COMMAND); + target.getTeleport().teleport(user.getPlayer(), charge, TeleportCause.COMMAND); } user.requestTeleport(null, false); } diff --git a/Essentials/src/net/ess3/commands/Commandtpahere.java b/Essentials/src/net/ess3/commands/Commandtpahere.java index 6ae1c036a..f29c784a4 100644 --- a/Essentials/src/net/ess3/commands/Commandtpahere.java +++ b/Essentials/src/net/ess3/commands/Commandtpahere.java @@ -22,18 +22,18 @@ public class Commandtpahere extends EssentialsCommand player.acquireReadLock(); if (!player.getData().isTeleportEnabled()) { - throw new Exception(_("teleportDisabled", player.getDisplayName())); + throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName())); } @Cleanup ISettings settings = ess.getSettings(); settings.acquireReadLock(); - if (user.getWorld() != player.getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() - && !WorldPermissions.getPermission(user.getWorld().getName()).isAuthorized(user)) + if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() + && !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(user)) { - throw new Exception(_("noPerm", "essentials.world." + user.getWorld().getName())); + throw new Exception(_("noPerm", "essentials.world." + user.getPlayer().getWorld().getName())); } player.requestTeleport(user, true); - player.sendMessage(_("teleportHereRequest", user.getDisplayName())); + player.sendMessage(_("teleportHereRequest", user.getPlayer().getDisplayName())); player.sendMessage(_("typeTpaccept")); int tpaAcceptCancellation = 0; { @@ -43,6 +43,6 @@ public class Commandtpahere extends EssentialsCommand { player.sendMessage(_("teleportRequestTimeoutInfo", tpaAcceptCancellation)); } - user.sendMessage(_("requestSent", player.getDisplayName())); + user.sendMessage(_("requestSent", player.getPlayer().getDisplayName())); } } diff --git a/Essentials/src/net/ess3/commands/Commandtpall.java b/Essentials/src/net/ess3/commands/Commandtpall.java index 107db6bcd..aea8b1403 100644 --- a/Essentials/src/net/ess3/commands/Commandtpall.java +++ b/Essentials/src/net/ess3/commands/Commandtpall.java @@ -4,10 +4,9 @@ import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import net.ess3.permissions.WorldPermissions; -//TODO: remove bukkit +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -44,14 +43,14 @@ public class Commandtpall extends EssentialsCommand ISettings settings = ess.getSettings(); settings.acquireReadLock(); - if (user.getWorld() != player.getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() - && !WorldPermissions.getPermission(user.getWorld().getName()).isAuthorized(user)) + if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() + && !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(user)) { continue; } try { - player.getTeleport().now(user, false, TeleportCause.COMMAND); + player.getTeleport().now(user.getPlayer(), false, TeleportCause.COMMAND); } catch (Exception ex) { diff --git a/Essentials/src/net/ess3/commands/Commandtpdeny.java b/Essentials/src/net/ess3/commands/Commandtpdeny.java index e7744939b..a494dc866 100644 --- a/Essentials/src/net/ess3/commands/Commandtpdeny.java +++ b/Essentials/src/net/ess3/commands/Commandtpdeny.java @@ -16,7 +16,7 @@ public class Commandtpdeny extends EssentialsCommand } user.sendMessage(_("requestDenied")); - player.sendMessage(_("requestDeniedFrom", user.getDisplayName())); + player.sendMessage(_("requestDeniedFrom", user.getPlayer().getDisplayName())); user.requestTeleport(null, false); } } diff --git a/Essentials/src/net/ess3/commands/Commandtphere.java b/Essentials/src/net/ess3/commands/Commandtphere.java index 7b26f53d4..31af0192e 100644 --- a/Essentials/src/net/ess3/commands/Commandtphere.java +++ b/Essentials/src/net/ess3/commands/Commandtphere.java @@ -1,10 +1,9 @@ package net.ess3.commands; +import lombok.Cleanup; import static net.ess3.I18n._; -import net.ess3.economy.Trade; import net.ess3.api.IUser; -import lombok.Cleanup; -//TODO: remove bukkit +import net.ess3.economy.Trade; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -18,9 +17,9 @@ public class Commandtphere extends EssentialsCommand player.acquireReadLock(); if (!player.getData().isTeleportEnabled()) { - throw new Exception(_("teleportDisabled", player.getDisplayName())); + throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName())); } - player.getTeleport().teleport(user, new Trade(commandName, ess), TeleportCause.COMMAND); + player.getTeleport().teleport(user.getPlayer(), new Trade(commandName, ess), TeleportCause.COMMAND); user.sendMessage(_("teleporting")); player.sendMessage(_("teleporting")); throw new NoChargeException(); diff --git a/Essentials/src/net/ess3/commands/Commandtpo.java b/Essentials/src/net/ess3/commands/Commandtpo.java index 8cef5bb81..ae6a9d5c4 100644 --- a/Essentials/src/net/ess3/commands/Commandtpo.java +++ b/Essentials/src/net/ess3/commands/Commandtpo.java @@ -3,7 +3,6 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; -//TODO: remove bukkit import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -28,7 +27,7 @@ public class Commandtpo extends EssentialsCommand // Verify permission if (!player.isHidden() || Permissions.TELEPORT_HIDDEN.isAuthorized(user)) { - user.getTeleport().now(player, false, TeleportCause.COMMAND); + user.getTeleport().now(player.getPlayer(), false, TeleportCause.COMMAND); user.sendMessage(_("teleporting")); } else diff --git a/Essentials/src/net/ess3/commands/Commandtpohere.java b/Essentials/src/net/ess3/commands/Commandtpohere.java index d58384144..6b198df4f 100644 --- a/Essentials/src/net/ess3/commands/Commandtpohere.java +++ b/Essentials/src/net/ess3/commands/Commandtpohere.java @@ -6,7 +6,6 @@ import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; import net.ess3.permissions.WorldPermissions; -//TODO: remove buikkit import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -32,17 +31,17 @@ public class Commandtpohere extends EssentialsCommand ISettings settings = ess.getSettings(); settings.acquireReadLock(); //todo - common method - if (user.getWorld() != player.getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() - && !WorldPermissions.getPermission(user.getWorld().getName()).isAuthorized(player)) + if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() + && !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(player)) { - throw new Exception(_("noPerm", "essentials.world." + user.getWorld().getName())); + throw new Exception(_("noPerm", "essentials.world." + user.getPlayer().getWorld().getName())); } // Verify permission if (!player.isHidden() || Permissions.TELEPORT_HIDDEN.isAuthorized(user)) { - player.getTeleport().now(user, false, TeleportCause.COMMAND); + player.getTeleport().now(user.getPlayer(), false, TeleportCause.COMMAND); user.sendMessage(_("teleporting")); } else diff --git a/Essentials/src/net/ess3/commands/Commandtppos.java b/Essentials/src/net/ess3/commands/Commandtppos.java index 3cf658f71..72c16d415 100644 --- a/Essentials/src/net/ess3/commands/Commandtppos.java +++ b/Essentials/src/net/ess3/commands/Commandtppos.java @@ -2,10 +2,9 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Location; import net.ess3.economy.Trade; -//TODO: remove bukkit +import org.bukkit.Location; +import org.bukkit.command.CommandSender; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -22,7 +21,7 @@ public class Commandtppos extends EssentialsCommand final int x = Integer.parseInt(args[0]); final int y = Integer.parseInt(args[1]); final int z = Integer.parseInt(args[2]); - final Location location = new Location(user.getWorld(), x, y, z); + final Location location = new Location(user.getPlayer().getWorld(), x, y, z); if (args.length > 3) { location.setYaw((Float.parseFloat(args[3]) + 180 + 360) % 360); @@ -50,7 +49,7 @@ public class Commandtppos extends EssentialsCommand final int x = Integer.parseInt(args[1]); final int y = Integer.parseInt(args[2]); final int z = Integer.parseInt(args[3]); - final Location location = new Location(user.getWorld(), x, y, z); + final Location location = new Location(user.getPlayer().getWorld(), x, y, z); if (args.length > 4) { location.setYaw((Float.parseFloat(args[4]) + 180 + 360) % 360); diff --git a/Essentials/src/net/ess3/commands/Commandtree.java b/Essentials/src/net/ess3/commands/Commandtree.java index b1dc68139..435b37103 100644 --- a/Essentials/src/net/ess3/commands/Commandtree.java +++ b/Essentials/src/net/ess3/commands/Commandtree.java @@ -2,9 +2,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.Location; import net.ess3.utils.LocationUtil; -//TODO: remove bukkit +import org.bukkit.Location; import org.bukkit.TreeType; @@ -55,9 +54,9 @@ public class Commandtree extends EssentialsCommand throw new NotEnoughArgumentsException(); } - final Location loc = LocationUtil.getTarget(user); + final Location loc = LocationUtil.getTarget(user.getPlayer()); final Location safeLocation = LocationUtil.getSafeDestination(loc); - final boolean success = user.getWorld().generateTree(safeLocation, tree); + final boolean success = user.getPlayer().getWorld().generateTree(safeLocation, tree); if (success) { user.sendMessage(_("treeSpawned")); diff --git a/Essentials/src/net/ess3/commands/Commandunban.java b/Essentials/src/net/ess3/commands/Commandunban.java index 75d9081bd..9144887d3 100644 --- a/Essentials/src/net/ess3/commands/Commandunban.java +++ b/Essentials/src/net/ess3/commands/Commandunban.java @@ -3,7 +3,7 @@ package net.ess3.commands; import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandunban extends EssentialsCommand @@ -16,18 +16,11 @@ public class Commandunban extends EssentialsCommand throw new NotEnoughArgumentsException(); } - try - { - @Cleanup - final IUser player = ess.getUserMap().matchUser(args[0], false, true); - player.acquireWriteLock(); - player.getData().setBan(null); - player.setBanned(false); - sender.sendMessage(_("unbannedPlayer")); - } - catch (NoSuchFieldException e) - { - throw new Exception(_("playerNotFound"), e); - } + @Cleanup + final IUser player = ess.getUserMap().matchUser(args[0], false, true); + player.acquireWriteLock(); + player.getData().setBan(null); + player.setBanned(false); + sender.sendMessage(_("unbannedPlayer")); } } diff --git a/Essentials/src/net/ess3/commands/Commandunbanip.java b/Essentials/src/net/ess3/commands/Commandunbanip.java index 7243eb370..2feaa2e5a 100644 --- a/Essentials/src/net/ess3/commands/Commandunbanip.java +++ b/Essentials/src/net/ess3/commands/Commandunbanip.java @@ -3,7 +3,7 @@ package net.ess3.commands; import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class Commandunbanip extends EssentialsCommand diff --git a/Essentials/src/net/ess3/commands/Commandunlimited.java b/Essentials/src/net/ess3/commands/Commandunlimited.java index 9f182a6a7..f85534ea6 100644 --- a/Essentials/src/net/ess3/commands/Commandunlimited.java +++ b/Essentials/src/net/ess3/commands/Commandunlimited.java @@ -1,14 +1,15 @@ package net.ess3.commands; +import java.util.Locale; +import java.util.Set; +import lombok.Cleanup; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; +import net.ess3.craftbukkit.InventoryWorkaround; import net.ess3.permissions.Permissions; import net.ess3.permissions.UnlimitedItemPermissions; -import java.util.Locale; -import java.util.Set; -import lombok.Cleanup; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; public class Commandunlimited extends EssentialsCommand @@ -39,10 +40,10 @@ public class Commandunlimited extends EssentialsCommand { //TODO: Fix this, the clear should always work, even when the player does not have permission. final Set<Material> itemList = target.getData().getUnlimited(); - for(Material mat : itemList) + for (Material mat : itemList) { - toggleUnlimited(user, target, mat.getName()); - + toggleUnlimited(user, target, mat.toString()); + } } else @@ -68,7 +69,7 @@ public class Commandunlimited extends EssentialsCommand output.append(", "); } first = false; - final String matname = mater.getName().toLowerCase(Locale.ENGLISH).replace("_", ""); + final String matname = mater.toString().toLowerCase(Locale.ENGLISH).replace("_", ""); output.append(matname); } @@ -92,17 +93,17 @@ public class Commandunlimited extends EssentialsCommand { message = "enableUnlimited"; enableUnlimited = true; - if (!target.getInventory().containsItem(true, true, stack)) + if (!InventoryWorkaround.containsItem(target.getPlayer().getInventory(), true, true, stack)) { - target.getInventory().addItem(stack); + InventoryWorkaround.addItem(target.getPlayer().getInventory(), false, stack); } } if (user != target) { - user.sendMessage(_(message, itemname, target.getDisplayName())); + user.sendMessage(_(message, itemname, target.getPlayer().getDisplayName())); } - target.sendMessage(_(message, itemname, target.getDisplayName())); + target.sendMessage(_(message, itemname, target.getPlayer().getDisplayName())); target.acquireWriteLock(); target.getData().setUnlimited(stack.getType(), enableUnlimited); diff --git a/Essentials/src/net/ess3/commands/Commandwarp.java b/Essentials/src/net/ess3/commands/Commandwarp.java index ff5e0af99..fcf2e5fac 100644 --- a/Essentials/src/net/ess3/commands/Commandwarp.java +++ b/Essentials/src/net/ess3/commands/Commandwarp.java @@ -1,18 +1,17 @@ package net.ess3.commands; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; import static net.ess3.I18n._; -import net.ess3.economy.Trade; -import net.ess3.utils.Util; import net.ess3.api.IUser; import net.ess3.api.IWarps; +import net.ess3.economy.Trade; import net.ess3.permissions.Permissions; import net.ess3.permissions.WarpPermissions; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -//TODO: remove bukkit -import net.ess3.api.server.CommandSender; +import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; diff --git a/Essentials/src/net/ess3/commands/Commandweather.java b/Essentials/src/net/ess3/commands/Commandweather.java index 7ed487873..66931b2a5 100644 --- a/Essentials/src/net/ess3/commands/Commandweather.java +++ b/Essentials/src/net/ess3/commands/Commandweather.java @@ -2,8 +2,8 @@ package net.ess3.commands; import static net.ess3.I18n._; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.World; +import org.bukkit.World; +import org.bukkit.command.CommandSender; public class Commandweather extends EssentialsCommand @@ -18,7 +18,7 @@ public class Commandweather extends EssentialsCommand } final boolean isStorm = args[0].equalsIgnoreCase("storm"); - final World world = user.getWorld(); + final World world = user.getPlayer().getWorld(); if (args.length > 1) { diff --git a/Essentials/src/net/ess3/commands/Commandwhois.java b/Essentials/src/net/ess3/commands/Commandwhois.java index dee99fdc7..1b4d8fae4 100644 --- a/Essentials/src/net/ess3/commands/Commandwhois.java +++ b/Essentials/src/net/ess3/commands/Commandwhois.java @@ -1,7 +1,5 @@ package net.ess3.commands; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; import java.util.Locale; import lombok.Cleanup; import static net.ess3.I18n._; @@ -11,7 +9,10 @@ import net.ess3.craftbukkit.SetExpFix; import net.ess3.permissions.Permissions; import net.ess3.user.UserData; import net.ess3.utils.DateUtil; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; @@ -25,7 +26,7 @@ public class Commandwhois extends EssentialsCommand throw new NotEnoughArgumentsException(); } boolean showhidden = false; - if (sender instanceof Player) + if (sender instanceof IUser) { if (Permissions.LIST_HIDDEN.isAuthorized(sender)) { @@ -40,19 +41,19 @@ public class Commandwhois extends EssentialsCommand @Cleanup ISettings settings = ess.getSettings(); settings.acquireReadLock(); - final int prefixLength = Util.stripColor(settings.getData().getChat().getNicknamePrefix()).length(); + final int prefixLength = FormatUtil.stripColor(settings.getData().getChat().getNicknamePrefix()).length(); boolean foundPlayer = false; for (Player onlinePlayer : server.getOnlinePlayers()) { @Cleanup - final IUser user = onlinePlayer.getUser(); + final IUser user = ess.getUserMap().getUser(onlinePlayer); if (user.isHidden() && !showhidden) { continue; } user.acquireReadLock(); - final String nickName = Util.stripFormat(user.getData().getNickname()); + final String nickName = FormatUtil.stripFormat(user.getData().getNickname()); if (!whois.equalsIgnoreCase(nickName) && !whois.substring(prefixLength).equalsIgnoreCase(nickName) && !whois.equalsIgnoreCase(user.getName())) @@ -62,22 +63,22 @@ public class Commandwhois extends EssentialsCommand foundPlayer = true; sender.sendMessage(_("whoisTop", user.getName())); user.setDisplayNick(); - sender.sendMessage(_("whoisIs", user.getDisplayName(), user.getName())); - sender.sendMessage(_("whoisHealth", user.getHealth())); - sender.sendMessage(_("whoisExp", SetExpFix.getTotalExperience(user), user.getLevel())); - sender.sendMessage(_("whoisLocation", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ())); - sender.sendMessage(_("whoisMoney", Util.displayCurrency(user.getMoney(), ess))); - sender.sendMessage(_("whoisIPAddress", user.getAddress().getAddress().toString())); + sender.sendMessage(_("whoisIs", user.getPlayer().getDisplayName(), user.getName())); + sender.sendMessage(_("whoisHealth", user.getPlayer().getHealth())); + sender.sendMessage(_("whoisExp", SetExpFix.getTotalExperience(user.getPlayer()), user.getPlayer().getLevel())); + sender.sendMessage(_("whoisLocation", user.getPlayer().getLocation().getWorld().getName(), user.getPlayer().getLocation().getBlockX(), user.getPlayer().getLocation().getBlockY(), user.getPlayer().getLocation().getBlockZ())); + sender.sendMessage(_("whoisMoney", FormatUtil.displayCurrency(user.getMoney(), ess))); + sender.sendMessage(_("whoisIPAddress", user.getPlayer().getAddress().getAddress().toString())); final String location = user.getData().getGeolocation(); if (location != null && Permissions.GEOIP_SHOW.isAuthorized(sender)) { sender.sendMessage(_("whoisGeoLocation", location)); } - sender.sendMessage(_("whoisGamemode", _(user.getGameMode().toString().toLowerCase(Locale.ENGLISH)))); + sender.sendMessage(_("whoisGamemode", _(user.getPlayer().getGameMode().toString().toLowerCase(Locale.ENGLISH)))); sender.sendMessage(_("whoisGod", (user.isGodModeEnabled() ? _("true") : _("false")))); sender.sendMessage(_("whoisOP", (user.isOp() ? _("true") : _("false")))); - sender.sendMessage(_("whoisFly", user.getAllowFlight() ? _("true") : _("false"), user.isFlying() ? _("flying") : _("notFlying"))); + sender.sendMessage(_("whoisFly", user.getPlayer().getAllowFlight() ? _("true") : _("false"), user.getPlayer().isFlying() ? _("flying") : _("notFlying"))); sender.sendMessage(_("whoisAFK", (user.getData().isAfk() ? _("true") : _("false")))); sender.sendMessage(_("whoisJail", (user.getData().isJailed() ? user.getTimestamp(UserData.TimestampType.JAIL) > 0 diff --git a/Essentials/src/net/ess3/commands/Commandworkbench.java b/Essentials/src/net/ess3/commands/Commandworkbench.java index 8c54b172f..c107dfc80 100644 --- a/Essentials/src/net/ess3/commands/Commandworkbench.java +++ b/Essentials/src/net/ess3/commands/Commandworkbench.java @@ -1,20 +1,13 @@ package net.ess3.commands; -import net.ess3.api.server.Server; -import net.ess3.user.User; +import net.ess3.api.IUser; public class Commandworkbench extends EssentialsCommand { - public Commandworkbench() - { - super("workbench"); - } - - @Override - public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception + public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - user.openWorkbench(null, true); + user.getPlayer().openWorkbench(null, true); } } diff --git a/Essentials/src/net/ess3/commands/Commandworld.java b/Essentials/src/net/ess3/commands/Commandworld.java index 4d8b1420f..d67af9e66 100644 --- a/Essentials/src/net/ess3/commands/Commandworld.java +++ b/Essentials/src/net/ess3/commands/Commandworld.java @@ -1,13 +1,12 @@ package net.ess3.commands; +import java.util.List; import static net.ess3.I18n._; -import net.ess3.economy.Trade; import net.ess3.api.IUser; -import net.ess3.api.server.World; -import net.ess3.api.server.Location; +import net.ess3.economy.Trade; import net.ess3.permissions.WorldPermissions; -import java.util.List; -//TODO: remove bukkit +import org.bukkit.Location; +import org.bukkit.World; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -36,7 +35,7 @@ public class Commandworld extends EssentialsCommand { return; } - world = user.getWorld() == nether ? worlds.get(0) : nether; + world = user.getPlayer().getWorld() == nether ? worlds.get(0) : nether; } else { @@ -58,11 +57,11 @@ public class Commandworld extends EssentialsCommand } double factor; - if (user.getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL) + if (user.getPlayer().getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL) { factor = 8.0; } - else if (user.getWorld().getEnvironment() == World.Environment.NORMAL && world.getEnvironment() == World.Environment.NETHER) + else if (user.getPlayer().getWorld().getEnvironment() == World.Environment.NORMAL && world.getEnvironment() == World.Environment.NETHER) { factor = 1.0 / 8.0; } @@ -71,8 +70,8 @@ public class Commandworld extends EssentialsCommand factor = 1.0; } - final Location loc = user.getLocation(); - final Location target = Location.create(world, loc.getBlockX() * factor + .5, loc.getBlockY(), loc.getBlockZ() * factor + .5); + final Location loc = user.getPlayer().getLocation(); + final Location target = new Location(world, loc.getBlockX() * factor + .5, loc.getBlockY(), loc.getBlockZ() * factor + .5); final Trade charge = new Trade(commandName, ess); charge.isAffordableFor(user); diff --git a/Essentials/src/net/ess3/commands/Commandworth.java b/Essentials/src/net/ess3/commands/Commandworth.java index deda51c6c..bfcb81d81 100644 --- a/Essentials/src/net/ess3/commands/Commandworth.java +++ b/Essentials/src/net/ess3/commands/Commandworth.java @@ -1,11 +1,12 @@ package net.ess3.commands; +import java.util.Locale; import static net.ess3.I18n._; -import net.ess3.utils.Util; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; -import java.util.Locale; -import net.ess3.api.server.CommandSender; +import net.ess3.utils.FormatUtil; +import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; +import org.bukkit.inventory.ItemStack; public class Commandworth extends EssentialsCommand @@ -14,7 +15,7 @@ public class Commandworth extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - ItemStack iStack = user.getItemInHand(); + ItemStack iStack = user.getPlayer().getItemInHand(); int amount = iStack.getAmount(); if (args.length > 0) @@ -45,14 +46,14 @@ public class Commandworth extends EssentialsCommand ? _("worthMeta", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), iStack.getDurability(), - Util.displayCurrency(worth * amount, ess), + FormatUtil.displayCurrency(worth * amount, ess), amount, - Util.displayCurrency(worth, ess)) + FormatUtil.displayCurrency(worth, ess)) : _("worth", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), - Util.displayCurrency(worth * amount, ess), + FormatUtil.displayCurrency(worth * amount, ess), amount, - Util.displayCurrency(worth, ess))); + FormatUtil.displayCurrency(worth, ess))); } @Override @@ -89,14 +90,14 @@ public class Commandworth extends EssentialsCommand ? _("worthMeta", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), iStack.getDurability(), - Util.displayCurrency(worth * amount, ess), + FormatUtil.displayCurrency(worth * amount, ess), amount, - Util.displayCurrency(worth, ess)) + FormatUtil.displayCurrency(worth, ess)) : _("worth", iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), - Util.displayCurrency(worth * amount, ess), + FormatUtil.displayCurrency(worth * amount, ess), amount, - Util.displayCurrency(worth, ess))); + FormatUtil.displayCurrency(worth, ess))); } } diff --git a/Essentials/src/net/ess3/commands/EssentialsCommand.java b/Essentials/src/net/ess3/commands/EssentialsCommand.java index 6afd42f01..fb7c407b8 100644 --- a/Essentials/src/net/ess3/commands/EssentialsCommand.java +++ b/Essentials/src/net/ess3/commands/EssentialsCommand.java @@ -1,17 +1,16 @@ package net.ess3.commands; +import java.util.logging.Logger; import static net.ess3.I18n._; import net.ess3.api.IEssentials; import net.ess3.api.IEssentialsModule; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Server; -import net.ess3.api.server.Player; import net.ess3.economy.Trade; import net.ess3.permissions.AbstractSuperpermsPermission; -import java.util.List; -import java.util.logging.Logger; +import org.bukkit.Server; import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public abstract class EssentialsCommand extends AbstractSuperpermsPermission implements IEssentialsCommand @@ -127,4 +126,39 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp { return permission; } + + protected boolean isUser(CommandSender sender) { + return sender instanceof IUser; + } + + /** + * Converts a CommandSender object to an User. + * + * @param sender + * @return + * @throws IllegalArgumentException if the object is neither a superclass of IUser or Player + */ + protected IUser getUser(CommandSender sender) { + if (sender instanceof IUser) { + return (IUser)sender; + } + if (sender instanceof Player) { + return ess.getUserMap().getUser((Player)sender); + } + throw new IllegalArgumentException(); + } + + /** + * Converts a CommandSender object to an User. + * + * @param sender + * @return + * @throws IllegalArgumentException if the object is not a superclass of IUser + */ + protected Player getPlayer(CommandSender sender) { + if (sender instanceof IUser) { + return ((IUser)sender).getPlayer(); + } + throw new IllegalArgumentException(); + } } diff --git a/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java b/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java index 3d026d5c1..231f7b756 100644 --- a/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java +++ b/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java @@ -5,14 +5,14 @@ import java.util.logging.Level; import java.util.logging.Logger; import static net.ess3.I18n._; import net.ess3.api.*; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.Plugin; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommandYamlParser; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; public class EssentialsCommandHandler implements ICommandHandler @@ -101,13 +101,6 @@ public class EssentialsCommandHandler implements ICommandHandler try { - IUser user = null; - if (sender instanceof Player) - { - user = ((Player)sender).getUser(); - LOGGER.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0))); - } - // Check for disabled commands if (disabled) { @@ -136,10 +129,17 @@ public class EssentialsCommandHandler implements ICommandHandler // Check authorization if (sender != null && !cmd.isAuthorized(sender)) { - LOGGER.log(Level.WARNING, _("deniedAccessCommand", user.getName())); - user.sendMessage(_("noAccessCommand")); + LOGGER.log(Level.WARNING, _("deniedAccessCommand", sender.getName())); + sender.sendMessage(_("noAccessCommand")); return true; } + + IUser user = null; + if (sender instanceof Player) + { + user = ess.getUserMap().getUser((Player)sender); + LOGGER.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0))); + } // Run the command try @@ -151,6 +151,7 @@ public class EssentialsCommandHandler implements ICommandHandler else { user.acquireReadLock(); + user.setPlayerCache((Player)sender); try { cmd.run(user, command, commandLabel, args); diff --git a/Essentials/src/net/ess3/commands/IEssentialsCommand.java b/Essentials/src/net/ess3/commands/IEssentialsCommand.java index 2466b4c55..34f1ba020 100644 --- a/Essentials/src/net/ess3/commands/IEssentialsCommand.java +++ b/Essentials/src/net/ess3/commands/IEssentialsCommand.java @@ -4,8 +4,8 @@ import net.ess3.api.IEssentials; import net.ess3.api.IEssentialsModule; import net.ess3.api.IPermission; import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; public interface IEssentialsCommand extends IPermission diff --git a/Essentials/src/net/ess3/craftbukkit/SetExpFix.java b/Essentials/src/net/ess3/craftbukkit/SetExpFix.java index 90962bfcb..54f6792e9 100644 --- a/Essentials/src/net/ess3/craftbukkit/SetExpFix.java +++ b/Essentials/src/net/ess3/craftbukkit/SetExpFix.java @@ -1,11 +1,13 @@ package net.ess3.craftbukkit; +import org.bukkit.entity.Player; + public class SetExpFix { //This method is used to update both the recorded total experience and displayed total experience. //We reset both types to prevent issues. - public static void setTotalExperience(final IPlayer player, final int exp) + public static void setTotalExperience(final Player player, final int exp) { if (exp < 0) { @@ -14,13 +16,13 @@ public class SetExpFix player.setExp(0); player.setLevel(0); player.setTotalExperience(0); - + //This following code is technically redundant now, as bukkit now calulcates levels more or less correctly //At larger numbers however... player.getExp(3000), only seems to give 2999, putting the below calculations off. int amount = exp; while (amount > 0) { - final int expToLevel = getExpToLevel(player); + final int expToLevel = getExpAtLevel(player); amount -= expToLevel; if (amount >= 0) { @@ -37,27 +39,56 @@ public class SetExpFix } } - private static int getExpToLevel(final IPlayer player) - { - return getExpToLevel(player.getLevel()); + private static int getExpAtLevel(final Player player) + { + return getExpAtLevel(player.getLevel()); } - - private static int getExpToLevel(final int level) - { - return 7 + (level * 7 >> 1); + + public static int getExpAtLevel(final int level) + { + if (level > 29) + { + return 62 + (level - 30) * 7; + } + if (level > 15) + { + return 17 + (level - 15) * 3; + } + return 17; } + public static int getExpToLevel(final int level) + { + int currentLevel = 0; + int exp = 0; + + while (currentLevel < level) + { + exp += getExpAtLevel(currentLevel); + currentLevel++; + } + return exp; + } + //This method is required because the bukkit player.getTotalExperience() method, shows exp that has been 'spent'. //Without this people would be able to use exp and then still sell it. - public static int getTotalExperience(final IPlayer player) + public static int getTotalExperience(final Player player) { - int exp = (int)Math.round(getExpToLevel(player) * player.getExp()); + int exp = (int)Math.round(getExpAtLevel(player) * player.getExp()); int currentLevel = player.getLevel(); - - while (currentLevel > 0) { + + while (currentLevel > 0) + { currentLevel--; - exp += getExpToLevel(currentLevel); + exp += getExpAtLevel(currentLevel); } return exp; } + + public static int getExpUntilNextLevel(final Player player) + { + int exp = (int)Math.round(getExpAtLevel(player) * player.getExp()); + int nextLevel = player.getLevel(); + return getExpAtLevel(nextLevel) - exp; + } } diff --git a/Essentials/src/net/ess3/economy/Economy.java b/Essentials/src/net/ess3/economy/Economy.java index cfd1f899e..0eef9e99a 100644 --- a/Essentials/src/net/ess3/economy/Economy.java +++ b/Essentials/src/net/ess3/economy/Economy.java @@ -5,6 +5,7 @@ import java.util.Locale; import java.util.Map; import net.ess3.api.*; import net.ess3.permissions.Permissions; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; @@ -123,7 +124,7 @@ public class Economy implements IEconomy @Override public String format(double amount) { - return Util.displayCurrency(amount, ess); + return FormatUtil.displayCurrency(amount, ess); } @Override diff --git a/Essentials/src/net/ess3/economy/Trade.java b/Essentials/src/net/ess3/economy/Trade.java index 5dc5322e8..57ea5c268 100644 --- a/Essentials/src/net/ess3/economy/Trade.java +++ b/Essentials/src/net/ess3/economy/Trade.java @@ -15,11 +15,11 @@ import net.ess3.api.ChargeException; import net.ess3.api.IEssentials; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Location; +import net.ess3.craftbukkit.InventoryWorkaround; import net.ess3.permissions.NoCommandCostPermissions; import net.ess3.permissions.Permissions; - +import org.bukkit.Location; +import org.bukkit.inventory.ItemStack; public class Trade @@ -77,7 +77,7 @@ public class Trade } if (getItemStack() != null - && !user.getInventory().containsItem(true, true, itemStack)) + && InventoryWorkaround.containsItem(user.getPlayer().getInventory(), true, true, itemStack)) { throw new ChargeException(_("missingItems", getItemStack().getAmount(), getItemStack().getType().toString().toLowerCase(Locale.ENGLISH).replace("_", " "))); } @@ -95,7 +95,7 @@ public class Trade } if (exp != null && exp > 0 - && user.getTotalExperience() < exp) + && user.getPlayer().getTotalExperience() < exp) { throw new ChargeException(_("notEnoughExperience")); } @@ -117,8 +117,8 @@ public class Trade { if (dropItems) { - final Map<Integer, ItemStack> leftOver = user.getInventory().addItem(true, getItemStack()); - final Location loc = user.getLocation(); + final Map<Integer, ItemStack> leftOver = InventoryWorkaround.addItem(user.getPlayer().getInventory(), true, getItemStack()); + final Location loc = user.getPlayer().getLocation(); for (ItemStack dropStack : leftOver.values()) { final int maxStackSize = dropStack.getType().getMaxStackSize(); @@ -129,25 +129,25 @@ public class Trade { final ItemStack stack = dropStack.clone(); stack.setAmount(maxStackSize); - itemStacks[i] = user.getWorld().dropItem(loc, stack); + itemStacks[i] = user.getPlayer().getWorld().dropItem(loc, stack).getItemStack(); } if (leftover > 0) { final ItemStack stack = dropStack.clone(); stack.setAmount(leftover); - itemStacks[stacks] = user.getWorld().dropItem(loc, stack); + itemStacks[stacks] = user.getPlayer().getWorld().dropItem(loc, stack).getItemStack(); } } } else { - success = user.getInventory().addAllItems(true, getItemStack()); + success = InventoryWorkaround.addAllItems(user.getPlayer().getInventory(), true, getItemStack()); } - user.updateInventory(); + user.getPlayer().updateInventory(); } if (getExperience() != null) { - user.setTotalExperience(user.getTotalExperience() + getExperience()); + user.getPlayer().setTotalExperience(user.getPlayer().getTotalExperience() + getExperience()); } return success; } @@ -164,12 +164,12 @@ public class Trade } if (getItemStack() != null) { - if (!user.getInventory().containsItem(true, true, itemStack)) + if (!InventoryWorkaround.containsItem(user.getPlayer().getInventory(), true, true, itemStack)) { throw new ChargeException(_("missingItems", getItemStack().getAmount(), getItemStack().getType().toString().toLowerCase(Locale.ENGLISH).replace("_", " "))); } - user.getInventory().removeItem(true, true, getItemStack()); - user.updateInventory(); + InventoryWorkaround.removeItem(user.getPlayer().getInventory() , true, true, getItemStack()); + user.getPlayer().updateInventory(); } if (command != null && !command.isEmpty() && !NoCommandCostPermissions.getPermission(command).isAuthorized(user)) @@ -186,12 +186,12 @@ public class Trade } if (getExperience() != null) { - final int experience = user.getTotalExperience(); + final int experience = user.getPlayer().getTotalExperience(); if (experience < getExperience() && getExperience() > 0) { throw new ChargeException(_("notEnoughExperience")); } - user.setTotalExperience(experience - getExperience()); + user.getPlayer().setTotalExperience(experience - getExperience()); } } diff --git a/Essentials/src/net/ess3/economy/WorthHolder.java b/Essentials/src/net/ess3/economy/WorthHolder.java index fbd20360c..5b1f94736 100644 --- a/Essentials/src/net/ess3/economy/WorthHolder.java +++ b/Essentials/src/net/ess3/economy/WorthHolder.java @@ -1,6 +1,5 @@ package net.ess3.economy; -import net.ess3.api.server.ItemStack; import java.io.File; import java.io.IOException; import java.util.HashMap; @@ -10,6 +9,7 @@ import net.ess3.api.IWorth; import net.ess3.storage.AsyncStorageObjectHolder; import net.ess3.storage.EnchantmentLevel; import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; diff --git a/Essentials/src/net/ess3/listener/EssentialsBlockListener.java b/Essentials/src/net/ess3/listener/EssentialsBlockListener.java index 9d69aff04..2ef258fb0 100644 --- a/Essentials/src/net/ess3/listener/EssentialsBlockListener.java +++ b/Essentials/src/net/ess3/listener/EssentialsBlockListener.java @@ -1,37 +1,44 @@ package net.ess3.listener; +import lombok.Cleanup; import net.ess3.api.IEssentials; import net.ess3.api.IUser; -import net.ess3.api.ondemand.OnDemand; -import net.ess3.api.server.Block; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.events.EventListener; -import net.ess3.api.server.events.EventPriority; -import net.ess3.api.server.events.EventType; +import net.ess3.bukkit.BukkitMaterial; +import org.bukkit.GameMode; +import org.bukkit.block.Block; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.inventory.ItemStack; -public class EssentialsBlockListener extends EventListener + +public class EssentialsBlockListener implements Listener { private final transient IEssentials ess; public EssentialsBlockListener(final IEssentials ess) { - super(); this.ess = ess; - register(EventType.PLACE_BLOCK, EventPriority.LOW, true); } - @Override - public boolean onBlockPlace(final Block placedBlock, final OnDemand<IUser> user) + @EventHandler(priority = EventPriority.LOW,ignoreCancelled=true) + public void onBlockPlace(final BlockPlaceEvent event) { - final ItemStack itemstack = placedBlock.convertToItem(); - if (placedBlock == null) + final Block block = event.getBlockPlaced(); + final ItemStack itemstack = BukkitMaterial.convertBlockToItem(block.getType(), block.getData()); + if (itemstack == null) { - return true; + return; } + + @Cleanup + final IUser user = ess.getUserMap().getUser(event.getPlayer()); + user.acquireReadLock(); - final boolean unlimitedForUser = user.get().getData().hasUnlimited(itemstack.getType()); - if (unlimitedForUser && user.get().isInSurvivalMode()) + final boolean unlimitedForUser = user.getData().hasUnlimited(itemstack.getType()); + if (unlimitedForUser && user.getPlayer().getGameMode() != GameMode.CREATIVE) { ess.getPlugin().scheduleSyncDelayedTask( new Runnable() @@ -39,11 +46,10 @@ public class EssentialsBlockListener extends EventListener @Override public void run() { - user.get().getInventory().addItem(itemstack); - user.get().updateInventory(); + user.getPlayer().getInventory().addItem(itemstack); + user.getPlayer().updateInventory(); } }); } - return true; } } diff --git a/Essentials/src/net/ess3/listener/EssentialsEntityListener.java b/Essentials/src/net/ess3/listener/EssentialsEntityListener.java index f25376f62..c56660d17 100644 --- a/Essentials/src/net/ess3/listener/EssentialsEntityListener.java +++ b/Essentials/src/net/ess3/listener/EssentialsEntityListener.java @@ -1,10 +1,5 @@ package net.ess3.listener; -import static net.ess3.I18n._; -import net.ess3.api.IEssentials; -import net.ess3.api.ISettings; -import net.ess3.api.IUser; -import net.ess3.permissions.Permissions; import java.util.List; import lombok.Cleanup; import static net.ess3.I18n._; @@ -21,8 +16,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.entity.*; +import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.inventory.ItemStack; @@ -63,7 +58,7 @@ public class EssentialsEntityListener implements Listener { event.setCancelled(true); } - final ItemStack itemstack = attacker.getItemInHand(); + final ItemStack itemstack = ((Player)eAttack).getItemInHand(); final List<String> commandList = attacker.getData().getPowertool(itemstack.getType()); if (commandList != null && !commandList.isEmpty()) { @@ -71,13 +66,13 @@ public class EssentialsEntityListener implements Listener { if (command != null && !command.isEmpty()) { - ess.scheduleSyncDelayedTask( + ess.getPlugin().scheduleSyncDelayedTask( new Runnable() { @Override public void run() { - attacker.getServer().dispatchCommand(attacker.getBase(), command.replaceAll("\\{player\\}", defender.getName())); + attacker.getServer().dispatchCommand(((Player)eAttack), command.replaceAll("\\{player\\}", defender.getName())); } }); event.setCancelled(true); diff --git a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java index 04a12aada..c2712f599 100644 --- a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java +++ b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java @@ -29,8 +29,8 @@ import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryType; -import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.*; +import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; @@ -136,11 +136,11 @@ public class EssentialsPlayerListener implements Listener } if (user.getData().getInventory() != null) { - user.getInventory().setContents(user.getData().getInventory().getBukkitInventory()); + user.getPlayer().getInventory().setContents(user.getData().getInventory().getBukkitInventory()); user.getData().setInventory(null); } user.updateActivity(false); - user.dispose(); + //user.getPlayer().dispose(); } @EventHandler(priority = EventPriority.MONITOR) @@ -156,20 +156,20 @@ public class EssentialsPlayerListener implements Listener user.acquireWriteLock(); user.updateDisplayName(); - user.getData().setIpAddress(user.getAddress().getAddress().getHostAddress()); + user.getData().setIpAddress(user.getPlayer().getAddress().getAddress().getHostAddress()); user.updateActivity(false); for (String p : ess.getVanishedPlayers()) { if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(user)) { - user.hidePlayer(ess.getUserMap().getUser(p).getBase()); + user.getPlayer().hidePlayer(ess.getUserMap().getUser(p).getPlayer()); } } if (Permissions.SLEEPINGIGNORED.isAuthorized(user)) { - user.setSleepingIgnored(true); + user.getPlayer().setSleepingIgnored(true); } @Cleanup @@ -276,8 +276,8 @@ public class EssentialsPlayerListener implements Listener final ItemStack hand = new ItemStack(Material.EGG, 1); if (user.getData().hasUnlimited(hand.getType())) { - user.getInventory().addItem(hand); - user.updateInventory(); + user.getPlayer().getInventory().addItem(hand); + user.getPlayer().updateInventory(); } } @@ -290,12 +290,12 @@ public class EssentialsPlayerListener implements Listener if (user.getData().hasUnlimited(event.getBucket())) { event.getItemStack().setType(event.getBucket()); - ess.scheduleSyncDelayedTask(new Runnable() + ess.getPlugin().scheduleSyncDelayedTask(new Runnable() { @Override public void run() { - user.updateInventory(); + user.getPlayer().updateInventory(); } }); } @@ -316,7 +316,7 @@ public class EssentialsPlayerListener implements Listener spyer.acquireReadLock(); if (spyer.getData().isSocialspy() && !user.equals(spyer)) { - player.sendMessage(user.getDisplayName() + " : " + event.getMessage()); + player.sendMessage(user.getPlayer().getDisplayName() + " : " + event.getMessage()); } } } @@ -395,7 +395,7 @@ public class EssentialsPlayerListener implements Listener private boolean usePowertools(final IUser user) { - final ItemStack is = user.getItemInHand(); + final ItemStack is = user.getPlayer().getItemInHand(); int id; if (is == null || (id = is.getTypeId()) == 0) { @@ -419,18 +419,18 @@ public class EssentialsPlayerListener implements Listener else if (command.startsWith("c:")) { used = true; - user.chat(command.substring(2)); + user.getPlayer().chat(command.substring(2)); } else { used = true; - ess.scheduleSyncDelayedTask( + ess.getPlugin().scheduleSyncDelayedTask( new Runnable() { @Override public void run() { - user.getServer().dispatchCommand(user.getBase(), command); + user.getServer().dispatchCommand(user.getPlayer(), command); } }); } diff --git a/Essentials/src/net/ess3/metrics/Metrics.java b/Essentials/src/net/ess3/metrics/Metrics.java index 643d86d30..0d1258e91 100644 --- a/Essentials/src/net/ess3/metrics/Metrics.java +++ b/Essentials/src/net/ess3/metrics/Metrics.java @@ -30,7 +30,11 @@ import java.net.URLConnection; import java.net.URLEncoder; import java.util.*; import java.util.logging.Level; -import net.ess3.api.server.Plugin; +import org.bukkit.Bukkit; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginDescriptionFile; /** @@ -189,7 +193,7 @@ public class Metrics } // Begin hitting the server with glorious data - taskId = plugin.scheduleAsyncRepeatingTask(new Runnable() + taskId = plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() { private boolean firstPost = true; @@ -203,7 +207,7 @@ public class Metrics // Disable Task, if it is running and the server owner decided to opt-out if (isOptOut() && taskId > 0) { - plugin.cancelTask(taskId); + plugin.getServer().getScheduler().cancelTask(taskId); taskId = -1; } } @@ -300,7 +304,7 @@ public class Metrics // Disable Task, if it is running if (taskId >= 0) { - this.plugin.cancelTask(taskId); + this.plugin.getServer().getScheduler().cancelTask(taskId); taskId = -1; } } diff --git a/Essentials/src/net/ess3/permissions/AbstractSuperpermsPermission.java b/Essentials/src/net/ess3/permissions/AbstractSuperpermsPermission.java index 327299b99..46020336b 100644 --- a/Essentials/src/net/ess3/permissions/AbstractSuperpermsPermission.java +++ b/Essentials/src/net/ess3/permissions/AbstractSuperpermsPermission.java @@ -1,9 +1,10 @@ package net.ess3.permissions; import net.ess3.api.IPermission; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Permission; -import net.ess3.utils.Util; +import net.ess3.bukkit.PermissionFactory; +import org.bukkit.command.CommandSender; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; public abstract class AbstractSuperpermsPermission implements IPermission @@ -21,7 +22,7 @@ public abstract class AbstractSuperpermsPermission implements IPermission } else { - return null;// Util.registerPermission(getPermission(), getPermissionDefault()); + return PermissionFactory.registerPermission(getPermissionName(), getPermissionDefault()); } } @@ -31,9 +32,9 @@ public abstract class AbstractSuperpermsPermission implements IPermission */ @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.OP; + return PermissionDefault.OP; } diff --git a/Essentials/src/net/ess3/permissions/GivePermissions.java b/Essentials/src/net/ess3/permissions/GivePermissions.java index a3ced5155..8064c0715 100644 --- a/Essentials/src/net/ess3/permissions/GivePermissions.java +++ b/Essentials/src/net/ess3/permissions/GivePermissions.java @@ -1,15 +1,14 @@ package net.ess3.permissions; -import net.ess3.api.IPermission; -import net.ess3.api.server.Material; -import net.ess3.api.server.Permission; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Locale; -import java.util.Map; +import net.ess3.api.IPermission; +import org.bukkit.Material; +import org.bukkit.permissions.PermissionDefault; public class GivePermissions { - private static Map<Material, IPermission> permissions = new HashMap<Material, IPermission>(); + private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); public static IPermission getPermission(final Material mat) { @@ -19,9 +18,9 @@ public class GivePermissions { perm = new BasePermission("essentials.give.item-", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) { @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.TRUE; + return PermissionDefault.TRUE; } }; permissions.put(mat, perm); diff --git a/Essentials/src/net/ess3/permissions/ItemPermissions.java b/Essentials/src/net/ess3/permissions/ItemPermissions.java index c0d4b587d..959f78444 100644 --- a/Essentials/src/net/ess3/permissions/ItemPermissions.java +++ b/Essentials/src/net/ess3/permissions/ItemPermissions.java @@ -1,17 +1,16 @@ package net.ess3.permissions; -import net.ess3.api.IPermission; -import net.ess3.api.server.Material; -import net.ess3.api.server.Permission; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Locale; -import java.util.Map; +import net.ess3.api.IPermission; +import org.bukkit.Material; +import org.bukkit.permissions.PermissionDefault; public class ItemPermissions { - private static Map<Material, IPermission> permissions = new HashMap<Material, IPermission>(); + private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); public static IPermission getPermission(final Material mat) { @@ -21,9 +20,9 @@ public class ItemPermissions perm = new BasePermission("essentials.itemspawn.item-", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) { @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.TRUE; + return PermissionDefault.TRUE; } }; permissions.put(mat, perm); diff --git a/Essentials/src/net/ess3/permissions/KitPermissions.java b/Essentials/src/net/ess3/permissions/KitPermissions.java index fb02392c0..00365aeac 100644 --- a/Essentials/src/net/ess3/permissions/KitPermissions.java +++ b/Essentials/src/net/ess3/permissions/KitPermissions.java @@ -1,10 +1,10 @@ package net.ess3.permissions; -import net.ess3.api.IPermission; -import net.ess3.api.server.Permission; import java.util.HashMap; import java.util.Locale; import java.util.Map; +import net.ess3.api.IPermission; +import org.bukkit.permissions.PermissionDefault; public class KitPermissions @@ -19,9 +19,9 @@ public class KitPermissions perm = new BasePermission("essentials.kit.", kitName.toLowerCase(Locale.ENGLISH)) { @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.TRUE; + return PermissionDefault.TRUE; } }; permissions.put(kitName, perm); diff --git a/Essentials/src/net/ess3/permissions/Permissions.java b/Essentials/src/net/ess3/permissions/Permissions.java index 1571b1107..a71ae6fa0 100644 --- a/Essentials/src/net/ess3/permissions/Permissions.java +++ b/Essentials/src/net/ess3/permissions/Permissions.java @@ -2,8 +2,10 @@ package net.ess3.permissions; import java.util.Locale; import net.ess3.api.IPermission; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Permission; +import net.ess3.bukkit.PermissionFactory; +import org.bukkit.command.CommandSender; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; public enum Permissions implements IPermission @@ -22,7 +24,8 @@ public enum Permissions implements IPermission CHAT_SPY, CLEARINVENTORY_OTHERS, DELHOME_OTHERS, - ECO_LOAN(Permission.Default.FALSE), + ECO_LOAN(PermissionDefault.FALSE), + ENDERCHEST_OTHERS, EXP_GIVE, EXP_GIVE_OTHERS, EXP_SET, @@ -31,8 +34,8 @@ public enum Permissions implements IPermission FEED_OTHERS, FLY_OTHERS, GAMEMODE_OTHERS, - GEOIP_HIDE(Permission.Default.FALSE), - GEOIP_SHOW(Permission.Default.TRUE), + GEOIP_HIDE(PermissionDefault.FALSE), + GEOIP_SHOW(PermissionDefault.TRUE), GETPOS_OTHERS, GOD_OTHERS, HEAL_COOLDOWN_BYPASS, @@ -58,7 +61,7 @@ public enum Permissions implements IPermission NICK_COLOR, NICK_OTHERS, NOGOD_OVERRIDE, - OVERSIZEDSTACKS(Permission.Default.FALSE), + OVERSIZEDSTACKS(PermissionDefault.FALSE), POWERTOOL_APPEND, PTIME_OTHERS, PVPDELAY_EXEMPT, @@ -70,6 +73,8 @@ public enum Permissions implements IPermission SETHOME_OTHERS, SLEEPINGIGNORED, SPAWN_OTHERS, + SPEED_BYPASS, + SPEED_OTHERS, SUDO_EXEMPT, TELEPORT_COOLDOWN_BYPASS, TELEPORT_HIDDEN, @@ -84,22 +89,22 @@ public enum Permissions implements IPermission TPAHERE, TPOHERE, UNLIMITED_OTHERS, - WARP_LIST(Permission.Default.TRUE), + WARP_LIST(PermissionDefault.TRUE), WARP_HIDDEN, WARP_OTHERS, VANISH_SEE_OTHERS; private static final String base = "essentials."; private final String permission; - private final Permission.Default defaultPerm; + private final PermissionDefault defaultPerm; private transient Permission bukkitPerm = null; private Permissions() { - this(Permission.Default.OP); + this(PermissionDefault.OP); } - private Permissions(final Permission.Default defaultPerm) - { + private Permissions(final PermissionDefault defaultPerm) + { permission = base + toString().toLowerCase(Locale.ENGLISH).replace('_', '.'); this.defaultPerm = defaultPerm; } @@ -121,13 +126,13 @@ public enum Permissions implements IPermission } else { - return Permission.create(getPermissionName(), getPermissionDefault()); + return PermissionFactory.registerPermission(getPermissionName(), getPermissionDefault()); } } @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { return this.defaultPerm; } diff --git a/Essentials/src/net/ess3/permissions/UnlimitedItemPermissions.java b/Essentials/src/net/ess3/permissions/UnlimitedItemPermissions.java index 4387e6ba2..b43fd85cb 100644 --- a/Essentials/src/net/ess3/permissions/UnlimitedItemPermissions.java +++ b/Essentials/src/net/ess3/permissions/UnlimitedItemPermissions.java @@ -1,14 +1,13 @@ package net.ess3.permissions; -import net.ess3.api.IPermission; -import net.ess3.api.server.Material; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Locale; -import java.util.Map; +import net.ess3.api.IPermission; +import org.bukkit.Material; public class UnlimitedItemPermissions { - private static Map<Material, IPermission> permissions = new HashMap<Material, IPermission>(); + private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); public static IPermission getPermission(final Material mat) { diff --git a/Essentials/src/net/ess3/permissions/WarpPermissions.java b/Essentials/src/net/ess3/permissions/WarpPermissions.java index fe977ccce..c87d78437 100644 --- a/Essentials/src/net/ess3/permissions/WarpPermissions.java +++ b/Essentials/src/net/ess3/permissions/WarpPermissions.java @@ -1,10 +1,10 @@ package net.ess3.permissions; -import net.ess3.api.IPermission; -import net.ess3.api.server.Permission; import java.util.HashMap; import java.util.Locale; import java.util.Map; +import net.ess3.api.IPermission; +import org.bukkit.permissions.PermissionDefault; public class WarpPermissions @@ -19,9 +19,9 @@ public class WarpPermissions perm = new BasePermission("essentials.warp.", warpName.toLowerCase(Locale.ENGLISH)) { @Override - public Permission.Default getPermissionDefault() + public PermissionDefault getPermissionDefault() { - return Permission.Default.TRUE; + return PermissionDefault.TRUE; } }; permissions.put(warpName, perm); diff --git a/Essentials/src/net/ess3/ranks/GMGroups.java b/Essentials/src/net/ess3/ranks/GMGroups.java index ef5ff0a60..3c38eaff2 100644 --- a/Essentials/src/net/ess3/ranks/GMGroups.java +++ b/Essentials/src/net/ess3/ranks/GMGroups.java @@ -6,7 +6,7 @@ import net.ess3.api.IEssentials; import net.ess3.api.IRanks; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.bukkit.BukkitPlayer; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler; @@ -25,7 +25,7 @@ public class GMGroups implements IRanks { @Override public double getHealCooldown(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return 0; @@ -36,7 +36,7 @@ public class GMGroups implements IRanks { @Override public double getTeleportCooldown(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return 0; @@ -47,7 +47,7 @@ public class GMGroups implements IRanks { @Override public double getTeleportDelay(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return 0; @@ -58,7 +58,7 @@ public class GMGroups implements IRanks { @Override public String getPrefix(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return null; @@ -69,7 +69,7 @@ public class GMGroups implements IRanks { @Override public String getSuffix(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return null; @@ -80,7 +80,7 @@ public class GMGroups implements IRanks { @Override public int getHomeLimit(IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return 0; @@ -92,7 +92,7 @@ public class GMGroups implements IRanks { public MessageFormat getChatFormat(final IUser player) { String format = getRawChatFormat(player); - format = Util.replaceFormat(format); + format = FormatUtil.replaceFormat(format); format = format.replace("{DISPLAYNAME}", "%1$s"); format = format.replace("{GROUP}", "{0}"); format = format.replace("{MESSAGE}", "%2$s"); @@ -105,7 +105,7 @@ public class GMGroups implements IRanks { private String getRawChatFormat(final IUser player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler != null) { String chatformat = handler.getPermissionString(player.getName(), "chatformat"); @@ -123,7 +123,7 @@ public class GMGroups implements IRanks { @Override public String getMainGroup(IUser player) { - final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer()); if (handler == null) { return null; @@ -134,7 +134,7 @@ public class GMGroups implements IRanks { @Override public boolean inGroup(IUser player, String groupname) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer()); + AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getName()); if (handler == null) { return false; diff --git a/Essentials/src/net/ess3/ranks/RanksStorage.java b/Essentials/src/net/ess3/ranks/RanksStorage.java index c99deb535..d76077b6c 100644 --- a/Essentials/src/net/ess3/ranks/RanksStorage.java +++ b/Essentials/src/net/ess3/ranks/RanksStorage.java @@ -14,6 +14,7 @@ import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.permissions.GroupsPermissions; import net.ess3.storage.AsyncStorageObjectHolder; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; @@ -155,7 +156,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa public MessageFormat getChatFormat(final IUser player) { String format = getRawChatFormat(player); - format = Util.replaceFormat(format); + format = FormatUtil.replaceFormat(format); format = format.replace("{DISPLAYNAME}", "%1$s"); format = format.replace("{GROUP}", "{0}"); format = format.replace("{MESSAGE}", "%2$s"); diff --git a/Essentials/src/net/ess3/ranks/VaultGroups.java b/Essentials/src/net/ess3/ranks/VaultGroups.java index ab0a32755..d6cc35d10 100644 --- a/Essentials/src/net/ess3/ranks/VaultGroups.java +++ b/Essentials/src/net/ess3/ranks/VaultGroups.java @@ -6,9 +6,10 @@ import net.ess3.api.IEssentials; import net.ess3.api.IRanks; import net.ess3.api.ISettings; import net.ess3.api.IUser; -import net.ess3.bukkit.BukkitPlayer; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; import net.milkbowl.vault.chat.Chat; +import org.bukkit.plugin.RegisteredServiceProvider; public class VaultGroups implements IRanks @@ -19,54 +20,59 @@ public class VaultGroups implements IRanks { this.ess = ess; } + + private <T> T getServiceProvider(Class<T> clazz) { + RegisteredServiceProvider<T> provider = ess.getServer().getServicesManager().getRegistration(clazz); + return provider.getProvider(); + } @Override public double getHealCooldown(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "healcooldown", 0); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoDouble(player.getPlayer(), "healcooldown", 0); } @Override public double getTeleportCooldown(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "teleportcooldown", 0); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoDouble(player.getPlayer(), "teleportcooldown", 0); } @Override public double getTeleportDelay(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "teleportdelay", 0); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoDouble(player.getPlayer(), "teleportdelay", 0); } @Override public String getPrefix(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerPrefix(((BukkitPlayer)player.getBase()).getPlayer()); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerPrefix(player.getPlayer()); } @Override public String getSuffix(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerSuffix(((BukkitPlayer)player.getBase()).getPlayer()); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerSuffix(player.getPlayer()); } @Override public int getHomeLimit(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPlayerInfoInteger(((BukkitPlayer)player.getBase()).getPlayer(), "homes", 0); + Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoInteger(player.getPlayer(), "homes", 0); } @Override public MessageFormat getChatFormat(final IUser player) { String format = getRawChatFormat(player); - format = Util.replaceFormat(format); + format = FormatUtil.replaceFormat(format); format = format.replace("{DISPLAYNAME}", "%1$s"); format = format.replace("{GROUP}", "{0}"); format = format.replace("{MESSAGE}", "%2$s"); @@ -79,8 +85,8 @@ public class VaultGroups implements IRanks private String getRawChatFormat(final IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - String chatformat = chat.getPlayerInfoString(((BukkitPlayer)player.getBase()).getPlayer(), "chatformat", ""); + Chat chat = getServiceProvider(Chat.class); + String chatformat = chat.getPlayerInfoString(player.getPlayer(), "chatformat", ""); if (chatformat != null && !chatformat.isEmpty()) { return chatformat; @@ -95,15 +101,15 @@ public class VaultGroups implements IRanks @Override public String getMainGroup(IUser player) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - return chat.getPrimaryGroup(((BukkitPlayer)player.getBase()).getPlayer()); + Chat chat = getServiceProvider(Chat.class); + return chat.getPrimaryGroup(player.getPlayer().getPlayer()); } @Override public boolean inGroup(IUser player, String groupname) { - Chat chat = ess.getServer().getServiceProvider(Chat.class); - for (String group : chat.getPlayerGroups(((BukkitPlayer)player.getBase()).getPlayer())) + Chat chat = getServiceProvider(Chat.class); + for (String group : chat.getPlayerGroups(player.getPlayer())) { if (group.equalsIgnoreCase(groupname)) { diff --git a/Essentials/src/net/ess3/settings/Commands.java b/Essentials/src/net/ess3/settings/Commands.java index c67ca2da3..5aeca1590 100644 --- a/Essentials/src/net/ess3/settings/Commands.java +++ b/Essentials/src/net/ess3/settings/Commands.java @@ -23,6 +23,7 @@ public class Commands implements StorageObject private net.ess3.settings.commands.List list = new net.ess3.settings.commands.List(); private Spawnmob spawnmob = new Spawnmob(); private Tpa tpa = new Tpa(); + private Speed speed = new Speed(); @ListType @Comment( { diff --git a/Essentials/src/net/ess3/settings/General.java b/Essentials/src/net/ess3/settings/General.java index caf8a15c2..606a847e9 100644 --- a/Essentials/src/net/ess3/settings/General.java +++ b/Essentials/src/net/ess3/settings/General.java @@ -1,29 +1,15 @@ package net.ess3.settings; -import java.util.HashMap; -import java.util.Map; import lombok.Data; import lombok.EqualsAndHashCode; import net.ess3.storage.Comment; import net.ess3.storage.StorageObject; -import org.bukkit.entity.EntityType; @Data @EqualsAndHashCode(callSuper = false) public class General implements StorageObject { - public General() - { - //Populate creature spawn values - for (EntityType t : EntityType.values()) - { - if (t.isAlive()) - { - creatureSpawn.put(t, false); - } - } - } @Comment("Backup runs a command while saving is disabled") private Backup backup = new Backup(); @Comment("You can disable the death messages of minecraft.") @@ -92,21 +78,4 @@ public class General implements StorageObject return loginAttackDelay * 1000; } public boolean metricsEnabled = true; -//todo remove this - @Comment("Prevent creatures spawning") - private Map<EntityType, Boolean> creatureSpawn = new HashMap<EntityType, Boolean>(); - - public boolean getPreventSpawn(String creatureName) - { - return getPreventSpawn(EntityType.fromName(creatureName)); - } - - public boolean getPreventSpawn(EntityType creature) - { - if (creatureSpawn == null) - { - return false; - } - return creatureSpawn.get(creature); - } } diff --git a/Essentials/src/net/ess3/settings/Kit.java b/Essentials/src/net/ess3/settings/Kit.java index 19b4b0275..822209eda 100644 --- a/Essentials/src/net/ess3/settings/Kit.java +++ b/Essentials/src/net/ess3/settings/Kit.java @@ -4,9 +4,9 @@ import java.util.ArrayList; import java.util.List; import lombok.Data; import lombok.EqualsAndHashCode; -import net.ess3.api.server.ItemStack; import net.ess3.storage.ListType; import net.ess3.storage.StorageObject; +import org.bukkit.inventory.ItemStack; @Data diff --git a/Essentials/src/net/ess3/settings/SpawnsHolder.java b/Essentials/src/net/ess3/settings/SpawnsHolder.java index bca2e8815..c07191752 100644 --- a/Essentials/src/net/ess3/settings/SpawnsHolder.java +++ b/Essentials/src/net/ess3/settings/SpawnsHolder.java @@ -11,7 +11,7 @@ import net.ess3.api.IEssentialsModule; import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.storage.AsyncStorageObjectHolder; -import net.ess3.storage.Location.WorldNotLoadedException; +import net.ess3.storage.StoredLocation.WorldNotLoadedException; import net.ess3.utils.textreader.IText; import net.ess3.utils.textreader.KeywordReplacer; import net.ess3.utils.textreader.SimpleTextInput; @@ -180,13 +180,15 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE acquireReadLock(); try { - return getData().getNewPlayerAnnouncement().replace('&', '§').replace("§§", "&").replace("{PLAYER}", user.getDisplayName()).replace("{DISPLAYNAME}", user.getDisplayName()).replace("{GROUP}", ess.getRanks().getMainGroup(user)).replace("{USERNAME}", user.getName()).replace("{ADDRESS}", user.getAddress().toString()); + return getData().getNewPlayerAnnouncement().replace('&', '\u00a7').replace("\u00a7\u00a7", "&").replace("{PLAYER}", user.getPlayer().getDisplayName()).replace("{DISPLAYNAME}", user.getPlayer().getDisplayName()).replace("{GROUP}", ess.getRanks().getMainGroup(user)).replace("{USERNAME}", user.getName()).replace("{ADDRESS}", user.getPlayer().getAddress().toString()); } finally { unlock(); } } + + //TODO: Why is this stuff here in the settings folder? private void registerListeners() { @@ -198,7 +200,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE { ((SpawnPlayerListener)ll).onPlayerRespawn((PlayerRespawnEvent)event); } - }, ess); + }, ess.getPlugin()); ess.getServer().getPluginManager().registerEvent(PlayerJoinEvent.class, playerListener, getRespawnPriority(), new EventExecutor() { @Override @@ -206,7 +208,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE { ((SpawnPlayerListener)ll).onPlayerJoin((PlayerJoinEvent)event); } - }, ess); + }, ess.getPlugin()); } @@ -247,7 +249,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE } else { - home = user.getHome(user.getLocation()); + home = user.getHome(user.getPlayer().getLocation()); } if (home != null) { @@ -297,7 +299,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE @Override public void run() { - if (user.getBase() instanceof OfflinePlayer) + if (user.getPlayer() instanceof OfflinePlayer) { return; } diff --git a/Essentials/src/net/ess3/settings/Warp.java b/Essentials/src/net/ess3/settings/Warp.java index 963a5420a..99ce3cce7 100644 --- a/Essentials/src/net/ess3/settings/Warp.java +++ b/Essentials/src/net/ess3/settings/Warp.java @@ -2,13 +2,13 @@ package net.ess3.settings; import lombok.Data; import lombok.EqualsAndHashCode; -import net.ess3.storage.Location; import net.ess3.storage.StorageObject; +import net.ess3.storage.StoredLocation; @Data @EqualsAndHashCode(callSuper = false) public class Warp implements StorageObject { private String name; - private Location location; + private StoredLocation location; } diff --git a/Essentials/src/net/ess3/settings/WorldOptions.java b/Essentials/src/net/ess3/settings/WorldOptions.java index cc75a0e63..e6620e614 100644 --- a/Essentials/src/net/ess3/settings/WorldOptions.java +++ b/Essentials/src/net/ess3/settings/WorldOptions.java @@ -1,14 +1,47 @@ package net.ess3.settings; -import net.ess3.storage.Comment; -import net.ess3.storage.StorageObject; +import java.util.HashMap; +import java.util.Map; import lombok.Data; import lombok.EqualsAndHashCode; +import net.ess3.storage.Comment; +import net.ess3.storage.StorageObject; +import org.bukkit.entity.EntityType; @Data @EqualsAndHashCode(callSuper = false) public class WorldOptions implements StorageObject { + + public WorldOptions() + { + //Populate creature spawn values + for (EntityType t : EntityType.values()) + { + if (t.isAlive()) + { + creatureSpawn.put(t, false); + } + } + } + @Comment("Disables godmode for all players if they teleport to this world.") private boolean godmode = true; + + @Comment("Prevent creatures spawning") + private Map<EntityType, Boolean> creatureSpawn = new HashMap<EntityType, Boolean>(); + + public boolean getPreventSpawn(String creatureName) + { + return getPreventSpawn(EntityType.fromName(creatureName)); + } + + public boolean getPreventSpawn(EntityType creature) + { + if (creatureSpawn == null) + { + return false; + } + return creatureSpawn.get(creature); + } } diff --git a/Essentials/src/net/ess3/settings/antibuild/Alert.java b/Essentials/src/net/ess3/settings/antibuild/Alert.java new file mode 100644 index 000000000..65a222575 --- /dev/null +++ b/Essentials/src/net/ess3/settings/antibuild/Alert.java @@ -0,0 +1,32 @@ +package net.ess3.settings.antibuild; + +import java.util.HashSet; +import java.util.Set; +import lombok.Data; +import lombok.EqualsAndHashCode; +import net.ess3.storage.Comment; +import net.ess3.storage.ListType; +import net.ess3.storage.StorageObject; +import org.bukkit.Material; + + +@Data +@EqualsAndHashCode(callSuper = false) +public class Alert implements StorageObject +{ + @Comment("For which block types would you like to be alerted?") + @ListType(Material.class) + private Set<Material> alertOnPlacement = new HashSet<Material>(); + @ListType(Material.class) + private Set<Material> alertOnUse = new HashSet<Material>(); + @ListType(Material.class) + private Set<Material> alertOnBreak = new HashSet<Material>(); + + public Alert() + { + //todo full default list + alertOnPlacement.add(Material.GLASS); + alertOnUse.add(Material.LAVA); + alertOnBreak.add(Material.OBSIDIAN); + } +}
\ No newline at end of file diff --git a/Essentials/src/net/ess3/settings/antibuild/AntiBuild.java b/Essentials/src/net/ess3/settings/antibuild/AntiBuild.java new file mode 100644 index 000000000..b0eb48636 --- /dev/null +++ b/Essentials/src/net/ess3/settings/antibuild/AntiBuild.java @@ -0,0 +1,39 @@ +package net.ess3.settings.antibuild; + +import java.util.HashSet; +import java.util.Set; +import lombok.Data; +import lombok.EqualsAndHashCode; +import net.ess3.storage.*; +import org.bukkit.Material; + + +@Data +@EqualsAndHashCode(callSuper = false) +public class AntiBuild implements StorageObject +{ + @Comment( + { + "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" + }) + private boolean build = true; + @Comment( + { + "Should people with build: false in permissions be allowed to use items", + "Set true to disable using for those people", + "Setting to false means EssentialsAntiBuild will never prevent you from using" + }) + private boolean use = true; + + @Comment({"Should we tell people they are not allowed to build"}) + private boolean warnOnBuildDisallow = true; + + + Alert alert = new Alert(); + + BlackList blacklist = new BlackList(); + + +} diff --git a/Essentials/src/net/ess3/settings/antibuild/BlackList.java b/Essentials/src/net/ess3/settings/antibuild/BlackList.java new file mode 100644 index 000000000..c14d39664 --- /dev/null +++ b/Essentials/src/net/ess3/settings/antibuild/BlackList.java @@ -0,0 +1,38 @@ +package net.ess3.settings.antibuild; + +import java.util.HashSet; +import java.util.Set; +import lombok.Data; +import lombok.EqualsAndHashCode; +import net.ess3.storage.Comment; +import net.ess3.storage.ListType; +import net.ess3.storage.StorageObject; +import org.bukkit.Material; + + +@Data +@EqualsAndHashCode(callSuper = false) +public class BlackList implements StorageObject +{ + @Comment({"Which blocks should people be prevented from placing"}) + @ListType(Material.class) + private Set<Material> placement = new HashSet<Material>(); + + @Comment({"Which items should people be prevented from using"}) + @ListType(Material.class) + private Set<Material> usage = new HashSet<Material>(); + + @Comment({"Which blocks should people be prevented from breaking"}) + @ListType(Material.class) + private Set<Material> breaking = new HashSet<Material>(); + + @Comment({"Which blocks should not be pushed by pistons"}) + @ListType(Material.class) + private Set<Material> piston = new HashSet<Material>(); + + + public BlackList() + { + //todo defaults + } +} diff --git a/Essentials/src/net/ess3/settings/commands/Speed.java b/Essentials/src/net/ess3/settings/commands/Speed.java new file mode 100644 index 000000000..61872fa5e --- /dev/null +++ b/Essentials/src/net/ess3/settings/commands/Speed.java @@ -0,0 +1,17 @@ +package net.ess3.settings.commands; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import net.ess3.storage.Comment; +import net.ess3.storage.StorageObject; + +@Data +@EqualsAndHashCode(callSuper = false) +public class Speed implements StorageObject +{ + @Comment({"#Set the max fly speed, values range from 0.1 to 1.0"}) + private float maxFlySpeed = 1.0f; + + /*@Comment({"#Set the max walk speed, values range from 0.1 to 1.0"}) + private float maxWalkSpeed = 0.8f;*/ +} diff --git a/Essentials/src/net/ess3/settings/geoip/Database.java b/Essentials/src/net/ess3/settings/geoip/Database.java index 3573a9e16..5791853a3 100644 --- a/Essentials/src/net/ess3/settings/geoip/Database.java +++ b/Essentials/src/net/ess3/settings/geoip/Database.java @@ -1,8 +1,8 @@ package net.ess3.settings.geoip; -import net.ess3.storage.StorageObject; import lombok.Data; import lombok.EqualsAndHashCode; +import net.ess3.storage.StorageObject; @Data diff --git a/Essentials/src/net/ess3/settings/protect/Prevent.java b/Essentials/src/net/ess3/settings/protect/Prevent.java index 7b50be568..6d48ad719 100644 --- a/Essentials/src/net/ess3/settings/protect/Prevent.java +++ b/Essentials/src/net/ess3/settings/protect/Prevent.java @@ -1,11 +1,10 @@ package net.ess3.settings.protect; -import net.ess3.storage.*; -import java.util.HashMap; import java.util.HashSet; import java.util.Set; import lombok.Data; import lombok.EqualsAndHashCode; +import net.ess3.storage.*; import org.bukkit.Material; @@ -13,9 +12,7 @@ import org.bukkit.Material; @EqualsAndHashCode(callSuper = false) public class Prevent implements StorageObject { - @Comment("Which blocks should a piston not be able to push?") - @ListType(Material.class) - private Set<Material> pistonPush = new HashSet<Material>(); + private boolean lavaFlow = false; private boolean waterFlow = false; // private boolean waterbucketFlow = false; TODO: Test if this still works @@ -37,9 +34,4 @@ public class Prevent implements StorageObject "permission essentials.protect.entitytarget.bypass disables this" }) private boolean entitytarget = false; - - public Prevent() - { - pistonPush.add(Material.GLASS); - } }
\ No newline at end of file diff --git a/Essentials/src/net/ess3/settings/protect/Protect.java b/Essentials/src/net/ess3/settings/protect/Protect.java index 3447979be..5b1a9ae87 100644 --- a/Essentials/src/net/ess3/settings/protect/Protect.java +++ b/Essentials/src/net/ess3/settings/protect/Protect.java @@ -1,32 +1,15 @@ package net.ess3.settings.protect; -import java.util.HashSet; -import java.util.Set; import lombok.Data; import lombok.EqualsAndHashCode; import net.ess3.storage.Comment; -import net.ess3.storage.ListType; import net.ess3.storage.StorageObject; -import org.bukkit.Material; @Data @EqualsAndHashCode(callSuper = false) public class Protect implements StorageObject -{ - @Comment("Either mysql or sqlite") - private String dbtype = "sqlite"; - @Comment("If you specified MySQL above, you MUST enter the appropriate details here.") - private String dbuser = "root"; - private String dbpassword = ""; - private String dburl = "jdbc:mysql://localhost:3306/minecraft"; - @Comment("For which block types would you like to be alerted?") - @ListType(Material.class) - private Set<Material> alertOnPlacement = new HashSet<Material>(); - @ListType(Material.class) - private Set<Material> alertOnUse = new HashSet<Material>(); - @ListType(Material.class) - private Set<Material> alertOnBreak = new HashSet<Material>(); +{ @Comment("General physics/behavior modifications") private Prevent prevent = new Prevent(); @Comment( @@ -35,18 +18,10 @@ public class Protect implements StorageObject "Set prevent.creeper-explosion to true, if you want to disable creeper explosions." }) private int creeperMaxHeight = -1; - @Comment("Should we tell people they are not allowed to build") - private boolean warnOnBuildDisallow = true; + @Comment("Disable weather options") private boolean disableStorm = false; private boolean disableThunder = false; private boolean disableLighting = false; - private SignsAndRails signsAndRails = new SignsAndRails(); - public Protect() - { - alertOnPlacement.add(Material.LAVA); - alertOnUse.add(Material.LAVA_BUCKET); - alertOnBreak.add(Material.GLASS); - } } diff --git a/Essentials/src/net/ess3/settings/protect/SignsAndRails.java b/Essentials/src/net/ess3/settings/protect/SignsAndRails.java deleted file mode 100644 index 148da7bc9..000000000 --- a/Essentials/src/net/ess3/settings/protect/SignsAndRails.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.ess3.settings.protect; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import net.ess3.storage.Comment; -import net.ess3.storage.StorageObject; - - -@Data -@EqualsAndHashCode(callSuper = false) -public class SignsAndRails implements StorageObject -{ - @Comment("Protect all signs") - private boolean protectSigns = true; - @Comment("Prevent users from destroying rails") - private boolean protectRails = true; - @Comment( - { - "Blocks below rails/signs are also protected if the respective rail/sign is protected.", - "This makes it more difficult to circumvent protection, and should be enabled.", - "This only has an effect if rails or signs is also enabled." - }) - private boolean blockBelow = true; - @Comment("Prevent placing blocks above protected rails, this is to stop a potential griefing") - private boolean preventBlockAboveRails = false; -} diff --git a/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java b/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java index 9dc010640..bb39742c8 100644 --- a/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java +++ b/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java @@ -6,7 +6,6 @@ import java.io.FileReader; import java.io.IOException; import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Level; -import net.ess3.Essentials; import net.ess3.api.IEssentials; import org.bukkit.Bukkit; diff --git a/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileWriter.java b/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileWriter.java index f728ff7a0..0be1feac3 100644 --- a/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileWriter.java +++ b/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileWriter.java @@ -6,7 +6,6 @@ import java.io.IOException; import java.io.PrintWriter; import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Level; -import net.ess3.Essentials; import net.ess3.api.IEssentials; import org.bukkit.Bukkit; diff --git a/Essentials/src/net/ess3/storage/BukkitConstructor.java b/Essentials/src/net/ess3/storage/BukkitConstructor.java index 23a88325f..1a5159456 100644 --- a/Essentials/src/net/ess3/storage/BukkitConstructor.java +++ b/Essentials/src/net/ess3/storage/BukkitConstructor.java @@ -6,10 +6,10 @@ import java.util.Locale; import java.util.Map; import java.util.regex.Pattern; import net.ess3.Essentials; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Material; -import net.ess3.api.server.Plugin; +import net.ess3.api.IPlugin; +import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; import org.yaml.snakeyaml.TypeDescription; import org.yaml.snakeyaml.constructor.Constructor; @@ -21,9 +21,9 @@ import org.yaml.snakeyaml.nodes.*; public class BukkitConstructor extends Constructor { private final transient Pattern NUMPATTERN = Pattern.compile("\\d+"); - private final transient Plugin plugin; + private final transient IPlugin plugin; - public BukkitConstructor(final Class clazz, final Plugin plugin) + public BukkitConstructor(final Class clazz, final IPlugin plugin) { super(clazz); this.plugin = plugin; @@ -44,11 +44,11 @@ public class BukkitConstructor extends Constructor if (NUMPATTERN.matcher(val).matches()) { final int typeId = Integer.parseInt(val); - mat = Material.get(typeId); + mat = Material.getMaterial(typeId); } else { - mat = Material.match(val); + mat = Material.matchMaterial(val); } return mat; } @@ -68,11 +68,11 @@ public class BukkitConstructor extends Constructor if (NUMPATTERN.matcher(split[0]).matches()) { final int typeId = Integer.parseInt(split[0]); - mat = Material.get(typeId); + mat = Material.getMaterial(typeId); } else { - mat = Material.match(split[0]); + mat = Material.matchMaterial(split[0]); } if (mat == null) { @@ -106,11 +106,11 @@ public class BukkitConstructor extends Constructor if (NUMPATTERN.matcher(split2[0]).matches()) { final int typeId = Integer.parseInt(split2[0]); - mat = Material.get(typeId); + mat = Material.getMaterial(typeId); } else { - mat = Material.match(split2[0]); + mat = Material.matchMaterial(split2[0]); } if (mat == null) { @@ -126,7 +126,7 @@ public class BukkitConstructor extends Constructor { size = Integer.parseInt(split1[1]); } - final ItemStack stack = ItemStack.create(mat, size, data); + final ItemStack stack = new ItemStack(mat, size, data); if (split1.length > 2) { for (int i = 2; i < split1.length; i++) diff --git a/Essentials/src/net/ess3/storage/Location.java b/Essentials/src/net/ess3/storage/Location.java deleted file mode 100644 index 06210504b..000000000 --- a/Essentials/src/net/ess3/storage/Location.java +++ /dev/null @@ -1,115 +0,0 @@ -package net.ess3.storage; - -import java.lang.ref.WeakReference; -import java.util.UUID; -import org.bukkit.Bukkit; -import org.bukkit.World; - - -public class Location -{ - private WeakReference<org.bukkit.Location> location; - private final String worldname; - private UUID worldUID = null; - private final double x; - private final double y; - private final double z; - private final float yaw; - private final float pitch; - - public Location(org.bukkit.Location loc) - { - location = new WeakReference<org.bukkit.Location>(loc); - worldname = loc.getWorld().getName(); - worldUID = loc.getWorld().getUID(); - x = loc.getX(); - y = loc.getY(); - z = loc.getZ(); - yaw = loc.getYaw(); - pitch = loc.getPitch(); - } - - public Location(String worldname, double x, double y, double z, float yaw, float pitch) - { - this.worldname = worldname; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - } - - public Location(String worldname, double x, double y, double z) - { - this.worldname = worldname; - this.x = x; - this.y = y; - this.z = z; - this.yaw = 0f; - this.pitch = 0f; - } - - public org.bukkit.Location getBukkitLocation() throws WorldNotLoadedException - { - - org.bukkit.Location loc = location == null ? null : location.get(); - if (loc == null) - { - World world = null; - if (worldUID != null) - { - world = Bukkit.getWorld(worldUID); - } - if (world == null) - { - world = Bukkit.getWorld(worldname); - } - if (world == null) - { - throw new WorldNotLoadedException(worldname); - } - loc = new org.bukkit.Location(world, getX(), getY(), getZ(), getYaw(), getPitch()); - location = new WeakReference<org.bukkit.Location>(loc); - } - return loc; - } - - public String getWorldName() - { - return worldname; - } - - public double getX() - { - return x; - } - - public double getY() - { - return y; - } - - public double getZ() - { - return z; - } - - public float getYaw() - { - return yaw; - } - - public float getPitch() - { - return pitch; - } - - - public static class WorldNotLoadedException extends Exception - { - public WorldNotLoadedException(String worldname) - { - super("World " + worldname + " is not loaded."); - } - } -} diff --git a/Essentials/src/net/ess3/storage/StorageObjectMap.java b/Essentials/src/net/ess3/storage/StorageObjectMap.java index 1e88a8fd3..bec082e31 100644 --- a/Essentials/src/net/ess3/storage/StorageObjectMap.java +++ b/Essentials/src/net/ess3/storage/StorageObjectMap.java @@ -80,7 +80,7 @@ public abstract class StorageObjectMap<I> extends CacheLoader<String, I> impleme { try { - return (I)cache.get(name.toLowerCase(Locale.ENGLISH)); + return (I)cache.get(name); } catch (ExecutionException ex) { diff --git a/Essentials/src/net/ess3/storage/StoredLocation.java b/Essentials/src/net/ess3/storage/StoredLocation.java index 974204bf6..5e0394c0e 100644 --- a/Essentials/src/net/ess3/storage/StoredLocation.java +++ b/Essentials/src/net/ess3/storage/StoredLocation.java @@ -1,8 +1,8 @@ package net.ess3.storage; import java.lang.ref.WeakReference; -import net.ess3.api.server.Location; -import net.ess3.api.server.World; +import org.bukkit.Bukkit; +import org.bukkit.Location; public class StoredLocation @@ -52,7 +52,7 @@ public class StoredLocation Location loc = location == null ? null : location.get(); if (loc == null) { - loc = Location.create(worldname, getX(), getY(), getZ(), getYaw(), getPitch()); + loc = new Location(Bukkit.getWorld(worldname), getX(), getY(), getZ(), getYaw(), getPitch()); location = new WeakReference<Location>(loc); } return loc; diff --git a/Essentials/src/net/ess3/storage/YamlStorageReader.java b/Essentials/src/net/ess3/storage/YamlStorageReader.java index 603765e69..03e40fe1e 100644 --- a/Essentials/src/net/ess3/storage/YamlStorageReader.java +++ b/Essentials/src/net/ess3/storage/YamlStorageReader.java @@ -1,10 +1,10 @@ package net.ess3.storage; -import net.ess3.api.server.Plugin; import java.io.Reader; import java.lang.reflect.Field; import java.util.*; import java.util.concurrent.locks.ReentrantLock; +import net.ess3.api.IPlugin; import org.yaml.snakeyaml.TypeDescription; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; @@ -15,9 +15,9 @@ public class YamlStorageReader implements IStorageReader private transient static final Map<Class, Yaml> PREPARED_YAMLS = Collections.synchronizedMap(new HashMap<Class, Yaml>()); private transient static final Map<Class, ReentrantLock> LOCKS = new HashMap<Class, ReentrantLock>(); private transient final Reader reader; - private transient final Plugin plugin; + private transient final IPlugin plugin; - public YamlStorageReader(final Reader reader, final Plugin plugin) + public YamlStorageReader(final Reader reader, final IPlugin plugin) { this.reader = reader; this.plugin = plugin; diff --git a/Essentials/src/net/ess3/user/PlayerNotFoundException.java b/Essentials/src/net/ess3/user/PlayerNotFoundException.java new file mode 100644 index 000000000..2c658aa0b --- /dev/null +++ b/Essentials/src/net/ess3/user/PlayerNotFoundException.java @@ -0,0 +1,11 @@ +package net.ess3.user; + +import static net.ess3.I18n._; + +public class PlayerNotFoundException extends Exception { + + public PlayerNotFoundException() + { + super(_("playerNotFound")); + } +} diff --git a/Essentials/src/net/ess3/user/TooManyMatchesException.java b/Essentials/src/net/ess3/user/TooManyMatchesException.java index d55e6b6c4..65fbdb78f 100644 --- a/Essentials/src/net/ess3/user/TooManyMatchesException.java +++ b/Essentials/src/net/ess3/user/TooManyMatchesException.java @@ -1,5 +1,46 @@ package net.ess3.user; -public class TooManyMatchesException extends Exception { +import java.util.Collections; +import java.util.Set; +import static net.ess3.I18n._; +import net.ess3.api.IUser; + +public class TooManyMatchesException extends Exception +{ + private final Set<IUser> matches; + + public TooManyMatchesException() + { + super(); + matches = Collections.emptySet(); + } + + public TooManyMatchesException(Set<IUser> users) + { + super(); + this.matches = users; + } + + @Override + public String getMessage() + { + if (!matches.isEmpty()) + { + StringBuilder builder = new StringBuilder(matches.size() * 16); + for (IUser iUser : matches) + { + if (builder.length() > 0) + { + builder.append(", "); + } + builder.append(iUser.getPlayer().getDisplayName()); + } + return _("tooManyMatchesWithList", builder.toString()); + } + else + { + return _("tooManyMatches"); + } + } } diff --git a/Essentials/src/net/ess3/user/User.java b/Essentials/src/net/ess3/user/User.java index b959e36bc..1928c3ca3 100644 --- a/Essentials/src/net/ess3/user/User.java +++ b/Essentials/src/net/ess3/user/User.java @@ -1,14 +1,6 @@ package net.ess3.user; -import net.ess3.Console; -import static net.ess3.I18n._; -import net.ess3.Teleport; -import net.ess3.api.*; -import net.ess3.api.server.*; -import net.ess3.economy.register.Method; -import net.ess3.permissions.Permissions; -import net.ess3.utils.DateUtil; -import net.ess3.utils.Util; +import java.lang.ref.WeakReference; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; @@ -17,6 +9,20 @@ import java.util.concurrent.atomic.AtomicBoolean; import lombok.Cleanup; import lombok.Getter; import lombok.Setter; +import net.ess3.Console; +import static net.ess3.I18n._; +import net.ess3.Teleport; +import net.ess3.api.*; +import net.ess3.craftbukkit.InventoryWorkaround; +import net.ess3.economy.register.Method; +import net.ess3.permissions.Permissions; +import net.ess3.utils.DateUtil; +import net.ess3.utils.FormatUtil; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; public class User extends UserBase implements IUser @@ -42,15 +48,48 @@ public class User extends UserBase implements IUser @Getter @Setter private boolean invSee = false; + @Getter + @Setter + private boolean enderSee = false; private transient Location afkPosition; private AtomicBoolean gotMailInfo = new AtomicBoolean(false); + private WeakReference<Player> playerCache; - public User(final Player base, final IEssentials ess) + public User(final OfflinePlayer base, final IEssentials ess) { super(base, ess); teleport = new Teleport(this, ess); } + @Override + public void setPlayerCache(final Player player) + { + playerCache = new WeakReference<Player>(player); + } + + private void destroyPlayerCache() + { + playerCache = null; + } + + @Override + public void close() + { + super.close(); + destroyPlayerCache(); + } + + @Override + public Player getPlayer() + { + Player player = playerCache == null ? null : playerCache.get(); + if (player == null) + { + player = super.getPlayer(); + } + return player; + } + public void example() { // Cleanup will call close at the end of the function @@ -77,12 +116,6 @@ public class User extends UserBase implements IUser } @Override - public void update(final Player base) - { - super.update(base); - } - - @Override public void checkCooldown(final UserData.TimestampType cooldownType, final double cooldown, final boolean set, final IPermission bypassPermission) throws CooldownException { final Calendar now = new GregorianCalendar(); @@ -121,10 +154,10 @@ public class User extends UserBase implements IUser try { setMoney(getMoney() + value); - sendMessage(_("addedToAccount", Util.displayCurrency(value, ess))); + sendMessage(_("addedToAccount", FormatUtil.displayCurrency(value, ess))); if (initiator != null) { - initiator.sendMessage(_("addedToOthersAccount", Util.displayCurrency(value, ess), this.getDisplayName())); + initiator.sendMessage(_("addedToOthersAccount", FormatUtil.displayCurrency(value, ess), this.getPlayer().getDisplayName())); } } finally @@ -144,8 +177,8 @@ public class User extends UserBase implements IUser { setMoney(getMoney() - value); reciever.setMoney(reciever.getMoney() + value); - sendMessage(_("moneySentTo", Util.displayCurrency(value, ess), reciever.getDisplayName())); - reciever.sendMessage(_("moneyRecievedFrom", Util.displayCurrency(value, ess), getDisplayName())); + sendMessage(_("moneySentTo", FormatUtil.displayCurrency(value, ess), reciever.getPlayer().getDisplayName())); + reciever.sendMessage(_("moneyRecievedFrom", FormatUtil.displayCurrency(value, ess), getPlayer().getDisplayName())); } else { @@ -167,21 +200,21 @@ public class User extends UserBase implements IUser return; } setMoney(getMoney() - value); - sendMessage(_("takenFromAccount", Util.displayCurrency(value, ess))); + sendMessage(_("takenFromAccount", FormatUtil.displayCurrency(value, ess))); if (initiator != null) { - initiator.sendMessage(_("takenFromOthersAccount", Util.displayCurrency(value, ess), this.getDisplayName())); + initiator.sendMessage(_("takenFromOthersAccount", FormatUtil.displayCurrency(value, ess), this.getPlayer().getDisplayName())); } } public void setHome() { - setHome("home", getLocation()); + setHome("home", getPlayer().getLocation()); } public void setHome(final String name) { - setHome(name, getLocation()); + setHome(name, getPlayer().getLocation()); } @Override @@ -190,13 +223,14 @@ public class User extends UserBase implements IUser acquireWriteLock(); try { - getData().setLastLocation(new net.ess3.storage.StoredLocation(getLocation())); + getData().setLastLocation(new net.ess3.storage.StoredLocation(getPlayer().getLocation())); } finally { unlock(); } } + public String getNick(boolean addprefixsuffix) { acquireReadLock(); @@ -228,7 +262,7 @@ public class User extends UserBase implements IUser { displayname = displayname.replace("{SUFFIX}", groups.getSuffix(this)); } - displayname = displayname.replace("{WORLDNAME}", this.getWorld().getName()); + displayname = displayname.replace("{WORLDNAME}", this.getPlayer().getWorld().getName()); displayname = displayname.replace('&', '\u00a7'); displayname = displayname.concat("\u00a7f"); @@ -244,7 +278,7 @@ public class User extends UserBase implements IUser public void setDisplayNick() { String name = getNick(true); - setDisplayName(name); + getPlayer().setDisplayName(name); if (name.length() > 16) { name = getNick(false); @@ -255,7 +289,7 @@ public class User extends UserBase implements IUser } try { - setPlayerListName(name); + getPlayer().setPlayerListName(name); } catch (IllegalArgumentException e) { @@ -264,12 +298,6 @@ public class User extends UserBase implements IUser } @Override - public String getDisplayName() - { - return super.getDisplayName() == null ? super.getName() : super.getDisplayName(); - } - - @Override public void updateDisplayName() { @Cleanup @@ -330,10 +358,10 @@ public class User extends UserBase implements IUser acquireWriteLock(); try { - this.setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : set); + this.getPlayer().setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : set); if (set && !getData().isAfk()) { - afkPosition = getLocation(); + afkPosition = getPlayer().getLocation(); } getData().setAfk(set); } @@ -347,7 +375,7 @@ public class User extends UserBase implements IUser public boolean toggleAfk() { final boolean now = super.toggleAfk(); - this.setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : now); + this.getPlayer().setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : now); return now; } @@ -441,7 +469,7 @@ public class User extends UserBase implements IUser getData().setAfk(false); if (broadcast && !hidden) { - ess.broadcastMessage(this, _("userIsNotAway", getDisplayName())); + ess.broadcastMessage(this, _("userIsNotAway", getPlayer().getDisplayName())); } } lastActivity = System.currentTimeMillis(); @@ -466,13 +494,12 @@ public class User extends UserBase implements IUser { final String kickReason = _("autoAfkKickReason", autoafkkick / 60.0); lastActivity = 0; - kickPlayer(kickReason); + getPlayer().kickPlayer(kickReason); - for (IPlayer player : ess.getServer().getOnlinePlayers()) + for (Player player : ess.getServer().getOnlinePlayers()) { - final IUser user = player.getUser(); - if (Permissions.KICK_NOTIFY.isAuthorized(user)) + if (Permissions.KICK_NOTIFY.isAuthorized(player)) { player.sendMessage(_("playerKicked", Console.NAME, getName(), kickReason)); } @@ -487,7 +514,7 @@ public class User extends UserBase implements IUser setAfk(true); if (!hidden) { - ess.broadcastMessage(this, _("userIsAway", getDisplayName())); + ess.broadcastMessage(this, _("userIsAway", getPlayer().getDisplayName())); } } } @@ -513,7 +540,7 @@ public class User extends UserBase implements IUser final ISettings settings = ess.getSettings(); settings.acquireReadLock(); return (getData().isGodmode() - && !settings.getData().getWorldOptions(getLocation().getWorld().getName()).isGodmode()) + && !settings.getData().getWorldOptions(getPlayer().getLocation().getWorld().getName()).isGodmode()) || (getData().isAfk() && settings.getData().getCommands().getAfk().isFreezeAFKPlayers()); } finally @@ -521,40 +548,40 @@ public class User extends UserBase implements IUser unlock(); } } - + @Override public void updateCompass() { try { - Location loc = getHome(getLocation()); + Location loc = getHome(getPlayer().getLocation()); if (loc == null) { loc = getBedSpawnLocation(); } if (loc != null) { - setCompassTarget(loc); + getPlayer().setCompassTarget(loc); } } catch (Exception ex) { // Ignore } - } + } @Override public int compareTo(final IUser t) { - return Util.stripColor(this.getDisplayName()).compareTo(Util.stripColor(t.getDisplayName())); + return FormatUtil.stripColor(this.getPlayer().getDisplayName()).compareTo(FormatUtil.stripColor(t.getPlayer().getDisplayName())); } @Override public void requestTeleport(IUser player, boolean here) { - teleportRequestTime = System.currentTimeMillis(); - teleportRequester = player; - tpRequestHere = here; + teleportRequestTime = System.currentTimeMillis(); + teleportRequester = player; + tpRequestHere = here; } @Override @@ -589,7 +616,7 @@ public class User extends UserBase implements IUser { sendMessage(_("InvFull")); } - updateInventory(); + getPlayer().updateInventory(); } @Override @@ -607,14 +634,14 @@ public class User extends UserBase implements IUser { sendMessage(_("InvFull")); } - updateInventory(); + getPlayer().updateInventory(); } private boolean giveItemStack(ItemStack itemStack, Boolean canSpew) throws ChargeException { boolean spew = false; - if (itemStack == null || itemStack.isAir()) + if (itemStack == null || itemStack.getTypeId() == 0) { return spew; } @@ -627,17 +654,17 @@ public class User extends UserBase implements IUser settings.acquireReadLock(); int oversizedStackSize = settings.getData().getGeneral().getOversizedStacksize(); - overfilled = getInventory().addItem(true, oversizedStackSize, itemStack); + overfilled = InventoryWorkaround.addItem(getPlayer().getInventory(), true, oversizedStackSize, itemStack); } else { - overfilled = getInventory().addItem(true, itemStack); + overfilled = InventoryWorkaround.addItem(getPlayer().getInventory(), true, itemStack); } if (canSpew) { for (ItemStack overflowStack : overfilled.values()) { - getWorld().dropItemNaturally(getLocation(), overflowStack); + getPlayer().getWorld().dropItemNaturally(getPlayer().getLocation(), overflowStack); spew = true; } } @@ -720,7 +747,7 @@ public class User extends UserBase implements IUser { if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(ess.getUserMap().getUser(p))) { - p.hidePlayer(getBase()); + p.hidePlayer(getPlayer()); } } setHidden(true); @@ -730,7 +757,7 @@ public class User extends UserBase implements IUser { for (Player p : ess.getServer().getOnlinePlayers()) { - p.showPlayer(getBase()); + p.showPlayer(getPlayer()); } setHidden(false); ess.getVanishedPlayers().remove(getName()); @@ -738,13 +765,6 @@ public class User extends UserBase implements IUser } @Override - public void setName(String name) - { - //todo - //throw new UnsupportedOperationException("Not supported yet."); - } - - @Override public void toggleVanished() { final boolean set = !vanished; diff --git a/Essentials/src/net/ess3/user/UserBase.java b/Essentials/src/net/ess3/user/UserBase.java index 9d0598fd1..2b0b7ae21 100644 --- a/Essentials/src/net/ess3/user/UserBase.java +++ b/Essentials/src/net/ess3/user/UserBase.java @@ -1,53 +1,150 @@ package net.ess3.user; -import net.ess3.utils.Util; +import java.io.File; +import java.io.IOException; +import java.util.*; +import lombok.Cleanup; +import lombok.Delegate; import net.ess3.api.IEssentials; import net.ess3.api.ISettings; +import net.ess3.api.IUser; import net.ess3.api.InvalidNameException; -import net.ess3.api.server.Player; -import net.ess3.api.server.Location; +import net.ess3.permissions.Permissions; import net.ess3.storage.AsyncStorageObjectHolder; import net.ess3.storage.IStorageObjectHolder; import net.ess3.storage.StoredLocation.WorldNotLoadedException; -import java.io.File; -import java.io.IOException; -import java.util.*; -import lombok.Cleanup; -import lombok.Delegate; +import net.ess3.utils.Util; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionAttachment; +import org.bukkit.permissions.PermissionAttachmentInfo; +import org.bukkit.plugin.Plugin; -public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implements Player, IStorageObjectHolder<UserData> +public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implements OfflinePlayer, CommandSender, IStorageObjectHolder<UserData> { @Delegate - protected Player base; + protected final OfflinePlayer offlinePlayer; - public UserBase(final Player base, final IEssentials ess) + public UserBase(final OfflinePlayer base, final IEssentials ess) { super(ess, UserData.class); - this.base = base; + this.offlinePlayer = base; onReload(); } + + @Override + public void sendMessage(String string) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + player.sendMessage(string); + } + } + + @Override + public void sendMessage(String[] strings) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + player.sendMessage(strings); + } + } + + @Override + public Server getServer() + { + return ess.getServer(); + } + + @Override + public boolean isPermissionSet(String string) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + return player.isPermissionSet(string); + } else { + return false; + } + } + + @Override + public boolean isPermissionSet(Permission prmsn) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + return player.isPermissionSet(prmsn); + } else { + return false; + } + } + + @Override + public boolean hasPermission(String string) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + return player.hasPermission(string); + } else { + return false; + } + } + + @Override + public boolean hasPermission(Permission prmsn) + { + Player player = offlinePlayer.getPlayer(); + if (player != null) { + return player.hasPermission(prmsn); + } else { + return false; + } + } - public final Player getBase() + @Override + public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln) { - return base; + throw new UnsupportedOperationException("Not supported yet."); } - public final Player setBase(final Player base) + @Override + public PermissionAttachment addAttachment(Plugin plugin) { - return this.base = base; + throw new UnsupportedOperationException("Not supported yet."); } - public void update(final Player base) + @Override + public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln, int i) { - setBase(base); + throw new UnsupportedOperationException("Not supported yet."); } + @Override + public PermissionAttachment addAttachment(Plugin plugin, int i) + { + throw new UnsupportedOperationException("Not supported yet."); + } + @Override + public void removeAttachment(PermissionAttachment pa) + { + throw new UnsupportedOperationException("Not supported yet."); + } - public void dispose() + @Override + public void recalculatePermissions() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Set<PermissionAttachmentInfo> getEffectivePermissions() { - this.base = null; + throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -321,7 +418,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem } try { - return getData().getHomes().get(Util.sanitizeKey(name)).getBukkitLocation(); + return getData().getHomes().get(Util.sanitizeKey(name)).getStoredLocation(); } catch (WorldNotLoadedException ex) { diff --git a/Essentials/src/net/ess3/user/UserData.java b/Essentials/src/net/ess3/user/UserData.java index 20fb9abb7..e5e71099c 100644 --- a/Essentials/src/net/ess3/user/UserData.java +++ b/Essentials/src/net/ess3/user/UserData.java @@ -3,8 +3,8 @@ package net.ess3.user; import java.util.*; import lombok.Data; import lombok.EqualsAndHashCode; -import net.ess3.api.server.Material; import net.ess3.storage.*; +import org.bukkit.Material; diff --git a/Essentials/src/net/ess3/user/UserMap.java b/Essentials/src/net/ess3/user/UserMap.java index 3a8e3684b..011ee578e 100644 --- a/Essentials/src/net/ess3/user/UserMap.java +++ b/Essentials/src/net/ess3/user/UserMap.java @@ -9,9 +9,10 @@ import net.ess3.api.IEssentials; import net.ess3.api.IUser; import net.ess3.api.IUserMap; import net.ess3.api.InvalidNameException; -import net.ess3.api.server.Player; import net.ess3.storage.StorageObjectMap; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; +import org.bukkit.entity.Player; public class UserMap extends StorageObjectMap<IUser> implements IUserMap @@ -36,19 +37,28 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap @Override public IUser load(final String name) throws Exception { - for (Player player : ess.getServer().getOnlinePlayers()) + String lowercaseName = name.toLowerCase(Locale.ENGLISH); + if (!lowercaseName.equals(name)) { - if (player.getName().equalsIgnoreCase(name)) + IUser user = getUser(lowercaseName); + if (user == null) { - keys.add(name.toLowerCase(Locale.ENGLISH)); - return new User(player, ess); + throw new Exception("User not found!"); + } + else + { + return user; } } + Player player = ess.getServer().getPlayerExact(name); + if (player != null) { + return new User(ess.getServer().getOfflinePlayer(player.getName()), ess); + } final File userFile = getUserFile(name); if (userFile.exists()) { keys.add(name.toLowerCase(Locale.ENGLISH)); - return new User(Bukkit.getOfflinePlayer(name), ess); + return new User(ess.getServer().getOfflinePlayer(name), ess); } throw new Exception("User not found!"); } @@ -80,36 +90,27 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap @Override public IUser getUser(final Player player) { - if (player instanceof IUser) - { - return (IUser)player; - } - IUser user = getUser(player.getName()); - + IUser user = getObject(player.getName()); if (user == null) { user = new User(player, ess); } - else - { - ((User)user).update(player); - } return user; } @Override - public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException + public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException { final Set<IUser> users = matchUsers(name, includeHidden, includeOffline); - if (users == null || users.isEmpty()) + if (users.isEmpty()) { - return null; + throw new PlayerNotFoundException(); } else { if (users.size() > 1) { - throw new TooManyMatchesException(); + throw new TooManyMatchesException(users); } else { @@ -121,11 +122,11 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap @Override public Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline) { - final String colorlessName = Util.stripColor(name); + final String colorlessName = FormatUtil.stripColor(name); final String[] search = colorlessName.split(","); final boolean multisearch = search.length > 1; final Set<IUser> result = new LinkedHashSet<IUser>(); - final String nicknamePrefix = Util.stripColor(getNickNamePrefix()); + final String nicknamePrefix = FormatUtil.stripColor(getNickNamePrefix()); for (String searchString : search) { if (searchString.isEmpty()) @@ -147,7 +148,7 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap for (Player player : ess.getServer().getOnlinePlayers()) { if (player.getName().equalsIgnoreCase(searchString) - && (includeHidden || (includeOffline && player.getUser().isHidden()))) + && (includeHidden || (includeOffline && getUser(player).isHidden()))) { match = player; break; @@ -157,49 +158,50 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap { if (multimatching || multisearch) { - result.add(match.getUser()); + result.add(getUser(match)); } else { - return Collections.singleton(match.getUser()); + return Collections.singleton(getUser(match)); } } for (Player player : ess.getServer().getOnlinePlayers()) { - final String nickname = player.getUser().getData().getNickname(); + final String nickname = getUser(player).getData().getNickname(); if (nickname != null && !nickname.isEmpty() && nickname.equalsIgnoreCase(searchString) - && (includeHidden || (includeOffline && player.getUser().isHidden()))) + && (includeHidden || (includeOffline && getUser(player).isHidden()))) { if (multimatching || multisearch) { - result.add(player.getUser()); + result.add(getUser(player)); } else { - return Collections.singleton(player.getUser()); + return Collections.singleton(getUser(player)); } } } if (includeOffline) { + IUser matchu = null; for (String playerName : getAllUniqueUsers()) { if (playerName.equals(searchString)) { - match = getUser(playerName); + matchu = getUser(playerName); break; } } - if (match != null) + if (matchu != null) { if (multimatching || multisearch) { - result.add(match.getUser()); + result.add(matchu); } else { - return Collections.singleton(match.getUser()); + return Collections.singleton(matchu); } } } @@ -208,17 +210,17 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap for (Player player : ess.getServer().getOnlinePlayers()) { if (player.getName().toLowerCase(Locale.ENGLISH).startsWith(searchString) - && (includeHidden || (includeOffline && player.getUser().isHidden()))) + && (includeHidden || (includeOffline && getUser(player).isHidden()))) { - result.add(player.getUser()); + result.add(getUser(player)); break; } - final String nickname = player.getUser().getData().getNickname(); + final String nickname = getUser(player).getData().getNickname(); if (nickname != null && !nickname.isEmpty() && nickname.toLowerCase(Locale.ENGLISH).startsWith(searchString) - && (includeHidden || (includeOffline && player.getUser().isHidden()))) + && (includeHidden || (includeOffline && getUser(player).isHidden()))) { - result.add(player.getUser()); + result.add(getUser(player)); break; } } diff --git a/Essentials/src/net/ess3/utils/FormatUtil.java b/Essentials/src/net/ess3/utils/FormatUtil.java new file mode 100644 index 000000000..f84368901 --- /dev/null +++ b/Essentials/src/net/ess3/utils/FormatUtil.java @@ -0,0 +1,151 @@ +package net.ess3.utils; + +import de.bananaco.bpermissions.imp.Permissions; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.Locale; +import java.util.regex.Pattern; +import lombok.Cleanup; +import static net.ess3.I18n._; +import net.ess3.api.IEssentials; +import net.ess3.api.ISettings; +import net.ess3.api.IUser; + +public class FormatUtil { + static final transient Pattern REPLACE_COLOR_PATTERN = Pattern.compile("&([0-9a-f])"); + static final transient Pattern REPLACE_MAGIC_PATTERN = Pattern.compile("&(k)"); + static final transient Pattern REPLACE_PATTERN = Pattern.compile("&([0-9a-fk-or])"); + static final transient Pattern VANILLA_PATTERN = Pattern.compile("\u00a7+[0-9A-FK-ORa-fk-or]"); + static final transient Pattern VANILLA_COLOR_PATTERN = Pattern.compile("\u00a7+[0-9A-Fa-f]"); + static final transient Pattern REPLACE_FORMAT_PATTERN = Pattern.compile("&([l-or])"); + static final transient Pattern VANILLA_FORMAT_PATTERN = Pattern.compile("\u00a7+[L-ORl-or]"); + static final transient Pattern VANILLA_MAGIC_PATTERN = Pattern.compile("\u00a7+[Kk]"); + static final transient Pattern URL_PATTERN = Pattern.compile("((?:(?:https?)://)?[\\w-_\\.]{2,})\\.([a-z]{2,3}(?:/\\S+)?)"); + static DecimalFormat dFormat = new DecimalFormat("#0.00", DecimalFormatSymbols.getInstance(Locale.US)); + + static String stripColor(final String input, final Pattern pattern) + { + return pattern.matcher(input).replaceAll(""); + } + + public static String stripColor(final String input) + { + if (input == null) + { + return null; + } + return VANILLA_COLOR_PATTERN.matcher(input).replaceAll(""); + } + + public static String blockURL(final String input) + { + if (input == null) + { + return null; + } + String text = URL_PATTERN.matcher(input).replaceAll("$1 $2"); + while (URL_PATTERN.matcher(text).find()) + { + text = URL_PATTERN.matcher(text).replaceAll("$1 $2"); + } + return text; + } + + static String replaceColor(final String input, final Pattern pattern) + { + return pattern.matcher(input).replaceAll("\u00a7$1"); + } + + public static String stripFormat(final String input) + { + if (input == null) + { + return null; + } + return VANILLA_PATTERN.matcher(input).replaceAll(""); + } + + public static String replaceFormat(final String input) + { + if (input == null) + { + return null; + } + return REPLACE_PATTERN.matcher(input).replaceAll("\u00a7$1"); + } + + public static String formatString(final IUser user, final String permBase, final String input) + { + if (input == null) + { + return null; + } + String message; + if (Permissions.hasPermission(user.getPlayer(), permBase + ".color")) + { + message = replaceColor(input, REPLACE_COLOR_PATTERN); + } + else + { + message = stripColor(input, VANILLA_COLOR_PATTERN); + } + if (Permissions.hasPermission(user.getPlayer(), permBase + ".magic")) + { + message = replaceColor(message, REPLACE_MAGIC_PATTERN); + } + else + { + message = stripColor(message, VANILLA_MAGIC_PATTERN); + } + if (Permissions.hasPermission(user.getPlayer(), permBase + ".format")) + { + message = replaceColor(message, REPLACE_FORMAT_PATTERN); + } + else + { + message = stripColor(message, VANILLA_FORMAT_PATTERN); + } + return message; + } + + public static String formatMessage(final IUser user, final String permBase, final String input) + { + if (input == null) + { + return null; + } + String message = formatString(user, permBase, input); + if (!Permissions.hasPermission(user.getPlayer(), permBase + ".url")) + { + message = blockURL(message); + } + return message; + } + + public static String shortCurrency(final double value, final IEssentials ess) + { + @Cleanup + final ISettings settings = ess.getSettings(); + settings.acquireReadLock(); + return settings.getData().getEconomy().getCurrencySymbol() + formatAsCurrency(value); + } + + public static String displayCurrency(final double value, final IEssentials ess) + { + @Cleanup + final ISettings settings = ess.getSettings(); + settings.acquireReadLock(); + return _("currency", settings.getData().getEconomy().getCurrencySymbol(), formatAsCurrency(value)); + } + + public static String formatAsCurrency(final double value) + { + String str = dFormat.format(value); + if (str.endsWith(".00")) + { + str = str.substring(0, str.length() - 3); + } + return str; + } + +} diff --git a/Essentials/src/net/ess3/utils/LocationUtil.java b/Essentials/src/net/ess3/utils/LocationUtil.java index ecde8b8b7..3feac8303 100644 --- a/Essentials/src/net/ess3/utils/LocationUtil.java +++ b/Essentials/src/net/ess3/utils/LocationUtil.java @@ -1,6 +1,10 @@ package net.ess3.utils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.HashSet; +import java.util.List; import java.util.Set; import static net.ess3.I18n._; import org.bukkit.Location; @@ -68,6 +72,47 @@ public class LocationUtil { } return block.getLocation(); } + + public final static int RADIUS = 3; + public final static Vector3D[] VOLUME; + + + public static class Vector3D + { + public Vector3D(int x, int y, int z) + { + this.x = x; + this.y = y; + this.z = z; + } + public int x; + public int y; + public int z; + } + + static + { + List<Vector3D> pos = new ArrayList<Vector3D>(); + for (int x = -RADIUS; x <= RADIUS; x++) + { + for (int y = -RADIUS; y <= RADIUS; y++) + { + for (int z = -RADIUS; z <= RADIUS; z++) + { + pos.add(new Vector3D(x, y, z)); + } + } + } + Collections.sort(pos, new Comparator<Vector3D>() + { + @Override + public int compare(Vector3D a, Vector3D b) + { + return (a.x * a.x + a.y * a.y + a.z * a.z) - (b.x * b.x + b.y * b.y + b.z * b.z); + } + }); + VOLUME = pos.toArray(new Vector3D[0]); + } public static Location getSafeDestination(final Location loc) throws Exception { @@ -79,25 +124,46 @@ public class LocationUtil { int x = loc.getBlockX(); int y = (int)Math.round(loc.getY()); int z = loc.getBlockZ(); + final int origX = x; + final int origY = y; + final int origZ = z; while (isBlockAboveAir(world, x, y, z)) { y -= 1; if (y < 0) { + y = origY; break; } } + int i = 0; + while (isBlockUnsafe(world, x, y, z)) + { + i++; + if (i >= VOLUME.length) + { + x = origX; + y = origY + RADIUS; + z = origZ; + break; + } + x = origX + VOLUME[i].x; + y = origY + VOLUME[i].y; + z = origZ + VOLUME[i].z; + } + while (isBlockUnsafe(world, x, y, z)) { y += 1; - if (y >= world.getHighestBlockYAt(x, z)) + if (y >= world.getMaxHeight()) { x += 1; break; } } + while (isBlockUnsafe(world, x, y, z)) { y -= 1; @@ -105,7 +171,7 @@ public class LocationUtil { { x += 1; y = world.getHighestBlockYAt(x, z); - if (x - 32 > loc.getBlockX()) + if (x - 48 > loc.getBlockX()) { throw new Exception(_("holeInFloor")); } @@ -121,6 +187,15 @@ public class LocationUtil { public static boolean isBlockUnsafe(final World world, final int x, final int y, final int z) { + if (isBlockDamaging(world, x, y, z)) + { + return true; + } + return isBlockAboveAir(world, x, y, z); + } + + public static boolean isBlockDamaging(final World world, final int x, final int y, final int z) + { final Block below = world.getBlockAt(x, y - 1, z); if (below.getType() == Material.LAVA || below.getType() == Material.STATIONARY_LAVA) { @@ -132,11 +207,16 @@ public class LocationUtil { return true; } + if (below.getType() == Material.BED_BLOCK) + { + return true; + } + if ((!AIR_MATERIALS.contains(world.getBlockAt(x, y, z).getType().getId())) || (!AIR_MATERIALS.contains(world.getBlockAt(x, y + 1, z).getType().getId()))) { return true; } - return isBlockAboveAir(world, x, y, z); + return false; } } diff --git a/Essentials/src/net/ess3/utils/Util.java b/Essentials/src/net/ess3/utils/Util.java index 273cd4679..7814c519d 100644 --- a/Essentials/src/net/ess3/utils/Util.java +++ b/Essentials/src/net/ess3/utils/Util.java @@ -1,26 +1,14 @@ package net.ess3.utils; -import de.bananaco.bpermissions.imp.Permissions; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; import java.util.Collection; import java.util.Locale; import java.util.regex.Pattern; -import lombok.Cleanup; -import static net.ess3.I18n._; -import net.ess3.api.IEssentials; -import net.ess3.api.ISettings; -import net.ess3.api.IUser; import net.ess3.api.InvalidNameException; import net.ess3.utils.gnu.inet.encoding.Punycode; import net.ess3.utils.gnu.inet.encoding.PunycodeException; -import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; -import org.bukkit.permissions.Permission; -import org.bukkit.permissions.PermissionDefault; -import org.bukkit.plugin.PluginManager; public final class Util @@ -171,34 +159,6 @@ public final class Util } return is; } - private static DecimalFormat dFormat = new DecimalFormat("#0.00", DecimalFormatSymbols.getInstance(Locale.US)); - - public static String formatAsCurrency(final double value) - { - - String str = dFormat.format(value); - if (str.endsWith(".00")) - { - str = str.substring(0, str.length() - 3); - } - return str; - } - - public static String displayCurrency(final double value, final IEssentials ess) - { - @Cleanup - final ISettings settings = ess.getSettings(); - settings.acquireReadLock(); - return _("currency", settings.getData().getEconomy().getCurrencySymbol(), formatAsCurrency(value)); - } - - public static String shortCurrency(final double value, final IEssentials ess) - { - @Cleanup - final ISettings settings = ess.getSettings(); - settings.acquireReadLock(); - return settings.getData().getEconomy().getCurrencySymbol() + formatAsCurrency(value); - } public static double roundDouble(final double d) { @@ -251,192 +211,4 @@ public final class Util } return buf.toString(); } - - public static void registerPermissions(String path, Collection<String> nodes, boolean hasDefault, IEssentials ess) - { - if (nodes == null || nodes.isEmpty()) - { - return; - } - final PluginManager pluginManager = ess.getServer().getPluginManager(); - Permission basePerm = pluginManager.getPermission(path + ".*"); - if (basePerm != null && !basePerm.getChildren().isEmpty()) - { - basePerm.getChildren().clear(); - } - if (basePerm == null) - { - basePerm = new Permission(path + ".*", PermissionDefault.OP); - pluginManager.addPermission(basePerm); - Permission mainPerm = pluginManager.getPermission("essentials.*"); - if (mainPerm == null) - { - mainPerm = new Permission("essentials.*", PermissionDefault.OP); - pluginManager.addPermission(mainPerm); - } - mainPerm.getChildren().put(basePerm.getName(), Boolean.TRUE); - } - - for (String nodeName : nodes) - { - final String permissionName = path + "." + nodeName; - Permission perm = pluginManager.getPermission(permissionName); - if (perm == null) - { - final PermissionDefault defaultPerm = hasDefault && nodeName.equalsIgnoreCase("default") ? PermissionDefault.TRUE : PermissionDefault.OP; - perm = new Permission(permissionName, defaultPerm); - pluginManager.addPermission(perm); - } - basePerm.getChildren().put(permissionName, Boolean.TRUE); - } - basePerm.recalculatePermissibles(); - } - private static transient final Pattern DOT_PATTERN = Pattern.compile("\\."); - - public static Permission registerPermission(String permission, PermissionDefault defaultPerm) - { - final PluginManager pluginManager = Bukkit.getServer().getPluginManager(); - final String[] parts = DOT_PATTERN.split(permission); - final StringBuilder builder = new StringBuilder(permission.length()); - Permission parent = null; - for (int i = 0; i < parts.length - 1; i++) - { - builder.append(parts[i]).append(".*"); - String permString = builder.toString(); - Permission perm = pluginManager.getPermission(permString); - if (perm == null) - { - perm = new Permission(permString, PermissionDefault.FALSE); - pluginManager.addPermission(perm); - if (parent != null) - { - parent.getChildren().put(perm.getName(), Boolean.TRUE); - } - parent = perm; - } - builder.deleteCharAt(builder.length() - 1); - } - Permission perm = pluginManager.getPermission(permission); - if (perm == null) - { - perm = new Permission(permission, defaultPerm); - pluginManager.addPermission(perm); - if (parent != null) - { - parent.getChildren().put(perm.getName(), Boolean.TRUE); - } - parent = perm; - } - perm.recalculatePermissibles(); - return perm; - } - private static transient final Pattern URL_PATTERN = Pattern.compile("((?:(?:https?)://)?[\\w-_\\.]{2,})\\.([a-z]{2,3}(?:/\\S+)?)"); - private static transient final Pattern VANILLA_PATTERN = Pattern.compile("\u00A7+[0-9A-FK-ORa-fk-or]"); - private static transient final Pattern REPLACE_PATTERN = Pattern.compile("&([0-9a-fk-or])"); - private static transient final Pattern VANILLA_COLOR_PATTERN = Pattern.compile("\u00A7+[0-9A-Fa-f]"); - private static transient final Pattern VANILLA_MAGIC_PATTERN = Pattern.compile("\u00A7+[Kk]"); - private static transient final Pattern VANILLA_FORMAT_PATTERN = Pattern.compile("\u00A7+[L-ORl-or]"); - private static transient final Pattern REPLACE_COLOR_PATTERN = Pattern.compile("&([0-9a-f])"); - private static transient final Pattern REPLACE_MAGIC_PATTERN = Pattern.compile("&(k)"); - private static transient final Pattern REPLACE_FORMAT_PATTERN = Pattern.compile("&([l-or])"); - - public static String stripFormat(final String input) - { - if (input == null) - { - return null; - } - return VANILLA_PATTERN.matcher(input).replaceAll(""); - } - - public static String replaceFormat(final String input) - { - if (input == null) - { - return null; - } - return REPLACE_PATTERN.matcher(input).replaceAll("\u00a7$1"); - } - - public static String blockURL(final String input) - { - if (input == null) - { - return null; - } - String text = URL_PATTERN.matcher(input).replaceAll("$1 $2"); - while (URL_PATTERN.matcher(text).find()) - { - text = URL_PATTERN.matcher(text).replaceAll("$1 $2"); - } - return text; - } - - public static String formatString(final IUser user, final String permBase, final String input) - { - if (input == null) - { - return null; - } - String message; - if (Permissions.hasPermission(user.getBase(), permBase + ".color")) - { - message = Util.replaceColor(input, REPLACE_COLOR_PATTERN); - } - else - { - message = Util.stripColor(input, VANILLA_COLOR_PATTERN); - } - if (Permissions.hasPermission(user.getBase(), permBase + ".magic")) - { - message = Util.replaceColor(message, REPLACE_MAGIC_PATTERN); - } - else - { - message = Util.stripColor(message, VANILLA_MAGIC_PATTERN); - } - if (Permissions.hasPermission(user.getBase(), permBase + ".format")) - { - message = Util.replaceColor(message, REPLACE_FORMAT_PATTERN); - } - else - { - message = Util.stripColor(message, VANILLA_FORMAT_PATTERN); - } - return message; - } - - public static String formatMessage(final IUser user, final String permBase, final String input) - { - if (input == null) - { - return null; - } - String message = formatString(user, permBase, input); - if (!Permissions.hasPermission(user.getBase(), permBase + ".url")) - { - message = Util.blockURL(message); - } - return message; - } - - public static String stripColor(final String input) - { - if (input == null) - { - return null; - } - - return VANILLA_COLOR_PATTERN.matcher(input).replaceAll(""); - } - - private static String stripColor(final String input, final Pattern pattern) - { - return pattern.matcher(input).replaceAll(""); - } - - private static String replaceColor(final String input, final Pattern pattern) - { - return pattern.matcher(input).replaceAll("\u00a7$1"); - } } diff --git a/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java b/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java index 5b0a5066f..cd55511ca 100644 --- a/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java +++ b/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java @@ -1,17 +1,17 @@ package net.ess3.utils.textreader; -import net.ess3.api.IEssentials; -import net.ess3.api.IUser; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.World; -import net.ess3.utils.DescParseTickFormat; import java.text.DateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import lombok.Cleanup; +import net.ess3.api.IEssentials; +import net.ess3.api.IUser; +import net.ess3.utils.DescParseTickFormat; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; @@ -35,22 +35,22 @@ public class KeywordReplacer implements IText String worlds, online, unique, playerlist, date, time; String worldTime12, worldTime24, worldDate, plugins; String userName, address, version; - if (sender.isPlayer()) + if (sender instanceof Player) { @Cleanup - final IUser user = ((Player)sender).getUser(); + final IUser user = ess.getUserMap().getUser((Player)sender); user.acquireReadLock(); user.setDisplayNick(); - displayName = user.getDisplayName(); - userName = user.getName(); - ipAddress = user.getAddress() == null || user.getAddress().getAddress() == null ? "" : user.getAddress().getAddress().toString(); - address = user.getAddress() == null ? "" : user.getAddress().toString(); + displayName = user.getPlayer().getDisplayName(); + userName = user.getPlayer().getName(); + ipAddress = user.getPlayer().getAddress() == null || user.getPlayer().getAddress().getAddress() == null ? "" : user.getPlayer().getAddress().getAddress().toString(); + address = user.getPlayer().getAddress() == null ? "" : user.getPlayer().getAddress().toString(); balance = Double.toString(user.getMoney()); mails = Integer.toString(user.getData().getMails() == null ? 0 : user.getData().getMails().size()); - world = user.getLocation() == null || user.getLocation().getWorld() == null ? "" : user.getLocation().getWorld().getName(); - worldTime12 = DescParseTickFormat.format12(user.getWorld() == null ? 0 : user.getWorld().getTime()); - worldTime24 = DescParseTickFormat.format24(user.getWorld() == null ? 0 : user.getWorld().getTime()); - worldDate = DateFormat.getDateInstance(DateFormat.MEDIUM, ess.getI18n().getCurrentLocale()).format(DescParseTickFormat.ticksToDate(user.getWorld() == null ? 0 : user.getWorld().getFullTime())); + world = user.getPlayer().getLocation() == null || user.getPlayer().getLocation().getWorld() == null ? "" : user.getPlayer().getLocation().getWorld().getName(); + worldTime12 = DescParseTickFormat.format12(user.getPlayer().getWorld() == null ? 0 : user.getPlayer().getWorld().getTime()); + worldTime24 = DescParseTickFormat.format24(user.getPlayer().getWorld() == null ? 0 : user.getPlayer().getWorld().getTime()); + worldDate = DateFormat.getDateInstance(DateFormat.MEDIUM, ess.getI18n().getCurrentLocale()).format(DescParseTickFormat.ticksToDate(user.getPlayer().getWorld() == null ? 0 : user.getPlayer().getWorld().getFullTime())); } else { @@ -60,12 +60,12 @@ public class KeywordReplacer implements IText int playerHidden = 0; for (Player p : ess.getServer().getOnlinePlayers()) { - if (p.getUser().isHidden()) + if (ess.getUserMap().getUser(p).isHidden()) { playerHidden++; } } - online = Integer.toString(ess.getServer().getOnlinePlayers().size() - playerHidden); + online = Integer.toString(ess.getServer().getOnlinePlayers().length - playerHidden); unique = Integer.toString(ess.getUserMap().getUniqueUsers()); final StringBuilder worldsBuilder = new StringBuilder(); @@ -82,7 +82,7 @@ public class KeywordReplacer implements IText final StringBuilder playerlistBuilder = new StringBuilder(); for (Player p : ess.getServer().getOnlinePlayers()) { - if (p.getUser().isHidden()) + if (ess.getUserMap().getUser(p).isHidden()) { continue; } diff --git a/Essentials/src/net/ess3/utils/textreader/TextInput.java b/Essentials/src/net/ess3/utils/textreader/TextInput.java index b0a0707af..a8162b140 100644 --- a/Essentials/src/net/ess3/utils/textreader/TextInput.java +++ b/Essentials/src/net/ess3/utils/textreader/TextInput.java @@ -4,6 +4,12 @@ import java.io.*; import java.lang.ref.SoftReference; import java.util.*; import java.util.logging.Level; +import net.ess3.api.IEssentials; +import net.ess3.api.IUser; +import net.ess3.api.InvalidNameException; +import net.ess3.utils.Util; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class TextInput implements IText @@ -18,11 +24,11 @@ public class TextInput implements IText { File file = null; - if (sender.isPlayer()) + if (sender instanceof Player) { try { - final IUser user = ((Player)sender).getUser(); + final IUser user = ess.getUserMap().getUser((Player)sender); file = new File(ess.getPlugin().getDataFolder(), filename + "_" + Util.sanitizeFileName(user.getName()) + ".txt"); if (!file.exists()) { @@ -78,9 +84,9 @@ public class TextInput implements IText if (line.length() > 0 && line.charAt(0) == '#') { bookmarks.put(line.substring(1).toLowerCase(Locale.ENGLISH).replaceAll("&[0-9a-fk]", ""), lineNumber); - chapters.add(line.substring(1).replace('&', '§').replace("§§", "&")); + chapters.add(line.substring(1).replace('&', '\u00a7').replace("\u00a7\u00a7", "&")); } - lines.add(line.replace('&', '§').replace("§§", "&")); + lines.add(line.replace('&', '\u00a7').replace("\u00a7\u00a7", "&")); lineNumber++; } } diff --git a/Essentials/src/net/ess3/utils/textreader/TextPager.java b/Essentials/src/net/ess3/utils/textreader/TextPager.java index 099d9bbb7..88f00125c 100644 --- a/Essentials/src/net/ess3/utils/textreader/TextPager.java +++ b/Essentials/src/net/ess3/utils/textreader/TextPager.java @@ -5,7 +5,7 @@ import java.util.Locale; import java.util.Map; import net.ess3.I18n; import static net.ess3.I18n._; -import net.ess3.api.server.CommandSender; +import org.bukkit.command.CommandSender; public class TextPager diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml index 85c88ad91..27c9d23df 100644 --- a/Essentials/src/plugin.yml +++ b/Essentials/src/plugin.yml @@ -1,6 +1,6 @@ # This determines the command prefix when there are conflicts (/name:home, /name:help, etc.) name: Essentials-3 -main: net.ess3.Essentials +main: net.ess3.bukkit.BukkitPlugin # Note to developers: This next line cannot change, or the automatic versioning system will break. version: ${build.number} website: http://tiny.cc/EssentialsWiki @@ -87,6 +87,10 @@ commands: description: Enchants the item the user is holding. usage: /<command> <enchantmentname> [level] aliases: [enchantment,eenchant,eenchantment] + enderchest: + description: Lets you see inside an enderchest. + usage: /<command> [player] + aliases: [endersee,echest,eenderchest,eendersee,eechest] essentials: description: Reloads essentials. usage: /<command> @@ -330,6 +334,10 @@ commands: description: Spawns a mob. usage: /<command> <mob>[:data][,<mount>[:data]] [amount] [player] aliases: [espawnmob,mob,emob] + speed: + description: Change your speed limits + usage: /<command> <speed> [player] + aliases: [flyspeed,walkspeed,fspeed,wspeed,eflyspeed,ewalkspeed,efspeed,ewspeed,espeed] sudo: description: Make another user perform a command. usage: /<command> <player> <command [args]> @@ -441,7 +449,7 @@ commands: workbench: description: Opens up a workbench usage: /<command> - aliases: [eworkbench,wb,ewb,wbench,ewbench] + aliases: [eworkbench,wb,ewb,wbench,ewbench,craft,ecraft] world: description: Switch between worlds. usage: /<command> [world] diff --git a/Essentials/test/net/ess3/EconomyTest.java b/Essentials/test/net/ess3/EconomyTest.java index 74554a698..9acb12f61 100644 --- a/Essentials/test/net/ess3/EconomyTest.java +++ b/Essentials/test/net/ess3/EconomyTest.java @@ -13,7 +13,7 @@ public class EconomyTest extends EssentialsTest public EconomyTest(final String testName) { super(testName); - server.addPlayer(PLAYERNAME); + addPlayer(PLAYERNAME); } // only one big test, since we use static instances diff --git a/Essentials/test/net/ess3/EssentialsTest.java b/Essentials/test/net/ess3/EssentialsTest.java index 7257a33ad..e32cc123f 100644 --- a/Essentials/test/net/ess3/EssentialsTest.java +++ b/Essentials/test/net/ess3/EssentialsTest.java @@ -1,29 +1,111 @@ package net.ess3; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; import java.util.logging.Logger; import junit.framework.TestCase; -import net.ess3.testserver.TestPlugin; -import net.ess3.testserver.TestServer; -import net.ess3.testserver.TestWorld; +import net.ess3.api.IPlugin; +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginManager; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.*; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; -public abstract class EssentialsTest extends TestCase { - protected final transient TestServer server; - protected final transient TestPlugin plugin; - protected final transient TestWorld world; + +public abstract class EssentialsTest extends TestCase +{ + protected final transient Server server; + protected final transient IPlugin plugin; + protected final transient World world; protected final transient Logger logger; protected final transient Essentials ess; - + protected final transient List<Player> playerList; public EssentialsTest(final String testName) { super(testName); logger = Logger.getLogger(this.getName()); - server = new TestServer(); - world = (TestWorld)server.getWorlds().get(0); - plugin = new TestPlugin(); + world = mock(World.class); + playerList = new ArrayList<Player>(); + if (Bukkit.getServer() == null) + { + server = mock(Server.class); + PluginManager pluginManager = mock(PluginManager.class); + when(pluginManager.getPlugins()).thenReturn(new Plugin[0]); + when(server.getLogger()).thenReturn(logger); + when(server.getOnlinePlayers()).thenReturn(playerList.toArray(new Player[0])); + when(server.getPlayerExact(anyString())).thenAnswer(new Answer<Player>() + { + @Override + public Player answer(InvocationOnMock invocation) throws Throwable + { + Object[] args = invocation.getArguments(); + String name = (String)args[0]; + for (Player player : playerList) + { + if (player.getName().equalsIgnoreCase(name)) + { + return player; + } + } + return null; + } + }); + when(server.getPluginManager()).thenReturn(pluginManager); + when(server.getOfflinePlayers()).thenReturn(playerList.toArray(new Player[0])); + when(server.getOfflinePlayer(anyString())).thenAnswer(new Answer<OfflinePlayer>() + { + @Override + public OfflinePlayer answer(InvocationOnMock invocation) throws Throwable + { + Object[] args = invocation.getArguments(); + String name = (String)args[0]; + OfflinePlayer player = mock(OfflinePlayer.class); + when(player.getName()).thenReturn(name); + return player; + } + }); + Bukkit.setServer(server); + } + else + { + server = Bukkit.getServer(); + } + plugin = mock(IPlugin.class); + + + File tmp; + try + { + tmp = File.createTempFile("ess", "tmp"); + } + catch (IOException ex) + { + throw new RuntimeException(ex); + } + tmp.deleteOnExit(); + when(plugin.getDataFolder()).thenReturn(tmp.getParentFile()); + when(world.getName()).thenReturn("world"); + ess = new Essentials(server, logger, plugin); + ess.getI18n().updateLocale("en_US"); Essentials.testing = true; ess.onEnable(); } - + + protected void addPlayer(String name) + { + Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + playerList.add(player); + } } diff --git a/Essentials/test/net/ess3/FakeOfflinePlayer.java b/Essentials/test/net/ess3/FakeOfflinePlayer.java deleted file mode 100644 index de1f9064e..000000000 --- a/Essentials/test/net/ess3/FakeOfflinePlayer.java +++ /dev/null @@ -1,100 +0,0 @@ -package net.ess3; - -import java.util.Map; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; - - -public class FakeOfflinePlayer implements OfflinePlayer -{ - private final transient String name; - - public FakeOfflinePlayer(String name) - { - this.name = name; - } - - @Override - public boolean isOnline() - { - return false; - } - - @Override - public String getName() - { - return name; - } - - @Override - public boolean isBanned() - { - return false; - } - - @Override - public void setBanned(boolean bln) - { - } - - @Override - public boolean isWhitelisted() - { - return false; - } - - @Override - public void setWhitelisted(boolean bln) - { - } - - @Override - public Player getPlayer() - { - return Bukkit.getPlayerExact(name); - } - - @Override - public long getFirstPlayed() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getLastPlayed() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasPlayedBefore() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isOp() - { - return false; - } - - @Override - public void setOp(boolean bln) - { - } - - @Override - public Map<String, Object> serialize() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getBedSpawnLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - -} diff --git a/Essentials/test/net/ess3/FakeServer.java b/Essentials/test/net/ess3/FakeServer.java deleted file mode 100644 index aeed3e4b8..000000000 --- a/Essentials/test/net/ess3/FakeServer.java +++ /dev/null @@ -1,934 +0,0 @@ -package net.ess3; - -import com.avaje.ebean.config.ServerConfig; -import java.io.File; -import java.util.*; -import java.util.concurrent.Callable; -import java.util.concurrent.Future; -import java.util.logging.Logger; -import org.bukkit.World.Environment; -import org.bukkit.*; -import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.command.PluginCommand; -import org.bukkit.entity.Player; -import org.bukkit.event.Event; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.help.HelpMap; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.Recipe; -import org.bukkit.map.MapView; -import org.bukkit.permissions.Permissible; -import org.bukkit.permissions.Permission; -import org.bukkit.plugin.*; -import org.bukkit.plugin.messaging.Messenger; -import org.bukkit.scheduler.BukkitScheduler; -import org.bukkit.scheduler.BukkitTask; -import org.bukkit.scheduler.BukkitWorker; - - -public class FakeServer implements Server -{ - private List<Player> players = new ArrayList<Player>(); - private final List<World> worlds = new ArrayList<World>(); - - public FakeServer() - { - if (Bukkit.getServer() == null) - { - Bukkit.setServer(this); - } - } - - public String getName() - { - return "Essentials Fake Server"; - } - - public String getVersion() - { - return "1.0"; - } - - @Override - public Player[] getOnlinePlayers() - { - return players.toArray(new Player[0]); - } - - public void setOnlinePlayers(List<Player> players) - { - this.players = players; - } - - @Override - public int getMaxPlayers() - { - return 100; - } - - @Override - public int getPort() - { - return 25565; - } - - @Override - public String getIp() - { - return "127.0.0.1"; - } - - @Override - public String getServerName() - { - return "Test Server"; - } - - @Override - public String getServerId() - { - return "Test Server"; - } - - @Override - public int broadcastMessage(String string) - { - int i = 0; - for (Player player : players) - { - player.sendMessage(string); - i++; - } - return i; - } - - @Override - public String getUpdateFolder() - { - return "update"; - } - - @Override - public File getUpdateFolderFile() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Player getPlayer(String string) - { - for (Player player : players) - { - if (player.getName().equalsIgnoreCase(string)) - { - return player; - } - } - return null; - } - - @Override - public List<Player> matchPlayer(String string) - { - List<Player> matches = new ArrayList<Player>(); - for (Player player : players) - { - if (player.getName().substring(0, Math.min(player.getName().length(), string.length())).equalsIgnoreCase(string)) - { - matches.add(player); - } - } - return matches; - } - private PluginManager pManager = new PluginManager() - { - private Set<Permission> permissions = new HashSet<Permission>(); - - @Override - public void registerInterface(Class<? extends PluginLoader> type) throws IllegalArgumentException - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Plugin getPlugin(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Plugin[] getPlugins() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isPluginEnabled(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isPluginEnabled(Plugin plugin) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Plugin loadPlugin(File file) throws InvalidPluginException, InvalidDescriptionException, UnknownDependencyException - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Plugin[] loadPlugins(File file) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void disablePlugins() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void clearPlugins() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void callEvent(Event event) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void registerEvents(Listener ll, Plugin plugin) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void registerEvent(Class<? extends Event> type, Listener ll, EventPriority ep, EventExecutor ee, Plugin plugin) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void enablePlugin(Plugin plugin) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void disablePlugin(Plugin plugin) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Permission getPermission(String string) - { - for (Permission permission : permissions) - { - if (permission.getName().equals(string)) - { - return permission; - } - } - return null; - } - - @Override - public void addPermission(Permission prmsn) - { - permissions.add(prmsn); - } - - @Override - public void removePermission(Permission prmsn) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void removePermission(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set<Permission> getDefaultPermissions(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void recalculatePermissionDefaults(Permission prmsn) - { - } - - @Override - public void subscribeToPermission(String string, Permissible prmsbl) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void unsubscribeFromPermission(String string, Permissible prmsbl) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set<Permissible> getPermissionSubscriptions(String string) - { - return Collections.emptySet(); - } - - @Override - public void subscribeToDefaultPerms(boolean bln, Permissible prmsbl) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void unsubscribeFromDefaultPerms(boolean bln, Permissible prmsbl) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set<Permissible> getDefaultPermSubscriptions(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set<Permission> getPermissions() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean useTimings() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void registerEvent(Class<? extends Event> type, Listener ll, EventPriority ep, EventExecutor ee, Plugin plugin, boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - }; - - @Override - public PluginManager getPluginManager() - { - return pManager; - } - - @Override - public BukkitScheduler getScheduler() - { - return new BukkitScheduler() - { - @Override - public int scheduleSyncDelayedTask(Plugin plugin, Runnable r, long l) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int scheduleSyncDelayedTask(Plugin plugin, Runnable r) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int scheduleSyncRepeatingTask(Plugin plugin, Runnable r, long l, long l1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int scheduleAsyncDelayedTask(Plugin plugin, Runnable r, long l) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int scheduleAsyncDelayedTask(Plugin plugin, Runnable r) - { - r.run(); - return 0; - } - - @Override - public int scheduleAsyncRepeatingTask(Plugin plugin, Runnable r, long l, long l1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public <T> Future<T> callSyncMethod(Plugin plugin, Callable<T> clbl) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void cancelTask(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void cancelTasks(Plugin plugin) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void cancelAllTasks() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isCurrentlyRunning(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isQueued(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<BukkitWorker> getActiveWorkers() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<BukkitTask> getPendingTasks() - { - throw new UnsupportedOperationException("Not supported yet."); - } - }; - } - - @Override - public ServicesManager getServicesManager() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<World> getWorlds() - { - return worlds; - } - - public World createWorld(String string, Environment e) - { - World w = new FakeWorld(string, e); - worlds.add(w); - return w; - } - - public World createWorld(String string, Environment e, long l) - { - World w = new FakeWorld(string, e); - worlds.add(w); - return w; - } - - @Override - public World getWorld(String string) - { - for (World world : worlds) - { - if (world.getName().equalsIgnoreCase(string)) - { - return world; - } - } - return null; - } - - @Override - public void reload() - { - } - - @Override - public Logger getLogger() - { - return Logger.getLogger("Minecraft"); - } - - @Override - public PluginCommand getPluginCommand(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void savePlayers() - { - } - - @Override - public boolean dispatchCommand(CommandSender cs, String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void configureDbConfig(ServerConfig sc) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean addRecipe(Recipe recipe) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public void addPlayer(Player base1) - { - players.add(base1); - } - - @Override - public World createWorld(WorldCreator creator) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean unloadWorld(String string, boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean unloadWorld(World world, boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Map<String, String[]> getCommandAliases() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getSpawnRadius() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSpawnRadius(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getOnlineMode() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - public World getWorld(long l) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public World getWorld(UUID uuid) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getViewDistance() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getAllowNether() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasWhitelist() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public MapView getMap(short s) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public MapView createMap(World world) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getAllowFlight() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setWhitelist(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set<org.bukkit.OfflinePlayer> getWhitelistedPlayers() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void reloadWhitelist() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Player getPlayerExact(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void shutdown() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int broadcast(String string, String string1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public org.bukkit.OfflinePlayer getOfflinePlayer(final String string) - { - return new org.bukkit.OfflinePlayer() - { - @Override - public boolean isOnline() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getName() - { - return string; - } - - @Override - public boolean isBanned() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setBanned(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isWhitelisted() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setWhitelisted(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Player getPlayer() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isOp() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setOp(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Map<String, Object> serialize() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getFirstPlayed() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getLastPlayed() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasPlayedBefore() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getBedSpawnLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - }; - } - - @Override - public Set<String> getIPBans() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void banIP(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void unbanIP(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set<org.bukkit.OfflinePlayer> getBannedPlayers() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public GameMode getDefaultGameMode() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setDefaultGameMode(GameMode gamemode) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public ConsoleCommandSender getConsoleSender() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set getOperators() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getBukkitVersion() - { - return "Essentials Fake-Server"; - } - - @Override - public File getWorldContainer() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public OfflinePlayer[] getOfflinePlayers() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getAllowEnd() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Messenger getMessenger() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendPluginMessage(Plugin plugin, String string, byte[] bytes) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set<String> getListeningPluginChannels() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean useExactLoginLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getTicksPerAnimalSpawns() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getTicksPerMonsterSpawns() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<Recipe> getRecipesFor(ItemStack is) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Iterator<Recipe> recipeIterator() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void clearRecipes() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void resetRecipes() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public HelpMap getHelpMap() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Inventory createInventory(InventoryHolder ih, InventoryType it) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Inventory createInventory(InventoryHolder ih, int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Inventory createInventory(InventoryHolder ih, int i, String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getWorldType() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getGenerateStructures() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getConnectionThrottle() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getMonsterSpawnLimit() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getAnimalSpawnLimit() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getWaterAnimalSpawnLimit() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isPrimaryThread() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getMotd() - { - throw new UnsupportedOperationException("Not supported yet."); - } -} diff --git a/Essentials/test/net/ess3/FakeWorld.java b/Essentials/test/net/ess3/FakeWorld.java deleted file mode 100644 index fb617d98b..000000000 --- a/Essentials/test/net/ess3/FakeWorld.java +++ /dev/null @@ -1,678 +0,0 @@ -package net.ess3; - -import java.io.File; -import java.util.Collection; -import java.util.List; -import java.util.Set; -import java.util.UUID; -import org.bukkit.*; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.entity.*; -import org.bukkit.generator.BlockPopulator; -import org.bukkit.generator.ChunkGenerator; -import org.bukkit.inventory.ItemStack; -import org.bukkit.metadata.MetadataValue; -import org.bukkit.plugin.Plugin; -import org.bukkit.util.Vector; - - -public class FakeWorld implements World -{ - private final String name; - private final Environment env; - - public FakeWorld(String string, Environment environment) - { - this.name = string; - this.env = environment; - } - - @Override - public Block getBlockAt(int i, int i1, int i2) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Block getBlockAt(Location lctn) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getBlockTypeIdAt(int i, int i1, int i2) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getBlockTypeIdAt(Location lctn) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getHighestBlockYAt(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getHighestBlockYAt(Location lctn) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Chunk getChunkAt(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Chunk getChunkAt(Location lctn) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Chunk getChunkAt(Block block) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isChunkLoaded(Chunk chunk) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Chunk[] getLoadedChunks() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void loadChunk(Chunk chunk) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isChunkLoaded(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void loadChunk(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean loadChunk(int i, int i1, boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean unloadChunk(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean unloadChunk(int i, int i1, boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean unloadChunk(int i, int i1, boolean bln, boolean bln1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean unloadChunkRequest(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean unloadChunkRequest(int i, int i1, boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean regenerateChunk(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean refreshChunk(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Item dropItem(Location lctn, ItemStack is) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Item dropItemNaturally(Location lctn, ItemStack is) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Arrow spawnArrow(Location lctn, Vector vector, float f, float f1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean generateTree(Location lctn, TreeType tt) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean generateTree(Location lctn, TreeType tt, BlockChangeDelegate bcd) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public LivingEntity spawnCreature(Location lctn, CreatureType ct) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public LightningStrike strikeLightning(Location lctn) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public LightningStrike strikeLightningEffect(Location lctn) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<Entity> getEntities() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<LivingEntity> getLivingEntities() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<Player> getPlayers() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getName() - { - return name; - } - - @Override - public Location getSpawnLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean setSpawnLocation(int i, int i1, int i2) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getTime() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setTime(long l) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getFullTime() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setFullTime(long l) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasStorm() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setStorm(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getWeatherDuration() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setWeatherDuration(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isThundering() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setThundering(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getThunderDuration() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setThunderDuration(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Environment getEnvironment() - { - return env; - } - - @Override - public long getSeed() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getPVP() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setPVP(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void save() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean createExplosion(double d, double d1, double d2, float f) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean createExplosion(Location lctn, float f) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public ChunkGenerator getGenerator() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<BlockPopulator> getPopulators() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void playEffect(Location lctn, Effect effect, int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void playEffect(Location lctn, Effect effect, int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean createExplosion(double d, double d1, double d2, float f, boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean createExplosion(Location lctn, float f, boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public <T extends Entity> T spawn(Location lctn, Class<T> type) throws IllegalArgumentException - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public ChunkSnapshot getEmptyChunkSnapshot(int i, int i1, boolean bln, boolean bln1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSpawnFlags(boolean bln, boolean bln1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getAllowAnimals() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getAllowMonsters() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public UUID getUID() - { - return UUID.randomUUID(); - } - - @Override - public Block getHighestBlockAt(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Block getHighestBlockAt(Location lctn) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Biome getBiome(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public double getTemperature(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public double getHumidity(int i, int i1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean unloadChunk(Chunk chunk) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getMaxHeight() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean getKeepSpawnInMemory() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setKeepSpawnInMemory(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isAutoSave() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setAutoSave(boolean bln) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Difficulty getDifficulty() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setDifficulty(Difficulty difficulty) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getSeaLevel() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public File getWorldFolder() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public <T extends Entity> Collection<T> getEntitiesByClass(Class<T>... types) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public WorldType getWorldType() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendPluginMessage(Plugin plugin, String string, byte[] bytes) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Set<String> getListeningPluginChannels() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean canGenerateStructures() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getTicksPerAnimalSpawns() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setTicksPerAnimalSpawns(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getTicksPerMonsterSpawns() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setTicksPerMonsterSpawns(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public <T extends Entity> Collection<T> getEntitiesByClass(Class<T> type) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Collection<Entity> getEntitiesByClasses(Class<?>... types) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public LivingEntity spawnCreature(Location arg0, EntityType arg1) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public <T> void playEffect(Location lctn, Effect effect, T t) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public <T> void playEffect(Location lctn, Effect effect, T t, int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setMetadata(String string, MetadataValue mv) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<MetadataValue> getMetadata(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasMetadata(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void removeMetadata(String string, Plugin plugin) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setBiome(int arg0, int arg1, Biome arg2) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getMonsterSpawnLimit() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setMonsterSpawnLimit(int arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getAnimalSpawnLimit() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setAnimalSpawnLimit(int arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getWaterAnimalSpawnLimit() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setWaterAnimalSpawnLimit(int arg0) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Entity spawnEntity(Location loc, EntityType type) - { - throw new UnsupportedOperationException("Not supported yet."); - } -} diff --git a/Essentials/test/net/ess3/StorageTest.java b/Essentials/test/net/ess3/StorageTest.java index 4ba1e6400..8274f0e91 100644 --- a/Essentials/test/net/ess3/StorageTest.java +++ b/Essentials/test/net/ess3/StorageTest.java @@ -1,13 +1,13 @@ package net.ess3; import java.io.*; -import net.ess3.api.server.Location; import net.ess3.settings.Settings; import net.ess3.storage.ObjectLoadException; import net.ess3.storage.StorageObject; import net.ess3.storage.YamlStorageReader; import net.ess3.storage.YamlStorageWriter; import net.ess3.utils.ExecuteTimer; +import org.bukkit.Location; import org.junit.Test; @@ -75,7 +75,7 @@ public class StorageTest extends EssentialsTest for (int j = 0; j < 10000; j++) { - userdata.getHomes().put("home", new net.ess3.storage.StoredLocation(Location.create(world, j, j, j))); + userdata.getHomes().put("home", new net.ess3.storage.StoredLocation(new Location(world, j, j, j))); } ext.mark("change home 10000 times"); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); diff --git a/Essentials/test/net/ess3/UserTest.java b/Essentials/test/net/ess3/UserTest.java index 220f56f3c..364c345a9 100644 --- a/Essentials/test/net/ess3/UserTest.java +++ b/Essentials/test/net/ess3/UserTest.java @@ -1,11 +1,6 @@ package net.ess3; -import java.io.IOException; -import junit.framework.TestCase; import net.ess3.api.IUser; -import net.ess3.user.User; -import org.bukkit.World.Environment; -import org.bukkit.plugin.InvalidDescriptionException; public class UserTest extends EssentialsTest @@ -16,7 +11,7 @@ public class UserTest extends EssentialsTest { super(testName); - server.addPlayer("testPlayer1"); + addPlayer("testPlayer1"); base1 = ess.getUserMap().getUser("testPlayer1"); } diff --git a/Essentials/test/net/ess3/UtilTest.java b/Essentials/test/net/ess3/UtilTest.java index dc7dc7b66..77035da03 100644 --- a/Essentials/test/net/ess3/UtilTest.java +++ b/Essentials/test/net/ess3/UtilTest.java @@ -1,13 +1,12 @@ package net.ess3; -import net.ess3.api.InvalidNameException; -import net.ess3.utils.DateUtil; -import net.ess3.utils.Util; - import java.util.Calendar; import java.util.GregorianCalendar; import java.util.logging.Level; import java.util.logging.Logger; +import net.ess3.api.InvalidNameException; +import net.ess3.utils.DateUtil; +import net.ess3.utils.Util; public class UtilTest extends EssentialsTest diff --git a/Essentials/test/net/ess3/testserver/TestPlayer.java b/Essentials/test/net/ess3/testserver/TestPlayer.java deleted file mode 100644 index 5f4e75f17..000000000 --- a/Essentials/test/net/ess3/testserver/TestPlayer.java +++ /dev/null @@ -1,206 +0,0 @@ -package net.ess3.testserver; - -import net.ess3.api.IUser; -import net.ess3.api.server.*; - -public class TestPlayer implements Player { - - @Override - public IUser getUser() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getName() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getDisplayName() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isOnline() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setBanned(boolean bool) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void kickPlayer(String reason) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public TestWorld getWorld() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getEyeLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setFireTicks(int value) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setFoodLevel(int value) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSaturation(float value) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getHealth() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setHealth(int value) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void updateInventory() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public ItemStack getItemInHand() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getBedSpawnLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasPlayedBefore() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public IInventory getInventory() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isPlayer() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendMessage(String message) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isOp() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean hasPermission(Permission bukkitPermission) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void sendMessage(String[] string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setTotalExperience(int exp) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getTotalExperience() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setDisplayName(String name) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setPlayerListName(String name) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setSleepingIgnored(boolean b) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isBanned() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setCompassTarget(Location loc) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void damage(int value) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean isInSurvivalMode() - { - throw new UnsupportedOperationException("Not supported yet."); - } - -} diff --git a/Essentials/test/net/ess3/testserver/TestPlugin.java b/Essentials/test/net/ess3/testserver/TestPlugin.java deleted file mode 100644 index 6d624ab6d..000000000 --- a/Essentials/test/net/ess3/testserver/TestPlugin.java +++ /dev/null @@ -1,103 +0,0 @@ -package net.ess3.testserver; - -import java.io.File; -import java.io.InputStream; -import java.util.logging.Logger; -import net.ess3.api.server.Location; -import net.ess3.api.server.Player; -import net.ess3.api.server.Plugin; -import net.ess3.api.server.Server; - -public class TestPlugin implements Plugin { - - @Override - public int scheduleAsyncDelayedTask(Runnable run) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int scheduleSyncDelayedTask(Runnable run) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int scheduleSyncDelayedTask(Runnable run, long delay) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int scheduleSyncRepeatingTask(Runnable run, long delay, long period) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public File getRootFolder() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public File getDataFolder() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void cancelTask(int taskId) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getVersion() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Class getClassByName(String name) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public InputStream getResource(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int scheduleAsyncRepeatingTask(Runnable run, long delay, long period) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location callRespawnEvent(Player player, Location loc, boolean bedSpawn) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void callSuicideEvent(Player player) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Logger getLogger() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Server getServer() - { - throw new UnsupportedOperationException("Not supported yet."); - } - -} diff --git a/Essentials/test/net/ess3/testserver/TestServer.java b/Essentials/test/net/ess3/testserver/TestServer.java deleted file mode 100644 index 40b4cb217..000000000 --- a/Essentials/test/net/ess3/testserver/TestServer.java +++ /dev/null @@ -1,95 +0,0 @@ -package net.ess3.testserver; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import net.ess3.api.server.CommandSender; -import net.ess3.api.server.Player; -import net.ess3.api.server.Server; -import net.ess3.api.server.World; - -public class TestServer implements Server { - - public TestServer() - { - } - - - - @Override - public List<World> getWorlds() - { - return Collections.<World>singletonList(new TestWorld()); - } - - @Override - public World getWorld(final String name) - { - final World world = getWorlds().get(0); - if (name.equals(world.getName())) { - return world; - } else { - return null; - } - } - - public void addPlayer(final String name) - { - - } - - @Override - public int broadcastMessage(String message) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Collection<Player> getOnlinePlayers() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public CommandSender getConsoleSender() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void dispatchCommand(CommandSender sender, String command) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void banIP(String ip) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public <T> T getServiceProvider(Class<T> clazz) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public String getVersion() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void unbanIP(String string) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Player getPlayer(String name) - { - throw new UnsupportedOperationException("Not supported yet."); - } - -} diff --git a/Essentials/test/net/ess3/testserver/TestWorld.java b/Essentials/test/net/ess3/testserver/TestWorld.java deleted file mode 100644 index ce258004d..000000000 --- a/Essentials/test/net/ess3/testserver/TestWorld.java +++ /dev/null @@ -1,77 +0,0 @@ -package net.ess3.testserver; - -import java.util.UUID; -import net.ess3.api.server.ItemStack; -import net.ess3.api.server.Location; -import net.ess3.api.server.World; -import org.bukkit.TreeType; - -public class TestWorld implements World { - - @Override - public String getName() - { - return "TestWorld"; - } - - @Override - public boolean generateTree(Location safeLocation, TreeType tree) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getHighestBlockYAt(int topX, int topZ) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public ItemStack dropItem(Location loc, ItemStack stack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public UUID getUID() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Location getSpawnLocation() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void dropItemNaturally(Location location, ItemStack overflowStack) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setStorm(boolean b) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setWeatherDuration(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public long getTime() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public boolean setSpawnLocation(int blockX, int blockY, int blockZ) - { - throw new UnsupportedOperationException("Not supported yet."); - } - -} diff --git a/Essentials2Compat/src/com/earth2me/essentials/Economy.java b/Essentials2Compat/src/com/earth2me/essentials/Economy.java index bf1c9a61d..7e489726c 100644 --- a/Essentials2Compat/src/com/earth2me/essentials/Economy.java +++ b/Essentials2Compat/src/com/earth2me/essentials/Economy.java @@ -3,6 +3,7 @@ package com.earth2me.essentials; import net.ess3.api.IEssentials; import net.ess3.api.NoLoanPermittedException; import net.ess3.api.UserDoesNotExistException; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; @@ -179,7 +180,7 @@ public final class Economy { throw new RuntimeException(noCallBeforeLoad); } - return Util.displayCurrency(amount, ess); + return FormatUtil.displayCurrency(amount, ess); } /** diff --git a/Essentials2Compat/src/com/earth2me/essentials/EssentialsUpgrade.java b/Essentials2Compat/src/com/earth2me/essentials/EssentialsUpgrade.java index 605262151..02e6c918f 100644 --- a/Essentials2Compat/src/com/earth2me/essentials/EssentialsUpgrade.java +++ b/Essentials2Compat/src/com/earth2me/essentials/EssentialsUpgrade.java @@ -31,11 +31,11 @@ public class EssentialsUpgrade EssentialsUpgrade(final IEssentials essentials) { ess = essentials; - if (!ess.getDataFolder().exists()) + if (!ess.getPlugin().getDataFolder().exists()) { - ess.getDataFolder().mkdirs(); + ess.getPlugin().getDataFolder().mkdirs(); } - doneFile = new EssentialsConf(new File(ess.getDataFolder(), "upgrades-done.yml")); + doneFile = new EssentialsConf(new File(ess.getPlugin().getDataFolder(), "upgrades-done.yml")); doneFile.load(); } @@ -47,7 +47,7 @@ public class EssentialsUpgrade } try { - final File configFile = new File(ess.getDataFolder(), "config.yml"); + final File configFile = new File(ess.getPlugin().getDataFolder(), "config.yml"); if (!configFile.exists()) { return; @@ -87,12 +87,12 @@ public class EssentialsUpgrade } try { - final File file = new File(ess.getDataFolder(), name + ".txt"); + final File file = new File(ess.getPlugin().getDataFolder(), name + ".txt"); if (file.exists()) { return; } - final File configFile = new File(ess.getDataFolder(), "config.yml"); + final File configFile = new File(ess.getPlugin().getDataFolder(), "config.yml"); if (!configFile.exists()) { return; @@ -127,7 +127,7 @@ public class EssentialsUpgrade { boolean needUpdate = false; final BufferedReader bReader = new BufferedReader(new FileReader(file)); - final File tempFile = File.createTempFile("essentialsupgrade", ".tmp.yml", ess.getDataFolder()); + final File tempFile = File.createTempFile("essentialsupgrade", ".tmp.yml", ess.getPlugin().getDataFolder()); final BufferedWriter bWriter = new BufferedWriter(new FileWriter(tempFile)); do { @@ -188,7 +188,7 @@ public class EssentialsUpgrade { return; } - final File userdataFolder = new File(ess.getDataFolder(), "userdata"); + final File userdataFolder = new File(ess.getPlugin().getDataFolder(), "userdata"); if (!userdataFolder.exists() || !userdataFolder.isDirectory()) { return; @@ -251,7 +251,7 @@ public class EssentialsUpgrade { return; } - final File userdataFolder = new File(ess.getDataFolder(), "userdata"); + final File userdataFolder = new File(ess.getPlugin().getDataFolder(), "userdata"); if (!userdataFolder.exists() || !userdataFolder.isDirectory()) { return; @@ -304,7 +304,7 @@ public class EssentialsUpgrade { return; } - final File userdataFolder = new File(ess.getDataFolder(), "userdata"); + final File userdataFolder = new File(ess.getPlugin().getDataFolder(), "userdata"); if (!userdataFolder.exists() || !userdataFolder.isDirectory()) { return; @@ -389,7 +389,7 @@ public class EssentialsUpgrade */ private void convertWarps() { - final File warpsFolder = new File(ess.getDataFolder(), "warps"); + final File warpsFolder = new File(ess.getPlugin().getDataFolder(), "warps"); if (!warpsFolder.exists()) { warpsFolder.mkdirs(); @@ -555,7 +555,7 @@ public class EssentialsUpgrade { return; } - final File file = new File(ess.getDataFolder(), "items.csv"); + final File file = new File(ess.getPlugin().getDataFolder(), "items.csv"); if (file.exists()) { try @@ -602,7 +602,7 @@ public class EssentialsUpgrade { return; } - final File configFile = new File(ess.getDataFolder(), "spawn.yml"); + final File configFile = new File(ess.getPlugin().getDataFolder(), "spawn.yml"); if (configFile.exists()) { @@ -619,7 +619,7 @@ public class EssentialsUpgrade StoredLocation loc = getFakeLocation(config, group); spawns.getSpawns().put(group.toLowerCase(Locale.ENGLISH), loc); } - if (!configFile.renameTo(new File(ess.getDataFolder(), "spawn.yml.old"))) + if (!configFile.renameTo(new File(ess.getPlugin().getDataFolder(), "spawn.yml.old"))) { throw new Exception(_("fileRenameError", "spawn.yml")); } @@ -649,7 +649,7 @@ public class EssentialsUpgrade { return; } - final File configFile = new File(ess.getDataFolder(), "jail.yml"); + final File configFile = new File(ess.getPlugin().getDataFolder(), "jail.yml"); if (configFile.exists()) { @@ -666,7 +666,7 @@ public class EssentialsUpgrade StoredLocation loc = getFakeLocation(config, jailName); jails.getJails().put(jailName.toLowerCase(Locale.ENGLISH), loc); } - if (!configFile.renameTo(new File(ess.getDataFolder(), "jail.yml.old"))) + if (!configFile.renameTo(new File(ess.getPlugin().getDataFolder(), "jail.yml.old"))) { throw new Exception(_("fileRenameError", "jail.yml")); } @@ -704,9 +704,9 @@ public class EssentialsUpgrade public void beforeSettings() { - if (!ess.getDataFolder().exists()) + if (!ess.getPlugin().getDataFolder().exists()) { - ess.getDataFolder().mkdirs(); + ess.getPlugin().getDataFolder().mkdirs(); } moveWorthValuesToWorthYml(); moveMotdRulesToFile("motd"); diff --git a/EssentialsAntiBuild/pom.xml b/EssentialsAntiBuild/pom.xml new file mode 100644 index 000000000..1346a3706 --- /dev/null +++ b/EssentialsAntiBuild/pom.xml @@ -0,0 +1,21 @@ + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>net.essentials3</groupId> + <artifactId>BuildAll</artifactId> + <version>3.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>EssentialsAntiBuild</artifactId> + <dependencies> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>Essentials</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> +</project> diff --git a/EssentialsAntiBuild/src/net/ess3/antibuild/AntiBuildHolder.java b/EssentialsAntiBuild/src/net/ess3/antibuild/AntiBuildHolder.java new file mode 100644 index 000000000..ef3aebc06 --- /dev/null +++ b/EssentialsAntiBuild/src/net/ess3/antibuild/AntiBuildHolder.java @@ -0,0 +1,31 @@ +package net.ess3.antibuild; + +import java.io.File; +import java.io.IOException; +import net.ess3.api.IEssentials; +import net.ess3.settings.antibuild.AntiBuild; +import net.ess3.storage.AsyncStorageObjectHolder; + +public class AntiBuildHolder extends AsyncStorageObjectHolder<AntiBuild> +{ + public AntiBuildHolder(final IEssentials ess) + { + super(ess, AntiBuild.class); + } + + @Override + public File getStorageFile() throws IOException + { + return new File(ess.getPlugin().getDataFolder(), "protect.yml"); + } + + @Override + public void finishRead() + { + } + + @Override + public void finishWrite() + { + } +} diff --git a/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuild.java b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuild.java new file mode 100644 index 000000000..50e3f56f2 --- /dev/null +++ b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuild.java @@ -0,0 +1,57 @@ +package net.ess3.antibuild; + +import java.util.EnumMap; +import java.util.List; +import java.util.Map; +import java.util.logging.Logger; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; + + +public class EssentialsAntiBuild extends JavaPlugin implements IAntiBuild +{ + private static final Logger LOGGER = Logger.getLogger("Minecraft"); + private transient EssentialsConnect ess = null; + private transient AntiBuildHolder settings = null; + + @Override + public void onEnable() + { + final PluginManager pm = this.getServer().getPluginManager(); + final Plugin essPlugin = pm.getPlugin("Essentials"); + if (essPlugin == null || !essPlugin.isEnabled()) + { + return; + } + ess = new EssentialsConnect(essPlugin, this); + + final EssentialsAntiBuildListener blockListener = new EssentialsAntiBuildListener(this); + pm.registerEvents(blockListener, this); + } + + @Override + public boolean checkProtectionItems(final int id) + { + final List<Integer> itemList = settingsList.get(list); + return itemList != null && !itemList.isEmpty() && itemList.contains(id); + } + + @Override + public EssentialsConnect getEssentialsConnect() + { + return ess; + } + + @Override + public AntiBuildHolder getSettings() + { + return settings; + } + + @Override + public void setSettings(final AntiBuildHolder settings) + { + this.settings = settings; + } +} diff --git a/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java new file mode 100644 index 000000000..03bce34b6 --- /dev/null +++ b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java @@ -0,0 +1,322 @@ +package net.ess3.antibuild; + +import java.util.logging.Level; +import static net.ess3.I18n._; +import net.ess3.api.IEssentials; +import net.ess3.api.IUser; +import net.ess3.user.User; +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; + + +public class EssentialsAntiBuildListener implements Listener +{ + final private transient IAntiBuild antib; + final private transient IEssentials ess; + + public EssentialsAntiBuildListener(final IAntiBuild parent) + { + this.antib = parent; + this.ess = antib.getEssentialsConnect().getEssentials(); + } + + private boolean metaPermCheck(final User user, final String action, final Block block) + { + if (block == null) + { + return false; + } + return metaPermCheck(user, action, block.getTypeId(), block.getData()); + } + + 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(final User user, final String action, final int blockId, final byte data) + { + final String blockPerm = "essentials.build." + action + "." + blockId; + final String dataPerm = blockPerm + ":" + data; + + if (user.isPermissionSet(dataPerm)) + { + return user.isAuthorized(dataPerm); + } + else + { + if (ess.getSettings().isDebug()) + { + ess.getLogger().log(Level.INFO, "DataValue perm on " + user.getName() + " is not directly set: " + dataPerm); + } + } + + return user.isAuthorized(blockPerm); + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockPlace(final BlockPlaceEvent event) + { + final AntiBuildHolder ab = antib.getSettings(); + ab.acquireReadLock(); + final IUser user = ess.getUserMap().getUser(event.getPlayer()); + final Block block = event.getBlockPlaced(); + final int typeId = block.getTypeId(); + final Material type = block.getType(); + + try + { + + if (ab.getData().isBuild() + && !user.canBuild() && !user.hasPermission("essentials.build") + && !Permissions.getPlacePermission(type).isAuthorized(user)) + //metaPermCheck(user, "place", block)) todo - double check metadata + { + if (ab.getData().isWarnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildPlace", type.toString())); + } + event.setCancelled(true); + return; + } + + if (ab.getData().getBlacklist().getPlacement().contains(type) && !Permissions.BLACKLIST_ALLOWPLACEMENT.isAuthorized(user)) + //antib.checkProtectionItems(AntiBuildConfig.blacklist_placement, typeId) && !user.isAuthorized("essentials.protect.exemptplacement")) + { + if (ab.getData().isWarnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildPlace", type.toString())); + } + event.setCancelled(true); + return; + } + + if (ab.getData().getAlert().getAlertOnPlacement().contains(type) + && !Permissions.ALERTS_NOTRIGGER.isAuthorized(user)) + { + antib.getEssentialsConnect().alert(user, type.toString(), _("alertPlaced")); + } + } + finally + { + ab.unlock(); + } + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockBreak(final BlockBreakEvent event) + { + final AntiBuildHolder ab = antib.getSettings(); + ab.acquireReadLock(); + final IUser user = ess.getUserMap().getUser(event.getPlayer()); + final Block block = event.getBlock(); + final int typeId = block.getTypeId(); + final Material type = block.getType(); + + try + { + if (ab.getData().isBuild() && !user.canBuild() && !user.isAuthorized("essentials.build") + && !Permissions.getBreakPermission(type).isAuthorized(user)) + //!metaPermCheck(user, "break", block)) + { + if (ab.getData().isWarnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildBreak", type.toString())); + } + event.setCancelled(true); + return; + } + + if (ab.getData().getBlacklist().getBreaking().contains(type) && !Permissions.BLACKLIST_ALLOWBREAK.isAuthorized(user)) + { + if (ab.getData().isWarnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildBreak", type.toString())); + } + event.setCancelled(true); + return; + } + + if (antib.checkProtectionItems(AntiBuildConfig.alert_on_break, typeId) + && !user.isAuthorized("essentials.protect.alerts.notrigger")) + { + antib.getEssentialsConnect().alert(user, type.toString(), _("alertBroke")); + } + } + finally + { + ab.unlock(); + } + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onPaintingBreak(final PaintingBreakByEntityEvent event) + { + final Entity entity = event.getRemover(); + if (entity instanceof Player) + { + final User user = ess.getUser(entity); + if (antib.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build") + && !metaPermCheck(user, "break", Material.PAINTING.getId())) + { + if (ess.getSettings().warnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildBreak", Material.PAINTING.toString())); + } + event.setCancelled(true); + } + } + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockPistonExtend(final BlockPistonExtendEvent event) + { + for (Block block : event.getBlocks()) + { + if (antib.checkProtectionItems(AntiBuildConfig.blacklist_piston, block.getTypeId())) + { + event.setCancelled(true); + return; + } + } + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockPistonRetract(final BlockPistonRetractEvent event) + { + if (!event.isSticky()) + { + return; + } + final Block block = event.getRetractLocation().getBlock(); + if (antib.checkProtectionItems(AntiBuildConfig.blacklist_piston, block.getTypeId())) + { + event.setCancelled(true); + return; + } + } + + @EventHandler(priority = EventPriority.LOW) + public void onPlayerInteract(final PlayerInteractEvent event) + { + // Do not return if cancelled, because the interact event has 2 cancelled states. + final User user = ess.getUser(event.getPlayer()); + final ItemStack item = event.getItem(); + + if (item != null + && antib.checkProtectionItems(AntiBuildConfig.blacklist_usage, item.getTypeId()) + && !user.isAuthorized("essentials.protect.exemptusage")) + { + if (ess.getSettings().warnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildUse", item.getType().toString())); + } + event.setCancelled(true); + return; + } + + if (item != null + && antib.checkProtectionItems(AntiBuildConfig.alert_on_use, item.getTypeId()) + && !user.isAuthorized("essentials.protect.alerts.notrigger")) + { + antib.getEssentialsConnect().alert(user, item.getType().toString(), _("alertUsed")); + } + + if (antib.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build")) + { + if (event.hasItem() && !metaPermCheck(user, "interact", item.getTypeId(), item.getData().getData())) + { + event.setCancelled(true); + if (ess.getSettings().warnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildUse", item.getType().toString())); + } + return; + } + if (event.hasBlock() && !metaPermCheck(user, "interact", event.getClickedBlock())) + { + event.setCancelled(true); + if (ess.getSettings().warnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildInteract", event.getClickedBlock().getType().toString())); + } + } + } + } + + @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 (antib.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 (antib.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 IUser user = ess.getUserMap().getUser(event.getPlayer()); + final ItemStack item = event.getItemDrop().getItemStack(); + + if (antib.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build")) + { + if (!metaPermCheck(user, "drop", item.getTypeId(), item.getData().getData())) + { + event.setCancelled(true); + user.getPlayer().updateInventory(); + if (ess.getSettings().warnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildDrop", item.getType().toString())); + } + } + } + } +} diff --git a/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsConnect.java b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsConnect.java new file mode 100644 index 000000000..b9a669348 --- /dev/null +++ b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsConnect.java @@ -0,0 +1,55 @@ +package net.ess3.antibuild; + +import java.util.logging.Level; +import java.util.logging.Logger; +import static net.ess3.I18n._; +import net.ess3.api.IEssentials; +import net.ess3.api.IUser; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + + +public class EssentialsConnect +{ + private static final Logger LOGGER = Logger.getLogger("Minecraft"); + private final transient IEssentials ess; + private final transient IAntiBuild antib; + + public EssentialsConnect(Plugin essPlugin, Plugin essProtect) + { + if (!essProtect.getDescription().getVersion().equals(essPlugin.getDescription().getVersion())) + { + LOGGER.log(Level.WARNING, _("versionMismatchAll")); + } + ess = (IEssentials)essPlugin; + antib = (IAntiBuild)essProtect; + antib.setSettings(new AntiBuildHolder(ess)); + } + + public void onDisable() + { + } + + public IEssentials getEssentials() + { + return ess; + } + + public void alert(final IUser user, final String item, final String type) + { + final Location loc = user.getPlayer().getLocation(); + final String warnMessage = _("alertFormat", user.getName(), type, item, + loc.getWorld().getName() + "," + loc.getBlockX() + "," + + loc.getBlockY() + "," + loc.getBlockZ()); + LOGGER.log(Level.WARNING, warnMessage); + for (Player p : ess.getServer().getOnlinePlayers()) + { + final IUser alertUser = ess.getUserMap().getUser(p); + if (Permissions.ALERTS.isAuthorized(alertUser)) + { + alertUser.sendMessage(warnMessage); + } + } + } +}
\ No newline at end of file diff --git a/EssentialsAntiBuild/src/net/ess3/antibuild/IAntiBuild.java b/EssentialsAntiBuild/src/net/ess3/antibuild/IAntiBuild.java new file mode 100644 index 000000000..e65773bd7 --- /dev/null +++ b/EssentialsAntiBuild/src/net/ess3/antibuild/IAntiBuild.java @@ -0,0 +1,15 @@ +package net.ess3.antibuild; + + +import org.bukkit.plugin.Plugin; + +public interface IAntiBuild extends Plugin +{ + boolean checkProtectionItems(final int id); + + EssentialsConnect getEssentialsConnect(); + + AntiBuildHolder getSettings(); + + void setSettings(AntiBuildHolder settings); +} diff --git a/EssentialsAntiBuild/src/net/ess3/antibuild/Permissions.java b/EssentialsAntiBuild/src/net/ess3/antibuild/Permissions.java new file mode 100644 index 000000000..7088fb0e0 --- /dev/null +++ b/EssentialsAntiBuild/src/net/ess3/antibuild/Permissions.java @@ -0,0 +1,177 @@ +package net.ess3.antibuild; + +import java.util.EnumMap; +import java.util.Locale; +import net.ess3.api.IPermission; +import net.ess3.bukkit.PermissionFactory; +import net.ess3.permissions.BasePermission; +import org.bukkit.Material; +import org.bukkit.command.CommandSender; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; + + +public enum Permissions implements IPermission +{ + + BLACKLIST_ALLOWPLACEMENT, + BLACKLIST_ALLOWUSAGE, + BLACKLIST_ALLOWBREAK, + ALERTS, + ALERTS_NOTRIGGER; + private static final String base = "essentials.build."; + private final String permission; + private final PermissionDefault defaultPerm; + private transient Permission bukkitPerm = null; + + private Permissions() + { + this(PermissionDefault.OP); + } + + private Permissions(final PermissionDefault defaultPerm) + { + permission = base + toString().toLowerCase(Locale.ENGLISH).replace('_', '.'); + this.defaultPerm = defaultPerm; + } + + @Override + public String getPermissionName() + { + return permission; + } + + @Override + public Permission getPermission() + { + if (bukkitPerm != null) + { + return bukkitPerm; + } + else + { + return PermissionFactory.registerPermission(getPermissionName(), getPermissionDefault()); + } + } + + @Override + public PermissionDefault getPermissionDefault() + { + return this.defaultPerm; + } + + @Override + public boolean isAuthorized(final CommandSender sender) + { + return sender.hasPermission(getPermission()); + } + + private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); + + public static IPermission getPlacePermission(final Material mat) + { + IPermission perm = permissions.get(mat); + if (perm == null) + { + perm = new BasePermission("essentials.place.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) + { + @Override + public PermissionDefault getPermissionDefault() + { + return PermissionDefault.TRUE; + } + }; + permissions.put(mat, perm); + } + return perm; + } + + public static IPermission getBreakPermission(final Material mat) + { + IPermission perm = permissions.get(mat); + if (perm == null) + { + perm = new BasePermission("essentials.break.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) + { + @Override + public PermissionDefault getPermissionDefault() + { + return PermissionDefault.TRUE; + } + }; + permissions.put(mat, perm); + } + return perm; + } + + public static IPermission getInteractPermission(final Material mat) + { + IPermission perm = permissions.get(mat); + if (perm == null) + { + perm = new BasePermission("essentials.interact.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) + { + @Override + public PermissionDefault getPermissionDefault() + { + return PermissionDefault.TRUE; + } + }; + permissions.put(mat, perm); + } + return perm; + } + public static IPermission getCraftPermission(final Material mat) + { + IPermission perm = permissions.get(mat); + if (perm == null) + { + perm = new BasePermission("essentials.craft.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) + { + @Override + public PermissionDefault getPermissionDefault() + { + return PermissionDefault.TRUE; + } + }; + permissions.put(mat, perm); + } + return perm; + } + + public static IPermission getPickupPermission(final Material mat) + { + IPermission perm = permissions.get(mat); + if (perm == null) + { + perm = new BasePermission("essentials.pickup.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) + { + @Override + public PermissionDefault getPermissionDefault() + { + return PermissionDefault.TRUE; + } + }; + permissions.put(mat, perm); + } + return perm; + } + + public static IPermission getDropPermission(final Material mat) + { + IPermission perm = permissions.get(mat); + if (perm == null) + { + perm = new BasePermission("essentials.drop.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) + { + @Override + public PermissionDefault getPermissionDefault() + { + return PermissionDefault.TRUE; + } + }; + permissions.put(mat, perm); + } + return perm; + } +} diff --git a/EssentialsAntiBuild/src/plugin.yml b/EssentialsAntiBuild/src/plugin.yml new file mode 100644 index 000000000..c838528c5 --- /dev/null +++ b/EssentialsAntiBuild/src/plugin.yml @@ -0,0 +1,9 @@ +# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.) +name: EssentialsAntiBuild +main: net.ess3.antibuild.EssentialsAnitBuild +# 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 build protection. +authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits, Iaccidentally] +softdepend: [Essentials]
\ No newline at end of file diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsChat.java b/EssentialsChat/src/net/ess3/chat/EssentialsChat.java index 4c922c45f..66286a3af 100644 --- a/EssentialsChat/src/net/ess3/chat/EssentialsChat.java +++ b/EssentialsChat/src/net/ess3/chat/EssentialsChat.java @@ -9,6 +9,7 @@ import java.util.HashMap; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import net.ess3.api.IPlugin; import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -22,12 +23,13 @@ public class EssentialsChat extends JavaPlugin public void onEnable() { final PluginManager pluginManager = getServer().getPluginManager(); - final IEssentials ess = (IEssentials)pluginManager.getPlugin("Essentials-3"); - if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion())) + final IPlugin plugin = (IPlugin)pluginManager.getPlugin("Essentials-3"); + final IEssentials ess = (IEssentials)plugin.getEssentials(); + if (!this.getDescription().getVersion().equals(plugin.getDescription().getVersion())) { LOGGER.log(Level.WARNING, _("versionMismatchAll")); } - if (!ess.isEnabled()) + if (!plugin.isEnabled()) { this.setEnabled(false); return; diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java b/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java index f3ce3abaf..9bf791372 100644 --- a/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java +++ b/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java @@ -12,6 +12,7 @@ import net.ess3.utils.Util; import java.util.Locale; import java.util.Map; import java.util.logging.Logger; +import net.ess3.utils.FormatUtil; import org.bukkit.Server; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -80,10 +81,10 @@ public abstract class EssentialsChatPlayer implements Listener final IUser user = chatStore.getUser(); if (Permissions.CHAT_COLOR.isAuthorized(user)) { - event.setMessage(Util.stripColor(event.getMessage())); + event.setMessage(FormatUtil.stripColor(event.getMessage())); } String group = ess.getRanks().getMainGroup(user); - String world = user.getWorld().getName(); + String world = user.getPlayer().getWorld().getName(); IRanks groupSettings = ess.getRanks(); event.setFormat(groupSettings.getChatFormat(user).format(new Object[] diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEventListener.java b/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEventListener.java index f248a21a4..be4c5305c 100644 --- a/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEventListener.java +++ b/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEventListener.java @@ -43,7 +43,7 @@ public class EssentialsLocalChatEventListener implements Listener if (!user.equals(sender)) { boolean abort = false; - final Location playerLoc = user.getLocation(); + final Location playerLoc = user.getPlayer().getLocation(); if (playerLoc.getWorld() != world) { abort = true; diff --git a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIP.java b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIP.java index 9767f213b..265a47947 100644 --- a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIP.java +++ b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIP.java @@ -3,6 +3,7 @@ package net.ess3.geoip; import static net.ess3.I18n._; import net.ess3.api.IEssentials; import java.util.logging.Level; +import net.ess3.api.IPlugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -13,12 +14,13 @@ public class EssentialsGeoIP extends JavaPlugin public void onEnable() { final PluginManager pm = getServer().getPluginManager(); - final IEssentials ess = (IEssentials)pm.getPlugin("Essentials-3"); - if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion())) + final IPlugin plugin = (IPlugin)pm.getPlugin("Essentials-3"); + final IEssentials ess = (IEssentials)plugin.getEssentials(); + if (!this.getDescription().getVersion().equals(plugin.getDescription().getVersion())) { getLogger().log(Level.WARNING, _("versionMismatchAll")); } - if (!ess.isEnabled()) + if (!plugin.isEnabled()) { this.setEnabled(false); return; diff --git a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java index 5c12f09c6..676539b08 100644 --- a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java +++ b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java @@ -100,7 +100,7 @@ public class EssentialsGeoIPPlayerListener implements Listener, IReload final IUser user = ess.getUserMap().getUser(player); if (Permissions.GEOIP_SHOW.isAuthorized(user)) { - user.sendMessage(_("geoipJoinFormat", user.getDisplayName(), builder.toString())); + user.sendMessage(_("geoipJoinFormat", user.getPlayer().getDisplayName(), builder.toString())); } } } diff --git a/EssentialsProtect/pom.xml b/EssentialsProtect/pom.xml index 973e08bbc..3fcd5c2b1 100644 --- a/EssentialsProtect/pom.xml +++ b/EssentialsProtect/pom.xml @@ -9,43 +9,14 @@ <version>3.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> - + <artifactId>EssentialsProtect</artifactId> - <dependencies> - <dependency> - <groupId>c3p0</groupId> - <artifactId>c3p0</artifactId> - <version>0.9.1.2</version> - </dependency> + <dependencies> <dependency> <groupId>${project.groupId}</groupId> <artifactId>Essentials</artifactId> <version>${project.version}</version> </dependency> </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>1.7</version> - <executions> - <execution> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <artifactSet> - <includes> - <include>c3p0:c3p0</include> - </includes> - </artifactSet> - <minimizeJar>true</minimizeJar> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> + </project> diff --git a/EssentialsProtect/src/net/ess3/protect/BlockBreakPermissions.java b/EssentialsProtect/src/net/ess3/protect/BlockBreakPermissions.java deleted file mode 100644 index 1a07588e8..000000000 --- a/EssentialsProtect/src/net/ess3/protect/BlockBreakPermissions.java +++ /dev/null @@ -1,46 +0,0 @@ -package net.ess3.protect; - -import net.ess3.api.IPermission; -import net.ess3.permissions.AbstractSuperpermsPermission; -import java.util.EnumMap; -import java.util.Locale; -import java.util.Map; -import org.bukkit.Material; -import org.bukkit.permissions.PermissionDefault; - - -public final class BlockBreakPermissions extends AbstractSuperpermsPermission -{ - private static Map<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); - private static final String base = "essentials.protect.blockbreak."; - private final String permission; - - public static IPermission getPermission(final Material mat) - { - IPermission perm = permissions.get(mat); - if (perm == null) - { - perm = new BlockBreakPermissions(mat.toString().toLowerCase(Locale.ENGLISH)); - permissions.put(mat, perm); - } - return perm; - } - - private BlockBreakPermissions(final String matName) - { - super(); - this.permission = base + matName; - } - - @Override - public String getPermission() - { - return this.permission; - } - - @Override - public PermissionDefault getPermissionDefault() - { - return PermissionDefault.TRUE; - } -} diff --git a/EssentialsProtect/src/net/ess3/protect/BlockPlacePermissions.java b/EssentialsProtect/src/net/ess3/protect/BlockPlacePermissions.java deleted file mode 100644 index 87e771e73..000000000 --- a/EssentialsProtect/src/net/ess3/protect/BlockPlacePermissions.java +++ /dev/null @@ -1,46 +0,0 @@ -package net.ess3.protect; - -import net.ess3.api.IPermission; -import net.ess3.permissions.AbstractSuperpermsPermission; -import java.util.EnumMap; -import java.util.Locale; -import java.util.Map; -import org.bukkit.Material; -import org.bukkit.permissions.PermissionDefault; - - -public class BlockPlacePermissions extends AbstractSuperpermsPermission -{ - private static Map<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); - private static final String base = "essentials.protect.blockplace."; - private final String permission; - - public static IPermission getPermission(final Material mat) - { - IPermission perm = permissions.get(mat); - if (perm == null) - { - perm = new BlockPlacePermissions(mat.toString().toLowerCase(Locale.ENGLISH)); - permissions.put(mat, perm); - } - return perm; - } - - private BlockPlacePermissions(final String matName) - { - super(); - this.permission = base + matName; - } - - @Override - public String getPermission() - { - return this.permission; - } - - @Override - public PermissionDefault getPermissionDefault() - { - return PermissionDefault.TRUE; - } -} diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java b/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java index b500c3ea3..96a161a5f 100644 --- a/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java +++ b/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java @@ -2,15 +2,8 @@ package net.ess3.protect; import static net.ess3.I18n._; import net.ess3.api.IEssentials; -import net.ess3.api.IReload; -import net.ess3.api.IUser; -import net.ess3.protect.data.ProtectedBlockMySQL; -import net.ess3.protect.data.ProtectedBlockSQLite; -import java.beans.PropertyVetoException; import java.util.logging.Level; import java.util.logging.Logger; -import org.bukkit.Location; -import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; @@ -29,96 +22,11 @@ public class EssentialsConnect ess = (IEssentials)essPlugin; protect = (IProtect)essProtect; protect.setSettings(new ProtectHolder(ess)); - final ProtectReloader pr = new ProtectReloader(); - pr.onReload(); - ess.addReloadListener(pr); } public IEssentials getEssentials() { return ess; } - - public void alert(final Player user, final String item, final String type) - { - final Location loc = user.getLocation(); - final String warnMessage = _("alertFormat", user.getName(), type, item, - loc.getWorld().getName() + "," + loc.getBlockX() + "," - + loc.getBlockY() + "," + loc.getBlockZ()); - LOGGER.log(Level.WARNING, warnMessage); - for (Player p : ess.getServer().getOnlinePlayers()) - { - final IUser alertUser = ess.getUserMap().getUser(p); - if (Permissions.ALERTS.isAuthorized(alertUser)) - { - alertUser.sendMessage(warnMessage); - } - } - } - - - private class ProtectReloader implements IReload - { - @Override - public void onReload() - { - if (protect.getStorage() != null) - { - protect.getStorage().onPluginDeactivation(); - } - - /* - * for (ProtectConfig protectConfig : ProtectConfig.values()) { if (protectConfig.isList()) { - * protect.getSettingsList().put(protectConfig, - * ess.getSettings().getProtectList(protectConfig.getConfigName())); } else if (protectConfig.isString()) { - * protect.getSettingsString().put(protectConfig, - * ess.getSettings().getProtectString(protectConfig.getConfigName())); } else { - * protect.getSettingsBoolean().put(protectConfig, - * ess.getSettings().getProtectBoolean(protectConfig.getConfigName(), - * protectConfig.getDefaultValueBoolean())); } - * - * } - */ - - final ProtectHolder settings = protect.getSettings(); - settings.acquireReadLock(); - try - { - if (settings.getData().getDbtype().equalsIgnoreCase("mysql")) - { - try - { - protect.setStorage(new ProtectedBlockMySQL( - settings.getData().getDburl(), - settings.getData().getDbuser(), - settings.getData().getDbpassword())); - } - catch (PropertyVetoException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - else - { - try - { - protect.setStorage(new ProtectedBlockSQLite("jdbc:sqlite:" + ess.getDataFolder() + "/EssentialsProtect.db")); - } - catch (PropertyVetoException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - /*if (protect.getSettingBool(ProtectConfig.memstore)) - { - protect.setStorage(new ProtectedBlockMemory(protect.getStorage(), protect)); - }*/ - - } - finally - { - settings.unlock(); - } - } - } -} + +}
\ No newline at end of file diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsProtect.java b/EssentialsProtect/src/net/ess3/protect/EssentialsProtect.java index 9f1e58e10..fbccc3ec6 100644 --- a/EssentialsProtect/src/net/ess3/protect/EssentialsProtect.java +++ b/EssentialsProtect/src/net/ess3/protect/EssentialsProtect.java @@ -1,11 +1,7 @@ package net.ess3.protect; -import net.ess3.protect.data.IProtectedBlock; -import java.util.logging.Filter; import java.util.logging.Level; -import java.util.logging.LogRecord; import java.util.logging.Logger; - import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; @@ -15,28 +11,9 @@ import org.bukkit.plugin.java.JavaPlugin; public class EssentialsProtect extends JavaPlugin implements IProtect { private static final Logger LOGGER = Logger.getLogger("Minecraft"); - private static com.mchange.v2.log.MLogger C3P0logger; - //private final transient Map<ProtectConfig, Boolean> settingsBoolean = new EnumMap<ProtectConfig, Boolean>(ProtectConfig.class); - //private final transient Map<ProtectConfig, String> settingsString = new EnumMap<ProtectConfig, String>(ProtectConfig.class); - //private final transient Map<ProtectConfig, List<Integer>> settingsList = new EnumMap<ProtectConfig, List<Integer>>(ProtectConfig.class); - private transient IProtectedBlock storage = null; private transient EssentialsConnect ess = null; private transient ProtectHolder settings = null; - private transient com.mchange.v2.c3p0.management.ActiveManagementCoordinator temp; // leave this here for maven - - @Override - public void onLoad() - { - C3P0logger = com.mchange.v2.log.MLog.getLogger(com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.class); - C3P0logger.setFilter(new Filter() - { - public boolean isLoggable(final LogRecord lr) - { - return lr.getLevel() != Level.INFO; - } - }); - } - + @Override public void onEnable() { @@ -47,10 +24,7 @@ public class EssentialsProtect extends JavaPlugin implements IProtect enableEmergencyMode(pm); return; } - ess = new EssentialsConnect(essPlugin, this); - - final EssentialsProtectPlayerListener playerListener = new EssentialsProtectPlayerListener(this); - pm.registerEvents(playerListener, this); + ess = new EssentialsConnect(essPlugin, this); final EssentialsProtectBlockListener blockListener = new EssentialsProtectBlockListener(this); pm.registerEvents(blockListener, this); @@ -74,74 +48,12 @@ public class EssentialsProtect extends JavaPlugin implements IProtect LOGGER.log(Level.SEVERE, "Essentials not installed or failed to load. Essenials Protect is in emergency mode now."); } - /*@Override - public boolean checkProtectionItems(final ProtectConfig list, final int id) - { - final List<Integer> itemList = settingsList.get(list); - return itemList != null && !itemList.isEmpty() && itemList.contains(id); - }*/ - @Override - public IProtectedBlock getStorage() - { - return storage; - } - - @Override - public void setStorage(final IProtectedBlock pb) - { - storage = pb; - } - + @Override public EssentialsConnect getEssentialsConnect() { return ess; - } - - /*public Map<ProtectConfig, Boolean> getSettingsBoolean() - { - return settingsBoolean; - } - - public Map<ProtectConfig, String> getSettingsString() - { - return settingsString; - } - - public Map<ProtectConfig, List<Integer>> getSettingsList() - { - return settingsList; - } - - @Override - public boolean getSettingBool(final ProtectConfig protectConfig) - { - final Boolean bool = settingsBoolean.get(protectConfig); - return bool == null ? protectConfig.getDefaultValueBoolean() : bool; - } - - @Override - public String getSettingString(final ProtectConfig protectConfig) - { - final String str = settingsString.get(protectConfig); - return str == null ? protectConfig.getDefaultValueString() : str; - }*/ - @Override - public void onDisable() - { - if (storage != null) - { - storage.onPluginDeactivation(); - } - // Sleep for a second to allow the database to close. - try - { - Thread.sleep(1000); - } - catch (InterruptedException ex) - { - } - } + } @Override public ProtectHolder getSettings() diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java index 77bb472c7..6649469b9 100644 --- a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java +++ b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java @@ -1,15 +1,8 @@ package net.ess3.protect; -import static net.ess3.I18n._; -import net.ess3.api.IEssentials; -import com.earth2me.essentials.protect.data.IProtectedBlock; -import java.util.ArrayList; -import java.util.List; - import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -23,80 +16,7 @@ public class EssentialsProtectBlockListener implements Listener public EssentialsProtectBlockListener(final IProtect parent) { this.prot = parent; - } - - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void onBlockPlace(final BlockPlaceEvent event) - { - final Player user = event.getPlayer(); - final ProtectHolder settings = prot.getSettings(); - settings.acquireReadLock(); - try - { - if (!Permissions.BUILD.isAuthorized(user)) - { - event.setCancelled(true); - return; - } - - final Block blockPlaced = event.getBlockPlaced(); - - if (!BlockPlacePermissions.getPermission(blockPlaced.getType()).isAuthorized(user)) - { - event.setCancelled(true); - return; - } - - if (!Permissions.ALERTS_NOTRIGGER.isAuthorized(user) - && settings.getData().getAlertOnPlacement().contains(blockPlaced.getType())) - { - prot.getEssentialsConnect().alert(user, blockPlaced.getType().toString(), _("alertPlaced")); - } - - final Block below = blockPlaced.getRelative(BlockFace.DOWN); - if ((below.getType() == Material.RAILS || below.getType() == Material.POWERED_RAIL || below.getType() == Material.DETECTOR_RAIL) - && settings.getData().getSignsAndRails().isPreventBlockAboveRails() - && isProtected(below, user, settings)) - { - event.setCancelled(true); - return; - } - - final List<Block> protect = new ArrayList<Block>(); - if ((blockPlaced.getType() == Material.RAILS || blockPlaced.getType() == Material.POWERED_RAIL || blockPlaced.getType() == Material.DETECTOR_RAIL) - && settings.getData().getSignsAndRails().isProtectRails() - && Permissions.RAILS.isAuthorized(user)) - { - protect.add(blockPlaced); - if (settings.getData().getSignsAndRails().isBlockBelow() - && !isProtected(blockPlaced.getRelative(BlockFace.DOWN), user, settings)) - { - protect.add(blockPlaced.getRelative(BlockFace.DOWN)); - } - } - /*if ((blockPlaced.getType() == Material.SIGN_POST || blockPlaced.getType() == Material.WALL_SIGN) - && settings.getData().getSignsAndRails().isProtectSigns() - && user.isAuthorized("essentials.protect")) - { - protect.add(blockPlaced); - if (settings.getData().getSignsAndRails().isBlockBelow() - && event.getBlockAgainst().getType() != Material.SIGN_POST - && event.getBlockAgainst().getType() != Material.WALL_SIGN - && !isProtected(event.getBlockAgainst(), user, settings)) - { - protect.add(event.getBlockAgainst()); - } - }*/ - for (Block block : protect) - { - prot.getStorage().protectBlock(block, user.getName()); - } - } - finally - { - settings.unlock(); - } - } + } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBlockIgnite(BlockIgniteEvent event) @@ -105,19 +25,7 @@ public class EssentialsProtectBlockListener implements Listener settings.acquireReadLock(); try { - final Block block = event.getBlock(); - if ((block.getType() == Material.RAILS || block.getType() == Material.POWERED_RAIL || block.getType() == Material.DETECTOR_RAIL) - && settings.getData().getSignsAndRails().isProtectRails()) - { - event.setCancelled(true); - return; - } - if ((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST) - && settings.getData().getSignsAndRails().isProtectSigns()) - { - event.setCancelled(true); - return; - } + final Block block = event.getBlock(); if (event.getBlock().getType() == Material.OBSIDIAN || event.getBlock().getRelative(BlockFace.DOWN).getType() == Material.OBSIDIAN) { @@ -145,7 +53,6 @@ public class EssentialsProtectBlockListener implements Listener if (event.getCause().equals(BlockIgniteEvent.IgniteCause.LIGHTNING)) { event.setCancelled(settings.getData().getPrevent().isLightningFirespread()); - return; } } finally @@ -161,21 +68,7 @@ public class EssentialsProtectBlockListener implements Listener settings.acquireReadLock(); try { - final Block toBlock = event.getToBlock(); - if ((toBlock.getType() == Material.RAILS || toBlock.getType() == Material.POWERED_RAIL || toBlock.getType() == Material.DETECTOR_RAIL) - && settings.getData().getSignsAndRails().isProtectRails()) - { - event.setCancelled(true); - return; - } - if ((toBlock.getType() == Material.WALL_SIGN || toBlock.getType() == Material.SIGN_POST) - && settings.getData().getSignsAndRails().isProtectSigns()) - { - event.setCancelled(true); - return; - } - - final Block block = event.getBlock(); + final Block block = event.getBlock(); if (block.getType() == Material.WATER || block.getType() == Material.STATIONARY_WATER) { event.setCancelled(settings.getData().getPrevent().isWaterFlow()); @@ -184,8 +77,7 @@ public class EssentialsProtectBlockListener implements Listener if (block.getType() == Material.LAVA || block.getType() == Material.STATIONARY_LAVA) { - event.setCancelled(settings.getData().getPrevent().isLavaFlow()); - return; + event.setCancelled(settings.getData().getPrevent().isLavaFlow()); } // TODO: Test if this still works /* @@ -206,252 +98,9 @@ public class EssentialsProtectBlockListener implements Listener settings.acquireReadLock(); try { - final Block block = event.getBlock(); - if ((block.getType() == Material.RAILS || block.getType() == Material.POWERED_RAIL || block.getType() == Material.DETECTOR_RAIL) - && settings.getData().getSignsAndRails().isProtectRails()) - { - event.setCancelled(true); - return; - } - if ((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST) - && settings.getData().getSignsAndRails().isProtectSigns()) - { - event.setCancelled(true); - return; - } if (settings.getData().getPrevent().isFirespread()) { - event.setCancelled(true); - return; - } - } - finally - { - settings.unlock(); - } - } - private final static BlockFace[] faces = new BlockFace[] - { - BlockFace.NORTH, - BlockFace.EAST, - BlockFace.SOUTH, - BlockFace.WEST, - BlockFace.UP, - BlockFace.DOWN, - BlockFace.SELF - }; - - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void onBlockBreak(final BlockBreakEvent event) - { - final Player user = event.getPlayer(); - - if (!Permissions.BUILD.isAuthorized(user)) - { - event.setCancelled(true); - return; - } - final Block block = event.getBlock(); - - if (!BlockBreakPermissions.getPermission(block.getType()).isAuthorized(user)) - { - event.setCancelled(true); - return; - } - final ProtectHolder settings = prot.getSettings(); - settings.acquireReadLock(); - try - { - final Material type = block.getType(); - - if (!Permissions.ALERTS_NOTRIGGER.isAuthorized(user) && settings.getData().getAlertOnBreak().contains(type)) - { - prot.getEssentialsConnect().alert(user, type.toString(), _("alertBroke")); - } - final IProtectedBlock storage = prot.getStorage(); - - if (Permissions.ADMIN.isAuthorized(user)) - { - if (type == Material.WALL_SIGN || type == Material.SIGN_POST || type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL) - { - storage.unprotectBlock(block); - if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL || type == Material.SIGN_POST) - { - final Block below = block.getRelative(BlockFace.DOWN); - storage.unprotectBlock(below); - } - else - { - for (BlockFace blockFace : faces) - { - final Block against = block.getRelative(blockFace); - storage.unprotectBlock(against); - } - } - } - else - { - for (BlockFace blockFace : faces) - { - final Block against = block.getRelative(blockFace); - storage.unprotectBlock(against); - } - } - } - else - { - - final boolean isProtected = isProtected(block, user, settings); - if (isProtected) - { - event.setCancelled(true); - } - else - { - if (type == Material.WALL_SIGN || type == Material.SIGN_POST || type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL) - { - storage.unprotectBlock(block); - if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL || type == Material.SIGN_POST) - { - final Block below = block.getRelative(BlockFace.DOWN); - storage.unprotectBlock(below); - } - else - { - for (BlockFace blockFace : faces) - { - final Block against = block.getRelative(blockFace); - storage.unprotectBlock(against); - } - } - } - else - { - for (BlockFace blockFace : faces) - { - final Block against = block.getRelative(blockFace); - storage.unprotectBlock(against); - } - } - } - } - } - finally - { - settings.unlock(); - } - } - - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void onBlockPistonExtend(final BlockPistonExtendEvent event) - { - final ProtectHolder settings = prot.getSettings(); - settings.acquireReadLock(); - try - { - for (Block block : event.getBlocks()) - { - if (settings.getData().getPrevent().getPistonPush().contains(block.getType())) - { - event.setCancelled(true); - return; - } - if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS - || block.getType() == Material.RAILS - || block.getRelative(BlockFace.UP).getType() == Material.POWERED_RAIL - || block.getType() == Material.POWERED_RAIL - || block.getRelative(BlockFace.UP).getType() == Material.DETECTOR_RAIL - || block.getType() == Material.DETECTOR_RAIL) - && settings.getData().getSignsAndRails().isProtectRails()) - { - event.setCancelled(true); - return; - } - if (settings.getData().getSignsAndRails().isProtectSigns()) - { - for (BlockFace blockFace : faces) - { - if (blockFace == BlockFace.DOWN) - { - continue; - } - final Block sign = block.getRelative(blockFace); - if ((blockFace == BlockFace.UP || blockFace == BlockFace.SELF) - && sign.getType() == Material.SIGN_POST) - { - event.setCancelled(true); - return; - } - if ((blockFace == BlockFace.NORTH || blockFace == BlockFace.EAST - || blockFace == BlockFace.SOUTH || blockFace == BlockFace.WEST - || blockFace == BlockFace.SELF) - && sign.getType() == Material.WALL_SIGN) - { - event.setCancelled(true); - return; - } - } - } - } - } - finally - { - settings.unlock(); - } - } - - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void onBlockPistonRetract(final BlockPistonRetractEvent event) - { - if (!event.isSticky()) - { - return; - } - final ProtectHolder settings = prot.getSettings(); - settings.acquireReadLock(); - try - { - final Block block = event.getRetractLocation().getBlock(); - if (settings.getData().getPrevent().getPistonPush().contains(block.getType())) - { - event.setCancelled(true); - return; - } - if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS - || block.getType() == Material.RAILS - || block.getRelative(BlockFace.UP).getType() == Material.POWERED_RAIL - || block.getType() == Material.POWERED_RAIL - || block.getRelative(BlockFace.UP).getType() == Material.DETECTOR_RAIL - || block.getType() == Material.DETECTOR_RAIL) - && settings.getData().getSignsAndRails().isProtectRails()) - { - event.setCancelled(true); - return; - } - if (settings.getData().getSignsAndRails().isProtectSigns()) - { - for (BlockFace blockFace : faces) - { - if (blockFace == BlockFace.DOWN) - { - continue; - } - final Block sign = block.getRelative(blockFace); - if ((blockFace == BlockFace.UP || blockFace == BlockFace.SELF) - && sign.getType() == Material.SIGN_POST) - { - event.setCancelled(true); - return; - } - if ((blockFace == BlockFace.NORTH || blockFace == BlockFace.EAST - || blockFace == BlockFace.SOUTH || blockFace == BlockFace.WEST - || blockFace == BlockFace.SELF) - && sign.getType() == Material.WALL_SIGN) - { - event.setCancelled(true); - return; - } - } + event.setCancelled(true); } } finally @@ -459,58 +108,4 @@ public class EssentialsProtectBlockListener implements Listener settings.unlock(); } } - - private boolean isProtected(final Block block, final Player user, final ProtectHolder settings) - { - final Material type = block.getType(); - if (settings.getData().getSignsAndRails().isProtectSigns()) - { - if (type == Material.WALL_SIGN || type == Material.SIGN_POST) - { - return prot.getStorage().isProtected(block, user.getName()); - } - - final Block up = block.getRelative(BlockFace.UP); - if (up != null && up.getType() == Material.SIGN_POST) - { - return prot.getStorage().isProtected(block, user.getName()); - } - final BlockFace[] directions = new BlockFace[] - { - BlockFace.NORTH, - BlockFace.EAST, - BlockFace.SOUTH, - BlockFace.WEST - }; - for (BlockFace blockFace : directions) - { - final Block signblock = block.getRelative(blockFace); - if (signblock.getType() == Material.WALL_SIGN) - { - final org.bukkit.material.Sign signMat = (org.bukkit.material.Sign)signblock.getState().getData(); - if (signMat != null && signMat.getFacing() == blockFace) - { - return prot.getStorage().isProtected(block, user.getName()); - } - } - } - - } - if (settings.getData().getSignsAndRails().isProtectRails()) - { - if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL) - { - return prot.getStorage().isProtected(block, user.getName()); - } - if (settings.getData().getSignsAndRails().isBlockBelow()) - { - final Block up = block.getRelative(BlockFace.UP); - if (up != null && (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL)) - { - return prot.getStorage().isProtected(block, user.getName()); - } - } - } - return false; - } -} +}
\ No newline at end of file diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java index f4146c5bb..e6858483d 100644 --- a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java @@ -1,9 +1,5 @@ package net.ess3.protect; -import net.ess3.api.IEssentials; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; import org.bukkit.entity.*; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -154,8 +150,7 @@ public class EssentialsProtectEntityListener implements Listener && (Permissions.PREVENTDAMAGE_LIGHTNING.isAuthorized(user) && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user))) { - event.setCancelled(true); - return; + event.setCancelled(true); } } } @@ -200,36 +195,7 @@ public class EssentialsProtectEntityListener implements Listener { event.setCancelled(true); return; - } - // This code will prevent explosions near protected rails, signs or protected chests - // TODO: Use protect db instead of this code - - for (Block block : event.blockList()) - { - if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS - || block.getType() == Material.RAILS - || block.getRelative(BlockFace.UP).getType() == Material.POWERED_RAIL - || block.getType() == Material.POWERED_RAIL - || block.getRelative(BlockFace.UP).getType() == Material.DETECTOR_RAIL - || block.getType() == Material.DETECTOR_RAIL) - && settings.getData().getSignsAndRails().isProtectRails()) - { - event.setCancelled(true); - return; - } - if ((block.getType() == Material.WALL_SIGN - || block.getRelative(BlockFace.NORTH).getType() == Material.WALL_SIGN - || block.getRelative(BlockFace.EAST).getType() == Material.WALL_SIGN - || block.getRelative(BlockFace.SOUTH).getType() == Material.WALL_SIGN - || block.getRelative(BlockFace.WEST).getType() == Material.WALL_SIGN - || block.getType() == Material.SIGN_POST - || block.getRelative(BlockFace.UP).getType() == Material.SIGN_POST) - && settings.getData().getSignsAndRails().isProtectSigns()) - { - event.setCancelled(true); - return; - } - } + } } finally { diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectPlayerListener.java b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectPlayerListener.java deleted file mode 100644 index 8022df16d..000000000 --- a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectPlayerListener.java +++ /dev/null @@ -1,98 +0,0 @@ -package net.ess3.protect; - -import static net.ess3.I18n._; -import net.ess3.api.IEssentials; -import org.bukkit.Material; -import org.bukkit.block.Block; -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.Action; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.inventory.ItemStack; - - -public class EssentialsProtectPlayerListener implements Listener -{ - private final transient IProtect prot; - - public EssentialsProtectPlayerListener(final IProtect prot) - { - this.prot = prot; - } - - @EventHandler(priority = EventPriority.LOW) - public void onPlayerInteract(final PlayerInteractEvent event) - { - // Do not return if cancelled, because the interact event has 2 cancelled states. - final Player user = event.getPlayer(); - - final ProtectHolder settings = prot.getSettings(); - settings.acquireReadLock(); - try - { - if (event.hasItem() - && (event.getItem().getType() == Material.WATER_BUCKET - || event.getItem().getType() == Material.LAVA_BUCKET) - && !Permissions.BUILD.isAuthorized(user)) - { - if (settings.getData().isWarnOnBuildDisallow()) - { - user.sendMessage(_("buildAlert")); - } - event.setCancelled(true); - return; - } - - if (!Permissions.INTERACT.isAuthorized(user)) - { - if (settings.getData().isWarnOnBuildDisallow()) - { - user.sendMessage(_("buildAlert")); - } - event.setCancelled(true); - return; - } - - final ItemStack item = event.getItem(); - if (item != null - && !ItemUsePermissions.getPermission(item.getType()).isAuthorized(user)) - { - event.setCancelled(true); - return; - } - - if (Permissions.OWNERINFO.isAuthorized(user) && event.getAction() == Action.RIGHT_CLICK_BLOCK) - { - final StringBuilder stringBuilder = new StringBuilder(); - boolean first = true; - final Block blockClicked = event.getClickedBlock(); - for (String owner : prot.getStorage().getOwners(blockClicked)) - { - if (!first) - { - stringBuilder.append(", "); - } - first = false; - stringBuilder.append(owner); - } - final String ownerNames = stringBuilder.toString(); - if (ownerNames != null && !ownerNames.isEmpty()) - { - user.sendMessage(_("protectionOwner", ownerNames)); - } - } - if (item != null - && !Permissions.ALERTS_NOTRIGGER.isAuthorized(user) - && settings.getData().getAlertOnUse().contains(item.getType())) - { - prot.getEssentialsConnect().alert(user, item.getType().toString(), _("alertUsed")); - } - } - finally - { - settings.unlock(); - } - } -} diff --git a/EssentialsProtect/src/net/ess3/protect/IProtect.java b/EssentialsProtect/src/net/ess3/protect/IProtect.java index df2a454a0..95af97402 100644 --- a/EssentialsProtect/src/net/ess3/protect/IProtect.java +++ b/EssentialsProtect/src/net/ess3/protect/IProtect.java @@ -1,6 +1,5 @@ package net.ess3.protect; -import net.ess3.protect.data.IProtectedBlock; import org.bukkit.plugin.Plugin; @@ -9,9 +8,7 @@ public interface IProtect extends Plugin // boolean checkProtectionItems(final ProtectConfig list, final int id); // boolean getSettingBool(final ProtectConfig protectConfig); // String getSettingString(final ProtectConfig protectConfig); - IProtectedBlock getStorage(); - void setStorage(IProtectedBlock pb); EssentialsConnect getEssentialsConnect(); diff --git a/EssentialsProtect/src/net/ess3/protect/ItemUsePermissions.java b/EssentialsProtect/src/net/ess3/protect/ItemUsePermissions.java deleted file mode 100644 index d9ecf9bc0..000000000 --- a/EssentialsProtect/src/net/ess3/protect/ItemUsePermissions.java +++ /dev/null @@ -1,45 +0,0 @@ -package net.ess3.protect; - -import net.ess3.api.IPermission; -import net.ess3.permissions.AbstractSuperpermsPermission; -import java.util.EnumMap; -import java.util.Locale; -import java.util.Map; -import org.bukkit.Material; -import org.bukkit.permissions.PermissionDefault; - - -public class ItemUsePermissions extends AbstractSuperpermsPermission -{ - private static Map<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); - private static final String base = "essentials.protect.itemuse."; - private final String permission; - - public static IPermission getPermission(final Material mat) - { - IPermission perm = permissions.get(mat); - if (perm == null) - { - perm = new ItemUsePermissions(mat.toString().toLowerCase(Locale.ENGLISH)); - permissions.put(mat, perm); - } - return perm; - } - - private ItemUsePermissions(final String matName) - { - this.permission = base + matName; - } - - @Override - public String getPermission() - { - return this.permission; - } - - @Override - public PermissionDefault getPermissionDefault() - { - return PermissionDefault.TRUE; - } -} diff --git a/EssentialsProtect/src/net/ess3/protect/Permissions.java b/EssentialsProtect/src/net/ess3/protect/Permissions.java index 37042618b..f9a6aad7b 100644 --- a/EssentialsProtect/src/net/ess3/protect/Permissions.java +++ b/EssentialsProtect/src/net/ess3/protect/Permissions.java @@ -1,8 +1,8 @@ package net.ess3.protect; -import net.ess3.api.IPermission; -import net.ess3.utils.Util; import java.util.Locale; +import net.ess3.api.IPermission; +import net.ess3.bukkit.PermissionFactory; import org.bukkit.command.CommandSender; import org.bukkit.permissions.Permission; import org.bukkit.permissions.PermissionDefault; @@ -10,13 +10,9 @@ import org.bukkit.permissions.PermissionDefault; public enum Permissions implements IPermission { - ALERTS, - ALERTS_NOTRIGGER, - ADMIN, - BUILD(PermissionDefault.TRUE), + + ADMIN, ENTITYTARGET(PermissionDefault.TRUE), - INTERACT(PermissionDefault.TRUE), - OWNERINFO, PVP(PermissionDefault.TRUE), PREVENTDAMAGE_FALL(PermissionDefault.FALSE), PREVENTDAMAGE_CREEPER(PermissionDefault.FALSE), @@ -29,8 +25,7 @@ public enum Permissions implements IPermission PREVENTDAMAGE_FIRE(PermissionDefault.FALSE), PREVENTDAMAGE_DROWNING(PermissionDefault.FALSE), PREVENTDAMAGE_LIGHTNING(PermissionDefault.FALSE), - PREVENTDAMAGE_NONE(PermissionDefault.FALSE), - RAILS(PermissionDefault.TRUE), + PREVENTDAMAGE_NONE(PermissionDefault.FALSE), USEFLINTSTEEL(PermissionDefault.TRUE); private static final String base = "essentials.protect."; private final String permission; @@ -49,13 +44,13 @@ public enum Permissions implements IPermission } @Override - public String getPermission() + public String getPermissionName() { return permission; } @Override - public Permission getBukkitPermission() + public Permission getPermission() { if (bukkitPerm != null) { @@ -63,7 +58,7 @@ public enum Permissions implements IPermission } else { - return Util.registerPermission(getPermission(), getPermissionDefault()); + return PermissionFactory.registerPermission(getPermissionName(), getPermissionDefault()); } } @@ -76,6 +71,6 @@ public enum Permissions implements IPermission @Override public boolean isAuthorized(final CommandSender sender) { - return sender.hasPermission(getBukkitPermission()); + return sender.hasPermission(getPermission()); } } diff --git a/EssentialsProtect/src/net/ess3/protect/ProtectHolder.java b/EssentialsProtect/src/net/ess3/protect/ProtectHolder.java index 145a5e97e..507bbf596 100644 --- a/EssentialsProtect/src/net/ess3/protect/ProtectHolder.java +++ b/EssentialsProtect/src/net/ess3/protect/ProtectHolder.java @@ -1,10 +1,10 @@ package net.ess3.protect; +import java.io.File; +import java.io.IOException; import net.ess3.api.IEssentials; import net.ess3.settings.protect.Protect; import net.ess3.storage.AsyncStorageObjectHolder; -import java.io.File; -import java.io.IOException; public class ProtectHolder extends AsyncStorageObjectHolder<Protect> @@ -17,7 +17,7 @@ public class ProtectHolder extends AsyncStorageObjectHolder<Protect> @Override public File getStorageFile() throws IOException { - return new File(ess.getDataFolder(), "protect.yml"); + return new File(ess.getPlugin().getDataFolder(), "protect.yml"); } @Override diff --git a/EssentialsProtect/src/net/ess3/protect/data/IProtectedBlock.java b/EssentialsProtect/src/net/ess3/protect/data/IProtectedBlock.java deleted file mode 100644 index a27adfb3c..000000000 --- a/EssentialsProtect/src/net/ess3/protect/data/IProtectedBlock.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.ess3.protect.data; - -import java.util.List; -import org.bukkit.block.Block; - - -public interface IProtectedBlock -{ - public void clearProtections(); - - public void importProtections(List<OwnedBlock> blocks); - - public List<OwnedBlock> exportProtections(); - - public void protectBlock(Block block, String playerName); - - public boolean isProtected(Block block, String playerName); - - public List<String> getOwners(Block block); - - public int unprotectBlock(Block block); - - public void onPluginDeactivation(); -} diff --git a/EssentialsProtect/src/net/ess3/protect/data/OwnedBlock.java b/EssentialsProtect/src/net/ess3/protect/data/OwnedBlock.java deleted file mode 100644 index cac1826e9..000000000 --- a/EssentialsProtect/src/net/ess3/protect/data/OwnedBlock.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.ess3.protect.data; - - -public class OwnedBlock -{ - final int x; - final int y; - final int z; - final String world; - final String playerName; - - public OwnedBlock(int x, int y, int z, String world, String playerName) - { - this.x = x; - this.y = y; - this.z = z; - this.world = world; - this.playerName = playerName; - } -} diff --git a/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockJDBC.java b/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockJDBC.java deleted file mode 100644 index 70475c6f5..000000000 --- a/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockJDBC.java +++ /dev/null @@ -1,434 +0,0 @@ -package net.ess3.protect.data; - -import com.mchange.v2.c3p0.ComboPooledDataSource; -import java.beans.PropertyVetoException; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.bukkit.block.Block; - - -public abstract class ProtectedBlockJDBC implements IProtectedBlock -{ - protected static final Logger LOGGER = Logger.getLogger("Minecraft"); - protected final transient ComboPooledDataSource cpds; - - protected abstract PreparedStatement getStatementCreateTable(Connection conn) throws SQLException; - - protected abstract PreparedStatement getStatementUpdateFrom2_0Table(Connection conn) throws SQLException; - - protected abstract PreparedStatement getStatementDeleteAll(Connection conn) throws SQLException; - - protected abstract PreparedStatement getStatementInsert(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException; - - protected abstract PreparedStatement getStatementPlayerCountByLocation(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException; - - protected abstract PreparedStatement getStatementPlayersByLocation(Connection conn, String name, int x, int y, int z) throws SQLException; - - protected abstract PreparedStatement getStatementDeleteByLocation(Connection conn, String world, int x, int y, int z) throws SQLException; - - protected abstract PreparedStatement getStatementAllBlocks(Connection conn) throws SQLException; - - public ProtectedBlockJDBC(final String driver, final String url) throws PropertyVetoException - { - this(driver, url, null, null); - } - - public ProtectedBlockJDBC(final String driver, final String url, final String username, final String password) throws PropertyVetoException - { - cpds = new ComboPooledDataSource(); - cpds.setDriverClass(driver); - cpds.setJdbcUrl(url); - if (username != null) - { - cpds.setUser(username); - cpds.setPassword(password); - } - cpds.setMaxStatements(20); - createAndConvertTable(); - } - - private void createAndConvertTable() - { - Connection conn = null; - PreparedStatement ps = null; - try - { - conn = cpds.getConnection(); - ps = getStatementCreateTable(conn); - ps.execute(); - ps.close(); - ps = getStatementUpdateFrom2_0Table(conn); - ps.execute(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - finally - { - if (ps != null) - { - try - { - ps.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (conn != null) - { - try - { - conn.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - } - } - - @Override - public void clearProtections() - { - Connection conn = null; - PreparedStatement ps = null; - try - { - conn = cpds.getConnection(); - ps = getStatementDeleteAll(conn); - ps.executeUpdate(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - finally - { - if (ps != null) - { - try - { - ps.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (conn != null) - { - try - { - conn.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - } - } - - @Override - public void importProtections(final List<OwnedBlock> blocks) - { - for (OwnedBlock ownedBlock : blocks) - { - if (ownedBlock.playerName == null) - { - continue; - } - protectBlock(ownedBlock.world, ownedBlock.x, ownedBlock.y, ownedBlock.z, ownedBlock.playerName); - } - } - - @Override - public List<OwnedBlock> exportProtections() - { - Connection conn = null; - PreparedStatement ps = null; - ResultSet rs = null; - List<OwnedBlock> blocks = new ArrayList<OwnedBlock>(); - try - { - conn = cpds.getConnection(); - ps = getStatementAllBlocks(conn); - rs = ps.executeQuery(); - while (rs.next()) - { - OwnedBlock ob = new OwnedBlock( - rs.getInt(2), - rs.getInt(3), - rs.getInt(4), - rs.getString(1), - rs.getString(5)); - blocks.add(ob); - } - return blocks; - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - return blocks; - } - finally - { - if (rs != null) - { - try - { - rs.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (ps != null) - { - try - { - ps.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (conn != null) - { - try - { - conn.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - } - } - - @Override - public void protectBlock(final Block block, final String playerName) - { - protectBlock(block.getWorld().getName(), block.getX(), block.getY(), block.getZ(), playerName); - } - - private void protectBlock(final String world, final int x, final int y, final int z, final String playerName) - { - Connection conn = null; - PreparedStatement ps = null; - try - { - conn = cpds.getConnection(); - ps = getStatementInsert(conn, world, x, y, z, playerName); - ps.executeUpdate(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - finally - { - if (ps != null) - { - try - { - ps.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (conn != null) - { - try - { - conn.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - } - } - - @Override - public boolean isProtected(final Block block, final String playerName) - { - Connection conn = null; - PreparedStatement ps = null; - ResultSet rs = null; - try - { - conn = cpds.getConnection(); - ps = getStatementPlayerCountByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ(), playerName); - rs = ps.executeQuery(); - return rs.next() && rs.getInt(1) > 0 && rs.getInt(2) == 0; - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - return true; - } - finally - { - if (rs != null) - { - try - { - rs.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (ps != null) - { - try - { - ps.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (conn != null) - { - try - { - conn.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - } - } - - @Override - public List<String> getOwners(final Block block) - { - Connection conn = null; - PreparedStatement ps = null; - ResultSet rs = null; - List<String> owners = new ArrayList<String>(); - try - { - conn = cpds.getConnection(); - ps = getStatementPlayersByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ()); - rs = ps.executeQuery(); - while (rs.next()) - { - owners.add(rs.getString(1)); - } - return owners; - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - return owners; - } - finally - { - if (rs != null) - { - try - { - rs.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (ps != null) - { - try - { - ps.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (conn != null) - { - try - { - conn.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - } - } - - @Override - public int unprotectBlock(final Block block) - { - Connection conn = null; - PreparedStatement ps = null; - try - { - conn = cpds.getConnection(); - ps = getStatementDeleteByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ()); - return ps.executeUpdate(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - return 0; - } - finally - { - if (ps != null) - { - try - { - ps.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - if (conn != null) - { - try - { - conn.close(); - } - catch (SQLException ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - } - } - - @Override - public void onPluginDeactivation() - { - cpds.close(); - } -} diff --git a/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockMemory.java b/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockMemory.java deleted file mode 100644 index 10c825154..000000000 --- a/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockMemory.java +++ /dev/null @@ -1,258 +0,0 @@ -package net.ess3.protect.data; - -import java.util.*; -import java.util.Map.Entry; -import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.plugin.Plugin; - - -public final class ProtectedBlockMemory implements IProtectedBlock -{ - private final transient List<String> worlds = new ArrayList<String>(); - private final transient List<String> playerNames = new ArrayList<String>(); - private final transient IProtectedBlock storage; - private final transient Plugin plugin; - - - static class ProtectedLocation - { - private final transient int x; - private final transient int y; - private final transient int z; - private final transient int w; - - public ProtectedLocation(final Block block, final int worldId) - { - this.x = block.getX(); - this.y = block.getY(); - this.z = block.getZ(); - this.w = worldId; - } - - public ProtectedLocation(final OwnedBlock ownedBlock, final int worldId) - { - this.x = ownedBlock.x; - this.y = ownedBlock.y; - this.z = ownedBlock.z; - this.w = worldId; - } - - @Override - public boolean equals(final Object object) - { - if (object instanceof ProtectedLocation) - { - final ProtectedLocation pLoc = (ProtectedLocation)object; - return x == pLoc.x && y == pLoc.y && z == pLoc.z && w == pLoc.w; - } - return false; - } - - @Override - public int hashCode() - { - return x ^ y ^ z ^ w; - } - } - - - static class ProtectedBy - { - private transient int playerId = -1; - private transient Set<Integer> playerIds; - - public void add(final int playerId) - { - if (this.playerId == -1 || this.playerId == playerId) - { - this.playerId = playerId; - } - else - { - if (playerIds == null) - { - playerIds = new HashSet<Integer>(4); - playerIds.add(this.playerId); - } - playerIds.add(playerId); - } - } - - public boolean contains(final int playerId) - { - if (playerIds == null) - { - return this.playerId == playerId; - } - return playerIds.contains(playerId); - } - - public List<String> getPlayers(final List<String> playerNames) - { - final List<String> list = new ArrayList<String>(2); - if (playerIds == null) - { - list.add(playerNames.get(playerId)); - } - else - { - for (Integer integer : playerIds) - { - list.add(playerNames.get(integer)); - } - } - return list; - } - - public int size() - { - if (playerIds == null) - { - return 1; - } - return playerIds.size(); - } - } - private final transient Map<ProtectedLocation, ProtectedBy> blocks = new HashMap<ProtectedLocation, ProtectedBy>(); - - public ProtectedBlockMemory(final IProtectedBlock storage, final Plugin plugin) - { - this.storage = storage; - this.plugin = plugin; - importProtections(storage.exportProtections()); - } - - @Override - public void clearProtections() - { - blocks.clear(); - } - - @Override - public void importProtections(final List<OwnedBlock> blocks) - { - for (OwnedBlock ownedBlock : blocks) - { - final ProtectedLocation pl = new ProtectedLocation(ownedBlock, getWorldId(ownedBlock.world)); - if (ownedBlock.playerName == null) - { - continue; - } - protectBlock(pl, ownedBlock.playerName); - } - } - - @Override - public List<OwnedBlock> exportProtections() - { - final List<OwnedBlock> blockList = new ArrayList<OwnedBlock>(blocks.size()); - for (Entry<ProtectedLocation, ProtectedBy> entry : blocks.entrySet()) - { - for (String name : entry.getValue().getPlayers(playerNames)) - { - final OwnedBlock ob = new OwnedBlock( - entry.getKey().x, - entry.getKey().y, - entry.getKey().z, - worlds.get(entry.getKey().w), - name); - blockList.add(ob); - } - } - return blockList; - } - - @Override - public void protectBlock(final Block block, final String playerName) - { - final ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld())); - protectBlock(pl, playerName); - plugin.getServer().getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable() - { - @Override - public void run() - { - storage.protectBlock(block, playerName); - } - }); - } - - private void protectBlock(final ProtectedLocation pl, final String playerName) - { - final int playerId = getPlayerId(playerName); - ProtectedBy pb = blocks.get(pl); - if (pb == null) - { - pb = new ProtectedBy(); - blocks.put(pl, pb); - } - pb.add(playerId); - } - - @Override - public boolean isProtected(final Block block, final String playerName) - { - final int playerId = getPlayerId(playerName); - final ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld())); - final ProtectedBy pb = blocks.get(pl); - return !pb.contains(playerId); - } - - @Override - public List<String> getOwners(final Block block) - { - ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld())); - ProtectedBy pb = blocks.get(pl); - return pb.getPlayers(playerNames); - } - - @Override - public int unprotectBlock(final Block block) - { - final ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld())); - final ProtectedBy pb = blocks.remove(pl); - plugin.getServer().getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable() - { - @Override - public void run() - { - storage.unprotectBlock(block); - } - }); - return pb.size(); - } - - private int getPlayerId(final String playername) - { - int id = playerNames.indexOf(playername); - if (id < 0) - { - playerNames.add(playername); - id = playerNames.indexOf(playername); - } - return id; - } - - private int getWorldId(final World world) - { - return getWorldId(world.getName()); - } - - private int getWorldId(final String name) - { - int id = worlds.indexOf(name); - if (id < 0) - { - worlds.add(name); - id = worlds.indexOf(name); - } - return id; - } - - @Override - public void onPluginDeactivation() - { - storage.onPluginDeactivation(); - } -} diff --git a/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockMySQL.java b/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockMySQL.java deleted file mode 100644 index 9fd17d0a7..000000000 --- a/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockMySQL.java +++ /dev/null @@ -1,160 +0,0 @@ -package net.ess3.protect.data; - -import java.beans.PropertyVetoException; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.logging.Level; -import java.util.logging.Logger; - - -public class ProtectedBlockMySQL extends ProtectedBlockJDBC -{ - public ProtectedBlockMySQL(final String url, final String username, final String password) throws PropertyVetoException - { - super("com.mysql.jdbc.Driver", url, username, password); - } - private static final String QueryCreateTable = - "CREATE TABLE IF NOT EXISTS `EssentialsProtect` (" - + "`worldName` varchar(60) NOT NULL," - + "`x` int(11) NOT NULL, `y` int(11) NOT NULL, `z` int(11) NOT NULL," - + "`playerName` varchar(150) DEFAULT NULL," - + "KEY `pos` (`worldName`,`x`,`z`,`y`)" - + ") ENGINE=MyISAM DEFAULT CHARSET=utf8"; - - @Override - protected PreparedStatement getStatementCreateTable(final Connection conn) throws SQLException - { - return conn.prepareStatement(QueryCreateTable); - } - private static final String QueryUpdateFrom2_0TableCheck = - "SHOW COLUMNS FROM `EssentialsProtect` LIKE 'id';"; - private static final String QueryUpdateFrom2_0Table = - "ALTER TABLE `EssentialsProtect` " - + "CHARACTER SET = utf8, ENGINE = MyISAM," - + "DROP COLUMN `id`," - + "CHANGE COLUMN `playerName` `playerName` VARCHAR(150) NULL AFTER `z`," - + "CHANGE COLUMN `worldName` `worldName` VARCHAR(60) NOT NULL," - + "ADD INDEX `position` (`worldName` ASC, `x` ASC, `z` ASC, `y` ASC)," - + "DROP PRIMARY KEY ;"; - - @Override - protected PreparedStatement getStatementUpdateFrom2_0Table(final Connection conn) throws SQLException - { - PreparedStatement testPS = null; - ResultSet testRS = null; - try - { - testPS = conn.prepareStatement(QueryUpdateFrom2_0TableCheck); - testRS = testPS.executeQuery(); - if (testRS.first()) - { - return conn.prepareStatement(QueryUpdateFrom2_0Table); - } - else - { - return conn.prepareStatement("SELECT 1;"); - } - } - finally - { - if (testRS != null) - { - try - { - testRS.close(); - } - catch (SQLException ex) - { - Logger.getLogger(ProtectedBlockMySQL.class.getName()).log(Level.SEVERE, null, ex); - } - } - if (testPS != null) - { - try - { - testPS.close(); - } - catch (SQLException ex) - { - Logger.getLogger(ProtectedBlockMySQL.class.getName()).log(Level.SEVERE, null, ex); - } - } - } - } - private static final String QueryDeleteAll = "DELETE FROM EssentialsProtect;"; - - @Override - protected PreparedStatement getStatementDeleteAll(final Connection conn) throws SQLException - { - return conn.prepareStatement(QueryDeleteAll); - } - private static final String QueryInsert = - "INSERT INTO EssentialsProtect (worldName, x, y, z, playerName) VALUES (?, ?, ?, ?, ?);"; - - @Override - protected PreparedStatement getStatementInsert(final Connection conn, final String world, final int x, final int y, final int z, - final String playerName) throws SQLException - { - final PreparedStatement ps = conn.prepareStatement(QueryInsert); - ps.setString(1, world); - ps.setInt(2, x); - ps.setInt(3, y); - ps.setInt(4, z); - ps.setString(5, playerName); - return ps; - } - private static final String QueryCountByPlayer = - "SELECT COUNT(playerName), SUM(playerName = ?) FROM EssentialsProtect " - + "WHERE worldName = ? AND x = ? AND y = ? AND z = ? GROUP BY x;"; - - @Override - protected PreparedStatement getStatementPlayerCountByLocation(final Connection conn, final String world, final int x, final int y, final int z, - final String playerName) throws SQLException - { - final PreparedStatement ps = conn.prepareStatement(QueryCountByPlayer); - ps.setString(1, playerName); - ps.setString(2, world); - ps.setInt(3, x); - ps.setInt(4, y); - ps.setInt(5, z); - return ps; - } - private static final String QueryPlayersByLocation = - "SELECT playerName FROM EssentialsProtect WHERE worldname = ? AND x = ? AND y = ? AND z = ?;"; - - @Override - protected PreparedStatement getStatementPlayersByLocation(final Connection conn, final String world, - final int x, final int y, final int z) throws SQLException - { - final PreparedStatement ps = conn.prepareStatement(QueryPlayersByLocation); - ps.setString(1, world); - ps.setInt(2, x); - ps.setInt(3, y); - ps.setInt(4, z); - return ps; - } - private static final String QueryDeleteByLocation = - "DELETE FROM EssentialsProtect WHERE worldName = ? AND x = ? AND y = ? AND z = ?;"; - - @Override - protected PreparedStatement getStatementDeleteByLocation(final Connection conn, final String world, - final int x, final int y, final int z) throws SQLException - { - final PreparedStatement ps = conn.prepareStatement(QueryDeleteByLocation); - ps.setString(1, world); - ps.setInt(2, x); - ps.setInt(3, y); - ps.setInt(4, z); - return ps; - } - private static final String QueryAllBlocks = - "SELECT worldName, x, y, z, playerName FROM EssentialsProtect;"; - - @Override - protected PreparedStatement getStatementAllBlocks(final Connection conn) throws SQLException - { - return conn.prepareStatement(QueryAllBlocks); - } -} diff --git a/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockSQLite.java b/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockSQLite.java deleted file mode 100644 index 65dbac213..000000000 --- a/EssentialsProtect/src/net/ess3/protect/data/ProtectedBlockSQLite.java +++ /dev/null @@ -1,108 +0,0 @@ -package net.ess3.protect.data; - -import java.beans.PropertyVetoException; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; - - -public class ProtectedBlockSQLite extends ProtectedBlockJDBC -{ - public ProtectedBlockSQLite(final String url) throws PropertyVetoException - { - super("org.sqlite.JDBC", url); - } - private static final String QueryCreateTable = - "CREATE TABLE IF NOT EXISTS EssentialsProtect (" - + "worldName TEXT ,playerName TEXT, " - + "x NUMERIC, y NUMERIC, z NUMERIC)"; - - @Override - protected PreparedStatement getStatementCreateTable(final Connection conn) throws SQLException - { - return conn.prepareStatement(QueryCreateTable); - } - private static final String QueryUpdateFrom2_0Table = - "CREATE INDEX IF NOT EXISTS position ON EssentialsProtect (" - + "worldName, x, z, y)"; - - @Override - protected PreparedStatement getStatementUpdateFrom2_0Table(final Connection conn) throws SQLException - { - return conn.prepareStatement(QueryUpdateFrom2_0Table); - } - private static final String QueryDeleteAll = "DELETE FROM EssentialsProtect;"; - - @Override - protected PreparedStatement getStatementDeleteAll(final Connection conn) throws SQLException - { - return conn.prepareStatement(QueryDeleteAll); - } - private static final String QueryInsert = - "INSERT INTO EssentialsProtect (worldName, x, y, z, playerName) VALUES (?, ?, ?, ?, ?);"; - - @Override - protected PreparedStatement getStatementInsert(final Connection conn, final String world, - final int x, final int y, final int z, final String playerName) throws SQLException - { - final PreparedStatement ps = conn.prepareStatement(QueryInsert); - ps.setString(1, world); - ps.setInt(2, x); - ps.setInt(3, y); - ps.setInt(4, z); - ps.setString(5, playerName); - return ps; - } - private static final String QueryPlayerCountByLocation = - "SELECT COUNT(playerName), SUM(playerName = ?) FROM EssentialsProtect " - + "WHERE worldName = ? AND x = ? AND y = ? AND z = ? GROUP BY x;"; - - @Override - protected PreparedStatement getStatementPlayerCountByLocation(final Connection conn, final String world, - final int x, final int y, final int z, final String playerName) throws SQLException - { - final PreparedStatement ps = conn.prepareStatement(QueryPlayerCountByLocation); - ps.setString(1, playerName); - ps.setString(2, world); - ps.setInt(3, x); - ps.setInt(4, y); - ps.setInt(5, z); - return ps; - } - private static final String QueryPlayersByLocation = - "SELECT playerName FROM EssentialsProtect WHERE worldname = ? AND x = ? AND y = ? AND z = ?;"; - - @Override - protected PreparedStatement getStatementPlayersByLocation(final Connection conn, final String world, - final int x, final int y, final int z) throws SQLException - { - final PreparedStatement ps = conn.prepareStatement(QueryPlayersByLocation); - ps.setString(1, world); - ps.setInt(2, x); - ps.setInt(3, y); - ps.setInt(4, z); - return ps; - } - private static final String QueryDeleteByLocation = - "DELETE FROM EssentialsProtect WHERE worldName = ? AND x = ? AND y = ? AND z = ?;"; - - @Override - protected PreparedStatement getStatementDeleteByLocation(final Connection conn, final String world, - final int x, final int y, final int z) throws SQLException - { - final PreparedStatement ps = conn.prepareStatement(QueryDeleteByLocation); - ps.setString(1, world); - ps.setInt(2, x); - ps.setInt(3, y); - ps.setInt(4, z); - return ps; - } - private static final String QueryAllBlocks = - "SELECT worldName, x, y, z, playerName FROM EssentialsProtect;"; - - @Override - protected PreparedStatement getStatementAllBlocks(final Connection conn) throws SQLException - { - return conn.prepareStatement(QueryAllBlocks); - } -} diff --git a/EssentialsSigns/src/net/ess3/signs/EssentialsSign.java b/EssentialsSigns/src/net/ess3/signs/EssentialsSign.java index 3a9f9f903..ad48074fb 100644 --- a/EssentialsSigns/src/net/ess3/signs/EssentialsSign.java +++ b/EssentialsSigns/src/net/ess3/signs/EssentialsSign.java @@ -10,6 +10,7 @@ import net.ess3.api.IUser; import java.util.HashSet; import java.util.Locale; import java.util.Set; +import net.ess3.utils.FormatUtil; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -268,7 +269,7 @@ public class EssentialsSign final Double money = trade.getMoney(); if (money != null) { - sign.setLine(index, Util.shortCurrency(money, ess)); + sign.setLine(index, FormatUtil.shortCurrency(money, ess)); } } @@ -297,7 +298,7 @@ public class EssentialsSign return new Trade(amount, ess); } final ItemStack item = getItemStack(sign.getLine(itemIndex), 1, ess); - final int amount = Math.min(getIntegerPositive(sign.getLine(amountIndex)), item.getType().getMaxStackSize() * player.getInventory().getSize()); + final int amount = Math.min(getIntegerPositive(sign.getLine(amountIndex)), item.getType().getMaxStackSize() * player.getPlayer().getInventory().getSize()); if (item.getTypeId() == 0 || amount < 1) { throw new SignException(_("moreThanZero")); diff --git a/EssentialsSigns/src/net/ess3/signs/EssentialsSignsPlugin.java b/EssentialsSigns/src/net/ess3/signs/EssentialsSignsPlugin.java index d2f615d52..1b661e458 100644 --- a/EssentialsSigns/src/net/ess3/signs/EssentialsSignsPlugin.java +++ b/EssentialsSigns/src/net/ess3/signs/EssentialsSignsPlugin.java @@ -4,6 +4,7 @@ import static net.ess3.I18n._; import net.ess3.api.IEssentials; import java.util.logging.Level; import java.util.logging.Logger; +import net.ess3.api.IPlugin; import org.bukkit.Bukkit; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -18,12 +19,13 @@ public class EssentialsSignsPlugin extends JavaPlugin implements ISignsPlugin public void onEnable() { final PluginManager pluginManager = getServer().getPluginManager(); - final IEssentials ess = (IEssentials)pluginManager.getPlugin("Essentials-3"); - if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion())) + final IPlugin plugin = (IPlugin)pluginManager.getPlugin("Essentials-3"); + final IEssentials ess = (IEssentials)plugin.getEssentials(); + if (!this.getDescription().getVersion().equals(plugin.getDescription().getVersion())) { LOGGER.log(Level.WARNING, _("versionMismatchAll")); } - if (!ess.isEnabled()) + if (!plugin.isEnabled()) { this.setEnabled(false); return; diff --git a/EssentialsSigns/src/net/ess3/signs/SignBalance.java b/EssentialsSigns/src/net/ess3/signs/SignBalance.java index 35a1648ae..81cac977a 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignBalance.java +++ b/EssentialsSigns/src/net/ess3/signs/SignBalance.java @@ -3,6 +3,7 @@ package net.ess3.signs; import static net.ess3.I18n._; import net.ess3.api.IEssentials; import net.ess3.api.IUser; +import net.ess3.utils.FormatUtil; import net.ess3.utils.Util; @@ -16,7 +17,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", Util.displayCurrency(player.getMoney(), ess))); + player.sendMessage(_("balance", FormatUtil.displayCurrency(player.getMoney(), ess))); return true; } } diff --git a/EssentialsSigns/src/net/ess3/signs/SignBlockListener.java b/EssentialsSigns/src/net/ess3/signs/SignBlockListener.java index f44f086c9..ac44e0a61 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignBlockListener.java +++ b/EssentialsSigns/src/net/ess3/signs/SignBlockListener.java @@ -6,6 +6,7 @@ import net.ess3.api.IUser; import net.ess3.utils.Util; import java.util.logging.Level; import java.util.logging.Logger; +import net.ess3.utils.FormatUtil; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.Sign; @@ -91,7 +92,7 @@ public class SignBlockListener implements Listener for (int i = 0; i < 4; i++) { - event.setLine(i, Util.formatString(user, "essentials.signs", event.getLine(i))); + event.setLine(i, FormatUtil.formatString(user, "essentials.signs", event.getLine(i))); } for (Signs signs : Signs.values()) diff --git a/EssentialsSigns/src/net/ess3/signs/SignEnchant.java b/EssentialsSigns/src/net/ess3/signs/SignEnchant.java index 6004d9f38..8369dd10e 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignEnchant.java +++ b/EssentialsSigns/src/net/ess3/signs/SignEnchant.java @@ -88,7 +88,7 @@ public class SignEnchant extends EssentialsSign level = enchantment.getMaxLevel(); } - final ItemStack playerHand = player.getItemInHand(); + final ItemStack playerHand = player.getPlayer().getItemInHand(); if (playerHand == null || playerHand.getAmount() != 1 || (playerHand.containsEnchantment(enchantment) @@ -113,7 +113,7 @@ public class SignEnchant extends EssentialsSign charge.charge(player); Trade.log("Sign", "Enchant", "Interact", username, charge, username, charge, sign.getBlock().getLocation(), ess); - player.updateInventory(); + player.getPlayer().updateInventory(); return true; } } diff --git a/EssentialsSigns/src/net/ess3/signs/SignFree.java b/EssentialsSigns/src/net/ess3/signs/SignFree.java index 2cf049346..906929e09 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignFree.java +++ b/EssentialsSigns/src/net/ess3/signs/SignFree.java @@ -33,9 +33,9 @@ public class SignFree extends EssentialsSign } item.setAmount(item.getType().getMaxStackSize()); - InventoryWorkaround.addItem(player.getInventory(), true, item); + InventoryWorkaround.addItem(player.getPlayer().getInventory(), true, item); player.sendMessage("Item added to your inventory."); - player.updateInventory(); + player.getPlayer().updateInventory(); //TODO: wait for a fix in bukkit //Problem: Items can be duplicated //Inventory i = ess.getServer().createInventory(player, InventoryType.CHEST); diff --git a/EssentialsSigns/src/net/ess3/signs/SignGameMode.java b/EssentialsSigns/src/net/ess3/signs/SignGameMode.java index b2e1b2db2..38acbc304 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignGameMode.java +++ b/EssentialsSigns/src/net/ess3/signs/SignGameMode.java @@ -43,8 +43,8 @@ public class SignGameMode extends EssentialsSign charge.isAffordableFor(player); //this needs to be fixed - player.setGameMode(player.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL); - player.sendMessage(_("gameMode", _(player.getGameMode().toString().toLowerCase(Locale.ENGLISH)), player.getDisplayName())); + player.getPlayer().setGameMode(player.getPlayer().getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL); + player.sendMessage(_("gameMode", _(player.getPlayer().getGameMode().toString().toLowerCase(Locale.ENGLISH)), player.getPlayer().getDisplayName())); charge.charge(player); return true; } diff --git a/EssentialsSigns/src/net/ess3/signs/SignHeal.java b/EssentialsSigns/src/net/ess3/signs/SignHeal.java index 787e7b166..6d82ba70f 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignHeal.java +++ b/EssentialsSigns/src/net/ess3/signs/SignHeal.java @@ -26,9 +26,9 @@ public class SignHeal extends EssentialsSign { final Trade charge = getTrade(sign, 1, ess); charge.isAffordableFor(player); - player.setHealth(20); - player.setFoodLevel(20); - player.setFireTicks(0); + player.getPlayer().setHealth(20); + player.getPlayer().setFoodLevel(20); + player.getPlayer().setFireTicks(0); player.sendMessage(_("youAreHealed")); charge.charge(player); return true; diff --git a/EssentialsSigns/src/net/ess3/signs/SignInfo.java b/EssentialsSigns/src/net/ess3/signs/SignInfo.java index 426e7c04c..c738667b8 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignInfo.java +++ b/EssentialsSigns/src/net/ess3/signs/SignInfo.java @@ -4,8 +4,8 @@ package net.ess3.signs; import java.io.IOException; import net.ess3.api.ChargeException; import net.ess3.api.IEssentials; +import net.ess3.api.IUser; import net.ess3.economy.Trade; -import net.ess3.user.User; import net.ess3.utils.textreader.IText; import net.ess3.utils.textreader.KeywordReplacer; import net.ess3.utils.textreader.TextInput; @@ -20,14 +20,14 @@ public class SignInfo extends EssentialsSign } @Override - protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException + protected boolean onSignCreate(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException { validateTrade(sign, 3, ess); return true; } @Override - protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException + protected boolean onSignInteract(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException { final Trade charge = getTrade(sign, 3, ess); charge.isAffordableFor(player); diff --git a/EssentialsSigns/src/net/ess3/signs/SignProtection.java b/EssentialsSigns/src/net/ess3/signs/SignProtection.java index e87002fd4..00eb73619 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignProtection.java +++ b/EssentialsSigns/src/net/ess3/signs/SignProtection.java @@ -7,6 +7,7 @@ import net.ess3.api.IUser; import net.ess3.economy.Trade; import net.ess3.utils.Util; import java.util.*; +import net.ess3.utils.FormatUtil; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -147,7 +148,7 @@ public class SignProtection extends EssentialsSign { return SignProtectionState.OWNER; } - if (Util.stripFormat(sign.getLine(3)).equalsIgnoreCase(username)) + if (FormatUtil.stripFormat(sign.getLine(3)).equalsIgnoreCase(username)) { return SignProtectionState.OWNER; } diff --git a/EssentialsSigns/src/net/ess3/signs/SignRepair.java b/EssentialsSigns/src/net/ess3/signs/SignRepair.java index aea1a69cb..9da4b4d3f 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignRepair.java +++ b/EssentialsSigns/src/net/ess3/signs/SignRepair.java @@ -1,9 +1,11 @@ package net.ess3.signs; +import static net.ess3.I18n._; +import net.ess3.api.ChargeException; import net.ess3.api.IEssentials; +import net.ess3.api.IUser; import net.ess3.commands.Commandrepair; import net.ess3.economy.Trade; -import net.ess3.user.User; public class SignRepair extends EssentialsSign @@ -14,7 +16,7 @@ public class SignRepair extends EssentialsSign } @Override - protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException + protected boolean onSignCreate(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException { final String repairTarget = sign.getLine(1); if (repairTarget.isEmpty()) @@ -30,20 +32,20 @@ public class SignRepair extends EssentialsSign } @Override - protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException + protected boolean onSignInteract(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException { final Trade charge = getTrade(sign, 2, ess); charge.isAffordableFor(player); Commandrepair command = new Commandrepair(); - command.setEssentials(ess); + command.init(ess, "repair"); String[] args = new String[] { sign.getLine(1) }; try { - command.run(ess.getServer(), player, "repair", args); + command.run(player, "repair", args); } catch (Exception ex) { diff --git a/EssentialsSigns/src/net/ess3/signs/SignTime.java b/EssentialsSigns/src/net/ess3/signs/SignTime.java index 8ef98a4d5..215721b69 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignTime.java +++ b/EssentialsSigns/src/net/ess3/signs/SignTime.java @@ -5,6 +5,7 @@ import net.ess3.api.ChargeException; import net.ess3.api.IEssentials; import net.ess3.api.IUser; import net.ess3.economy.Trade; +import org.bukkit.World; public class SignTime extends EssentialsSign @@ -38,17 +39,18 @@ public class SignTime extends EssentialsSign final Trade charge = getTrade(sign, 2, ess); charge.isAffordableFor(player); final String timeString = sign.getLine(1); - long time = player.getWorld().getTime(); + final World world = player.getPlayer().getWorld(); + long time = world.getTime(); time -= time % 24000; if ("§2Day".equalsIgnoreCase(timeString)) { - player.getWorld().setTime(time + 24000); + world.setTime(time + 24000); charge.charge(player); return true; } if ("§2Night".equalsIgnoreCase(timeString)) { - player.getWorld().setTime(time + 37700); + world.setTime(time + 37700); charge.charge(player); return true; } diff --git a/EssentialsSigns/src/net/ess3/signs/SignTrade.java b/EssentialsSigns/src/net/ess3/signs/SignTrade.java index c3e78e226..d8a08982c 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignTrade.java +++ b/EssentialsSigns/src/net/ess3/signs/SignTrade.java @@ -6,6 +6,7 @@ import net.ess3.economy.Trade; import net.ess3.utils.Util; import net.ess3.api.IEssentials; import net.ess3.api.IUser; +import net.ess3.utils.FormatUtil; import org.bukkit.inventory.ItemStack; //TODO: Sell Enchantment on Trade signs? @@ -75,16 +76,17 @@ public class SignTrade extends EssentialsSign private Trade rechargeSign(final ISign sign, final IEssentials ess, final IUser player) throws SignException, ChargeException { final Trade trade = getTrade(sign, 2, false, false, ess); - if (trade.getItemStack() != null && player.getItemInHand() != null - && trade.getItemStack().getTypeId() == player.getItemInHand().getTypeId() - && trade.getItemStack().getDurability() == player.getItemInHand().getDurability() - && trade.getItemStack().getEnchantments().equals(player.getItemInHand().getEnchantments())) + ItemStack itemInHand = player.getPlayer().getItemInHand(); + if (trade.getItemStack() != null && itemInHand != null + && trade.getItemStack().getTypeId() == itemInHand.getTypeId() + && trade.getItemStack().getDurability() == itemInHand.getDurability() + && trade.getItemStack().getEnchantments().equals(itemInHand.getEnchantments())) { - int amount = player.getItemInHand().getAmount(); + int amount = itemInHand.getAmount(); amount -= amount % trade.getItemStack().getAmount(); if (amount > 0) { - final ItemStack stack = player.getItemInHand().clone(); + final ItemStack stack = itemInHand.clone(); stack.setAmount(amount); final Trade store = new Trade(stack, ess); addAmount(sign, 2, store, ess); @@ -139,11 +141,11 @@ public class SignTrade extends EssentialsSign final Double money = getMoney(split[0]); if (money != null) { - if (Util.shortCurrency(money, ess).length() * 2 > 15) + if (FormatUtil.shortCurrency(money, ess).length() * 2 > 15) { throw new SignException("Line can be too long!"); } - sign.setLine(index, Util.shortCurrency(money, ess) + ":0"); + sign.setLine(index, FormatUtil.shortCurrency(money, ess) + ":0"); return; } } @@ -159,7 +161,7 @@ public class SignTrade extends EssentialsSign { throw new SignException(_("moreThanZero")); } - sign.setLine(index, Util.shortCurrency(money, ess) + ":" + Util.shortCurrency(amount, ess).substring(1)); + sign.setLine(index, FormatUtil.shortCurrency(money, ess) + ":" + FormatUtil.shortCurrency(amount, ess).substring(1)); return; } } @@ -317,7 +319,7 @@ public class SignTrade extends EssentialsSign final Double amount = getDouble(split[1]); if (money != null && amount != null) { - final String newline = Util.shortCurrency(money, ess) + ":" + Util.shortCurrency(amount + value, ess).substring(1); + final String newline = FormatUtil.shortCurrency(money, ess) + ":" + FormatUtil.shortCurrency(amount + value, ess).substring(1); if (newline.length() > 15) { throw new SignException("This sign is full: Line too long!"); diff --git a/EssentialsSigns/src/net/ess3/signs/SignWeather.java b/EssentialsSigns/src/net/ess3/signs/SignWeather.java index 94217aeec..18aa1f567 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignWeather.java +++ b/EssentialsSigns/src/net/ess3/signs/SignWeather.java @@ -5,6 +5,7 @@ import net.ess3.api.ChargeException; import net.ess3.api.IEssentials; import net.ess3.api.IUser; import net.ess3.economy.Trade; +import org.bukkit.World; public class SignWeather extends EssentialsSign @@ -38,15 +39,16 @@ public class SignWeather extends EssentialsSign final Trade charge = getTrade(sign, 2, ess); charge.isAffordableFor(player); final String weatherString = sign.getLine(1); + final World world = player.getPlayer().getWorld(); if ("§2Sun".equalsIgnoreCase(weatherString)) { - player.getWorld().setStorm(false); + world.setStorm(false); charge.charge(player); return true; } if ("§2Storm".equalsIgnoreCase(weatherString)) { - player.getWorld().setStorm(true); + world.setStorm(true); charge.charge(player); return true; } diff --git a/EssentialsXMPP/src/net/ess3/xmpp/Commandxmpp.java b/EssentialsXMPP/src/net/ess3/xmpp/Commandxmpp.java index 0881aa706..d48f60e7d 100644 --- a/EssentialsXMPP/src/net/ess3/xmpp/Commandxmpp.java +++ b/EssentialsXMPP/src/net/ess3/xmpp/Commandxmpp.java @@ -3,6 +3,7 @@ package net.ess3.xmpp; import net.ess3.Console; import net.ess3.commands.EssentialsCommand; import net.ess3.commands.NotEnoughArgumentsException; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -24,7 +25,7 @@ public class Commandxmpp extends EssentialsCommand else { final String message = getFinalArg(args, 1); - final String senderName = sender instanceof Player ? ess.getUserMap().getUser((Player)sender).getDisplayName() : Console.NAME; + final String senderName = isUser(sender) ? getPlayer(sender).getDisplayName() : Console.NAME; sender.sendMessage("[" + senderName + ">" + address + "] " + message); if (!EssentialsXMPP.getInstance().sendMessage(address, "[" + senderName + "] " + message)) { diff --git a/EssentialsXMPP/src/net/ess3/xmpp/Commandxmppspy.java b/EssentialsXMPP/src/net/ess3/xmpp/Commandxmppspy.java index dcace3b7d..2fee4bbfd 100644 --- a/EssentialsXMPP/src/net/ess3/xmpp/Commandxmppspy.java +++ b/EssentialsXMPP/src/net/ess3/xmpp/Commandxmppspy.java @@ -4,6 +4,7 @@ import net.ess3.commands.EssentialsCommand; import net.ess3.commands.NotEnoughArgumentsException; import java.util.List; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPP.java b/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPP.java index f62f3c3f5..849aa4331 100644 --- a/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPP.java +++ b/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPP.java @@ -9,9 +9,9 @@ import java.util.List; import java.util.Locale; import java.util.logging.Level; import java.util.logging.Logger; +import net.ess3.api.IPlugin; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -36,12 +36,13 @@ public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP instance = this; final PluginManager pluginManager = getServer().getPluginManager(); - ess = (IEssentials)pluginManager.getPlugin("Essentials-3"); - if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion())) + final IPlugin plugin = (IPlugin)pluginManager.getPlugin("Essentials-3"); + ess = plugin.getEssentials(); + if (!this.getDescription().getVersion().equals(plugin.getDescription().getVersion())) { LOGGER.log(Level.WARNING, _("versionMismatchAll")); } - if (!ess.isEnabled()) + if (!plugin.isEnabled()) { this.setEnabled(false); return; @@ -76,7 +77,7 @@ public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP } @Override - public void setAddress(final Player user, final String address) + public void setAddress(final CommandSender user, final String address) { final String username = user.getName().toLowerCase(Locale.ENGLISH); instance.users.setAddress(username, address); @@ -96,7 +97,7 @@ public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP } @Override - public boolean toggleSpy(final Player user) + public boolean toggleSpy(final CommandSender user) { final String username = user.getName().toLowerCase(Locale.ENGLISH); final boolean spy = !instance.users.isSpy(username); @@ -105,13 +106,13 @@ public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP } @Override - public String getAddress(final Player user) + public String getAddress(final CommandSender user) { return instance.users.getAddress(user.getName()); } @Override - public boolean sendMessage(final Player user, final String message) + public boolean sendMessage(final CommandSender user, final String message) { return instance.xmpp.sendMessage(instance.users.getAddress(user.getName()), message); } diff --git a/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPPPlayerListener.java b/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPPPlayerListener.java index de8a62405..4824f03db 100644 --- a/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPPPlayerListener.java +++ b/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPPPlayerListener.java @@ -23,22 +23,19 @@ class EssentialsXMPPPlayerListener implements Listener @EventHandler(priority= EventPriority.MONITOR) public void onPlayerJoin(final PlayerJoinEvent event) { - final IUser user = ess.getUserMap().getUser(event.getPlayer()); - sendMessageToSpyUsers("Player " + user.getDisplayName() + " joined the game"); + sendMessageToSpyUsers("Player " + event.getPlayer().getDisplayName() + " joined the game"); } @EventHandler(priority= EventPriority.MONITOR) public void onPlayerChat(final PlayerChatEvent event) { - final IUser user = ess.getUserMap().getUser(event.getPlayer()); - sendMessageToSpyUsers(String.format(event.getFormat(), user.getDisplayName(), event.getMessage())); + sendMessageToSpyUsers(String.format(event.getFormat(), event.getPlayer().getDisplayName(), event.getMessage())); } @EventHandler(priority= EventPriority.MONITOR) public void onPlayerQuit(final PlayerQuitEvent event) { - final IUser user = ess.getUserMap().getUser(event.getPlayer()); - sendMessageToSpyUsers("Player " + user.getDisplayName() + " left the game"); + sendMessageToSpyUsers("Player " + event.getPlayer().getDisplayName() + " left the game"); } private void sendMessageToSpyUsers(final String message) diff --git a/EssentialsXMPP/src/net/ess3/xmpp/IEssentialsXMPP.java b/EssentialsXMPP/src/net/ess3/xmpp/IEssentialsXMPP.java index 373a7879d..14fea2c78 100644 --- a/EssentialsXMPP/src/net/ess3/xmpp/IEssentialsXMPP.java +++ b/EssentialsXMPP/src/net/ess3/xmpp/IEssentialsXMPP.java @@ -2,13 +2,14 @@ package net.ess3.xmpp; import net.ess3.api.IUser; import java.util.List; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; public interface IEssentialsXMPP extends Plugin { - String getAddress(final Player user); + String getAddress(final CommandSender user); String getAddress(final String name); @@ -16,13 +17,13 @@ public interface IEssentialsXMPP extends Plugin IUser getUserByAddress(final String address); - boolean sendMessage(final Player user, final String message); + boolean sendMessage(final CommandSender user, final String message); boolean sendMessage(final String address, final String message); - void setAddress(final Player user, final String address); + void setAddress(final CommandSender user, final String address); - boolean toggleSpy(final Player user); + boolean toggleSpy(final CommandSender user); void broadcastMessage(final IUser sender, final String message, final String xmppAddress); } diff --git a/EssentialsXMPP/src/net/ess3/xmpp/XMPPManager.java b/EssentialsXMPP/src/net/ess3/xmpp/XMPPManager.java index ff49bc931..1348ef734 100644 --- a/EssentialsXMPP/src/net/ess3/xmpp/XMPPManager.java +++ b/EssentialsXMPP/src/net/ess3/xmpp/XMPPManager.java @@ -9,6 +9,7 @@ import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; +import net.ess3.utils.FormatUtil; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.jivesoftware.smack.*; @@ -60,7 +61,7 @@ public final class XMPPManager extends Handler implements MessageListener, ChatM disconnect(); connect(); } - chat.sendMessage(Util.stripFormat(message)); + chat.sendMessage(FormatUtil.stripFormat(message)); return true; } } @@ -90,7 +91,7 @@ public final class XMPPManager extends Handler implements MessageListener, ChatM break; default: final IUser sender = parent.getUserByAddress(StringUtils.parseBareAddress(chat.getParticipant())); - parent.broadcastMessage(sender, "=" + sender.getDisplayName() + ": " + message, StringUtils.parseBareAddress(chat.getParticipant())); + parent.broadcastMessage(sender, "=" + sender.getName() + ": " + message, StringUtils.parseBareAddress(chat.getParticipant())); } } } diff --git a/README.markdown b/README.markdown index a3c2c1d42..5b7903771 100644 --- a/README.markdown +++ b/README.markdown @@ -18,7 +18,7 @@ Please follow the format guidelines that are saved in the project properties. Windows users, please read this: http://help.github.com/line-endings/ The default line ending is LF. -To build all jars, select the BuildAll project and build that. You'll find all jars inside the dist/lib folder of the BuildAll project. +To build all jars, open this folder and use `mvn clean install` to build it. You'll find all jars inside the jars/ folder. If you create pull requests, always make them for the master branch. @@ -21,6 +21,7 @@ <module>EssentialsSigns</module> <module>EssentialsUpdate</module> <module>EssentialsXMPP</module> + <module>EssentialsAntiBuild</module> </modules> <repositories> @@ -74,7 +75,7 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <bukkit.version>1.3.1-R0.1-SNAPSHOT</bukkit.version> + <bukkit.version>1.3.2-R0.1</bukkit.version> <build.number>Unknown</build.number> <org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs>true</org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs> <org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width>2</org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width> |