summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/nb-configuration.xml18
-rw-r--r--Essentials/pom.xml2
-rw-r--r--Essentials/src/items.csv2443
-rw-r--r--Essentials/src/messages_nl.properties2
-rw-r--r--Essentials/src/messages_pl.properties2
-rw-r--r--Essentials/src/net/ess3/Essentials.java20
-rw-r--r--Essentials/src/net/ess3/EssentialsTimer.java2
-rw-r--r--Essentials/src/net/ess3/Jails.java14
-rw-r--r--Essentials/src/net/ess3/api/IEssentials.java16
-rw-r--r--Essentials/src/net/ess3/api/IUserMap.java4
-rw-r--r--Essentials/src/net/ess3/api/ondemand/OnDemand.java22
-rw-r--r--Essentials/src/net/ess3/api/ondemand/UserOnDemand.java29
-rw-r--r--Essentials/src/net/ess3/api/server/Block.java24
-rw-r--r--Essentials/src/net/ess3/api/server/IPlayer.java5
-rw-r--r--Essentials/src/net/ess3/api/server/ItemStack.java8
-rw-r--r--Essentials/src/net/ess3/api/server/Material.java2
-rw-r--r--Essentials/src/net/ess3/api/server/Player.java2
-rw-r--r--Essentials/src/net/ess3/api/server/Plugin.java (renamed from Essentials/src/net/ess3/api/server/IPlugin.java)9
-rw-r--r--Essentials/src/net/ess3/api/server/Server.java (renamed from Essentials/src/net/ess3/api/server/IServer.java)4
-rw-r--r--Essentials/src/net/ess3/api/server/World.java2
-rw-r--r--Essentials/src/net/ess3/api/server/events/EventFactory.java7
-rw-r--r--Essentials/src/net/ess3/api/server/events/EventListener.java21
-rw-r--r--Essentials/src/net/ess3/api/server/events/EventPriority.java12
-rw-r--r--Essentials/src/net/ess3/api/server/events/EventType.java7
-rw-r--r--Essentials/src/net/ess3/backup/Backup.java4
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java13
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitItemStack.java12
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitMaterial.java86
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitPermission.java2
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitPlayer.java29
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitPlugin.java106
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitServer.java (renamed from Essentials/src/net/ess3/bukkit/Server.java)32
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitWorld.java20
-rw-r--r--Essentials/src/net/ess3/bukkit/EssentialsPlugin.java8
-rw-r--r--Essentials/src/net/ess3/bukkit/Inventory.java6
-rw-r--r--Essentials/src/net/ess3/bukkit/Plugin.java87
-rw-r--r--Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java21
-rw-r--r--Essentials/src/net/ess3/bukkit/events/BukkitEventFactory.java25
-rw-r--r--Essentials/src/net/ess3/bukkit/events/BukkitListener.java70
-rw-r--r--Essentials/src/net/ess3/bukkit/events/PlaceBlockExecutor.java32
-rw-r--r--Essentials/src/net/ess3/commands/Commandafk.java12
-rw-r--r--Essentials/src/net/ess3/commands/Commandantioch.java24
-rw-r--r--Essentials/src/net/ess3/commands/Commandbalance.java6
-rw-r--r--Essentials/src/net/ess3/commands/Commandban.java5
-rw-r--r--Essentials/src/net/ess3/commands/Commandbanip.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandbreak.java5
-rw-r--r--Essentials/src/net/ess3/commands/Commandburn.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandclearinventory.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commanddelhome.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandeco.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandenchant.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandexp.java14
-rw-r--r--Essentials/src/net/ess3/commands/Commandext.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandfeed.java21
-rw-r--r--Essentials/src/net/ess3/commands/Commandfly.java23
-rw-r--r--Essentials/src/net/ess3/commands/Commandgamemode.java10
-rw-r--r--Essentials/src/net/ess3/commands/Commandgetpos.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandgive.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandgod.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandheal.java14
-rw-r--r--Essentials/src/net/ess3/commands/Commandhelpop.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandhome.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandignore.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandinvsee.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandkick.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandkill.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandlightning.java8
-rw-r--r--Essentials/src/net/ess3/commands/Commandmail.java25
-rw-r--r--Essentials/src/net/ess3/commands/Commandmsg.java16
-rw-r--r--Essentials/src/net/ess3/commands/Commandmute.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandnear.java6
-rw-r--r--Essentials/src/net/ess3/commands/Commandnick.java8
-rw-r--r--Essentials/src/net/ess3/commands/Commandnuke.java54
-rw-r--r--Essentials/src/net/ess3/commands/Commandpay.java11
-rw-r--r--Essentials/src/net/ess3/commands/Commandptime.java10
-rw-r--r--Essentials/src/net/ess3/commands/Commandr.java8
-rw-r--r--Essentials/src/net/ess3/commands/Commandrealname.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandseen.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandsethome.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandspawn.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandsudo.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtempban.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandtime.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtogglejail.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtp.java7
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpa.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpaall.java6
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpahere.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpall.java6
-rw-r--r--Essentials/src/net/ess3/commands/Commandtphere.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpo.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpohere.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtppos.java3
-rw-r--r--Essentials/src/net/ess3/commands/Commandunban.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandunbanip.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandunlimited.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandwarp.java5
-rw-r--r--Essentials/src/net/ess3/commands/Commandworth.java1
-rw-r--r--Essentials/src/net/ess3/commands/EssentialsCommand.java10
-rw-r--r--Essentials/src/net/ess3/commands/EssentialsCommandHandler.java9
-rw-r--r--Essentials/src/net/ess3/economy/Economy.java6
-rw-r--r--Essentials/src/net/ess3/economy/Trade.java18
-rw-r--r--Essentials/src/net/ess3/listener/EssentialsBlockListener.java39
-rw-r--r--Essentials/src/net/ess3/listener/EssentialsEntityListener.java16
-rw-r--r--Essentials/src/net/ess3/listener/EssentialsPlayerListener.java38
-rw-r--r--Essentials/src/net/ess3/listener/TntExplodeListener.java62
-rw-r--r--Essentials/src/net/ess3/metrics/Metrics.java20
-rw-r--r--Essentials/src/net/ess3/metrics/MetricsListener.java2
-rw-r--r--Essentials/src/net/ess3/permissions/Permissions.java1
-rw-r--r--Essentials/src/net/ess3/ranks/GMGroups.java19
-rw-r--r--Essentials/src/net/ess3/ranks/VaultGroups.java19
-rw-r--r--Essentials/src/net/ess3/settings/SpawnsHolder.java4
-rw-r--r--Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java2
-rw-r--r--Essentials/src/net/ess3/storage/BukkitConstructor.java19
-rw-r--r--Essentials/src/net/ess3/storage/StoredLocation.java22
-rw-r--r--Essentials/src/net/ess3/storage/YamlStorageReader.java6
-rw-r--r--Essentials/src/net/ess3/user/User.java4
-rw-r--r--Essentials/src/net/ess3/user/UserData.java4
-rw-r--r--Essentials/src/net/ess3/user/UserMap.java160
-rw-r--r--Essentials/src/net/ess3/utils/textreader/TextPager.java3
-rw-r--r--Essentials/test/com/earth2me/essentials/testserver/World.java26
-rw-r--r--Essentials/test/net/ess3/EconomyTest.java2
-rw-r--r--Essentials/test/net/ess3/EssentialsTest.java (renamed from Essentials/test/com/earth2me/essentials/EssentialsTest.java)18
-rw-r--r--Essentials/test/net/ess3/StorageTest.java11
-rw-r--r--Essentials/test/net/ess3/UserTest.java12
-rw-r--r--Essentials/test/net/ess3/testserver/TestPlayer.java (renamed from Essentials/test/com/earth2me/essentials/testserver/Player.java)54
-rw-r--r--Essentials/test/net/ess3/testserver/TestPlugin.java (renamed from Essentials/test/com/earth2me/essentials/testserver/Plugin.java)33
-rw-r--r--Essentials/test/net/ess3/testserver/TestServer.java (renamed from Essentials/test/com/earth2me/essentials/testserver/Server.java)16
-rw-r--r--Essentials/test/net/ess3/testserver/TestWorld.java77
-rw-r--r--EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java2
-rw-r--r--EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEventListener.java4
-rw-r--r--EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java2
-rw-r--r--EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java4
-rw-r--r--EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java2
-rw-r--r--EssentialsSigns/src/net/ess3/signs/EssentialsSign.java17
-rw-r--r--EssentialsSigns/src/net/ess3/signs/SignBlockListener.java2
-rw-r--r--EssentialsXMPP/src/net/ess3/xmpp/Commandxmpp.java2
-rw-r--r--EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPP.java2
-rw-r--r--EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPPPlayerListener.java6
139 files changed, 3170 insertions, 1223 deletions
diff --git a/Essentials/nb-configuration.xml b/Essentials/nb-configuration.xml
new file mode 100644
index 000000000..3486bc9d7
--- /dev/null
+++ b/Essentials/nb-configuration.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-shared-configuration>
+ <!--
+This file contains additional configuration written by modules in the NetBeans IDE.
+The configuration is intended to be shared among all the users of project and
+therefore it is assumed to be part of version control checkout.
+Without this configuration present, some functionality in the IDE may be limited or fail altogether.
+-->
+ <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
+ <!--
+Properties that influence various parts of the IDE, especially code formatting and the like.
+You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
+That way multiple projects can share the same settings (useful for formatting rules for example).
+Any value defined here will override the pom.xml file value but is only applicable to the current project.
+-->
+ <netbeans.compile.on.save>all</netbeans.compile.on.save>
+ </properties>
+</project-shared-configuration>
diff --git a/Essentials/pom.xml b/Essentials/pom.xml
index 281a1449a..037bb6f11 100644
--- a/Essentials/pom.xml
+++ b/Essentials/pom.xml
@@ -36,7 +36,7 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
- <version>0.10.8</version>
+ <version>0.11.2</version>
</dependency>
<dependency>
<groupId>ru.tehkode</groupId>
diff --git a/Essentials/src/items.csv b/Essentials/src/items.csv
index a3234c9aa..3fdba140b 100644
--- a/Essentials/src/items.csv
+++ b/Essentials/src/items.csv
@@ -9,9 +9,6 @@ grass,2,0
greendirt,2,0
greenearth,2,0
greenland,2,0
-gdirt,2,0
-gearth,2,0
-gland,2,0
dirt,3,0
earth,3,0
land,3,0
@@ -39,20 +36,20 @@ dwplank,5,1
dplankwooden,5,1
dplankwood,5,1
dplankw,5,1
-pineplank,5,1
-pinewoodenplank,5,1
-pinewoodplank,5,1
-pinewplank,5,1
-pineplankwooden,5,1
-pineplankwood,5,1
-pineplankw,5,1
-pplank,5,1
-pwoodenplank,5,1
-pwoodplank,5,1
-pwplank,5,1
-pplankwooden,5,1
-pplankwood,5,1
-pplankw,5,1
+spruceplank,5,1
+sprucewoodenplank,5,1
+sprucewoodplank,5,1
+sprucewplank,5,1
+spruceplankwooden,5,1
+spruceplankwood,5,1
+spruceplankw,5,1
+splank,5,1
+swoodenplank,5,1
+swoodplank,5,1
+swplank,5,1
+splankwooden,5,1
+splankwood,5,1
+splankw,5,1
lightplank,5,2
lightwoodenplank,5,2
lightwoodplank,5,2
@@ -60,13 +57,6 @@ lightwplank,5,2
lightplankwooden,5,2
lightplankwood,5,2
lightplankw,5,2
-liteplank,5,2
-litewoodenplank,5,2
-litewoodplank,5,2
-litewplank,5,2
-liteplankwooden,5,2
-liteplankwood,5,2
-liteplankw,5,2
birchplank,5,2
birchwoodenplank,5,2
birchwoodplank,5,2
@@ -126,25 +116,11 @@ oaktreesap,6,0
oaklogsap,6,0
oaktrunksap,6,0
oakwoodsap,6,0
-normaltreesap,6,0
-normallogsap,6,0
-normaltrunksap,6,0
-normalwoodsap,6,0
osap,6,0
otreesap,6,0
ologsap,6,0
otrunksap,6,0
owoodsap,6,0
-nsap,6,0
-ntreesap,6,0
-nlogsap,6,0
-ntrunksap,6,0
-nwoodsap,6,0
-redsapling,6,1
-redtreesapling,6,1
-redlogsapling,6,1
-redtrunksapling,6,1
-redwoodsapling,6,1
darksapling,6,1
darktreesapling,6,1
darklogsapling,6,1
@@ -155,21 +131,11 @@ blacktreesapling,6,1
blacklogsapling,6,1
blacktrunksapling,6,1
blackwoodsapling,6,1
-pinesapling,6,1
-pinetreesapling,6,1
-pinelogsapling,6,1
-pinetrunksapling,6,1
-pinewoodsapling,6,1
sprucesapling,6,1
sprucetreesapling,6,1
sprucelogsapling,6,1
sprucetrunksapling,6,1
sprucewoodsapling,6,1
-rsapling,6,1
-rtreesapling,6,1
-rlogsapling,6,1
-rtrunksapling,6,1
-rwoodsapling,6,1
dsapling,6,1
dtreesapling,6,1
dlogsapling,6,1
@@ -180,21 +146,11 @@ bltreesapling,6,1
bllogsapling,6,1
bltrunksapling,6,1
blwoodsapling,6,1
-psapling,6,1
-ptreesapling,6,1
-plogsapling,6,1
-ptrunksapling,6,1
-pwoodsapling,6,1
ssapling,6,1
streesapling,6,1
slogsapling,6,1
strunksapling,6,1
swoodsapling,6,1
-redsap,6,1
-redtreesap,6,1
-redlogsap,6,1
-redtrunksap,6,1
-redwoodsap,6,1
darksap,6,1
darktreesap,6,1
darklogsap,6,1
@@ -215,11 +171,6 @@ sprucetreesap,6,1
sprucelogsap,6,1
sprucetrunksap,6,1
sprucewoodsap,6,1
-rsap,6,1
-rtreesap,6,1
-rlogsap,6,1
-rtrunksap,6,1
-rwoodsap,6,1
dsap,6,1
dtreesap,6,1
dlogsap,6,1
@@ -230,11 +181,6 @@ bltreesap,6,1
bllogsap,6,1
bltrunksap,6,1
blwoodsap,6,1
-psap,6,1
-ptreesap,6,1
-plogsap,6,1
-ptrunksap,6,1
-pwoodsap,6,1
ssap,6,1
streesap,6,1
slogsap,6,1
@@ -245,11 +191,6 @@ birchtreesapling,6,2
birchlogsapling,6,2
birchtrunksapling,6,2
birchwoodsapling,6,2
-pandasapling,6,2
-pandatreesapling,6,2
-pandalogsapling,6,2
-pandatrunksapling,6,2
-pandawoodsapling,6,2
whitesapling,6,2
whitetreesapling,6,2
whitelogsapling,6,2
@@ -280,11 +221,6 @@ birchtreesap,6,2
birchlogsap,6,2
birchtrunksap,6,2
birchwoodsap,6,2
-pandasap,6,2
-pandatreesap,6,2
-pandalogsap,6,2
-pandatrunksap,6,2
-pandawoodsap,6,2
whitesap,6,2
whitetreesap,6,2
whitelogsap,6,2
@@ -359,22 +295,10 @@ oaktree,17,0
oaklog,17,0
oaktrunk,17,0
oakwood,17,0
-normaltree,17,0
-normallog,17,0
-normaltrunk,17,0
-normalwood,17,0
otree,17,0
olog,17,0
otrunk,17,0
owood,17,0
-ntree,17,0
-nlog,17,0
-ntrunk,17,0
-nwood,17,0
-redtree,17,1
-redlog,17,1
-redtrunk,17,1
-redwood,17,1
darktree,17,1
darklog,17,1
darktrunk,17,1
@@ -383,20 +307,11 @@ blacktree,17,1
blacklog,17,1
blacktrunk,17,1
blackwood,17,1
-pine,17,1
-pinetree,17,1
-pinelog,17,1
-pinetrunk,17,1
-pinewood,17,1
spruce,17,1
sprucetree,17,1
sprucelog,17,1
sprucetrunk,17,1
sprucewood,17,1
-rtree,17,1
-rlog,17,1
-rtrunk,17,1
-rwood,17,1
dtree,17,1
dlog,17,1
dtrunk,17,1
@@ -405,10 +320,6 @@ bltree,17,1
bllog,17,1
bltrunk,17,1
blwood,17,1
-ptree,17,1
-plog,17,1
-ptrunk,17,1
-pwood,17,1
stree,17,1
slog,17,1
strunk,17,1
@@ -418,10 +329,6 @@ birchtree,17,2
birchlog,17,2
birchtrunk,17,2
birchwood,17,2
-pandatree,17,2
-pandalog,17,2
-pandatrunk,17,2
-pandawood,17,2
whitetree,17,2
whitelog,17,2
whitetrunk,17,2
@@ -434,10 +341,6 @@ btree,17,2
blog,17,2
btrunk,17,2
bwood,17,2
-patree,17,2
-palog,17,2
-patrunk,17,2
-pawood,17,2
wtree,17,2
wlog,17,2
wtrunk,17,2
@@ -458,18 +361,10 @@ oaktreeleaves,18,4
oaklogleaves,18,4
oaktrunkleaves,18,4
oakwoodleaves,18,4
-normaltreeleaves,18,4
-normallogleaves,18,4
-normaltrunkleaves,18,4
-normalwoodleaves,18,4
otreeleaves,18,4
ologleaves,18,4
otrunkleaves,18,4
owoodleaves,18,4
-ntreeleaves,18,4
-nlogleaves,18,4
-ntrunkleaves,18,4
-nwoodleaves,18,4
treeleaf,18,4
logleaf,18,4
trunkleaf,18,4
@@ -478,44 +373,10 @@ oaktreeleaf,18,4
oaklogleaf,18,4
oaktrunkleaf,18,4
oakwoodleaf,18,4
-normaltreeleaf,18,4
-normallogleaf,18,4
-normaltrunkleaf,18,4
-normalwoodleaf,18,4
otreeleaf,18,4
ologleaf,18,4
otrunkleaf,18,4
owoodleaf,18,4
-ntreeleaf,18,4
-nlogleaf,18,4
-ntrunkleaf,18,4
-nwoodleaf,18,4
-pineleaves,18,5
-pineleaf,18,5
-pinetreeleaves,18,5
-pinelogleaves,18,5
-pinetrunkleaves,18,5
-pinewoodleaves,18,5
-ptreeleaves,18,5
-plogleaves,18,5
-ptrunkleaves,18,5
-pwoodleaves,18,5
-pitreeleaves,18,5
-pilogleaves,18,5
-pitrunkleaves,18,5
-piwoodleaves,18,5
-pinetreeleaf,18,5
-pinelogleaf,18,5
-pinetrunkleaf,18,5
-pinewoodleaf,18,5
-ptreeleaf,18,5
-plogleaf,18,5
-ptrunkleaf,18,5
-pwoodleaf,18,5
-pitreeleaf,18,5
-pilogleaf,18,5
-pitrunkleaf,18,5
-piwoodleaf,18,5
birchleaves,18,6
birchleaf,18,6
birchtreeleaves,18,6
@@ -643,9 +504,6 @@ grasswild,31,0
lgrass,31,0
tgrass,31,0
wgrass,31,0
-grassl,31,0
-grasst,31,0
-grassw,31,0
deadshrub,32,0
shrubdead,32,0
dshrub,32,0
@@ -666,28 +524,16 @@ pistonbase,33,7
piston,33,7
pistonblock,33,7
pistonextensionnormal,34,0
-pistonextensionnorm,34,0
-pistonextensionn,34,0
pistonextension,34,0
pistonextnormal,34,0
-pistonextnorm,34,0
-pistonextn,34,0
pistonext,34,0
pistonenormal,34,0
-pistonenorm,34,0
-pistonen,34,0
pistone,34,0
extensionpistonnormal,34,0
-extensionpistonnorm,34,0
-extensionpistonn,34,0
extensionpiston,34,0
extpistonnormal,34,0
-extpistonnorm,34,0
-extpistonn,34,0
extpiston,34,0
epistonnormal,34,0
-epistonnorm,34,0
-epistonn,34,0
episton,34,0
whitecloth,35,0
whitewool,35,0
@@ -888,19 +734,6 @@ dstonehalfblock,43,0
doubleshalfblock,43,0
doublehalfblock,43,0
dhalfblock,43,0
-smoothstonedoublehblock,43,0
-smoothstonedhblock,43,0
-stonedoublehblock,43,0
-stonedhblock,43,0
-sdoublehblock,43,0
-sdhblock,43,0
-doublesmoothstonehblock,43,0
-dsmoothstonehblock,43,0
-doublestonehblock,43,0
-dstonehblock,43,0
-doubleshblock,43,0
-doublehblock,43,0
-dhblock,43,0
sandstonedoublestep,43,1
sandstonedstep,43,1
sstonedoublestep,43,1
@@ -937,194 +770,90 @@ doublesstonehalfblock,43,1
dsstonehalfblock,43,1
doublesshalfblock,43,1
dsshalfblock,43,1
-sandstonedoublehblock,43,1
-sandstonedhblock,43,1
-sstonedoublehblock,43,1
-sstonedhblock,43,1
-ssdoublehblock,43,1
-ssdhblock,43,1
-doublesandstonehblock,43,1
-dsandstonehblock,43,1
-doublesstonehblock,43,1
-dsstonehblock,43,1
-doublesshblock,43,1
-dsshblock,43,1
-woodenplankdoublehalfblock,43,2
-woodenplankdhalfblock,43,2
-woodplankdoublehalfblock,43,2
-woodplankdhalfblock,43,2
-wplankdoublehalfblock,43,2
-wplankdhalfblock,43,2
-plankdoublehalfblock,43,2
-plankdhalfblock,43,2
-woodenpdoublehalfblock,43,2
-woodenpdhalfblock,43,2
-woodpdoublehalfblock,43,2
-woodpdhalfblock,43,2
-wpdoublehalfblock,43,2
-wpdhalfblock,43,2
-pdoublehalfblock,43,2
-pdhalfblock,43,2
-woodendoublehalfblock,43,2
-woodendhalfblock,43,2
-wooddoublehalfblock,43,2
-wooddhalfblock,43,2
-wdoublehalfblock,43,2
-wdhalfblock,43,2
-doublewoodenplankhalfblock,43,2
-dwoodenplankhalfblock,43,2
-doublewoodplankhalfblock,43,2
-dwoodplankhalfblock,43,2
-doublewplankhalfblock,43,2
-dwplankhalfblock,43,2
-doubleplankhalfblock,43,2
-dplankhalfblock,43,2
-doublewoodenphalfblock,43,2
-dwoodenphalfblock,43,2
-doublewoodphalfblock,43,2
-dwoodphalfblock,43,2
-doublewphalfblock,43,2
-dwphalfblock,43,2
-doublephalfblock,43,2
-dphalfblock,43,2
-doublewoodenhalfblock,43,2
-dwoodenhalfblock,43,2
-doublewoodhalfblock,43,2
-dwoodhalfblock,43,2
-doublewhalfblock,43,2
-dwhalfblock,43,2
-woodenplankdoublehblock,43,2
-woodenplankdhblock,43,2
-woodplankdoublehblock,43,2
-woodplankdhblock,43,2
-wplankdoublehblock,43,2
-wplankdhblock,43,2
-plankdoublehblock,43,2
-plankdhblock,43,2
-woodenpdoublehblock,43,2
-woodenpdhblock,43,2
-woodpdoublehblock,43,2
-woodpdhblock,43,2
-wpdoublehblock,43,2
-wpdhblock,43,2
-pdoublehblock,43,2
-pdhblock,43,2
-woodendoublehblock,43,2
-woodendhblock,43,2
-wooddoublehblock,43,2
-wooddhblock,43,2
-wdoublehblock,43,2
-wdhblock,43,2
-doublewoodenplankhblock,43,2
-dwoodenplankhblock,43,2
-doublewoodplankhblock,43,2
-dwoodplankhblock,43,2
-doublewplankhblock,43,2
-dwplankhblock,43,2
-doubleplankhblock,43,2
-dplankhblock,43,2
-doublewoodenphblock,43,2
-dwoodenphblock,43,2
-doublewoodphblock,43,2
-dwoodphblock,43,2
-doublewphblock,43,2
-dwphblock,43,2
-doublewoodenhblock,43,2
-dwoodenhblock,43,2
-doublewoodhblock,43,2
-dwoodhblock,43,2
-doublewhblock,43,2
-dwhblock,43,2
-doublephblock,43,2
-dphblock,43,2
-woodenplankdoublestep,43,2
-woodenplankdstep,43,2
-woodplankdoublestep,43,2
-woodplankdstep,43,2
-wplankdoublestep,43,2
-wplankdstep,43,2
-plankdoublestep,43,2
-plankdstep,43,2
-woodenpdoublestep,43,2
-woodenpdstep,43,2
-woodpdoublestep,43,2
-woodpdstep,43,2
-wpdoublestep,43,2
-wpdstep,43,2
-pdoublestep,43,2
-pdstep,43,2
-woodendoublestep,43,2
-woodendstep,43,2
-wooddoublestep,43,2
-wooddstep,43,2
-wdoublestep,43,2
-wdstep,43,2
-doublewoodenplankstep,43,2
-dwoodenplankstep,43,2
-doublewoodplankstep,43,2
-dwoodplankstep,43,2
-doublewplankstep,43,2
-dwplankstep,43,2
-doubleplankstep,43,2
-dplankstep,43,2
-doublewoodenpstep,43,2
-dwoodenpstep,43,2
-doublewoodpstep,43,2
-dwoodpstep,43,2
-doublewpstep,43,2
-dwpstep,43,2
-doublepstep,43,2
-dpstep,43,2
-doublewoodenstep,43,2
-dwoodenstep,43,2
-doublewoodstep,43,2
-dwoodstep,43,2
-doublewstep,43,2
-dwstep,43,2
-woodenplankdoubleslab,43,2
-woodenplankdslab,43,2
-woodplankdoubleslab,43,2
-woodplankdslab,43,2
-wplankdoubleslab,43,2
-wplankdslab,43,2
-plankdoubleslab,43,2
-plankdslab,43,2
-woodenpdoubleslab,43,2
-woodenpdslab,43,2
-woodpdoubleslab,43,2
-woodpdslab,43,2
-wpdoubleslab,43,2
-wpdslab,43,2
-pdoubleslab,43,2
-pdslab,43,2
-woodendoubleslab,43,2
-woodendslab,43,2
-wooddoubleslab,43,2
-wooddslab,43,2
-wdoubleslab,43,2
-wdslab,43,2
-doublewoodenplankslab,43,2
-dwoodenplankslab,43,2
-doublewoodplankslab,43,2
-dwoodplankslab,43,2
-doublewplankslab,43,2
-dwplankslab,43,2
-doubleplankslab,43,2
-dplankslab,43,2
-doublewoodenpslab,43,2
-dwoodenpslab,43,2
-doublewoodpslab,43,2
-dwoodpslab,43,2
-doublewpslab,43,2
-dwpslab,43,2
-doublewoodenslab,43,2
-dwoodenslab,43,2
-doublewoodslab,43,2
-dwoodslab,43,2
-doublewslab,43,2
-dwslab,43,2
-doublepslab,43,2
-dpslab,43,2
+woodenplankstonedoublehalfblock,43,2
+woodenplankstonedhalfblock,43,2
+woodplankstonedoublehalfblock,43,2
+woodplankstonedhalfblock,43,2
+wplankstonedoublehalfblock,43,2
+wplankstonedhalfblock,43,2
+plankstonedoublehalfblock,43,2
+planstonekdhalfblock,43,2
+woodenstonedoublehalfblock,43,2
+woodenstonedhalfblock,43,2
+woodstonedoublehalfblock,43,2
+woodstonedhalfblock,43,2
+wstonedoublehalfblock,43,2
+wstonedhalfblock,43,2
+doublewoodenplankstonehalfblock,43,2
+dwoodenplankstonehalfblock,43,2
+doublewoodplankstonehalfblock,43,2
+dwoodplankstonehalfblock,43,2
+doublewplankstonehalfblock,43,2
+dwplankstonehalfblock,43,2
+doubleplankstonehalfblock,43,2
+dplankstonehalfblock,43,2
+doublewoodenstonehalfblock,43,2
+dwoodenstonehalfblock,43,2
+doublewoodstonehalfblock,43,2
+dwoodstonehalfblock,43,2
+doublewstonehalfblock,43,2
+dwstonehalfblock,43,2
+woodenplankstonedoublestep,43,2
+woodenplankstonedstep,43,2
+woodplankstonedoublestep,43,2
+woodplankstonedstep,43,2
+wplankstonedoublestep,43,2
+wplankstonedstep,43,2
+plankstonedoublestep,43,2
+plankstonedstep,43,2
+woodenstonedoublestep,43,2
+woodenstonedstep,43,2
+woodstonedoublestep,43,2
+woodstonedstep,43,2
+wstonedoublestep,43,2
+wstonedstep,43,2
+doublewoodenplankstonestep,43,2
+dwoodenplankstonestep,43,2
+doublewoodplankstonestep,43,2
+dwoodplankstonestep,43,2
+doublewplankstonestep,43,2
+dwplankstonestep,43,2
+doubleplankstonestep,43,2
+dplankstonestep,43,2
+doublewoodenstonestep,43,2
+dwoodenstonestep,43,2
+doublewoodstonestep,43,2
+dwoodstonestep,43,2
+doublewstonestep,43,2
+dwstonestep,43,2
+woodenplankstonedoubleslab,43,2
+woodenplankstonedslab,43,2
+woodplankstonedoubleslab,43,2
+woodplankstonedslab,43,2
+wplankstonedoubleslab,43,2
+wplankstonedslab,43,2
+plankstonedoubleslab,43,2
+plankstonedslab,43,2
+woodenstonedoubleslab,43,2
+woodenstonedslab,43,2
+woodstonedoubleslab,43,2
+woodstonedslab,43,2
+wstonedoubleslab,43,2
+wstonedslab,43,2
+doublewoodenplankstoneslab,43,2
+dwoodenplankstoneslab,43,2
+doublewoodplankstoneslab,43,2
+dwoodplankstoneslab,43,2
+doublewplankstoneslab,43,2
+dwplankstoneslab,43,2
+doubleplankstoneslab,43,2
+dplankstoneslab,43,2
+doublewoodenstoneslab,43,2
+dwoodenstoneslab,43,2
+doublewoodstoneslab,43,2
+dwoodstoneslab,43,2
+doublewstoneslab,43,2
+dwstoneslab,43,2
cobblestonedoublestep,43,3
cobblestonedstep,43,3
cobbledoublestep,43,3
@@ -1173,22 +902,6 @@ doublecstonehalfblock,43,3
dcstonehalfblock,43,3
doublecshalfblock,43,3
dcshalfblock,43,3
-cobblestonedoublehblock,43,3
-cobblestonedhblock,43,3
-cobbledoublehblock,43,3
-cobbledhblock,43,3
-cstonedoublehblock,43,3
-cstonedhblock,43,3
-csdoublehblock,43,3
-csdhblock,43,3
-doublecobblestonehblock,43,3
-dcobblestonehblock,43,3
-doublecobblehblock,43,3
-dcobblehblock,43,3
-doublecstonehblock,43,3
-dcstonehblock,43,3
-doublecshblock,43,3
-dcshblock,43,3
brickblockdoublestep,43,4
brickblockdstep,43,4
brickbdoublestep,43,4
@@ -1229,14 +942,6 @@ brickdoublehalfblock,43,4
brickdhalfblock,43,4
bdoublehalfblock,43,4
bdhalfblock,43,4
-brickblockdoublehblock,43,4
-brickblockdhblock,43,4
-brickbdoublehblock,43,4
-brickbdhblock,43,4
-brickdoublehblock,43,4
-brickdhblock,43,4
-bdoublehblock,43,4
-bdhblock,43,4
doublebrickblockhalfblock,43,4
dbrickblockhalfblock,43,4
doublebrickbhalfblock,43,4
@@ -1245,14 +950,6 @@ doublebrickhalfblock,43,4
dbrickhalfblock,43,4
doublebhalfblock,43,4
dbhalfblock,43,4
-doublebrickblockhblock,43,4
-dbrickblockhblock,43,4
-doublebrickbhblock,43,4
-dbrickbhblock,43,4
-doublebrickhblock,43,4
-dbrickhblock,43,4
-doublebhblock,43,4
-dbhblock,43,4
stonebrickdoublestep,43,5
stonebrickdstep,43,5
stonebdoublestep,43,5
@@ -1293,14 +990,6 @@ sbrickdoublehalfblock,43,5
sbrickdhalfblock,43,5
sbdoublehalfblock,43,5
sbdhalfblock,43,5
-stonebrickdoublehblock,43,5
-stonebrickdhblock,43,5
-stonebdoublehblock,43,5
-stonebdhblock,43,5
-sbrickdoublehblock,43,5
-sbrickdhblock,43,5
-sbdoublehblock,43,5
-sbdhblock,43,5
doublestonebrickhalfblock,43,5
dstonebrickhalfblock,43,5
doublestonebhalfblock,43,5
@@ -1309,14 +998,6 @@ doublesbrickhalfblock,43,5
dsbrickhalfblock,43,5
doublesbhalfblock,43,5
dsbhalfblock,43,5
-doublestonebrickhblock,43,5
-dstonebrickhblock,43,5
-doublestonebhblock,43,5
-dstonebhblock,43,5
-doublesbrickhblock,43,5
-dsbrickdhblock,43,5
-doublesbhblock,43,5
-dsbhblock,43,5
adminslab,43,6
magicslab,43,6
adslab,43,6
@@ -1332,10 +1013,6 @@ smoothstonehalfblock,44,0
stonehalfblock,44,0
shalfblock,44,0
halfblock,44,0
-smoothstonehblock,44,0
-stonehblock,44,0
-shblock,44,0
-hblock,44,0
sanddstonestep,44,1
sstonestep,44,1
ssstep,44,1
@@ -1345,51 +1022,27 @@ ssslab,44,1
sanddstonehalfblock,44,1
sstonehalfblock,44,1
sshalfblock,44,1
-sanddstonehblock,44,1
-sstonehblock,44,1
-sshblock,44,1
-woodenplankstep,44,2
-woodplankstep,44,2
-wplankstep,44,2
-plankstep,44,2
-woodenpstep,44,2
-woodpstep,44,2
-wpstep,44,2
-woodenstep,44,2
-woodstep,44,2
-wstep,44,2
-pstep,44,2
-woodplankslab,44,2
-wplankslab,44,2
-plankslab,44,2
-woodenpslab,44,2
-woodpslab,44,2
-wpslab,44,2
-woodenslab,44,2
-woodslab,44,2
-wslab,44,2
-pslab,44,2
-woodenplankhalfblock,44,2
-woodplankhalfblock,44,2
-wplankhalfblock,44,2
-plankhalfblock,44,2
-woodenphalfblock,44,2
-woodphalfblock,44,2
-wphalfblock,44,2
-woodenhalfblock,44,2
-woodhalfblock,44,2
-whalfblock,44,2
-phalfblock,44,2
-woodplankhblock,44,2
-wplankhblock,44,2
-plankhblock,44,2
-woodenphblock,44,2
-woodphblock,44,2
-wphblock,44,2
-woodenhblock,44,2
-woodhblock,44,2
-whblock,44,2
-phblock,44,2
+woodenplankstonestep,44,2
+woodplankstonestep,44,2
+wplankstonestep,44,2
+plankstonestep,44,2
+woodenstonestep,44,2
+woodstonestep,44,2
+wstonestep,44,2
+woodenplankstoneslab,44,2
+woodplankstoneslab,44,2
+wplankstoneslab,44,2
+plankstoneslab,44,2
+woodenstoneslab,44,2
+woodstoneslab,44,2
+wstoneslab,44,2
+woodenplankstonehalfblock,44,2
+woodplankstonehalfblock,44,2
+wplankstonehalfblock,44,2
+plankstonehalfblock,44,2
+woodenstonehalfblock,44,2
+woodstonehalfblock,44,2
+wstonehalfblock,44,2
cobblestonestep,44,3
cobblestep,44,3
cstonestep,44,3
@@ -1402,10 +1055,6 @@ cobblestonehalfblock,44,3
cobblehalfblock,44,3
cstonehalfblock,44,3
cshalfblock,44,3
-cobblestonehblock,44,3
-cobblehblock,44,3
-cstonehblock,44,3
-cshblock,44,3
brickblockstep,44,4
brickbstep,44,4
brickstep,44,4
@@ -1418,10 +1067,6 @@ brickblockhalfblock,44,4
brickbhalfblock,44,4
brickhalfblock,44,4
bhalfblock,44,4
-brickblockhblock,44,4
-brickbhblock,44,4
-brickhblock,44,4
-bhblock,44,4
stonebrickstep,44,5
stonebstep,44,5
sbrickstep,44,5
@@ -1434,10 +1079,6 @@ stonebrickhalfblock,44,5
stonebhalfblock,44,5
sbrickhalfblock,44,5
sbhalfblock,44,5
-stonebrickhblock,44,5
-stonebhblock,44,5
-sbrickhblock,44,5
-sbhblock,44,5
brickblock,45,0
blockbrick,45,0
bblock,45,0
@@ -1469,12 +1110,6 @@ obby,49,0
torch,50,0
burningstick,50,0
burnstick,50,0
-coalonstick,50,0
-coalonastick,50,0
-charcoalonstick,50,0
-charcoalonastick,50,0
-ccoalonstick,50,0
-ccoalonastick,50,0
fire,51,0
flame,51,0
flames,51,0
@@ -1492,13 +1127,8 @@ wstairs,53,0
woodenstair,53,0
woodstair,53,0
wstair,53,0
-stairswooden,53,0
-stairswood,53,0
-stairsw,53,0
-stairwooden,53,0
-stairwood,53,0
-stairw,53,0
chest,54,0
+container,54,0
redstonewireblock,55,0
rstonewireblock,55,0
redswireblock,55,0
@@ -1578,20 +1208,6 @@ cobblestair,67,0
csstair,67,0
sstair,67,0
cstair,67,0
-stairscobblestone,67,0
-stairscstone,67,0
-stairsstone,67,0
-stairscobble,67,0
-stairscs,67,0
-stairss,67,0
-stairsc,67,0
-staircobblestone,67,0
-staircstone,67,0
-stairstone,67,0
-staircobble,67,0
-staircs,67,0
-stairs,67,0
-stairc,67,0
wallsign,68,0
wsign,68,0
lever,69,0
@@ -1983,19 +1599,6 @@ redbstair,108,0
rbrickstair,108,0
bstair,108,0
redstair,108,0
-stairsbrick,108,0
-stairsredbrick,108,0
-stairsredb,108,0
-stairsrbrick,108,0
-stairsb,108,0
-stairsred,108,0
-stairbrick,108,0
-stairredbrick,108,0
-stairredb,108,0
-stairrbrick,108,0
-stairb,108,0
-stairred,108,0
-stairsstonebrick,109,0
stonebrickstairs,109,0
stonebstairs,109,0
sbstairs,109,0
@@ -2136,6 +1739,8 @@ endrock,121,0
enderrock,121,0
erock,121,0
estone,121,0
+enderdragonegg,122,0
+endegg,122,0
dragonegg,122,0
degg,122,0
bossegg,122,0
@@ -2149,6 +1754,1045 @@ rslampoff,123,0
redstonelampon,124,0
redlampon,124,0
rslampon,124,0
+woodenplankdoublehalfblock,125,0
+woodenplankdhalfblock,125,0
+woodplankdoublehalfblock,125,0
+woodplankdhalfblock,125,0
+wplankdoublehalfblock,125,0
+wplankdhalfblock,125,0
+plankdoublehalfblock,125,0
+plankdhalfblock,125,0
+woodendoublehalfblock,125,0
+woodendhalfblock,125,0
+wooddoublehalfblock,125,0
+wooddhalfblock,125,0
+wdoublehalfblock,125,0
+wdhalfblock,125,0
+doublewoodenplankhalfblock,125,0
+dwoodenplankhalfblock,125,0
+doublewoodplankhalfblock,125,0
+dwoodplankhalfblock,125,0
+doublewplankhalfblock,125,0
+dwplankhalfblock,125,0
+doubleplankhalfblock,125,0
+dplankhalfblock,125,0
+doublewoodenhalfblock,125,0
+dwoodenhalfblock,125,0
+doublewoodhalfblock,125,0
+dwoodhalfblock,125,0
+doublewhalfblock,125,0
+dwhalfblock,125,0
+woodenplankdoublestep,125,0
+woodenplankdstep,125,0
+woodplankdoublestep,125,0
+woodplankdstep,125,0
+wplankdoublestep,125,0
+wplankdstep,125,0
+plankdoublestep,125,0
+plankdstep,125,0
+woodendoublestep,125,0
+woodendstep,125,0
+wooddoublestep,125,0
+wooddstep,125,0
+wdoublestep,125,0
+wdstep,125,0
+doublewoodenplankstep,125,0
+dwoodenplankstep,125,0
+doublewoodplankstep,125,0
+dwoodplankstep,125,0
+doublewplankstep,125,0
+dwplankstep,125,0
+doubleplankstep,125,0
+dplankstep,125,0
+doublewoodenstep,125,0
+dwoodenstep,125,0
+doublewoodstep,125,0
+dwoodstep,125,0
+doublewstep,125,0
+dwstep,125,0
+woodenplankdoubleslab,125,0
+woodenplankdslab,125,0
+woodplankdoubleslab,125,0
+woodplankdslab,125,0
+wplankdoubleslab,125,0
+wplankdslab,125,0
+plankdoubleslab,125,0
+plankdslab,125,0
+woodendoubleslab,125,0
+woodendslab,125,0
+wooddoubleslab,125,0
+wooddslab,125,0
+wdoubleslab,125,0
+wdslab,125,0
+doublewoodenplankslab,125,0
+dwoodenplankslab,125,0
+doublewoodplankslab,125,0
+dwoodplankslab,125,0
+doublewplankslab,125,0
+dwplankslab,125,0
+doubleplankslab,125,0
+dplankslab,125,0
+doublewoodenslab,125,0
+dwoodenslab,125,0
+doublewoodslab,125,0
+dwoodslab,125,0
+doublewslab,125,0
+dwslab,125,0
+oakwoodenplankdoublehalfblock,125,0
+oakwoodenplankdhalfblock,125,0
+oakwoodplankdoublehalfblock,125,0
+oakwoodplankdhalfblock,125,0
+oakwplankdoublehalfblock,125,0
+oakwplankdhalfblock,125,0
+oakplankdoublehalfblock,125,0
+oakplankdhalfblock,125,0
+oakwoodendoublehalfblock,125,0
+oakwoodendhalfblock,125,0
+oakwooddoublehalfblock,125,0
+oakwooddhalfblock,125,0
+oakwdoublehalfblock,125,0
+oakwdhalfblock,125,0
+oakdoublewoodenplankhalfblock,125,0
+oakdwoodenplankhalfblock,125,0
+oakdoublewoodplankhalfblock,125,0
+oakdwoodplankhalfblock,125,0
+oakdoublewplankhalfblock,125,0
+oakdwplankhalfblock,125,0
+oakdoubleplankhalfblock,125,0
+oakdplankhalfblock,125,0
+oakdoublewoodenhalfblock,125,0
+oakdwoodenhalfblock,125,0
+oakdoublewoodhalfblock,125,0
+oakdwoodhalfblock,125,0
+oakdoublewhalfblock,125,0
+oakdwhalfblock,125,0
+oakdoublehalfblock,125,0
+oakdhalfblock,125,0
+oakwoodenplankdoublestep,125,0
+oakwoodenplankdstep,125,0
+oakwoodplankdoublestep,125,0
+oakwoodplankdstep,125,0
+oakwplankdoublestep,125,0
+oakwplankdstep,125,0
+oakplankdoublestep,125,0
+oakplankdstep,125,0
+oakwoodendoublestep,125,0
+oakwoodendstep,125,0
+oakwooddoublestep,125,0
+oakwooddstep,125,0
+oakwdoublestep,125,0
+oakwdstep,125,0
+oakdoublewoodenplankstep,125,0
+oakdwoodenplankstep,125,0
+oakdoublewoodplankstep,125,0
+oakdwoodplankstep,125,0
+oakdoublewplankstep,125,0
+oakdwplankstep,125,0
+oakdoubleplankstep,125,0
+oakdplankstep,125,0
+oakdoublewoodenstep,125,0
+oakdwoodenstep,125,0
+oakdoublewoodstep,125,0
+oakdwoodstep,125,0
+oakdoublewstep,125,0
+oakdwstep,125,0
+oakdoublestep,125,0
+oakdstep,125,0
+oakwoodenplankdoubleslab,125,0
+oakwoodenplankdslab,125,0
+oakwoodplankdoubleslab,125,0
+oakwoodplankdslab,125,0
+oakwplankdoubleslab,125,0
+oakwplankdslab,125,0
+oakplankdoubleslab,125,0
+oakplankdslab,125,0
+oakwoodendoubleslab,125,0
+oakwoodendslab,125,0
+oakwooddoubleslab,125,0
+oakwooddslab,125,0
+oakwdoubleslab,125,0
+oakwdslab,125,0
+oakdoublewoodenplankslab,125,0
+oakdwoodenplankslab,125,0
+oakdoublewoodplankslab,125,0
+oakdwoodplankslab,125,0
+oakdoublewplankslab,125,0
+oakdwplankslab,125,0
+oakdoubleplankslab,125,0
+oakdplankslab,125,0
+oakdoublewoodenslab,125,0
+oakdwoodenslab,125,0
+oakdoublewoodslab,125,0
+oakdwoodslab,125,0
+oakdoublewslab,125,0
+oakdwslab,125,0
+oakdoubleslab,125,0
+oakdslab,125,0
+sprucewoodenplankdoublehalfblock,125,1
+sprucewoodenplankdhalfblock,125,1
+sprucewoodplankdoublehalfblock,125,1
+sprucewoodplankdhalfblock,125,1
+sprucewplankdoublehalfblock,125,1
+sprucewplankdhalfblock,125,1
+spruceplankdoublehalfblock,125,1
+spruceplankdhalfblock,125,1
+sprucewoodendoublehalfblock,125,1
+sprucewoodendhalfblock,125,1
+sprucewooddoublehalfblock,125,1
+sprucewooddhalfblock,125,1
+sprucewdoublehalfblock,125,1
+sprucewdhalfblock,125,1
+sprucedoublewoodenplankhalfblock,125,1
+sprucedwoodenplankhalfblock,125,1
+sprucedoublewoodplankhalfblock,125,1
+sprucedwoodplankhalfblock,125,1
+sprucedoublewplankhalfblock,125,1
+sprucedwplankhalfblock,125,1
+sprucedoubleplankhalfblock,125,1
+sprucedplankhalfblock,125,1
+sprucedoublewoodenhalfblock,125,1
+sprucedwoodenhalfblock,125,1
+sprucedoublewoodhalfblock,125,1
+sprucedwoodhalfblock,125,1
+sprucedoublewhalfblock,125,1
+sprucedwhalfblock,125,1
+sprucedoublehalfblock,125,1
+sprucedhalfblock,125,1
+sprucewoodenplankdoublestep,125,1
+sprucewoodenplankdstep,125,1
+sprucewoodplankdoublestep,125,1
+sprucewoodplankdstep,125,1
+sprucewplankdoublestep,125,1
+sprucewplankdstep,125,1
+spruceplankdoublestep,125,1
+spruceplankdstep,125,1
+sprucewoodendoublestep,125,1
+sprucewoodendstep,125,1
+sprucewooddoublestep,125,1
+sprucewooddstep,125,1
+sprucewdoublestep,125,1
+sprucewdstep,125,1
+sprucedoublewoodenplankstep,125,1
+sprucedwoodenplankstep,125,1
+sprucedoublewoodplankstep,125,1
+sprucedwoodplankstep,125,1
+sprucedoublewplankstep,125,1
+sprucedwplankstep,125,1
+sprucedoubleplankstep,125,1
+sprucedplankstep,125,1
+sprucedoublewoodenstep,125,1
+sprucedwoodenstep,125,1
+sprucedoublewoodstep,125,1
+sprucedwoodstep,125,1
+sprucedoublewstep,125,1
+sprucedwstep,125,1
+sprucedoublestep,125,1
+sprucedstep,125,1
+sprucewoodenplankdoubleslab,125,1
+sprucewoodenplankdslab,125,1
+sprucewoodplankdoubleslab,125,1
+sprucewoodplankdslab,125,1
+sprucewplankdoubleslab,125,1
+sprucewplankdslab,125,1
+spruceplankdoubleslab,125,1
+spruceplankdslab,125,1
+sprucewoodendoubleslab,125,1
+sprucewoodendslab,125,1
+sprucewooddoubleslab,125,1
+sprucewooddslab,125,1
+sprucewdoubleslab,125,1
+sprucewdslab,125,1
+sprucedoublewoodenplankslab,125,1
+sprucedwoodenplankslab,125,1
+sprucedoublewoodplankslab,125,1
+sprucedwoodplankslab,125,1
+sprucedoublewplankslab,125,1
+sprucedwplankslab,125,1
+sprucedoubleplankslab,125,1
+sprucedplankslab,125,1
+sprucedoublewoodenslab,125,1
+sprucedwoodenslab,125,1
+sprucedoublewoodslab,125,1
+sprucedwoodslab,125,1
+sprucedoublewslab,125,1
+sprucedwslab,125,1
+sprucedoubleslab,125,1
+sprucedslab,125,1
+darkwoodenplankdoublehalfblock,125,1
+darkwoodenplankdhalfblock,125,1
+darkwoodplankdoublehalfblock,125,1
+darkwoodplankdhalfblock,125,1
+darkwplankdoublehalfblock,125,1
+darkwplankdhalfblock,125,1
+darkplankdoublehalfblock,125,1
+darkplankdhalfblock,125,1
+darkwoodendoublehalfblock,125,1
+darkwoodendhalfblock,125,1
+darkwooddoublehalfblock,125,1
+darkwooddhalfblock,125,1
+darkwdoublehalfblock,125,1
+darkwdhalfblock,125,1
+darkdoublewoodenplankhalfblock,125,1
+darkdwoodenplankhalfblock,125,1
+darkdoublewoodplankhalfblock,125,1
+darkdwoodplankhalfblock,125,1
+darkdoublewplankhalfblock,125,1
+darkdwplankhalfblock,125,1
+darkdoubleplankhalfblock,125,1
+darkdplankhalfblock,125,1
+darkdoublewoodenhalfblock,125,1
+darkdwoodenhalfblock,125,1
+darkdoublewoodhalfblock,125,1
+darkdwoodhalfblock,125,1
+darkdoublewhalfblock,125,1
+darkdwhalfblock,125,1
+darkdoublehalfblock,125,1
+darkdhalfblock,125,1
+darkwoodenplankdoublestep,125,1
+darkwoodenplankdstep,125,1
+darkwoodplankdoublestep,125,1
+darkwoodplankdstep,125,1
+darkwplankdoublestep,125,1
+darkwplankdstep,125,1
+darkplankdoublestep,125,1
+darkplankdstep,125,1
+darkwoodendoublestep,125,1
+darkwoodendstep,125,1
+darkwooddoublestep,125,1
+darkwooddstep,125,1
+darkwdoublestep,125,1
+darkwdstep,125,1
+darkdoublewoodenplankstep,125,1
+darkdwoodenplankstep,125,1
+darkdoublewoodplankstep,125,1
+darkdwoodplankstep,125,1
+darkdoublewplankstep,125,1
+darkdwplankstep,125,1
+darkdoubleplankstep,125,1
+darkdplankstep,125,1
+darkdoublewoodenstep,125,1
+darkdwoodenstep,125,1
+darkdoublewoodstep,125,1
+darkdwoodstep,125,1
+darkdoublewstep,125,1
+darkdwstep,125,1
+darkdoublestep,125,1
+darkdstep,125,1
+darkwoodenplankdoubleslab,125,1
+darkwoodenplankdslab,125,1
+darkwoodplankdoubleslab,125,1
+darkwoodplankdslab,125,1
+darkwplankdoubleslab,125,1
+darkwplankdslab,125,1
+darkplankdoubleslab,125,1
+darkplankdslab,125,1
+darkwoodendoubleslab,125,1
+darkwoodendslab,125,1
+darkwooddoubleslab,125,1
+darkwooddslab,125,1
+darkwdoubleslab,125,1
+darkwdslab,125,1
+darkdoublewoodenplankslab,125,1
+darkdwoodenplankslab,125,1
+darkdoublewoodplankslab,125,1
+darkdwoodplankslab,125,1
+darkdoublewplankslab,125,1
+darkdwplankslab,125,1
+darkdoubleplankslab,125,1
+darkdplankslab,125,1
+darkdoublewoodenslab,125,1
+darkdwoodenslab,125,1
+darkdoublewoodslab,125,1
+darkdwoodslab,125,1
+darkdoublewslab,125,1
+darkdwslab,125,1
+darkdoubleslab,125,1
+darkdslab,125,1
+birchwoodenplankdoublehalfblock,125,2
+birchwoodenplankdhalfblock,125,2
+birchwoodplankdoublehalfblock,125,2
+birchwoodplankdhalfblock,125,2
+birchwplankdoublehalfblock,125,2
+birchwplankdhalfblock,125,2
+birchplankdoublehalfblock,125,2
+birchplankdhalfblock,125,2
+birchwoodendoublehalfblock,125,2
+birchwoodendhalfblock,125,2
+birchwooddoublehalfblock,125,2
+birchwooddhalfblock,125,2
+birchwdoublehalfblock,125,2
+birchwdhalfblock,125,2
+birchdoublewoodenplankhalfblock,125,2
+birchdwoodenplankhalfblock,125,2
+birchdoublewoodplankhalfblock,125,2
+birchdwoodplankhalfblock,125,2
+birchdoublewplankhalfblock,125,2
+birchdwplankhalfblock,125,2
+birchdoubleplankhalfblock,125,2
+birchdplankhalfblock,125,2
+birchdoublewoodenhalfblock,125,2
+birchdwoodenhalfblock,125,2
+birchdoublewoodhalfblock,125,2
+birchdwoodhalfblock,125,2
+birchdoublewhalfblock,125,2
+birchdwhalfblock,125,2
+birchdoublehalfblock,125,2
+birchdhalfblock,125,2
+birchwoodenplankdoublestep,125,2
+birchwoodenplankdstep,125,2
+birchwoodplankdoublestep,125,2
+birchwoodplankdstep,125,2
+birchwplankdoublestep,125,2
+birchwplankdstep,125,2
+birchplankdoublestep,125,2
+birchplankdstep,125,2
+birchwoodendoublestep,125,2
+birchwoodendstep,125,2
+birchwooddoublestep,125,2
+birchwooddstep,125,2
+birchwdoublestep,125,2
+birchwdstep,125,2
+birchdoublewoodenplankstep,125,2
+birchdwoodenplankstep,125,2
+birchdoublewoodplankstep,125,2
+birchdwoodplankstep,125,2
+birchdoublewplankstep,125,2
+birchdwplankstep,125,2
+birchdoubleplankstep,125,2
+birchdplankstep,125,2
+birchdoublewoodenstep,125,2
+birchdwoodenstep,125,2
+birchdoublewoodstep,125,2
+birchdwoodstep,125,2
+birchdoublewstep,125,2
+birchdwstep,125,2
+birchdoublestep,125,2
+birchdstep,125,2
+birchwoodenplankdoubleslab,125,2
+birchwoodenplankdslab,125,2
+birchwoodplankdoubleslab,125,2
+birchwoodplankdslab,125,2
+birchwplankdoubleslab,125,2
+birchwplankdslab,125,2
+birchplankdoubleslab,125,2
+birchplankdslab,125,2
+birchwoodendoubleslab,125,2
+birchwoodendslab,125,2
+birchwooddoubleslab,125,2
+birchwooddslab,125,2
+birchwdoubleslab,125,2
+birchwdslab,125,2
+birchdoublewoodenplankslab,125,2
+birchdwoodenplankslab,125,2
+birchdoublewoodplankslab,125,2
+birchdwoodplankslab,125,2
+birchdoublewplankslab,125,2
+birchdwplankslab,125,2
+birchdoubleplankslab,125,2
+birchdplankslab,125,2
+birchdoublewoodenslab,125,2
+birchdwoodenslab,125,2
+birchdoublewoodslab,125,2
+birchdwoodslab,125,2
+birchdoublewslab,125,2
+birchdwslab,125,2
+birchdoubleslab,125,2
+birchdslab,125,2
+lightwoodenplankdoublehalfblock,125,2
+lightwoodenplankdhalfblock,125,2
+lightwoodplankdoublehalfblock,125,2
+lightwoodplankdhalfblock,125,2
+lightwplankdoublehalfblock,125,2
+lightwplankdhalfblock,125,2
+lightplankdoublehalfblock,125,2
+lightplankdhalfblock,125,2
+lightwoodendoublehalfblock,125,2
+lightwoodendhalfblock,125,2
+lightwooddoublehalfblock,125,2
+lightwooddhalfblock,125,2
+lightwdoublehalfblock,125,2
+lightwdhalfblock,125,2
+lightdoublewoodenplankhalfblock,125,2
+lightdwoodenplankhalfblock,125,2
+lightdoublewoodplankhalfblock,125,2
+lightdwoodplankhalfblock,125,2
+lightdoublewplankhalfblock,125,2
+lightdwplankhalfblock,125,2
+lightdoubleplankhalfblock,125,2
+lightdplankhalfblock,125,2
+lightdoublewoodenhalfblock,125,2
+lightdwoodenhalfblock,125,2
+lightdoublewoodhalfblock,125,2
+lightdwoodhalfblock,125,2
+lightdoublewhalfblock,125,2
+lightdwhalfblock,125,2
+lightdoublehalfblock,125,2
+lightdhalfblock,125,2
+lightwoodenplankdoublestep,125,2
+lightwoodenplankdstep,125,2
+lightwoodplankdoublestep,125,2
+lightwoodplankdstep,125,2
+lightwplankdoublestep,125,2
+lightwplankdstep,125,2
+lightplankdoublestep,125,2
+lightplankdstep,125,2
+lightwoodendoublestep,125,2
+lightwoodendstep,125,2
+lightwooddoublestep,125,2
+lightwooddstep,125,2
+lightwdoublestep,125,2
+lightwdstep,125,2
+lightdoublewoodenplankstep,125,2
+lightdwoodenplankstep,125,2
+lightdoublewoodplankstep,125,2
+lightdwoodplankstep,125,2
+lightdoublewplankstep,125,2
+lightdwplankstep,125,2
+lightdoubleplankstep,125,2
+lightdplankstep,125,2
+lightdoublewoodenstep,125,2
+lightdwoodenstep,125,2
+lightdoublewoodstep,125,2
+lightdwoodstep,125,2
+lightdoublewstep,125,2
+lightdwstep,125,2
+lightdoublestep,125,2
+lightdstep,125,2
+lightwoodenplankdoubleslab,125,2
+lightwoodenplankdslab,125,2
+lightwoodplankdoubleslab,125,2
+lightwoodplankdslab,125,2
+lightwplankdoubleslab,125,2
+lightwplankdslab,125,2
+lightplankdoubleslab,125,2
+lightplankdslab,125,2
+lightwoodendoubleslab,125,2
+lightwoodendslab,125,2
+lightwooddoubleslab,125,2
+lightwooddslab,125,2
+lightwdoubleslab,125,2
+lightwdslab,125,2
+lightdoublewoodenplankslab,125,2
+lightdwoodenplankslab,125,2
+lightdoublewoodplankslab,125,2
+lightdwoodplankslab,125,2
+lightdoublewplankslab,125,2
+lightdwplankslab,125,2
+lightdoubleplankslab,125,2
+lightdplankslab,125,2
+lightdoublewoodenslab,125,2
+lightdwoodenslab,125,2
+lightdoublewoodslab,125,2
+lightdwoodslab,125,2
+lightdoublewslab,125,2
+lightdwslab,125,2
+lightdoubleslab,125,2
+lightdslab,125,2
+junglewoodenplankdoublehalfblock,125,3
+junglewoodenplankdhalfblock,125,3
+junglewoodplankdoublehalfblock,125,3
+junglewoodplankdhalfblock,125,3
+junglewplankdoublehalfblock,125,3
+junglewplankdhalfblock,125,3
+jungleplankdoublehalfblock,125,3
+jungleplankdhalfblock,125,3
+junglewoodendoublehalfblock,125,3
+junglewoodendhalfblock,125,3
+junglewooddoublehalfblock,125,3
+junglewooddhalfblock,125,3
+junglewdoublehalfblock,125,3
+junglewdhalfblock,125,3
+jungledoublewoodenplankhalfblock,125,3
+jungledwoodenplankhalfblock,125,3
+jungledoublewoodplankhalfblock,125,3
+jungledwoodplankhalfblock,125,3
+jungledoublewplankhalfblock,125,3
+jungledwplankhalfblock,125,3
+jungledoubleplankhalfblock,125,3
+jungledplankhalfblock,125,3
+jungledoublewoodenhalfblock,125,3
+jungledwoodenhalfblock,125,3
+jungledoublewoodhalfblock,125,3
+jungledwoodhalfblock,125,3
+jungledoublewhalfblock,125,3
+jungledwhalfblock,125,3
+jungledoublehalfblock,125,3
+jungledhalfblock,125,3
+junglewoodenplankdoublestep,125,3
+junglewoodenplankdstep,125,3
+junglewoodplankdoublestep,125,3
+junglewoodplankdstep,125,3
+junglewplankdoublestep,125,3
+junglewplankdstep,125,3
+jungleplankdoublestep,125,3
+jungleplankdstep,125,3
+junglewoodendoublestep,125,3
+junglewoodendstep,125,3
+junglewooddoublestep,125,3
+junglewooddstep,125,3
+junglewdoublestep,125,3
+junglewdstep,125,3
+jungledoublewoodenplankstep,125,3
+jungledwoodenplankstep,125,3
+jungledoublewoodplankstep,125,3
+jungledwoodplankstep,125,3
+jungledoublewplankstep,125,3
+jungledwplankstep,125,3
+jungledoubleplankstep,125,3
+jungledplankstep,125,3
+jungledoublewoodenstep,125,3
+jungledwoodenstep,125,3
+jungledoublewoodstep,125,3
+jungledwoodstep,125,3
+jungledoublewstep,125,3
+jungledwstep,125,3
+jungledoublestep,125,3
+jungledstep,125,3
+junglewoodenplankdoubleslab,125,3
+junglewoodenplankdslab,125,3
+junglewoodplankdoubleslab,125,3
+junglewoodplankdslab,125,3
+junglewplankdoubleslab,125,3
+junglewplankdslab,125,3
+jungleplankdoubleslab,125,3
+jungleplankdslab,125,3
+junglewoodendoubleslab,125,3
+junglewoodendslab,125,3
+junglewooddoubleslab,125,3
+junglewooddslab,125,3
+junglewdoubleslab,125,3
+junglewdslab,125,3
+jungledoublewoodenplankslab,125,3
+jungledwoodenplankslab,125,3
+jungledoublewoodplankslab,125,3
+jungledwoodplankslab,125,3
+jungledoublewplankslab,125,3
+jungledwplankslab,125,3
+jungledoubleplankslab,125,3
+jungledplankslab,125,3
+jungledoublewoodenslab,125,3
+jungledwoodenslab,125,3
+jungledoublewoodslab,125,3
+jungledwoodslab,125,3
+jungledoublewslab,125,3
+jungledwslab,125,3
+jungledoubleslab,125,3
+jungledslab,125,3
+forestwoodenplankdoublehalfblock,125,3
+forestwoodenplankdhalfblock,125,3
+forestwoodplankdoublehalfblock,125,3
+forestwoodplankdhalfblock,125,3
+forestwplankdoublehalfblock,125,3
+forestwplankdhalfblock,125,3
+forestplankdoublehalfblock,125,3
+forestplankdhalfblock,125,3
+forestwoodendoublehalfblock,125,3
+forestwoodendhalfblock,125,3
+forestwooddoublehalfblock,125,3
+forestwooddhalfblock,125,3
+forestwdoublehalfblock,125,3
+forestwdhalfblock,125,3
+forestdoublewoodenplankhalfblock,125,3
+forestdwoodenplankhalfblock,125,3
+forestdoublewoodplankhalfblock,125,3
+forestdwoodplankhalfblock,125,3
+forestdoublewplankhalfblock,125,3
+forestdwplankhalfblock,125,3
+forestdoubleplankhalfblock,125,3
+forestdplankhalfblock,125,3
+forestdoublewoodenhalfblock,125,3
+forestdwoodenhalfblock,125,3
+forestdoublewoodhalfblock,125,3
+forestdwoodhalfblock,125,3
+forestdoublewhalfblock,125,3
+forestdwhalfblock,125,3
+forestdoublehalfblock,125,3
+forestdhalfblock,125,3
+forestwoodenplankdoublestep,125,3
+forestwoodenplankdstep,125,3
+forestwoodplankdoublestep,125,3
+forestwoodplankdstep,125,3
+forestwplankdoublestep,125,3
+forestwplankdstep,125,3
+forestplankdoublestep,125,3
+forestplankdstep,125,3
+forestwoodendoublestep,125,3
+forestwoodendstep,125,3
+forestwooddoublestep,125,3
+forestwooddstep,125,3
+forestwdoublestep,125,3
+forestwdstep,125,3
+forestdoublewoodenplankstep,125,3
+forestdwoodenplankstep,125,3
+forestdoublewoodplankstep,125,3
+forestdwoodplankstep,125,3
+forestdoublewplankstep,125,3
+forestdwplankstep,125,3
+forestdoubleplankstep,125,3
+forestdplankstep,125,3
+forestdoublewoodenstep,125,3
+forestdwoodenstep,125,3
+forestdoublewoodstep,125,3
+forestdwoodstep,125,3
+forestdoublewstep,125,3
+forestdwstep,125,3
+forestdoublestep,125,3
+forestdstep,125,3
+forestwoodenplankdoubleslab,125,3
+forestwoodenplankdslab,125,3
+forestwoodplankdoubleslab,125,3
+forestwoodplankdslab,125,3
+forestwplankdoubleslab,125,3
+forestwplankdslab,125,3
+forestplankdoubleslab,125,3
+forestplankdslab,125,3
+forestwoodendoubleslab,125,3
+forestwoodendslab,125,3
+forestwooddoubleslab,125,3
+forestwooddslab,125,3
+forestwdoubleslab,125,3
+forestwdslab,125,3
+forestdoublewoodenplankslab,125,3
+forestdwoodenplankslab,125,3
+forestdoublewoodplankslab,125,3
+forestdwoodplankslab,125,3
+forestdoublewplankslab,125,3
+forestdwplankslab,125,3
+forestdoubleplankslab,125,3
+forestdplankslab,125,3
+forestdoublewoodenslab,125,3
+forestdwoodenslab,125,3
+forestdoublewoodslab,125,3
+forestdwoodslab,125,3
+forestdoublewslab,125,3
+forestdwslab,125,3
+forestdoubleslab,125,3
+forestdslab,125,3
+woodenplankstep,126,0
+woodplankstep,126,0
+wplankstep,126,0
+plankstep,126,0
+woodenstep,126,0
+woodstep,126,0
+wstep,126,0
+woodenplankslab,126,0
+woodplankslab,126,0
+wplankslab,126,0
+plankslab,126,0
+woodenslab,126,0
+woodslab,126,0
+wslab,126,0
+woodenplankhalfblock,126,0
+woodplankhalfblock,126,0
+wplankhalfblock,126,0
+plankhalfblock,126,0
+woodenhalfblock,126,0
+woodhalfblock,126,0
+whalfblock,126,0
+oakwoodenplankstep,126,0
+oakwoodplankstep,126,0
+oakwplankstep,126,0
+oakplankstep,126,0
+oakwoodenstep,126,0
+oakwoodstep,126,0
+oakwstep,126,0
+oakstep,126,0
+oakwoodenplankslab,126,0
+oakwoodplankslab,126,0
+oakwplankslab,126,0
+oakplankslab,126,0
+oakwoodenslab,126,0
+oakwoodslab,126,0
+oakwslab,126,0
+oakslab,126,0
+oakwoodenplankhalfblock,126,0
+oakwoodplankhalfblock,126,0
+oakwplankhalfblock,126,0
+oakplankhalfblock,126,0
+oakwoodenhalfblock,126,0
+oakwoodhalfblock,126,0
+oakwhalfblock,126,0
+oakhalfblock,126,0
+sprucewoodenplankstep,126,1
+sprucewoodplankstep,126,1
+sprucewplankstep,126,1
+spruceplankstep,126,1
+sprucewoodenstep,126,1
+sprucewoodstep,126,1
+sprucewstep,126,1
+sprucestep,126,1
+sprucewoodenplankslab,126,1
+sprucewoodplankslab,126,1
+sprucewplankslab,126,1
+spruceplankslab,126,1
+sprucewoodenslab,126,1
+sprucewoodslab,126,1
+sprucewslab,126,1
+spruceslab,126,1
+sprucewoodenplankhalfblock,126,1
+sprucewoodplankhalfblock,126,1
+sprucewplankhalfblock,126,1
+spruceplankhalfblock,126,1
+sprucewoodenhalfblock,126,1
+sprucewoodhalfblock,126,1
+sprucewhalfblock,126,1
+sprucehalfblock,126,1
+darkwoodenplankstep,126,1
+darkwoodplankstep,126,1
+darkwplankstep,126,1
+darkplankstep,126,1
+darkwoodenstep,126,1
+darkwoodstep,126,1
+darkwstep,126,1
+darkstep,126,1
+darkwoodenplankslab,126,1
+darkwoodplankslab,126,1
+darkwplankslab,126,1
+darkplankslab,126,1
+darkwoodenslab,126,1
+darkwoodslab,126,1
+darkwslab,126,1
+darkslab,126,1
+darkwoodenplankhalfblock,126,1
+darkwoodplankhalfblock,126,1
+darkwplankhalfblock,126,1
+darkplankhalfblock,126,1
+darkwoodenhalfblock,126,1
+darkwoodhalfblock,126,1
+darkwhalfblock,126,1
+darkhalfblock,126,1
+birchwoodenplankstep,126,2
+birchwoodplankstep,126,2
+birchwplankstep,126,2
+birchplankstep,126,2
+birchwoodenstep,126,2
+birchwoodstep,126,2
+birchwstep,126,2
+birchstep,126,2
+birchwoodenplankslab,126,2
+birchwoodplankslab,126,2
+birchwplankslab,126,2
+birchplankslab,126,2
+birchwoodenslab,126,2
+birchwoodslab,126,2
+birchwslab,126,2
+birchslab,126,2
+birchwoodenplankhalfblock,126,2
+birchwoodplankhalfblock,126,2
+birchwplankhalfblock,126,2
+birchplankhalfblock,126,2
+birchwoodenhalfblock,126,2
+birchwoodhalfblock,126,2
+birchwhalfblock,126,2
+birchhalfblock,126,2
+lightwoodenplankstep,126,2
+lightwoodplankstep,126,2
+lightwplankstep,126,2
+lightplankstep,126,2
+lightwoodenstep,126,2
+lightwoodstep,126,2
+lightwstep,126,2
+lightstep,126,2
+lightwoodenplankslab,126,2
+lightwoodplankslab,126,2
+lightwplankslab,126,2
+lightplankslab,126,2
+lightwoodenslab,126,2
+lightwoodslab,126,2
+lightwslab,126,2
+lightslab,126,2
+lightwoodenplankhalfblock,126,2
+lightwoodplankhalfblock,126,2
+lightwplankhalfblock,126,2
+lightplankhalfblock,126,2
+lightwoodenhalfblock,126,2
+lightwoodhalfblock,126,2
+lightwhalfblock,126,2
+lighthalfblock,126,2
+junglewoodenplankstep,126,3
+junglewoodplankstep,126,3
+junglewplankstep,126,3
+jungleplankstep,126,3
+junglewoodenstep,126,3
+junglewoodstep,126,3
+junglewstep,126,3
+junglestep,126,3
+junglewoodenplankslab,126,3
+junglewoodplankslab,126,3
+junglewplankslab,126,3
+jungleplankslab,126,3
+junglewoodenslab,126,3
+junglewoodslab,126,3
+junglewslab,126,3
+jungleslab,126,3
+junglewoodenplankhalfblock,126,3
+junglewoodplankhalfblock,126,3
+junglewplankhalfblock,126,3
+jungleplankhalfblock,126,3
+junglewoodenhalfblock,126,3
+junglewoodhalfblock,126,3
+junglewhalfblock,126,3
+junglehalfblock,126,3
+forestwoodenplankstep,126,3
+forestwoodplankstep,126,3
+forestwplankstep,126,3
+forestplankstep,126,3
+forestwoodenstep,126,3
+forestwoodstep,126,3
+forestwstep,126,3
+foreststep,126,3
+forestwoodenplankslab,126,3
+forestwoodplankslab,126,3
+forestwplankslab,126,3
+forestplankslab,126,3
+forestwoodenslab,126,3
+forestwoodslab,126,3
+forestwslab,126,3
+forestslab,126,3
+forestwoodenplankhalfblock,126,3
+forestwoodplankhalfblock,126,3
+forestwplankhalfblock,126,3
+forestplankhalfblock,126,3
+forestwoodenhalfblock,126,3
+forestwoodhalfblock,126,3
+forestwhalfblock,126,3
+foresthalfblock,126,3
+cocoaplant,127,0
+cocopant,127,0
+cocoafruit,127,0
+cocofruit,127,0
+sandstairs,128,0
+sandstonestairs,128,0
+sandsstairs,128,0
+sstonestairs,128,0
+ssstairs,128,0
+sandstair,128,0
+sandstonestair,128,0
+sandsstair,128,0
+sstonestair,128,0
+ssstair,128,0
+emeraldore,129,0
+eore,129,0
+oreemerald,129,0
+oree,129,0
+enderchest,130,0
+endchest,130,0
+echest,130,0
+chestender,130,0
+chestend,130,0
+cheste,130,0
+endercontainer,130,0
+endcontainer,130,0
+econtainer,130,0
+tripwirehook,131,0
+tripwire,131,0
+trip,131,0
+tripwirelever,131,0
+triphook,131,0
+tripwireblock,132,0
+tripblock,132,0
+blocktrip,132,0
+blocktripwire,132,0
+emeraldblock,133,0
+blockemerald,133,0
+eblock,133,0
+blocke,133,0
+sprucewoodenplankstairs,134,0
+sprucewoodplankstairs,134,0
+sprucewplankstairs,134,0
+spruceplankstairs,134,0
+sprucewoodenstairs,134,0
+sprucewoodstairs,134,0
+sprucewstairs,134,0
+sprucestairs,134,0
+darkwoodenplankstairs,134,0
+darkwoodplankstairs,134,0
+darkwplankstairs,134,0
+darkplankstairs,134,0
+darkwoodenstairs,134,0
+darkwoodstairs,134,0
+darkwstairs,134,0
+darkstairs,134,0
+sprucewoodenplankstair,134,0
+sprucewoodplankstair,134,0
+sprucewplankstair,134,0
+spruceplankstair,134,0
+sprucewoodenstair,134,0
+sprucewoodstair,134,0
+sprucewstair,134,0
+sprucestair,134,0
+darkwoodenplankstair,134,0
+darkwoodplankstair,134,0
+darkwplankstair,134,0
+darkplankstair,134,0
+darkwoodenstair,134,0
+darkwoodstair,134,0
+darkwstair,134,0
+darkstair,134,0
+birchwoodenplankstairs,135,0
+birchwoodplankstairs,135,0
+birchwplankstairs,135,0
+birchplankstairs,135,0
+birchwoodenstairs,135,0
+birchwoodstairs,135,0
+birchwstairs,135,0
+birchstairs,135,0
+lightwoodenplankstairs,135,0
+lightwoodplankstairs,135,0
+lightwplankstairs,135,0
+lightplankstairs,135,0
+lightwoodenstairs,135,0
+lightwoodstairs,135,0
+lightwstairs,135,0
+lightstairs,135,0
+birchwoodenplankstair,135,0
+birchwoodplankstair,135,0
+birchwplankstair,135,0
+birchplankstair,135,0
+birchwoodenstair,135,0
+birchwoodstair,135,0
+birchwstair,135,0
+birchstair,135,0
+lightwoodenplankstair,135,0
+lightwoodplankstair,135,0
+lightwplankstair,135,0
+lightplankstair,135,0
+lightwoodenstair,135,0
+lightwoodstair,135,0
+lightwstair,135,0
+lightstair,135,0
+junglewoodenplankstairs,136,0
+junglewoodplankstairs,136,0
+junglewplankstairs,136,0
+jungleplankstairs,136,0
+junglewoodenstairs,136,0
+junglewoodstairs,136,0
+junglewstairs,136,0
+junglestairs,136,0
+forestwoodenplankstairs,136,0
+forestwoodplankstairs,136,0
+forestwplankstairs,136,0
+forestplankstairs,136,0
+forestwoodenstairs,136,0
+forestwoodstairs,136,0
+forestwstairs,136,0
+foreststairs,136,0
+junglewoodenplankstair,136,0
+junglewoodplankstair,136,0
+junglewplankstair,136,0
+jungleplankstair,136,0
+junglewoodenstair,136,0
+junglewoodstair,136,0
+junglewstair,136,0
+junglestair,136,0
+forestwoodenplankstair,136,0
+forestwoodplankstair,136,0
+forestwplankstair,136,0
+forestplankstair,136,0
+forestwoodenstair,136,0
+forestwoodstair,136,0
+forestwstair,136,0
+foreststair,136,0
ironshovel,256,0
ironspade,256,0
ishovel,256,0
@@ -2975,10 +3619,6 @@ sugar,353,0
whitedust,353,0
cake,354,0
bed,355,0
-sleepingtable,355,0
-sleeptable,355,0
-tablesleeping,355,0
-tablesleep,355,0
repeater,356,0
repeat,356,0
delayer,356,0
@@ -3096,6 +3736,750 @@ hstalk,372,0
potion,373,0
mixture,373,0
potions,373,0
+waterbottle,373,0
+fullbottle,373,0
+watervase,373,0
+fullvase,373,0
+awkwardpotion,373,16
+awkwardpot,373,16
+thickpotion,373,32
+thickpot,373,32
+mundaneexpotion,373,64
+mundaneextendedpotion,373,64
+mundaneexpot,373,64
+mundaneextendedpot,373,64
+mundanepotion,373,8192
+mundanepot,373,8192
+regenerationpotion,373,8193
+regeneratepotion,373,8193
+regenpotion,373,8193
+regenerationpot,373,8193
+regeneratepot,373,8193
+regenpot,373,8193
+rpot,373,8193
+swiftnesspotion,373,8194
+swiftpotion,373,8194
+swiftnesspot,373,8194
+swiftpot,373,8194
+swpot,373,8194
+fireresistancepotion,373,8195
+fireresistpotion,373,8195
+firerespotion,373,8195
+fireresistancepot,373,8195
+fireresistpot,373,8195
+firerespot,373,8195
+fpot,373,8195
+posionpotion,373,8196
+acidpotion,373,8196
+posionpot,373,8196
+acidpot,373,8196
+ppot,373,8196
+healingpotion,373,8197
+healpotion,373,8197
+lifepotion,373,8197
+healingpot,373,8197
+healpot,373,8197
+lifepot,373,8197
+hpot,373,8197
+weaknesspotion,373,8200
+weakpotion,373,8200
+weaknesspot,373,8200
+weakpot,373,8200
+wpot,373,8200
+strengthpotion,373,8201
+strongpotion,373,8201
+strpotion,373,8201
+strengthpot,373,8201
+strongpot,373,8201
+strpot,373,8201
+spot,373,8201
+slownesspotion,373,8202
+slowpotion,373,8202
+slownesspot,373,8202
+slowpot,373,8202
+slpot,373,8202
+harmingpotion,373,8204
+damagepotion,373,8204
+dmgpotion,373,8204
+harmingpot,373,8204
+damagepot,373,8204
+dmgpot,373,8204
+dpot,373,8204
+regenerationleveliipotion,373,8225
+regenerateleveliipotion,373,8225
+regenleveliipotion,373,8225
+regenerationlevel2potion,373,8225
+regeneratelevel2potion,373,8225
+regenlevel2potion,373,8225
+regenerationiipotion,373,8225
+regenerateiipotion,373,8225
+regeniipotion,373,8225
+regenerationleveliipot,373,8225
+regenerateleveliipot,373,8225
+regenleveliipot,373,8225
+regenerationlevel2pot,373,8225
+regeneratelevel2pot,373,8225
+regenlevel2pot,373,8225
+regenerationiipot,373,8225
+regenerateiipot,373,8225
+regeniipot,373,8225
+r2pot,373,8225
+swiftnessleveliipotion,373,8226
+swiftleveliipotion,373,8226
+swiftnesslevel2potion,373,8226
+swiftlevel2potion,373,8226
+swiftnessiipotion,373,8226
+swiftiipotion,373,8226
+swiftnessleveliipot,373,8226
+swiftleveliipot,373,8226
+swiftnesslevel2pot,373,8226
+swiftlevel2pot,373,8226
+swiftnessiipot,373,8226
+swiftiipot,373,8226
+sw2pot,373,8226
+posionleveliipotion,373,8228
+acidleveliipotion,373,8228
+posionlevel2potion,373,8228
+acidlevel2potion,373,8228
+posioniipotion,373,8228
+acidiipotion,373,8228
+posionleveliipot,373,8228
+acidleveliipot,373,8228
+posionlevel2pot,373,8228
+acidlevel2pot,373,8228
+posioniipot,373,8228
+acidiipot,373,8228
+p2pot,373,8228
+healingleveliipotion,373,8229
+healleveliipotion,373,8229
+healinglevel2potion,373,8229
+heallevel2potion,373,8229
+healingiipotion,373,8229
+healiipotion,373,8229
+healingleveliipot,373,8229
+healleveliipot,373,8229
+healinglevel2pot,373,8229
+heallevel2pot,373,8229
+healingiipot,373,8229
+healiipot,373,8229
+h2potpot,373,8229
+strengthleveliipotion,373,8233
+strongleveliipotion,373,8233
+strleveliipotion,373,8233
+strengthlevel2potion,373,8233
+stronglevel2potion,373,8233
+strlevel2potion,373,8233
+strengthiipotion,373,8233
+strongiipotion,373,8233
+striipotion,373,8233
+strengthleveliipot,373,8233
+strongleveliipot,373,8233
+strleveliipot,373,8233
+strengthlevel2pot,373,8233
+stronglevel2pot,373,8233
+strlevel2pot,373,8233
+strengthiipot,373,8233
+strongiipot,373,8233
+striipot,373,8233
+s2pot,373,8233
+harmingleveliipotion,373,8236
+damageleveliipotion,373,8236
+dmgleveliipotion,373,8236
+harminglevel2potion,373,8236
+damagelevel2potion,373,8236
+dmglevel2potion,373,8236
+harmingiipotion,373,8236
+damageiipotion,373,8236
+dmgiipotion,373,8236
+harmingleveliipot,373,8236
+damageleveliipot,373,8236
+dmgleveliipot,373,8236
+harminglevel2pot,373,8236
+damagelevel2pot,373,8236
+dmglevel2pot,373,8236
+harmingiipot,373,8236
+damageiipot,373,8236
+dmgiipot,373,8236
+d2pot,373,8236
+regenerationextendedpotion,373,8257
+regenerateextendedpotion,373,8257
+regenextendepotion,373,8257
+regenerationexpotion,373,8257
+regenerateexpotion,373,8257
+regenexpotion,373,8257
+regenerationextendedpot,373,8257
+regenerateextendedpot,373,8257
+regenextendepot,373,8257
+regenerationexpot,373,8257
+regenerateexpot,373,8257
+regenexpot,373,8257
+repot,373,8257
+swiftnessextendedpotion,373,8258
+swiftextendedpotion,373,8258
+swiftnessexpotion,373,8258
+swiftexpotion,373,8258
+swiftnessextendedpot,373,8258
+swiftextendedpot,373,8258
+swiftnessexpot,373,8258
+swiftexpot,373,8258
+swepot,373,8258
+fireresistanceextendedpotion,373,8259
+fireresistextendedpotion,373,8259
+fireresextendedpotion,373,8259
+fireresistanceexpotion,373,8259
+fireresistexpotion,373,8259
+fireresexpotion,373,8259
+fireresistanceextendedpot,373,8259
+fireresistextendedpot,373,8259
+fireresextendedpot,373,8259
+fireresistanceexpot,373,8259
+fireresistexpot,373,8259
+fireresexpot,373,8259
+fepot,373,8259
+posionextendedpotion,373,8260
+acidextendedpotion,373,8260
+posionexpotion,373,8260
+acidexpotion,373,8260
+posionextendedpot,373,8260
+acidextendedpot,373,8260
+posionexpot,373,8260
+acidexpot,373,8260
+pepot,373,8260
+weaknessextendedpotion,373,8264
+weakextendedpotion,373,8264
+weaknessexpotion,373,8264
+weakexpotion,373,8264
+weaknessextendedpot,373,8264
+weakextendedpot,373,8264
+weaknessexpot,373,8264
+weakexpot,373,8264
+wepot,373,8264
+strengthextendedpotion,373,8265
+strongextendedpotion,373,8265
+strextendedpotion,373,8265
+strengthexpotion,373,8265
+strongexpotion,373,8265
+strexpotion,373,8265
+strengthextendedpot,373,8265
+strongextendedpot,373,8265
+strextendedpot,373,8265
+strengthexpot,373,8265
+strongexpot,373,8265
+strexpot,373,8265
+sepot,373,8265
+slownessextendedpotion,373,8266
+slowextenedpotion,373,8266
+slownessexpotion,373,8266
+slowexpotion,373,8266
+slownessextendedpot,373,8266
+slowextenedpot,373,8266
+slownessexpot,373,8266
+slowexpot,373,8266
+slepot,373,8266
+regenerationdualbitpotion,373,8289
+regeneratedualbitpotion,373,8289
+regendualbitpotion,373,8289
+regenerationdualbitpot,373,8289
+regeneratedualbitpot,373,8289
+regendualbitpot,373,8289
+rdbpot,373,8289
+swiftnessdualbitpotion,373,8290
+swiftdualbitpotion,373,8290
+swiftnessdualbitpot,373,8290
+swiftdualbitpot,373,8290
+swdbpot,373,8290
+poisondualbitpotion,373,8292
+aciddualbitpotion,373,8292
+poisondualbitpot,373,8292
+aciddualbitpot,373,8292
+pdbpot,373,8292
+strengthdualbitpotion,373,8297
+strongdualbitpotion,373,8297
+strdualbitpotion,373,8297
+strengthdualbitpot,373,8297
+strongdualbitpot,373,8297
+strdualbitpot,373,8297
+sdbpot,373,8297
+splashmundanepotion,373,16384
+splmundanepotion,373,16384
+splashregenerationpotion,373,16385
+splashregeneratepotion,373,16385
+splashregenpotion,373,16385
+splashregenerationpot,373,16385
+splashregeneratepot,373,16385
+splashregenpot,373,16385
+regenerationsplashpotion,373,16385
+regeneratesplashpotion,373,16385
+regensplashpotion,373,16385
+splregenerationpotion,373,16385
+splregeneratepotion,373,16385
+splregenpotion,373,16385
+splregenerationpot,373,16385
+splregeneratepot,373,16385
+splregenpot,373,16385
+sprpot,373,16385
+splashswiftnesspotion,373,16386
+splashswiftpotion,373,16386
+splashswiftnesspot,373,16386
+splashswiftpot,373,16386
+splswiftnesspotion,373,16386
+splswiftpotion,373,16386
+splswiftnesspot,373,16386
+splswiftpot,373,16386
+spswpot,373,16386
+splashfireresistancepotion,373,16387
+splashfireresistpotion,373,16387
+splashfirerespotion,373,16387
+splashfireresistancepot,373,16387
+splashfireresistpot,373,16387
+splashfirerespot,373,16387
+splfireresistancepotion,373,16387
+splfireresistpotion,373,16387
+splfirerespotion,373,16387
+splfireresistancepot,373,16387
+splfireresistpot,373,16387
+splfirerespot,373,16387
+spfpot,373,16387
+splashposionpotion,373,16388
+splashacidpotion,373,16388
+splashposionpot,373,16388
+splashacidpot,373,16388
+splposionpotion,373,16388
+splacidpotion,373,16388
+splposionpot,373,16388
+splacidpot,373,16388
+spppot,373,16388
+splashhealingpotion,373,16389
+splashhealpotion,373,16389
+splashlifepotion,373,16389
+splashhealingpot,373,16389
+splashhealpot,373,16389
+splashlifepot,373,16389
+splhealingpotion,373,16389
+splhealpotion,373,16389
+spllifepotion,373,16389
+splhealingpot,373,16389
+splhealpot,373,16389
+spllifepot,373,16389
+sphpot,373,16389
+splashweaknesspotion,373,16392
+splashweakpotion,373,16392
+splashweaknesspot,373,16392
+splashweakpot,373,16392
+splweaknesspotion,373,16392
+splweakpotion,373,16392
+splweaknesspot,373,16392
+splweakpot,373,16392
+spwpot,373,16392
+splashstrengthpotion,373,16393
+splashstrongpotion,373,16393
+splashstrpotion,373,16393
+splashstrengthpot,373,16393
+splashstrongpot,373,16393
+splashstrpot,373,16393
+splstrengthpotion,373,16393
+splstrongpotion,373,16393
+splstrpotion,373,16393
+splstrengthpot,373,16393
+splstrongpot,373,16393
+splstrpot,373,16393
+spspot,373,16393
+splashslownesspotion,373,16394
+splashslowpotion,373,16394
+splashslownesspot,373,16394
+splashslowpot,373,16394
+splslownesspotion,373,16394
+splslowpotion,373,16394
+splslownesspot,373,16394
+splslowpot,373,16394
+spslpot,373,16394
+splashharmingpotion,373,16396
+splashdamagepotion,373,16396
+splashdmgpotion,373,16396
+splashharmingpot,373,16396
+splashdamagepot,373,16396
+splashdmgpot,373,16396
+dmgsplashpot,373,16396
+splharmingpotion,373,16396
+spldamagepotion,373,16396
+spldmgpotion,373,16396
+splharmingpot,373,16396
+spldamagepot,373,16396
+spldmgpot,373,16396
+sdpot,373,16396
+splashregenerationleveliipotion,373,16417
+splashregenerateleveliipotion,373,16417
+splashregenleveliipotion,373,16417
+splashregenerationlevel2potion,373,16417
+splashregeneratelevel2potion,373,16417
+splashregenlevel2potion,373,16417
+splashregenerationiipotion,373,16417
+splashregenerateiipotion,373,16417
+splashregeniipotion,373,16417
+splashregenerationleveliipot,373,16417
+splashregenerateleveliipot,373,16417
+splashregenleveliipot,373,16417
+splashregenerationlevel2pot,373,16417
+splashregeneratelevel2pot,373,16417
+splashregenlevel2pot,373,16417
+splashregenerationiipot,373,16417
+splashregenerateiipot,373,16417
+splashregeniipot,373,16417
+splregenerationleveliipotion,373,16417
+splregenerateleveliipotion,373,16417
+splregenleveliipotion,373,16417
+splregenerationlevel2potion,373,16417
+splregeneratelevel2potion,373,16417
+splregenlevel2potion,373,16417
+splregenerationiipotion,373,16417
+splregenerateiipotion,373,16417
+splregeniipotion,373,16417
+splregenerationleveliipot,373,16417
+splregenerateleveliipot,373,16417
+splregenleveliipot,373,16417
+splregenerationlevel2pot,373,16417
+splregeneratelevel2pot,373,16417
+splregenlevel2pot,373,16417
+splregenerationiipot,373,16417
+splregenerateiipot,373,16417
+splregeniipot,373,16417
+spr2pot,373,16417
+splashswiftnessleveliipotion,373,16418
+splashswiftleveliipotion,373,16418
+splashswiftnesslevel2potion,373,16418
+splashswiftlevel2potion,373,16418
+splashswiftnessiipotion,373,16418
+splashswiftiipotion,373,16418
+splashswiftnessleveliipot,373,16418
+splashswiftleveliipot,373,16418
+splashswiftnesslevel2pot,373,16418
+splashswiftlevel2pot,373,16418
+splashswiftnessiipot,373,16418
+splashswiftiipot,373,16418
+splswiftnessleveliipotion,373,16418
+splswiftleveliipotion,373,16418
+splswiftnesslevel2potion,373,16418
+splswiftlevel2potion,373,16418
+splswiftnessiipotion,373,16418
+splswiftiipotion,373,16418
+splswiftnessleveliipot,373,16418
+splswiftleveliipot,373,16418
+splswiftnesslevel2pot,373,16418
+splswiftlevel2pot,373,16418
+splswiftnessiipot,373,16418
+splswiftiipot,373,16418
+spsw2pot,373,16418
+splashposionleveliipotion,373,16420
+splashacidleveliipotion,373,16420
+splashposionlevel2potion,373,16420
+splashacidlevel2potion,373,16420
+splashposioniipotion,373,16420
+splashacidiipotion,373,16420
+splashposionleveliipot,373,16420
+splashacidleveliipot,373,16420
+splashposionlevel2pot,373,16420
+splashacidlevel2pot,373,16420
+splashposioniipot,373,16420
+splashacidiipot,373,16420
+splposionleveliipotion,373,16420
+splacidleveliipotion,373,16420
+splposionlevel2potion,373,16420
+splcidlevel2potion,373,16420
+splposioniipotion,373,16420
+splacidiipotion,373,16420
+splposionleveliipot,373,16420
+splacidleveliipot,373,16420
+splposionlevel2pot,373,16420
+splacidlevel2pot,373,16420
+splposioniipot,373,16420
+splacidiipot,373,16420
+spp2pot,373,16420
+splashhealingleveliipotion,373,16421
+splashhealleveliipotion,373,16421
+splashhealinglevel2potion,373,16421
+splashheallevel2potion,373,16421
+splashhealingiipotion,373,16421
+splashhealiipotion,373,16421
+splashhealingleveliipot,373,16421
+splashhealleveliipot,373,16421
+splashhealinglevel2pot,373,16421
+splashheallevel2pot,373,16421
+splashhealingiipot,373,16421
+splashhealiipot,373,16421
+splhealingleveliipotion,373,16421
+splhealleveliipotion,373,16421
+splhealinglevel2potion,373,16421
+splheallevel2potion,373,16421
+splhealingiipotion,373,16421
+splhealiipotion,373,16421
+splhealingleveliipot,373,16421
+splhealleveliipot,373,16421
+splhealinglevel2pot,373,16421
+splheallevel2pot,373,16421
+splhealingiipot,373,16421
+splhealiipot,373,16421
+sph2pot,373,16421
+splashstrengthleveliipotion,373,16425
+splashstrongleveliipotion,373,16425
+splashstrleveliipotion,373,16425
+splashstrengthlevel2potion,373,16425
+splashstronglevel2potion,373,16425
+splashstrlevel2potion,373,16425
+splashstrengthiipotion,373,16425
+splashstrongiipotion,373,16425
+splashstriipotion,373,16425
+splashstrengthleveliipot,373,16425
+splashstrongleveliipot,373,16425
+splashstrleveliipot,373,16425
+splashstrengthlevel2pot,373,16425
+splashstronglevel2pot,373,16425
+splashstrlevel2pot,373,16425
+splashstrengthiipot,373,16425
+splashstrongiipot,373,16425
+splashstriipot,373,16425
+splstrengthleveliipotion,373,16425
+splstrongleveliipotion,373,16425
+splstrleveliipotion,373,16425
+splstrengthlevel2potion,373,16425
+splstronglevel2potion,373,16425
+splstrlevel2potion,373,16425
+splstrengthiipotion,373,16425
+splstrongiipotion,373,16425
+splstriipotion,373,16425
+splstrengthleveliipot,373,16425
+splstrongleveliipot,373,16425
+splstrleveliipot,373,16425
+splstrengthlevel2pot,373,16425
+splstronglevel2pot,373,16425
+splstrlevel2pot,373,16425
+splstrengthiipot,373,16425
+splstrongiipot,373,16425
+splstriipot,373,16425
+sps2pot,373,16425
+splashharmingleveliipotion,373,16428
+splashdamageleveliipotion,373,16428
+splashdmgleveliipotion,373,16428
+splashharminglevel2potion,373,16428
+splashdamagelevel2potion,373,16428
+splashdmglevel2potion,373,16428
+splashharmingiipotion,373,16428
+splashdamageiipotion,373,16428
+splashdmgiipotion,373,16428
+splashharmingleveliipot,373,16428
+splashdamageleveliipot,373,16428
+splashdmgleveliipot,373,16428
+splashharminglevel2pot,373,16428
+splashdamagelevel2pot,373,16428
+splashdmglevel2pot,373,16428
+splashharmingiipot,373,16428
+splashdamageiipot,373,16428
+splashdmgiipot,373,16428
+splharmingleveliipotion,373,16428
+spldamageleveliipotion,373,16428
+spldmgleveliipotion,373,16428
+splharminglevel2potion,373,16428
+spldamagelevel2potion,373,16428
+spldmglevel2potion,373,16428
+splharmingiipotion,373,16428
+spldamageiipotion,373,16428
+spldmgiipotion,373,16428
+splharmingleveliipot,373,16428
+spldamageleveliipot,373,16428
+spldmgleveliipot,373,16428
+splharminglevel2pot,373,16428
+spldamagelevel2pot,373,16428
+spldmglevel2pot,373,16428
+splharmingiipot,373,16428
+spldamageiipot,373,16428
+spldmgiipot,373,16428
+spd2pot,373,16428
+splashregenerationextendedpotion,373,16449
+splashregenerateextendedpotion,373,16449
+splashregenextendepotion,373,16449
+splashregenerationexpotion,373,16449
+splashregenerateexpotion,373,16449
+splashregenexpotion,373,16449
+splashregenerationextendedpot,373,16449
+splashregenerateextendedpot,373,16449
+splashregenextendepot,373,16449
+splashregenerationexpot,373,16449
+splashregenerateexpot,373,16449
+splashregenexpot,373,16449
+splregenerationextendedpotion,373,16449
+splregenerateextendedpotion,373,16449
+splregenextendepotion,373,16449
+splregenerationexpotion,373,16449
+splregenerateexpotion,373,16449
+splregenexpotion,373,16449
+splregenerationextendedpot,373,16449
+splregenerateextendedpot,373,16449
+splregenextendepot,373,16449
+splregenerationexpot,373,16449
+splregenerateexpot,373,16449
+splregenexpot,373,16449
+sprepot,373,16449
+splashswiftnessextendedpotion,373,16450
+splashswiftextendedpotion,373,16450
+splashswiftnessexpotion,373,16450
+splashswiftexpotion,373,16450
+splashswiftnessextendedpot,373,16450
+splashswiftextendedpot,373,16450
+splashswiftnessexpot,373,16450
+splashswiftexpot,373,16450
+splswiftnessextendedpotion,373,16450
+splswiftextendedpotion,373,16450
+splswiftnessexpotion,373,16450
+splswiftexpotion,373,16450
+splswiftnessextendedpot,373,16450
+splswiftextendedpot,373,16450
+splswiftnessexpot,373,16450
+splswiftexpot,373,16450
+spswepot,373,16450
+splashfireresistanceextendedpotion,373,16451
+splashfireresistextendedpotion,373,16451
+splashfireresextendedpotion,373,16451
+splashfireresistanceexpotion,373,16451
+splashfireresistexpotion,373,16451
+splashfireresexpotion,373,16451
+splashfireresistanceextendedpot,373,16451
+splashfireresistextendedpot,373,16451
+splashfireresextendedpot,373,16451
+splashfireresistanceexpot,373,16451
+splashfireresistexpot,373,16451
+splashfireresexpot,373,16451
+splfireresistanceextendedpotion,373,16451
+splfireresistextendedpotion,373,16451
+splfireresextendedpotion,373,16451
+splfireresistanceexpotion,373,16451
+splfireresistexpotion,373,16451
+splfireresexpotion,373,16451
+splfireresistanceextendedpot,373,16451
+splfireresistextendedpot,373,16451
+splfireresextendedpot,373,16451
+splfireresistanceexpot,373,16451
+splfireresistexpot,373,16451
+splfireresexpot,373,16451
+spfepot,373,16451
+splashposionextendedpotion,373,16452
+splashacidextendedpotion,373,16452
+splashposionexpotion,373,16452
+splashacidexpotion,373,16452
+splashposionextendedpot,373,16452
+splashacidextendedpot,373,16452
+splashposionexpot,373,16452
+splashacidexpot,373,16452
+splposionextendedpotion,373,16452
+splacidextendedpotion,373,16452
+splposionexpotion,373,16452
+splacidexpotion,373,16452
+splposionextendedpot,373,16452
+splacidextendedpot,373,16452
+splposionexpot,373,16452
+splacidexpot,373,16452
+sppepot,373,16452
+splashweaknessextendedpotion,373,16456
+splashweakextendedpotion,373,16456
+splashweaknessexpotion,373,16456
+splashweakexpotion,373,16456
+splashweaknessextendedpot,373,16456
+splashweakextendedpot,373,16456
+splashweaknessexpot,373,16456
+splashweakexpot,373,16456
+splweaknessextendedpotion,373,16456
+sphweakextendedpotion,373,16456
+splweaknessexpotion,373,16456
+splweakexpotion,373,16456
+splweaknessextendedpot,373,16456
+splweakextendedpot,373,16456
+splweaknessexpot,373,16456
+splweakexpot,373,16456
+spwepot,373,16456
+splashstrengthextendedpotion,373,16457
+splashstrongextendedpotion,373,16457
+splashstrextendedpotion,373,16457
+splashstrengthexpotion,373,16457
+splashstrongexpotion,373,16457
+splashstrexpotion,373,16457
+splashstrengthextendedpot,373,16457
+splashstrongextendedpot,373,16457
+splashstrextendedpot,373,16457
+splashstrengthexpot,373,16457
+splashstrongexpot,373,16457
+splashstrexpot,373,16457
+splstrengthextendedpotion,373,16457
+splstrongextendedpotion,373,16457
+splstrextendedpotion,373,16457
+splstrengthexpotion,373,16457
+splstrongexpotion,373,16457
+splstrexpotion,373,16457
+splstrengthextendedpot,373,16457
+splstrongextendedpot,373,16457
+splstrextendedpot,373,16457
+splstrengthexpot,373,16457
+splstrongexpot,373,16457
+splstrexpot,373,16457
+spsepot,373,16457
+splashslownessextendedpotion,373,16458
+splashslowextenedpotion,373,16458
+splashslownessexpotion,373,16458
+splashslowexpotion,373,16458
+splashslownessextendedpot,373,16458
+splashslowextenedpot,373,16458
+splashslownessexpot,373,16458
+splashslowexpot,373,16458
+splslownessextendedpotion,373,16458
+splslowextenedpotion,373,16458
+splslownessexpotion,373,16458
+splslowexpotion,373,16458
+splslownessextendedpot,373,16458
+splslowextenedpot,373,16458
+splslownessexpot,373,16458
+splslowexpot,373,16458
+spslepot,373,16458
+splashregenerationdualbitpotion,373,16481
+splashregeneratedualbitpotion,373,16481
+splashregendualbitpotion,373,16481
+splashregenerationdualbitpot,373,16481
+splashregeneratedualbitpot,373,16481
+splashregendualbitpot,373,16481
+splregenerationdualbitpotion,373,16481
+splregeneratedualbitpotion,373,16481
+splregendualbitpotion,373,16481
+splregenerationdualbitpot,373,16481
+splregeneratedualbitpot,373,16481
+splregendualbitpot,373,16481
+sprdbpot,373,16481
+splashswiftnessdualbitpotion,373,16482
+splashswiftdualbitpotion,373,16482
+splashswiftnessdualbitpot,373,16482
+splashswiftdualbitpot,373,16482
+splswiftnessdualbitpotion,373,16482
+splswiftdualbitpotion,373,16482
+splswiftnessdualbitpot,373,16482
+splswiftdualbitpot,373,16482
+spswdbpot,373,16482
+splashpoisondualbitpotion,373,16484
+splashaciddualbitpotion,373,16484
+splashpoisondualbitpot,373,16484
+splashaciddualbitpot,373,16484
+splpoisondualbitpotion,373,16484
+splaciddualbitpotion,373,16484
+splpoisondualbitpot,373,16484
+splaciddualbitpot,373,16484
+sppdbpot,373,16484
+splashstrengthdualbitpotion,373,16489
+splashstrongdualbitpotion,373,16489
+splashstrdualbitpotion,373,16489
+splashstrengthdualbitpot,373,16489
+splashstrongdualbitpot,373,16489
+splashstrdualbitpot,373,16489
+splstrengthdualbitpotion,373,16489
+splstrongdualbitpotion,373,16489
+splstrdualbitpotion,373,16489
+splstrengthdualbitpot,373,16489
+splstrongdualbitpot,373,16489
+splstrdualbitpot,373,16489
+spsdbpot,373,16489
glassbottle,374,0
bottle,374,0
gbottle,374,0
@@ -3256,9 +4640,26 @@ bottleofenchanting,384,0
enchantingbottle,384,0
expbottle,384,0
xpbottle,384,0
+bottleexp,384,0
+bottlexp,384,0
+enchantbottle,384,0
+bottleenchanting,384,0
+bottleenchant,384,0
+bottleoenchanting,384,0
firecharge,385,0
fireball,385,0
grenade,385,0
+bookandquill,386,0
+booknquill,386,0
+bookandfeather,386,0
+booknfeather,386,0
+writeablebook,386,0
+writtenbook,387,0
+readablebook,387,0
+sealedbook,387,0
+diary,387,0
+ownedbook,387,0
+emerald,388,0
goldmusicrecord,2256,0
goldmusicdisk,2256,0
goldmusicdisc,2256,0
diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties
index 5f90dba67..70cec0bd0 100644
--- a/Essentials/src/messages_nl.properties
+++ b/Essentials/src/messages_nl.properties
@@ -393,7 +393,7 @@ unvanished=\u00a7aYou are once again visible.
unvanishedReload=\u00a7cEen herlading heeft je geforceerd om zichtbaar te worden.
upgradingFilesError=Fout tijdens het upgraden van de bestanden
userDoesNotExist=Speler {0} bestaat niet.
-userIsAway={0} is nu afwezing.
+userIsAway={0} is nu afwezig.
userIsNotAway={0} is niet meer afwezig.
userJailed=\u00a77Je bent in de gevangenis gezet.
userUsedPortal={0} gebruikte een bestaande uitgangs portal.
diff --git a/Essentials/src/messages_pl.properties b/Essentials/src/messages_pl.properties
index c84d4b1b4..7d55bd58e 100644
--- a/Essentials/src/messages_pl.properties
+++ b/Essentials/src/messages_pl.properties
@@ -54,7 +54,7 @@ creative=Kreatywny
currency={0}{1}
currentWorld=Biezacy swiat: {0}
day=dzien
-days=dnie
+days=dni
defaultBanReason=Admin ma zawsze racje!
deleteFileError=Nie mozna usunac pliku: {0}
deleteHome=\u00a77Posterunek {0} zostal usuniety
diff --git a/Essentials/src/net/ess3/Essentials.java b/Essentials/src/net/ess3/Essentials.java
index 3e38a123e..f99604076 100644
--- a/Essentials/src/net/ess3/Essentials.java
+++ b/Essentials/src/net/ess3/Essentials.java
@@ -18,8 +18,8 @@
package net.ess3;
import net.ess3.api.server.Player;
-import net.ess3.api.server.IPlugin;
-import net.ess3.api.server.IServer;
+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;
@@ -45,7 +45,6 @@ import net.ess3.settings.SettingsHolder;
import net.ess3.settings.SpawnsHolder;
import net.ess3.user.UserMap;
import net.ess3.utils.ExecuteTimer;
-import org.bukkit.Server;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@@ -57,7 +56,6 @@ import org.yaml.snakeyaml.error.YAMLException;
public class Essentials implements IEssentials
{
private transient ISettings settings;
- private final transient TntExplodeListener tntListener = new TntExplodeListener(this);
private transient IJails jails;
private transient IKits kits;
private transient IWarps warps;
@@ -76,11 +74,11 @@ public class Essentials implements IEssentials
private transient ICommandHandler commandHandler;
private transient Economy economy;
@Getter
- private final IServer server;
+ private final Server server;
@Getter
private final Logger logger;
@Getter
- private final IPlugin plugin;
+ private final Plugin plugin;
public static boolean testing;
private transient Metrics metrics;
@Getter
@@ -88,7 +86,7 @@ public class Essentials implements IEssentials
@Getter
private transient List<String> vanishedPlayers = new ArrayList<String>();
- public Essentials(final IServer server, final Logger logger, final IPlugin plugin)
+ public Essentials(final Server server, final Logger logger, final Plugin plugin)
{
this.server = server;
this.logger = logger;
@@ -214,8 +212,6 @@ public class Essentials implements IEssentials
jails = new Jails(this);
reloadList.add(jails);
- pm.registerEvents(tntListener, this);
-
timer = new EssentialsTimer(this);
getPlugin().scheduleSyncRepeatingTask(timer, 1, 100);
@@ -372,12 +368,6 @@ public class Essentials implements IEssentials
return getServer().getOnlinePlayers().size();
}
- @Override
- public TntExplodeListener getTNTListener()
- {
- return tntListener;
- }
-
/*
* @Override public PermissionsHandler getPermissionsHandler() { return permissionsHandler; }
*/
diff --git a/Essentials/src/net/ess3/EssentialsTimer.java b/Essentials/src/net/ess3/EssentialsTimer.java
index 82e708047..9066e2f0c 100644
--- a/Essentials/src/net/ess3/EssentialsTimer.java
+++ b/Essentials/src/net/ess3/EssentialsTimer.java
@@ -2,10 +2,10 @@ package net.ess3;
import java.util.*;
import java.util.logging.Level;
-import static net.ess3.I18n._;
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;
diff --git a/Essentials/src/net/ess3/Jails.java b/Essentials/src/net/ess3/Jails.java
index 2c3f31bca..e2dfec477 100644
--- a/Essentials/src/net/ess3/Jails.java
+++ b/Essentials/src/net/ess3/Jails.java
@@ -164,7 +164,7 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp
public void onBlockBreak(final BlockBreakEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (user.getData().isJailed())
{
@@ -176,7 +176,7 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp
public void onBlockPlace(final BlockPlaceEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (user.getData().isJailed())
{
@@ -188,7 +188,7 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp
public void onBlockDamage(final BlockDamageEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (user.getData().isJailed())
{
@@ -204,7 +204,7 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp
public void onPlayerInteract(final PlayerInteractEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (user.getData().isJailed())
{
@@ -216,7 +216,7 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp
public void onPlayerRespawn(final PlayerRespawnEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (!user.getData().isJailed() || user.getData().getJail() == null || user.getData().getJail().isEmpty())
{
@@ -244,7 +244,7 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp
public void onPlayerTeleport(final PlayerTeleportEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (!user.getData().isJailed() || user.getData().getJail() == null || user.getData().getJail().isEmpty())
{
@@ -273,7 +273,7 @@ public class Jails extends AsyncStorageObjectHolder<net.ess3.settings.Jails> imp
public void onPlayerJoin(final PlayerJoinEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (!user.getData().isJailed() || user.getData().getJail() == null || user.getData().getJail().isEmpty())
{
diff --git a/Essentials/src/net/ess3/api/IEssentials.java b/Essentials/src/net/ess3/api/IEssentials.java
index c6cdc8739..fba576dfc 100644
--- a/Essentials/src/net/ess3/api/IEssentials.java
+++ b/Essentials/src/net/ess3/api/IEssentials.java
@@ -1,15 +1,12 @@
package net.ess3.api;
-import net.ess3.api.server.IPlugin;
-import net.ess3.api.server.IServer;
-import net.ess3.api.server.World;
-import net.ess3.economy.register.Methods;
-import net.ess3.listener.TntExplodeListener;
-import java.util.logging.Logger;
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.listener.TntExplodeListener;
import net.ess3.metrics.Metrics;
@@ -51,7 +48,6 @@ public interface IEssentials extends IComponent
//int scheduleSyncRepeatingTask(Runnable run, long delay, long period);
//IPermissionsHandler getPermissionsHandler();
//void reload();
- TntExplodeListener getTNTListener();
void setRanks(IRanks groups);
@@ -59,11 +55,11 @@ public interface IEssentials extends IComponent
IEconomy getEconomy();
- IServer getServer();
+ Server getServer();
Logger getLogger();
- IPlugin getPlugin();
+ Plugin getPlugin();
List<String> getVanishedPlayers();
diff --git a/Essentials/src/net/ess3/api/IUserMap.java b/Essentials/src/net/ess3/api/IUserMap.java
index 887791f7b..63cbb7340 100644
--- a/Essentials/src/net/ess3/api/IUserMap.java
+++ b/Essentials/src/net/ess3/api/IUserMap.java
@@ -22,7 +22,7 @@ public interface IUserMap extends IReload
File getUserFile(final String name) throws InvalidNameException;
- IUser matchUser(final String name, final boolean includeHidden, final boolean onlineOnly) throws TooManyMatchesException;
+ IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException;
- Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean onlineOnly);
+ Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline);
}
diff --git a/Essentials/src/net/ess3/api/ondemand/OnDemand.java b/Essentials/src/net/ess3/api/ondemand/OnDemand.java
new file mode 100644
index 000000000..a2ec8e246
--- /dev/null
+++ b/Essentials/src/net/ess3/api/ondemand/OnDemand.java
@@ -0,0 +1,22 @@
+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
new file mode 100644
index 000000000..b4805fb9d
--- /dev/null
+++ b/Essentials/src/net/ess3/api/ondemand/UserOnDemand.java
@@ -0,0 +1,29 @@
+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
new file mode 100644
index 000000000..52bc440f9
--- /dev/null
+++ b/Essentials/src/net/ess3/api/server/Block.java
@@ -0,0 +1,24 @@
+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.getType(), 1, this.getDurability());
+ return this.getType().convertToItem(is);
+ }
+}
diff --git a/Essentials/src/net/ess3/api/server/IPlayer.java b/Essentials/src/net/ess3/api/server/IPlayer.java
deleted file mode 100644
index 4ae44a480..000000000
--- a/Essentials/src/net/ess3/api/server/IPlayer.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package net.ess3.api.server;
-
-public interface IPlayer {
-
-}
diff --git a/Essentials/src/net/ess3/api/server/ItemStack.java b/Essentials/src/net/ess3/api/server/ItemStack.java
index d8315974c..b383f4fd7 100644
--- a/Essentials/src/net/ess3/api/server/ItemStack.java
+++ b/Essentials/src/net/ess3/api/server/ItemStack.java
@@ -26,12 +26,18 @@ public abstract class ItemStack implements Cloneable
}
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 short getDurability();
+
+ public abstract void setDurability(short value);
public abstract int getMaxStackSize();
diff --git a/Essentials/src/net/ess3/api/server/Material.java b/Essentials/src/net/ess3/api/server/Material.java
index bfda30775..5c41f8302 100644
--- a/Essentials/src/net/ess3/api/server/Material.java
+++ b/Essentials/src/net/ess3/api/server/Material.java
@@ -34,4 +34,6 @@ public abstract class Material {
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/Player.java b/Essentials/src/net/ess3/api/server/Player.java
index 152c3f0c8..d8928c4d1 100644
--- a/Essentials/src/net/ess3/api/server/Player.java
+++ b/Essentials/src/net/ess3/api/server/Player.java
@@ -58,4 +58,6 @@ public interface Player extends CommandSender
void setCompassTarget(Location loc);
void damage(int value);
+
+ boolean isInSurvivalMode();
}
diff --git a/Essentials/src/net/ess3/api/server/IPlugin.java b/Essentials/src/net/ess3/api/server/Plugin.java
index d1f8719f1..f0d10740c 100644
--- a/Essentials/src/net/ess3/api/server/IPlugin.java
+++ b/Essentials/src/net/ess3/api/server/Plugin.java
@@ -2,9 +2,10 @@ package net.ess3.api.server;
import java.io.File;
import java.io.InputStream;
+import java.util.logging.Logger;
-public interface IPlugin
+public interface Plugin
{
int scheduleAsyncDelayedTask(final Runnable run);
@@ -13,6 +14,8 @@ public interface IPlugin
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();
@@ -29,4 +32,8 @@ public interface IPlugin
Location callRespawnEvent(Player player, Location loc, boolean bedSpawn);
void callSuicideEvent(Player player);
+
+ Logger getLogger();
+
+ Server getServer();
}
diff --git a/Essentials/src/net/ess3/api/server/IServer.java b/Essentials/src/net/ess3/api/server/Server.java
index 8bd23bb9d..5a2f14431 100644
--- a/Essentials/src/net/ess3/api/server/IServer.java
+++ b/Essentials/src/net/ess3/api/server/Server.java
@@ -4,7 +4,7 @@ import java.util.Collection;
import java.util.List;
-public interface IServer
+public interface Server
{
List<World> getWorlds();
@@ -25,4 +25,6 @@ public interface IServer
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
index 9f1487635..5648ea7ac 100644
--- a/Essentials/src/net/ess3/api/server/World.java
+++ b/Essentials/src/net/ess3/api/server/World.java
@@ -24,5 +24,5 @@ public interface World {
long getTime();
- void setSpawnLocation(int blockX, int blockY, int blockZ);
+ 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
new file mode 100644
index 000000000..fdaf8199f
--- /dev/null
+++ b/Essentials/src/net/ess3/api/server/events/EventFactory.java
@@ -0,0 +1,7 @@
+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
new file mode 100644
index 000000000..975a10357
--- /dev/null
+++ b/Essentials/src/net/ess3/api/server/events/EventListener.java
@@ -0,0 +1,21 @@
+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
new file mode 100644
index 000000000..76c4d891b
--- /dev/null
+++ b/Essentials/src/net/ess3/api/server/events/EventPriority.java
@@ -0,0 +1,12 @@
+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
new file mode 100644
index 000000000..694ad04ee
--- /dev/null
+++ b/Essentials/src/net/ess3/api/server/events/EventType.java
@@ -0,0 +1,7 @@
+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 3aea269e4..534b5655e 100644
--- a/Essentials/src/net/ess3/backup/Backup.java
+++ b/Essentials/src/net/ess3/backup/Backup.java
@@ -5,7 +5,7 @@ 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.IServer;
+import net.ess3.api.server.Server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -16,7 +16,7 @@ import lombok.Cleanup;
public class Backup implements Runnable, IBackup
{
- private transient final IServer server;
+ private transient final Server server;
private transient final IEssentials ess;
private transient final AtomicBoolean running = new AtomicBoolean(false);
private transient int taskId = -1;
diff --git a/Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java b/Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java
new file mode 100644
index 000000000..e39e0c9a2
--- /dev/null
+++ b/Essentials/src/net/ess3/bukkit/BukkitBlockFactory.java
@@ -0,0 +1,13 @@
+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/BukkitItemStack.java b/Essentials/src/net/ess3/bukkit/BukkitItemStack.java
index 819cc734b..2cec7023c 100644
--- a/Essentials/src/net/ess3/bukkit/BukkitItemStack.java
+++ b/Essentials/src/net/ess3/bukkit/BukkitItemStack.java
@@ -53,6 +53,18 @@ public class BukkitItemStack extends net.ess3.api.server.ItemStack
{
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()
diff --git a/Essentials/src/net/ess3/bukkit/BukkitMaterial.java b/Essentials/src/net/ess3/bukkit/BukkitMaterial.java
index b01d68754..ee0391eaa 100644
--- a/Essentials/src/net/ess3/bukkit/BukkitMaterial.java
+++ b/Essentials/src/net/ess3/bukkit/BukkitMaterial.java
@@ -1,8 +1,9 @@
package net.ess3.bukkit;
-import net.ess3.api.server.Material;
import java.util.EnumMap;
import lombok.Delegate;
+import net.ess3.api.server.ItemStack;
+import net.ess3.api.server.Material;
public class BukkitMaterial extends Material
@@ -16,6 +17,7 @@ public class BukkitMaterial extends Material
materials.put(material, new BukkitMaterial(material));
}
}
+
private interface Excludes {
short getMaxDurability();
}
@@ -59,4 +61,86 @@ public class BukkitMaterial extends Material
{
return (short)this.material.getMaxDurability();
}
+
+ @Override
+ public ItemStack convertToItem(ItemStack is)
+ {
+ switch (org.bukkit.Material.getMaterial(is.getType().getId()))
+ {
+ case WOODEN_DOOR:
+ is.setType(org.bukkit.Material.WOOD_DOOR.getId());
+ is.setDurability((short)0);
+ break;
+ case IRON_DOOR_BLOCK:
+ is.setType(org.bukkit.Material.IRON_DOOR.getId());
+ is.setDurability((short)0);
+ break;
+ case SIGN_POST:
+ case WALL_SIGN:
+ is.setType(org.bukkit.Material.SIGN.getId());
+ is.setDurability((short)0);
+ break;
+ case CROPS:
+ is.setType(org.bukkit.Material.SEEDS.getId());
+ is.setDurability((short)0);
+ break;
+ case CAKE_BLOCK:
+ is.setType(org.bukkit.Material.CAKE.getId());
+ is.setDurability((short)0);
+ break;
+ case BED_BLOCK:
+ is.setType(org.bukkit.Material.BED.getId());
+ is.setDurability((short)0);
+ break;
+ case REDSTONE_WIRE:
+ is.setType(org.bukkit.Material.REDSTONE.getId());
+ is.setDurability((short)0);
+ break;
+ case REDSTONE_TORCH_OFF:
+ case REDSTONE_TORCH_ON:
+ is.setType(org.bukkit.Material.REDSTONE_TORCH_ON.getId());
+ is.setDurability((short)0);
+ break;
+ case DIODE_BLOCK_OFF:
+ case DIODE_BLOCK_ON:
+ is.setType(org.bukkit.Material.DIODE.getId());
+ is.setDurability((short)0);
+ break;
+ case DOUBLE_STEP:
+ is.setType(org.bukkit.Material.STEP.getId());
+ break;
+ case TORCH:
+ case RAILS:
+ case LADDER:
+ case WOOD_STAIRS:
+ case COBBLESTONE_STAIRS:
+ case LEVER:
+ case STONE_BUTTON:
+ case FURNACE:
+ case DISPENSER:
+ case PUMPKIN:
+ case JACK_O_LANTERN:
+ case WOOD_PLATE:
+ case STONE_PLATE:
+ case PISTON_STICKY_BASE:
+ case PISTON_BASE:
+ case IRON_FENCE:
+ case THIN_GLASS:
+ case TRAP_DOOR:
+ case FENCE:
+ case FENCE_GATE:
+ case NETHER_FENCE:
+ is.setDurability((short)0);
+ break;
+ case FIRE:
+ return null;
+ case PUMPKIN_STEM:
+ is.setType(org.bukkit.Material.PUMPKIN_SEEDS.getId());
+ break;
+ case MELON_STEM:
+ is.setType(org.bukkit.Material.MELON_SEEDS.getId());
+ break;
+ }
+ return is;
+ }
}
diff --git a/Essentials/src/net/ess3/bukkit/BukkitPermission.java b/Essentials/src/net/ess3/bukkit/BukkitPermission.java
index 49f705ccc..9c60a10e2 100644
--- a/Essentials/src/net/ess3/bukkit/BukkitPermission.java
+++ b/Essentials/src/net/ess3/bukkit/BukkitPermission.java
@@ -1,9 +1,9 @@
package net.ess3.bukkit;
-import net.ess3.api.server.Permission;
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;
diff --git a/Essentials/src/net/ess3/bukkit/BukkitPlayer.java b/Essentials/src/net/ess3/bukkit/BukkitPlayer.java
index 588ad242d..7b357e278 100644
--- a/Essentials/src/net/ess3/bukkit/BukkitPlayer.java
+++ b/Essentials/src/net/ess3/bukkit/BukkitPlayer.java
@@ -1,11 +1,14 @@
package net.ess3.bukkit;
-import net.ess3.api.IUser;
-import net.ess3.api.server.*;
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;
-import org.bukkit.entity.LivingEntity;
public class BukkitPlayer extends BukkitCommandSender implements Player
@@ -30,7 +33,7 @@ public class BukkitPlayer extends BukkitCommandSender implements Player
}
@Delegate(types =
{
- org.bukkit.entity.Player.class, LivingEntity.class
+ org.bukkit.entity.Player.class, org.bukkit.entity.LivingEntity.class
}, excludes =
{
OfflinePlayer.class, org.bukkit.command.CommandSender.class, Excludes.class
@@ -46,9 +49,10 @@ public class BukkitPlayer extends BukkitCommandSender implements Player
})
@Getter
private transient OfflinePlayer safePlayer;
- private final transient IServer server;
+ private final transient BukkitServer server;
+ private transient IUser user = null;
- public BukkitPlayer(final OfflinePlayer player, final IServer server)
+ public BukkitPlayer(final OfflinePlayer player, final BukkitServer server)
{
super(player.getPlayer());
this.server = server;
@@ -82,7 +86,7 @@ public class BukkitPlayer extends BukkitCommandSender implements Player
@Override
public IUser getUser()
{
- throw new UnsupportedOperationException("Not supported yet.");
+ return user;
}
@Override
@@ -157,10 +161,10 @@ public class BukkitPlayer extends BukkitCommandSender implements Player
}
}
- private int getExpToLevel()
+ /*private int getExpToLevel()
{
return getExpToLevel(onlinePlayer.getLevel());
- }
+ }*/
private static int getExpToLevel(final int level)
{
@@ -199,4 +203,11 @@ public class BukkitPlayer extends BukkitCommandSender implements Player
{
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
new file mode 100644
index 000000000..0d60bee19
--- /dev/null
+++ b/Essentials/src/net/ess3/bukkit/BukkitPlugin.java
@@ -0,0 +1,106 @@
+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 org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.player.PlayerRespawnEvent;
+import org.bukkit.plugin.java.JavaPluginLoader;
+
+
+public class BukkitPlugin implements Plugin
+{
+ private interface Excludes {
+ public org.bukkit.Server getServer();
+ }
+ @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)
+ {
+ this.bukkitPlugin = plugin;
+ this.server = server;
+ }
+
+ @Override
+ public int scheduleAsyncDelayedTask(final Runnable run)
+ {
+ return bukkitPlugin.getServer().getScheduler().scheduleAsyncDelayedTask(bukkitPlugin, run);
+ }
+
+ @Override
+ public int scheduleSyncDelayedTask(final Runnable run)
+ {
+ return bukkitPlugin.getServer().getScheduler().scheduleSyncDelayedTask(bukkitPlugin, run);
+ }
+
+ @Override
+ public int scheduleSyncDelayedTask(final Runnable run, final long delay)
+ {
+ return bukkitPlugin.getServer().getScheduler().scheduleSyncDelayedTask(bukkitPlugin, run, delay);
+ }
+
+ @Override
+ public int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period)
+ {
+ return bukkitPlugin.getServer().getScheduler().scheduleSyncRepeatingTask(bukkitPlugin, 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);
+ }
+
+ @Override
+ public File getRootFolder()
+ {
+ return bukkitPlugin.getDataFolder().getParentFile().getParentFile();
+ }
+
+ @Override
+ public void cancelTask(final int taskId)
+ {
+ bukkitPlugin.getServer().getScheduler().cancelTask(taskId);
+ }
+
+ @Override
+ public String getVersion()
+ {
+ return bukkitPlugin.getDescription().getVersion();
+ }
+
+ @Override
+ public Class getClassByName(final String name)
+ {
+ final JavaPluginLoader jpl = (JavaPluginLoader)bukkitPlugin.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());
+ }
+
+ @Override
+ public void callSuicideEvent(Player player)
+ {
+ EntityDamageEvent ede = new EntityDamageEvent(((BukkitPlayer)player).getOnlinePlayer(), EntityDamageEvent.DamageCause.SUICIDE, 1000);
+ getBukkitServer().getPluginManager().callEvent(ede);
+ }
+
+ public org.bukkit.Server getBukkitServer()
+ {
+ return bukkitPlugin.getServer();
+ }
+}
diff --git a/Essentials/src/net/ess3/bukkit/Server.java b/Essentials/src/net/ess3/bukkit/BukkitServer.java
index e59d7d4f9..d0f548f09 100644
--- a/Essentials/src/net/ess3/bukkit/Server.java
+++ b/Essentials/src/net/ess3/bukkit/BukkitServer.java
@@ -1,13 +1,13 @@
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.IServer;
+import net.ess3.api.server.Server;
import net.ess3.api.server.World;
-import java.util.*;
-import lombok.Delegate;
-import lombok.Getter;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@@ -18,7 +18,7 @@ import org.bukkit.event.world.WorldUnloadEvent;
import org.bukkit.plugin.RegisteredServiceProvider;
-public class Server implements IServer, Listener
+public class BukkitServer implements Server, Listener
{
private IEssentials ess;
private interface Excludes
@@ -30,6 +30,8 @@ public class Server implements IServer, Listener
org.bukkit.entity.Player[] getOnlinePlayers();
BukkitCommandSender getConsoleSender();
+
+ org.bukkit.entity.Player getPlayer(String name);
}
@Delegate(excludes = Excludes.class)
private final org.bukkit.Server server;
@@ -38,11 +40,11 @@ public class Server implements IServer, Listener
private Map<String, World> worldsMap;
@Getter
private Collection<Player> onlinePlayers;
- private Map<org.bukkit.entity.Player, Player> onlinePlayersMap;
+ private Map<String, Player> onlinePlayersMap;
@Getter
private CommandSender consoleSender;
- public Server(final org.bukkit.Server server)
+ public BukkitServer(final org.bukkit.Server server)
{
this.server = server;
consoleSender = new BukkitCommandSender(server.getConsoleSender());
@@ -79,9 +81,10 @@ public class Server implements IServer, Listener
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public synchronized void onPlayerLoginEvent(final PlayerLoginEvent event)
{
- final HashMap<org.bukkit.entity.Player, Player> oplayersMap = new HashMap<org.bukkit.entity.Player, Player>(onlinePlayersMap);
+ final HashMap<String, Player> oplayersMap = new HashMap<String, Player>(onlinePlayersMap);
BukkitPlayer p = new BukkitPlayer(event.getPlayer(), this);
- oplayersMap.put(event.getPlayer(), p);
+
+ oplayersMap.put(event.getPlayer().getName(), p);
onlinePlayersMap = Collections.unmodifiableMap(oplayersMap);
onlinePlayers = Collections.unmodifiableCollection(oplayersMap.values());
}
@@ -90,8 +93,8 @@ public class Server implements IServer, Listener
public synchronized void onPlayerQuitEvent(final PlayerQuitEvent event)
{
final ArrayList<Player> oplayers = new ArrayList<Player>(onlinePlayers);
- final HashMap<org.bukkit.entity.Player, Player> oplayersMap = new HashMap<org.bukkit.entity.Player, Player>(onlinePlayersMap);
- oplayersMap.remove(event.getPlayer());
+ final HashMap<String, Player> oplayersMap = new HashMap<String, Player>(onlinePlayersMap);
+ oplayersMap.remove(event.getPlayer().getName());
onlinePlayersMap = Collections.unmodifiableMap(oplayersMap);
onlinePlayers = Collections.unmodifiableCollection(oplayersMap.values());
}
@@ -121,6 +124,11 @@ public class Server implements IServer, Listener
}
public Player getPlayer(final org.bukkit.entity.Player player) {
- return onlinePlayersMap.get(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
index d754de4c9..894a40f85 100644
--- a/Essentials/src/net/ess3/bukkit/BukkitWorld.java
+++ b/Essentials/src/net/ess3/bukkit/BukkitWorld.java
@@ -1,21 +1,30 @@
package net.ess3.bukkit;
-import net.ess3.api.server.World;
-import net.ess3.api.server.ItemStack;
-import net.ess3.api.server.Location;
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 {
- @Delegate
+ 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;
- world.getT
}
@Override
@@ -41,5 +50,4 @@ public class BukkitWorld implements World {
{
throw new UnsupportedOperationException("Not supported yet.");
}
-
}
diff --git a/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java b/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java
index 4f262f329..b198fef87 100644
--- a/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java
+++ b/Essentials/src/net/ess3/bukkit/EssentialsPlugin.java
@@ -1,9 +1,9 @@
package net.ess3.bukkit;
+import java.util.logging.Level;
import net.ess3.Essentials;
import static net.ess3.I18n._;
import net.ess3.api.server.*;
-import java.util.logging.Level;
import org.bukkit.command.Command;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -30,10 +30,10 @@ public class EssentialsPlugin extends JavaPlugin
public void onEnable()
{
- Server server = new Server(getServer());
+ BukkitServer server = new BukkitServer(getServer());
final PluginManager pm = this.getServer().getPluginManager();
pm.registerEvents(server, this);
- ess = new Essentials(server, getLogger(), new Plugin(this));
+ ess = new Essentials(server, getLogger(), new BukkitPlugin(this, server));
if (VersionCheck.checkVersion(this))
{
try
@@ -86,7 +86,7 @@ public class EssentialsPlugin extends JavaPlugin
{
CommandSender commandSender;
if (sender instanceof org.bukkit.entity.Player) {
- commandSender = ((Server)ess.getServer()).getPlayer((org.bukkit.entity.Player)sender);
+ commandSender = ((BukkitServer)ess.getServer()).getPlayer((org.bukkit.entity.Player)sender);
} else {
commandSender = new BukkitCommandSender(sender);
}
diff --git a/Essentials/src/net/ess3/bukkit/Inventory.java b/Essentials/src/net/ess3/bukkit/Inventory.java
index 30ddaae52..47e05f979 100644
--- a/Essentials/src/net/ess3/bukkit/Inventory.java
+++ b/Essentials/src/net/ess3/bukkit/Inventory.java
@@ -45,4 +45,10 @@ public class Inventory implements IInventory {
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/Plugin.java b/Essentials/src/net/ess3/bukkit/Plugin.java
deleted file mode 100644
index ea3f85366..000000000
--- a/Essentials/src/net/ess3/bukkit/Plugin.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package net.ess3.bukkit;
-
-import net.ess3.api.server.Player;
-import net.ess3.api.server.IPlugin;
-import net.ess3.api.server.Location;
-import java.io.File;
-import lombok.Delegate;
-import org.bukkit.event.entity.EntityDamageEvent;
-import org.bukkit.event.player.PlayerRespawnEvent;
-import org.bukkit.plugin.java.JavaPluginLoader;
-
-
-public class Plugin implements IPlugin
-{
- @Delegate
- private final org.bukkit.plugin.Plugin plugin;
-
- public Plugin(final org.bukkit.plugin.Plugin plugin)
- {
- this.plugin = plugin;
- }
-
- @Override
- public int scheduleAsyncDelayedTask(final Runnable run)
- {
- return plugin.getServer().getScheduler().scheduleAsyncDelayedTask(plugin, run);
- }
-
- @Override
- public int scheduleSyncDelayedTask(final Runnable run)
- {
- return plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, run);
- }
-
- @Override
- public int scheduleSyncDelayedTask(final Runnable run, final long delay)
- {
- return plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, run, delay);
- }
-
- @Override
- public int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period)
- {
- return plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, run, delay, period);
- }
-
- @Override
- public File getRootFolder()
- {
- return plugin.getDataFolder().getParentFile().getParentFile();
- }
-
- @Override
- public void cancelTask(final int taskId)
- {
- plugin.getServer().getScheduler().cancelTask(taskId);
- }
-
- @Override
- public String getVersion()
- {
- return plugin.getDescription().getVersion();
- }
-
- @Override
- public Class getClassByName(final String name)
- {
- final JavaPluginLoader jpl = (JavaPluginLoader)plugin.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);
- getServer().getPluginManager().callEvent(pre);
- return new BukkitLocation(pre.getRespawnLocation());
- }
-
- @Override
- public void callSuicideEvent(Player player)
- {
- EntityDamageEvent ede = new EntityDamageEvent(((BukkitPlayer)player).getOnlinePlayer(), EntityDamageEvent.DamageCause.SUICIDE, 1000);
- getServer().getPluginManager().callEvent(ede);
- }
-
-}
diff --git a/Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java b/Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java
new file mode 100644
index 000000000..16397d373
--- /dev/null
+++ b/Essentials/src/net/ess3/bukkit/events/BaseEventExecutor.java
@@ -0,0 +1,21 @@
+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
new file mode 100644
index 000000000..cc36c272d
--- /dev/null
+++ b/Essentials/src/net/ess3/bukkit/events/BukkitEventFactory.java
@@ -0,0 +1,25 @@
+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
new file mode 100644
index 000000000..2bce6e31c
--- /dev/null
+++ b/Essentials/src/net/ess3/bukkit/events/BukkitListener.java
@@ -0,0 +1,70 @@
+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
new file mode 100644
index 000000000..4216da9f3
--- /dev/null
+++ b/Essentials/src/net/ess3/bukkit/events/PlaceBlockExecutor.java
@@ -0,0 +1,32 @@
+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 9bd3662c7..1daa5b46c 100644
--- a/Essentials/src/net/ess3/commands/Commandafk.java
+++ b/Essentials/src/net/ess3/commands/Commandafk.java
@@ -2,8 +2,6 @@ package net.ess3.commands;
import static net.ess3.I18n._;
import net.ess3.api.IUser;
-import net.ess3.api.server.Permission;
-import net.ess3.api.server.Player;
import net.ess3.permissions.Permissions;
@@ -14,7 +12,7 @@ public class Commandafk extends EssentialsCommand
{
if (args.length > 0 && Permissions.AFK_OTHERS.isAuthorized(user))
{
- IUser afkUser = ess.getUser((Player)ess.getServer().matchPlayer(args[0]));
+ IUser afkUser = ess.getUserMap().matchUser(args[0], false, false);
if (afkUser != null)
{
toggleAfk(afkUser);
@@ -46,11 +44,5 @@ public class Commandafk extends EssentialsCommand
ess.broadcastMessage(user, _("userIsAway", user.getDisplayName()));
}
}
- }
-
- @Override
- public Permission.Default getPermissionDefault()
- {
- return Permission.Default.TRUE;
- }
+ }
}
diff --git a/Essentials/src/net/ess3/commands/Commandantioch.java b/Essentials/src/net/ess3/commands/Commandantioch.java
deleted file mode 100644
index 7dd8e2b41..000000000
--- a/Essentials/src/net/ess3/commands/Commandantioch.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package net.ess3.commands;
-
-import net.ess3.api.IUser;
-import net.ess3.api.server.Location;
-import net.ess3.utils.LocationUtil;
-
-import org.bukkit.entity.TNTPrimed;
-
-
-public class Commandantioch extends EssentialsCommand
-{
- @Override
- public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
- {
- if (args.length > 0)
- {
- ess.broadcastMessage(user, "...lobbest thou thy Holy Hand Grenade of Antioch towards thy foe,");
- ess.broadcastMessage(user, "who being naughty in My sight, shall snuff it.");
- }
-
- final Location loc = LocationUtil.getTarget(user);
- loc.getWorld().spawn(loc, TNTPrimed.class);
- }
-}
diff --git a/Essentials/src/net/ess3/commands/Commandbalance.java b/Essentials/src/net/ess3/commands/Commandbalance.java
index a35b86182..c5bdaab15 100644
--- a/Essentials/src/net/ess3/commands/Commandbalance.java
+++ b/Essentials/src/net/ess3/commands/Commandbalance.java
@@ -1,10 +1,10 @@
package net.ess3.commands;
import static net.ess3.I18n._;
-import net.ess3.utils.Util;
import net.ess3.api.IUser;
import net.ess3.api.server.CommandSender;
import net.ess3.permissions.Permissions;
+import net.ess3.utils.Util;
public class Commandbalance extends EssentialsCommand
@@ -16,7 +16,7 @@ public class Commandbalance extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- sender.sendMessage(_("balance", Util.displayCurrency(getPlayer(args, 0, true).getMoney(), ess)));
+ sender.sendMessage(_("balance", Util.displayCurrency(ess.getUserMap().matchUser(args[0], true, true).getMoney(), ess)));
}
@Override
@@ -25,7 +25,7 @@ public class Commandbalance extends EssentialsCommand
final double bal = (args.length < 1
|| !Permissions.BALANCE_OTHERS.isAuthorized(user)
? user
- : getPlayer(args, 0, true)).getMoney();
+ : ess.getUserMap().matchUser(args[0], true, true)).getMoney();
user.sendMessage(_("balance", Util.displayCurrency(bal, ess)));
}
}
diff --git a/Essentials/src/net/ess3/commands/Commandban.java b/Essentials/src/net/ess3/commands/Commandban.java
index 959904b4f..85b7ffc1b 100644
--- a/Essentials/src/net/ess3/commands/Commandban.java
+++ b/Essentials/src/net/ess3/commands/Commandban.java
@@ -7,6 +7,7 @@ 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;
public class Commandban extends EssentialsCommand
@@ -19,7 +20,7 @@ public class Commandban extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
@Cleanup
- final IUser user = getPlayer(args, 0, true);
+ final IUser user = ess.getUserMap().matchUser(args[0], false, true);
if (!user.isOnline())
{
if (sender instanceof Player && Permissions.BAN_OFFLINE.isAuthorized(user))
@@ -55,7 +56,7 @@ public class Commandban extends EssentialsCommand
user.setBanned(true);
user.kickPlayer(banReason);
- for (IPlayer onlinePlayer : server.getOnlinePlayers())
+ for (Player onlinePlayer : server.getOnlinePlayers())
{
final IUser player = onlinePlayer.getUser();
if (Permissions.BAN_NOTIFY.isAuthorized(player))
diff --git a/Essentials/src/net/ess3/commands/Commandbanip.java b/Essentials/src/net/ess3/commands/Commandbanip.java
index 66ff37eb5..0b74e2c66 100644
--- a/Essentials/src/net/ess3/commands/Commandbanip.java
+++ b/Essentials/src/net/ess3/commands/Commandbanip.java
@@ -17,7 +17,7 @@ public class Commandbanip extends EssentialsCommand
}
@Cleanup
- final IUser player = ess.getUser(args[0]);
+ final IUser player = ess.getUserMap().getUser(args[0]);
player.acquireReadLock();
if (player == null)
diff --git a/Essentials/src/net/ess3/commands/Commandbreak.java b/Essentials/src/net/ess3/commands/Commandbreak.java
index 78e58ce0e..2ff282708 100644
--- a/Essentials/src/net/ess3/commands/Commandbreak.java
+++ b/Essentials/src/net/ess3/commands/Commandbreak.java
@@ -1,10 +1,9 @@
package net.ess3.commands;
-import net.ess3.api.IUser;
-import net.ess3.permissions.Permissions;
import static net.ess3.I18n._;
+import net.ess3.api.IUser;
import net.ess3.api.server.Material;
-//TODO: remove bukkit
+import net.ess3.permissions.Permissions;
import org.bukkit.block.Block;
import org.bukkit.event.block.BlockBreakEvent;
diff --git a/Essentials/src/net/ess3/commands/Commandburn.java b/Essentials/src/net/ess3/commands/Commandburn.java
index 24f0e5f87..d4fe4f5ec 100644
--- a/Essentials/src/net/ess3/commands/Commandburn.java
+++ b/Essentials/src/net/ess3/commands/Commandburn.java
@@ -15,7 +15,7 @@ public class Commandburn extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- for (Player p : server.matchPlayer(args[0]))
+ for (Player p : ess.getUserMap().matchUsers(args[0], false, false))
{
p.setFireTicks(Integer.parseInt(args[1]) * 20);
sender.sendMessage(_("burnMsg", p.getDisplayName(), Integer.parseInt(args[1])));
diff --git a/Essentials/src/net/ess3/commands/Commandclearinventory.java b/Essentials/src/net/ess3/commands/Commandclearinventory.java
index ae0977907..3c91f38a9 100644
--- a/Essentials/src/net/ess3/commands/Commandclearinventory.java
+++ b/Essentials/src/net/ess3/commands/Commandclearinventory.java
@@ -34,7 +34,7 @@ public class Commandclearinventory extends EssentialsCommand
}
else
{
- Player p = server.getPlayer(args[0]);
+ Player p = ess.getUserMap().matchUser(args[0], false, false);
if (p != null)
{
p.getInventory().clear();
diff --git a/Essentials/src/net/ess3/commands/Commanddelhome.java b/Essentials/src/net/ess3/commands/Commanddelhome.java
index 4856bd824..fc3e220bc 100644
--- a/Essentials/src/net/ess3/commands/Commanddelhome.java
+++ b/Essentials/src/net/ess3/commands/Commanddelhome.java
@@ -20,7 +20,7 @@ public class Commanddelhome extends EssentialsCommand
}
@Cleanup
- IUser user = sender instanceof Player ? ess.getUser((Player)sender) : null;
+ IUser user = sender instanceof Player ? ess.getUserMap().getUser((Player)sender) : null;
String name;
String[] expandedArg;
@@ -37,7 +37,7 @@ public class Commanddelhome extends EssentialsCommand
if (expandedArg.length > 1 && (user == null || Permissions.DELHOME_OTHERS.isAuthorized(user)))
{
- user = getPlayer(expandedArg, 0, true);
+ user = ess.getUserMap().matchUser(expandedArg[1], false, true);
name = expandedArg[1];
}
else if (user == null)
diff --git a/Essentials/src/net/ess3/commands/Commandeco.java b/Essentials/src/net/ess3/commands/Commandeco.java
index 571f695df..b82ac04e7 100644
--- a/Essentials/src/net/ess3/commands/Commandeco.java
+++ b/Essentials/src/net/ess3/commands/Commandeco.java
@@ -35,7 +35,7 @@ public class Commandeco extends EssentialsCommand
{
for (String sUser : ess.getUserMap().getAllUniqueUsers())
{
- final IUser player = ess.getUser(sUser);
+ final IUser player = ess.getUserMap().getUser(sUser);
switch (cmd)
{
case GIVE:
@@ -88,7 +88,7 @@ public class Commandeco extends EssentialsCommand
}
else
{
- final IUser player = getPlayer(args, 1, true);
+ final IUser player = ess.getUserMap().matchUser(args[1], true, true);
switch (cmd)
{
case GIVE:
diff --git a/Essentials/src/net/ess3/commands/Commandenchant.java b/Essentials/src/net/ess3/commands/Commandenchant.java
index 4c4a4bffa..c84acdb66 100644
--- a/Essentials/src/net/ess3/commands/Commandenchant.java
+++ b/Essentials/src/net/ess3/commands/Commandenchant.java
@@ -68,7 +68,7 @@ public class Commandenchant extends EssentialsCommand
{
stack.addEnchantment(enchantment, level);
}
- user.getInventory().setItemInHand(stack);
+ user.getInventory().setxItemInHand(stack);
user.updateInventory();
final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH);
if (level == 0)
diff --git a/Essentials/src/net/ess3/commands/Commandexp.java b/Essentials/src/net/ess3/commands/Commandexp.java
index 4c0b0054c..0150126b7 100644
--- a/Essentials/src/net/ess3/commands/Commandexp.java
+++ b/Essentials/src/net/ess3/commands/Commandexp.java
@@ -88,11 +88,10 @@ public class Commandexp extends EssentialsCommand
private void showMatch(final CommandSender sender, final String match) throws NotEnoughArgumentsException
{
boolean foundUser = false;
- for (Player matchPlayer : server.matchPlayer(match))
+ for (IUser matchPlayer : ess.getUserMap().matchUsers(match, false, false))
{
- foundUser = true;
- final IUser target = ess.getUser(matchPlayer);
- showExp(sender, target);
+ foundUser = true;
+ showExp(sender, matchPlayer);
}
if (!foundUser)
{
@@ -103,10 +102,9 @@ public class Commandexp extends EssentialsCommand
private void expMatch(final CommandSender sender, final String match, final String amount, final boolean toggle) throws NotEnoughArgumentsException
{
boolean foundUser = false;
- for (Player matchPlayer : server.matchPlayer(match))
- {
- final IUser target = ess.getUser(matchPlayer);
- setExp(sender, target, amount, toggle);
+ for (IUser matchPlayer : ess.getUserMap().matchUsers(match, false, false))
+ {
+ setExp(sender, matchPlayer, amount, toggle);
foundUser = true;
}
if (!foundUser)
diff --git a/Essentials/src/net/ess3/commands/Commandext.java b/Essentials/src/net/ess3/commands/Commandext.java
index da2bd29f5..61d5cc317 100644
--- a/Essentials/src/net/ess3/commands/Commandext.java
+++ b/Essentials/src/net/ess3/commands/Commandext.java
@@ -34,7 +34,7 @@ public class Commandext extends EssentialsCommand
private void extinguishPlayers(final CommandSender sender, final String name) throws Exception
{
- for (Player matchPlayer : server.matchPlayer(name))
+ for (Player matchPlayer : ess.getUserMap().matchUsers(name, false, false))
{
matchPlayer.setFireTicks(0);
sender.sendMessage(_("extinguishOthers", matchPlayer.getDisplayName()));
diff --git a/Essentials/src/net/ess3/commands/Commandfeed.java b/Essentials/src/net/ess3/commands/Commandfeed.java
index b2340ef60..0f8867ae4 100644
--- a/Essentials/src/net/ess3/commands/Commandfeed.java
+++ b/Essentials/src/net/ess3/commands/Commandfeed.java
@@ -1,10 +1,12 @@
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.permissions.Permissions;
-import java.util.List;
+import net.ess3.api.server.CommandSender;
import net.ess3.api.server.Player;
+import net.ess3.permissions.Permissions;
public class Commandfeed extends EssentialsCommand
@@ -24,21 +26,16 @@ public class Commandfeed extends EssentialsCommand
}
}
- private void feedOtherPlayers(final ICommandSender sender, final String name)
- // shouldn't this be CommandSender? ^
+ private void feedOtherPlayers(final CommandSender sender, final String name)
{
- final List<Player> players = server.matchPlayer(name);
- if (players.isEmpty())
+ final Set<IUser> users = ess.getUserMap().matchUsers(name, false, false);
+ if (users.isEmpty())
{
sender.sendMessage(_("playerNotFound"));
return;
}
- for (Player player : players)
- {
- if (ess.getUser(player).isHidden())
- {
- continue;
- }
+ for (Player player : users)
+ {
player.setFoodLevel(20);
player.setSaturation(10);
sender.sendMessage(_("feedOther", player.getDisplayName()));
diff --git a/Essentials/src/net/ess3/commands/Commandfly.java b/Essentials/src/net/ess3/commands/Commandfly.java
index 54e6dec42..82f5023fc 100644
--- a/Essentials/src/net/ess3/commands/Commandfly.java
+++ b/Essentials/src/net/ess3/commands/Commandfly.java
@@ -4,7 +4,7 @@ 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.IServer
+import net.ess3.api.server.Server;
import net.ess3.permissions.Permissions;
@@ -41,34 +41,29 @@ public class Commandfly extends EssentialsCommand
private void flyOtherPlayers(final Server server, final CommandSender sender, final String[] args)
{
- for (Player matchPlayer : server.matchPlayer(args[0]))
- {
- final IUser player = ess.getUser(matchPlayer);
- if (player.isHidden())
- {
- continue;
- }
+ for (Player 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"))
{
- player.setAllowFlight(true);
+ matchPlayer.setAllowFlight(true);
}
else
{
- player.setAllowFlight(false);
+ matchPlayer.setAllowFlight(false);
}
}
else
{
- player.setAllowFlight(!player.getAllowFlight());
+ matchPlayer.setAllowFlight(!matchPlayer.getAllowFlight());
}
- if (!player.getAllowFlight())
+ if (!matchPlayer.getAllowFlight())
{
- player.setFlying(false);
+ matchPlayer.setFlying(false);
}
- sender.sendMessage(_("flyMode", _(player.getAllowFlight() ? "enabled" : "disabled"), player.getDisplayName()));
+ sender.sendMessage(_("flyMode", _(matchPlayer.getAllowFlight() ? "enabled" : "disabled"), matchPlayer.getDisplayName()));
}
}
}
diff --git a/Essentials/src/net/ess3/commands/Commandgamemode.java b/Essentials/src/net/ess3/commands/Commandgamemode.java
index 4a4cac437..2e0705303 100644
--- a/Essentials/src/net/ess3/commands/Commandgamemode.java
+++ b/Essentials/src/net/ess3/commands/Commandgamemode.java
@@ -37,14 +37,8 @@ public class Commandgamemode extends EssentialsCommand
private void gamemodeOtherPlayers(final CommandSender sender, final String args[])
{
- for (Player matchPlayer : server.matchPlayer(args[0]))
- {
- final IUser player = ess.getUser(matchPlayer);
- if (player.isHidden())
- {
- continue;
- }
-
+ for (Player player : ess.getUserMap().matchUsers(args[0], false, false))
+ {
if (args.length > 1)
{
if (args[1].contains("creat") || args[1].equalsIgnoreCase("1"))
diff --git a/Essentials/src/net/ess3/commands/Commandgetpos.java b/Essentials/src/net/ess3/commands/Commandgetpos.java
index c5141eca2..5c0273742 100644
--- a/Essentials/src/net/ess3/commands/Commandgetpos.java
+++ b/Essentials/src/net/ess3/commands/Commandgetpos.java
@@ -15,7 +15,7 @@ public class Commandgetpos extends EssentialsCommand
if (args.length > 0 && Permissions.GETPOS_OTHERS.isAuthorized(user))
{
//todo permissions
- final IUser otherUser = getPlayer(args, 0);
+ final IUser otherUser = ess.getUserMap().matchUser(args[0], false, false);
if (!otherUser.isHidden() || Permissions.LIST_HIDDEN.isAuthorized(user))
{
outputPosition(user, otherUser.getLocation(), user.getLocation());
@@ -33,7 +33,7 @@ public class Commandgetpos extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final IUser user = getPlayer(args, 0);
+ final IUser user = ess.getUserMap().matchUser(args[0], false, false);
outputPosition(sender, user.getLocation(), null);
}
diff --git a/Essentials/src/net/ess3/commands/Commandgive.java b/Essentials/src/net/ess3/commands/Commandgive.java
index eb326748e..6cbc178f3 100644
--- a/Essentials/src/net/ess3/commands/Commandgive.java
+++ b/Essentials/src/net/ess3/commands/Commandgive.java
@@ -53,7 +53,7 @@ public class Commandgive extends EssentialsCommand
{
continue;
}
- final Enchantment enchantment = Commandenchant.getEnchantment(split[0], sender instanceof Player ? ess.getUser((Player)sender) : null);
+ final Enchantment enchantment = Commandenchant.getEnchantment(split[0], sender instanceof Player ? ess.getUserMap().getUser((Player)sender) : null);
int level;
if (split.length > 1)
{
diff --git a/Essentials/src/net/ess3/commands/Commandgod.java b/Essentials/src/net/ess3/commands/Commandgod.java
index 97c04ca23..0f74689d3 100644
--- a/Essentials/src/net/ess3/commands/Commandgod.java
+++ b/Essentials/src/net/ess3/commands/Commandgod.java
@@ -38,7 +38,7 @@ public class Commandgod extends EssentialsCommand
{
for (Player matchPlayer : server.matchPlayer(args[0]))
{
- final IUser player = ess.getUser(matchPlayer);
+ final IUser player = ess.getUserMap().getUser(matchPlayer);
if (player.isHidden())
{
continue;
diff --git a/Essentials/src/net/ess3/commands/Commandheal.java b/Essentials/src/net/ess3/commands/Commandheal.java
index d5c18149c..946583a19 100644
--- a/Essentials/src/net/ess3/commands/Commandheal.java
+++ b/Essentials/src/net/ess3/commands/Commandheal.java
@@ -1,6 +1,7 @@
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;
@@ -9,7 +10,6 @@ import net.ess3.permissions.Permissions;
import net.ess3.user.UserData.TimestampType;
-
public class Commandheal extends EssentialsCommand
{
@Override
@@ -45,18 +45,14 @@ public class Commandheal extends EssentialsCommand
private void healOtherPlayers(final CommandSender sender, final String name)
{
- final List<Player> players = server.matchPlayer(name);
- if (players.isEmpty())
+ final Set<IUser> users = ess.getUserMap().matchUsers(name, false, false);
+ if (users.isEmpty())
{
sender.sendMessage(_("playerNotFound"));
return;
}
- for (Player p : players)
- {
- if (ess.getUser(p).isHidden())
- {
- continue;
- }
+ for (Player p : users)
+ {
p.setHealth(20);
p.setFoodLevel(20);
p.sendMessage(_("heal"));
diff --git a/Essentials/src/net/ess3/commands/Commandhelpop.java b/Essentials/src/net/ess3/commands/Commandhelpop.java
index 542d89b10..5ca9a5386 100644
--- a/Essentials/src/net/ess3/commands/Commandhelpop.java
+++ b/Essentials/src/net/ess3/commands/Commandhelpop.java
@@ -1,9 +1,11 @@
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.Util;
public class Commandhelpop extends EssentialsCommand
diff --git a/Essentials/src/net/ess3/commands/Commandhome.java b/Essentials/src/net/ess3/commands/Commandhome.java
index 70a2e9870..afcac8979 100644
--- a/Essentials/src/net/ess3/commands/Commandhome.java
+++ b/Essentials/src/net/ess3/commands/Commandhome.java
@@ -33,7 +33,7 @@ public class Commandhome extends EssentialsCommand
}
else
{
- player = getPlayer(nameParts, 0, true);
+ player = ess.getUserMap().matchUser(nameParts[0], false, true);
if (nameParts.length > 1)
{
homeName = nameParts[1];
diff --git a/Essentials/src/net/ess3/commands/Commandignore.java b/Essentials/src/net/ess3/commands/Commandignore.java
index af9f2b710..d421e62f2 100644
--- a/Essentials/src/net/ess3/commands/Commandignore.java
+++ b/Essentials/src/net/ess3/commands/Commandignore.java
@@ -16,11 +16,11 @@ public class Commandignore extends EssentialsCommand
IUser player;
try
{
- player = getPlayer(args, 0);
+ player = ess.getUserMap().matchUser(args[0], false, false);
}
catch (NoSuchFieldException ex)
{
- player = ess.getUser(args[0]);
+ player = ess.getUserMap().getUser(args[0]);
}
if (player == null)
{
diff --git a/Essentials/src/net/ess3/commands/Commandinvsee.java b/Essentials/src/net/ess3/commands/Commandinvsee.java
index 04b3eb215..41f031cef 100644
--- a/Essentials/src/net/ess3/commands/Commandinvsee.java
+++ b/Essentials/src/net/ess3/commands/Commandinvsee.java
@@ -21,7 +21,7 @@ public class Commandinvsee extends EssentialsCommand
IUser invUser = user;
if (args.length == 1)
{
- invUser = getPlayer(args, 0);
+ invUser = ess.getUserMap().matchUser(args[0], false, false);
}
user.acquireWriteLock();
if (invUser == user && user.getData().getInventory() != null)
diff --git a/Essentials/src/net/ess3/commands/Commandkick.java b/Essentials/src/net/ess3/commands/Commandkick.java
index 68ce363bc..de6495be0 100644
--- a/Essentials/src/net/ess3/commands/Commandkick.java
+++ b/Essentials/src/net/ess3/commands/Commandkick.java
@@ -18,7 +18,7 @@ public class Commandkick extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final IUser user = getPlayer(args, 0);
+ final IUser user = ess.getUserMap().matchUser(args[0], false, false);
if (Permissions.KICK_EXEMPT.isAuthorized(user))
{
throw new Exception(_("kickExempt"));
diff --git a/Essentials/src/net/ess3/commands/Commandkill.java b/Essentials/src/net/ess3/commands/Commandkill.java
index 7611ef7e3..1b1ed1055 100644
--- a/Essentials/src/net/ess3/commands/Commandkill.java
+++ b/Essentials/src/net/ess3/commands/Commandkill.java
@@ -18,7 +18,7 @@ public class Commandkill extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- for (Player matchPlayer : server.matchPlayer(args[0]))
+ for (Player 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);
server.getPluginManager().callEvent(ede);
diff --git a/Essentials/src/net/ess3/commands/Commandlightning.java b/Essentials/src/net/ess3/commands/Commandlightning.java
index 646adadcd..fd7d62db4 100644
--- a/Essentials/src/net/ess3/commands/Commandlightning.java
+++ b/Essentials/src/net/ess3/commands/Commandlightning.java
@@ -20,7 +20,7 @@ public class Commandlightning extends EssentialsCommand
IUser user = null;
if (sender instanceof Player)
{
- user = ess.getUser(((Player)sender));
+ user = ess.getUserMap().getUser(((Player)sender));
}
if ((args.length < 1 || !Permissions.LIGHTNING_OTHERS.isAuthorized(user)) && user != null)
{
@@ -28,7 +28,7 @@ public class Commandlightning extends EssentialsCommand
return;
}
- if (server.matchPlayer(args[0]).isEmpty())
+ if (ess.getUserMap().matchUsers(args[0], false, false).isEmpty())
{
throw new Exception(_("playerNotFound"));
}
@@ -45,11 +45,11 @@ public class Commandlightning extends EssentialsCommand
}
}
- for (Player matchPlayer : server.matchPlayer(args[0]))
+ for (Player matchPlayer : ess.getUserMap().matchUsers(args[0], false, false))
{
sender.sendMessage(_("lightningUse", matchPlayer.getDisplayName()));
final LightningStrike strike = matchPlayer.getWorld().strikeLightningEffect(matchPlayer.getLocation());
- if (!ess.getUser(matchPlayer).isGodModeEnabled())
+ if (!ess.getUserMap().getUser(matchPlayer).isGodModeEnabled())
{
matchPlayer.damage(power, strike);
}
diff --git a/Essentials/src/net/ess3/commands/Commandmail.java b/Essentials/src/net/ess3/commands/Commandmail.java
index 25893cb4c..8685133f6 100644
--- a/Essentials/src/net/ess3/commands/Commandmail.java
+++ b/Essentials/src/net/ess3/commands/Commandmail.java
@@ -1,13 +1,12 @@
package net.ess3.commands;
+import java.util.List;
import static net.ess3.I18n._;
-import net.ess3.utils.Util;
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 net.ess3.permissions.Permissions;
+import net.ess3.utils.Util;
public class Commandmail extends EssentialsCommand
@@ -38,15 +37,15 @@ public class Commandmail extends EssentialsCommand
throw new Exception(_("noPerm", "essentials.mail.send"));
}
- Player player = server.getPlayer(args[1]);
+ Player player = ess.getUserMap().matchUser(args[1], true, true);
IUser u;
if (player != null)
{
- u = ess.getUser(player);
+ u = player.getUser();
}
else
{
- u = ess.getUser(args[1]);
+ u = ess.getUserMap().matchUser(args[1], true, true);
}
if (u == null)
{
@@ -93,15 +92,15 @@ public class Commandmail extends EssentialsCommand
}
else if (args.length >= 3 && "send".equalsIgnoreCase(args[0]))
{
- Player player = server.getPlayer(args[1]);
+ Player player = ess.getUserMap().matchUser(args[1], true, true);
IUser u;
if (player != null)
{
- u = ess.getUser(player);
+ u = player.getUser();
}
else
{
- u = ess.getUser(args[1]);
+ u = ess.getUserMap().matchUser(args[1], true, true);
}
if (u == null)
{
@@ -118,15 +117,15 @@ 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 = server.getPlayer(args[0]);
+ Player player = ess.getUserMap().matchUser(args[0], true, true);
IUser u;
if (player != null)
{
- u = ess.getUser(player);
+ u = player.getUser();
}
else
{
- u = ess.getUser(args[0]);
+ u = ess.getUserMap().matchUser(args[0], true, true);
}
if (u == null)
{
diff --git a/Essentials/src/net/ess3/commands/Commandmsg.java b/Essentials/src/net/ess3/commands/Commandmsg.java
index 3a2e8b297..ce29ed5b9 100644
--- a/Essentials/src/net/ess3/commands/Commandmsg.java
+++ b/Essentials/src/net/ess3/commands/Commandmsg.java
@@ -27,7 +27,7 @@ public class Commandmsg extends EssentialsCommand
if (sender instanceof Player)
{
@Cleanup
- IUser user = ess.getUser((Player)sender);
+ IUser user = ess.getUserMap().getUser((Player)sender);
user.acquireReadLock();
if (user.getData().isMuted())
{
@@ -49,7 +49,7 @@ public class Commandmsg extends EssentialsCommand
final String translatedMe = _("me");
- final IReplyTo replyTo = sender instanceof Player ? ess.getUser((Player)sender) : Console.getConsoleReplyTo();
+ final IReplyTo replyTo = sender instanceof Player ? ess.getUserMap().getUser((Player)sender) : Console.getConsoleReplyTo();
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
if (args[0].equalsIgnoreCase(Console.NAME))
@@ -62,7 +62,7 @@ public class Commandmsg extends EssentialsCommand
return;
}
- final List<Player> matchedPlayers = server.matchPlayer(args[0]);
+ final List<Player> matchedPlayers = ess.getUserMap().matchUser(args[0], false, false);
if (matchedPlayers.isEmpty())
{
@@ -72,7 +72,7 @@ public class Commandmsg extends EssentialsCommand
int i = 0;
for (Player matchedPlayer : matchedPlayers)
{
- final IUser u = ess.getUser(matchedPlayer);
+ final IUser u = ess.getUserMap().getUser(matchedPlayer);
if (u.isHidden())
{
i++;
@@ -86,14 +86,14 @@ public class Commandmsg extends EssentialsCommand
for (Player matchedPlayer : matchedPlayers)
{
sender.sendMessage(_("msgFormat", translatedMe, matchedPlayer.getDisplayName(), message));
- final IUser matchedUser = ess.getUser(matchedPlayer);
- if (sender instanceof Player && (matchedUser.isIgnoringPlayer(ess.getUser((Player)sender)) || matchedUser.isHidden()))
+ final IUser matchedUser = ess.getUserMap().getUser(matchedPlayer);
+ if (sender instanceof Player && (matchedUser.isIgnoringPlayer(ess.getUserMap().getUser((Player)sender)) || matchedUser.isHidden()))
{
continue;
}
matchedPlayer.sendMessage(_("msgFormat", senderName, translatedMe, message));
- replyTo.setReplyTo(ess.getUser(matchedPlayer));
- ess.getUser(matchedPlayer).setReplyTo(sender);
+ replyTo.setReplyTo(ess.getUserMap().getUser(matchedPlayer));
+ ess.getUserMap().getUser(matchedPlayer).setReplyTo(sender);
}
}
}
diff --git a/Essentials/src/net/ess3/commands/Commandmute.java b/Essentials/src/net/ess3/commands/Commandmute.java
index 30043b95d..fe3ae21b5 100644
--- a/Essentials/src/net/ess3/commands/Commandmute.java
+++ b/Essentials/src/net/ess3/commands/Commandmute.java
@@ -20,7 +20,7 @@ public class Commandmute extends EssentialsCommand
}
@Cleanup
- final IUser player = getPlayer(args, 0, true);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, true);
player.acquireReadLock();
if (!player.getData().isMuted() && Permissions.MUTE_EXEMPT.isAuthorized(player))
{
diff --git a/Essentials/src/net/ess3/commands/Commandnear.java b/Essentials/src/net/ess3/commands/Commandnear.java
index fd3db71f9..86aa0bc03 100644
--- a/Essentials/src/net/ess3/commands/Commandnear.java
+++ b/Essentials/src/net/ess3/commands/Commandnear.java
@@ -22,7 +22,7 @@ public class Commandnear extends EssentialsCommand
{
try
{
- otherUser = getPlayer(args, 0);
+ otherUser = ess.getUserMap().matchUser(args[0], false, false);
}
catch (Exception ex)
{
@@ -62,7 +62,7 @@ public class Commandnear extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final IUser otherUser = getPlayer(args, 0);
+ final IUser otherUser = ess.getUserMap().matchUser(args[0], false, false);
long radius = 200;
if (args.length > 1)
{
@@ -86,7 +86,7 @@ public class Commandnear extends EssentialsCommand
for (Player onlinePlayer : server.getOnlinePlayers())
{
- final IUser player = ess.getUser(onlinePlayer);
+ final IUser player = ess.getUserMap().getUser(onlinePlayer);
if (!player.equals(user) && !player.isHidden())
{
final Location playerLoc = player.getLocation();
diff --git a/Essentials/src/net/ess3/commands/Commandnick.java b/Essentials/src/net/ess3/commands/Commandnick.java
index 07a251f14..a0ec13c91 100644
--- a/Essentials/src/net/ess3/commands/Commandnick.java
+++ b/Essentials/src/net/ess3/commands/Commandnick.java
@@ -7,7 +7,7 @@ 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.IServer
+import net.ess3.api.server.Server;
import net.ess3.permissions.Permissions;
import net.ess3.utils.Util;
@@ -34,7 +34,7 @@ public class Commandnick extends EssentialsCommand
{
throw new Exception(_("nickOthersPermission"));
}
- setNickname(getPlayer(args, 0), formatNickname(user, args[1]));
+ setNickname(ess.getUserMap().matchUser(args[0], false, false), formatNickname(user, args[1]));
user.sendMessage(_("nickChanged"));
return;
}
@@ -61,7 +61,7 @@ public class Commandnick extends EssentialsCommand
}
else
{
- setNickname(getPlayer(args, 0), formatNickname(null, args[1]));
+ setNickname(ess.getUserMap().matchUser(args[0], false, false), formatNickname(null, args[1]));
}
sender.sendMessage(_("nickChanged"));
}
@@ -84,7 +84,7 @@ public class Commandnick extends EssentialsCommand
{
try
{
- setNickname(ess.getUser(player), "off");
+ setNickname(ess.getUserMap().getUser(player), "off");
}
catch (Exception ex)
{
diff --git a/Essentials/src/net/ess3/commands/Commandnuke.java b/Essentials/src/net/ess3/commands/Commandnuke.java
deleted file mode 100644
index 94b60cd77..000000000
--- a/Essentials/src/net/ess3/commands/Commandnuke.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package net.ess3.commands;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import static net.ess3.I18n._;
-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 org.bukkit.entity.TNTPrimed;
-
-
-public class Commandnuke extends EssentialsCommand
-{
- @Override
- protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws NoSuchFieldException, NotEnoughArgumentsException
- {
- List<Player> targets;
- if (args.length > 0)
- {
- targets = new ArrayList<Player>();
- int pos = 0;
- for (String arg : args)
- {
- targets.add(getPlayer(args, pos));
- pos++;
- }
- }
- else
- {
- targets = Arrays.asList(server.getOnlinePlayers());
- }
- ess.getTNTListener().enable();
- for (Player player : targets)
- {
- if (player == null)
- {
- continue;
- }
- player.sendMessage(_("nuke"));
- final Location loc = player.getLocation();
- final World world = loc.getWorld();
- for (int x = -10; x <= 10; x += 5)
- {
- for (int z = -10; z <= 10; z += 5)
- {
- final Location tntloc = new Location(world, loc.getBlockX() + x, world.getMaxHeight(), loc.getBlockZ() + z);
- final TNTPrimed tnt = world.spawn(tntloc, TNTPrimed.class);
- }
- }
- }
- }
-}
diff --git a/Essentials/src/net/ess3/commands/Commandpay.java b/Essentials/src/net/ess3/commands/Commandpay.java
index c1f331fca..a4f2e0682 100644
--- a/Essentials/src/net/ess3/commands/Commandpay.java
+++ b/Essentials/src/net/ess3/commands/Commandpay.java
@@ -25,15 +25,10 @@ public class Commandpay extends EssentialsCommand
double amount = Double.parseDouble(args[1].replaceAll("[^0-9\\.]", ""));
boolean foundUser = false;
- for (Player p : server.matchPlayer(args[0]))
+ for (Player p : ess.getUserMap().matchUsers(args[0], false, true))
{
- IUser u = ess.getUser(p);
- if (u.isHidden())
- {
- continue;
- }
- user.payUser(u, amount);
- Trade.log("Command", "Pay", "Player", user.getName(), new Trade(amount, ess), u.getName(), new Trade(amount, ess), user.getLocation(), ess);
+ 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);
foundUser = true;
}
diff --git a/Essentials/src/net/ess3/commands/Commandptime.java b/Essentials/src/net/ess3/commands/Commandptime.java
index 7a0f27b1f..396497618 100644
--- a/Essentials/src/net/ess3/commands/Commandptime.java
+++ b/Essentials/src/net/ess3/commands/Commandptime.java
@@ -41,7 +41,7 @@ public class Commandptime extends EssentialsCommand
return;
}
- IUser user = sender instanceof Player ? ess.getUser((Player)sender) : null;
+ IUser user = sender instanceof Player ? ess.getUserMap().getUser((Player)sender) : null;
if ((!users.contains(user) || users.size() > 1) && user != null && !Permissions.PTIME_OTHERS.isAuthorized(user))
{
user.sendMessage(_("pTimeOthersPermission"));
@@ -183,12 +183,12 @@ public class Commandptime extends EssentialsCommand
// If there is no selector we want the sender itself. Or all users if sender isn't a user.
if (selector == null)
{
- final IUser user = sender instanceof Player ? ess.getUser((Player)sender) : null;
+ final IUser user = sender instanceof Player ? ess.getUserMap().getUser((Player)sender) : null;
if (user == null)
{
for (Player player : server.getOnlinePlayers())
{
- users.add(ess.getUser(player));
+ users.add(ess.getUserMap().getUser(player));
}
}
else
@@ -203,7 +203,7 @@ public class Commandptime extends EssentialsCommand
final List<Player> matchedPlayers = server.matchPlayer(selector);
if (!matchedPlayers.isEmpty())
{
- user = ess.getUser(matchedPlayers.get(0));
+ user = ess.getUserMap().getUser(matchedPlayers.get(0));
}
if (user != null)
@@ -215,7 +215,7 @@ public class Commandptime extends EssentialsCommand
{
for (Player player : server.getOnlinePlayers())
{
- users.add(ess.getUser(player));
+ users.add(ess.getUserMap().getUser(player));
}
}
// We failed to understand the world target...
diff --git a/Essentials/src/net/ess3/commands/Commandr.java b/Essentials/src/net/ess3/commands/Commandr.java
index 1b2e42dcb..1e0b5750e 100644
--- a/Essentials/src/net/ess3/commands/Commandr.java
+++ b/Essentials/src/net/ess3/commands/Commandr.java
@@ -26,7 +26,7 @@ public class Commandr extends EssentialsCommand
if (sender instanceof Player)
{
- IUser user = ess.getUser((Player)sender);
+ IUser user = ess.getUserMap().getUser((Player)sender);
if (Permissions.MSG_COLOR.isAuthorized(user))
{
message = Util.replaceFormat(message);
@@ -56,8 +56,8 @@ public class Commandr extends EssentialsCommand
sender.sendMessage(_("msgFormat", _("me"), targetName, message));
if (target instanceof Player)
{
- IUser player = ess.getUser((Player)target);
- if (sender instanceof Player && player.isIgnoringPlayer(ess.getUser((Player)sender)))
+ IUser player = ess.getUserMap().getUser((Player)target);
+ if (sender instanceof Player && player.isIgnoringPlayer(ess.getUserMap().getUser((Player)sender)))
{
return;
}
@@ -68,7 +68,7 @@ public class Commandr extends EssentialsCommand
{
if (target instanceof Player)
{
- ess.getUser((Player)target).setReplyTo(sender);
+ ess.getUserMap().getUser((Player)target).setReplyTo(sender);
}
else
{
diff --git a/Essentials/src/net/ess3/commands/Commandrealname.java b/Essentials/src/net/ess3/commands/Commandrealname.java
index 85430b90d..f21c7e2c5 100644
--- a/Essentials/src/net/ess3/commands/Commandrealname.java
+++ b/Essentials/src/net/ess3/commands/Commandrealname.java
@@ -24,7 +24,7 @@ public class Commandrealname extends EssentialsCommand
final String whois = args[0].toLowerCase(Locale.ENGLISH);
for (Player onlinePlayer : server.getOnlinePlayers())
{
- final IUser u = ess.getUser(onlinePlayer);
+ final IUser u = ess.getUserMap().getUser(onlinePlayer);
if (u.isHidden())
{
continue;
diff --git a/Essentials/src/net/ess3/commands/Commandseen.java b/Essentials/src/net/ess3/commands/Commandseen.java
index a508b16e3..9dbb6a7f9 100644
--- a/Essentials/src/net/ess3/commands/Commandseen.java
+++ b/Essentials/src/net/ess3/commands/Commandseen.java
@@ -31,13 +31,13 @@ public class Commandseen extends EssentialsCommand
}
try
{
- IUser u = getPlayer(args, 0);
+ IUser u = ess.getUserMap().matchUser(args[0], false, false);
sender.sendMessage(_("seenOnline", u.getDisplayName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGIN))));
}
catch (NoSuchFieldException e)
{
@Cleanup
- IUser u = ess.getUser(args[0]);
+ IUser u = ess.getUserMap().getUser(args[0]);
u.acquireReadLock();
if (u == null)
{
diff --git a/Essentials/src/net/ess3/commands/Commandsethome.java b/Essentials/src/net/ess3/commands/Commandsethome.java
index 00e3a0170..511d05487 100644
--- a/Essentials/src/net/ess3/commands/Commandsethome.java
+++ b/Essentials/src/net/ess3/commands/Commandsethome.java
@@ -56,7 +56,7 @@ public class Commandsethome extends EssentialsCommand
if (Permissions.SETHOME_OTHERS.isAuthorized(user))
{
@Cleanup
- IUser usersHome = ess.getUser(ess.getServer().getPlayer(args[0]));
+ IUser usersHome = ess.getUserMap().getUser(ess.getServer().getPlayer(args[0]));
if (usersHome == null)
{
throw new Exception(_("playerNotFound"));
diff --git a/Essentials/src/net/ess3/commands/Commandspawn.java b/Essentials/src/net/ess3/commands/Commandspawn.java
index 213f14211..bb177ae79 100644
--- a/Essentials/src/net/ess3/commands/Commandspawn.java
+++ b/Essentials/src/net/ess3/commands/Commandspawn.java
@@ -20,7 +20,7 @@ public class Commandspawn extends EssentialsCommand
charge.isAffordableFor(user);
if (args.length > 0 && Permissions.SPAWN_OTHERS.isAuthorized(user))
{
- final IUser otherUser = getPlayer(args, 0);
+ final IUser otherUser = ess.getUserMap().matchUser(args[0], false, false);
respawn(otherUser, null);
if (!otherUser.equals(user))
{
@@ -41,7 +41,7 @@ public class Commandspawn extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final IUser user = getPlayer(args, 0);
+ final IUser user = ess.getUserMap().matchUser(args[0], false, false);
respawn(user, null);
user.sendMessage(_("teleportAtoB", user.getDisplayName(), "spawn"));
sender.sendMessage(_("teleporting"));
diff --git a/Essentials/src/net/ess3/commands/Commandsudo.java b/Essentials/src/net/ess3/commands/Commandsudo.java
index d77241348..84d5d9b36 100644
--- a/Essentials/src/net/ess3/commands/Commandsudo.java
+++ b/Essentials/src/net/ess3/commands/Commandsudo.java
@@ -16,7 +16,7 @@ public class Commandsudo extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final IUser user = getPlayer(args, 0, false);
+ final IUser user = ess.getUserMap().matchUser(args[0], false, false);
final String command = args[1];
final String[] arguments = new String[args.length - 2];
if (arguments.length > 0)
diff --git a/Essentials/src/net/ess3/commands/Commandtempban.java b/Essentials/src/net/ess3/commands/Commandtempban.java
index d41dbac37..fe3f01b1f 100644
--- a/Essentials/src/net/ess3/commands/Commandtempban.java
+++ b/Essentials/src/net/ess3/commands/Commandtempban.java
@@ -20,7 +20,7 @@ public class Commandtempban extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final IUser user = getPlayer(args, 0, true);
+ final IUser user = ess.getUserMap().matchUser(args[0], false, true);
if (!user.isOnline())
{
if (Permissions.TEMPBAN_OFFLINE.isAuthorized(sender))
@@ -51,7 +51,7 @@ public class Commandtempban extends EssentialsCommand
for (Player onlinePlayer : server.getOnlinePlayers())
{
- final IUser player = ess.getUser(onlinePlayer);
+ final IUser player = ess.getUserMap().getUser(onlinePlayer);
if (Permissions.BAN_NOTIFY.isAuthorized(player))
{
onlinePlayer.sendMessage(_("playerBanned", senderName, user.getName(), banReason));
diff --git a/Essentials/src/net/ess3/commands/Commandtime.java b/Essentials/src/net/ess3/commands/Commandtime.java
index f48b31cd7..c0ea66898 100644
--- a/Essentials/src/net/ess3/commands/Commandtime.java
+++ b/Essentials/src/net/ess3/commands/Commandtime.java
@@ -122,7 +122,7 @@ public class Commandtime extends EssentialsCommand
// If there is no selector we want the world the user is currently in. Or all worlds if it isn't a user.
if (selector == null)
{
- final IUser user = sender instanceof Player ? ess.getUser((Player)sender) : null;
+ final IUser user = sender instanceof Player ? ess.getUserMap().getUser((Player)sender) : null;
if (user == null)
{
worlds.addAll(server.getWorlds());
diff --git a/Essentials/src/net/ess3/commands/Commandtogglejail.java b/Essentials/src/net/ess3/commands/Commandtogglejail.java
index bc1c3d127..8cd17d683 100644
--- a/Essentials/src/net/ess3/commands/Commandtogglejail.java
+++ b/Essentials/src/net/ess3/commands/Commandtogglejail.java
@@ -21,7 +21,7 @@ public class Commandtogglejail extends EssentialsCommand
}
@Cleanup
- final IUser player = getPlayer(args, 0, true);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, true);
player.acquireReadLock();
if (args.length >= 2 && !player.getData().isJailed())
diff --git a/Essentials/src/net/ess3/commands/Commandtp.java b/Essentials/src/net/ess3/commands/Commandtp.java
index 45cdf5870..a9b4873d6 100644
--- a/Essentials/src/net/ess3/commands/Commandtp.java
+++ b/Essentials/src/net/ess3/commands/Commandtp.java
@@ -5,6 +5,7 @@ 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;
@@ -27,7 +28,7 @@ public class Commandtp extends EssentialsCommand
case 1:
@Cleanup
- final IUser player = getPlayer(args, 0);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, false);
player.acquireReadLock();
if (!player.getData().isTeleportEnabled())
{
@@ -51,9 +52,9 @@ public class Commandtp extends EssentialsCommand
}
user.sendMessage(_("teleporting"));
@Cleanup
- final IUser target = getPlayer(args, 0);
+ final IUser target = ess.getUserMap().matchUser(args[0], false, false);
@Cleanup
- final IUser toPlayer = getPlayer(args, 1);
+ final IUser toPlayer = ess.getUserMap().matchUser(args[1], false, false);
target.acquireReadLock();
toPlayer.acquireReadLock();
diff --git a/Essentials/src/net/ess3/commands/Commandtpa.java b/Essentials/src/net/ess3/commands/Commandtpa.java
index 999b57ec3..db78e27e7 100644
--- a/Essentials/src/net/ess3/commands/Commandtpa.java
+++ b/Essentials/src/net/ess3/commands/Commandtpa.java
@@ -18,7 +18,7 @@ public class Commandtpa extends EssentialsCommand
}
@Cleanup
- IUser player = getPlayer(args, 0);
+ IUser player = ess.getUserMap().matchUser(args[0], false, false);
player.acquireReadLock();
if (!player.getData().isTeleportEnabled())
{
diff --git a/Essentials/src/net/ess3/commands/Commandtpaall.java b/Essentials/src/net/ess3/commands/Commandtpaall.java
index 717a55cc1..79bc2a5fd 100644
--- a/Essentials/src/net/ess3/commands/Commandtpaall.java
+++ b/Essentials/src/net/ess3/commands/Commandtpaall.java
@@ -18,13 +18,13 @@ public class Commandtpaall extends EssentialsCommand
{
if (sender instanceof Player)
{
- teleportAAllPlayers(sender, ess.getUser((Player)sender));
+ teleportAAllPlayers(sender, ess.getUserMap().getUser((Player)sender));
return;
}
throw new NotEnoughArgumentsException();
}
- final IUser player = getPlayer(args, 0);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, false);
teleportAAllPlayers(sender, player);
}
@@ -34,7 +34,7 @@ public class Commandtpaall extends EssentialsCommand
for (Player onlinePlayer : server.getOnlinePlayers())
{
@Cleanup
- final IUser player = ess.getUser(onlinePlayer);
+ final IUser player = ess.getUserMap().getUser(onlinePlayer);
player.acquireReadLock();
if (user == player)
{
diff --git a/Essentials/src/net/ess3/commands/Commandtpahere.java b/Essentials/src/net/ess3/commands/Commandtpahere.java
index 01e3dd29b..6ae1c036a 100644
--- a/Essentials/src/net/ess3/commands/Commandtpahere.java
+++ b/Essentials/src/net/ess3/commands/Commandtpahere.java
@@ -18,7 +18,7 @@ public class Commandtpahere extends EssentialsCommand
}
@Cleanup
- final IUser player = getPlayer(args, 0);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, false);
player.acquireReadLock();
if (!player.getData().isTeleportEnabled())
{
diff --git a/Essentials/src/net/ess3/commands/Commandtpall.java b/Essentials/src/net/ess3/commands/Commandtpall.java
index 0a08f88b7..107db6bcd 100644
--- a/Essentials/src/net/ess3/commands/Commandtpall.java
+++ b/Essentials/src/net/ess3/commands/Commandtpall.java
@@ -20,13 +20,13 @@ public class Commandtpall extends EssentialsCommand
{
if (sender instanceof Player)
{
- teleportAllPlayers(sender, ess.getUser((Player)sender));
+ teleportAllPlayers(sender, ess.getUserMap().getUser((Player)sender));
return;
}
throw new NotEnoughArgumentsException();
}
- final IUser player = getPlayer(args, 0);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, false);
teleportAllPlayers(sender, player);
}
@@ -35,7 +35,7 @@ public class Commandtpall extends EssentialsCommand
sender.sendMessage(_("teleportAll"));
for (Player onlinePlayer : server.getOnlinePlayers())
{
- final IUser player = ess.getUser(onlinePlayer);
+ final IUser player = ess.getUserMap().getUser(onlinePlayer);
if (user == player)
{
continue;
diff --git a/Essentials/src/net/ess3/commands/Commandtphere.java b/Essentials/src/net/ess3/commands/Commandtphere.java
index 78d571423..7b26f53d4 100644
--- a/Essentials/src/net/ess3/commands/Commandtphere.java
+++ b/Essentials/src/net/ess3/commands/Commandtphere.java
@@ -14,7 +14,7 @@ public class Commandtphere extends EssentialsCommand
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{
@Cleanup
- final IUser player = getPlayer(args, 0);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, false);
player.acquireReadLock();
if (!player.getData().isTeleportEnabled())
{
diff --git a/Essentials/src/net/ess3/commands/Commandtpo.java b/Essentials/src/net/ess3/commands/Commandtpo.java
index 2a90fa045..8cef5bb81 100644
--- a/Essentials/src/net/ess3/commands/Commandtpo.java
+++ b/Essentials/src/net/ess3/commands/Commandtpo.java
@@ -18,7 +18,7 @@ public class Commandtpo extends EssentialsCommand
}
//Just basically the old tp command
- final IUser player = getPlayer(args, 0, true);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, true);
// Check if user is offline
if (!player.isOnline())
{
diff --git a/Essentials/src/net/ess3/commands/Commandtpohere.java b/Essentials/src/net/ess3/commands/Commandtpohere.java
index e9a392591..d58384144 100644
--- a/Essentials/src/net/ess3/commands/Commandtpohere.java
+++ b/Essentials/src/net/ess3/commands/Commandtpohere.java
@@ -21,7 +21,7 @@ public class Commandtpohere extends EssentialsCommand
}
//Just basically the old tphere command
- final IUser player = getPlayer(args, 0, true);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, true);
// Check if user is offline
if (!player.isOnline())
diff --git a/Essentials/src/net/ess3/commands/Commandtppos.java b/Essentials/src/net/ess3/commands/Commandtppos.java
index 29350cc60..3cf658f71 100644
--- a/Essentials/src/net/ess3/commands/Commandtppos.java
+++ b/Essentials/src/net/ess3/commands/Commandtppos.java
@@ -2,6 +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.Location;
import net.ess3.economy.Trade;
//TODO: remove bukkit
@@ -45,7 +46,7 @@ public class Commandtppos extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- IUser user = ess.getUser(server.getPlayer(args[0]));
+ IUser user = ess.getUserMap().getUser(server.getPlayer(args[0]));
final int x = Integer.parseInt(args[1]);
final int y = Integer.parseInt(args[2]);
final int z = Integer.parseInt(args[3]);
diff --git a/Essentials/src/net/ess3/commands/Commandunban.java b/Essentials/src/net/ess3/commands/Commandunban.java
index cd82ba509..75d9081bd 100644
--- a/Essentials/src/net/ess3/commands/Commandunban.java
+++ b/Essentials/src/net/ess3/commands/Commandunban.java
@@ -19,7 +19,7 @@ public class Commandunban extends EssentialsCommand
try
{
@Cleanup
- final IUser player = getPlayer(args, 0, true);
+ final IUser player = ess.getUserMap().matchUser(args[0], false, true);
player.acquireWriteLock();
player.getData().setBan(null);
player.setBanned(false);
diff --git a/Essentials/src/net/ess3/commands/Commandunbanip.java b/Essentials/src/net/ess3/commands/Commandunbanip.java
index 03c8fcb75..7243eb370 100644
--- a/Essentials/src/net/ess3/commands/Commandunbanip.java
+++ b/Essentials/src/net/ess3/commands/Commandunbanip.java
@@ -18,7 +18,7 @@ public class Commandunbanip extends EssentialsCommand
try
{
@Cleanup
- final IUser user = getPlayer(args, 0, true);
+ final IUser user = ess.getUserMap().matchUser(args[0], false, true);
user.acquireReadLock();
ess.getServer().unbanIP(user.getData().getIpAddress());
}
diff --git a/Essentials/src/net/ess3/commands/Commandunlimited.java b/Essentials/src/net/ess3/commands/Commandunlimited.java
index 88115ab64..9f182a6a7 100644
--- a/Essentials/src/net/ess3/commands/Commandunlimited.java
+++ b/Essentials/src/net/ess3/commands/Commandunlimited.java
@@ -26,7 +26,7 @@ public class Commandunlimited extends EssentialsCommand
if (args.length > 1 && Permissions.UNLIMITED_OTHERS.isAuthorized(user))
{
- target = getPlayer(args, 1);
+ target = ess.getUserMap().matchUser(args[1], false, false);
target.acquireReadLock();
}
diff --git a/Essentials/src/net/ess3/commands/Commandwarp.java b/Essentials/src/net/ess3/commands/Commandwarp.java
index 2d56a0cb9..ff5e0af99 100644
--- a/Essentials/src/net/ess3/commands/Commandwarp.java
+++ b/Essentials/src/net/ess3/commands/Commandwarp.java
@@ -12,6 +12,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Locale;
//TODO: remove bukkit
+import net.ess3.api.server.CommandSender;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -36,7 +37,7 @@ public class Commandwarp extends EssentialsCommand
IUser otherUser = null;
if (args.length == 2 && Permissions.WARP_OTHERS.isAuthorized(user))
{
- otherUser = ess.getUser(server.getPlayer(args[1]));
+ otherUser = ess.getUserMap().matchUser(args[1],Permissions.WARP_HIDDEN.isAuthorized(user), false);
if (otherUser == null)
{
throw new Exception(_("playerNotFound"));
@@ -57,7 +58,7 @@ public class Commandwarp extends EssentialsCommand
warpList(sender, args);
throw new NoChargeException();
}
- IUser otherUser = ess.getUser(server.getPlayer(args[1]));
+ IUser otherUser = ess.getUserMap().matchUser(args[1],Permissions.WARP_HIDDEN.isAuthorized(sender), false);
if (otherUser == null)
{
throw new Exception(_("playerNotFound"));
diff --git a/Essentials/src/net/ess3/commands/Commandworth.java b/Essentials/src/net/ess3/commands/Commandworth.java
index 9b0939f8f..deda51c6c 100644
--- a/Essentials/src/net/ess3/commands/Commandworth.java
+++ b/Essentials/src/net/ess3/commands/Commandworth.java
@@ -5,6 +5,7 @@ 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;
public class Commandworth extends EssentialsCommand
diff --git a/Essentials/src/net/ess3/commands/EssentialsCommand.java b/Essentials/src/net/ess3/commands/EssentialsCommand.java
index d54e3d309..6afd42f01 100644
--- a/Essentials/src/net/ess3/commands/EssentialsCommand.java
+++ b/Essentials/src/net/ess3/commands/EssentialsCommand.java
@@ -5,7 +5,7 @@ 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.IServer;
+import net.ess3.api.server.Server;
import net.ess3.api.server.Player;
import net.ess3.economy.Trade;
import net.ess3.permissions.AbstractSuperpermsPermission;
@@ -19,7 +19,7 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp
protected transient String commandName;
protected transient IEssentials ess;
protected transient IEssentialsModule module;
- protected transient IServer server;
+ protected transient Server server;
protected transient Logger logger;
private transient String permission;
@@ -38,7 +38,7 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp
this.module = module;
}
- protected IUser getPlayer(final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
+ /*protected IUser getPlayer(final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
{
return getPlayer(args, pos, false);
}
@@ -53,7 +53,7 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp
{
throw new NoSuchFieldException(_("playerNotFound"));
}
- final IUser user = ess.getUser(args[pos]);
+ final IUser user = ess.getUserMap().getUser(args[pos]);
if (user != null)
{
if (!getOffline && (!user.isOnline() || user.isHidden()))
@@ -81,7 +81,7 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp
}
}
throw new NoSuchFieldException(_("playerNotFound"));
- }
+ }*/
@Override
public final void run(final IUser user, final Command cmd, final String commandLabel, final String[] args) throws Exception
diff --git a/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java b/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java
index db2b63c3e..3d026d5c1 100644
--- a/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java
+++ b/Essentials/src/net/ess3/commands/EssentialsCommandHandler.java
@@ -5,13 +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.PluginCommand;
import org.bukkit.command.PluginCommandYamlParser;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
public class EssentialsCommandHandler implements ICommandHandler
@@ -63,6 +64,7 @@ public class EssentialsCommandHandler implements ICommandHandler
{
settings.unlock();
}
+ // TODO: Move this stuff to bukkit workarounds
// Allow plugins to override the command via onCommand
if (!overridden && (!commandLabel.startsWith("e") || commandLabel.equalsIgnoreCase(command.getName())))
{
@@ -102,7 +104,7 @@ public class EssentialsCommandHandler implements ICommandHandler
IUser user = null;
if (sender instanceof Player)
{
- user = ess.getUser((Player)sender);
+ user = ((Player)sender).getUser();
LOGGER.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0)));
}
@@ -202,6 +204,7 @@ public class EssentialsCommandHandler implements ICommandHandler
{
}
+ //TODO: Move this stuff to bukkit workarounds
public final void addPlugin(final Plugin plugin)
{
if (plugin.getDescription().getMain().contains("com.earth2me.essentials"))
diff --git a/Essentials/src/net/ess3/economy/Economy.java b/Essentials/src/net/ess3/economy/Economy.java
index c818dbf75..cfd1f899e 100644
--- a/Essentials/src/net/ess3/economy/Economy.java
+++ b/Essentials/src/net/ess3/economy/Economy.java
@@ -90,7 +90,7 @@ public class Economy implements IEconomy
@Override
public double getMoney(String name) throws UserDoesNotExistException
{
- IUser user = ess.getUser(name);
+ IUser user = ess.getUserMap().getUser(name);
if (user == null)
{
return getNPCBalance(name);
@@ -101,7 +101,7 @@ public class Economy implements IEconomy
@Override
public void setMoney(String name, double balance) throws NoLoanPermittedException, UserDoesNotExistException
{
- IUser user = ess.getUser(name);
+ IUser user = ess.getUserMap().getUser(name);
if (user == null)
{
setNPCBalance(name, balance, true);
@@ -143,7 +143,7 @@ public class Economy implements IEconomy
@Override
public boolean isNPC(String name) throws UserDoesNotExistException
{
- boolean result = ess.getUser(name) == null;
+ boolean result = ess.getUserMap().getUser(name) == null;
if (result)
{
getNPCBalance(name);
diff --git a/Essentials/src/net/ess3/economy/Trade.java b/Essentials/src/net/ess3/economy/Trade.java
index 85d8e53f3..5dc5322e8 100644
--- a/Essentials/src/net/ess3/economy/Trade.java
+++ b/Essentials/src/net/ess3/economy/Trade.java
@@ -1,14 +1,5 @@
package net.ess3.economy;
-import static net.ess3.I18n._;
-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.permissions.NoCommandCostPermissions;
-import net.ess3.permissions.Permissions;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
@@ -19,6 +10,15 @@ import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import lombok.Cleanup;
+import static net.ess3.I18n._;
+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.permissions.NoCommandCostPermissions;
+import net.ess3.permissions.Permissions;
diff --git a/Essentials/src/net/ess3/listener/EssentialsBlockListener.java b/Essentials/src/net/ess3/listener/EssentialsBlockListener.java
index 5faaeeb3b..9d69aff04 100644
--- a/Essentials/src/net/ess3/listener/EssentialsBlockListener.java
+++ b/Essentials/src/net/ess3/listener/EssentialsBlockListener.java
@@ -2,16 +2,15 @@ package net.ess3.listener;
import net.ess3.api.IEssentials;
import net.ess3.api.IUser;
-import net.ess3.utils.Util;
-import org.bukkit.GameMode;
-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;
+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;
-public class EssentialsBlockListener implements Listener
+public class EssentialsBlockListener extends EventListener
{
private final transient IEssentials ess;
@@ -19,21 +18,20 @@ public class EssentialsBlockListener implements Listener
{
super();
this.ess = ess;
+ register(EventType.PLACE_BLOCK, EventPriority.LOW, true);
}
- @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
- public void onBlockPlace(final BlockPlaceEvent event)
+ @Override
+ public boolean onBlockPlace(final Block placedBlock, final OnDemand<IUser> user)
{
- // Do not rely on getItemInHand();
- // http://leaky.bukkit.org/issues/663
- final ItemStack itemstack = Util.convertBlockToItem(event.getBlockPlaced());
- if (itemstack == null)
+ final ItemStack itemstack = placedBlock.convertToItem();
+ if (placedBlock == null)
{
- return;
+ return true;
}
- final IUser user = ess.getUser(event.getPlayer());
- final boolean unlimitedForUser = user.getData().hasUnlimited(itemstack.getType());
- if (unlimitedForUser && user.getGameMode() == GameMode.SURVIVAL)
+
+ final boolean unlimitedForUser = user.get().getData().hasUnlimited(itemstack.getType());
+ if (unlimitedForUser && user.get().isInSurvivalMode())
{
ess.getPlugin().scheduleSyncDelayedTask(
new Runnable()
@@ -41,10 +39,11 @@ public class EssentialsBlockListener implements Listener
@Override
public void run()
{
- user.getInventory().addItem(itemstack);
- user.updateInventory();
+ user.get().getInventory().addItem(itemstack);
+ user.get().updateInventory();
}
});
}
+ return true;
}
}
diff --git a/Essentials/src/net/ess3/listener/EssentialsEntityListener.java b/Essentials/src/net/ess3/listener/EssentialsEntityListener.java
index 6677005bd..f25376f62 100644
--- a/Essentials/src/net/ess3/listener/EssentialsEntityListener.java
+++ b/Essentials/src/net/ess3/listener/EssentialsEntityListener.java
@@ -44,9 +44,9 @@ public class EssentialsEntityListener implements Listener
if (eDefend instanceof Player && eAttack instanceof Player)
{
@Cleanup
- final IUser attacker = ess.getUser((Player)eAttack);
+ final IUser attacker = ess.getUserMap().getUser((Player)eAttack);
@Cleanup
- final IUser defender = ess.getUser((Player)eDefend);
+ final IUser defender = ess.getUserMap().getUser((Player)eDefend);
@Cleanup
ISettings settings = ess.getSettings();
settings.acquireReadLock();
@@ -104,7 +104,7 @@ public class EssentialsEntityListener implements Listener
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onEntityDamage(final EntityDamageEvent event)
{
- if (event.getEntity() instanceof Player && ess.getUser((Player)event.getEntity()).isGodModeEnabled())
+ if (event.getEntity() instanceof Player && ess.getUserMap().getUser((Player)event.getEntity()).isGodModeEnabled())
{
final Player player = (Player)event.getEntity();
player.setFireTicks(0);
@@ -116,7 +116,7 @@ public class EssentialsEntityListener implements Listener
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onEntityCombust(final EntityCombustEvent event)
{
- if (event.getEntity() instanceof Player && ess.getUser((Player)event.getEntity()).isGodModeEnabled())
+ if (event.getEntity() instanceof Player && ess.getUserMap().getUser((Player)event.getEntity()).isGodModeEnabled())
{
event.setCancelled(true);
}
@@ -125,7 +125,7 @@ public class EssentialsEntityListener implements Listener
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerDeathEvent(final PlayerDeathEvent event)
{
- final IUser user = ess.getUser((Player)event.getEntity());
+ final IUser user = ess.getUserMap().getUser((Player)event.getEntity());
@Cleanup
final ISettings settings = ess.getSettings();
settings.acquireReadLock();
@@ -143,7 +143,7 @@ public class EssentialsEntityListener implements Listener
@EventHandler(priority = EventPriority.LOW)
public void onPlayerDeathExpEvent(final PlayerDeathEvent event)
{
- final IUser user = ess.getUser(event.getEntity());
+ final IUser user = ess.getUserMap().getUser(event.getEntity());
if (Permissions.KEEPXP.isAuthorized(user))
{
event.setKeepLevel(true);
@@ -154,7 +154,7 @@ public class EssentialsEntityListener implements Listener
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onFoodLevelChange(final FoodLevelChangeEvent event)
{
- if (event.getEntity() instanceof Player && ess.getUser((Player)event.getEntity()).isGodModeEnabled())
+ if (event.getEntity() instanceof Player && ess.getUserMap().getUser((Player)event.getEntity()).isGodModeEnabled())
{
event.setCancelled(true);
}
@@ -170,7 +170,7 @@ public class EssentialsEntityListener implements Listener
final ISettings settings = ess.getSettings();
settings.acquireReadLock();
@Cleanup
- final IUser user = ess.getUser((Player)event.getEntity());
+ final IUser user = ess.getUserMap().getUser((Player)event.getEntity());
user.acquireReadLock();
if (user.getData().isAfk() && settings.getData().getCommands().getAfk().isFreezeAFKPlayers())
{
diff --git a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java
index 564a75f34..04a12aada 100644
--- a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java
+++ b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java
@@ -52,7 +52,7 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerRespawn(final PlayerRespawnEvent event)
{
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.updateCompass();
user.updateDisplayName();
}
@@ -61,7 +61,7 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerChat(final PlayerChatEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (user.getData().isMuted())
{
@@ -72,7 +72,7 @@ public class EssentialsPlayerListener implements Listener
final Iterator<Player> it = event.getRecipients().iterator();
while (it.hasNext())
{
- final IUser player = ess.getUser(it.next());
+ final IUser player = ess.getUserMap().getUser(it.next());
if (player.isIgnoringPlayer(user))
{
it.remove();
@@ -86,7 +86,7 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerMove(final PlayerMoveEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
@Cleanup
final ISettings settings = ess.getSettings();
@@ -121,7 +121,7 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerQuit(final PlayerQuitEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
@Cleanup
final ISettings settings = ess.getSettings();
@@ -152,7 +152,7 @@ public class EssentialsPlayerListener implements Listener
}
ess.getBackup().startTask();
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireWriteLock();
user.updateDisplayName();
@@ -163,7 +163,7 @@ public class EssentialsPlayerListener implements Listener
{
if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(user))
{
- user.hidePlayer(ess.getUser(p).getBase());
+ user.hidePlayer(ess.getUserMap().getUser(p).getBase());
}
}
@@ -225,7 +225,7 @@ public class EssentialsPlayerListener implements Listener
return;
}
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireWriteLock();
user.getData().setNpc(false);
@@ -261,7 +261,7 @@ public class EssentialsPlayerListener implements Listener
//There is TeleportCause.COMMMAND but plugins have to actively pass the cause in on their teleports.
if ((event.getCause() == TeleportCause.PLUGIN || event.getCause() == TeleportCause.COMMAND) && settings.getData().getCommands().getBack().isRegisterBackInListener())
{
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.setLastLocation();
}
@@ -271,7 +271,7 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerEggThrow(final PlayerEggThrowEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
final ItemStack hand = new ItemStack(Material.EGG, 1);
if (user.getData().hasUnlimited(hand.getType()))
@@ -285,7 +285,7 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (user.getData().hasUnlimited(event.getBucket()))
{
@@ -304,7 +304,7 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event)
{
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
final String cmd = event.getMessage().toLowerCase(Locale.ENGLISH).split(" ")[0].replace("/", "").toLowerCase(Locale.ENGLISH);
final List<String> commands = Arrays.asList("msg", "r", "mail", "m", "t", "emsg", "tell", "er", "reply", "ereply", "email");
if (commands.contains(cmd))
@@ -312,7 +312,7 @@ public class EssentialsPlayerListener implements Listener
for (Player player : ess.getServer().getOnlinePlayers())
{
@Cleanup
- IUser spyer = ess.getUser(player);
+ IUser spyer = ess.getUserMap().getUser(player);
spyer.acquireReadLock();
if (spyer.getData().isSocialspy() && !user.equals(spyer))
{
@@ -333,7 +333,7 @@ public class EssentialsPlayerListener implements Listener
final ISettings settings = ess.getSettings();
settings.acquireReadLock();
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (settings.getData().getChat().getChangeDisplayname())
{
@@ -360,7 +360,7 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerInteract(final PlayerInteractEvent event)
{
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
user.updateActivity(true);
switch (event.getAction())
@@ -449,7 +449,7 @@ public class EssentialsPlayerListener implements Listener
return;
}
@Cleanup
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.acquireReadLock();
if (user.getData().isAfk())
{
@@ -462,11 +462,11 @@ public class EssentialsPlayerListener implements Listener
{
if (event.getView().getTopInventory().getType() == InventoryType.PLAYER)
{
- final IUser user = ess.getUser((Player)event.getWhoClicked());
+ final IUser user = ess.getUserMap().getUser((Player)event.getWhoClicked());
final InventoryHolder invHolder = event.getView().getTopInventory().getHolder();
if (invHolder != null && invHolder instanceof Player)
{
- final IUser invOwner = ess.getUser((Player)invHolder);
+ final IUser invOwner = ess.getUserMap().getUser((Player)invHolder);
if (user.isInvSee() && (!Permissions.INVSEE_MODIFY.isAuthorized(user)
|| Permissions.INVSEE_PREVENT_MODIFY.isAuthorized(invOwner)
|| !invOwner.isOnline()))
@@ -482,7 +482,7 @@ public class EssentialsPlayerListener implements Listener
{
if (event.getView().getTopInventory().getType() == InventoryType.PLAYER)
{
- final IUser user = ess.getUser((Player)event.getPlayer());
+ final IUser user = ess.getUserMap().getUser((Player)event.getPlayer());
user.setInvSee(false);
}
}
diff --git a/Essentials/src/net/ess3/listener/TntExplodeListener.java b/Essentials/src/net/ess3/listener/TntExplodeListener.java
deleted file mode 100644
index 66ef5c284..000000000
--- a/Essentials/src/net/ess3/listener/TntExplodeListener.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package net.ess3.listener;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-import net.ess3.api.IEssentials;
-import org.bukkit.entity.LivingEntity;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.Listener;
-import org.bukkit.event.entity.EntityExplodeEvent;
-
-
-public class TntExplodeListener implements Listener, Runnable
-{
- private final transient IEssentials ess;
- private transient AtomicBoolean enabled = new AtomicBoolean(false);
- private transient int timer = -1;
-
- public TntExplodeListener(final IEssentials ess)
- {
- super();
- this.ess = ess;
- }
-
- public void enable()
- {
- if (enabled.compareAndSet(false, true))
- {
- timer = ess.scheduleSyncDelayedTask(this, 1000);
- return;
- }
- if (timer != -1)
- {
- ess.getServer().getScheduler().cancelTask(timer);
- timer = ess.scheduleSyncDelayedTask(this, 1000);
- }
- }
-
- @EventHandler(priority = EventPriority.LOW)
- public void onEntityExplode(final EntityExplodeEvent event)
- {
- if (!enabled.get())
- {
- return;
- }
- if (event.getEntity() instanceof LivingEntity)
- {
- return;
- }
- if (event.blockList().size() < 1)
- {
- return;
- }
- event.setCancelled(true);
- event.getLocation().getWorld().createExplosion(event.getLocation(), 0F);
- }
-
- @Override
- public void run()
- {
- enabled.set(false);
- }
-}
diff --git a/Essentials/src/net/ess3/metrics/Metrics.java b/Essentials/src/net/ess3/metrics/Metrics.java
index 415938dea..643d86d30 100644
--- a/Essentials/src/net/ess3/metrics/Metrics.java
+++ b/Essentials/src/net/ess3/metrics/Metrics.java
@@ -30,11 +30,7 @@ import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.*;
import java.util.logging.Level;
-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;
+import net.ess3.api.server.Plugin;
/**
@@ -193,7 +189,7 @@ public class Metrics
}
// Begin hitting the server with glorious data
- taskId = plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable()
+ taskId = plugin.scheduleAsyncRepeatingTask(new Runnable()
{
private boolean firstPost = true;
@@ -207,7 +203,7 @@ public class Metrics
// Disable Task, if it is running and the server owner decided to opt-out
if (isOptOut() && taskId > 0)
{
- plugin.getServer().getScheduler().cancelTask(taskId);
+ plugin.cancelTask(taskId);
taskId = -1;
}
}
@@ -223,7 +219,7 @@ public class Metrics
}
catch (IOException e)
{
- Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage());
+ plugin.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage());
}
}
}, 0, PING_INTERVAL * 1200);
@@ -246,12 +242,12 @@ public class Metrics
}
catch (IOException ex)
{
- Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
+ plugin.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
return true;
}
catch (InvalidConfigurationException ex)
{
- Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
+ plugin.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
return true;
}
return configuration.getBoolean("opt-out", false);
@@ -304,7 +300,7 @@ public class Metrics
// Disable Task, if it is running
if (taskId >= 0)
{
- this.plugin.getServer().getScheduler().cancelTask(taskId);
+ this.plugin.cancelTask(taskId);
taskId = -1;
}
}
@@ -323,7 +319,7 @@ public class Metrics
data.append(encode("guid")).append('=').append(encode(guid));
encodeDataPair(data, "version", description.getVersion());
encodeDataPair(data, "server", Bukkit.getVersion());
- encodeDataPair(data, "players", Integer.toString(Bukkit.getServer().getOnlinePlayers().length));
+ encodeDataPair(data, "players", Integer.toString(plugin.getServer().getOnlinePlayers().length));
encodeDataPair(data, "revision", String.valueOf(REVISION));
// If we're pinging, append it
diff --git a/Essentials/src/net/ess3/metrics/MetricsListener.java b/Essentials/src/net/ess3/metrics/MetricsListener.java
index 1db463a46..0a6ff6628 100644
--- a/Essentials/src/net/ess3/metrics/MetricsListener.java
+++ b/Essentials/src/net/ess3/metrics/MetricsListener.java
@@ -24,7 +24,7 @@ public class MetricsListener implements Listener
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerJoin(final PlayerJoinEvent event)
{
- /*final IUser player = ess.getUser(event.getPlayer());
+ /*final IUser player = ess.getUserMap().getUser(event.getPlayer());
if (ess.getSettings().isMetricsEnabled() == false && (player.isAuthorized("essentials.essentials") || player.isAuthorized("bukkit.broadcast.admin")))
{
player.sendMessage("PluginMetrics collects minimal statistic data, starting in about 5 minutes.");
diff --git a/Essentials/src/net/ess3/permissions/Permissions.java b/Essentials/src/net/ess3/permissions/Permissions.java
index f80a79f8d..1571b1107 100644
--- a/Essentials/src/net/ess3/permissions/Permissions.java
+++ b/Essentials/src/net/ess3/permissions/Permissions.java
@@ -85,6 +85,7 @@ public enum Permissions implements IPermission
TPOHERE,
UNLIMITED_OTHERS,
WARP_LIST(Permission.Default.TRUE),
+ WARP_HIDDEN,
WARP_OTHERS,
VANISH_SEE_OTHERS;
private static final String base = "essentials.";
diff --git a/Essentials/src/net/ess3/ranks/GMGroups.java b/Essentials/src/net/ess3/ranks/GMGroups.java
index 650ebac11..ef5ff0a60 100644
--- a/Essentials/src/net/ess3/ranks/GMGroups.java
+++ b/Essentials/src/net/ess3/ranks/GMGroups.java
@@ -6,6 +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.Util;
import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
@@ -24,7 +25,7 @@ public class GMGroups implements IRanks {
@Override
public double getHealCooldown(IUser player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer());
if (handler == null)
{
return 0;
@@ -35,7 +36,7 @@ public class GMGroups implements IRanks {
@Override
public double getTeleportCooldown(IUser player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer());
if (handler == null)
{
return 0;
@@ -46,7 +47,7 @@ public class GMGroups implements IRanks {
@Override
public double getTeleportDelay(IUser player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer());
if (handler == null)
{
return 0;
@@ -57,7 +58,7 @@ public class GMGroups implements IRanks {
@Override
public String getPrefix(IUser player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer());
if (handler == null)
{
return null;
@@ -68,7 +69,7 @@ public class GMGroups implements IRanks {
@Override
public String getSuffix(IUser player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer());
if (handler == null)
{
return null;
@@ -79,7 +80,7 @@ public class GMGroups implements IRanks {
@Override
public int getHomeLimit(IUser player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer());
if (handler == null)
{
return 0;
@@ -104,7 +105,7 @@ public class GMGroups implements IRanks {
private String getRawChatFormat(final IUser player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer());
if (handler != null)
{
String chatformat = handler.getPermissionString(player.getName(), "chatformat");
@@ -122,7 +123,7 @@ public class GMGroups implements IRanks {
@Override
public String getMainGroup(IUser player)
{
- final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase());
+ final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer());
if (handler == null)
{
return null;
@@ -133,7 +134,7 @@ public class GMGroups implements IRanks {
@Override
public boolean inGroup(IUser player, String groupname)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getBase());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(((BukkitPlayer)player.getBase()).getPlayer());
if (handler == null)
{
return false;
diff --git a/Essentials/src/net/ess3/ranks/VaultGroups.java b/Essentials/src/net/ess3/ranks/VaultGroups.java
index d9558d62f..ab0a32755 100644
--- a/Essentials/src/net/ess3/ranks/VaultGroups.java
+++ b/Essentials/src/net/ess3/ranks/VaultGroups.java
@@ -6,6 +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.Util;
import net.milkbowl.vault.chat.Chat;
@@ -23,42 +24,42 @@ public class VaultGroups implements IRanks
public double getHealCooldown(IUser player)
{
Chat chat = ess.getServer().getServiceProvider(Chat.class);
- return chat.getPlayerInfoDouble(player.getBase(), "healcooldown", 0);
+ return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "healcooldown", 0);
}
@Override
public double getTeleportCooldown(IUser player)
{
Chat chat = ess.getServer().getServiceProvider(Chat.class);
- return chat.getPlayerInfoDouble(player.getBase(), "teleportcooldown", 0);
+ return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "teleportcooldown", 0);
}
@Override
public double getTeleportDelay(IUser player)
{
Chat chat = ess.getServer().getServiceProvider(Chat.class);
- return chat.getPlayerInfoDouble(player.getBase(), "teleportdelay", 0);
+ return chat.getPlayerInfoDouble(((BukkitPlayer)player.getBase()).getPlayer(), "teleportdelay", 0);
}
@Override
public String getPrefix(IUser player)
{
Chat chat = ess.getServer().getServiceProvider(Chat.class);
- return chat.getPlayerPrefix(player.getBase());
+ return chat.getPlayerPrefix(((BukkitPlayer)player.getBase()).getPlayer());
}
@Override
public String getSuffix(IUser player)
{
Chat chat = ess.getServer().getServiceProvider(Chat.class);
- return chat.getPlayerSuffix(player.getBase());
+ return chat.getPlayerSuffix(((BukkitPlayer)player.getBase()).getPlayer());
}
@Override
public int getHomeLimit(IUser player)
{
Chat chat = ess.getServer().getServiceProvider(Chat.class);
- return chat.getPlayerInfoInteger(player.getBase(), "homes", 0);
+ return chat.getPlayerInfoInteger(((BukkitPlayer)player.getBase()).getPlayer(), "homes", 0);
}
@Override
@@ -79,7 +80,7 @@ public class VaultGroups implements IRanks
private String getRawChatFormat(final IUser player)
{
Chat chat = ess.getServer().getServiceProvider(Chat.class);
- String chatformat = chat.getPlayerInfoString(player.getBase(), "chatformat", "");
+ String chatformat = chat.getPlayerInfoString(((BukkitPlayer)player.getBase()).getPlayer(), "chatformat", "");
if (chatformat != null && !chatformat.isEmpty())
{
return chatformat;
@@ -95,14 +96,14 @@ public class VaultGroups implements IRanks
public String getMainGroup(IUser player)
{
Chat chat = ess.getServer().getServiceProvider(Chat.class);
- return chat.getPrimaryGroup(player.getBase());
+ return chat.getPrimaryGroup(((BukkitPlayer)player.getBase()).getPlayer());
}
@Override
public boolean inGroup(IUser player, String groupname)
{
Chat chat = ess.getServer().getServiceProvider(Chat.class);
- for (String group : chat.getPlayerGroups(player.getBase()))
+ for (String group : chat.getPlayerGroups(((BukkitPlayer)player.getBase()).getPlayer()))
{
if (group.equalsIgnoreCase(groupname))
{
diff --git a/Essentials/src/net/ess3/settings/SpawnsHolder.java b/Essentials/src/net/ess3/settings/SpawnsHolder.java
index 4f43e5ab9..bca2e8815 100644
--- a/Essentials/src/net/ess3/settings/SpawnsHolder.java
+++ b/Essentials/src/net/ess3/settings/SpawnsHolder.java
@@ -224,7 +224,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
public void onPlayerRespawn(final PlayerRespawnEvent event)
{
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
boolean respawnAtHome = false;
final ISettings settings = ess.getSettings();
@@ -264,7 +264,7 @@ public class SpawnsHolder extends AsyncStorageObjectHolder<Spawns> implements IE
public void onPlayerJoin(final PlayerJoinEvent event)
{
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
if (user.hasPlayedBefore())
{
diff --git a/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java b/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java
index 47d6bf85a..9dc010640 100644
--- a/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java
+++ b/Essentials/src/net/ess3/storage/AbstractDelayedYamlFileReader.java
@@ -83,7 +83,7 @@ public abstract class AbstractDelayedYamlFileReader<T extends StorageObject> imp
catch (IOException ex)
{
onException(ex);
- if (plugin.getSettings() == null || plugin.getSettings().isDebug())
+ if (ess.getSettings() == null || ess.getSettings().isDebug())
{
Bukkit.getLogger().log(Level.INFO, "File not found: " + file.toString());
}
diff --git a/Essentials/src/net/ess3/storage/BukkitConstructor.java b/Essentials/src/net/ess3/storage/BukkitConstructor.java
index 81fe3daa2..23a88325f 100644
--- a/Essentials/src/net/ess3/storage/BukkitConstructor.java
+++ b/Essentials/src/net/ess3/storage/BukkitConstructor.java
@@ -5,8 +5,11 @@ import java.util.List;
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 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;
@@ -18,9 +21,9 @@ import org.yaml.snakeyaml.nodes.*;
public class BukkitConstructor extends Constructor
{
private final transient Pattern NUMPATTERN = Pattern.compile("\\d+");
- private final transient IPlugin plugin;
+ private final transient Plugin plugin;
- public BukkitConstructor(final Class clazz, final IPlugin plugin)
+ public BukkitConstructor(final Class clazz, final Plugin plugin)
{
super(clazz);
this.plugin = plugin;
@@ -41,11 +44,11 @@ public class BukkitConstructor extends Constructor
if (NUMPATTERN.matcher(val).matches())
{
final int typeId = Integer.parseInt(val);
- mat = Material.getMaterial(typeId);
+ mat = Material.get(typeId);
}
else
{
- mat = Material.matchMaterial(val);
+ mat = Material.match(val);
}
return mat;
}
@@ -103,11 +106,11 @@ public class BukkitConstructor extends Constructor
if (NUMPATTERN.matcher(split2[0]).matches())
{
final int typeId = Integer.parseInt(split2[0]);
- mat = Material.getMaterial(typeId);
+ mat = Material.get(typeId);
}
else
{
- mat = Material.matchMaterial(split2[0]);
+ mat = Material.match(split2[0]);
}
if (mat == null)
{
@@ -123,7 +126,7 @@ public class BukkitConstructor extends Constructor
{
size = Integer.parseInt(split1[1]);
}
- final ItemStack stack = new ItemStack(mat, size, data);
+ final ItemStack stack = ItemStack.create(mat, size, data);
if (split1.length > 2)
{
for (int i = 2; i < split1.length; i++)
diff --git a/Essentials/src/net/ess3/storage/StoredLocation.java b/Essentials/src/net/ess3/storage/StoredLocation.java
index 00ace6791..974204bf6 100644
--- a/Essentials/src/net/ess3/storage/StoredLocation.java
+++ b/Essentials/src/net/ess3/storage/StoredLocation.java
@@ -1,16 +1,14 @@
package net.ess3.storage;
-import net.ess3.api.server.World;
-import net.ess3.api.server.Location;
import java.lang.ref.WeakReference;
-import java.util.UUID;
+import net.ess3.api.server.Location;
+import net.ess3.api.server.World;
public class StoredLocation
{
private WeakReference<Location> location;
private final String worldname;
- private UUID worldUID = null;
private final double x;
private final double y;
private final double z;
@@ -21,7 +19,6 @@ public class StoredLocation
{
location = new WeakReference<Location>(loc);
worldname = loc.getWorld().getName();
- worldUID = loc.getWorld().getUID();
x = loc.getX();
y = loc.getY();
z = loc.getZ();
@@ -55,20 +52,7 @@ public class StoredLocation
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 = Location.create(world, getX(), getY(), getZ(), getYaw(), getPitch());
+ loc = Location.create(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 dc5c24d91..603765e69 100644
--- a/Essentials/src/net/ess3/storage/YamlStorageReader.java
+++ b/Essentials/src/net/ess3/storage/YamlStorageReader.java
@@ -1,6 +1,6 @@
package net.ess3.storage;
-import net.ess3.api.server.IPlugin;
+import net.ess3.api.server.Plugin;
import java.io.Reader;
import java.lang.reflect.Field;
import java.util.*;
@@ -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 IPlugin plugin;
+ private transient final Plugin plugin;
- public YamlStorageReader(final Reader reader, final IPlugin plugin)
+ public YamlStorageReader(final Reader reader, final Plugin plugin)
{
this.reader = reader;
this.plugin = plugin;
diff --git a/Essentials/src/net/ess3/user/User.java b/Essentials/src/net/ess3/user/User.java
index 061f006db..b959e36bc 100644
--- a/Essentials/src/net/ess3/user/User.java
+++ b/Essentials/src/net/ess3/user/User.java
@@ -718,7 +718,7 @@ public class User extends UserBase implements IUser
{
for (Player p : ess.getServer().getOnlinePlayers())
{
- if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(ess.getUser(p)))
+ if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(ess.getUserMap().getUser(p)))
{
p.hidePlayer(getBase());
}
@@ -750,6 +750,4 @@ public class User extends UserBase implements IUser
final boolean set = !vanished;
this.setVanished(set);
}
-
-
}
diff --git a/Essentials/src/net/ess3/user/UserData.java b/Essentials/src/net/ess3/user/UserData.java
index 3582eaa89..20fb9abb7 100644
--- a/Essentials/src/net/ess3/user/UserData.java
+++ b/Essentials/src/net/ess3/user/UserData.java
@@ -1,10 +1,10 @@
package net.ess3.user;
-import net.ess3.api.server.Material;
-import net.ess3.storage.*;
import java.util.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import net.ess3.api.server.Material;
+import net.ess3.storage.*;
diff --git a/Essentials/src/net/ess3/user/UserMap.java b/Essentials/src/net/ess3/user/UserMap.java
index cc34536b3..3a8e3684b 100644
--- a/Essentials/src/net/ess3/user/UserMap.java
+++ b/Essentials/src/net/ess3/user/UserMap.java
@@ -1,15 +1,17 @@
package net.ess3.user;
import java.io.File;
+import java.util.Collections;
+import java.util.LinkedHashSet;
import java.util.Locale;
import java.util.Set;
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 org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
+import net.ess3.utils.Util;
public class UserMap extends StorageObjectMap<IUser> implements IUserMap
@@ -94,4 +96,158 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
}
return user;
}
+
+ @Override
+ public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException
+ {
+ final Set<IUser> users = matchUsers(name, includeHidden, includeOffline);
+ if (users == null || users.isEmpty())
+ {
+ return null;
+ }
+ else
+ {
+ if (users.size() > 1)
+ {
+ throw new TooManyMatchesException();
+ }
+ else
+ {
+ return users.iterator().next();
+ }
+ }
+ }
+
+ @Override
+ public Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline)
+ {
+ final String colorlessName = Util.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());
+ for (String searchString : search)
+ {
+ if (searchString.isEmpty())
+ {
+ continue;
+ }
+
+ if (searchString.startsWith(nicknamePrefix))
+ {
+ searchString = searchString.substring(nicknamePrefix.length());
+ }
+ searchString = searchString.toLowerCase(Locale.ENGLISH);
+ final boolean multimatching = searchString.endsWith("*");
+ if (multimatching)
+ {
+ searchString = searchString.substring(0, searchString.length() - 1);
+ }
+ Player match = null;
+ for (Player player : ess.getServer().getOnlinePlayers())
+ {
+ if (player.getName().equalsIgnoreCase(searchString)
+ && (includeHidden || (includeOffline && player.getUser().isHidden())))
+ {
+ match = player;
+ break;
+ }
+ }
+ if (match != null)
+ {
+ if (multimatching || multisearch)
+ {
+ result.add(match.getUser());
+ }
+ else
+ {
+ return Collections.singleton(match.getUser());
+ }
+ }
+ for (Player player : ess.getServer().getOnlinePlayers())
+ {
+ final String nickname = player.getUser().getData().getNickname();
+ if (nickname != null && !nickname.isEmpty()
+ && nickname.equalsIgnoreCase(searchString)
+ && (includeHidden || (includeOffline && player.getUser().isHidden())))
+ {
+ if (multimatching || multisearch)
+ {
+ result.add(player.getUser());
+ }
+ else
+ {
+ return Collections.singleton(player.getUser());
+ }
+ }
+ }
+ if (includeOffline)
+ {
+ for (String playerName : getAllUniqueUsers())
+ {
+ if (playerName.equals(searchString))
+ {
+ match = getUser(playerName);
+ break;
+ }
+ }
+ if (match != null)
+ {
+ if (multimatching || multisearch)
+ {
+ result.add(match.getUser());
+ }
+ else
+ {
+ return Collections.singleton(match.getUser());
+ }
+ }
+ }
+ if (multimatching || match == null)
+ {
+ for (Player player : ess.getServer().getOnlinePlayers())
+ {
+ if (player.getName().toLowerCase(Locale.ENGLISH).startsWith(searchString)
+ && (includeHidden || (includeOffline && player.getUser().isHidden())))
+ {
+ result.add(player.getUser());
+ break;
+ }
+ final String nickname = player.getUser().getData().getNickname();
+ if (nickname != null && !nickname.isEmpty()
+ && nickname.toLowerCase(Locale.ENGLISH).startsWith(searchString)
+ && (includeHidden || (includeOffline && player.getUser().isHidden())))
+ {
+ result.add(player.getUser());
+ break;
+ }
+ }
+ if (includeOffline)
+ {
+ for (String playerName : getAllUniqueUsers())
+ {
+ if (playerName.startsWith(searchString))
+ {
+ result.add(getUser(playerName));
+ break;
+ }
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ private String getNickNamePrefix()
+ {
+ ess.getSettings().acquireReadLock();
+ try
+ {
+ return ess.getSettings().getData().getChat().getNicknamePrefix();
+ }
+ finally
+ {
+ ess.getSettings().unlock();
+ }
+ }
}
diff --git a/Essentials/src/net/ess3/utils/textreader/TextPager.java b/Essentials/src/net/ess3/utils/textreader/TextPager.java
index c1ca8e939..099d9bbb7 100644
--- a/Essentials/src/net/ess3/utils/textreader/TextPager.java
+++ b/Essentials/src/net/ess3/utils/textreader/TextPager.java
@@ -3,6 +3,9 @@ package net.ess3.utils.textreader;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import net.ess3.I18n;
+import static net.ess3.I18n._;
+import net.ess3.api.server.CommandSender;
public class TextPager
diff --git a/Essentials/test/com/earth2me/essentials/testserver/World.java b/Essentials/test/com/earth2me/essentials/testserver/World.java
deleted file mode 100644
index d1994c479..000000000
--- a/Essentials/test/com/earth2me/essentials/testserver/World.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.earth2me.essentials.testserver;
-
-import net.ess3.api.server.Location;
-import org.bukkit.TreeType;
-
-public class World 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.");
- }
-
-}
diff --git a/Essentials/test/net/ess3/EconomyTest.java b/Essentials/test/net/ess3/EconomyTest.java
index 21669d7e6..74554a698 100644
--- a/Essentials/test/net/ess3/EconomyTest.java
+++ b/Essentials/test/net/ess3/EconomyTest.java
@@ -24,7 +24,7 @@ public class EconomyTest extends EssentialsTest
assertFalse("NPC does not exists", ess.getEconomy().playerExists(NPCNAME));
assertTrue("Create NPC", ess.getEconomy().createNPC(NPCNAME));
assertTrue("NPC exists", ess.getEconomy().playerExists(NPCNAME));
- assertNull("NPC can not be accessed", ess.getUser(NPCNAME));
+ assertNull("NPC can not be accessed", ess.getUserMap().getUser(NPCNAME));
try
{
ess.getEconomy().removeNPC(NPCNAME);
diff --git a/Essentials/test/com/earth2me/essentials/EssentialsTest.java b/Essentials/test/net/ess3/EssentialsTest.java
index 39ce92d25..7257a33ad 100644
--- a/Essentials/test/com/earth2me/essentials/EssentialsTest.java
+++ b/Essentials/test/net/ess3/EssentialsTest.java
@@ -1,14 +1,15 @@
-package com.earth2me.essentials;
+package net.ess3;
-import com.earth2me.essentials.testserver.Plugin;
-import com.earth2me.essentials.testserver.Server;
import java.util.logging.Logger;
import junit.framework.TestCase;
-import net.ess3.Essentials;
+import net.ess3.testserver.TestPlugin;
+import net.ess3.testserver.TestServer;
+import net.ess3.testserver.TestWorld;
public abstract class EssentialsTest extends TestCase {
- protected final transient Server server;
- protected final transient Plugin plugin;
+ protected final transient TestServer server;
+ protected final transient TestPlugin plugin;
+ protected final transient TestWorld world;
protected final transient Logger logger;
protected final transient Essentials ess;
@@ -17,8 +18,9 @@ public abstract class EssentialsTest extends TestCase {
{
super(testName);
logger = Logger.getLogger(this.getName());
- server = new Server();
- plugin = new Plugin();
+ server = new TestServer();
+ world = (TestWorld)server.getWorlds().get(0);
+ plugin = new TestPlugin();
ess = new Essentials(server, logger, plugin);
Essentials.testing = true;
ess.onEnable();
diff --git a/Essentials/test/net/ess3/StorageTest.java b/Essentials/test/net/ess3/StorageTest.java
index aac394bf6..4ba1e6400 100644
--- a/Essentials/test/net/ess3/StorageTest.java
+++ b/Essentials/test/net/ess3/StorageTest.java
@@ -1,16 +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.bukkit.World;
-import org.bukkit.World.Environment;
import org.junit.Test;
@@ -65,8 +62,6 @@ public class StorageTest extends EssentialsTest
{
try
{
- FakeServer server = new FakeServer();
- World world = server.createWorld("testWorld", Environment.NORMAL);
ExecuteTimer ext = new ExecuteTimer();
ext.start();
final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]);
@@ -80,7 +75,7 @@ public class StorageTest extends EssentialsTest
for (int j = 0; j < 10000; j++)
{
- userdata.getHomes().put("home", new net.ess3.storage.StoredLocation(new Location(world, j, j, j)));
+ userdata.getHomes().put("home", new net.ess3.storage.StoredLocation(Location.create(world, j, j, j)));
}
ext.mark("change home 10000 times");
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -123,7 +118,7 @@ public class StorageTest extends EssentialsTest
OfflinePlayer base1 = server.createPlayer("testPlayer1", ess);
server.addPlayer(base1);
ext.mark("fake user created");
- UserData user = (UserData)ess.getUser(base1);
+ UserData user = (UserData)ess.getUserMap().getUser(base1);
ext.mark("load empty user");
for (int j = 0; j < 1; j++)
{
diff --git a/Essentials/test/net/ess3/UserTest.java b/Essentials/test/net/ess3/UserTest.java
index 3baa420df..220f56f3c 100644
--- a/Essentials/test/net/ess3/UserTest.java
+++ b/Essentials/test/net/ess3/UserTest.java
@@ -17,7 +17,7 @@ public class UserTest extends EssentialsTest
super(testName);
server.addPlayer("testPlayer1");
- base1 = ess.getUser("testPlayer1");
+ base1 = ess.getUserMap().getUser("testPlayer1");
}
private void should(String what)
@@ -28,16 +28,16 @@ public class UserTest extends EssentialsTest
/*public void testUpdate()
{
OfflinePlayer base1alt = server.createPlayer(base1.getName(), ess);
- assertEquals(base1alt, ess.getUser(base1alt).getBase());
+ assertEquals(base1alt, ess.getUserMap().getUser(base1alt).getBase());
}
public void testHome()
{
- IUser user = ess.getUser(base1);
+ IUser user = ess.getUserMap().getUser(base1);
Location loc = base1.getLocation();
user.setHome();
OfflinePlayer base2 = server.createPlayer(base1.getName(), ess);
- IUser user2 = ess.getUser(base2);
+ IUser user2 = ess.getUserMap().getUser(base2);
Location home = user2.getHome(loc);
assertNotNull(home);
@@ -52,7 +52,7 @@ public class UserTest extends EssentialsTest
/*public void testMoney()
{
should("properly set, take, give, and get money");
- IUser user = ess.getUser(base1);
+ IUser user = ess.getUserMap().getUser(base1);
double i;
user.setMoney(i = 100.5);
user.takeMoney(50);
@@ -65,7 +65,7 @@ public class UserTest extends EssentialsTest
/*public void testGetGroup()
{
should("return the default group");
- IUser user = ess.getUser(base1);
+ IUser user = ess.getUserMap().getUser(base1);
//assertEquals(user.getGroup(), "default");
}*/
diff --git a/Essentials/test/com/earth2me/essentials/testserver/Player.java b/Essentials/test/net/ess3/testserver/TestPlayer.java
index 6e18abb88..70b8d0e11 100644
--- a/Essentials/test/com/earth2me/essentials/testserver/Player.java
+++ b/Essentials/test/net/ess3/testserver/TestPlayer.java
@@ -1,9 +1,9 @@
-package com.earth2me.essentials.testserver;
+package net.ess3.testserver;
import net.ess3.api.IUser;
import net.ess3.api.server.*;
-public class Player implements Player {
+public class TestPlayer implements Player {
@Override
public IUser getUser()
@@ -42,7 +42,7 @@ public class Player implements Player {
}
@Override
- public World getWorld()
+ public TestWorld getWorld()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -149,4 +149,52 @@ public class Player implements Player {
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.");
+ }
+
}
diff --git a/Essentials/test/com/earth2me/essentials/testserver/Plugin.java b/Essentials/test/net/ess3/testserver/TestPlugin.java
index cb5334da5..9645c7902 100644
--- a/Essentials/test/com/earth2me/essentials/testserver/Plugin.java
+++ b/Essentials/test/net/ess3/testserver/TestPlugin.java
@@ -1,10 +1,13 @@
-package com.earth2me.essentials.testserver;
+package net.ess3.testserver;
-import net.ess3.api.server.IPlugin;
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;
-public class Plugin implements IPlugin {
+public class TestPlugin implements Plugin {
@Override
public int scheduleAsyncDelayedTask(Runnable run)
@@ -66,4 +69,28 @@ public class Plugin implements IPlugin {
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.");
+ }
+
}
diff --git a/Essentials/test/com/earth2me/essentials/testserver/Server.java b/Essentials/test/net/ess3/testserver/TestServer.java
index eb9a74bdb..b46d13dd8 100644
--- a/Essentials/test/com/earth2me/essentials/testserver/Server.java
+++ b/Essentials/test/net/ess3/testserver/TestServer.java
@@ -1,16 +1,16 @@
-package com.earth2me.essentials.testserver;
+package net.ess3.testserver;
-import net.ess3.api.server.CommandSender;
-import net.ess3.api.server.Player;
-import net.ess3.api.server.IServer;
-import net.ess3.api.server.World;
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 Server implements IServer {
+public class TestServer implements Server {
- public Server()
+ public TestServer()
{
}
@@ -19,7 +19,7 @@ public class Server implements IServer {
@Override
public List<World> getWorlds()
{
- return Collections.<World>singletonList(new World());
+ return Collections.<World>singletonList(new TestWorld());
}
@Override
diff --git a/Essentials/test/net/ess3/testserver/TestWorld.java b/Essentials/test/net/ess3/testserver/TestWorld.java
new file mode 100644
index 000000000..ce258004d
--- /dev/null
+++ b/Essentials/test/net/ess3/testserver/TestWorld.java
@@ -0,0 +1,77 @@
+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/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java b/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java
index ae8fce4a1..f3ce3abaf 100644
--- a/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java
+++ b/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java
@@ -71,7 +71,7 @@ public abstract class EssentialsChatPlayer implements Listener
{
if (sender instanceof Player)
{
- charge.charge(ess.getUser((Player)sender));
+ charge.charge(ess.getUserMap().getUser((Player)sender));
}
}
diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEventListener.java b/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEventListener.java
index be7b20ba6..f248a21a4 100644
--- a/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEventListener.java
+++ b/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEventListener.java
@@ -35,8 +35,8 @@ public class EssentialsLocalChatEventListener implements Listener
for (Player onlinePlayer : server.getOnlinePlayers())
{
String type = _("chatTypeLocal");
- final IUser user = ess.getUser(onlinePlayer);
- if (user.isIgnoringPlayer(ess.getUser(sender)))
+ final IUser user = ess.getUserMap().getUser(onlinePlayer);
+ if (user.isIgnoringPlayer(ess.getUserMap().getUser(sender)))
{
continue;
}
diff --git a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java
index dfe96df35..5c2fa1d7e 100644
--- a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java
+++ b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java
@@ -28,7 +28,7 @@ public class EssentialsChatPlayerListenerLowest extends EssentialsChatPlayer
{
return;
}
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
final ChatStore chatStore = new ChatStore(ess, user, getChatType(event.getMessage()));
setChatStore(event, chatStore);
formatChat(event, chatStore);
diff --git a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java
index 14554e3a9..5c12f09c6 100644
--- a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java
+++ b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java
@@ -45,7 +45,7 @@ public class EssentialsGeoIPPlayerListener implements Listener, IReload
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerJoin(final PlayerJoinEvent event)
{
- final IUser u = ess.getUser(event.getPlayer());
+ final IUser u = ess.getUserMap().getUser(event.getPlayer());
if (Permissions.GEOIP_HIDE.isAuthorized(u))
{
return;
@@ -97,7 +97,7 @@ public class EssentialsGeoIPPlayerListener implements Listener, IReload
{
for (Player player : event.getPlayer().getServer().getOnlinePlayers())
{
- final IUser user = ess.getUser(player);
+ final IUser user = ess.getUserMap().getUser(player);
if (Permissions.GEOIP_SHOW.isAuthorized(user))
{
user.sendMessage(_("geoipJoinFormat", user.getDisplayName(), builder.toString()));
diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java b/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java
index c3fcfe441..b500c3ea3 100644
--- a/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java
+++ b/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java
@@ -48,7 +48,7 @@ public class EssentialsConnect
LOGGER.log(Level.WARNING, warnMessage);
for (Player p : ess.getServer().getOnlinePlayers())
{
- final IUser alertUser = ess.getUser(p);
+ final IUser alertUser = ess.getUserMap().getUser(p);
if (Permissions.ALERTS.isAuthorized(alertUser))
{
alertUser.sendMessage(warnMessage);
diff --git a/EssentialsSigns/src/net/ess3/signs/EssentialsSign.java b/EssentialsSigns/src/net/ess3/signs/EssentialsSign.java
index 59c733981..3a9f9f903 100644
--- a/EssentialsSigns/src/net/ess3/signs/EssentialsSign.java
+++ b/EssentialsSigns/src/net/ess3/signs/EssentialsSign.java
@@ -1,8 +1,5 @@
-<<<<<<< HEAD:EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSign.java
-package com.earth2me.essentials.signs;
-=======
package net.ess3.signs;
->>>>>>> master:EssentialsSigns/src/net/ess3/signs/EssentialsSign.java
+
import net.ess3.api.ChargeException;
import static net.ess3.I18n._;
@@ -35,7 +32,7 @@ public class EssentialsSign
public final boolean onSignCreate(final SignChangeEvent event, final IEssentials ess)
{
final ISign sign = new EventSign(event);
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
if (!SignsPermissions.getCreatePermission(signName).isAuthorized(user))
{
// Return true, so other plugins can use the same sign title, just hope
@@ -82,7 +79,7 @@ public class EssentialsSign
public final boolean onSignInteract(final Block block, final Player player, final IEssentials ess)
{
final ISign sign = new BlockSign(block);
- final IUser user = ess.getUser(player);
+ final IUser user = ess.getUserMap().getUser(player);
try
{
return SignsPermissions.getUsePermission(signName).isAuthorized(user)
@@ -103,7 +100,7 @@ public class EssentialsSign
public final boolean onSignBreak(final Block block, final Player player, final IEssentials ess)
{
final ISign sign = new BlockSign(block);
- final IUser user = ess.getUser(player);
+ final IUser user = ess.getUserMap().getUser(player);
try
{
return SignsPermissions.getBreakPermission(signName).isAuthorized(user)
@@ -133,7 +130,7 @@ public class EssentialsSign
public final boolean onBlockPlace(final Block block, final Player player, final IEssentials ess)
{
- final IUser user = ess.getUser(player);
+ final IUser user = ess.getUserMap().getUser(player);
try
{
return onBlockPlace(block, user, getUsername(user), ess);
@@ -151,7 +148,7 @@ public class EssentialsSign
public final boolean onBlockInteract(final Block block, final Player player, final IEssentials ess)
{
- final IUser user = ess.getUser(player);
+ final IUser user = ess.getUserMap().getUser(player);
try
{
return onBlockInteract(block, user, getUsername(user), ess);
@@ -169,7 +166,7 @@ public class EssentialsSign
public final boolean onBlockBreak(final Block block, final Player player, final IEssentials ess)
{
- final IUser user = ess.getUser(player);
+ final IUser user = ess.getUserMap().getUser(player);
try
{
return onBlockBreak(block, user, getUsername(user), ess);
diff --git a/EssentialsSigns/src/net/ess3/signs/SignBlockListener.java b/EssentialsSigns/src/net/ess3/signs/SignBlockListener.java
index 31cdfc970..f44f086c9 100644
--- a/EssentialsSigns/src/net/ess3/signs/SignBlockListener.java
+++ b/EssentialsSigns/src/net/ess3/signs/SignBlockListener.java
@@ -87,7 +87,7 @@ public class SignBlockListener implements Listener
{
return;
}
- IUser user = ess.getUser(event.getPlayer());
+ IUser user = ess.getUserMap().getUser(event.getPlayer());
for (int i = 0; i < 4; i++)
{
diff --git a/EssentialsXMPP/src/net/ess3/xmpp/Commandxmpp.java b/EssentialsXMPP/src/net/ess3/xmpp/Commandxmpp.java
index 88e1d9810..0881aa706 100644
--- a/EssentialsXMPP/src/net/ess3/xmpp/Commandxmpp.java
+++ b/EssentialsXMPP/src/net/ess3/xmpp/Commandxmpp.java
@@ -24,7 +24,7 @@ public class Commandxmpp extends EssentialsCommand
else
{
final String message = getFinalArg(args, 1);
- final String senderName = sender instanceof Player ? ess.getUser((Player)sender).getDisplayName() : Console.NAME;
+ final String senderName = sender instanceof Player ? ess.getUserMap().getUser((Player)sender).getDisplayName() : Console.NAME;
sender.sendMessage("[" + senderName + ">" + address + "] " + message);
if (!EssentialsXMPP.getInstance().sendMessage(address, "[" + senderName + "] " + message))
{
diff --git a/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPP.java b/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPP.java
index 74ab09fd5..f62f3c3f5 100644
--- a/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPP.java
+++ b/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPP.java
@@ -92,7 +92,7 @@ public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP
public IUser getUserByAddress(final String address)
{
String username = instance.users.getUserByAddress(address);
- return username == null ? null : ess.getUser(username);
+ return username == null ? null : ess.getUserMap().getUser(username);
}
@Override
diff --git a/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPPPlayerListener.java b/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPPPlayerListener.java
index 4880aead7..de8a62405 100644
--- a/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPPPlayerListener.java
+++ b/EssentialsXMPP/src/net/ess3/xmpp/EssentialsXMPPPlayerListener.java
@@ -23,21 +23,21 @@ class EssentialsXMPPPlayerListener implements Listener
@EventHandler(priority= EventPriority.MONITOR)
public void onPlayerJoin(final PlayerJoinEvent event)
{
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
sendMessageToSpyUsers("Player " + user.getDisplayName() + " joined the game");
}
@EventHandler(priority= EventPriority.MONITOR)
public void onPlayerChat(final PlayerChatEvent event)
{
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
sendMessageToSpyUsers(String.format(event.getFormat(), user.getDisplayName(), event.getMessage()));
}
@EventHandler(priority= EventPriority.MONITOR)
public void onPlayerQuit(final PlayerQuitEvent event)
{
- final IUser user = ess.getUser(event.getPlayer());
+ final IUser user = ess.getUserMap().getUser(event.getPlayer());
sendMessageToSpyUsers("Player " + user.getDisplayName() + " left the game");
}