1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-09-06 12:40:45 +02:00

Compare commits

...

3024 Commits

Author SHA1 Message Date
ementalo
fde2eb0757 Travis notifications for slack 2015-04-12 14:46:09 +01:00
ementalo
84856d996e Remove help 2015-04-11 22:33:49 +01:00
ementalo
9e6c686c29 Change namespace from com.earth2me to org.mcess - net.ess3.api changes still required 2015-04-11 21:47:56 +01:00
ementalo
ce8313bd68 Remove xmpp 2015-04-10 23:22:14 +01:00
ementalo
1020521190 Remove kittycannon 2015-04-10 23:03:33 +01:00
ementalo
47d49f68a9 Removed unlimited functionality 2015-04-10 22:53:55 +01:00
ementalo
5c1445e6be Remove tree and big tree 2015-04-10 22:46:17 +01:00
ementalo
0fe601f353 Remove Backup functionality 2015-04-10 22:40:58 +01:00
ementalo
7e1a36fb95 Remove Lombok 2015-04-09 00:29:59 +01:00
KHobbits
a97af4aa6f Unrequired Dependacy 2014-09-06 17:22:25 +01:00
KHobbits
33fe9ecb34 Merge branch '2.x' of github.com:essentials/Essentials into 2.x 2014-09-03 00:21:42 +01:00
KHobbits
c2ab179f42 rework /seen to be a little stricter on argument matching. 2014-08-18 21:00:03 +01:00
md_5
432a5f3baa Fix missed cases from previous user iteration optimizations. 2014-08-16 19:04:13 +10:00
KHobbits
687f0f040f Make sure we close any open inventories of players who leave. 2014-08-14 01:58:17 +01:00
KHobbits
b193daa711 Use quicker ban lookup to reduce /seen lag. 2014-08-14 01:50:31 +01:00
KHobbits
3133dc266a Add paging to mail.
Support aliases in rule and baltop output.
2014-08-11 19:03:24 +01:00
KHobbits
ff487418ea Add mailFormat TL key. 2014-08-11 18:46:04 +01:00
Necrodoom
c8a329940e Misc clarification (socialspy and kit delay)
clarify allow-silent-join-quit
2014-08-11 00:12:43 +01:00
Necrodoom
7b3c14524c Remove outdated try-catches 2014-08-11 00:11:06 +01:00
Necrodoom
474b8a367f Add /tempban missing syntax 2014-08-11 00:10:09 +01:00
FearFree
d1b1fd2848 Add amount required to notEnoughMoney TL key.
See https://essentials3.atlassian.net/browse/ESS-5125 for request.
2014-07-19 20:31:50 +01:00
KHobbits
9239ca9c4b Formatting fixes. 2014-07-19 20:11:45 +01:00
SidShakal
f310f3db17 Fix sticky piston retract breaking essentials sign
Sticky pistons could break signs that were mounted on blocks the pistons were retracting.

This patch extends the protection from just the piston base to include the extended piston arm and the block at the end of the piston arm as well.

This method will very likely need to be changed again when 1.8 comes out, but this should bring us a bit closer, by wrapping the block tests in a loop.
2014-07-19 20:08:38 +01:00
md_5
fefd04463e Optimize player / user iteration.
* Add a method for backwards compatability with unmapped code.
* Convert all getOnlinePlayers() calls to use this method, part of the IEssentials interface
* Add a new method getOnlineUsers() Ljava/lang/Iterable;
* Convert appropriate calls to use this method
* Update Bukkit to #1945
* Update CraftBukkit to #3103
2014-07-19 20:07:50 +01:00
Alexander Likhachev
ba4cf9f04a Add permission check before resetting speed on login The staff of my server asked me to do this fix, but I think it is very useful for all. This commit change is to reset player fly & run speed only if player has no permission to change speed. 2014-07-19 20:07:09 +01:00
KHobbits
80e8996799 If a player already exists in the usermap, don't replace it with a eco npc. 2014-07-19 18:04:35 +01:00
KHobbits
d3ae3e5fe9 Clean up tempban messages to be a little clearer. 2014-07-14 21:23:56 +01:00
KHobbits
bced0d4d14 Update translations from Crowdin (http://translate2.ess3.net) 2014-07-12 22:12:51 +01:00
KHobbits
a3fedb8a7d Remove ban check from /ess cleanup, no longer required.
Fix ban upgrade script.
2014-07-12 19:13:23 +01:00
FearFree
f28ffa8058 Update to new ban method. 2014-07-12 17:40:14 +01:00
KHobbits
ee510d9d47 Add ban reason to /banip 2014-07-12 17:23:11 +01:00
KHobbits
6f03022bf0 Still give 'nickNoMore' message when removing a nickname. 2014-07-12 16:48:01 +01:00
KHobbits
c3fe51647b Allow for changing of username casing without adding 'nickname' prefix. 2014-07-12 16:43:57 +01:00
KHobbits
234f3c103f Prevent users from setting unsafe homes when teleport safety is disabled. 2014-07-12 16:34:18 +01:00
KHobbits
0b935553bf Allow people with god & fly to teleport to unsafe locations even when teleport safety is disabled. 2014-07-12 16:33:50 +01:00
KHobbits
24ac4e4197 Converge ban message translations, and add reason support to default tempban tl key. 2014-07-12 16:32:42 +01:00
KHobbits
8ec9b111b3 Switch sudo to command dispatch, this will allow vanilla commands to be executed. 2014-07-12 15:29:25 +01:00
KHobbits
359bef2bba Don't cascade null usernames passed from eco api 2014-07-10 11:48:54 +01:00
KHobbits
1489b56131 New permission :essentials.tp.position Required to use /tp [player] <x> <y> <z> 2014-07-06 18:41:12 +01:00
Necrodoom
8f1baadf4b Add support for vanilla /tp <x> <y> <z> teleport syntax. 2014-07-06 18:41:01 +01:00
KHobbits
c55d39c140 Allow forcing adult status on randomly generated /spawnmob mobs. 2014-07-06 18:25:00 +01:00
KHobbits
f4b00be07c Update Bukkit
CB: 3092 B: 1938
2014-07-06 16:40:06 +01:00
KHobbits
1405934489 Show warp teleport status to teleport owner. 2014-06-28 18:10:32 +01:00
KHobbits
5b93b8c467 Slightly reorder teleport messages to be less confusing. 2014-06-28 18:06:13 +01:00
KHobbits
19ace492c5 Fix NPE with /list in console 2014-06-27 04:28:33 +01:00
KHobbits
66ab0352ab Update essentials to support 3rd party vanish toggling. 2014-06-27 01:46:37 +01:00
KHobbits
481e9d3b2f Add some debugging to make it easier to diagnose kit errors. 2014-06-25 19:19:04 +01:00
KHobbits
f7f2aaccd7 Kit cleanup and refactor. 2014-06-25 19:03:31 +01:00
KHobbits
835b9b2009 Allow multiple kits to be spawned per command. 2014-06-23 00:38:13 +01:00
KHobbits
58f1a63dea New permission: essentials.signs.trade.override.collect
People with this permission will collect the resources of other peoples trade signs broken with admin permissions (essentials.signs.trade.override).
2014-06-21 21:47:33 +01:00
Necrodoom
04bd8be70a empty array is not null array 2014-06-19 16:22:38 +01:00
KHobbits
f407b67e12 Reduce a few nickname refresh calls. 2014-06-19 04:02:15 +01:00
KHobbits
1a03d4f763 Force listener cleanup on plugin disable. 2014-06-19 02:59:08 +01:00
KHobbits
692764b9d3 Add a lag check for permission system checks.
This doesn't include normal permission checks, since the overhead could be detrimental.
2014-06-19 02:38:28 +01:00
KHobbits
4f66743ef6 Revert "Add spawn location cache to reduce blocking on player respawn."
This reverts commit b1a0aa8d86.
2014-06-17 23:27:46 +01:00
KHobbits
6b658992aa If "sethome-multiple" config section is invalid, silently fallback to default config values. 2014-06-17 00:19:59 +01:00
KHobbits
b1a0aa8d86 Add spawn location cache to reduce blocking on player respawn. 2014-06-16 19:55:34 +01:00
KHobbits
c71c591407 Add default ban reason for tempban reason. 2014-06-14 22:06:26 +01:00
KHobbits
2540bab6b1 Check for arraynull on pex group request. 2014-06-14 18:20:49 +01:00
KHobbits
580fa15d4e Only remove first date match from ban reason. 2014-06-14 16:27:34 +01:00
KHobbits
e4fa340c48 Add optional {2} in 'tempBanned' TL key, for reason. 2014-06-14 16:21:05 +01:00
KHobbits
7a02e07598 Show UUID in trackUUID debug message. 2014-06-07 18:21:10 +01:00
KHobbits
1f30d959a2 Don't allow old UUID's to accidentally overwrite current UUID for user mapping.
Add some extra logging and uuid debug.
2014-06-07 18:08:25 +01:00
KHobbits
16d8b9e261 New permission: essentials.itemspawn.meta-vanilla
Without this permission you cannot use vanilla itemmeta.  You can still use essentials style meta, if you have the appropriate permissions.
2014-06-07 16:08:51 +01:00
KHobbits
2cecfaa56e Try to use consistent UUIDs and not rely on Bukkit lookup while saving. 2014-06-07 15:45:57 +01:00
KHobbits
a449b35fb7 Add local echo of mail being sent on /mail send. 2014-06-05 00:07:27 +01:00
KHobbits
b7d322471a Fix firework recipe in /recipe 2014-06-04 16:13:20 +01:00
KHobbits
c50ca9041b Use strings for cachemap key, should prevent accidental key issues. 2014-06-01 21:50:24 +01:00
KHobbits
1e36e64277 Add API logging to Eco API. 2014-05-31 20:37:44 +01:00
KHobbits
5993466041 Extend getUser(Object) to match uuid and offline players. 2014-05-30 22:16:06 +01:00
KHobbits
99c890ce84 Emulate player join for mocking. 2014-05-27 21:14:45 +01:00
KHobbits
94d4f0f854 Improve fakeServer model 2014-05-27 20:31:13 +01:00
KHobbits
aa0d249b9d Remove online player lookup in usermap.getUUIDMap(), throw log entry on failback. 2014-05-27 18:04:02 +01:00
KHobbits
e4e8a83caa Log takeMoney exception, even if we ignore it. 2014-05-27 10:46:25 +01:00
KHobbits
7402ff69da Revert writecount reset, this could cause odd behavior. 2014-05-27 06:18:34 +01:00
KHobbits
85b8ee2e2d Enforce userdata save on player dispose. 2014-05-27 04:52:52 +01:00
KHobbits
d0cd3356fd If we are modifying money, force transaction clear, this is important. 2014-05-27 03:41:18 +01:00
KHobbits
01a84d069f Don't check silentjoin.vanish if another plugin has hidden the join message. 2014-05-26 22:08:18 +01:00
KHobbits
2d157c3238 New permission: essentials.silentjoin.vanish
The server needs silentjoin to be enabled first.
2014-05-25 19:31:55 +01:00
KHobbits
d74770dcc4 Abort transaction before updating funds on balance overflow. 2014-05-25 17:03:23 +01:00
KHobbits
d2240f011f Utilize write transactions for delaylogin task. 2014-05-25 01:38:37 +01:00
KHobbits
db4d80590b Rename listening methods to be a little more descriptive of their purpose. 2014-05-24 18:47:40 +01:00
KHobbits
293b75dc92 Convert 9 anonymous scheduled tasks to named classes for better logging. 2014-05-18 21:32:07 +01:00
KHobbits
9bcb3cb606 Fix invalid TL key. 2014-05-18 19:47:18 +01:00
KHobbits
dca2383b98 Exempt named mobs by default from /remove
Named mobs can be removed using /remove named
Killing all mobs now requires /remove all,tamed,named
2014-05-18 14:43:07 +01:00
KHobbits
008b241017 Tweak to player login event. 2014-05-18 13:26:27 +01:00
KHobbits
a4d221f2da Update worth.yml to be more descriptive. 2014-05-17 04:31:44 +01:00
KHobbits
c64e1684c1 Update /condense syntax hint. 2014-05-17 04:21:51 +01:00
@ArkhamNetwork
8643a27b4e Optimize PlayerLoginEvent 2014-05-17 04:05:51 +01:00
@ArkhamNetwork
eafea119a6 Move the teleport timer to an async task. 2014-05-17 03:35:44 +01:00
KHobbits
e92fdbdc59 Prevent near empty userdata file creation. 2014-05-17 03:06:48 +01:00
KHobbits
df562a09a2 Stop using old string player lookup. 2014-05-17 02:47:10 +01:00
KHobbits
7a2414a43e Prevent reading and writing the usermap at the same time. 2014-05-17 01:50:41 +01:00
Faris Rehman
868088e2b2 Add user messages. 2014-05-16 20:39:49 +01:00
KHobbits
ffe08aabbc First draft of /condense 2014-05-16 20:30:06 +01:00
KHobbits
490ade13d4 If Bukkit doesn't know who a player is, but we do, substitute the last known nickname when ban checking. 2014-05-10 21:52:45 +01:00
KHobbits
5f143176d9 Update English TL keys. 2014-05-10 17:49:37 +01:00
KHobbits
098bf3ee40 Update translations from crowdin (http://translate2.ess3.net/) 2014-05-10 16:11:03 +01:00
Luke Anderson (stuntguy3000)
d5269e28df Improve messages/formatting 2014-05-10 16:03:39 +01:00
Burke D
936cb8a42d Grammatical changes to config.yml 2014-05-10 15:46:08 +01:00
clou44
7b71b81fdb Updated Items.csv: Added nemofish and fishnemo.
Added shorter aliases for salmon, pufferfish, and clownfish.
2014-05-10 15:38:29 +01:00
KHobbits
e075ce361b Only dispose users who are offline at point of disposal.
This should cater for quick reconnects on lagged servers.
2014-05-10 15:36:58 +01:00
KHobbits
45bcc899de Initialize TL Bundle on plugin start. 2014-05-06 07:00:57 +01:00
KHobbits
cb6f72b3dc Remove '-' from valid account names again.
This could cause issues with NPC's converted to UUID before this version.
2014-05-05 22:46:46 +01:00
KHobbits
21ed479dfe Reload locale even if it is set to null. 2014-05-05 20:47:48 +01:00
KHobbits
3fffa93dac Better handle TL failover. 2014-05-05 14:48:25 +01:00
KHobbits
c929533ca3 Update teleport timer to handle UUID rather than player names. 2014-05-05 13:01:20 +01:00
KHobbits
78d5568cc7 Better handle corrupted chunks. 2014-05-04 19:39:35 +01:00
ElgarL
3374dc2da8 Error in logic 2014-05-04 17:12:15 +01:00
ElgarL
d79feefdbf Prevent players who have never logged in before from taking over existing accounts. 2014-05-04 16:22:58 +01:00
KHobbits
dc13240344 Allow disabling userfile cache on uuid convert.
Add "ignore-userfiles-cache: true" to "upgrades-done.yml" to disable cache, forcing uuid lookup requests.
2014-05-04 13:25:20 +01:00
ElgarL
2806dc74dd Fix clones forgetting sub groups. 2014-05-04 12:50:22 +01:00
ElgarL
1764940b18 Set a default mirror map if none is found in the config. 2014-05-04 12:50:21 +01:00
ElgarL
8ce433d138 Fix overloadedWorldHolder so it correctly calls the new WorldHolder code when the user is not overloaded. 2014-05-04 12:50:20 +01:00
ElgarL
9b7a889842 Fixup javadocs 2014-05-04 12:50:18 +01:00
ElgarL
e8b51c549f v2.1: - Update for CraftBukkit 1.7.8-R0.1(3050). - Add UUID support. Plugins can still query by player name but a UUID is faster and preferable. 2014-05-04 12:50:17 +01:00
ElgarL
0ef79eea00 Do not override higher level permissions with negations. 2014-05-04 12:50:16 +01:00
Necrodoom
55abcd6636 Fix a /mangcheckp message 2014-05-04 12:50:15 +01:00
ElgarL
bbc465e465 Update mangcheckp to understand Exception nodes. 2014-05-04 12:50:14 +01:00
ElgarL
5dbf052e1d Fix manucheckp to understand and report correctly on Exception nodes. 2014-05-04 12:50:13 +01:00
ElgarL
320eb550e3 Allow Exceptions in any inherited group to override negation of permissions. 2014-05-04 12:50:12 +01:00
Necrodoom
7f384e6474 Cleanup plugin description 2014-05-04 12:50:11 +01:00
ElgarL
b4a90f3b17 Prevent adding sub groups for ranks the granting player doesn't have access to. 2014-05-04 12:50:09 +01:00
ElgarL
601b362159 Allow Exception permission to override negations when in the same group. 2014-05-04 12:50:08 +01:00
ElgarL
af985d8f0b Change to use LinkedHashSets to preserve ordering. Fixes an issue with populating bukkit perms in the wrong order. Fix wildcard negation in parent groups. 2014-05-04 12:50:07 +01:00
ElgarL
41bbc89fb7 Fix Cyclic mirroring test (silly me) 2014-05-04 12:50:06 +01:00
ElgarL
f75e50ba24 Tidy imports 2014-05-04 12:50:05 +01:00
Necrodoom
d4469dca9f Improve Javadocs, clean ' strip checks, update changelog. 2014-05-04 12:50:04 +01:00
Necrodoom
38ccf1c0b1 add recursive permission adding/removing
also other minor fixes
2014-05-04 12:50:03 +01:00
ElgarL
3ed02250ae Check subgroup permissions with an equal priority so no one subgroup is higher ranked than another. 2014-05-04 12:50:02 +01:00
KHobbits
3816d64ec3 Fix attempting to spawn invalid items. 2014-04-30 05:41:42 +01:00
KHobbits
714efc48a0 Skip npc's when doing cleanup. 2014-04-29 04:42:55 +01:00
KHobbits
498ecdd8e1 Better handle a write locked usermap.csv 2014-04-29 01:44:28 +01:00
KHobbits
13259dd959 Run user dispose on another thread. 2014-04-28 23:12:35 +01:00
Corin Simpson-Bryars
f71a6dd167 Updating pom for vault
When deploying with Jenkins the build will fail due to there being no http://repo.ess3.net:8071/content/groups/public/net/milkbowl/vault/1.2.27 however there's a valid jar/dir for vault at http://repo.ess3.net:8071/content/groups/public/net/milkbowl/vault/Vault/1.2.32/
This will keep maven happy and the build not to error.
2014-04-28 00:52:06 +01:00
KHobbits
a9a2a25c51 Fix /home for offline players. 2014-04-27 17:09:44 +01:00
KHobbits
c8f6002baf Update UUID mapping, if uuid for a username changes. 2014-04-27 01:35:52 +01:00
KHobbits
b2b5d9f101 Switch AFK check to use UUID. 2014-04-27 01:10:44 +01:00
KHobbits
ff836b8671 Delay uuidconversion for 10s and show warning.
UUID conversion should now better handle offline conversion.
2014-04-26 23:50:12 +01:00
KHobbits
77dc7b0b2e Fix time command exit statuses. 2014-04-24 10:24:35 +01:00
KHobbits
b4c3571d34 Skip empty user names on uuid conversion. 2014-04-22 18:07:02 +01:00
KHobbits
85cfaf3380 [Breaking] Fix ECO NPC's. This is a work around of CB's recent changes blocking invalid uuid lookups.
NPC's converted with the previous version will need manual changes.
2014-04-19 02:03:39 +01:00
KHobbits
c8c9068799 Only write to UUIDMap if the entry doesn't exist. 2014-04-18 06:48:14 +01:00
KHobbits
53b540bbe9 Format /seen account history list, optimize map loading. 2014-04-18 05:57:47 +01:00
KHobbits
482899ba34 Add previous account tracking to /seen 2014-04-18 04:48:34 +01:00
KHobbits
398e0181ab Force CB 3050+ 2014-04-18 03:58:27 +01:00
KHobbits
bfd25e30d4 Fix offlineplayers with null names. 2014-04-17 06:09:08 +01:00
KHobbits
3f0ac523db Optimize uuidmap writing, and use userConf write buffering. 2014-04-17 05:34:34 +01:00
KHobbits
6ab29771de Add progress status and /ess uuidconvert command for manual conversion. 2014-04-17 02:18:28 +01:00
KHobbits
c659e80ae6 Update Bukkit to 1.7.8-R0.1
Bukkit: 1922 CraftBukkit: 3050
2014-04-15 00:24:12 +01:00
KHobbits
6878c11d87 Add UUID mocking support, and fix tests. 2014-04-15 00:08:02 +01:00
KHobbits
7745dfd260 Allow usermap to support legacy users, and restore ability to create user on first access, as well as server join. 2014-04-15 00:07:35 +01:00
KHobbits
a5a0b70380 Make eco npc methods use proper user config creation and resets. 2014-04-15 00:06:29 +01:00
KHobbits
9af24f1069 Stop delayed writes from reversing user reset. 2014-04-15 00:05:56 +01:00
KHobbits
d72d748178 Remove Ess object from FakeServer. 2014-04-14 00:03:07 +01:00
KHobbits
09178693ea Essentials UUID conversion. 2014-04-13 21:40:15 +01:00
KHobbits
5a4dd00e30 Converted emulated player class calls to use base class. 2014-04-13 01:01:49 +01:00
clou44
19ff2175e2 Update items.csv
Added additional aliases for various flowers.
2014-04-10 23:31:05 +01:00
clou44
059622c41f Update items.csv
Added additional aliases for coal blocks.
2014-04-10 23:30:58 +01:00
KHobbits
8effff76ca Update config.yml to reflect vanilla fallback no longer works. 2014-04-07 14:09:09 +01:00
KHobbits
11021eef7a Update Bukkit 1.7.5-R0.1
Bukkit 1919 CB: 3039
No UUID update yet.
2014-04-06 15:57:37 +01:00
KHobbits
d778f5ad1a Cleanup 2014-04-06 15:44:37 +01:00
KHobbits
c348691d6f Correctly handle line overflow in book pager
Fixes a bug with the last book pager tweak.
2014-04-05 15:33:38 +01:00
KHobbits
4534ef8415 Fix fly logic check (creative doesn't mean fly is enabled) 2014-03-31 03:26:48 +01:00
KHobbits
51a6ae2cf0 Add chat configurables. 2014-03-30 15:50:32 +01:00
KHobbits
9fb5b3cef4 See if we can better handle book paging to fit more context on a line, without causing text loss after reaching character limit. 2014-03-29 16:07:32 +00:00
evonuts
51afbfcfc7 Minor phrasing fixes. 2014-03-26 22:08:37 +00:00
Matt Anthony
1cbc5ca975 Add colors to a few TL keys. 2014-03-26 21:58:36 +00:00
KHobbits
0c504d9afe Add local echo to tempban command. 2014-03-26 20:08:38 +00:00
KHobbits
85c641c7eb Helpop should use broadcast method
Add local echo's to helpop and mute commands.
2014-03-26 20:06:01 +00:00
Necrodoom
daa73f9822 Add socialspy wildcard support 2014-03-26 19:09:00 +00:00
Necrodoom
680264e873 Match /clearinventory multiple permission to /msg 2014-03-26 19:07:48 +00:00
Necrodoom
5b7e009b52 Some messages fixes, and information addition. 2014-03-26 19:07:41 +00:00
KHobbits
99a9e9fb50 Revert "Do not allow a block with an Essentials Sign attached to it to be pulled with a sticky piston"
This reverts commit 8b0ade3e1d.
2014-03-26 15:14:40 +00:00
Chris Ward
8b0ade3e1d Do not allow a block with an Essentials Sign attached to it to be pulled with a sticky piston 2014-03-26 22:00:57 +11:00
KHobbits
c2fa68c257 Merge branch '2.x' of github.com:essentials/Essentials into 2.x 2014-03-23 18:14:21 +00:00
KHobbits
5c4f31dec4 Fix null teleport costs. 2014-03-23 18:12:33 +00:00
FearFree
a4f8193e38 Future Java versions may not support _ as identifier. 2014-03-22 16:08:11 +11:00
KHobbits
7a31d2e213 Cleanup warp charging, to properly handle warp sign costs. 2014-03-19 00:01:47 +00:00
ElgarL
8389996b4a Merge pull request #668 from necrodoom/patch-91
Fix messages
2014-03-12 15:41:53 +00:00
KHobbits
fb0b219029 Fix some /home errors with invalid data. 2014-03-09 17:59:07 +00:00
Dabo Ross
9a124c6177 Add IEssentialsSpawn class for API for Essentials Spawn with two methods, getSpawn(String) and setSpawn(String, Location).
Implement IEssentialsSpawn in EssentialsSpawn.
2014-03-09 17:31:36 +00:00
KHobbits
dea07cbdfa Update translations from Crowdin
http://translate2.ess3.net/
2014-03-09 17:23:38 +00:00
Necrodoom
d3a68e58ad Fix messages 2014-03-09 19:17:26 +02:00
Luke Anderson (stuntguy3000)
6c1719dff5 Add missing language pointers 2014-03-09 17:14:09 +00:00
FearFree
30cdbb244b Remove op and replace with permission 2014-03-09 17:01:31 +00:00
KHobbits
6511d5d067 Only enable teleport protection on plugin/command caused teleport events. 2014-03-09 01:13:41 +00:00
Dykam
b3a92e3415 You can now access the old balance during the UserBalanceUpdateEvent Event 2014-03-04 19:44:55 +00:00
Kryptic Dot
2a9daca526 Cleaning up readme markdown 2014-03-04 19:29:47 +00:00
SkyBirdSoar
a493fc491a Fixed some grammatic errors, changed some sentences. 2014-03-04 19:26:16 +00:00
Zed Spencer-Milnes
0c20f98670 Finish Sentence
# Setting to false means EssentialsAntiBuild will never prevent you from using.
->
# Setting to false means EssentialsAntiBuild will never prevent you from using items.

Am I glad to make such a profoud change to the source code.
2014-03-04 19:22:05 +00:00
Luke Anderson
778f2c85df Remove generated comments 2014-03-04 19:20:56 +00:00
KHobbits
774554517e Fix login death caused by built up fall damage using /fly. 2014-03-03 21:24:00 +00:00
KHobbits
a4c4648a96 User loading cleanup 2014-03-03 09:01:07 +00:00
KHobbits
a0ea07b9c1 Round to gc output to 2 dp. 2014-03-03 08:34:43 +00:00
KHobbits
cf04ebd9b4 Constant user file casing. 2014-02-27 01:55:04 +00:00
KHobbits
90651b10b2 Fix warp sign costs. 2014-02-25 07:09:32 +00:00
KHobbits
7b368313fa Fix safety tp check above world height
Performance tweak to fly check
2014-02-23 17:41:25 +00:00
KHobbits
3215dd0be5 Fix customtext copy 2014-02-19 03:28:28 +00:00
KHobbits
a02ccd44df Alternative implementation of unsafe enchant blocking for signs.
Permission: essentials.signs.enchant.allowunsafe - required to add unsafe enchants using enchant signs.
This reverts commit 9041abe31f.
2014-02-19 01:18:40 +00:00
KHobbits
4ad8ed4100 Fix projectiles compiling. 2014-02-19 00:58:20 +00:00
KHobbits
b12726e1c3 Update Bukkit to 1.7.3-R0.3 - Bukkit: 1903 CB: 3020
This also disables vanilla fallback, use new aliases file.
2014-02-19 00:36:54 +00:00
snowleo
9041abe31f Split unsafe enchantments in kits to a new config option 2014-02-18 23:47:18 +01:00
KHobbits
c3c29fc202 Merge branch '2.x' of github.com:essentials/Essentials into 2.x 2014-02-16 01:15:25 +00:00
KHobbits
c41985d6ff Use the absolute radius value. 2014-02-16 01:15:01 +00:00
Chris Ward
79914cd490 Update repository URLs 2014-02-15 14:23:30 +11:00
KHobbits
a28b7c9933 Allow sending customtext chapters as a parameter instead of reading commandLabel 2014-02-13 22:52:14 +00:00
KHobbits
72c5ce82fe Fix Stripping/blocking of urls containing caps. 2014-02-12 01:20:54 +00:00
Iaccidentally
a216e1cf9d Merge pull request #657 from evonuts/2.x
Fix spelling error (atleast) in translation files.
2014-02-11 02:27:10 -05:00
evonuts
d63097d619 Fix spelling error (atleast) in translation files. 2014-02-11 20:15:14 +13:00
KHobbits
2b2e06e943 Fix world argument to ignore radius, and allow for skipping radius param in syntax. 2014-02-09 22:26:54 +00:00
KHobbits
ab31d9a07c Fix ghost items with /recipe 2014-02-09 21:54:04 +00:00
Necrodoom
e479a4e13a Reorder ID 376 2014-02-09 21:37:03 +00:00
KHobbits
db091fb7c9 Code cleanup and remove remote skull edit. 2014-02-08 01:23:54 +00:00
Luke Anderson (stuntguy3000)
d467512781 Add /skull command 2014-02-08 00:25:34 +00:00
coegho
dba09cd8f5 [Fix] fireball-fire=true now prevents fire spread from fireballs 2014-02-08 00:22:56 +00:00
Necrodoom
9907bda138 Restore 2 aliases 2014-02-08 00:16:11 +00:00
Necrodoom
5ec8f89637 Fix duplicates, a few more aliases addition/remove 2014-02-08 00:16:11 +00:00
KHobbits
2bc4475d24 Reformat pom 2014-02-08 00:13:46 +00:00
KHobbits
854148dbee Add bow as a skeleton keyword 2014-02-06 02:35:27 +00:00
Iaccidentally
58eb20d073 Modifier order consistency 2014-02-04 11:11:43 -05:00
KHobbits
0503aff84a Readme tweak. 2014-02-04 01:17:06 +00:00
KHobbits
b010d94ba2 Add support for vanilla item names from api. 2014-02-02 19:04:09 +00:00
KHobbits
084b63d38f Fixed argument count for meta parsing. 2014-02-02 18:56:45 +00:00
KHobbits
bc438f61da Allow the Essentials module to compile again. 2014-02-02 18:19:29 +00:00
KHobbits
4dc94cc686 Raise minimum CB version to 2922 or 1.7.2-R0.1
This should prevent issued caused by UUID mismatch.
2014-02-02 17:13:44 +00:00
KHobbits
4f25ba3ced Track UUID for future use. 2014-02-02 17:05:41 +00:00
KHobbits
fa467fc221 Restore teleporting to middle of block, when flying and unsafe is enabled. 2014-02-02 16:43:31 +00:00
KHobbits
b6cd83acc8 [Breaking] Add exception when players have exceeded their account limit.
This might effect some plugins which hook Essentials for economy without using the API
2014-02-02 16:07:32 +00:00
KHobbits
f4cf63c0ce Make sure we leave any vehicles before teleporting. 2014-02-02 15:04:07 +00:00
Iaccidentally
938e539463 [FIX] Print a proper error when using tpaccept with no requester 2014-02-01 16:49:54 -05:00
Chris Ward
14e190282c Allow the use of non-development Bukkit builds at runtime
Unsafe code is surrounded by sufficient handling
2014-01-30 10:43:26 +11:00
Chris Ward
a6a33b9c4e Restore Bukkit dependency to parent pom 2014-01-30 10:34:16 +11:00
KHobbits
a85c697477 Attempt to fix client issue with speed reset on world change. 2014-01-26 22:33:56 +00:00
KHobbits
52ccd649a7 Make /speed persist on world change if permissions exist. 2014-01-26 20:00:41 +00:00
KHobbits
2c87e516bb Force Bukkit version to match deps. 2014-01-25 23:29:48 +00:00
KHobbits
95094e20ca Use OSX character split on internal sign interface 2014-01-25 22:55:28 +00:00
Necrodoom
0211762c5a Fix cauldron ID 2014-01-25 22:46:26 +00:00
Necrodoom
09c24ba852 Trim items.csv based on feedback 2014-01-25 22:46:25 +00:00
snowleo
b6a550fdcb Read backup output async 2014-01-25 15:33:33 +01:00
Chris Ward
ba6b83140f Add fullstops for @Necrodoom 2014-01-21 12:20:24 +11:00
Chris Ward
47580a04ea Add support for vanilla JSON metadata syntax (/give, /i, /kit, etc.) 2014-01-21 00:54:48 +11:00
Chris Ward
7fc0542597 Update to Bukkit Development Builds
Change things so unit testing can run after Bukkit's breaking commit with classloader stuff
2014-01-20 21:20:13 +11:00
KHobbits
7385d9ce56 Fix hidden groups in /list 2014-01-14 21:55:30 +00:00
KHobbits
0ce2e87513 Pass optional location parameters to teleport TL keys. 2014-01-12 01:23:12 +00:00
KHobbits
bd347f5171 Config description cleanup. 2014-01-11 17:34:35 +00:00
Adam
b3e1d2bec8 Reset Exhaustion on /feed 2014-01-08 01:07:38 +00:00
Chris Ward
3eb75b1488 Add an upload-only pom file for GroupManager 2014-01-06 10:03:22 +11:00
KHobbits
d929cbf742 Check command cost, before running kit delay check, prevent accidentally delaying unran commands. 2014-01-03 08:16:17 +00:00
KHobbits
4ecba25f01 Add and implement sign break/create/interact events to EssAPI
Implement AfkStatusChangeEvent
2013-12-31 17:47:52 +00:00
KHobbits
cdeb08d93d Remove redundant permission check. 2013-12-31 04:44:28 +00:00
KHobbits
10a0e609ed Fix NB parent compiling 2013-12-28 23:09:56 +00:00
KHobbits
ad0028f6e0 Add permission: essentials.msg.multiple and essentials.pay.multiple
Message permission will allow rough nick matches and wildcards, while pay will only allow wildcards.
2013-12-28 22:37:36 +00:00
Chris Ward
70371c3a81 Add deploy plugin 2013-12-29 03:04:36 +11:00
Chris Ward
06dae78b9e Use the Essentials Maven repository 2013-12-29 00:21:26 +11:00
Chris Ward
694ce12e1b Remove Ant, migrate Netbeans code style to pom.xml 2013-12-27 03:47:13 +11:00
Chris Ward
e04ecd59d1 Travis - use Maven to build 2013-12-26 01:19:51 +11:00
SkyBirdSoar
a73da6a82d Add aliases to stationary water & stationary lava
New changes:
stillwater is an alias to 9:0 (Stationary water)
stilllava is an alias to 11:0 (Stationary lava)
2013-12-26 01:17:42 +11:00
Chris Ward
5d5adcdb63 Pull geoip library from Maven 2013-12-26 01:12:04 +11:00
Chris Ward
d3f2249d6a Use Ant to replace GroupManager's plugin.yml version 2013-12-22 19:21:19 +11:00
KHobbits
d654b171e5 Better matching of zombie and skeleton mobdata to avoid confusion. 2013-12-22 00:12:22 +00:00
KHobbits
a6aa8c1c86 Add {4} to homeSet TL key, this contains the name of the home being set. 2013-12-21 23:30:12 +00:00
KHobbits
203c58f41c Check command cost permissions prior to teleporting. Fixes ESS-4918 2013-12-21 23:19:58 +00:00
KHobbits
307a460dee Add extra /home message TL params
{1} = current home count
{2} = max home count
2013-12-21 17:42:55 +00:00
KHobbits
7e69cd2270 Don't check for default worth durability if more than one durability price is defined.
This also adds support for '*' durability matching 'other'.
2013-12-21 03:33:27 +00:00
KHobbits
d8386f33fd Restore CB to lib folder 2013-12-21 02:39:26 +00:00
Chris Ward
e63460835f Use Bukkit beta build 2013-12-18 17:26:01 +11:00
KHobbits
7f3f88495a Try changing the config file home language up a little bit. 2013-12-17 19:23:28 +00:00
Necrodoom
10e9d68071 fix gcWorld in de locale 2013-12-15 12:49:06 -06:00
Necrodoom
e6521adbb6 Add cobweb aliases 2013-12-13 09:23:29 -06:00
Chris Ward
a343d6e9f6 Change teleport safety checks to use less expensive methods. 2013-12-13 19:41:57 +11:00
KHobbits
bb681f2d7b Alter teleport cancel message to reflect config option. 2013-12-13 08:15:28 +00:00
Joshua Popoff
c56afbbb5c Add the ability to disable teleport safety. Requested by a few people - teleport safety isn't always a good thing for some servers. Request is cancelled if not safe. 2013-12-13 17:07:26 +11:00
Chris Ward
5b212c3ffd Remove Javadocs from the default compile, use the javadoc:javadoc goal to generate them. 2013-12-11 21:50:06 +11:00
Chris Ward
432577b292 Merge pull request #609 from Skylexia/patch-1
Fixed all the salmon.
2013-12-10 18:46:51 -08:00
Skylexia
9f423e660b Fixed all the salmon. 2013-12-10 20:42:56 -05:00
Iaccidentally
49ddb1a2e9 Merge pull request #607 from necrodoom/patch-67
Add new baked potato aliases - thanks clou44
2013-12-08 09:45:16 -08:00
Necrodoom
7dd3fb7d62 Add new baked potato aliases - thanks clou44 2013-12-08 19:44:14 +02:00
Chris Ward
8abfea6943 Strip all Mac OSX characters
Temporary workaround awaiting PR from Bukkit
2013-12-08 20:40:10 +11:00
md-5
7b7827dfd9 Fix formatting from last commit 2013-12-08 17:00:53 +11:00
md_5
65e14638f0 Strip weird sign chars sent by OSX due to client bug 2013-12-08 16:57:44 +11:00
KHobbits
719361190d Update config.yml to reflect recent custom message settings. 2013-12-08 04:46:33 +00:00
KHobbits
b5a56a733d Make it so both {world} and {worldname} work for both keyword parsers. 2013-12-07 23:58:47 +00:00
KHobbits
f1a39e06d9 Update Bukkit
Bukkit: #1859 CB: #2943
2013-12-07 22:26:41 +00:00
Necrodoom
de0277b1a7 Ignore empty chat events generated by plugins 2013-12-07 22:15:01 +00:00
KHobbits
a7a42a3956 Add support for adding item meta to [free] signs.
Fix NPE on [sign] creation.
2013-12-07 20:25:23 +00:00
KHobbits
de4ba9abdf Logger cleanup pt 1. 2013-12-07 20:03:05 +00:00
KHobbits
f143aaa38e Cleanup /remove ingame syntax 2013-12-07 19:17:36 +00:00
KHobbits
5c0ef0b14e Show warning when invalid mob type is specified for /remove 2013-12-07 19:03:29 +00:00
KHobbits
a8d14eb299 Remove requires at least one argument. 2013-12-07 18:46:25 +00:00
Chris Ward
8d6751d500 Fix issue in login messages
Message wouldn't be displayed if silent join is enabled and custom is disabled. Probably.
2013-12-07 14:24:39 +11:00
Chris Ward
1a58e3f6df Disable the login message hooks automatically 2013-12-07 14:20:51 +11:00
Chris Ward
bd61719dcd Fix login messages 2013-12-07 13:44:41 +11:00
Chris Ward
436eb564cc Revert "Fixed bug when logging in silently"
This reverts commit 81e782a8b0.
2013-12-07 13:24:48 +11:00
Iaccidentally
b582158331 Merge pull request #605 from Phryxiil/2.x
Fixed bug when logging in silently
2013-12-06 18:17:06 -08:00
Zarubinator
81e782a8b0 Fixed bug when logging in silently 2013-12-06 21:15:27 -05:00
Chris Ward
fc71aa2672 Who doesn't love a good ol' NPE 2013-12-06 19:01:37 +11:00
Necrodoom
d6b1e225dc Fix glass pane IDs
remove duplicates in items.csv (thanks .itemdbparse)
2013-12-05 23:09:35 +00:00
Chris Ward
8a4ef90017 Cleanup join/quit messages. 2013-12-05 23:08:29 +00:00
Chris Ward
e469ff3671 Fix custom join messages Removes double message, adds colour codes and placeholders for the user's name. 2013-12-05 23:08:28 +00:00
TheReverend403
38ad919f37 Code cleanup 2013-12-05 23:06:04 +00:00
Necrodoom
0c52536870 Update items.csv to 1.7.2 (beta file version) 2013-12-05 23:03:34 +00:00
KHobbits
bbb8b3eb39 Updated translations from crowdin 2013-12-05 23:03:34 +00:00
KHobbits
899fccb378 Cache join/quit messages. 2013-12-05 23:03:33 +00:00
Iaccidentally
e62abac974 Add options to disable join/quit messages and custom join/quit messages 2013-12-05 23:03:33 +00:00
KHobbits
f21fb54ceb Merge remove and killall command, thanks to @Evonuts and @Iaccidentally. 2013-12-05 23:03:33 +00:00
Adam
124e730284 Add a title to [Disposal] and [Free] sign inventory 2013-12-05 23:03:33 +00:00
Chris Ward
0ffc8115e9 Update FakeServer - fixes compilation 2013-12-05 23:03:33 +00:00
KHobbits
71ed092fc8 Update to first build of 1.7.2 - CraftBukkit is still buggy so expect issues
Bukkit: #1856 CB: #2922
2013-12-05 23:03:32 +00:00
iBo3oF
a08a7ccca2 Add Balance Update Event. 2013-12-05 23:03:31 +00:00
KHobbits
c0cb38a194 Tidy up string manipulation in trade signs. 2013-12-05 23:03:31 +00:00
KHobbits
d624fe68b2 Try to be a little less confusing with non-command debug errors. 2013-12-05 23:03:31 +00:00
KHobbits
0a9845cc40 Adding saddles to horses should properly tame horses. 2013-12-05 23:03:31 +00:00
Necrodoom
eaa466aa91 Do not block user damaging self (ender eye) 2013-11-17 19:19:42 +02:00
Joseph Jenniges
da4ab6dd00 Fix logic error with /kickall in console 2013-11-17 10:04:36 -06:00
snowleo
be0401d049 Fix fromIndex = -20 2013-11-15 20:06:16 +01:00
KHobbits
011321c487 Throw meaningful warnings when wrong Essentials version is used with unsupported mod packs. 2013-11-15 00:22:10 +00:00
Iaccidentally
ae60b928dc Tidy up Commandremove a bit, thanks to Evonuts 2013-11-10 23:25:42 +00:00
Iaccidentally
0f0b1cc16a Add more functionality to the remove command. This now overlaps some functionality of the killall command, which should eventually be merged into this command and removed. new options: hostile, monsters, passive, animals, ambient, mobs, entities 2013-11-10 23:25:34 +00:00
KHobbits
258d8f3651 Allow ignore to block tpahere requests. 2013-11-09 04:08:25 +00:00
KHobbits
7a43e1aaa1 Add a couple more enchant aliases for blast protection 2013-11-09 03:40:51 +00:00
Iaccidentally
ed89f048a3 Cleanup various aspects of code, fix some formatting, more netbeans 7.4 stuff 2013-11-06 21:22:32 -05:00
Iaccidentally
a0efe4bd69 Add ability to supress join/leave messages :: new permissions: essentials.silentjoin & essentials.silentquit 2013-11-06 18:05:02 -05:00
Iaccidentally
9b550641b5 netbeans 7.4 stuff 2013-11-06 18:03:46 -05:00
KHobbits
a09e840c61 Update Bukkit and Craftbukkit jar files for stable 1.6.4
Bukkit: 1848 Craftbukkit: 2912
2013-10-28 00:29:01 +00:00
KHobbits
1ab09bb1de Update Translation files from Crowdin:
http://translate2.ess3.net/
2013-10-28 00:21:41 +00:00
FearFree
5f2b10a45a Update for consistency.
Signed-off-by: KHobbits <rob@khobbits.co.uk>
2013-10-28 00:10:35 +00:00
FearFree
28c0ecf1ad Clarify no perm msgs for missing .offline perms
Signed-off-by: KHobbits <rob@khobbits.co.uk>
2013-10-28 00:10:33 +00:00
KHobbits
9db789771f Clarify message when ignoring exempt players. 2013-10-27 23:53:24 +00:00
Chris Ward
f9b54521c4 Fix automatic versioning when compiling with Maven 2013-10-21 13:50:17 +11:00
KHobbits
5abf0a1806 Add a little more group based debugging. 2013-10-21 01:20:09 +01:00
KHobbits
092488fe86 Add debug log entry when checking permission groups. 2013-10-20 17:45:37 +01:00
KHobbits
251aa6e768 Round up Y position when standing on half blocks. This should address some safelogin bugs. 2013-10-20 02:25:11 +01:00
KHobbits
d95289a433 Restore deleted craftbukkit jar 2013-10-20 01:36:22 +01:00
KHobbits
3d2b4c486e Restore original give/take Money API 2013-10-19 12:26:28 +01:00
Chris Ward
acea1cd14f [Fix] Allow someone to change their nick to different case of the same thing 2013-10-19 12:19:40 +01:00
Chris Ward
89c4abf218 Use a player's real name in /balance if they are vanished 2013-10-19 12:19:40 +01:00
Chris Ward
5384390a83 Call Ant from Maven (for GM) 2013-10-19 12:19:40 +01:00
Chris Ward
fce310a0af Fix null pointer exception on kits with meta 2013-10-19 12:19:39 +01:00
Chris Ward
2c52976436 Make looping commands see vanished players properly
Make /r check player existence in the correct order
2013-10-19 12:19:39 +01:00
Chris Ward
4041c0404e Add Maven Support 2013-10-19 12:19:39 +01:00
Chris Ward
2924125db3 Fix double messages in targeted commands 2013-10-19 12:19:37 +01:00
Chris Ward
f19293c4d4 Remove .idea and *.iml from git 2013-10-18 17:32:47 +11:00
Chris Ward
979b5b1a37 Fix /r 2013-10-18 17:23:27 +11:00
KHobbits
c53f21d9d1 Cleanup 2013-10-18 00:07:35 +01:00
KHobbits
dbebbbaa0e Restore getUser API 2013-10-18 00:07:34 +01:00
KHobbits
10167b3e95 Extract CommandSender to CommandSource, this should prevent Ess user object leaks. 2013-10-16 21:05:33 +01:00
KHobbits
840062a690 Strip nickname prefix when doing displayname comparison. 2013-10-16 20:54:23 +01:00
Iaccidentally
75963667f8 Cleanup XMPP PR 2013-10-16 20:53:30 +01:00
patjense
f33836fb13 add delayed task for XMPP presence update 2013-10-16 20:52:50 +01:00
patjense
f07b616e4f add XMPP presence management stack 2013-10-16 20:52:50 +01:00
patjense
e315e943cd add update for global presence handler 2013-10-16 20:52:50 +01:00
KHobbits
b55fbbc1d0 Clean Imports 2013-10-11 03:44:41 +01:00
KHobbits
0aabc746d9 Allow for event based test cases. 2013-10-11 03:34:41 +01:00
Iaccidentally
006cab7681 implement GodStatusChangeEvent 2013-10-11 03:14:51 +01:00
KHobbits
54bc030d0e Update README.markdown 2013-10-07 01:34:42 +01:00
KHobbits
aef2a5ff7d Allow recolouring own name. 2013-10-05 05:34:33 +01:00
KHobbits
a3807efc68 Cleanup 2013-10-05 03:27:40 +01:00
KHobbits
5169003102 Improve nick validation
Now matches nicks against userdata for conflicts
Now checks for empty string nicknames
2013-10-05 02:31:19 +01:00
KHobbits
1563cec8c6 Add more API template and implement nick change event. 2013-10-05 02:11:39 +01:00
KHobbits
37d86ea48f Extract user match looping 2013-09-28 21:33:22 +01:00
Luke GB
a3aba6ac9b Adds even more clarification to metrics opt-out 2013-09-25 00:22:11 +01:00
TheReverend403
17770acd5d Adds clarification to metrics opt-out 2013-09-25 00:18:43 +01:00
drtshock
5ede4e4b8b Format to the format with the formatter. 2013-09-24 09:38:30 +01:00
drtshock
ed677de950 Ignore list and no tpa to self. Fixes ESS-4456 ESS-4711
List users that you ignore when no arguments are given. Otherwise state
that no players are ignored.

Don't allow users to tpa or tpahere themself. This is a problem with
people "glitching" with how essentials finds a safe location to get
inside of places they shouldn't.
2013-09-24 09:38:29 +01:00
Iaccidentally
8630d49260 Update to 1.6.4 2013-09-19 21:38:15 -04:00
Chris Ward
f789d310ea Cleanup 2013-09-18 22:22:56 +10:00
GunfighterJ
2ccfc003bf Update ItemStack reference to getTypeId() 2013-09-17 23:23:45 +10:00
Chris Ward
29350240e8 Require latest Bukkit RB 2013-09-17 21:08:20 +10:00
GunfighterJ
8b8ae2b2d4 Push latest Bukkit RB 2013-09-17 06:06:34 -05:00
GunfighterJ
f45a8d6126 Fix translation typo 2013-09-15 16:43:16 -05:00
KHobbits
2c7d224b1f Fix handling max warp pages. 2013-09-10 01:42:11 +01:00
KHobbits
7ffa37fe1e Fix case sensitivity on {PLAYERLIST:group} 2013-09-06 23:54:37 +01:00
KHobbits
809f204b91 Clarify kit errors 2013-09-05 15:40:43 +01:00
KHobbits
bd4900b114 Expose other plugins ban masks. 2013-09-04 07:19:30 +01:00
KHobbits
2fd5777a4a Properly handle negative /clear amounts. 2013-09-04 06:35:53 +01:00
KHobbits
55b1169735 Reimplement 'private' keywords. 2013-09-01 00:24:11 +01:00
KHobbits
4abf5e6bae New enum cached, lazy generated KeywordReplacer
This runs before the pager, so keywords on other pages will still be parsed.
2013-08-31 23:11:08 +01:00
Pocketkid2
3a173f9e60 Use Tamed instead of horse/ocelot/wolf 2013-08-31 19:36:41 +01:00
KHobbits
6020ebef97 Add support for coloured authors on books
Fixes ESS-4690
2013-08-31 13:20:36 +01:00
KHobbits
546ea270f0 Add debug output to keyword replacer 2013-08-30 13:37:49 +01:00
KHobbits
7e0f1f0d05 This tp req cancel isn't needed anymore. 2013-08-30 11:05:27 +01:00
KHobbits
a30d94d4e8 Don't waste cpu on /baltop if eco is disabled. 2013-08-28 18:00:27 +01:00
KHobbits
e1a4f6d235 Extend eco disable option to block eco lookups. This can be required to combat slow SQL economies.
This option is not recommended under normal circumstances.
2013-08-28 17:50:28 +01:00
KHobbits
3ef723e95f Don't allow buying partial item sets via trade signs. 2013-08-28 13:42:08 +01:00
KHobbits
80cb3e9910 Add another customtext example (including one with multiple aliases) 2013-08-20 23:43:40 +01:00
KHobbits
f1d0c4ad51 Add support for {PLAYERLIST:GROUP} AND {PLAYERLIST:GROUP:<none>}
Replace <none> with what you want to show if there are no players from that group online.
2013-08-20 23:39:34 +01:00
Chris Ward
8072dbe40e Add COORDS, UPTIME and TPS keywords 2013-08-20 22:14:29 +10:00
KHobbits
babee63623 More colour. 2013-08-20 01:51:32 +01:00
KHobbits
618c999555 Refresh default motd. 2013-08-19 22:00:30 +01:00
KHobbits
30ee1fb7bc Fix text file color code escaping (&&6 -> &6) Add support for color escaping in ingame chat Other formatting class cleanup 2013-08-19 21:37:44 +01:00
KHobbits
85c4685c5d New command /customtext - This command is intended to be used with bukkit.yml aliases to make custom commands. 2013-08-19 21:37:33 +01:00
KHobbits
cd3e7dbcf2 Add support for multiple bookmarks/chapter names
Clean up info file handling
2013-08-19 00:13:49 +01:00
KHobbits
9f16c0b71f Fix tests 2013-08-18 22:48:13 +01:00
KHobbits
2fc252409f Reset fall distance when toggling fly so fall damage is not accidentally applied. 2013-08-18 22:43:43 +01:00
KHobbits
5476dad4e3 Fix a few issues with /list and group formatting. 2013-08-18 22:08:57 +01:00
KHobbits
29d2d91381 Fix feed cooldown bypass permission:
Permission: essentials.feed.cooldown.bypass
2013-08-18 21:05:45 +01:00
KHobbits
74d757fd59 Fix NPE in /kill when used from console. Thanks Necrodoom 2013-08-18 21:04:19 +01:00
KHobbits
93b00222fd Add muting offline players
Permission: essentials.mute.offline
2013-08-18 21:02:47 +01:00
KHobbits
289c47525f Allow alternative command handler to also pass tab complete. 2013-08-15 21:58:23 +01:00
Necrodoom
cfae34d3f7 items.csv - try move the most common item alias to top of aliases stack
without ore aliases remove
2013-08-15 21:37:55 +01:00
KHobbits
2062b97bb9 Use essentials itemdb for charge messages. 2013-08-15 05:47:23 +01:00
KHobbits
18b8e56d43 Use user object to send messages when possible. 2013-08-15 01:53:22 +01:00
KHobbits
df968b0dbf Gracefully handle botched plugin starts 2013-08-13 23:41:54 +01:00
KHobbits
49d1d926c4 Fix mail sendall from console skipping first param 2013-08-13 22:01:13 +01:00
Necrodoom
420fedf6ed fix config comment at heal-cooldown 2013-08-13 18:16:40 +01:00
Pocketkid2
fb7b326cb6 Update Commandremove.java
Fix class checking in /remove
2013-08-13 18:14:40 +01:00
Necrodoom
42427e2ee5 trim and replace spaces in chapter names to always work in commands 2013-08-13 18:07:27 +01:00
KHobbits
5b94d28f7f Teleport cleanup 2013-08-13 18:06:24 +01:00
GunfighterJ
bf834ae061 Fix NPE in /back when no previous location exists 2013-08-13 11:46:52 -05:00
KHobbits
df8c1f2e54 Restore safe location for /top 2013-08-13 00:55:31 +01:00
KHobbits
68adbc6a37 Prevent inf loop when adding air to kits.
Should fix #4555
2013-08-12 00:26:51 +01:00
KHobbits
83529213d4 Fully support numerical worth yml data. 2013-08-11 23:43:45 +01:00
KHobbits
cd1709d137 When in fly+god mode or when in creative mode, don't use safe teleport location when teleporting to other players.
Enable fly in unsafe circumstances.
This only works when teleporting within worlds for permission reasons.
2013-08-11 22:42:29 +01:00
KHobbits
ecd80c0112 Update plugin.yml and add some aliases (Evonuts is going to hate me) 2013-08-11 22:10:56 +01:00
KHobbits
c7e9751cad Allow toggling vanish for other players
Permission: essentials.vanish.others
2013-08-11 21:48:30 +01:00
KHobbits
8fa5dee2c4 General cleanup.
Add optional TL param for tempban/mute time in notify message
2013-08-11 21:34:26 +01:00
KHobbits
7c5cdb9931 The /tpahere command now stores the location of 'here' rather than using the current players location.
Cleanup teleport logic - This also fixes exploiting /tpahere to get accesses to restricted areas.
2013-08-11 16:37:21 +01:00
KHobbits
47c62dbc6c Update Mob.java 2013-08-09 04:38:57 +01:00
Necrodoom
6b0d76b0eb display syntax if more than one argument to avoid confusion with command purpose
more clearly, show syntax when people try to do /money give playername amount
2013-08-05 16:04:28 +01:00
KHobbits
f86ac7e8a7 Update Bukkit for 1.6.2R0.1 beta
CB: 2838 Bukkit: 2252
2013-08-05 04:15:26 +01:00
KHobbits
7b0be85a04 Update Translations from crowdin 2013-08-05 00:19:44 +01:00
KHobbits
02d504f920 Force space after group in /list 2013-08-04 23:39:56 +01:00
GunfighterJ
77cb979078 Remove duplicate key 2013-08-04 12:53:46 -05:00
Pocketkid2
9d44496b8a Update Potions.java
Add extra alias
2013-08-04 11:38:48 -05:00
KHobbits
da558f31e1 More missing syntax. 2013-08-03 02:48:50 +01:00
KHobbits
320a6ccd68 Add missing command syntax for /spawnmob 2013-08-03 02:25:42 +01:00
Pocketkid2
f89d5f5d4a Update Commandkillall.java
Add support for horses
2013-07-29 21:40:52 +10:00
KHobbits
d6b9d5ec6f Restore vault compat 2013-07-26 00:11:37 +01:00
Iaccidentally
6ecaba1498 Merge pull request #524 from necrodoom/patch-40
fix mobdata typo
2013-07-25 10:51:08 -07:00
Necrodoom
9a7ce12112 fix mobdata typo 2013-07-25 16:44:48 +02:00
GunfighterJ
fd5dfd3df0 Close inventories before opening any others 2013-07-24 16:01:17 -05:00
KHobbits
0bb65dee7d Use the correct name in /sethome if you don't have sethome.others permission. 2013-07-23 23:39:44 +01:00
KHobbits
d65a3780c2 Restore deprecated trade api
Fixes #4500
2013-07-23 22:48:32 +01:00
KHobbits
2c6e259eea Fix max radius. 2013-07-21 00:04:04 +01:00
okamosy
36cbd6ea2f Refactored and cleaned up SpawnMob. Added context-aware help /spawnmob <mob>: 2013-07-20 21:29:13 +01:00
KHobbits
67b57627fe Show if a IP is ip-banned on /seen <ip> 2013-07-19 02:25:50 +01:00
KHobbits
adf0eedbbb Cleanup worth and sell messages 2013-07-19 00:55:21 +01:00
snowleo
439ce03542 Can't sell negative amount of items. 2013-07-19 01:01:52 +02:00
okamosy
7935d28381 Added horse armor /spawnmob horse:armor<iron|gold|diamond> 2013-07-17 23:32:25 +01:00
okamosy
307e933052 Added saddles to pigs and horses /spawnmob pig:saddle /spawnmob horse:saddle 2013-07-17 23:31:37 +01:00
KHobbits
fd6257355f Log notice when chat ignore is blocked by another plugin. 2013-07-17 23:26:26 +01:00
KHobbits
25b7a91ced Add scaling object cap for usermap, prevent huge memory usage, also config file configurable. 2013-07-17 01:56:27 +01:00
okamosy
78f928655a Added horses to SpawnMob /spawnmob horse:<color><variant><style><chest> 2013-07-16 23:36:11 +01:00
KHobbits
fe8d1dd4f3 Fix radius logic 2013-07-15 23:15:35 +01:00
Necrodoom
f637b8c8be Max near radius 2013-07-15 23:10:55 +01:00
KHobbits
2b2eba6c27 Add missing param in /remove 2013-07-15 02:43:23 +01:00
KHobbits
c410cf5a1b Better handle esschat/GM reloading during async events. 2013-07-15 00:47:17 +01:00
KHobbits
902b3fc983 Update Craftbukkit
CB: 2814 Bukkit: 1792
2013-07-14 22:27:57 +01:00
KHobbits
3c1393ffa8 Try to restore basic api functionality 2013-07-14 13:00:03 +01:00
KHobbits
709e368070 Tidy and slightly expand user API 2013-07-14 12:41:27 +01:00
KHobbits
f1fdf33952 Fix worth display bug 2013-07-14 12:09:49 +01:00
KHobbits
e705f5bb1c Fix local chat spy tag order. 2013-07-14 01:20:36 +01:00
KHobbits
8c4c8395dd Throw syntax error instead of "For input string" 2013-07-14 01:07:59 +01:00
KHobbits
f743a7725e Add support for /worth all and /worth hand 2013-07-14 01:03:08 +01:00
KHobbits
913cbbc738 Whoops, wrong event. 2013-07-13 18:56:18 +01:00
KHobbits
af604194a5 Wrap ItemDb accessors and move Item string matching to itemdb class. 2013-07-13 18:52:53 +01:00
KHobbits
f536224268 Fix local message when no players are in the area
Allow any translation key to be silenced by blanking it in locale file
2013-07-13 18:46:26 +01:00
Iaccidentally
3652bd0aca [API] flip! (╯°□°)╯︵ ┻━┻ 2013-07-13 13:40:46 -04:00
Iaccidentally
178164152e [API] fix implementation? 2013-07-13 12:52:08 -04:00
Iaccidentally
f558a57824 Merge branch 'API' of https://github.com/essentials/Essentials into API 2013-07-13 12:41:31 -04:00
Iaccidentally
acca5bd4d8 [API] fix other modules to use new packages 2013-07-13 12:40:50 -04:00
KHobbits
0468f61b16 Fix failing XMPP build. 2013-07-13 17:36:35 +01:00
KHobbits
2cd909edc9 Add 'No one listening' message stub, will be empty by default and thus not sent. 2013-07-13 17:31:14 +01:00
KHobbits
4934cac1c6 Remove old chat hook
Use Bukkit API for local chat handling
Implement localChatSpy event
2013-07-13 17:25:58 +01:00
Iaccidentally
7f0c3ac44a [API] remove setters 2013-07-13 11:53:52 -04:00
Iaccidentally
d4e4cbe60c [API] Event framework 2013-07-13 11:48:05 -04:00
Iaccidentally
b8c39f13a6 [API] Move 2.x API to new package, create dummy classes for compatibility 2013-07-13 11:14:39 -04:00
Iaccidentally
4015b3056d Merge branch '2.x' of https://github.com/essentials/Essentials into API 2013-07-13 10:38:28 -04:00
Necrodoom
60682e1ab5 fix mute message when chatting
deny /mail if muted
2013-07-12 15:22:48 +01:00
GunfighterJ
f88ace0318 Add horse to entity spawn protection blacklist 2013-07-11 12:37:09 -05:00
KHobbits
b607902a7d Don't cast sender to User. 2013-07-11 09:20:52 +01:00
KHobbits
a86f995d8e Prevent speed from hitting absolute zero. 2013-07-11 08:58:22 +01:00
KHobbits
9fd5022a36 Update TL files from Crowdin, this commit resets untranslated English to new colour scheme. 2013-07-10 22:36:27 +01:00
KHobbits
3b561df287 Remove unused TL Keys 2013-07-10 22:14:23 +01:00
Iaccidentally
e229d36213 tweak default setting for max nick length 2013-07-10 11:01:49 -04:00
Iaccidentally
3202fff0b8 [FEATURE] Add configurable max nick length 2013-07-10 10:48:14 -04:00
KHobbits
c2724f3551 Update CB to 2808 2013-07-10 00:09:48 +01:00
KHobbits
0b83de8925 Fix TL handling with escaped ' marks. 2013-07-10 00:03:14 +01:00
KHobbits
504728b46b Fix user comparison. 2013-07-09 09:08:26 +01:00
GunfighterJ
84bd137b9f Implement abstract methods 2013-07-08 19:28:24 -05:00
GunfighterJ
1447ee781b Update to 1.6.2, adds new potion effect types 2013-07-08 19:22:38 -05:00
KHobbits
96d8ea856a Standardize translation formatting. 2013-07-07 15:01:00 +01:00
KHobbits
e93b9d7fab Update Polish and Swedish translations from crowdin 2013-07-07 14:54:38 +01:00
KHobbits
3fab3925c0 Translation cleanup
Allow '' in non format keys
Update French translation from crowdin
2013-07-07 14:52:31 +01:00
Gabriel D
dbea00ed64 Update some new text 2013-07-07 14:13:43 +01:00
KHobbits
3632ace61d More cleanup 2013-07-07 13:02:40 +01:00
KHobbits
35e0cab96a Misc cleanup 2013-07-07 12:38:01 +01:00
KHobbits
25b6c607e2 Whoops, we shouldn't be leaking the user object. 2013-07-07 11:51:12 +01:00
mrarroyo
234362c406 Fix punctuation 2013-07-07 02:17:25 +01:00
Chris Ward
6a5b68b870 Merge pull request #509 from necrodoom/patch-31
add horse egg
2013-07-02 02:25:49 -07:00
Necrodoom
2052e18a64 add horse egg 2013-07-02 12:20:20 +03:00
KHobbits
94e0beb8d9 Add carpet to safe teleport materials. 2013-07-02 08:02:01 +01:00
KHobbits
8bc1414cdd Add command logging for CommandBlocks and other console types. 2013-07-02 07:16:42 +01:00
Iaccidentally
fe83f25a73 Merge pull request #503 from necrodoom/patch-26
update items.csv to Minecraft 1.6
2013-07-01 19:48:11 -07:00
GunfighterJ
fa2e6248df Update Essentials for Bukkit 1.6.1-R0.1-SNAPSHOT 2013-07-01 21:38:27 -05:00
Necrodoom
5052724f05 update items.csv to Minecraft 1.6 2013-07-01 13:03:24 -05:00
GunfighterJ
f25895b19c Close the reader 2013-06-30 07:47:33 -05:00
GunfighterJ
a3e2d67682 Force reading in UTF-8 from .txt files 2013-06-30 07:40:24 -05:00
Tyler Blair
c829b3cc24 Update Plugin Metrics to R7 2013-06-29 18:05:42 +01:00
Iaccidentally
af9134c83a [API] Fix package naming 2013-06-28 15:30:47 -04:00
Iaccidentally
0f4928564c [API] fix references 2013-06-28 15:26:23 -04:00
Iaccidentally
a9b4639a0d [API] Cleanup 2013-06-28 15:21:49 -04:00
Iaccidentally
668f35c411 [API] Remove some unneeded dependencies 2013-06-28 14:58:45 -04:00
Iaccidentally
eb67e693de [API] A basic example of a custom event, more to come. 2013-06-28 14:22:18 -04:00
KHobbits
7a68694a15 Add {TEAMPREFIX} {TEAMSUFFIX} and {TEAMNAME} to chat formatting. 2013-06-28 17:12:01 +01:00
KHobbits
9195bdea22 Force repair inventory refresh. 2013-06-28 14:14:43 +01:00
KHobbits
1d6e7c33f4 Minor colour tweak 2013-06-28 13:05:56 +01:00
KHobbits
ea3f9a61d3 Make the paging logic even more complicated. 2013-06-28 01:05:56 +01:00
KHobbits
ee5cc43061 Drop messageFormat for simple string replace, remove duped ' marks. 2013-06-27 09:33:35 +01:00
KHobbits
3e771e75c2 Don't drop oversized stacks on the ground if player doesn't have oversized permission. 2013-06-26 21:44:34 +01:00
KHobbits
918f06659d [Fix] Fix toggle syntax in plugin.yml 2013-06-26 08:57:26 +01:00
KHobbits
42f3da8953 Merge pull request #504 from necrodoom/patch-30
[Fix] Fix socialspy toggle with no on/off param.
2013-06-26 00:51:51 -07:00
Necrodoom
f71df5681c fix socialspy toggles 2013-06-26 09:56:56 +03:00
KHobbits
e895587700 Let's make the default group colour orange. 2013-06-26 01:22:18 +01:00
KHobbits
d98affc18b Don't automatically convert {chatparms} to [chatparams] 2013-06-25 18:04:31 +01:00
Necrodoom
c018f6cdb8 update items.csv to Minecraft 1.6 2013-06-25 19:04:29 +03:00
KHobbits
32cda41b70 Fix null values. 2013-06-25 16:34:17 +01:00
ZerothAngel
0810d3fa2a Add group/prefix/suffix support for zPermissions. 2013-06-25 16:24:23 +01:00
Luuk Jacobs
9e108d80c2 Reword some things, minor fixes and add punctuation.
more tiny fixes
minor unicode fix
2013-06-25 16:20:21 +01:00
KHobbits
7c99c2103f Merge branch '2.x' of github.com:essentials/Essentials into 2.9 2013-06-25 16:00:32 +01:00
KHobbits
cf78f8b29a Merge pull request #502 from afistofirony/patch-1
Changing a spawner should update its BlockState.
2013-06-25 07:58:46 -07:00
KHobbits
2eaf1c221a Add missing variable. 2013-06-25 15:09:50 +01:00
Sahir
5d247afca0 Changing a spawner should update its BlockState. 2013-06-25 17:07:43 +04:00
KHobbits
a72ab3dc28 Update KeywordReplacer.java 2013-06-24 13:31:07 +02:00
KHobbits
6546ccdf90 Update info.txt 2013-06-24 13:29:28 +02:00
KHobbits
1589b47508 Merge pull request #499 from mozoa/patch-1
Update messages_nl.properties
2013-06-23 15:41:51 -07:00
KHobbits
a3878f749c Merge pull request #501 from theudis/patch-6
Update messages_fr.properties
2013-06-23 15:41:30 -07:00
theudis
c7f411042b Update messages_fr.properties 2013-06-24 00:18:58 +03:00
KHobbits
382334450d [Feature] Allow the placing of spawners with predefined network id's (/i spawner:50)
[Permission] essentials.spawnerconvert.<mobname> - Allow the placing of specific mobspawners with premade network id's.
2013-06-23 16:11:24 +01:00
mozoa
c3df201985 Update messages_nl.properties
Reworded some strings
and changed the order of words
2013-06-23 16:49:08 +02:00
KHobbits
98ee07927c Merge pull request #498 from mozoa/patch-1
Added /ci lines
2013-06-22 16:49:48 -07:00
mozoa
56de10a33f Update messages_nl.properties 2013-06-22 22:51:38 +03:00
mozoa
d1affb070f Update messages_nl.properties
Added new CI lines
bit indifferent about line 543 and 544
2013-06-22 22:49:26 +03:00
KHobbits
604d50a73d [Feature] Expand /ci to allow removing certain amounts, and breakdown on the items removed. 2013-06-22 17:36:35 +01:00
KHobbits
6c30d37962 Clean up exception types. 2013-06-22 16:33:22 +01:00
KHobbits
7eab661312 Fix missing Unicode in NL TL 2013-06-21 11:23:01 +01:00
KHobbits
178ec410e1 Reduce restrictions on same item trading, so only identical items are blocked. 2013-06-20 21:14:28 +01:00
mozoa
db6b01c94d Update NL locale 2013-06-20 21:07:58 +01:00
KHobbits
51ab887143 [Fix] Don't throw the wrong error message when using group limited kit signs. 2013-06-19 21:20:58 +01:00
GunfighterJ
2289c08114 Merge pull request #489 from necrodoom/patch-23
fix permission check typo (thanks to #4365)
2013-06-18 11:01:17 -07:00
Necrodoom
c36c057073 fix permission check typo (thanks to #4365) 2013-06-18 20:57:30 +03:00
KHobbits
e5e2b6de66 Merge pull request #488 from necrodoom/patch-21
fix typo in eco warning
2013-06-17 08:19:59 -07:00
Necrodoom
42b550af7d fix typo in eco warning 2013-06-17 16:05:45 +03:00
KHobbits
5b35afbaa0 Block external access to unsupported saveConfig() method. 2013-06-17 01:08:42 +01:00
KHobbits
049ae81d20 Allow new lines and add secure broadcast keywords. 2013-06-16 01:18:35 +01:00
KHobbits
232750fcb8 Cleanup broadcast, allow limited keywords in. 2013-06-16 01:07:16 +01:00
KHobbits
1c5e0ea7a5 Clarify 'permission-based-item-spawn' config setting. 2013-06-16 00:05:27 +01:00
KHobbits
695d454e35 Update to 1.5.2 RB:
Bukkit #1776 CraftBukkit #2788
2013-06-15 11:53:47 +01:00
KHobbits
8e61f72cb4 Reset suffix on /nick even if op and prefix/suffix are disabled. 2013-06-13 09:18:47 +01:00
KHobbits
954695116c Merge pull request #485 from necrodoom/patch-29
no permissions is not an error, so dont output it as a warning
2013-06-12 02:59:55 -07:00
Necrodoom
c221cf66f5 no permissions is not an error, so dont output it as a warning 2013-06-12 12:41:15 +03:00
KHobbits
85aa487b45 Merge branch 'temp1' into 2.9 2013-06-11 20:50:24 +01:00
KHobbits
a254644180 Merge branch 'release' of github.com:essentials/Essentials into 2.9 2013-06-11 20:46:28 +01:00
Iaccidentally
568741b460 Cleanup imports 2013-06-11 20:45:12 +01:00
KHobbits
5a75823b85 Restore support for replacing CAPITAL colour codes. 2013-06-11 16:38:24 +01:00
KHobbits
f6b52a87f7 Don't look up valid looking IP's in the player database. 2013-06-09 23:10:02 +01:00
Iaccidentally
eff86fba0f Remove old permissions handlers that are no longer used. This fixes an issue where new versions of Bpermissions would be detected as old. 2013-06-09 14:38:27 -04:00
KHobbits
b23d6a6db1 Allow use of deprecated teleport function through interface. 2013-06-09 13:38:09 +01:00
theudis
123bffc32b Update messages_fr.properties
Small changes in what I had done previously.
2013-06-09 03:09:20 +01:00
Necrodoom
c8e21b6825 Fix arg length checks on /exp 2013-06-09 03:07:35 +01:00
cexikitin
8f0ab2ccde Alert give sender that the user was unable to receive all the items. 2013-06-09 03:05:40 +01:00
KHobbits
62edbc044c Split util classes. 2013-06-08 22:31:19 +01:00
KHobbits
ea62dfc474 Cleanup ITarget 2013-06-08 21:43:42 +01:00
KHobbits
421a6b7462 Turn Target into a real class. 2013-06-08 21:40:02 +01:00
KHobbits
393677e1d5 Trapdoors should be treated as half blocks, not transparent blocks. 2013-06-08 21:26:11 +01:00
KHobbits
cbc7aee85e Teleport invulnerability should trigger on respawn as well as normal teleport. 2013-06-08 21:06:33 +01:00
KHobbits
db5f1f1d33 Essentials API cleanup and teleport possession fixing. (UNSTABLE) 2013-06-08 19:34:14 +01:00
KHobbits
eea791be90 Throw a little testing on toggle logic. 2013-06-08 16:33:30 +01:00
KHobbits
31b6f8971c Try and make toggles DRYer without loosing command flow.
Allow socialspy to match multiple players.
2013-06-08 15:13:51 +01:00
KHobbits
e8061f2e4d Allow spawning zombies without the trademark gold boots.
Also limit armor to zombies and skeletons.
2013-06-05 03:15:12 +01:00
KHobbits
5a2e6bc923 Fix unit tests. 2013-06-02 17:56:48 +01:00
KHobbits
7479620a97 Attempt to fix /seen times on vanish. 2013-06-02 17:45:56 +01:00
KHobbits
4f35ec2592 Mute and sudo should check for essentials.vanish.interact permission. 2013-06-02 16:09:56 +01:00
KHobbits
32d65bd468 Allow spawning zombies with swords too. 2013-06-02 00:09:12 +01:00
KHobbits
9adb02e24d [Feature]Extend spawning mob meta to allow more customized spawning:
/spawnmob (skeleton|zombie|pigzombie):(diamond|iron|gold)armor
2013-06-02 00:02:40 +01:00
KHobbits
4928948b48 [Fix] Set some default mob data.
Fixes skeletons spawning without bows.
2013-06-01 23:33:31 +01:00
KHobbits
0a32bb9358 Update Essentials spawn to use new kit params. 2013-05-27 02:29:28 +01:00
KHobbits
7391c6d150 Better handle kit item casting. 2013-05-27 02:25:30 +01:00
KHobbits
cce9b9f71c Ignore extra spaces in kit config. 2013-05-26 23:53:39 +01:00
KHobbits
0104373beb Exempt [repair] signs from 'essentials.repair.all' permissions check. 2013-05-26 22:00:35 +01:00
KHobbits
324cc3b45c Update inventory when closing ghost-dupe-able inventory, to remove ghost items. 2013-05-26 18:21:19 +01:00
KHobbits
2ea36e47b3 Reduce duplicated broadcast code. 2013-05-26 17:58:04 +01:00
KHobbits
d94ec6f601 Simplify player matching. 2013-05-26 17:37:11 +01:00
KHobbits
5fabaf030b Standardize /getpos and /whois to use essentials.vanish.interact like all other commands. 2013-05-26 17:20:03 +01:00
KHobbits
579b4603a2 GeoIP already has a perm, doesn't need hidden behind essentials.seen.extra as well. 2013-05-26 16:52:25 +01:00
KHobbits
104edda8d1 Show teleport cancel messages to tpa user. 2013-05-26 16:49:11 +01:00
KHobbits
2bc9b0946f Fix /helpop for console use. 2013-05-26 16:23:36 +01:00
KHobbits
612973d813 [Fix] Fix vanished player matching in: /seen /give /burn /nuke /tpall /tpaall 2013-05-26 16:02:40 +01:00
KHobbits
f80ab48c20 Forgot to push Essentials spawn changes. 2013-05-24 00:10:39 +01:00
KHobbits
f36f43ca19 Improve hidden player matching.
Replace essentials.teleport.hidden with essentials.vanish.interact
Fix perm checks in tpall and tpaall
2013-05-23 22:59:09 +01:00
KHobbits
76d35d3e4b Fixing feed messages. 2013-05-23 22:12:54 +01:00
KHobbits
710c0f5edf Improve user matching 2013-05-20 18:50:14 +01:00
KHobbits
9ad49f9e98 Don't throw NPE on broken sign state, just allow block to break. 2013-05-19 01:21:21 +01:00
KHobbits
1e9c0917ab Default chat formatting should strip all format codes, not just colours. 2013-05-19 01:03:54 +01:00
KHobbits
9e8bf18f28 Add indication of when kit's cannot be used yet, in the /kit output. 2013-05-18 23:27:41 +01:00
KHobbits
ec99f38069 Tidy up /gc's TPS output. 2013-05-18 21:42:02 +01:00
KHobbits
b008cdc5f6 [Feature] Add hunger level to /whois 2013-05-18 18:20:06 +01:00
KHobbits
18b9fe6a5e Fix null when trying to tempban players in console for times longer than max ban. 2013-05-18 17:57:05 +01:00
KHobbits
174e12d897 Tweak /baltop to not show displaynames on vanished players. 2013-05-12 21:19:54 +01:00
KHobbits
f157ebb3e9 Tiny listener optimizations. 2013-05-12 20:59:07 +01:00
KHobbits
38d8eb6824 Small tweak to warning display and make config variable 'economy-lag-warning' set in ms not ns. 2013-05-12 16:31:40 +01:00
KHobbits
b3c560ec34 Make the lag warning configurable, useful to debug economy lag on larger servers. 2013-05-12 16:10:41 +01:00
KHobbits
18bc02427d Throw console warning on slow economy api call. 2013-05-12 04:12:34 +01:00
GunfighterJ
3c8b9af2cb [Fix] Check initial direction when looking for a safe teleport spot 2013-05-10 11:21:39 -05:00
KHobbits
4777c083a6 Don't treat AFK players as god mode when dealing with food regen. 2013-05-09 17:44:10 +01:00
snowleo
37b1d66a78 Update ItemDb.java 2013-05-08 00:53:37 +03:00
snowleo
cb7e304330 Doesn't need this 2013-05-08 00:52:39 +03:00
KHobbits
9fffadf220 [Feature] Withdraw from trade signs without dropping items as overflow. [EXPERIMENTAL] 2013-05-06 23:09:31 +01:00
KHobbits
a4a1c63f5c Add some sign debugging to /ess debug to help track down charging issues. 2013-05-05 22:37:28 +01:00
KHobbits
1a7c125b72 Couple more bits of Eco cleanup 2013-05-05 20:05:28 +01:00
KHobbits
8c541ecdd4 Fix /sell to handle zero priced items again. 2013-05-05 19:59:35 +01:00
snowleo
c52c22a9e9 Make it compatible with Factions again. 2013-05-05 19:00:21 +03:00
snowleo
158e957eb7 Catch both exceptions in EssentialsConf and valueOf instead of new 2013-05-05 11:55:39 +02:00
snowleo
3a268ea11d Cleanup 2013-05-05 11:42:53 +02:00
snowleo
9ceee255d9 ECONOMY MADNESS? THIS IS … FIXED 2013-05-05 11:41:19 +02:00
snowleo
81310aae87 fix NPE in teleport code 2013-05-05 11:08:49 +03:00
KHobbits
5c62ede70b Further economy cleanup 2013-05-05 08:03:06 +01:00
KHobbits
e3e184920b Cleanup player argument matching in loops
Cleanup ess cleanup timestamp matching
2013-05-05 07:15:33 +01:00
KHobbits
d0c60bab0a Economy Madness 2013-05-05 05:12:17 +01:00
KHobbits
e2338d937f Trim stored precision to below that of a double, to prevent rounding issues. 2013-05-05 01:23:07 +01:00
theudis
b8ea75ba5b Update messages_fr.properties 2013-05-04 21:56:32 +01:00
KHobbits
7aa0ce11f7 Update CS translation with some extra TL keys from tommymortago 2013-05-04 19:34:55 +01:00
KHobbits
4b603e89b1 Sorted TL files 2013-05-04 19:22:44 +01:00
pa001024
dbef226b71 update zh-locate 2013-05-04 18:32:44 +01:00
Necrodoom
c98401ba06 Throw invalid kit message on invalid delay 2013-05-04 18:26:34 +01:00
KHobbits
b071e07101 cleanup 2013-05-04 18:22:55 +01:00
KHobbits
89768f47e3 [Feature] Make /kit list kit costs if any are set. 2013-05-04 18:11:35 +01:00
KHobbits
282ba911ca Merge pull request #465 from skmedix/patch-1
Update Polish translation
2013-05-04 08:55:18 -07:00
KHobbits
b9966f904e [Permission] Add essentials.repair.all permission, which is required to unlock /repair all
Also make it to /repair defaults to hand.
2013-05-04 16:06:06 +01:00
KHobbits
cf052e0403 [Fix] Allow Feed to be used via console
Throw events when modifying heath or food levels.
2013-05-04 16:04:59 +01:00
snowleo
46c24b52a9 Remove User instance from Teleport class 2013-05-03 01:53:54 +02:00
snowleo
ac11e2ee2b Don't trust File.length() 2013-05-03 01:26:51 +02:00
snowleo
ff0efdd9dc Do not keep hard references to User objects 2013-05-03 01:15:02 +02:00
snowleo
bdde309ab5 *angry eyes* 2013-05-03 00:25:07 +02:00
snowleo
95f386e4f1 Fix cleanup to not hold Users in memory. 2013-05-03 00:12:40 +02:00
Iaccidentally
b8856659d1 Update libs for 1.5.2 :: Minimum CB version now 2763 2013-05-02 11:54:05 -04:00
SKmedix
0c1b6bc18a Update messages_pl.properties
Changelog:
---
* Added:
kitError2 (216)
kitNotFound (536)
socialSpy (537)
setBal (538)
insufficientFunds (540)

* Fixed:
backUsageMsg (21)
banFormat (28)
bedMissing (30)
connectedPlayers (58)
downloadingGeoIp (91)
fullStack (125)
geoIpUrlEmpty (131)
geoIpUrlInvalid (132)
healOther (148)
itemSpawn (200)
jailReleased (206)
jailSentenceExtended (208)
jailSet (209)
kickedAll (213)
kitInvFull (221)
kitOnce (222)
markMailAsRead (239)
matchingIPAddress (242)
messageTruncated (246)
nickChanged (272)
removed (376)
repairNone (381)
teleportAll (419)
tempBanned (434)
thunderDuration (437)
timeSet (442)
totalWorthAll (446)
totalWorthBlocks (447)
tradeSignEmpty (450)
youAreHealed (520)
youHaveNewMail (521)
balanceOther (527)
2013-04-30 20:34:33 +03:00
Iaccidentally
edceda8c3c Minor cleanup 2013-04-30 12:57:38 -04:00
Iaccidentally
12c379697a Fix some tl keys :: update Portuguese translation 2013-04-30 12:26:09 -04:00
Iaccidentally
648f78699c API & misc cleanup 2013-04-30 12:25:25 -04:00
Iaccidentally
9b1fe33419 Merge pull request #460 from main--/2.9
Made the "throws" declaration of getWarps() more specific
2013-04-30 08:30:41 -07:00
KHobbits
9a3dad918f Support /me in console 2013-04-30 02:24:30 +01:00
KHobbits
2093f1b661 Allow powertool to be set from console. 2013-04-30 02:18:22 +01:00
KHobbits
892ee13aea Fix tests. 2013-04-30 01:50:02 +01:00
KHobbits
047ef63e55 Move spawnmob.stack perm check to the right place. 2013-04-30 01:37:39 +01:00
KHobbits
31d9b1fab4 [Fix] Stacked mobs count towards spawnmob-limit count. 2013-04-30 01:04:40 +01:00
KHobbits
b50ec3406e Fix currency rounding up. 2013-04-30 00:35:39 +01:00
KHobbits
5513b62d98 Fix TL messages. 2013-04-30 00:18:53 +01:00
KHobbits
a6c55a1d9e Fix Eco take bug and fix NPE 2013-04-30 00:07:28 +01:00
KHobbits
57d6fb12b5 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2013-04-29 23:50:49 +01:00
GunfighterJ
a76385b5d3 Remove ArrayListInput
Formatting
2013-04-29 14:04:59 -05:00
main()
2fd56f2c0b Made the "throws" declaration of getWarps() more specific
It is very difficult to handle an Exception thrown by an API method when you don't have any way to **programatically** (without dirty stuff like string comparisons, so the message is not enough) distinguish errors and find out what's going on.
2013-04-29 20:29:42 +02:00
GunfighterJ
b05c56db02 Add keyword replacements in kits
Add SimpleTextInput constructor for lists
Variable refactoring for clarity.
2013-04-29 06:31:08 -05:00
Iaccidentally
5848a5c2ec cleanup last commit a bit 2013-04-28 17:22:11 -04:00
Iaccidentally
ff3733c1b7 [API] Add a warp api, with future 3.x support :: minor cleanup 2013-04-28 16:23:45 -04:00
KHobbits
4f6bc7420f Fix ZH TL messages 2013-04-28 14:18:19 +01:00
pa001024
2c0e87a79b Add China/Hong Kong/Taiwan Translations 2013-04-28 14:12:21 +01:00
Iaccidentally
081b81d081 [CHANGE] Rewrite eco command with better logic :: the command will now attempt to do exactly what it is told, with respect to the minimum balance :: fix missing messages 2013-04-27 23:44:23 -04:00
KHobbits
0e8e6178fc [Fix] Try singular and plural entity names in /remove. 2013-04-28 04:26:39 +01:00
Necrodoom
70a364894f Fix radius in /remove and add world.
Fix SocialSpy
Fix /killall world argument.
2013-04-28 04:20:28 +01:00
Necrodoom
a9052b5d40 [Feature] Add /socialspy other 2013-04-28 03:44:24 +01:00
KHobbits
376955e1cc Update Polish translation by skmedix 2013-04-28 03:31:18 +01:00
Necrodoom
8f6193bf8a [Fix] Output proper message if typo'd kit 2013-04-28 03:22:31 +01:00
snowleo
56beab083c Update Commandgc.java 2013-04-23 08:57:22 +03:00
snowleo
97238b82ed Derp, still need currentTime 2013-04-23 08:55:02 +03:00
snowleo
2d339a1307 Fix tps after Timer changes 2013-04-23 08:51:25 +03:00
snowleo
1b6f1a88db Allow to forceSave conf files 2013-04-23 00:47:45 +02:00
snowleo
9b821545fd Delayed write to file (experimental) 2013-04-22 23:31:11 +02:00
U-SFX\wardcg
27853b78f8 Merge remote-tracking branch 'origin/groupmanager' into 2.9 2013-04-23 01:02:31 +10:00
KHobbits
bb9c62e4de Minor TP and timer tweaks. 2013-04-22 00:11:13 +01:00
KHobbits
df159a3def Attempt to smooth out timer usage.
Add extra sign metrics.
2013-04-21 23:39:50 +01:00
snowleo
4b095bc9c3 Restrict EssentialsTimer to 10ms execution time 2013-04-22 01:23:21 +03:00
Iaccidentally
0b05211041 [FEATURE] Add kill exempt :: new permission: essentials.kill.exempt
players with essentials.kill.force and console will still be able to override this
2013-04-19 14:40:10 -04:00
Iaccidentally
9bb2e8ceb5 Merge pull request #453 from necrodoom/patch-20
[FIX] ID 18, 29, 33 invalid damage values and more
2013-04-19 10:32:47 -07:00
ElgarL
3dba6faccc Merge pull request #452 from evonuts/groupmanager
Minor grammatical changes to config.yml
2013-04-19 09:57:16 -07:00
Necrodoom
9d6362f625 [FIX] ID 18, 29, 33 invalid damage values and more
expand IDs 98:1, 98:2, 98:3
2013-04-19 19:43:22 +03:00
GunfighterJ
afdb9539a5 Fix NPE on invalid enchant 2013-04-19 10:06:43 -05:00
evonuts
ee36420e5d Minor grammatical changes to config.yml 2013-04-19 12:13:09 +12:00
Iaccidentally
e32a3a289c [Feature] Add a blacklist for what dispensers can dispense to antibuild 2013-04-16 17:01:01 -04:00
Iaccidentally
c43b30693d [UPDATE] Update to 1.5.1-r0.2 beta build 2013-04-16 16:59:36 -04:00
Iaccidentally
4907ddd775 Clean up last commit 2013-04-16 16:16:07 -04:00
Iaccidentally
053c5b0668 [FIX] Update user activity when shooting a bow 2013-04-16 15:58:13 -04:00
GunfighterJ
2e543828d6 Allow permission control of stacked mobs
Adds essentials.spawnmob.stack to allow stacking of more than one mob using the /spawnmob command

Adds https://www.assembla.com/spaces/essentials/tickets/4050
2013-04-14 15:01:25 -05:00
snowleo
3da69fca76 Changing that name too, thanks jomp16 2013-04-14 12:30:30 +03:00
snowleo
881459b702 Threading Fix 2013-04-14 04:44:16 +03:00
KHobbits
70e84453ff Remove duplicate perm. 2013-04-13 23:50:17 +01:00
KHobbits
915391124d Check threading on backup init. 2013-04-13 23:10:09 +01:00
GunfighterJ
1fd8ce5daf Merge pull request #438 from GunfighterJ/2.9
Add Romanian translation
2013-04-08 17:27:16 -07:00
GunfighterJ
fb5f379951 Add Romanian translation 2013-04-06 17:13:59 -05:00
GunfighterJ
209e925666 [Feature] pweather command 2013-04-06 16:20:12 -05:00
snowleo
d6c85a0d0d Still need that check 2013-04-06 18:40:42 +03:00
snowleo
12a1dac02d Math fail 2013-04-06 18:38:49 +03:00
snowleo
b3b30ced9b Fix § at end of line 2013-04-06 18:37:13 +03:00
KHobbits
14a552f295 Balance others message. 2013-04-06 05:54:44 +01:00
KHobbits
255ff82729 Fix group name when using wildcard group definitions. 2013-04-06 05:05:28 +01:00
ementalo
ac535db329 Remove GB from main build.xml 2013-04-04 20:49:55 +01:00
ementalo
235e52e0fa [update] Remove GroupBridge 2013-04-04 20:45:09 +01:00
KHobbits
ced281fb5c Missing file update. 2013-04-04 08:45:08 +01:00
KHobbits
8272257883 Update Bukkit for 1.5.1-R0.1 Beta.
CB: 2735 Bukkit: 1741
2013-04-04 08:39:57 +01:00
Paul A.
08b04bcb1a Merge pull request #435 from GunfighterJ/2.9
[Fix] NPE on ptime from console
2013-04-02 08:31:42 -07:00
GunfighterJ
61e5d2df7a [Fix] NPE on ptime from console 2013-04-02 10:21:20 -05:00
Iaccidentally
889e44908d Merge pull request #431 from GunfighterJ/2.9
Show Geolocation in /seen
2013-04-01 14:20:42 -07:00
GunfighterJ
6de8ce0d59 Show Geolocation in /seen
Refactor argument for clarity
2013-04-01 16:00:09 -05:00
KHobbits
eab3375c3f Block sign interact if player is dead. 2013-04-01 05:23:04 +01:00
KHobbits
0974ff935d Merge pull request #428 from necrodoom/patch-15
readd "forest" and "jungle"
2013-03-31 08:27:26 -07:00
Necrodoom
df69ed43e7 readd "forest" and "jungle" 2013-03-31 18:26:38 +03:00
KHobbits
fc6397e739 For group overflow, add a little colour. 2013-03-30 02:40:20 +00:00
KHobbits
1ea74f6205 Use original casing in config file group name. 2013-03-30 02:36:09 +00:00
Iaccidentally
81e53662c6 [FIX] add itemframe support to remove 2013-03-29 22:20:54 -04:00
KHobbits
ab1d6c0aba Prevent sign healing when the player is recently dead. 2013-03-29 14:37:30 +00:00
SKmedix
9df9f46259 Update messages_pl.properties
Update Polish translation.
2013-03-29 03:19:43 +00:00
Necrodoom
dbf9b54018 [Fix] Allow console to afk others 2013-03-29 03:16:18 +00:00
Necrodoom
7e6275fa99 wipe too general log name aliases 2013-03-29 03:13:03 +00:00
Necrodoom
bdd3efc260 [Fix] Sudo allowed on vanished players. 2013-03-29 03:10:45 +00:00
Necrodoom
29a6ccdee1 prevent confusion at /ci code 2013-03-29 03:04:54 +00:00
KHobbits
6fc5ce3af5 Spacing. 2013-03-29 03:01:53 +00:00
KHobbits
5b5b873af9 Fixing casing and formatting issues in /list 2013-03-29 02:59:55 +00:00
KHobbits
9ad0bb9fbd Merge pull request #423 from kukelekuuk00/patch-1
[Fix] Strip colourcodes from groups in /list (internal only)
2013-03-28 19:50:50 -07:00
ElgarL
fd1e725d0e another string fix. 2013-03-28 16:08:59 +00:00
ElgarL
cac4850c42 More Necrodoom fixes. 2013-03-28 15:38:18 +00:00
ElgarL
0b28db383d Fix loops. 2013-03-28 13:10:17 +00:00
ElgarL
a7f6dd2f3e Merge pull request #371 from necrodoom/patch-72
add new commands and others
2013-03-28 05:59:35 -07:00
Luuk Jacobs
ddfba595c9 [Fix] Strip colourcodes from groups
This way groups with colourcodes in the middle of the name work with /who <groupname> ie. §4S§cerveradmin
2013-03-26 11:43:45 +01:00
Iaccidentally
77237b4143 Merge pull request #409 from GunfighterJ/2.9
[Feature] Stack more mobs with /spawnmob
2013-03-22 14:39:55 -07:00
GunfighterJ
711a6c234a [Feature] Stack more mobs with /spawnmob
Uses same syntax, now supports more than 2 mobs
2013-03-22 16:35:01 -05:00
KHobbits
138a916883 Abort user login code, if user disconnects before it runs. 2013-03-21 22:30:02 +00:00
KHobbits
5f32b80ba0 Don't allow an empty list value. 2013-03-21 21:41:30 +00:00
KHobbits
f8afa46be9 Tweak ess version 2013-03-21 21:12:58 +00:00
KHobbits
b955399e49 Add the max-walk-speed config variable back to the default config file. 2013-03-20 23:24:45 +00:00
SKmedix
0022614300 Update messages_pl.properties
Update Polish translation.
2013-03-20 08:53:00 +00:00
KHobbits
ec9bd64029 Use correct getPlayer method to not match offline users. 2013-03-20 01:29:54 +00:00
KHobbits
fb71b08d0e [Permission] essentials.vanish.interact - Players with this permission will be able to interact with hidden players. 2013-03-20 01:00:50 +00:00
KHobbits
58c5b47aad Add some missing hidden checks 2013-03-19 23:24:06 +00:00
KHobbits
80ab850abc Try to unify player matching for hidden users:
kill, lightning and ptime still need cleanup
2013-03-19 23:17:34 +00:00
KHobbits
6bfd722200 [Fix] Reset walk/fly speed on login.
[Permission] essentials.speed.<fly|walk> - If a player only has one of these, they will only be able to toggle the given state.
2013-03-19 22:55:00 +00:00
KHobbits
b1e9d13ee4 Don't close inventories every plugin disable, just our own. 2013-03-19 21:05:12 +00:00
Necrodoom
13782722d9 [Fix] Print correct sender name on /spawn player from console. 2013-03-19 20:59:02 +00:00
Necrodoom
69af6bf441 Fix exception in /heal, "playernotfound" should be exception. 2013-03-19 20:56:50 +00:00
KHobbits
3d567401e9 Use original case for default /list groups. 2013-03-19 18:34:28 +00:00
KHobbits
89929a3849 readmeupdate 2013-03-19 14:32:23 +00:00
Necrodoom
4c88091551 kittycannon should actually fire kittens 2013-03-19 14:31:34 +00:00
Necrodoom
c0f31ae777 console should be able to mute admins 2013-03-19 14:09:30 +00:00
Necrodoom
dd55e9188f [Fix] offline player matching for online only commands.
/kick,/warp, /burn & /tppos should only match online players
2013-03-19 14:07:42 +00:00
KHobbits
1aa6ea13b5 Pull the default list behavior from the old 'sort-list-by-groups' variable if it exists. 2013-03-19 09:00:50 +00:00
KHobbits
8eb61298d7 Add Travis notifications 2013-03-18 23:48:01 +00:00
KHobbits
2163929a1d Try different ant command 2013-03-18 23:35:00 +00:00
KHobbits
1f306b9ea1 Travis 2013-03-18 23:27:15 +00:00
KHobbits
79593fdcd2 Merge pull request #396 from GunfighterJ/2.9
Allow potion clear/apply commands to work
2013-03-18 16:20:45 -07:00
KHobbits
45b2ef9384 Minor code cleanup 2013-03-18 23:15:18 +00:00
KHobbits
50b196a9e4 Cleanup: Run Kukes code through a dryer, add more comments. 2013-03-18 22:43:05 +00:00
GunfighterJ
0825ed0fa5 Allow potion clear/apply commands to work 2013-03-18 11:21:28 -05:00
KHobbits
1398a27e74 Edit default config to not cause confusion. 2013-03-18 08:59:40 +00:00
KHobbits
401c2bbdbf Cleanup: Comment and simplify /list code - More to do. 2013-03-18 08:53:12 +00:00
KHobbits
611173ed50 Cleanup - Split /list into methods 2013-03-18 08:16:34 +00:00
kukelekuuk00
94fdf2c3ef fixes and addition of '*' to match all unmatched users. 2013-03-18 06:16:02 +00:00
kukelekuuk00
61948a9e4d Added /list [group] and some more detailed configuration regarding /list 2013-03-18 06:16:02 +00:00
GunfighterJ
e6aff5a5e9 Potion erroring and duration/power fix 2013-03-18 06:14:44 +00:00
Necrodoom
681a906014 update IDs 27, 28, 66, 157
update rails aliases to match bukkit item names
2013-03-18 06:14:00 +00:00
GunfighterJ
1d3da2d700 [Fix] Potion erroring and duration/power fix 2013-03-17 13:34:10 -05:00
KHobbits
34cf1d6cee [Fix] Restore /speed command's ability to control walk speed. 2013-03-17 06:38:24 +00:00
KHobbits
5b6e8228e4 Fixing TL edit error. 2013-03-16 12:17:13 +00:00
Necrodoom
0e7e0783ab Update messages.properties
fix typos in new messages
2013-03-16 12:15:57 +00:00
KHobbits
706143f916 Fix raw bukkit itemdb lookup 2013-03-16 12:11:03 +00:00
KHobbits
80976fa09e Cleanup open inventories 2013-03-16 11:01:56 +00:00
KHobbits
156a7f6b8a Import cleanup 2013-03-16 09:19:30 +00:00
KHobbits
c9c68c1113 Fix potion effect errors 2013-03-16 09:13:21 +00:00
KHobbits
af32128a83 Fix Minecart class rename
Lets use consistent versions in the code base
Bukkit: 1700 CB: 2648
2013-03-16 08:55:39 +00:00
KHobbits
c46ad29cc4 We use tabs not spaces for indenting. 2013-03-16 08:43:52 +00:00
KHobbits
ddca0c30eb Check health is 0 after /suicide 2013-03-16 08:42:24 +00:00
KHobbits
e08309941d Fix missing /ci syntax update. 2013-03-16 08:32:21 +00:00
Alexander Schepp
582e90c0d7 Merge pull request #388 from GunfighterJ/2.9
[Feature] Additional spawnable mob types
2013-03-15 13:44:43 -07:00
GunfighterJ
1e7acce345 [Feature] Additional spawnable mob types 2013-03-15 15:41:23 -05:00
Alexander Schepp
e55b9df46c Merge pull request #387 from GunfighterJ/2.9
Initial 1.5 update
2013-03-15 12:59:50 -07:00
GunfighterJ
9a45f780fe Initial 1.5 update 2013-03-15 14:54:51 -05:00
Alexander Schepp
3e55913fcf Merge pull request #342 from necrodoom/patch-60
[feature] update items.csv to minecraft 1.5
2013-03-15 12:25:09 -07:00
KHobbits
d646989b78 Merge pull request #383 from necrodoom/patch-73
[fix] trying to AFK others should work now
2013-03-15 06:28:56 -07:00
KHobbits
13fd8a896f Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9 2013-03-14 18:01:50 +00:00
Iaccidentally
5b72bfa81f Merge pull request #385 from Skylexia/patch-1
[Fix] Fixing message (Tl key).
2013-03-13 17:41:10 -07:00
Skylexia
eb734996ec Fixing message. 2013-03-13 20:23:01 -03:00
KHobbits
0ef3bee594 Fix missing console notifications on /unban and /unbanip 2013-03-12 22:26:24 +00:00
Necrodoom
7a2e029073 [fix] trying to AFK others should work now 2013-03-11 15:36:12 +02:00
KHobbits
839ded00e9 Fixing ban ip broadcast notification. 2013-03-11 10:33:59 +00:00
KHobbits
f876083f56 Fix Essentials version display 2013-03-11 02:01:57 +00:00
KHobbits
47a0582cf7 Fixed lost TL. 2013-03-10 23:43:13 +00:00
Skylexia-PC
d9543d2250 Shows IP unbans to online staff. 2013-03-10 23:41:17 +00:00
Necrodoom
36304c1ed0 readd some checks 2013-03-10 14:42:03 +02:00
KHobbits
92e973fc22 Merge pull request #380 from Skylexia/2.9
[Feature] Broadcast unbans to online staff.
2013-03-10 00:38:09 -08:00
Skylexia-PC
d7e1e3198d Update tl properties to remove unused properties. 2013-03-10 04:37:04 -04:00
Skylexia-PC
f052dbdcfe [Feature] Broadcast unbans to online staff. 2013-03-10 03:22:35 -04:00
KHobbits
e3ff9f2803 Use lower locale. 2013-03-10 02:04:11 +00:00
KHobbits
d0940c9ad8 Protect us from npe. 2013-03-10 02:01:59 +00:00
Iaccidentally
f5c8e832e4 Merge pull request #379 from GunfighterJ/2.9
Allow potion meta to work
2013-03-09 16:46:59 -08:00
GunfighterJ
bccb85756e Allow potion meta to work
Instead of denying if they have perms
2013-03-09 18:38:59 -06:00
KHobbits
6253a23fed Fix TL key casing. 2013-03-09 21:41:30 +00:00
KHobbits
d099572514 [Fix] Allow /nick to change nickname case, without adding prefix character. 2013-03-09 14:24:19 +00:00
KHobbits
92987ac129 [Fix] Move allowunsafe enchant perm to: essentials.enchantments.allowunsafe 2013-03-09 14:02:34 +00:00
KHobbits
cb98f1bdb9 [Fix] Move all enchant type perms to: essentials.enchantments.<enchant>
[Fix] Move all potion effect perms to: essentials.potions.<effect>
[Fix] Move multiple potion perm to: essentials.potions.multiple
Other perms: essentials.itemspawn.meta-(firework|firework-multiple|firework-power|name|lore|head|book|chapter|chapter-<chapter>|author|title)
2013-03-09 13:56:38 +00:00
Necrodoom
c6380f8009 fix alias 2013-03-09 15:12:15 +02:00
KHobbits
f7f1932480 Merge pull request #378 from Skylexia/2.9
Fixing exp trading type.
2013-03-08 14:08:08 -08:00
Skylexia-PC
2582e94c8f Fixing exp trading type. 2013-03-08 17:04:54 -05:00
KHobbits
aacbaef98c Allow item/item trades still. 2013-03-08 12:34:11 +00:00
KHobbits
d379d0587b Merge pull request #370 from necrodoom/patch-71
[fix] EssentialsAntiBuild shouldn't run without Essentials
2013-03-08 04:01:08 -08:00
KHobbits
eaf6332534 Clean up meta error messages.
Add enchant perm checks back.
2013-03-07 03:17:58 +00:00
KHobbits
44d651e219 Don't check people for meta perms when using kits. 2013-03-07 02:57:25 +00:00
KHobbits
394966eda2 Merge pull request #375 from GunfighterJ/patch-15
[Feature] Adds meta permissions
2013-03-06 18:46:55 -08:00
KHobbits
5b302c7378 [Fix] Prevent same item type trades on signs, prevents amount confusion scams. 2013-03-07 02:42:47 +00:00
KHobbits
bfc5385032 Fix cleanup comparison number base 2013-03-06 23:39:11 +00:00
KHobbits
d9419cdfac Add cleanup logging to debug mode. 2013-03-06 22:36:36 +00:00
GunfighterJ
22a5e7d2ef [Feature] Adds meta permissions
TL MetaItemStack.java
Some meta cleanup
Parameter refactor for clarity
Full list of added perms http://goo.gl/do1XL
2013-03-06 15:09:51 -06:00
KHobbits
49c98eda42 Fix a color code mistake. 2013-03-06 20:46:19 +00:00
KHobbits
579b5fbded Sort TL files. 2013-03-06 17:44:05 +00:00
Necrodoom
dc7a594142 add armor aliases since new leather names 2013-03-05 18:56:40 +02:00
KHobbits
46f1012f9a [Fix] Unify item spawning permissions in /give 2013-03-03 20:33:23 +00:00
Necrodoom
7664e546ca add mising isopoverride check 2013-03-03 18:35:05 +02:00
KHobbits
218a922f53 Merge pull request #372 from skmedix/patch-21
Update messages_pl.properties
2013-03-02 09:43:35 -08:00
SKmedix
15a50da403 Update messages_pl.properties
Update Polish translations.
---
Date: 2.03.13

---
Added "playerBanIpAddress" (27)
2013-03-02 18:41:04 +01:00
KHobbits
190599ab5e Fix /banip so it compiles, also throw it through a DRYer. 2013-03-02 17:08:22 +00:00
Necrodoom
487285ed1a Include IP address when banning IP 2013-03-02 17:08:16 +00:00
Necrodoom
b3ece8c5e6 add new commands, add alias to listgroups 2013-03-02 10:03:45 +02:00
Necrodoom
f6b1e76e72 Update GroupManagerPermissions.java 2013-03-02 09:56:38 +02:00
Necrodoom
02cc0c7f88 fix clear commands change mandemote and manpromote
dont make manpromote and mandemote act like manuadd when OP, 3 manuadd commands arent needed.
2013-03-02 09:50:31 +02:00
Necrodoom
3b89e81211 messages fix, add /manuclearp and /mangclearp 2013-03-01 20:48:12 +02:00
ementalo
49bda8ef1d Remove reference to c3p0 from build.xml 2013-02-28 21:23:33 +00:00
ementalo
30805b3aa8 [Breaking] Remove protect database functionality for protecting signs and rails.
- Removed config entries
- Removed c3p0 lib
2013-02-28 21:02:37 +00:00
Necrodoom
c1c352694d [fix] essantibuild shouldnt run without essentials 2013-02-28 19:04:05 +02:00
KHobbits
7480208859 Merge pull request #369 from TheReverend403/2.9
Fix geoip messages
2013-02-28 05:32:42 -08:00
Lee Watson
8d6df3ba3b Updated ALL local files 2013-02-28 13:23:28 +00:00
KHobbits
6f88c9babd Merge pull request #364 from necrodoom/patch-69
deny empty warp name
2013-02-28 04:55:40 -08:00
KHobbits
3472d10bae Merge pull request #357 from skmedix/patch-20
Update Essentials/src/messages_pl.properties
2013-02-28 04:53:58 -08:00
KHobbits
f136478cdb [Fix] Charging players at wrong point in /spawn 2013-02-28 12:52:22 +00:00
KHobbits
2de2c216fb Add extra trade log messages for sign charges. 2013-02-28 03:15:21 +00:00
Necrodoom
94a0cb684b deny empty warp name 2013-02-26 19:07:10 +02:00
ElgarL
9d962f109d Merge pull request #361 from necrodoom/patch-66
add catches for the last 2 config settings
2013-02-26 08:49:40 -08:00
ElgarL
b106e0b87b Merge pull request #362 from necrodoom/patch-67
fix a few groupmanager.java errors
2013-02-26 06:43:31 -08:00
Necrodoom
508c16e3b3 change commandblock message 2013-02-26 13:05:45 +02:00
Necrodoom
fbbb21e3d0 fix a few groupmanager.java errors 2013-02-26 12:27:05 +02:00
Necrodoom
bb4fb78975 add catches for the last 2 config settings 2013-02-26 12:17:26 +02:00
Iaccidentally
d7985c906a This is still needed. 2013-02-25 22:44:52 -05:00
KHobbits
5060048a31 Revert "[Spawn] Please join me in welcoming EssentialsSpawn to Java 1.6 and modern bukkit.
This reverts commit 276f0f8972.
If you don't understand the code, don't touch it.
2013-02-26 03:30:11 +00:00
Iaccidentally
f994f0eb1d Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-02-25 22:01:49 -05:00
Iaccidentally
276f0f8972 [Spawn] Please join me in welcoming EssentialsSpawn to Java 1.6 and modern bukkit. :: http://i.imgur.com/79Izo.jpg 2013-02-25 22:01:06 -05:00
Iaccidentally
5fa1342159 Merge pull request #360 from GunfighterJ/patch-15
[Protect] Prevent creepers from breaking paintings if their explosions a...
2013-02-25 18:46:44 -08:00
GunfighterJ
7507fcdc05 [Protect] Prevent creepers from breaking paintings if their explosions are disabled.
Backport from 3.0
2013-02-25 17:15:20 -06:00
ElgarL
2ade9d28ba Show the world a group change is made in when using notify. 2013-02-25 14:11:42 +00:00
ElgarL
f032c84513 Store worldSelection indexed on the senders name rather than the object
(fixes commandblocks using manselect).
2013-02-25 13:49:18 +00:00
ElgarL
70aaf168e5 Only prevent adding nodes with '/manuaddp' and '/mangaddp' if they are
exact matches (not wildcards).
2013-02-25 12:47:23 +00:00
ElgarL
455b12eb5d Warn when adding a node where an exception already exist. 2013-02-25 10:46:16 +00:00
ElgarL
d219c63bd2 Don't allow adding a node with '/manuaddp' and '/mangaddp' which is
already negated.
2013-02-25 10:27:01 +00:00
ElgarL
0c92e11ed6 Fix setting of accessLevel on User level permission tests. 2013-02-25 10:11:44 +00:00
SKmedix
fe71cc2fec Update Essentials/src/messages_pl.properties
Update Polish translations.
---
Date: 24.02.13

---
+ Added "noMatchingPlayers" (509)
+ Added "matchingIPAddress" (510)
+ Added "runningPlayerMatch" (511)
* Fixed "adventure" (8)
* Fixed "antiBuildInteract" (14)
2013-02-24 11:45:56 +01:00
KHobbits
deaa1d6e61 [Feature] Allow IP lookup in /seen command.
[Permission] essentials.seen.ipsearch - allows /seen <ip address>
2013-02-24 03:55:20 +00:00
KHobbits
7cf406555b Clarify vanish status a little. 2013-02-23 23:34:31 +00:00
Iaccidentally
47fc955578 Merge pull request #352 from GunfighterJ/patch-15
[Fix] Persist yaw and pitch on teleport
2013-02-23 11:57:15 -08:00
KHobbits
cffc62b162 Merge pull request #356 from skmedix/patch-19
Update Essentials/src/messages_pl.properties
2013-02-23 05:26:21 -08:00
skmedix
e6c8ed54cd Update Essentials/src/messages_pl.properties
Update Polish translations.
---
Date: 23.02.13
---
* Fixed "fireworkSyntax" (502)
* Fixed colors.
2013-02-23 11:08:47 +01:00
ElgarL
cc4bacbffc Merge pull request #355 from necrodoom/patch-63
add "all_unnamed_worlds" info
2013-02-22 12:47:12 -08:00
Necrodoom
f99470d0c9 fix typo 2013-02-22 20:49:57 +02:00
Necrodoom
07d0a18d29 add "all_unnamed_worlds" info 2013-02-22 20:48:09 +02:00
ElgarL
0973f58421 Only one error this time Necrodoom :) 2013-02-22 17:21:14 +00:00
ElgarL
bea18f899c Merge pull request #353 from necrodoom/patch-61
various messages fixes - This better work!!!!!!
2013-02-22 09:19:56 -08:00
ElgarL
c5dea15d75 Fix global mirroring of non main worlds. 2013-02-22 17:07:55 +00:00
Necrodoom
bfe3db71a8 various messages fixes 2013-02-22 19:07:01 +02:00
GunfighterJ
4407e775ed [Fix] Persist yaw and pitch on teleport
Vanilla bukkit/MC persists yaw on teleport
2013-02-22 10:56:39 -06:00
ElgarL
b33627b95e Merge pull request #351 from GunfighterJ/gm-patch-1
Receive was spelt wrong
2013-02-22 05:56:53 -08:00
GunfighterJ
83fbe0d497 I before E except after C 2013-02-22 07:50:54 -06:00
ElgarL
48d4f047fb Do not list "all_unnamed_worlds" as a selectable world. 2013-02-22 13:17:58 +00:00
ElgarL
6b8196c0cb Don't try to use the worldHolder before it's initialised. 2013-02-22 12:59:50 +00:00
ElgarL
528342cac7 Added a new mirroring option in the config of 'all_unnamed_worlds'. This
will cause all new or unnamed worlds to use this mirroring.
2013-02-22 12:39:41 +00:00
ElgarL
b113529fd3 '/manselect' will no longer list duplicate worlds. 2013-02-22 11:46:59 +00:00
KHobbits
66da7aa81c Merge pull request #350 from skmedix/patch-18
Update Polish TL - Thanks to andrewkm for proofing.
2013-02-22 02:44:03 -08:00
skmedix
4f3627ef76 Update Essentials/src/messages_pl.properties
Update Polish translations.
---
Date: 21.02.13
---
+ Added "cleaned" (42)
+ Added "cleaned" (43)
2013-02-21 11:03:06 +01:00
GunfighterJ
964c1f349b Cache teleport invulnerability time 2013-02-20 13:46:28 +00:00
Chris Ward
958c091abc Final! 2013-02-20 12:46:47 +11:00
KHobbits
42af71de05 Readme cleanup. 2013-02-20 01:39:04 +00:00
KHobbits
7bf26f86d7 Code cleanup 2013-02-19 23:06:04 +00:00
kukelekuuk00
a61ff68abb Added /essentials cleanup <days> [money] [homes] [bans]
Delete userdata of players offline for over <days> and with less money than [money], less homes than [homes] and less bans than [bans].
2013-02-19 22:43:23 +00:00
Necrodoom
3d7f0c81b6 add 1.5 new slab blocks 2013-02-19 19:47:49 +02:00
Necrodoom
c0102c00fb update items.csv to minecraft 1.5
dont pull till 1.5 bukkit devbuild
2013-02-19 13:35:29 +02:00
Chris Ward
fdbe862125 Merge pull request #341 from necrodoom/patch-59
fix rest of "posion" aliases
2013-02-19 02:26:44 -08:00
Necrodoom
027fbc4e95 fix rest of "posion" aliases 2013-02-19 11:46:26 +02:00
GunfighterJ
57a7ce8ce8 Fixes Necrodoom's code Needs more exception 2013-02-18 15:25:09 +00:00
Necrodoom
fed8f884eb make sure player isnt dead before healing 2013-02-18 15:08:55 +00:00
KHobbits
b759691cfd Fix socialspy command list. 2013-02-17 18:05:07 +00:00
ElgarL
ceed7a9215 Fix Necrodooms code...again! 2013-02-17 17:24:52 +00:00
ElgarL
e66226095b Merge pull request #338 from necrodoom/patch-57
if variable is inside ' ', strip them
2013-02-17 09:22:36 -08:00
ElgarL
745d7410cf Merge pull request #328 from necrodoom/patch-53
delete player command messages, bukkit does it
2013-02-17 09:21:12 -08:00
Necrodoom
3c0d56ce97 if variable is inside ' ', strip them 2013-02-17 19:09:04 +02:00
KHobbits
e393aeadb2 Clarify command disabling. 2013-02-17 16:30:05 +00:00
Necrodoom
541045491e fix auto afk description 2013-02-17 16:26:18 +00:00
KHobbits
9c8e186af6 Merge pull request #334 from necrodoom/patch-54
add skull alias to head item
2013-02-17 08:17:10 -08:00
Necrodoom
2eb052964a add skull alias to head item 2013-02-17 18:15:48 +02:00
snowleo
6a67b400ec why do we even remove the items?
derp
2013-02-17 15:34:49 +01:00
snowleo
eff0561e8a Revert the last 2 commits and actually fix the right one. 2013-02-17 15:17:47 +01:00
snowleo
b720785922 Fix all removeItem()
This could fix some broken logging of selling items
2013-02-17 15:10:41 +01:00
snowleo
9d9fb555d3 Items can't be reused after the have been used in removeItem 2013-02-17 15:07:32 +01:00
KHobbits
bfc8c0d715 Fix a couple of cosmetic errors in /seen 2013-02-17 01:18:50 +00:00
Skylexia
7c84901304 Fixed colour coding.
Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

Fixed colour coding.

totalWorthAll
totalWorthBlocks
2013-02-16 18:22:25 +00:00
KHobbits
daa4e628eb Merge pull request #333 from GunfighterJ/patch-12
Adds optional argument to clear both inventory and armor with /clear
2013-02-16 08:40:44 -08:00
GunfighterJ
49931aaf9e Adds optional argument to clear inventory and armor with /clear 2013-02-15 12:38:41 -06:00
ElgarL
d5813aec43 Catch the error when using an out of date config for
'allow_commandblocks' So it doesn't kill the whole config.
2013-02-15 17:39:34 +00:00
KHobbits
4318f0f71d Merge pull request #331 from kukelekuuk00/2.9
Add methods to UserData and IUser for accessing and writing of data from other plugins.
2013-02-14 03:05:41 -08:00
kukelekuuk00
0dca5306aa Add a method to write to the userdata to UserData.java and IUser.java. 2013-02-13 08:24:25 -06:00
Iaccidentally
42d0ad1ba8 Merge branch '2.9' of https://github.com/essentials/Essentials.git into 2.9 2013-02-12 18:38:35 -05:00
Iaccidentally
2547932073 Clean up protect :: transient is not needed :: remove unnecessary returns :: @Override all the things! 2013-02-12 18:37:40 -05:00
KHobbits
419d26bc9c Fix /give|/item descriptions for itemmeta. 2013-02-12 22:56:17 +00:00
KHobbits
1b6bf9d532 Merge branch '2.9' of github.com:essentials/Essentials into patch-41 2013-02-12 22:46:35 +00:00
Necrodoom
67d4b8bf71 remove color from bedNull 2013-02-12 22:45:54 +00:00
KHobbits
17e59bc198 fix typo in messages
add new messages to messages.properties

add new messages to messages_en.properties

add new messages to messages_cs.properties

add new messages to messages_da.properties

add new messages to messages_de.properties

add new messages to messages_es.properties

add new messages to messages_fi.properties

add new messages to messages_fr.properties

add new messages to messages_it.properties

add new messages to messages_nl.properties

add new messages to messages_pl.properties

add new messages to messages_pt.properties

add new messages to messages_se.properties

remove color from bedNull

remove color from bedNull

remove color from bedNull

remove color from bedNull

remove color from bedNull

remove color from bedNull

remove color from bedNull

remove color from bedNull

remove color from bedNull

remove color from bedNull

remove color from bedNull

remove color from bedNull
2013-02-12 22:45:54 +00:00
Necrodoom
fc7d118de5 change bed spawn set message 2013-02-12 22:43:07 +00:00
Necrodoom
4c617d6366 try improve bed spawn handle
dont act as if bed doesnt exist if its missing
2013-02-12 22:43:06 +00:00
Iaccidentally
cfead02f27 Fix build :: This is what happens when you don't use an IDE 2013-02-12 17:42:04 -05:00
Necrodoom
ace45aafcc fix typo 2013-02-12 22:26:02 +00:00
KHobbits
3a893ef546 add inventoryclearall message
update messages.properties

update messages_en.properties

update messages_da.properties

update messages_de.properties

update messages_en.properties

update messages_es.properties

update messages_fi.properties

update messages_fr.properties

update messages_it.properties

update messages_nl.properties

update messages_pl.properties

update messages_pt.properties

update messages_se.properties
2013-02-12 22:26:02 +00:00
Skylexia
421810dda8 Update Essentials/src/config.yml 2013-02-12 17:17:48 -05:00
Skylexia
45a047fe11 Update Essentials/src/plugin.yml 2013-02-12 17:13:08 -05:00
Necrodoom
2517f8ed93 delete player command messages, bukkit does it 2013-02-12 16:56:54 +02:00
ElgarL
239e207c1e Merge pull request #327 from necrodoom/patch-52
add missing return false in manudelp
2013-02-12 06:49:27 -08:00
Necrodoom
caccca54b2 add missing return false; 2013-02-12 16:47:39 +02:00
KHobbits
56bb3784ec Minor entity optimization. 2013-02-11 23:33:30 +00:00
KHobbits
9148f5cd42 Attempt to optimize Essentials login event. 2013-02-11 23:11:37 +00:00
KHobbits
90ab677fa6 Merge pull request #325 from Skylexia/patch-2
Fixed all "poison" typos; add ppotato alias.
2013-02-11 15:00:14 -08:00
Skylexia
206668e3ed Update Essentials/src/items.csv 2013-02-11 17:57:20 -05:00
KHobbits
532cfd33c9 Merge pull request #324 from Skylexia/patch-1
Update Essentials/src/items.csv
2013-02-11 10:41:09 -08:00
Skylexia
ffbbd7e59b Update Essentials/src/items.csv 2013-02-11 13:38:11 -05:00
KHobbits
a692f58e2f Merge pull request #322 from necrodoom/patch-50
add dye aliases to match bukkit
2013-02-11 09:22:56 -08:00
Necrodoom
174b90e6e8 add dye aliases to match bukkit 2013-02-11 18:56:23 +02:00
KHobbits
11dedaf8b1 Merge pull request #321 from GunfighterJ/patch-10
Fix array index out of bounds on /firework fire
2013-02-11 08:41:47 -08:00
GunfighterJ
7b9870d249 Fix array index out of bounds on /firework fire 2013-02-11 10:35:55 -06:00
ElgarL
04f43db46d Merge pull request #298 from necrodoom/patch-37
Fix typo at groupmanager config.yml
2013-02-10 02:12:42 -08:00
Chris Ward
0ccd54dfff Merge pull request #317 from necrodoom/patch-47
update AFK documation
2013-02-10 01:54:37 -08:00
Necrodoom
64e1ee63cf update AFK documation 2013-02-10 11:46:59 +02:00
Chris Ward
293306474b Fix compilation, unreachable code. 2013-02-10 20:37:46 +11:00
Chris Ward
ee94164f27 Merge pull request #316 from necrodoom/patch-46
throw exception on banexempt
2013-02-10 01:34:53 -08:00
Necrodoom
8d454eec7f throw exception on banexempt
match rest of moderator commands
2013-02-10 11:04:55 +02:00
KHobbits
f62a350d54 Fix kit messages when giving kit to another player. 2013-02-10 00:07:40 +00:00
KHobbits
5398d1ef5e missing alias 2013-02-09 23:39:21 +00:00
GunfighterJ
399d243a06 Proper TL 2013-02-09 16:27:54 -06:00
GunfighterJ
d8c0256d3e Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-02-09 16:27:19 -06:00
KHobbits
2e58cea13b Make /god and /god <player> behave the same. 2013-02-09 19:31:31 +00:00
Chris Ward
7c5ed0d7c8 Merge remote-tracking branch 'origin/groupmanager' into 2.9 2013-02-09 21:55:20 +11:00
ElgarL
de258e26da Fix bad Git Merge 2013-02-09 10:51:16 +00:00
Chris Ward
3ee51a1931 Merge pull request #312 from necrodoom/patch-44
update kit link to the new one
2013-02-09 02:48:48 -08:00
Necrodoom
a4689cc9cc update kit link to the new one 2013-02-09 12:47:36 +02:00
Chris Ward
d239423db0 Merge pull request #311 from necrodoom/patch-43
fix itemmeta link on kit section
2013-02-09 02:41:01 -08:00
Necrodoom
8b9585be06 fix itemmeta link on kit section 2013-02-09 11:57:32 +02:00
GunfighterJ
d74c24440a Un-deletes deleted things. 2013-02-08 17:14:46 -06:00
GunfighterJ
bb94023c76 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-02-08 16:05:48 -06:00
snowleo
627f48f29c Fix /seen command 2013-02-08 22:26:21 +01:00
snowleo
fb4e1eefbe Don't overwrite last location on logout
Logout position is saved as logoutlocation now in users yml
2013-02-08 21:22:35 +01:00
snowleo
c1d0dc26b9 Check if player is still online 2013-02-08 21:18:00 +01:00
snowleo
edacb00c4d Fix async access to bukkit code 2013-02-08 21:16:21 +01:00
Chris Ward
0956f3f526 Merge pull request #304 from necrodoom/patch-40
pull messages.properties changes to messages_en
2013-02-06 22:54:27 -08:00
Necrodoom
3d71bc4b45 pull messages.properties changes to messages_en 2013-02-06 16:15:18 +02:00
Chris Ward
8293b80b33 Merge pull request #300 from necrodoom/patch-39
add missing puncuation
2013-02-06 02:49:04 -08:00
KHobbits
a21587fb4b Don't block food recovery in god mode. 2013-02-05 23:34:08 +00:00
KHobbits
1735a22875 Merge pull request #302 from GunfighterJ/patch-9
Prevents flying from being disabled on world teleport if player has esse...
2013-02-05 12:07:36 -08:00
GunfighterJ
5e6d81fd01 Prevents flying from being disabled on world teleport if player has essentials.fly 2013-02-05 13:16:27 -06:00
GunfighterJ
046aecd386 Adds potion meta
Some cleanup as well
2013-02-05 13:13:19 -06:00
Necrodoom
2b2ec49bf1 fix a few errors 2013-02-05 16:45:30 +02:00
Necrodoom
e98b1ffa8c add missing puncuation
probably needs extra reading though before pulling.
2013-02-05 13:57:27 +02:00
KHobbits
b0929e5c63 Merge pull request #297 from necrodoom/patch-36
fix typo at ID 22
2013-02-05 03:26:19 -08:00
Necrodoom
f3f45c528b Fix typo at groupmanager config.yml 2013-02-05 13:13:00 +02:00
Necrodoom
a09c17b178 fix typo at ID 22 2013-02-05 13:11:36 +02:00
ElgarL
c46c086388 Revert Necro's change to mancheckw 2013-02-04 13:44:58 +00:00
ElgarL
d94b5dbe33 Fix Necrodooms errors for not using an IDE!!!!! 2013-02-04 13:33:06 +00:00
ElgarL
6249a5c2c0 Merge pull request #291 from necrodoom/patch-32
display name instead of path for /mancheckw
2013-02-04 05:29:10 -08:00
ElgarL
f22bf97dff Merge pull request #290 from necrodoom/patch-30
Derp - revert incorrect modified line
2013-02-04 05:25:10 -08:00
KHobbits
339f3b6322 Stylize 'bed' in /home list 2013-02-03 17:30:14 +00:00
Chris Ward
ec7d47a675 Merge pull request #294 from necrodoom/patch-35
add common cat type name aliases
2013-02-03 05:16:17 -08:00
Necrodoom
5089e694f6 add common cat type name aliases 2013-02-03 15:13:36 +02:00
KHobbits
9076084c2f We don't need move events if afk interact is disabled. 2013-02-03 05:15:25 +00:00
KHobbits
6962e07665 Merge pull request #292 from GunfighterJ/2.9
Adds toggle to disable AFK cancel on interactions
2013-02-02 21:11:43 -08:00
GunfighterJ
263ce3b92d Adds toggle to disable AFK cancel on interactions 2013-02-02 23:06:09 -06:00
KHobbits
bb8ca488da Minor comment updates. 2013-02-03 04:14:23 +00:00
Necrodoom
e03a688040 Update EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java 2013-02-01 16:39:18 +02:00
Necrodoom
665c229329 Update EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/UsersDataHolder.java 2013-02-01 16:33:55 +02:00
Necrodoom
8a665ab520 Update EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/GroupsDataHolder.java 2013-02-01 16:33:37 +02:00
Necrodoom
a21492e592 Update EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/UsersDataHolder.java 2013-02-01 16:31:58 +02:00
Necrodoom
1f99b455a0 Derp - revert incorrect modified line 2013-02-01 14:14:46 +02:00
KHobbits
21c16675f5 Fix missing 'bed' from home list. 2013-02-01 05:26:17 +00:00
KHobbits
7ca32d455c Let Bukkit decide if a bedspawn is valid or not.
Bukkit's bed fix forces minimum bukkit change.
2013-02-01 02:59:40 +00:00
KHobbits
5c1e235f15 [GM] Catch all of the null. 2013-02-01 02:52:41 +00:00
KHobbits
27697c7b0c Make gm API lookup respect offlineperms toggle properly. 2013-02-01 00:01:57 +00:00
KHobbits
94769334d6 Updating groups example 2013-01-31 21:02:38 +00:00
KHobbits
cdb215bebf Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9
Conflicts:
	EssentialsGroupManager/src/Changelog.txt
2013-01-31 20:38:36 +00:00
Iaccidentally
2293cbc34f cleanup :: fix build 2013-01-31 14:40:33 -05:00
Iaccidentally
aa212f8068 Refactor name of ScheduleAsyncDelayedTask to RunTaskAsynchronously 2013-01-31 14:16:09 -05:00
Iaccidentally
d1b463c2ce Update to 1.4.7 R1 :: remove calls to ScheduleAsyncDelayedTask, as it is deprecated :: cleanup :: WARNING: This commit may or may not be stable 2013-01-31 14:03:27 -05:00
ElgarL
fb4a7a3bd6 Fix Necrodooms broken code. 2013-01-30 19:55:38 +00:00
ElgarL
17fac3555b Merge pull request #288 from necrodoom/patch-29
config option to allow GM commands in commandblocks
2013-01-30 11:45:27 -08:00
Necrodoom
1e658752ed update changelog 2013-01-30 19:26:46 +02:00
Necrodoom
221c0e4b6e update commandblock usage deny message 2013-01-30 19:25:35 +02:00
Necrodoom
e34eba0b57 update config description of allow_commmandblocks 2013-01-30 19:14:57 +02:00
Necrodoom
01aa20d7ef add allow commandblock check 2013-01-30 18:53:40 +02:00
Necrodoom
689a8655ce register new config setting 2013-01-30 18:47:19 +02:00
Necrodoom
dc925f32c8 update config.yml to include commandblock change 2013-01-30 18:15:58 +02:00
KHobbits
1f649dbc95 What is less than less than one. 2013-01-29 23:59:31 +00:00
KHobbits
5fe5b37038 Might as well make it all safe. 2013-01-29 23:51:42 +00:00
snowleo
1f391dbf4c Don't run calls against bucket api in async login thread 2013-01-30 00:26:50 +01:00
snowleo
cb86c989b0 Update /sell command to newer bukkit api 2013-01-29 20:29:03 +01:00
ElgarL
640a2bcc2d Doh, actually find what world we want to check properly with mancheckw. 2013-01-29 16:56:03 +00:00
ElgarL
a51d1f11a6 Update plugin.yml with the new command 2013-01-29 16:45:23 +00:00
ElgarL
7bb1fd2f77 grammaaahhhh!!! 2013-01-29 16:35:15 +00:00
ElgarL
e4dd3a28e4 Added '/mancheckw <world>' to inspect what permission files a world is
referencing.
2013-01-29 16:33:20 +00:00
ElgarL
fda048efca Missed an S 2013-01-29 16:15:45 +00:00
ElgarL
8fdf029007 Prevent '*' permissions granting the 'groupmanager.noofflineperm'
permission.
2013-01-29 16:14:24 +00:00
ementalo
ba189b8028 Revert "Merge pull request #286 from GunfighterJ/2.9"
This reverts commit 9cc2aa216a, reversing
changes made to ebefcd84fa.
2013-01-29 10:25:01 +00:00
Iaccidentally
9cc2aa216a Merge pull request #286 from GunfighterJ/2.9
Ignore itemmeta on selling
2013-01-28 21:13:41 -08:00
GunfighterJ
ffda5a6601 Ignore itemmeta on sell 2013-01-28 23:11:43 -06:00
ElgarL
b86e02427f Add support for BukkitForge using 'overworld' as the main world name. 2013-01-28 04:13:16 +00:00
GunfighterJ
1d491c5861 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-01-27 14:20:59 -06:00
KHobbits
ebefcd84fa Minor /ci tweak. 2013-01-27 17:22:43 +00:00
KHobbits
b4fe74d54b Cleanup /ci addition. 2013-01-27 17:10:07 +00:00
GunfighterJ
597ca566af Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-01-27 10:44:13 -06:00
KHobbits
ee087b1b3b Merge pull request #278 from GunfighterJ/2.9
Adds vanilla syntax for /clearinventory
2013-01-27 08:40:39 -08:00
KHobbits
edb828547e Fix vanish status when switching worlds.
This fixes the potion effect being cleared on world change.
2013-01-27 16:39:50 +00:00
KHobbits
bfc6eda3ae Add command syntax comment, for clarification.
Merge branch '2.9' of github.com:essentials/Essentials into 2.9
2013-01-27 15:26:46 +00:00
KHobbits
145313b3ea Don't try and charge a user if we don't have the chat data stored. 2013-01-27 15:26:42 +00:00
Iaccidentally
f7f9b9f8c5 Make heal remove fire from players. 2013-01-26 17:16:48 -05:00
Iaccidentally
7ccf9c25ac Update heal to account for the fact that 20 is not always the max health 2013-01-26 17:12:17 -05:00
GunfighterJ
057a192d33 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-01-24 21:16:13 -06:00
KHobbits
60c524b3bc Revert "Prevent replacement of { and } characters in chat.format"
This reverts commit 4cb9f58c88.
2013-01-25 03:12:13 +00:00
KHobbits
cf33210da6 Try command fallback 2013-01-25 03:06:53 +00:00
KHobbits
1ff74c286c Merge pull request #284 from phrstbrn/chat-braces-fix
Prevent replacement of { and } characters in chat.format
2013-01-24 08:53:32 -08:00
Zak Ford
4cb9f58c88 Prevent replacement of { and } characters in chat.format 2013-01-24 11:43:10 -05:00
GunfighterJ
201bd611a3 Update /ci to support vanilla syntax 2013-01-23 16:47:21 -06:00
Chris Ward
f06dde59bd Add debug option to XMPP 2013-01-23 19:41:36 +11:00
Chris Ward
c4fc66f016 Remove references to earth2me in plugin.ymls 2013-01-23 02:56:18 +11:00
Chris Ward
d36316b6f0 Merge pull request #280 from necrodoom/patch-28
update documation reference in config.yml
2013-01-22 00:13:07 -08:00
Necrodoom
aed128e3ff Update Essentials/src/config.yml 2013-01-22 09:54:48 +02:00
KHobbits
1272a5bdda Small patch to allow multiple firework effects to be defined in kits. 2013-01-21 23:38:03 +00:00
KHobbits
9f12acf4f6 Revert /gc change.
Simplify firework syntax, and add help
Merge branch 'patch-26' of git://github.com/necrodoom/Essentials into 2.9
2013-01-21 20:07:02 +00:00
KHobbits
21617e8bb2 Merge pull request #276 from necrodoom/patch-26
Update Essentials/src/plugin.yml
2013-01-21 06:41:32 -08:00
Necrodoom
b851105229 Update Essentials/src/plugin.yml 2013-01-21 16:40:45 +02:00
Necrodoom
8ddf55540d Update Essentials/src/messages_en.properties 2013-01-21 16:37:12 +02:00
Necrodoom
09007e15d9 fix message 2013-01-21 16:35:40 +02:00
Necrodoom
6ba3f0c60c try make error message more informative 2013-01-21 16:32:49 +02:00
Necrodoom
e5ad40c96b Update Essentials/src/plugin.yml 2013-01-21 16:29:26 +02:00
KHobbits
da61f031ae Allow negative exp to be given 2013-01-21 14:15:53 +00:00
KHobbits
4471d2ee77 Fix a couple of param issues. 2013-01-21 13:40:45 +00:00
KHobbits
5bcc11b8a4 Merge pull request #275 from DMarby/patch-1
Update Essentials/src/messages_se.properties
2013-01-20 15:31:34 -08:00
David Marby
a55aaf8b0f Update Essentials/src/messages_se.properties 2013-01-21 00:26:38 +01:00
KHobbits
1db19f8404 Show afk warning when pm'ing afk players.
Fix vanished leak on player matching.
2013-01-20 22:05:44 +00:00
KHobbits
6d93105d91 Add optional 2nd arg to broadcast format. 2013-01-20 20:58:05 +00:00
KHobbits
aee2cff57f Fix book meta error message. 2013-01-20 20:41:15 +00:00
KHobbits
f5364907e5 Trim long /gc output, add /gc all 2013-01-20 20:35:41 +00:00
KHobbits
b9a0f73d25 Fix minor /book bug (Null author) 2013-01-20 20:06:27 +00:00
KHobbits
9ccd611f70 Fix eco take derp. 2013-01-20 19:43:59 +00:00
KHobbits
8798c0f06c Fix colour syntax message on coloured leather. 2013-01-20 01:44:03 +00:00
KHobbits
7bf9ff085a Minor cleanup on /eco command. 2013-01-20 01:24:09 +00:00
KHobbits
e43bebca82 Merge pull request #274 from GunfighterJ/2.9
Cleanup /eco, fix reset broadcast
2013-01-19 17:12:07 -08:00
KHobbits
85a8b8a1a0 Cleanup /exp command, and fix vanilla syntax issues.
Needs double checking with commandblocks with vanilla syntax.
2013-01-20 01:10:41 +00:00
GunfighterJ
f53648fd2f Cleanup /eco, fix reset broadcast 2013-01-19 17:58:12 -06:00
KHobbits
3fc78c1ac3 Add example firework kit, and cleanup debug messages. 2013-01-19 23:43:40 +00:00
KHobbits
9506872ac0 Move firework meta handling into MetaItemStack
Allow firework meta to be applied to item spawning and kit commands.
2013-01-19 23:35:59 +00:00
ElgarL
f8bf45385f Negate 'groupmanager.noofflineperms' by default in the owner group. 2013-01-19 22:22:42 +00:00
KHobbits
88146c1ed1 Merge pull request #272 from GunfighterJ/2.9
/eco overhaul, adds /eco set
2013-01-19 10:54:11 -08:00
GunfighterJ
e3ec579c22 /eco overhaul, adds /eco set 2013-01-19 12:50:35 -06:00
KHobbits
fe1a281c66 Reduce chance of self repeating powertool actions. 2013-01-19 15:19:39 +00:00
Chris Ward
5935e22f7b Merge pull request #271 from necrodoom/patch-25
update /book description
2013-01-19 06:21:47 -08:00
Necrodoom
68fa58d882 update /book description 2013-01-19 16:16:35 +02:00
ElgarL
2565fbde78 Negate 'groupmanager.noofflineperms' by default in the owner group. 2013-01-19 12:40:40 +00:00
Chris Ward
02c9a9a543 Touch of cleanup to Gunfighter's addition to exp 2013-01-19 18:22:22 +11:00
GunfighterJ
0976557549 Adds vanilla syntax to /exp command 2013-01-18 18:20:05 -06:00
Alexander Schepp
f5e3774b15 Fix bug with empty motd 2013-01-18 23:36:59 +01:00
Iaccidentally
97097f4cda Merge pull request #266 from GunfighterJ/2.9
Duplicate alias removed
2013-01-17 17:30:04 -08:00
GunfighterJ
766e3f55dd Duplicate alias removed 2013-01-17 19:27:21 -06:00
snowleo
a5e90bd0d1 Merge remote-tracking branch 'origin/groupmanager' into 2.9 2013-01-18 01:01:23 +01:00
Iaccidentally
ee16244c93 Merge pull request #265 from GunfighterJ/2.9
Adds essentials.mute.notify
2013-01-17 15:53:37 -08:00
GunfighterJ
c3670e0473 Adds essentials.mute.notify 2013-01-17 17:42:32 -06:00
Iaccidentally
bb6efd5b6f Merge pull request #263 from GunfighterJ/2.9
Added /firework command
2013-01-17 14:59:01 -08:00
Iaccidentally
3d3f989ffb Update libs 2013-01-17 14:36:03 -05:00
Iaccidentally
3404ee112f Update Bukkit to 1.4.7-R0.1 2013-01-17 14:25:19 -05:00
GunfighterJ
6edffa340b Now it adds the right firework command 2013-01-16 20:40:29 -06:00
GunfighterJ
087e79cce7 Adds the actual /firework command 2013-01-16 20:39:09 -06:00
GunfighterJ
7736060f57 Added /firework command 2013-01-16 20:36:33 -06:00
Iaccidentally
9c5014659c Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-01-16 21:23:17 -05:00
KHobbits
ac9d4a2952 Fix null args on /book 2013-01-16 16:56:27 +00:00
KHobbits
1c28ebdbd7 Remove logger. 2013-01-16 16:30:30 +00:00
KHobbits
60baa468b4 Remove broken firework meta. 2013-01-15 00:37:08 +00:00
KHobbits
b6d56346bb Start work on firework effect - syntax in flux 2013-01-14 23:11:19 +00:00
Iaccidentally
1a726a00f9 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-01-14 17:25:32 -05:00
KHobbits
66cad5fc9c Couple of extra /helpop aliases. 2013-01-14 21:40:25 +00:00
KHobbits
c7010343da Add colour support to item meta. 2013-01-14 21:34:35 +00:00
KHobbits
11fc84a4e9 Only show ban reason in the in-game display, not full banFormat. 2013-01-14 11:59:31 +00:00
KHobbits
aa6a4465ab Better handle initial book.txt creation. 2013-01-14 08:21:03 +00:00
KHobbits
aedb73e50e Switch book meta, to use 'book.txt', and 'book:<section>'.
Should make things clearer and easier to understand.
2013-01-14 08:14:42 +00:00
KHobbits
6db519bb4d Merge remote-tracking branch 'remotes/origin/groupmanager' into 2.9 2013-01-14 07:37:11 +00:00
KHobbits
4eb8b41843 All the better to kick you with
(Pipe format for linebreak)
2013-01-14 07:36:45 +00:00
ElgarL
fa98833737 Fix recursive loop when used on offline servers. 2013-01-14 06:47:50 +00:00
ElgarL
8c228166a4 Update GlobalGroups (removing old permissions) as Towny handles it's own
perms now.
2013-01-14 05:48:48 +00:00
KHobbits
89bfb67fd2 Cleanup /book command. 2013-01-13 23:11:15 +00:00
Iaccidentally
51e2e753f4 Merge pull request #260 from GunfighterJ/patch-3
Fixes /top command not carrying pitch and yaw
2013-01-13 15:09:05 -08:00
GunfighterJ
8df731af3f Fixes /top command not carrying pitch and yaw 2013-01-13 17:02:46 -06:00
KHobbits
eb865c930a Merge pull request #259 from GunfighterJ/patch-2
Added more book commands for editing author and title
2013-01-13 14:57:35 -08:00
GunfighterJ
39b62e5e52 Merge branch 'patch-2' of https://github.com/GunfighterJ/Essentials into patch-2
Conflicts:
	Essentials/src/com/earth2me/essentials/commands/Commandbook.java
2013-01-13 16:31:29 -06:00
GunfighterJ
76228c3b90 Added more book arguments for editing author and title amend 2013-01-13 16:19:37 -06:00
KHobbits
00105cb008 Cleanup of book meta. 2013-01-13 22:18:08 +00:00
GunfighterJ
eccce51afd Added more book commands for editing author and title 2013-01-13 15:54:11 -06:00
KHobbits
712113e9b3 Adding support for books made from /einfo 2013-01-13 21:08:24 +00:00
ElgarL
0745834e1a typo in changelog. 2013-01-13 16:40:53 +00:00
ElgarL
bfde1ee754 Do not grant any permissions (nort update Bukkit) if the server is in
offline mode and the player has the permission node
'groupmanager.noofflineperms'.
2013-01-13 16:39:53 +00:00
KHobbits
37ca05d01f Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2013-01-13 16:30:43 +00:00
KHobbits
2dee1fa5ef Clean up TextPager 2013-01-13 16:30:22 +00:00
ElgarL
6499a8d6c6 Fix the logger so errors are reported again. 2013-01-13 16:20:38 +00:00
ElgarL
2731674c85 Synchronize pushing to Bukkit perms to prevent any
ConcurrentModificationException.
2013-01-13 16:20:09 +00:00
Chris Ward
fc47a93454 Merge pull request #258 from necrodoom/patch-22
update ID 397:3
2013-01-13 05:03:05 -08:00
Necrodoom
0bbce042b7 update ID 397:3 2013-01-13 15:01:10 +02:00
KHobbits
ba9a0ebb82 Add provisional support for basic item Meta
Adds /book command to allow reediting of signed books.
2013-01-13 04:44:28 +00:00
KHobbits
0a2446cdc2 Clean up userdata saving, to prevent CMI
Also update config section code to use newer bukkit methods
2013-01-12 19:30:06 +00:00
KHobbits
fa137c8660 Don't extend ItemStack 2013-01-12 17:05:05 +00:00
KHobbits
21b74e8bcd Pull item meta from itemdb class 2013-01-12 14:12:12 +00:00
Iaccidentally
9cfab0b8e9 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-01-11 12:56:18 -05:00
Iaccidentally
4199507399 Merge pull request #251 from necrodoom/patch-19
/me shakes fist at Khobbits
2013-01-11 09:17:44 -08:00
Necrodoom
6142dcbe68 /me shakes fist at Khobbits
fixes fd79120929 whitespace
2013-01-11 19:10:32 +02:00
Chris Ward
3a45b9bc91 Merge remote-tracking branch 'origin/groupmanager' into 2.9 2013-01-11 21:59:39 +11:00
Chris Ward
e04241a80f Fixes Item Frames being linked to Paintings when breaking 2013-01-11 21:54:52 +11:00
ElgarL
14ceb5ccc9 Store a plugin and server reference. 2013-01-11 00:53:48 +00:00
KHobbits
3892d1b93c New permission: essentials.sethome.bed
Players with this permission will force a bed home updating if daytime beds are enabled.
2013-01-10 22:36:38 +00:00
Chris Ward
316bfeb2b4 Implement abstract methods 2013-01-10 22:57:08 +11:00
Chris Ward
27a803f744 Update bukkit/craftbukkit libs. Force latest beta version 2013-01-10 22:51:48 +11:00
KHobbits
a880cfb888 Ban cleanup 2013-01-09 21:31:56 +00:00
KHobbits
75a9f8e793 Util commenting 2013-01-09 21:18:46 +00:00
KHobbits
7ea639399a Multiline kick messages and tempban countdown. 2013-01-09 21:04:58 +00:00
Chris Ward
b1b60a4e1a Merge branch 'groupmanager' into 2.9 2013-01-10 04:57:10 +11:00
Joseph
d1402c91fa Formatting 2013-01-10 03:25:58 +11:00
GunfighterJ
39bb9f5ab1 Add more items to Fireball command. Add delay option to /spawner 2013-01-10 03:25:57 +11:00
Chris Ward
33fcd427fc Merge pull request #247 from necrodoom/patch-18
rewrite ID 43:6, 44:6, 113, 114
2013-01-09 06:50:31 -08:00
Necrodoom
87b6687942 rewrite ID 43:6, 44:6, 113, 114 2013-01-09 16:46:37 +02:00
ElgarL
adb7f9c1b5 Synchronize the raising of GroupManager events to Bukkit.getServer()
(should prevent deadlocks).
2013-01-09 14:38:00 +00:00
ElgarL
52b316f06f Merge pull request #241 from necrodoom/patch-15
fix typo
2013-01-09 02:50:30 -08:00
ElgarL
e731b8b6eb Remove attachments BEFORE we clear them. 2013-01-09 04:27:10 +00:00
ElgarL
7e166d969a code tidy. 2013-01-09 04:13:40 +00:00
ElgarL
84e4558280 Remove attachments before clearing 2013-01-09 04:04:59 +00:00
ElgarL
243759a4a6 Clear our attachment map upon a manload so we correctly reconfigure a
players new permissions.
2013-01-09 03:55:26 +00:00
KHobbits
e8db940042 Expand plugin.yml fireball aliases. 2013-01-09 01:00:13 +00:00
KHobbits
b3bff937b6 Fire a few extra entities from /fireball 2013-01-09 00:58:29 +00:00
KHobbits
1e4fb1b10b Add a couple of extra entities to spawnmob 2013-01-09 00:41:24 +00:00
KHobbits
a0b80ab1ea Cleanup 2013-01-08 23:59:31 +00:00
KHobbits
8406715569 Pull and clean up book enchant pullreq.
Removed 1 enchant per book limit, anvils seem to handle multiple enchants fine, even if the result can only be one enchant.
2013-01-08 23:51:46 +00:00
Chasing Code
aab980f3d6 Add missing import for EnchantmentStorageMeta 2013-01-08 11:46:08 -08:00
Chasing Code
00767f142c Store enchanments in Enchanted Books
Change enchant command to store the enchantment instead of applying it when used on an Enchanted Book.  If an enchantment is already present, replace it (only one allowed on Enchanted Books).
2013-01-08 11:37:46 -08:00
oggehej
1b6729d3fc Update Swedish translation with new messages. 2013-01-08 19:45:51 +11:00
Chris Ward
2000dfb3fa Store regex, use util method instead of another regex. Store variable 2013-01-08 02:26:09 +11:00
Chris Ward
8ce481c0d9 Fix multiple enchantments in kits 2013-01-08 02:25:35 +11:00
Chris Ward
d000322a42 Merge pull request #242 from necrodoom/patch-17
update ID 127
2013-01-07 07:00:41 -08:00
Necrodoom
b66708a684 update ID 127 2013-01-07 16:52:51 +02:00
Chris Ward
04c7abc122 Unnecessary RegEx is unnecessary. 2013-01-08 00:08:11 +11:00
KHobbits
e3ae6a6150 Enchantment and item spawning cleanup
Should make it a little easier to add itemmeta.
2013-01-06 18:28:24 +00:00
KHobbits
febe3c512a Tell user that /mail sendall succeeded when used in console. 2013-01-06 16:27:20 +00:00
Necrodoom
0aa35d9296 fix typo 2013-01-05 19:05:02 +02:00
Necrodoom
0d1103938c update IDs 368, 381, 399, 402 2013-01-05 19:27:56 +11:00
KHobbits
70f479d7d1 Throw an error if user doesn't have permission to use kit sign. 2013-01-05 07:39:32 +00:00
KHobbits
a85b8c5d00 More user feedback on enchant sign. 2013-01-05 07:24:02 +00:00
KHobbits
52c1762322 Allow unsafe enchants to be placed by [enchant] signs if enabled in the config file. 2013-01-05 07:05:25 +00:00
KHobbits
d3bb0c6310 Couple of extra enchant aliases 2013-01-05 06:59:37 +00:00
KHobbits
093865d990 Merge branch 'release' into 2.9 2013-01-04 21:40:02 +00:00
KHobbits
9c04257b5e Fix sign break bug 2013-01-04 13:05:57 +00:00
md_5
0cc851c6b5 Might be worth catching other occurances of the event too. 2013-01-04 13:53:01 +11:00
md_5
538d5e1b29 ArrayList, I choose you! (Fixes CraftBook erroring when the killall command is used and custom drops are enabled in that plugin) 2013-01-04 13:49:45 +11:00
Alexander Schepp
d7a48f2351 Fix nl translation 2013-01-03 11:50:19 +01:00
Iaccidentally
21ef38d16d Update AntiBuild to use HangingBreakByEntityEvent instead of deprecated PaintingBreakByEntityEvent 2013-01-02 18:25:40 -05:00
Iaccidentally
fd2d220a87 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2013-01-02 18:24:34 -05:00
KHobbits
1b5d893c36 Merge pull request #236 from gravypod/patch-1
Store ingredient map and recipe shape
2013-01-01 15:20:26 -08:00
KHobbits
c74f1d9062 New permission: essentials.fly.safelogin - Players with this command will automatically switch to fly mode if they login whilst floating in the air. 2013-01-01 22:00:53 +00:00
KHobbits
20632705d4 New perm: essentials.vanish.effect - People with this effect will get the potion effect applied while vanished. 2013-01-01 21:12:26 +00:00
KHobbits
6d4387ecd0 Cleanup cleanup. 2013-01-01 19:48:08 +00:00
KHobbits
68c57a9ffd More cleanup 2013-01-01 19:34:32 +00:00
KHobbits
eb3dd6f0dc Cleanup 2013-01-01 18:39:23 +00:00
ElgarL
51e93c4c55 Merge pull request #235 from necrodoom/patch-10
fix isOpOverride checks
2012-12-31 07:59:27 -08:00
gravypod
baf3e56e87 Store ingredient map and recipe shape 2012-12-31 10:44:28 -05:00
Chris Ward
9c9dc28d74 Fix recipe NPE/failed display in game 2013-01-01 02:26:04 +11:00
Necrodoom
d0fa99fb89 fix isOpOverride checks 2012-12-31 15:35:58 +02:00
KHobbits
bef697c83d Don't unregister all listeners. 2012-12-31 12:15:51 +00:00
KHobbits
0c599fb471 Unregister unused events. 2012-12-31 05:44:20 +00:00
KHobbits
8c4375e288 Use bukkit api for chat user list 2012-12-31 05:43:05 +00:00
KHobbits
ed2677d57d Allow unbanning players who do not have valid userdata 2012-12-31 01:08:39 +00:00
KHobbits
f5e46a7b41 Implement event toggle. 2012-12-30 04:32:43 +00:00
KHobbits
5347f177ce Reorganize entity listener 2012-12-30 03:32:32 +00:00
Alexander Schepp
1f6f37cbd1 Use the right formatter in XMPP 2012-12-30 00:23:04 +01:00
KHobbits
a7cba7a860 Hide a few more duplicate enchantments from /enchant 2012-12-29 09:00:42 +00:00
KHobbits
5d27f6c095 Set default tpa timeout to 2 minutes. 2012-12-29 08:40:03 +00:00
KHobbits
36097288b9 Allow unsafe enchantments in /item /give /kit and /enchant
Needs enabled in config file manually.
2012-12-29 08:36:24 +00:00
KHobbits
667310a976 Make /enchant only show valid enchantments for the item. 2012-12-29 07:58:28 +00:00
KHobbits
dfe8ccc42b Add aliases for new thorns enchantment. 2012-12-29 07:47:07 +00:00
KHobbits
092850792f Ignore self damage in teleport entity protection. 2012-12-29 07:35:26 +00:00
KHobbits
adfa7b8739 Lets clean up the recipe window on player quit, just in case. 2012-12-29 06:55:48 +00:00
KHobbits
6080a5ff29 Fix home functionality bugs:
/home not using bed when enabled
/home not giving teleport warning
2012-12-29 06:43:26 +00:00
KHobbits
38cdc79303 Update bukkit to 1.4.6-R0.1
bukkit: 1652 cb: 2561
2012-12-29 06:37:52 +00:00
KHobbits
d29b9ea5f8 Fix string match error on none existing user (/ban). 2012-12-29 02:00:48 +00:00
Chris Ward
6cc5111ce0 Add SimplyPerms to classpath 2012-12-29 11:26:44 +11:00
Xefir
bc823c43f2 Added SimplyPerms Handler 2012-12-29 10:41:15 +11:00
Alexander Schepp
546edd604d Merge pull request #229 from necrodoom/patch-9
fix tempban permission check
2012-12-28 09:37:40 -08:00
Necrodoom
0d10639154 derp - fix tempban permission check 2012-12-28 19:05:54 +02:00
ElgarL
9f7aba554e Fix missing + from Necrodoom's pull request. 2012-12-28 13:46:22 +00:00
ElgarL
1edc27cc16 Merge pull request #228 from necrodoom/patch-8
Update EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManage...
2012-12-28 05:43:54 -08:00
Iaccidentally
21a040e64f Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2012-12-26 09:48:38 -05:00
Chris Ward
d91efdaad4 Revert c2bdf8edd4 - Adding permission node to speak, with config option to enable the node 2012-12-27 01:41:32 +11:00
Chris Ward
219c84f11a Add tpdeny message to /tpahere 2012-12-27 01:10:57 +11:00
Iaccidentally
dcd9faff58 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2012-12-25 18:12:42 -05:00
Necrodoom
716496af16 Update EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java 2012-12-25 18:11:10 +02:00
Chris Ward
c2bdf8edd4 Adding permission node to speak, with config option to enable the node 2012-12-24 01:55:53 +11:00
Chris Ward
b50330c9dd Move max-tempban-time in config 2012-12-24 01:04:02 +11:00
Chris Ward
6590d8c448 Fixing IUser 2012-12-23 21:29:26 +11:00
Chris Ward
6f12d2f92b Adding isAfk and setAfk to IUser API 2012-12-23 21:25:29 +11:00
KHobbits
547769aa73 Make seen status's only show when true. 2012-12-22 03:36:56 +00:00
Chris Ward
43acdfd5ad Merge pull request #215 from necrodoom/patch-5
update items.csv to minecraft 1.4.6
2012-12-21 04:33:14 -08:00
KHobbits
3d806ff7b8 Log target plugin in debug mode for altcmd 2012-12-21 06:38:51 +00:00
KHobbits
acbe4423e0 Final all the things - Recipe 2012-12-21 03:48:54 +00:00
KHobbits
90046ffc60 Fix recipe layout for small shapes 2012-12-21 03:35:48 +00:00
KHobbits
ae8762b422 Swap method order on recipe 2012-12-21 03:21:35 +00:00
KHobbits
80b903456e Adjust section matching. 2012-12-20 23:37:37 +00:00
KHobbits
76ea2bf913 Merge pull request #227 from Elvaron/2.9
FallBack for missing config property
2012-12-20 15:36:01 -08:00
Elvaron
d1f2b48671 FallBack for missing config property 2012-12-21 00:16:18 +01:00
KHobbits
aaceceea55 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-12-20 22:58:00 +00:00
KHobbits
7da6c14d1a Add support for whitelisting commands in /help by permission: essentials.help.<plugin>.<command> 2012-12-20 22:57:38 +00:00
KHobbits
5f6bf150f5 Reduce permissions checking when generating /help 2012-12-20 22:54:36 +00:00
KHobbits
4327876447 Allow certain commands while in jail, but only if the user normally has access to that command. 2012-12-20 22:53:52 +00:00
KHobbits
07e9e6d1fe Merge pull request #226 from Elvaron/2.9
Made socialspy commands list configurable
2012-12-20 14:16:45 -08:00
Elvaron
291ffb0bba Made socialspy commands list configurable 2012-12-20 23:07:22 +01:00
KHobbits
b8ca9a73ba Merge branch 'release' of github.com:essentials/Essentials into 2.9 2012-12-20 20:37:42 +00:00
KHobbits
87ab3ee119 Add a little bit of extra information to /seen, this will show when user is online. 2012-12-20 20:37:04 +00:00
KHobbits
f839355459 Warn other party when teleport fails after tpaccept. 2012-12-20 20:24:07 +00:00
KHobbits
22e8f9e194 Redundant tpaccept cost check. 2012-12-20 20:23:51 +00:00
KHobbits
ac2d3df058 Fix max tempban length option. 2012-12-20 20:11:45 +00:00
KHobbits
8f572b12ae Warn other party when teleport fails after tpaccept. 2012-12-20 20:01:43 +00:00
KHobbits
9fd1b019b0 Redundant tpaccept cost check. 2012-12-20 19:50:59 +00:00
KHobbits
840cbc12d0 Merge branch 'release' of github.com:essentials/Essentials into 2.9 2012-12-20 17:03:48 +00:00
KHobbits
075bf6b9be Remove command cost warnings from plugin matching. 2012-12-20 15:51:49 +00:00
Chris Ward
bf72cfb50d Fix currency display in MOTD - display currency character, trim decimal places 2012-12-20 15:45:32 +00:00
snowleo
ec87388089 Don't use broken CB methods ... 2012-12-20 15:45:22 +00:00
snowleo
1dc7f53497 Don't use broken CB methods ... 2012-12-20 16:07:40 +01:00
Chris Ward
3937357c66 Useless import 2012-12-20 23:10:38 +11:00
Chris Ward
95c5d8ed85 Fix currency display in MOTD - display currency character, trim decimal places 2012-12-20 23:07:49 +11:00
md_5
6c9716f97d Fix nagging for overriden commands. 2012-12-20 09:56:30 +01:00
snowleo
5294268568 Merge branch 'refs/heads/groupmanager' into 2.9 2012-12-20 09:55:26 +01:00
snowleo
9f52b17e4b Fix gm builds
Change craftbukkit.jar -> bukkit,jar
2012-12-20 09:36:35 +01:00
md_5
7d2a34ed0b Lets leave numeric homes as is for now, looping through all files on server startup is not the place to do this (reverse-merged from commit ebebb61989) 2012-12-20 17:24:14 +11:00
md_5
f9d34d0fe1 Fix nagging for overriden commands. 2012-12-20 17:11:05 +11:00
Chris Ward
7919065be3 Fix NPE in update (sorry again :P) 2012-12-20 15:45:09 +11:00
Chris Ward
ebebb61989 Update home names to prepend "home" to numeric home names 2012-12-20 13:11:05 +11:00
snowleo
770f0e81b0 Force people to use latest CB version 2012-12-20 00:46:03 +01:00
snowleo
2d02b67f2c Fix Spawns / Jail loading 2012-12-20 00:46:03 +01:00
snowleo
d0eace79a7 Update Inventory Workaround to the latest version
Still bugged in CB: maxAmount of items
2012-12-20 00:46:03 +01:00
snowleo
cb30a2c852 Force people to use latest CB version 2012-12-19 23:28:18 +01:00
snowleo
625e2ee386 Fix Spawns / Jail loading 2012-12-19 23:26:29 +01:00
snowleo
ebbab2ecb3 Update Inventory Workaround to the latest version
Still bugged in CB: maxAmount of items
2012-12-19 22:07:03 +01:00
ElgarL
c9408af77a Update Bukkit to version #2543 (1.4.5-R1.0) To ensure we are all
compatible with current recommended build.
2012-12-19 15:10:37 +00:00
Chris Ward
c623058c52 Fix recipe command 2012-12-20 01:35:55 +11:00
md_5
b7559ee38c Simply using the SnakeYaml default (which in turn defaults to Class.forName) appears to be enough to get the classes for our custom configuration. This avoid Bukkit depreciation. 2012-12-19 12:57:05 +00:00
KHobbits
251b58bd75 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-12-19 12:54:00 +00:00
KHobbits
412d3c8f3d Updating Bukkit to 1.4.5 RB
Bukkit: 1643 CB: 2543
2012-12-19 12:52:05 +00:00
Chris Ward
a89d6014e8 Merge pull request #223 from chrisgward/patch-1
Add /recipe command
2012-12-19 00:28:27 -08:00
md_5
0375b9b31d Simply using the SnakeYaml default (which in turn defaults to Class.forName) appears to be enough to get the classes for our custom configuration. This avoid Bukkit depreciation. 2012-12-19 19:10:02 +11:00
Chris Ward
0c39d3fdb9 Add /recipe command 2012-12-19 14:57:12 +11:00
KHobbits
5deab414a4 Remove CB from EssCore libs. 2012-12-18 22:58:55 +00:00
KHobbits
cc1febb46d Merge pull request #216 from chrisgward/patch-1
Add tempban limit (with override node)
2012-12-18 02:24:45 -08:00
KHobbits
95906a66ee Fix command costs warnings. 2012-12-17 18:32:42 +00:00
KHobbits
1f175dffe1 Support new skeleton and zombie types.
Also fix baby sheep colours.
2012-12-16 21:39:31 +00:00
KHobbits
38901e1f29 Log a few extra metrics. 2012-12-16 21:02:02 +00:00
KHobbits
da013e0c09 Merge pull request #217 from necrodoom/patch-7
add "w" alias
2012-12-16 11:07:10 -08:00
Necrodoom
598ad2633d Update Essentials/src/plugin.yml 2012-12-16 18:05:07 +02:00
Necrodoom
785f924361 add "w" alias 2012-12-16 18:03:04 +02:00
Chris Ward
53c0bcec0a Add tempban limit (with override node) and console override to exempt node. 2012-12-17 02:12:38 +11:00
Alexander Schepp
a949ec475d derp
That's why switch statements are bad.
2012-12-16 13:59:25 +01:00
Alexander Schepp
314cd5a68b Fix order of messages 2012-12-16 13:48:02 +01:00
KHobbits
8dc9c310ab Update bukkit
Bukkit 1608 CraftBukkit 2488
2012-12-16 12:28:49 +00:00
KHobbits
ba1e708a13 Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9 2012-12-16 12:12:23 +00:00
Necrodoom
86cb1f9db0 update items.csv to minecraft 1.4.6 2012-12-16 12:52:16 +02:00
Alexander Schepp
4d5a4fcf9b Merge pull request #214 from necrodoom/patch-4
change add-prefix-suffix description
2012-12-15 06:17:22 -08:00
snowleo
e018dede79 Fix the gap 2012-12-15 14:22:52 +01:00
snowleo
9f61f2241b Align /tp syntax with Minecraft /tp command 2012-12-15 14:12:34 +01:00
Necrodoom
979c10d4de change add-prefix-suffic description
hopefully will keep newbies from changing it for no reason
2012-12-15 12:58:57 +02:00
Iaccidentally
69cbdd6e9b Merge pull request #210 from Echo4190/patch-1
Update Essentials/src/config.yml
2012-12-11 04:06:10 -08:00
Echo419
dbf2380765 Update Essentials/src/config.yml
trillions => trillion
english => English
2012-12-11 12:03:21 +00:00
KHobbits
743608246f Merge pull request #209 from necrodoom/patch-2
update config.yml to reference wiki more
2012-12-10 09:46:31 -08:00
KHobbits
e3aa3a37ba Add missing import. 2012-12-10 17:45:32 +00:00
KHobbits
e53a8aa7b6 Update metrics to r6 2012-12-10 17:43:06 +00:00
KHobbits
38e90db8b8 Metrics Diff 2012-12-10 17:40:15 +00:00
Necrodoom
c1e75b96d1 update config.yml to reference wiki more
also changed locale setting to be less confusing
2012-12-10 09:39:22 +02:00
KHobbits
2ef491b7bd Delay sending respawn event until we actually try to respawn user. 2012-12-09 17:32:02 +00:00
KHobbits
c15f942ed6 Revert "Bukkit should have fixed this issue, so we can now get a better first join player experience by teleporting them at once with no delay."
This reverts commit 54c50f7208.

This breaks compatibility with multiverse, and Essentials core.
2012-12-09 17:14:57 +00:00
KHobbits
7c2cb8a19b Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-12-09 17:10:31 +00:00
KHobbits
1be3dc7af2 Move null bed check to teleport code 2012-12-09 17:10:12 +00:00
md_5
54c50f7208 Bukkit should have fixed this issue, so we can now get a better first join player experience by teleporting them at once with no delay. 2012-12-09 16:03:00 +11:00
KHobbits
e78d216a87 Shorten local chat format. 2012-12-08 18:51:18 +00:00
KHobbits
5af9f540f6 Some nice friendly messages to help debugging command costs. 2012-12-08 15:51:33 +00:00
KHobbits
6de63be344 Throw error when using /more on full stack 2012-12-07 00:46:13 +00:00
KHobbits
16dc929433 Remove unused variable 2012-12-06 23:27:43 +00:00
KHobbits
5a7c7510fe Make BPerms sign group checking behave similarly to same as GM and PEX 2012-12-06 23:26:48 +00:00
KHobbits
bdff7dca62 Merge pull request #208 from kukelekuuk00/2.9
Added a total profit message for /sell all|blocks
2012-12-05 09:14:07 -08:00
kukelekuuk00
b8f10c345b Added a total profit message for /sell all|blocks 2012-12-05 15:40:17 +01:00
KHobbits
44a93cad23 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-12-03 09:09:17 +00:00
KHobbits
1283ec3c35 Update afk status on block interact 2012-12-03 09:08:56 +00:00
Iaccidentally
e468892696 Merge pull request #205 from evonuts/patch-1
Spelling/Grammar fixes.
2012-12-01 02:43:20 -08:00
evonuts
d9d598e05a Spelling/Grammar fixes. 2012-12-01 21:51:24 +13:00
Iaccidentally
dc06b46cf4 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2012-11-27 14:54:18 -05:00
snowleo
efacf17ee2 Add log color removal.
(This could already be done with the bukkit setting "log-strip-color")
2012-11-27 19:54:32 +01:00
KHobbits
a40b5059fb Fix kit timers, kit times more than 25 years will be treated as single use. 2012-11-27 18:27:23 +00:00
KHobbits
82e457c897 Userdata cleanup 2012-11-27 17:47:08 +00:00
KHobbits
f4fda5ac35 Merge branch 'release' of github.com:essentials/Essentials into 2.9 2012-11-27 15:24:34 +00:00
Iaccidentally
771aaa482c Merge pull request #204 from necrodoom/patch-23
fix typo at config.yml
2012-11-25 09:30:13 -08:00
Necrodoom
e9d62e73ef fix typo at config.yml 2012-11-25 15:07:25 +02:00
Iaccidentally
ed21a18ea0 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2012-11-24 14:55:54 -05:00
KHobbits
6a68a33d28 Merge pull request #201 from necrodoom/patch-22
fix spacing at disabled-commands
2012-11-20 11:16:00 -08:00
Necrodoom
91de139b2a fix spacing at disabled-commands 2012-11-20 19:38:21 +02:00
ElgarL
3254a1a2a0 Fix recursive error detection when partial mirroring the main world 2012-11-20 14:55:06 +00:00
snowleo
5a0632be73 Better fix for last commit 2012-11-19 22:03:25 +01:00
snowleo
2f43296358 Fix for the plugin conflict with any plugin that contains a log4j library 2012-11-19 20:28:12 +01:00
KHobbits
15f1af8e71 Merge branch 'release' of github.com:essentials/Essentials into 2.9 2012-11-19 14:28:28 +00:00
KHobbits
db47c5d23f Add tptoggle others Essentials style. 2012-11-16 01:37:47 +00:00
Iaccidentally
8e02af5fde Merge remote-tracking branch 'remotes/origin/release' into 2.9 2012-11-13 22:57:14 -05:00
ElgarL
7d0056b154 Update bukkit.jar to #1593 in lib so we can reference the new
interfaces.
2012-11-13 10:17:15 +00:00
Iaccidentally
c54ec648ba Merge pull request #195 from evonuts/2.9
Update fly command to allow for /fly on|*ena*|1 and inversely, /fly off|...
2012-11-11 14:21:18 -08:00
ElgarL
0857d498e5 Prevent GM commands from being used on CommandBlocks. 2012-11-11 20:56:07 +00:00
ElgarL
bf196eb2dc Add support for Rcon. 2012-11-11 20:39:03 +00:00
Iaccidentally
5cdd6498c3 update tptoggle to allow toggling other players :: new permission: essentials.tptoggle.others 2012-11-11 14:34:56 -05:00
KHobbits
12cb2f2a82 Cleanup spawnmob classes
Spawnmob sign nolonger calls Command
Spawnmob other, now spawns at targets feet, rather than where the target is looking
Console can now spawnmob other
2012-11-11 18:55:02 +00:00
Iaccidentally
60138da699 Merge pull request #197 from necrodoom/patch-21
Update Essentials/src/com/earth2me/essentials/Mob.java
2012-11-11 09:10:33 -08:00
KHobbits
16703b4e32 Mob comment. 2012-11-11 17:04:16 +00:00
Necrodoom
30a57e82b0 Update Essentials/src/com/earth2me/essentials/Mob.java 2012-11-11 18:58:05 +02:00
Iaccidentally
b471970edc Make playerFishEvent cancel AFK :: fixes #3192 2012-11-11 11:43:10 -05:00
KHobbits
12004632f6 Merge branch '2.9' of github.com:essentials/Essentials into release 2012-11-11 14:55:00 +00:00
KHobbits
640459290b Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9 2012-11-11 14:54:19 +00:00
KHobbits
8eb1ce0f5c Merge branch '2.9' of github.com:essentials/Essentials into release 2012-11-11 14:53:42 +00:00
Iaccidentally
889d2efa80 Merge pull request #196 from necrodoom/patch-20
update ID 101, by andrewkm request
2012-11-10 09:53:16 -08:00
Necrodoom
626c98898c update ID 101, by andrewkm request 2012-11-10 19:12:25 +02:00
evonuts
b587bf34f8 Fix fly specific settings for other players (eg. /fly evonuts on) 2012-11-10 22:17:39 +13:00
evonuts
eab1895364 Update fly command to allow for /fly on|*ena*|1 and inversely, /fly off|*dis*|0. 2012-11-10 13:40:48 +13:00
ElgarL
b929bb4f83 Merge pull request #194 from necrodoom/patch-19
correct spaces at plugin.yml
2012-11-09 05:51:52 -08:00
ElgarL
c2741ccd5c Merge pull request #193 from necrodoom/patch-18
GroupManager typo fix
2012-11-09 05:51:15 -08:00
ElgarL
b248d192e1 Merge pull request #190 from necrodoom/patch-16
fix typos and update ingame error message
2012-11-09 05:50:39 -08:00
Necrodoom
b495ee2480 correct spaces at plugin.yml 2012-11-08 16:35:57 +02:00
Necrodoom
3e9e477583 GroupManager typo fix 2012-11-08 16:31:49 +02:00
KHobbits
68f8bbdfc0 Extra perm check in /home 2012-11-08 11:53:26 +00:00
md_5
7ece478d68 Set a players sleeping ignored status synchronously, just in case! Thanks for the hint mbaxter & Wolvereness. Closes ticket 3179. 2012-11-08 18:57:44 +11:00
Iaccidentally
ca84cfc868 Merge pull request #192 from evonuts/2.9
Allow for console based gamemode shortcuts. Fixes ticket #3173
2012-11-07 18:39:39 -08:00
evonuts
3261ed2307 Allow for console based gamemode shortcuts. Fixes ticket #3173 2012-11-08 15:19:07 +13:00
Iaccidentally
26b657c85c fix build 2012-11-04 19:04:10 -05:00
Iaccidentally
b1bf072a39 CB 2455 :: Bukkit 1593 2012-11-04 17:52:35 -05:00
KHobbits
2aae8206c9 Allow the 'userIsNotAway' and 'userIsAway' translation messages to be empty. 2012-11-04 22:41:35 +00:00
Alexander Schepp
42129c046f Allow the noNewMail translation to be empty 2012-11-04 22:34:47 +01:00
KHobbits
8d123a3cd5 Code comments. 2012-11-04 21:31:23 +00:00
Iaccidentally
50d9799999 allow money to be put in kits using the currency symbol before the amount 2012-11-04 16:25:09 -05:00
KHobbits
e31d317678 Use durability instead of itemdata for antibuild checks.
Fixes potion blocking using antibuild.
2012-11-04 18:02:36 +00:00
KHobbits
d9e4e00d28 Fix godmode pvp protection not blocking thrown pots and arrows. 2012-11-04 17:31:57 +00:00
KHobbits
2d8c0eb75d Fix missing mob target block 2012-11-04 16:45:02 +00:00
KHobbits
911ea62826 Fix a few more errors in plugin.yml 2012-11-04 13:29:39 +00:00
KHobbits
4aa6516a8e Fix plugin.yml typo. 2012-11-04 13:16:05 +00:00
KHobbits
c29dff5970 Code comments 2012-11-04 02:24:54 +00:00
KHobbits
d7559683ab Limit tnt disable on /nuke to 10s 2012-11-04 02:18:51 +00:00
md_5
f85bbbf80e Update Spanish translations thanks to nikooo14. 2012-11-03 11:47:39 +11:00
Necrodoom
c62e6cf831 Update EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java 2012-11-02 18:21:26 +02:00
Alexander Schepp
61d5c898a4 remove all L 2012-10-31 21:30:57 +01:00
Iaccidentally
f257a13e91 Make /exp accept L before or after the amount, add extra checks 2012-10-31 16:25:13 -04:00
Alexander Schepp
a9ae2267c9 Handle int overflow in SetExpFix 2012-10-31 21:06:30 +01:00
Alexander Schepp
b5e166b280 Use the class, not the interface
This code will be changed later, once Elgarl updates the gm branch to 1.4
2012-10-31 20:06:32 +01:00
Alexander Schepp
5d494d0ae7 Quickfix to prevent GM commands from being called by BlockCommandSender. 2012-10-31 19:44:13 +01:00
Iaccidentally
3e8db7a55f fix minimum required bukkit version. 2012-10-29 14:26:51 -03:00
Iaccidentally
ee3ce3d96e CB 2420 :: Bukkit 1570 :: Update FakeServer and OfflinePlayer 2012-10-29 13:17:56 -04:00
KHobbits
ca6d88491d Merge pull request #185 from evonuts/patch-5
Update Essentials/src/config.yml
2012-10-29 02:21:24 -07:00
evonuts
2ed9070165 Update Essentials/src/config.yml
'flase' typo in wither-spawnexplosion
2012-10-29 22:06:23 +13:00
ementalo
15c49aebf3 Fix mail 2012-10-28 20:09:25 +00:00
ementalo
df53b5d814 Fix mail 2012-10-28 20:00:15 +00:00
Iaccidentally
fcc5018b76 typo fix 2012-10-28 15:03:45 -03:00
Iaccidentally
34ba901548 Update Essentials/src/com/earth2me/essentials/commands/Commandtppos.java
2.9 too
2012-10-28 15:01:54 -03:00
Iaccidentally
e164a0e958 nothing to see here, move along (typo fix) 2012-10-28 13:09:19 -04:00
Iaccidentally
01f148cb5e NOW with complete wither protection! 2012-10-28 13:05:08 -04:00
Iaccidentally
e42b00f0df oops! :: fix wither spawn explosion blocking 2012-10-28 12:58:01 -04:00
Iaccidentally
95104a0681 Fully support wither blocking in protect 2012-10-28 12:53:12 -04:00
Iaccidentally
01ca659987 CB #2415 2012-10-28 12:23:47 -04:00
Iaccidentally
61786bf7c6 Merge branch '2.9' of https://github.com/essentials/Essentials into 2.9 2012-10-28 11:10:17 -04:00
Iaccidentally
0aa2c21f04 update tppos to not accept coords over 30000000 2012-10-28 11:09:49 -04:00
Iaccidentally
03eebcab8d Merge pull request #184 from necrodoom/patch-15
add bat egg and witch egg
2012-10-28 07:40:52 -07:00
Necrodoom
86f0a8abc8 add bat egg and witch egg
enderdragon and wither have no useable eggs, so not added
2012-10-28 16:37:23 +02:00
Iaccidentally
611df58395 Protect updates :: ability to prevent wither damage :: block spawning of new mobs 2012-10-28 09:39:54 -04:00
Iaccidentally
8fa486aa37 CB #2406 Bukkit #1568 2012-10-28 09:11:50 -04:00
md-5
ad1a37c90f Merge pull request #183 from evonuts/patch-4
Update Essentials/src/config.yml
2012-10-28 03:22:55 -07:00
evonuts
bf70a501fb Update Essentials/src/config.yml 2012-10-28 22:37:00 +13:00
md_5
7840faff18 Why the f*** do we depend on Bukkit too? 2012-10-28 20:09:26 +11:00
md-5
a725408ddf Merge pull request #182 from evonuts/patch-3
Update Essentials/src/config.yml
2012-10-28 02:02:24 -07:00
md_5
f015e2ea36 No idea why this still refuses to compile locally. Stupid ant. 2012-10-28 20:01:27 +11:00
evonuts
557ca0b27a Update Essentials/src/config.yml 2012-10-28 21:55:20 +13:00
md-5
631b91e302 Merge pull request #180 from Glyca/2.9
Added, fixed and improved French translations
2012-10-28 01:38:51 -07:00
md-5
cce82f1fc5 Merge pull request #176 from necrodoom/patch-14
update files to minecraft 1.4
2012-10-28 01:37:22 -07:00
Glyca
c57acad54a Added, fixed and improved French translations 2012-10-27 21:47:55 +02:00
Necrodoom
75dd2ae877 update ID 137 2012-10-27 10:41:50 +03:00
KHobbits
7921ca54ec Merge branch '2.9' of github.com:essentials/Essentials into release 2012-10-26 21:41:49 +01:00
KHobbits
7b5ed517fe Reduce calls to bukkit getPlayer(); 2012-10-26 21:34:36 +01:00
ementalo
873d1c7550 2.9 Release 2012-10-26 09:48:45 +01:00
KHobbits
8345f875f1 Fix tp delay message 2012-10-23 00:00:55 +01:00
KHobbits
70ee7d8f44 Update EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java 2012-10-22 14:55:52 +02:00
KHobbits
12f43c16bf Update listener comment 2012-10-22 12:27:01 +02:00
Alexander Schepp
76b0a925b2 Fix NPE in UserData on login
if no address is available
2012-10-21 23:17:08 +03:00
KHobbits
b0cd884c41 Fix perm check in /kill 2012-10-20 19:24:33 +01:00
KHobbits
bc8a45c850 If the player is still alive, make sure he dies. (/kill) 2012-10-20 19:18:04 +01:00
KHobbits
3a31b7cf9d Block explicit /home bed, unless user has "essentials.home.bed" permission.
This does not effect the '/home' command when used with no arguments.
In this case, a player will still be sent to the bed home, if they have no Ess home set.
2012-10-20 16:15:43 +01:00
KHobbits
be2066e0a0 Remove extra home check. 2012-10-20 16:09:54 +01:00
Necrodoom
d1ecde5c88 update mob.java to 1.4 2012-10-20 12:24:18 +03:00
Necrodoom
bfcbe64a36 update items.csv to 1.4
items.csv version 2.2_01
2012-10-20 12:11:27 +03:00
ementalo
d0f0bd32e0 Fix test 2012-10-17 13:14:59 +01:00
ementalo
017c162692 CB #2396 B #1566 2012-10-17 13:09:03 +01:00
snowleo
775109e32b Don't call plugin manager in Settings. 2012-10-15 20:30:52 +02:00
KHobbits
7239e58ef7 Merge pull request #174 from necrodoom/patch-13
fix sandstone slab aliases
2012-10-14 09:44:26 -07:00
Necrodoom
df07696063 fix sandstone slab aliases 2012-10-14 19:40:57 +03:00
KHobbits
8ed098cff2 Allow kicking of hidden players 2012-10-14 13:04:00 +01:00
KHobbits
1638934575 Warn when banning a player who has never connected to the server. 2012-10-14 13:03:54 +01:00
Iaccidentally
1a4e3ce566 Update Essentials/src/items.csv
quick items.csv fix
2012-10-09 05:19:27 -03:00
KHobbits
cefda18404 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-10-07 22:40:18 +01:00
KHobbits
76c347977a Add alt warp perm for others 2012-10-07 22:40:04 +01:00
snowleo
413bf8552e Update AntiBuild for NB7.2 2012-10-07 23:00:09 +02:00
snowleo
22c6812509 Prevent massive amount of mails being send.
Added new config: mails-per-minute, default 1000
2012-10-07 22:46:15 +02:00
KHobbits
7a64099959 New permission: essentials.vanish.pvp
If you don't have this permission you cannot PVP while vanished.
2012-10-07 18:10:50 +01:00
KHobbits
a48c836213 Change default action colour to be different to /say 2012-10-06 22:26:51 +01:00
KHobbits
8234a40083 Code comments 2012-10-06 03:49:36 +01:00
KHobbits
f25a4942ea Comment for future sanity. 2012-10-05 02:06:23 +01:00
KHobbits
17bebc564d Fix gamemode other perm check 2012-10-02 21:06:28 +01:00
KHobbits
af43c14956 Better handle invalid warp names 2012-10-02 00:19:42 +01:00
KHobbits
292a48348c Cleanup sethome 2012-10-01 20:32:10 +01:00
Alexander Schepp
321e308201 Merge pull request #171 from chrisgward/patch-5
Adding console override to sudo chat
2012-10-01 10:31:48 -07:00
Chris Ward
0e602a61d7 Adding console override to sudo chat, changing say to c: 2012-10-02 03:30:13 +10:00
ElgarL
ed336e9e79 Merge remote-tracking branch 'remotes/origin/2.9' into groupmanager 2012-10-01 17:51:56 +01:00
ElgarL
f898b0c2c9 Merge branch '2.9' of https://ElgarL@github.com/essentials/Essentials.git into 2.9 2012-10-01 17:50:08 +01:00
ElgarL
2a06f49284 Move Event to LOW so permissions get updated before this event is
triggered.

With LOWEST it would only randomly work with most perm systems,
depending on the loading order.
2012-10-01 17:49:42 +01:00
Alexander Schepp
c75e9a3a84 Merge pull request #165 from chrisgward/patch-2
Adding say command to sudo to fake chat
2012-10-01 09:34:49 -07:00
Alexander Schepp
8801f02f80 Merge pull request #166 from chrisgward/patch-3
Blocking numeric home names, changing invalid home message
2012-10-01 09:34:09 -07:00
Chris Ward
b5d8337f09 Blocking numeric home names, changing invalid home message 2012-10-02 02:32:52 +10:00
Chris Ward
1cb60e8733 Adding -c switch to sudo to fake chat 2012-10-02 02:31:15 +10:00
Alexander Schepp
239f274821 Merge pull request #169 from chrisgward/patch-5
Adding console only overrides to exempts
2012-10-01 09:15:18 -07:00
Alexander Schepp
c249c735b8 Merge pull request #170 from chrisgward/2.9
Fixing storage of compiled regex
2012-10-01 09:12:35 -07:00
Chris Ward
94c08fbd66 Fixing storage of compiled regex 2012-10-02 02:11:05 +10:00
Chris Ward
4131763ba7 Adding console overrides to exempts 2012-10-02 01:57:29 +10:00
Iaccidentally
f0818310f8 Merge pull request #164 from chrisgward/patch-1
Fixing bad file names in Windows (Fixes #2924)
2012-10-01 07:16:22 -07:00
Chris Ward
2ce7a98b5d Fixing bad file names in Windows (Fixes #2924) 2012-10-01 21:20:17 +10:00
ElgarL
9e13290879 allWorldsDataList now returns fully mirrored worlds whihc are not
identical mirrors (fixes the /manselect list).
2012-10-01 12:05:49 +01:00
KHobbits
6813c66dea Merge pull request #163 from chrisgward/patch-1
Fixes #2933
2012-10-01 03:27:37 -07:00
Chris Ward
b586059201 Typo (Ticket 2933) 2012-10-01 20:12:13 +10:00
KHobbits
1d8f36a2c9 Merge pull request #158 from necrodoom/patch-10
update potion aliases- add all unused potions
2012-09-30 13:55:20 -07:00
KHobbits
ba63aeabd2 Merge pull request #162 from necrodoom/patch-12
small fixes to items.csv
2012-09-30 13:55:09 -07:00
KHobbits
76f4d1e091 Restore removed tp method, it is used in other plugins. 2012-09-30 18:15:46 +01:00
KHobbits
47b69e2401 Update Bukkit/CB to 1.3.2 R1
Bukkit: 1546 CB: 2377
2012-09-30 17:33:49 +01:00
Necrodoom
f25229cd8e small fixes to items.csv 2012-09-30 19:22:14 +03:00
KHobbits
7fe8b1bbad Merge branch 'release' of github.com:essentials/Essentials into 2.9 2012-09-30 17:21:09 +01:00
Necrodoom
490d3fe929 update kit sign permission check 2012-09-30 17:16:03 +01:00
Necrodoom
fe630ba930 update warp sign permission check 2012-09-30 17:15:57 +01:00
KHobbits
c0467d3a60 Should fix tpaccept charge bug - needs testing 2012-09-30 17:15:40 +01:00
KHobbits
9921299140 New permission: essentials.teleport.timer.move - allow players to move during tp delay 2012-09-29 23:48:59 +01:00
KHobbits
ecc03a9d54 Little bit DRYer 2012-09-29 23:41:12 +01:00
KHobbits
026ddbbf67 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-09-29 23:35:09 +01:00
KHobbits
356c750c6f Properly handle tphere requests so the right user is in control/charged. 2012-09-29 23:34:46 +01:00
KHobbits
202fc901a9 Tidy Teleport file 2012-09-29 23:33:32 +01:00
KHobbits
f74f7910ff Merge pull request #161 from necrodoom/patch-11
update signs permission check
2012-09-29 13:52:07 -07:00
Necrodoom
8b89ffa965 update kit sign permission check 2012-09-29 15:57:31 +03:00
Necrodoom
a3aed7eb9b update warp sign permission check 2012-09-29 15:55:47 +03:00
KHobbits
8cadbed40b Should fix tpaccept charge bug - needs testing 2012-09-29 03:59:31 +01:00
KHobbits
c0721e7085 Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9 2012-09-28 23:01:32 +01:00
KHobbits
f4d95c0442 Add potion effect clearing on /heal - Chris Ward 2012-09-28 20:56:03 +01:00
KHobbits
eae2294673 Cleanup of god mode effects, suggested by gravypod. 2012-09-28 20:45:56 +01:00
KHobbits
0d59f78465 God mode cancel potion effects - Chris ward
Revert heal changes.
2012-09-28 20:35:13 +01:00
Necrodoom
4155eeb89c update potion aliases- add all unused potions
items.csv version 2.1_13
2012-09-28 17:02:43 +03:00
Paul A.
eae246dc90 Fix updating version on items.csv 2012-09-27 16:39:23 +02:00
Paul A.
291781a891 Merge pull request #156 from evonuts/patch-1
Minor spelling/grammatical fixes
2012-09-27 05:47:31 -07:00
evonuts
d097d9e04c Minor spelling/grammatical fixes 2012-09-28 00:42:25 +12:00
Paul A.
5e4e8081b6 Merge pull request #154 from necrodoom/patch-9
typo fix in config.yml as found by @Evonuts
2012-09-27 05:22:09 -07:00
Necrodoom
c5263dcc34 typo fix in config.yml 2012-09-27 15:19:14 +03:00
KHobbits
99f5f93e06 Remove debug comments. 2012-09-25 22:37:58 +01:00
KHobbits
931a76fb0f Handle negated wildcard perms in generic superperms 2012-09-25 22:21:15 +01:00
ElgarL
493b041704 Update users.yml to follow new ordering. 2012-09-25 20:41:16 +01:00
ElgarL
a4df448d23 No need for a new array. 2012-09-25 20:39:24 +01:00
ElgarL
48f502f679 Add alphabetically sorted user lists. 2012-09-25 13:23:19 +01:00
KHobbits
a357c7e5b5 Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9 2012-09-25 13:16:41 +01:00
ElgarL
5a137842e5 Change order of data in Users.yml to [name, Group, SubGroup,
Permissions, Info nodes].
2012-09-25 13:09:26 +01:00
ElgarL
b4a8f357bd Commenting 2012-09-25 11:27:36 +01:00
ElgarL
99a4f6d366 Fix javadocs 2012-09-25 11:25:19 +01:00
ElgarL
d7cecb1758 Minor typo fix - Necrodoom 2012-09-25 11:15:28 +01:00
KHobbits
611de7d725 Revert "Clean up imports"
This reverts commit 276cc71db0.
2012-09-24 23:04:33 +01:00
KHobbits
ebd6d03108 Improve fake sign check. 2012-09-24 23:01:58 +01:00
Paul A.
dd12013329 Merge pull request #151 from gravypod/patch-2
Clean up imports
2012-09-24 14:34:36 -07:00
KHobbits
0c8975db45 Envelope new drop/pickup/craft perms under 'essentials.build'. 2012-09-24 12:48:07 +01:00
KHobbits
c356e92287 Minor cleanup 2012-09-24 03:16:15 +01:00
gravypod
276cc71db0 Clean up imports 2012-09-23 22:06:39 -03:00
KHobbits
2bc87841d1 Fix and give better sign errors. 2012-09-24 00:19:39 +01:00
KHobbits
8745568a69 Less sign checking if certain signs aren't enabled. 2012-09-23 23:51:57 +01:00
KHobbits
378ed75ecc config typo. 2012-09-23 23:18:17 +01:00
KHobbits
f9a014a08b Minor colour change 2012-09-23 23:08:35 +01:00
KHobbits
8470b05a6c Move wildcard perm check to superperms handler, rather than being PEX specific. 2012-09-23 23:01:14 +01:00
KHobbits
fc5c0e3e7a Lower reporting level of metrics errors. 2012-09-23 18:08:43 +01:00
KHobbits
11c68e03b6 Support new lines in newbie welcome message. 2012-09-22 21:15:04 +01:00
KHobbits
8949cbc5fb Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9
Resolved Conflicts:
	EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java
2012-09-22 20:44:45 +01:00
KHobbits
143d9d2089 Cleanup delhome to match normal home cases properly. 2012-09-22 20:43:27 +01:00
ElgarL
f9dafb06be Update warning in GlobalGroups - Necrodoom. 2012-09-22 19:51:38 +01:00
ElgarL
1dc93a7a85 - Fix Synchronization on adding subgroups (thanks snowleo).
- Remove info node support from GlobalGroups. It should not have them
as GlobalGroups are only permission collections.
2012-09-22 19:18:51 +01:00
KHobbits
daa517c5a2 Reset colour code at start of default broadcast msg. 2012-09-22 15:00:00 +01:00
KHobbits
a49570605a General demo txt formatting 2012-09-22 14:44:56 +01:00
KHobbits
ee647e1fae Clean chat colours. 2012-09-22 14:40:56 +01:00
KHobbits
416eee97ad Clean up the info.txt 2012-09-22 14:36:07 +01:00
KHobbits
f905ae8701 Merge pull request #148 from necrodoom/patch-7
fix info.txt colors and tags
I'll do a little manual cleanup.
2012-09-22 06:21:51 -07:00
KHobbits
71d39bc23b Possibly solve info writing issues in globalgroups
Editing this on the ess branch, cause i'm sure there is a better fix.
2012-09-22 04:35:55 +02:00
Necrodoom
0f2dda6b00 fix info.txt colors and tags 2012-09-21 18:09:30 +03:00
md_5
7f16a6834a Check for explicit * permission when using PEX. 2012-09-21 19:53:20 +10:00
KHobbits
b9ea270cd2 Update config.yml to show multiple enchantments for kits. 2012-09-21 02:10:39 +01:00
KHobbits
53fdc3e408 Make sure we check for wildcards in PEX 2012-09-20 20:36:07 +01:00
KHobbits
f95d1faae1 Switch pex permissions checks to use superperms rather than direct api call. 2012-09-20 20:21:45 +01:00
KHobbits
27ea33d82b ignoreCancelled events. 2012-09-19 21:07:50 +01:00
KHobbits
654e70e436 New Permission:
essentials.build.pickup.<id>[:<datavalue>] - Allows collecting of an item
essentials.build.drop.<id>[:<datavalue>] - Allows dropping of an item
2012-09-19 20:57:06 +01:00
KHobbits
1b91705d50 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-09-19 19:48:14 +01:00
KHobbits
2f4f510af1 New Permission:
essentials.build.craft.<id>[:<datavalue>] - Allows crafting of an item
2012-09-19 19:47:47 +01:00
md_5
d8f6c31cd2 Self indulgent commit. Door should be an alias for wood door. 2012-09-17 21:55:52 +10:00
KHobbits
fd79120929 Hide Protection sign option. 2012-09-17 11:29:16 +01:00
KHobbits
1c7cc88ff5 Fix a few minor text formatting issues. 2012-09-16 20:45:33 +01:00
KHobbits
2f488c9a23 Config file permissions cleanup
Removed deprecated 'restricted-commands' section.
Deprecated 'superperms' toggle.
Remove op override on essentials permissions.
Give op's all permissions by default via superperms.
2012-09-16 20:27:35 +01:00
KHobbits
af2ebce3a4 Merge pull request #146 from necrodoom/patch-6
update dualbit, fix strength, add swift aliases
2012-09-16 08:48:16 -07:00
Necrodoom
82487fb383 update dualbit, fix strength, add swift aliases
items.csv version 2.1_12
2012-09-16 18:46:46 +03:00
md_5
7d427ae0b5 Merge remote-tracking branch 'origin/groupmanager' into 2.9 2012-09-16 23:02:56 +10:00
Iaccidentally
7698f3d9af Update Essentials/src/plugin.yml
updating SKYNET
2012-09-15 21:07:42 -03:00
KHobbits
006d445bd3 Missing tl key. 2012-09-15 22:06:42 +01:00
KHobbits
bc0f5e76ae Add server uptime to /gc 2012-09-15 22:04:18 +01:00
KHobbits
bb0ff457f6 Add missing TL key
Fixes #1363
2012-09-15 21:16:31 +01:00
KHobbits
1b73efef86 Allow bans on players who have never connected. 2012-09-15 20:57:44 +01:00
KHobbits
40da0b735d Reduce the enchantment list some more. 2012-09-15 20:29:29 +01:00
KHobbits
d8c9ca163b Fix Essentials /sethome to more strictly obey home limits. 2012-09-15 19:55:12 +01:00
KHobbits
826b18153a /ess reset <player> - Clears stored data about a user. 2012-09-14 02:30:24 +01:00
KHobbits
1708071eb6 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-09-14 01:11:04 +01:00
KHobbits
22e2b48f9a Fixed jail extend message - xGhOsTkiLLeRx 2012-09-14 01:10:22 +01:00
KHobbits
2c6b461d0e Update Essentials/nbproject/project.properties
Accidentally added unneeded line...
2012-09-14 02:01:02 +02:00
KHobbits
0368b57034 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-09-14 00:59:25 +01:00
KHobbits
89cc945e23 Don't create empty user files 2012-09-14 00:58:57 +01:00
KHobbits
93c5a7387d Merge pull request #141 from DerFlash/2.9
Fix problems with async chat event not sending messages to xmpp chat spy
2012-09-13 06:21:11 -07:00
DerFlash
2ad9104d72 Fix problems with async chat event not sending messages to xmpp chat spy 2012-09-13 14:57:02 +02:00
KHobbits
c40f9b6e17 remove users from bperm example, different yml file now. 2012-09-13 01:50:55 +01:00
KHobbits
4568cbea50 Update bpermissions example 2012-09-13 01:46:23 +01:00
ElgarL
8967839e6d Remove unused imports. 2012-09-11 11:12:19 +01:00
KHobbits
77e80296e1 Couple extra /info aliases. 2012-09-11 05:05:55 +01:00
KHobbits
9a7352b6cf Less strict matching on /realname 2012-09-11 01:07:31 +01:00
KHobbits
906f2506db Make /realname throw an error if no matches were found 2012-09-11 00:53:32 +01:00
snowleo
ed75ae3030 Missing final 2012-09-10 20:53:25 +02:00
snowleo
e02a0de520 Thread safety for GM 2012-09-10 20:49:07 +02:00
snowleo
128540b51e Revert bad synchronization
This reverts commit 9544bc35df.
2012-09-10 19:06:17 +02:00
ElgarL
f483545bbb Synchronize the world data holder. 2012-09-10 17:46:01 +01:00
KHobbits
0250f74fb4 Patch flight disable, to not effect creative mode.
Full world change config still needs coding.
2012-09-10 01:13:30 +01:00
KHobbits
9cf146a789 Fixing map/ironore bug. 2012-09-10 01:10:32 +01:00
ElgarL
9544bc35df Change to Hashtables to reduce the chance of a
ConcurrentModificationException pulling group/user data in an Async
thread.
2012-09-10 00:15:42 +01:00
KHobbits
e323af32d8 Little bit extra sanity checking. 2012-09-09 20:13:03 +01:00
KHobbits
0b2b514fd5 Move auto afk permission to 'essentials.afk.auto' 2012-09-09 19:09:35 +01:00
KHobbits
406dda2d6f Fixing locale typo. 2012-09-09 18:35:20 +01:00
KHobbits
c4681e0cf7 Fix Missing TL key 2012-09-09 17:10:26 +01:00
KHobbits
c2c8c41df5 Change default op colour 2012-09-09 16:55:43 +01:00
KHobbits
001f3629e6 More message cleanup 2012-09-09 16:52:45 +01:00
KHobbits
da9b438028 Manual merge necrodoom enchant changes. 2012-09-09 16:29:38 +01:00
KHobbits
19f3dca231 Two sets of enchantment aliases. 2012-09-09 16:27:22 +01:00
KHobbits
cec92f3085 More message cleanup 2012-09-09 16:15:12 +01:00
KHobbits
de72875aea Missing TL keys 2012-09-09 15:50:22 +01:00
KHobbits
8ce63c1073 Few more message tweaks. 2012-09-09 15:27:25 +01:00
KHobbits
b4fc91db39 If chat event doesn't resolve to valid player, cancel and exit. 2012-09-09 06:36:14 +01:00
KHobbits
8f22262d92 Message cleanup. 2012-09-09 05:41:06 +01:00
KHobbits
938aa05776 Update some of the example permissions files for the perm changes. 2012-09-08 23:00:57 +01:00
KHobbits
55c4700eee Move the per world permissions:
essentials.world.worldname is moved to essentials.worlds.worldname
2012-09-08 22:50:20 +01:00
KHobbits
498ae85348 Log to console the effects of /sudo 2012-09-08 21:10:26 +01:00
KHobbits
11147706f6 Remove dead setting.
Fixes #2465
2012-09-08 20:41:38 +01:00
KHobbits
e684e2f0f3 Move the per kit and warp permissions:
essentials.kit.kitname is moved to essentials.kits.kitname
essentials.warp.warpname is moved to essentials.warps.warpname
2012-09-08 20:32:48 +01:00
KHobbits
9e5b105bcc Look out for nulls. 2012-09-08 18:41:21 +01:00
KHobbits
28f9bbd1ce Make /itemdb command list the 15 shortest item.csv names for said item.
This will be useful when making eco signs.
2012-09-08 18:33:06 +01:00
KHobbits
0ab8efbb19 Fix /itemdb showing 'uses left' on none held items. 2012-09-08 16:33:00 +01:00
KHobbits
1725a235ee Fix compile error. 2012-09-08 16:03:54 +01:00
KHobbits
684e6c06fb Async EssentialsSpawn join event, like the others. 2012-09-08 14:55:37 +01:00
KHobbits
c3228f1bd6 New Permission: essentials.god.pvp
Unless you have this permission you will be unable to attack other players while in god mode.
2012-09-08 14:51:03 +01:00
KHobbits
45135e4b63 Give user chance to get display name set before displaying geoip. 2012-09-08 14:40:19 +01:00
KHobbits
4ceaf2183b Potential fix for teleporting issue. 2012-09-08 14:30:11 +01:00
KHobbits
9f21a0d42e Switch default antibuild status to false. Antibuild toggling shouldn't be an issue with it as a stand alone plugin. 2012-09-08 14:11:12 +01:00
snowleo
2aa1bbefcb Fix ConcurrentModification bugs
This will probably slow down any access to config
2012-09-07 18:33:28 +02:00
Iaccidentally
f6455b44be Update Essentials/src/com/earth2me/essentials/commands/Commandburn.java
typo fix
2012-09-04 00:16:23 -03:00
KHobbits
3a0bac99ce Catch null eco symbol. 2012-09-02 20:17:28 +01:00
KHobbits
a6b11592f5 More error on 'Permissions system error' in debug mode. 2012-09-02 18:30:59 +01:00
KHobbits
bac60b2e8a Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-09-02 18:11:54 +01:00
KHobbits
d26a581775 Update /kit delay to use updated yaml code. 2012-09-02 18:11:29 +01:00
KHobbits
2242ed2886 Merge pull request #136 from necrodoom/patch-3
update enchants with 3-1 letter aliases
2012-09-02 07:51:29 -07:00
KHobbits
d9f4ef38ca Add support for /gamemode toggle | /gamemode t and /gmt to toggle between the 3 gamemodes. 2012-09-02 06:54:58 +01:00
KHobbits
83dc0d6628 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-09-02 01:57:10 +01:00
Iaccidentally
ad8f7bca3e fix burn matching all players 2012-09-01 16:40:49 -04:00
Necrodoom
a1e494a894 update enchants with 3-1 letter aliases 2012-09-01 10:33:20 +03:00
KHobbits
9789378411 Another Config tweak. 2012-08-31 22:31:56 +01:00
KHobbits
c02966258c Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9 2012-08-31 22:28:21 +01:00
KHobbits
fd5b77324e Config file tweaks 2012-08-31 22:26:26 +01:00
ElgarL
ee10e8c7fc Include the GM version when logging errors. 2012-08-31 21:56:46 +01:00
ElgarL
2f6dd238b1 Give a better error when a subgroup is null. 2012-08-31 21:47:35 +01:00
KHobbits
70c9bf56d2 Fix powertool command logging. 2012-08-31 18:52:40 +01:00
KHobbits
19043fecf6 Don't need built in command logger anymore. 2012-08-31 18:44:14 +01:00
KHobbits
d8cabedb59 Sanity Check. 2012-08-31 17:57:57 +01:00
KHobbits
07906c9bbf Add missing repair cost check on /repair hand 2012-08-31 17:54:10 +01:00
KHobbits
8bb202fca6 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-08-31 17:48:25 +01:00
KHobbits
48f704e047 Reduce the number of permissions checks in command cost lookups
Add support for item number repair costs (repair-123: 120)
Ess charge api supports nested charges.
Slight kit optimization.
2012-08-31 17:48:07 +01:00
KHobbits
17a4f04ccb Merge pull request #134 from necrodoom/patch-16
clear whitespace in globalgroups.yml
2012-08-31 06:48:07 -07:00
Necrodoom
a3ff7da1c1 clear whitespace in globalgroups.yml 2012-08-31 16:40:25 +03:00
KHobbits
13877531c4 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-08-31 14:09:44 +01:00
KHobbits
a1c77138e6 Fix metrics when kits are improperly configured. 2012-08-31 14:09:20 +01:00
Paul A.
5751977cb8 Update Essentials/src/config.yml
More grammar from Evonuts
2012-08-31 12:30:40 +02:00
Paul A.
817c7b751c Update Essentials/src/config.yml
Grammar update thanks to Evonuts
2012-08-31 11:37:10 +02:00
KHobbits
651343f187 Fix painting break in antibuild. 2012-08-31 06:06:33 +01:00
KHobbits
2a45afec68 Fix IllegalStateException in sign click patch
Cleanup
2012-08-31 00:47:53 +01:00
KHobbits
deb79b7478 Fix min bukkit version warning. 2012-08-30 23:28:16 +01:00
KHobbits
db0d944e2a Reset fly/speed on world change
This will be optional in a future version - Discuss http://goo.gl/Vuh4N
2012-08-30 23:13:50 +01:00
KHobbits
e43adf229b Update chat formatting to use &r instead of &f 2012-08-30 20:43:33 +01:00
KHobbits
6542377a89 Clear up overriding comments on config file.
Closes #2725
2012-08-30 19:19:03 +01:00
KHobbits
9fe4664db6 Merge pull request #133 from necrodoom/patch-15
clarify some things on config
2012-08-30 10:08:38 -07:00
Necrodoom
3abc26a8bc minor fix 2012-08-30 19:00:53 +03:00
Necrodoom
1735d53eb5 clarify some things on config 2012-08-30 18:58:43 +03:00
KHobbits
f29010257d Merge pull request #131 from necrodoom/patch-14
update pork aliases
2012-08-29 08:22:04 -07:00
Necrodoom
02c0781592 update pork aliases
items.csv version 2.1_11
2012-08-29 16:51:38 +03:00
KHobbits
dcf13efdbd Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9 2012-08-28 03:12:16 +01:00
KHobbits
115aa9b1d4 Fix CB. 2012-08-28 03:08:06 +01:00
KHobbits
b4c206cd1d Merge branch '2.9' into release 2012-08-28 03:05:13 +01:00
KHobbits
dd6a428db2 Update CB :: Bukkit 1536 || Craftbukkit 2352 (1.3.2-R0.1) 2012-08-28 03:01:49 +01:00
KHobbits
6d35416d8f Merge branch '2.9' of github.com:essentials/Essentials into release 2012-08-28 02:55:02 +01:00
KHobbits
e5adafa81f If both freeze-afk-players and cancel-afk-on-move is turned on, cancel AFK on player jump. 2012-08-28 02:50:59 +01:00
KHobbits
d3accebefd Disable AFK when player damages entity. 2012-08-28 02:24:01 +01:00
KHobbits
d88dcbea50 Manually merge Nickshelton80's alias change. 2012-08-28 02:08:58 +01:00
KHobbits
3efe3a1204 Handle jail teleport locations slightly better. 2012-08-28 02:06:11 +01:00
KHobbits
ca90700daa Optimize AntiBuild a little
Support item name deny messages in antibuild.
2012-08-28 01:38:16 +01:00
KHobbits
b30fc24513 Fix minor typo in plugin.yml
Remove 'essentials.interact' permission from antibuild - Not needed
2012-08-27 23:59:29 +01:00
KHobbits
bbb2c6d832 Remove max walk option to config, until its fixed in the client. 2012-08-27 03:09:56 +01:00
KHobbits
b1fb1588f4 Missing [player] param syntax on /afk 2012-08-26 20:26:06 +01:00
KHobbits
3575afd597 Comment out/remove the /speed walk code, until the client properly supports this function. 2012-08-26 19:53:58 +01:00
KHobbits
4fdccb1e2d New command /speed [walk|fly] <speed> [player]
New permissions:
essentials.speed = access to the command
essentials.speed.others = ability to change the speed of another player
essentials.speed.bypass = override max speed limits in config.yml
New config options:
max-fly-speed
max-walk-speed
2012-08-26 19:35:39 +01:00
KHobbits
5050c3967e More work on /fly command - Still incomplete
Updated and fixed messages files for missing keys.
2012-08-26 17:16:22 +01:00
KHobbits
af55238916 Updated Spanish Translation 2012-08-26 00:36:35 +01:00
KHobbits
28e568433e Foundation for speed command - not yet implemented. 2012-08-25 19:23:41 +01:00
KHobbits
b9bca0ed8f Add AntiBuild to Metrics. 2012-08-25 16:57:36 +01:00
KHobbits
1e222ab1a6 Don't check for loan permission is there is no cost. 2012-08-22 09:12:38 +01:00
KHobbits
dda2f07ed7 New perm: essentials.kit.exemptdelay
Allows you to exempt from kit delays.
2012-08-22 00:27:33 +01:00
ElgarL
221ccc498d iacc's anal 2012-08-21 21:28:26 +01:00
KHobbits
304ef82d60 Remove debug messages. 2012-08-21 20:45:27 +01:00
KHobbits
c9c0c84721 New command: /enderchest [player] (alias /endersee and /echest)
This command lets you look inside your or another players enderchest
New Permissions:
essentials.enderchest - Access to the command
essentials.enderchest.others - Lets you look at other enderchests
essentials.enderchest.modify - Lets you modify other enderchests
2012-08-21 20:44:09 +01:00
KHobbits
a53745c3ba Update CB
Bukkit 1533 || Craftbukkit 2345 (1.3.1-R2.1)
2012-08-21 19:56:14 +01:00
KHobbits
bcf092c26a Merge branch '2.9' into release 2012-08-21 19:34:26 +01:00
KHobbits
aa2fdf7b40 Reorder perm check in antibuild 2012-08-20 08:41:22 +01:00
KHobbits
cc3591564d Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-08-19 23:42:05 +01:00
KHobbits
1bc0b8a97d Merge branch 'antibuild' into 2.9 2012-08-19 23:41:28 +01:00
KHobbits
f0f37a1671 Reduce permissions checks in antibuild.
Add a little debug logging for those with it enabled.
2012-08-19 21:20:55 +01:00
KHobbits
224e1bc115 Merge pull request #124 from necrodoom/patch-11
patch ID 322 and update ID 260
2012-08-19 12:52:32 -07:00
KHobbits
46222e1a2d Correct antibuild perm check
(still need to abort interact/use checks on block place)
2012-08-19 16:08:36 +01:00
KHobbits
2b52d11ca7 Attempt to add support for metadata permissions. 2012-08-19 15:25:40 +01:00
KHobbits
5432f046e1 Split Ess protect into EssProtect and EssAntiBuild
New permissions:
essentials.build - same as build: true
essentials.build.interact.<id> - whitelist single interact block
essentials.build.place.<id> - whitelist single place block
essentials.build.break.<id> - whitelist single break block
essentials.build.use.<id> - whitelist single use item
2012-08-19 14:54:58 +01:00
ElgarL
343cb169ef No more null errors from corrupt config.yml's. 2012-08-19 14:49:16 +01:00
necrodoom
246b978ff5 patch ID 322 and update ID 260
items.csv version 2.1_10
2012-08-19 09:50:19 +03:00
KHobbits
2c965ce9ae Add some command cost debugging messages to /ess debug 2012-08-19 03:38:09 +01:00
KHobbits
0d13dc757d Slightly more realistic worth prices. 2012-08-19 02:49:32 +01:00
KHobbits
7c833e700f Tidy the worth file formatting. 2012-08-19 02:25:30 +01:00
KHobbits
46b136e4e2 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-08-18 16:10:36 +01:00
Iaccidentally
fca82e7a26 Merge pull request #123 from necrodoom/patch-9
fix ID 2259, pointed out by tanite
2012-08-18 07:59:16 -07:00
KHobbits
7a890c9e5c Removing EssentialsUpdate from 2.9 branch.
Development may be continued in 3.x branch.
2012-08-18 15:51:55 +01:00
KHobbits
426d0093d2 Remove 3.x api migration code.
3.x development was moved to different code branch.
Removing deprecated warnings, since it would be silly to deprecate ALL classes.
2012-08-18 15:48:29 +01:00
KHobbits
530a519118 Fix /warp command matching in console. 2012-08-18 15:25:14 +01:00
necrodoom
fa6fa88247 fix ID 2259, pointed out by tanite
items.csv version 2.1_09
2012-08-18 10:22:12 +03:00
Iaccidentally
c1bdeb0900 Merge pull request #122 from necrodoom/patch-8
update IDs: 5,6,17,18 - erase unused and add new
2012-08-15 01:20:40 -07:00
necrodoom
53a51b2d59 update IDs: 5,6,17,18 - erase unused and add new
items.csv version 2.1_08
2012-08-15 10:39:34 +03:00
ElgarL
73ebd8a24a Fix an error with Logging set to 'OFF' triggering a cast exception. 2012-08-14 13:26:02 +01:00
Iaccidentally
b54fb4ad52 Merge pull request #121 from necrodoom/patch-6
few extra fixes to several ID item name aliases
2012-08-13 01:17:22 -07:00
necrodoom
36b88174cb few extra fixes to several IDs
items.csv version 2.1_07
2012-08-13 10:03:39 +03:00
Iaccidentally
e94122faf7 add spruce/pine tree to items.csv 2012-08-13 01:45:10 -04:00
KHobbits
dbc49d416f Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-08-13 02:33:09 +01:00
KHobbits
84f0f0a971 Try and prevent 'corrupt' messages files from breaking essentials. 2012-08-13 02:32:45 +01:00
snowleo
def188b94e Fix encoding of swedish locale 2012-08-13 01:36:39 +02:00
KHobbits
8366724d44 Update Essentials/src/items.csv 2012-08-13 01:19:10 +02:00
KHobbits
13617df0c6 Update Essentials/src/items.csv 2012-08-13 01:15:53 +02:00
KHobbits
9b55f8b562 Merge pull request #115 from necrodoom/patch-3
grammar check on plugin.yml
2012-08-11 18:08:50 -07:00
KHobbits
5c6d1a2eb4 Add command name matching to /gamemode
This allows aliases such as /gmc and /creative [player] to be used without stating gamemode as a parameter.
2012-08-12 01:13:52 +01:00
KHobbits
3a115000c9 Improve player matching in /gamemode
Add extra aliases to /gamemode
2012-08-12 01:12:10 +01:00
Iaccidentally
0a72669ac7 fix name length check in /kill 2012-08-10 07:17:05 -04:00
Iaccidentally
b81e834b4b fix msg and pay to accept 2 character names 2012-08-10 06:54:42 -04:00
KHobbits
38503e4dcf Throw warning when using /kill without valid player. 2012-08-10 02:40:05 +01:00
KHobbits
389884debf Add console log message when player is /kicked 2012-08-10 02:35:05 +01:00
KHobbits
f28d874ffb Add console log message when player is /banned 2012-08-10 02:27:10 +01:00
KHobbits
b5452d14c5 Fix yaml issue with /kit 2012-08-10 02:26:23 +01:00
KHobbits
b2f75664a7 Fix Chat Formatting so chat type is shown first. 2012-08-09 13:11:51 +01:00
Iaccidentally
8868e9f6b1 Merge pull request #117 from necrodoom/patch-5
items.csv update with ticket #2559 suggestions
2012-08-09 02:07:13 -07:00
necrodoom
659518dcb7 items.csv update with ticket #2559 suggestions
items.csv 2.1_06
2012-08-09 10:24:07 +03:00
KHobbits
47bf14b6d3 Merge branch 'release' of github.com:essentials/Essentials into release 2012-08-08 23:13:56 +01:00
KHobbits
9e28b3d76f Merge branch '2.9' into release 2012-08-08 23:13:33 +01:00
KHobbits
2d03da39ab Fix /top so that glass counts as a real block. 2012-08-08 23:00:09 +01:00
KHobbits
dda4082639 Fix tp permissions check to check player typing command not teleportee.
If you don't want players inviting players to other worlds, do not give them essentials.world.<currentworld>
2012-08-08 22:50:54 +01:00
snowleo
a499d16679 Merge branch 'refs/heads/2.9' into release 2012-08-08 14:22:13 +02:00
snowleo
a0be5640dd Correct material for beds 2012-08-08 14:21:25 +02:00
snowleo
3e96e47c1d Merge branch 'refs/heads/2.9' into release 2012-08-08 14:14:42 +02:00
snowleo
739a93f9ea Fix right click on signs 2012-08-08 14:11:40 +02:00
snowleo
dce47bcec7 Test the places around the location first, then go up 2012-08-08 13:13:39 +02:00
necrodoom
ed97ed97eb sets, not setting 2012-08-08 11:32:21 +03:00
snowleo
cd34c2b2c3 Fix teleports on beds 2012-08-08 10:16:06 +02:00
KHobbits
e7ca200a9f Merge branch 'release' of github.com:essentials/Essentials into release 2012-08-08 02:11:04 +01:00
KHobbits
8573a3827d Merge branch '2.9' into release 2012-08-08 02:10:25 +01:00
KHobbits
2164013c52 Fix minor Exp discrepancy
Add 'l<level>' syntax to /exp command
EG: /exp set l20
2012-08-08 02:07:47 +01:00
KHobbits
a9e527f4ee Fix /day /night /sun and /storm aliases to actually set to the current status if used without parameters.
fixes #2365
2012-08-08 00:52:43 +01:00
KHobbits
bdeb93a8d7 Don't show two error messages on [kit] signs.
Fixes #2508
2012-08-08 00:14:07 +01:00
snowleo
bb79c07a17 Merge branch 'refs/heads/2.9' into release 2012-08-07 21:11:34 +02:00
snowleo
d415aa7cf2 Merge branch 'refs/heads/groupmanager' into 2.9 2012-08-07 20:13:27 +02:00
ElgarL
6ee9c8f8ec Better error report on malformed GlobalGroups. 2012-08-07 17:58:57 +01:00
snowleo
096275a424 Merge branch 'refs/heads/2.9' into release 2012-08-07 17:45:40 +02:00
snowleo
7ea2f550db Prevent errors in listeners affecting EssentialsChat 2012-08-07 16:03:39 +02:00
Alexander Schepp
39cefac61c Merge pull request #114 from necrodoom/patch-2
another extra space
2012-08-07 05:44:23 -07:00
necrodoom
dd1250143b another extra space 2012-08-07 15:27:25 +03:00
md_5
d5a563ca9e Clean up spaces in config. Please don't break this in the future, this is the second fix guys. 2012-08-07 20:39:55 +10:00
Iaccidentally
4fad643cf7 Merge pull request #112 from necrodoom/patch-1
update permissions to include new nodes
2012-08-07 01:34:34 -07:00
necrodoom
2326e30c2a update with new workbench node 2012-08-07 11:07:52 +03:00
necrodoom
1c453728ab update permissions to include new nodes 2012-08-07 11:04:01 +03:00
KHobbits
e8641b25f3 Merge branch '2.9' of github.com:essentials/Essentials into release 2012-08-07 08:55:35 +01:00
KHobbits
973c6d5e5e Fix CB. 2012-08-07 08:52:57 +01:00
KHobbits
b25e8bd1dd Merge branch '2.9' into release 2012-08-07 08:50:06 +01:00
KHobbits
df1050b006 Updating CB:
CB: 2317 Bukkit 1521
2012-08-07 08:49:09 +01:00
KHobbits
dbf60c41d2 Merge branch '2.9' of github.com:essentials/Essentials into release 2012-08-07 08:45:16 +01:00
snowleo
0cacc10c31 Merge branch 'refs/heads/groupmanager' into 2.9 2012-08-06 18:25:55 +02:00
ElgarL
b1d174292d Fix GlobalGroups not loading permission nodes. 2012-08-06 17:15:56 +01:00
snowleo
848ee76eab Just don't use nio, this might be slower. 2012-08-06 15:57:54 +02:00
Iaccidentally
034b83223c update gc for all worlds (thanks to Yofel) 2012-08-06 06:54:55 -04:00
KHobbits
4f244b0e5c Merge branch 'groupmanager' of github.com:essentials/Essentials into 2.9 2012-08-06 09:17:19 +01:00
ElgarL
03133fac97 Ignore stupid plugins which add empty permission nodes. 2012-08-06 07:05:20 +01:00
KHobbits
41c97c4e87 Don't bomb if userMap isn't initialized. 2012-08-06 02:44:01 +01:00
KHobbits
ce98f7758e New Sign: Info
Syntax: [info] / [chapter] / [page number] / [cost]
2012-08-06 00:58:35 +01:00
KHobbits
5ca9a70d78 New Sign: Repair
Syntax: [repair] / <hand|all> / [cost]
2012-08-06 00:33:29 +01:00
KHobbits
5bb4de0ab7 New command: /workbench (aliases /wb and /wbench)
Permission: essentials.workbench
2012-08-06 00:26:42 +01:00
KHobbits
a046200cb2 Default value for [gamemode] sign
New syntax: [gamemode] / <mode>  / [price]
2012-08-06 00:23:47 +01:00
snowleo
e9f924e397 I should read javadoc properly. 2012-08-06 00:55:25 +02:00
snowleo
17ceb04541 Move FileChannel inside the loop 2012-08-05 20:16:53 +02:00
snowleo
c238ad213a Throw exception after 5 attempts 2012-08-05 19:50:37 +02:00
snowleo
71b3f7d631 Try to fix interrupt problem. 2012-08-05 19:41:28 +02:00
Alexander Schepp
125977c899 Fix /gamemode 2 playername 2012-08-04 14:17:41 +03:00
Iaccidentally
d06102b76e i'm in ur config, fixxn ur grammer 2012-08-04 06:56:10 -04:00
Iaccidentally
af1312bc9c I am a grammar nazi. 2012-08-04 07:40:54 -03:00
snowleo
be11f840b4 More thread safety 2012-08-04 11:10:57 +02:00
snowleo
873cc26b7d Thread safety for XMPP 2012-08-04 10:48:56 +02:00
ementalo
bb5e0b4a72 CB #2289 Bukkit #1512
Change PlayerChatEvent to AsyncPlayerChatEvent
2012-08-04 09:25:54 +01:00
snowleo
1a0667f659 Make chat handling more thread safe (and also faster) 2012-08-03 22:57:29 +02:00
snowleo
0dee3528c7 Synchronized chatStore 2012-08-03 21:45:32 +02:00
ElgarL
cdcbf2057e Fix mirroring now we are not using any Bukkit methods. 2012-08-03 11:15:14 +01:00
ElgarL
5e07ae3010 Stop using the YamlConfiguration in bukkit for our config handling. We
can now support periods in world names.
2012-08-03 10:36:26 +01:00
snowleo
f660c8fdf7 Ignore case on /gm command 2012-08-03 10:41:23 +02:00
snowleo
1f740d98d9 Code cleanup 2012-08-03 10:39:45 +02:00
snowleo
ba1431bf2a Ignore case on gamemode signs and code cleanup 2012-08-03 10:36:50 +02:00
snowleo
5c78044079 Less loops please 2012-08-03 10:33:45 +02:00
snowleo
1b2bc92d67 Another fix for /exp 2012-08-03 10:29:22 +02:00
snowleo
402ff66762 New exp calculations. 2012-08-03 10:21:03 +02:00
snowleo
f2717a27c0 Fix broken output of /itemdb 2012-08-03 10:02:47 +02:00
ElgarL
b7cf9d5681 Fix a cases sensitivity bug in world loading. 2012-08-03 08:54:06 +01:00
snowleo
a9639782b6 Netbeans 7.2 changes 2012-08-03 09:45:44 +02:00
Iaccidentally
41d91ae15b Merge branch '2.9' of https://github.com/essentials/Essentials 2012-08-02 20:30:09 -04:00
Iaccidentally
d625eeae30 update 2.9 item.csv for 1.3 (changes by necrodoom) 2012-08-02 20:29:09 -04:00
ementalo
3e61d4589f Switching the syntax of gamemode /gm mode player and adding mode aliases
Fixing translation keys
Fix plugin.yml gamemode syntax
2012-08-02 17:43:58 +01:00
ementalo
7e766818f9 CB #2267 Bukkit #1505
Updates to gamemode command, mode is now mandatory [creative|survival|adventure]
Updates to gamemode sign, now requires another line with gamemode
2012-08-02 13:52:11 +01:00
Paul A.
079ed0d2da Check the player we are bringing has permission to enter the world vs the initiating user the final frontier 2012-08-01 16:04:13 +02:00
Paul A.
dcc53cbf30 re: re: Check the player we are bringing has permission to enter the world vs the initiating user 2012-08-01 15:56:58 +02:00
Paul A.
452c2be54d Check the player we are bringing has permission to enter the world vs the initiating user part 4 2012-08-01 15:55:04 +02:00
Paul A.
41a9f93ab6 Check the player we are bringing has permission to enter the world vs the initiating user 2012-08-01 15:53:30 +02:00
Paul A.
9060faa351 Check the player we are bringing has permission to enter the world vs the initiating user 2012-08-01 15:52:55 +02:00
Paul A.
4136d9aaea Check the player we are bringing has permission to enter the world vs the initiating user 2012-08-01 15:50:28 +02:00
Alexander Schepp
b35449f1fd Fix "x times" on signs. 2012-07-31 13:13:18 +03:00
Iaccidentally
2b3ab23367 Merge branch '2.9' of https://github.com/essentials/Essentials 2012-07-29 14:23:36 -04:00
Iaccidentally
5039333974 KeepXp fixed. 2012-07-29 14:20:09 -04:00
KHobbits
a49218a718 Merge branch '2.9' of github.com:essentials/Essentials into 2.9 2012-07-29 17:16:10 +01:00
KHobbits
6542b7b7e9 Recommit Keep Exp on death permission
Permission: essentials.keepxp
Code by Iaccidentially.
2012-07-29 17:15:44 +01:00
Alexander Schepp
6f77466f3a Prevent that Essentials breaks other plugins signs 2012-07-28 00:26:04 +03:00
KHobbits
b0614fda60 Revert optimization, doesn't find glass blocks. 2012-07-17 21:05:13 +01:00
KHobbits
b4e75f0c0b Add small optimization tweak to new safe block function. 2012-07-17 01:28:20 +01:00
KHobbits
b6f73ddb3c Remove debugging messages. 2012-07-17 00:47:23 +01:00
KHobbits
323288dd44 Try to do a little better when searching for safe teleport locations. 2012-07-17 00:46:07 +01:00
KHobbits
bbd14453b7 Merge pull request #101 from chrisgward/patch-1
Adding enchantment aliases for fire protection
2012-07-15 10:13:33 -07:00
Chris Ward
a98abba39d Adding enchantment aliases for fire protection 2012-07-15 19:47:53 +10:00
ElgarL
94b6f8f17c Fix a typo because Necrodoom is anal. 2012-07-13 16:22:52 +01:00
ElgarL
0e85f0f0be Change to our own Yaml parsing for globalgroups instead of using the
YAMLConfiguration class in bukkit.
2012-07-13 13:38:53 +01:00
snowleo
f37199f988 Fix version in messages_se.properties 2012-07-11 13:22:44 +02:00
snowleo
cb9afeb125 Added swedish translation (from 3.0 branch) 2012-07-11 13:18:54 +02:00
KHobbits
05694b8140 Add missing triggers from /mute block list 2012-07-11 02:46:45 +02:00
ElgarL
2235364711 If a permission is found return the correct node for mangcheckp (not
null).
2012-07-10 14:35:08 +01:00
ElgarL
dfaa1db76f Merge branch 'groupmanager' of
https://ElgarL@github.com/essentials/Essentials.git into groupmanager

Conflicts:
	EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
2012-07-10 14:27:50 +01:00
ElgarL
2ecddaa46e Stop force removing attachments and let Bukkit handle it's own mess. 2012-07-10 14:10:13 +01:00
Alexander Schepp
9e819f7de3 Ignore players, that don't have an IP 2012-07-10 15:57:49 +03:00
Alexander Schepp
fbd83d527b Another NPE fix for bots 2012-07-10 15:56:12 +03:00
md-5
6503e49d4d Merge pull request #96 from mbax/groupmanager
Fix critical flaw in permissions removal with regards to fake players and Tekkit.
2012-07-10 02:25:56 -07:00
Matt Baxter
733eaf7453 Fix critical flaw in permissions removal.
Potential for removing the removal entirely but this can be figured out later.
2012-07-10 06:24:17 -03:00
ElgarL
3767df465f Throw a better error than 'null' when someone removes all groups from a
yml.
2012-07-06 08:33:57 +01:00
ElgarL
ce0fdbb5cb Ignore any sub folders in the Worlds folder which start with a period
(fix for storing data in svn respoitories).
2012-07-04 11:32:17 +01:00
Iaccidentally
272988299c Update 2.9 2012-07-03 04:50:29 -03:00
KHobbits
73693ea072 Update 2.9 2012-07-01 16:40:48 +02:00
md_5
a243082c3f Fix issue with cross world local chat. 2012-06-26 18:13:53 +10:00
ementalo
afb8cfc042 Revert "add essentials.keepxp to allow a player to keep their level after death."
This reverts commit 5d9806ad96.
2012-06-25 21:40:22 +01:00
Iaccidentally
5d9806ad96 add essentials.keepxp to allow a player to keep their level after death. 2012-06-24 23:27:30 -04:00
ElgarL
1e880373d4 Fix loading users with only numerals in their names to be seen as
strings.
2012-06-24 13:10:22 +01:00
KHobbits
50ffc2ce78 Merge branch 'master' of github.com:essentials/Essentials into release 2012-06-23 13:47:32 +01:00
KHobbits
5078cfebc9 Revert "fix /back resetting on logout"
This is desired behavior, and required for other features.
This reverts commit db08af3c07.
2012-06-23 13:33:36 +01:00
md-5
4b07be4bb8 Merge pull request #89 from necrodoom/patch-7
major slab alias expansion for items.csv
2012-06-23 02:07:34 -07:00
necrodoom
e26fb4a985 major slab alias expansion for items.csv 2012-06-23 12:02:28 +03:00
Alexander Schepp
d3de38cb66 Too much space :D 2012-06-22 20:12:56 +03:00
Alexander Schepp
89acbca412 Prevent NPEs in KeywordReplacer 2012-06-22 19:16:40 +03:00
ElgarL
2b3a1b3778 Only output a Data update message if something has changed. 2012-06-22 15:44:04 +01:00
Iaccidentally
db08af3c07 fix /back resetting on logout 2012-06-22 03:44:19 -04:00
md-5
47e73206df Merge pull request #88 from SyntaxBlitz/master
Fix /vanish with no arguments doing nothing
2012-06-21 04:31:18 -07:00
Timothy Aveni
1f30404ebf Fix /vanish with no arguments doing nothing 2012-06-21 06:17:26 -04:00
md-5
f4505b287f Merge pull request #87 from necrodoom/patch-5
updated items.csv, 43:4, 43:5, 44:4, 44:5
2012-06-21 03:03:39 -07:00
necrodoom
4b0df9fb22 while enraged at mibbit and esper failing to work, updated items.csv 2012-06-21 12:18:14 +03:00
md_5
cb8e2dea93 Merge branch 'master' into release 2012-06-21 18:27:54 +10:00
md_5
57cbeb6178 Merge remote-tracking branch 'origin/groupmanager' 2012-06-21 18:27:21 +10:00
md_5
74eda330cf Update Czech translation. 2012-06-21 18:18:57 +10:00
Iaccidentally
b00e23ceb0 change some default values 2012-06-21 05:05:22 -03:00
Iaccidentally
e4419f826b fixxy fixxy 2012-06-19 18:13:47 -04:00
Iaccidentally
1c2cc34c2d Add Finnish translation 2012-06-19 18:02:05 -04:00
Iaccidentally
d803aee015 Merge branch 'master' of https://github.com/essentials/Essentials 2012-06-19 17:56:43 -04:00
KHobbits
0770ea5bcb *borrows snowleo's strainer* 2012-06-19 20:57:40 +01:00
Iaccidentally
53fffbc531 Merge branch 'master' of https://github.com/essentials/Essentials 2012-06-19 12:48:55 -04:00
Paul A.
f0afe26804 Merge pull request #86 from necrodoom/patch-4
adding beef and steak to items.csv - thanks @necrodoom
2012-06-19 07:13:37 -07:00
KHobbits
bdc0ae7610 Little safety check for bad plugins. 2012-06-19 09:03:37 +01:00
KHobbits
b2db6bd225 Patch to allow plugins to use ignore lookup, without updating their own code. 2012-06-19 08:59:26 +01:00
KHobbits
a2e52d4652 Add optional 2n'd param to temp ban reason TL key. 2012-06-19 08:46:33 +01:00
necrodoom
fee92f1e1d hotfix before 2.9.2 release 2012-06-19 10:04:13 +03:00
ementalo
108eef097c Fixing vanish on off arguments 2012-06-18 15:35:21 +01:00
ementalo
dccf936e5e Use the assigned variable when looking at durability in itemdb 2012-06-18 10:28:37 +01:00
KHobbits
2535e12941 Add sign throttle config option.
Allows you to limit how often an Essentials sign can be spammed per player.
2012-06-17 19:28:59 +01:00
Iaccidentally
877b28f1b7 The French are weird : they use colons like this. 2012-06-17 11:50:52 -04:00
Iaccidentally
d38f8ca566 fix spacing issue in messages.properties 2012-06-17 11:41:00 -04:00
ElgarL
a5bac7a3c8 Better update for the User object player reference. 2012-06-16 19:12:54 +01:00
ElgarL
8a8e7272f5 Clear the player reference on logout so it's refreshed upon a reconnect. 2012-06-16 19:04:40 +01:00
KHobbits
a2a9ac1afb Using /exp, show can't find player message, if no matching player is found. 2012-06-16 18:22:31 +01:00
KHobbits
8a24e09925 Added missing syntax to plugin.yml 2012-06-16 17:56:12 +01:00
KHobbits
1f93babf35 Fix playerlistname update when prefix/suffix option is disabled.
Fixes #2216
2012-06-16 17:42:42 +01:00
KHobbits
f9654b4413 Adjust kit delay description.
Fixes #1580
2012-06-16 17:37:42 +01:00
KHobbits
178ec4de20 Prevent joinbots from triggering join code, unless they are actually connected to the server and online. 2012-06-16 17:31:33 +01:00
KHobbits
c4642fde19 Added TL key for ban syntax,
Default message: "Banned: <reason>"
Default reason: The Ban Hammer has spoken!
Optional 2nd param to banReason, {1}, will contain user who made the ban.
Example use: "banReason=Banned for {0} by {1}"
2012-06-16 17:10:47 +01:00
KHobbits
220a6c88b7 Fix teleport cooldowns - thanks @basicsensei
Fixes #2260
2012-06-16 16:46:40 +01:00
KHobbits
b53c0dcb98 Players should not be able to ignore Console
Also implement chat exempt permission in other commands.
2012-06-16 16:22:51 +01:00
KHobbits
fbd0d27ac4 Fix chat showing [spy] prefix when social spy was not required to see the message.
Fixes #2263
2012-06-16 16:05:48 +01:00
KHobbits
93ec005d58 Replace op ignore exempt with ignore exempt chat permission:
essentials.chat.ignoreexempt
This permission won't prevent a player from ignoring the player, but the player will see the chat messages anyway.
2012-06-16 16:01:27 +01:00
KHobbits
85ae547fdc Fix /exp so it can be used in the console 2012-06-16 14:26:29 +01:00
KHobbits
561323a02e Avoid silent command failures on /hat (ie typing /hat fish will no longer silently return as if broken) 2012-06-16 14:02:13 +01:00
KHobbits
881b31cb8e Added missing TL key 'hatRemoved' 2012-06-16 13:56:36 +01:00
KHobbits
14586716b1 Make /vanish follow the same rules as /fly, /god and /gamemode 2012-06-16 13:53:46 +01:00
Iaccidentally
1a42284ed7 Merge pull request #85 from kukelekuuk00/master
Updated dutch translation and fixed many grammar and spelling mistakes.
2012-06-15 15:06:38 -07:00
kukelekuuk00
1f1af1b9df Updated dutch translation and fixed many grammar and spelling mistakes. 2012-06-16 00:02:19 +02:00
Iaccidentally
d05fe2b2e4 Merge pull request #82 from kukelekuuk00/master
Allow your hat to be removed with /hat remove
2012-06-15 13:44:51 -07:00
kukelekuuk00
b0303146d7 Allow your hat to be removed with /hat remove 2012-06-15 22:36:26 +02:00
Paul A.
d70ddc208e Merge pull request #81 from kukelekuuk00/master
/vanish [on|off] - thanks kukelekuuk00
2012-06-15 03:05:13 -07:00
kukelekuuk00
365fa82d7a args[0] instead of args[1]
derp
2012-06-15 11:41:06 +02:00
kukelekuuk00
6d01757a6e /vanish [on|off] 2012-06-15 11:02:04 +02:00
Iaccidentally
b54cb117db Merge branch 'master' of https://github.com/essentials/Essentials 2012-06-12 22:33:12 -04:00
Iaccidentally
63e8f8b745 add /e<command> aliases to essentials spawn 2012-06-12 22:28:10 -04:00
KHobbits
9b87450df1 Revert "Invert teleport timer."
This reverts commit 2db6120402.
2012-06-13 03:06:42 +01:00
KHobbits
2db6120402 Invert teleport timer. 2012-06-13 02:51:47 +01:00
KHobbits
332b4645f8 3 char min length on /pay and /msg 2012-06-13 00:49:36 +01:00
Iaccidentally
a679c560b9 This is broken for some reason. Removing until fixed. 2012-06-12 01:41:39 -04:00
Iaccidentally
363f6beab5 oops. forgot this. 2012-06-12 01:13:12 -04:00
Iaccidentally
4f43e1c941 add admin chat 2012-06-12 00:59:53 -04:00
Iaccidentally
2a51b6cbde Merge pull request #79 from Iaccidentally/master
update messages_pt.properties
2012-06-11 19:40:42 -07:00
Iaccidentally
1e349a9e5a fix Portuguese translation with new messages 2012-06-11 22:34:40 -04:00
Alexander Schepp
c81204170f Merge pull request #78 from Iaccidentally/master
fix some tl keys
2012-06-11 19:17:44 -07:00
Iaccidentally
f6d71a9ada fix some tl keys 2012-06-11 22:05:30 -04:00
KHobbits
74283283a3 Messing around with whois syntax
(TL's probably need some love)
2012-06-12 01:43:20 +01:00
KHobbits
34c664ce54 Fix spacing issue in /list 2012-06-12 00:27:21 +01:00
KHobbits
0e3a14bb2c Fixing messed enchantment. 2012-06-12 00:18:53 +01:00
KHobbits
bc00aff626 Merge pull request #76 from necrodoom/patch-2
pull request for expanding enchant database
2012-06-11 16:17:53 -07:00
KHobbits
900fe1fd1f Merge pull request #77 from necrodoom/patch-3
woodenslab fix, pointed out by branicyeti
2012-06-11 16:17:21 -07:00
KHobbits
6d3ae1dc43 Adding mute status to /whois 2012-06-12 00:16:09 +01:00
necrodoom
fd734bac80 woodenslab fix, pointed out by branicyeti 2012-06-11 16:39:18 +03:00
necrodoom
e97c777dd7 pull request for expanding enchant database 2012-06-11 15:08:12 +03:00
KHobbits
aa7ef933e4 Update Bukkit to 1.2.5-R4
Bukkit: #1473 CB: #2222
2012-06-11 00:40:45 +01:00
md_5
d01490b1d0 Fix the vanish command for good. 2012-06-11 09:18:06 +10:00
KHobbits
2bd24efb79 I spied some more big Booleans. 2012-06-11 00:14:19 +01:00
KHobbits
f9e40ce10d i should prefer boolean to Boolean. 2012-06-11 00:08:31 +01:00
KHobbits
a2e5a73291 Make /whois throw an error if no matching players are found. 2012-06-11 00:07:22 +01:00
md_5
cd8c5d7861 Pass the actual player object to Bukkit. 2012-06-11 08:45:24 +10:00
KHobbits
c4473e0307 /vanish command sets players invisible to essentials commands. 2012-06-10 23:36:10 +01:00
KHobbits
2396f789c7 Broadcast command allows colour formatting. 2012-06-10 23:35:50 +01:00
KHobbits
fac1dee1a1 Fix /lightning <player> <damage> to actually deal the proper set damage (5 or 25% by default). 2012-06-10 23:00:49 +01:00
KHobbits
967b9fb918 Fix /essentials command to not show command debugging if there were no conflicts. 2012-06-10 22:46:56 +01:00
KHobbits
d6c1951fec Try to be a little more sensible with stored cooldowns. 2012-06-10 21:55:48 +01:00
KHobbits
c8b9708273 Fix /mute to follow same convention as /tjail
Fixed #2056
2012-06-10 19:56:24 +01:00
KHobbits
7df82578dc Missing event aborts in sign code. 2012-06-10 19:40:09 +01:00
KHobbits
d6390a2634 Fix bug with /remove and minecarts 2012-06-10 19:36:31 +01:00
KHobbits
a75e134d52 Allow syntax: /god <player> <on/off> 2012-06-10 19:20:43 +01:00
KHobbits
57697c2333 Allow syntax: /fly <player> <on/off> 2012-06-10 19:11:45 +01:00
KHobbits
f49e11d9d3 Fixing up some TL mistakes 2012-06-10 18:38:55 +01:00
KHobbits
c3974f11c3 Play a bit less greedy with events 2012-06-10 18:33:07 +01:00
KHobbits
75ec1c581d Remove dura command and merge into itemdb. 2012-06-10 18:31:28 +01:00
KHobbits
cc8db21fcc Fix kits to only show to people who can use them. 2012-06-10 18:27:55 +01:00
KHobbits
6f5490fb8b Merge pull request #72 from kukelekuuk00/master
Durability command
2012-06-10 10:22:42 -07:00
KHobbits
2dccf390b9 Merge pull request #75 from necrodoom/patch-1
updating items.csv with newest pastebin, fixes duplicates and wrong alia...
2012-06-10 10:21:40 -07:00
necrodoom
d7fe0d7e27 file indented for unknown reason 2012-06-10 18:06:26 +03:00
necrodoom
bd02cf17b8 updating items.csv with newest pastebin, fixes duplicates and wrong aliases. 2012-06-10 15:29:34 +03:00
kukelekuuk00
2c49347ebc DERP #2 2012-06-10 14:19:03 +02:00
kukelekuuk00
b9741a99d0 DERP 2012-06-09 23:06:09 +02:00
snowleo
1abc3f4c8f Fix xmpp format stripping 2012-06-08 00:34:25 +03:00
KHobbits
26d8d8e4b4 Merge branch 'master' of github.com:essentials/Essentials 2012-06-03 16:35:12 +01:00
KHobbits
72bb3a7d2e Fix broken preventmodify permissions check in invsee (*scowls at ementalo*)
Also added check to prevent duping items
2012-06-03 16:34:27 +01:00
md-5
dc8563850c Merge pull request #74 from Rutr/master
Edit the polish translation, thanks Rutr.
2012-06-02 14:36:00 -07:00
Rutr
12cf6d7174 translation some new messages and edit some existing 2012-06-02 17:46:26 +03:00
kukelekuuk00
22f16b0220 some more aliases for /durability 2012-06-02 00:36:27 +02:00
kukelekuuk00
8843fe3191 added /dura a durability check 2012-05-30 13:42:38 +02:00
md_5
32b80ae843 Don't allow armor to be used as a hat. 2012-05-27 17:36:04 +10:00
md_5
708f4c8381 Add new command /hat and update translate keys as well as fix colour codes. 2012-05-27 17:24:49 +10:00
md_5
f643937cae Client side note blocks don't play it seems (reverse-merged from commit 85e6436bf0) 2012-05-26 14:47:30 +10:00
KHobbits
a5433d9dab Tidy up PVP attack delay. 2012-05-22 21:02:28 +01:00
KHobbits
d115dfe514 Merge branch 'master' of github.com:essentials/Essentials 2012-05-22 17:54:39 +01:00
KHobbits
79f53281e5 Separate toggle for world teleports using homes. 2012-05-22 17:54:19 +01:00
ementalo
aa19a9ab18 Adding new config setting login-attack-delay. Set this in seconds for a delay before players can attack each other after logging on.
Use permission "essentials.pvpdelay.exempt" to bypass this restriction
2012-05-22 01:29:47 +01:00
KHobbits
57dc95b6a7 Code tidy. 2012-05-22 00:41:03 +01:00
KHobbits
402c0545c2 Merge branch 'master' of github.com:essentials/Essentials 2012-05-22 00:39:44 +01:00
KHobbits
432e8fbcde Patch null error in /home after recent update. 2012-05-22 00:39:23 +01:00
md_5
5bfe53c67c Keep track of vanished players and tweak lag meter. 2012-05-21 15:13:24 +10:00
KHobbits
cc70558b46 Make /home and /back obey the world perm system.
This will prevent players from moving between words using virtually all essentials commands.
ATM /warp is excepted, because we already have per warp permissions.
Ess3 may see warp permissions altered to: essentials.warp.<world>.<warpname>
2012-05-20 23:58:03 +01:00
KHobbits
dfae3e6746 Fixing unit tests. 2012-05-19 22:19:24 +01:00
KHobbits
8190c5580d Forgot to update plugin syntax.
Added missing perm checks.
2012-05-19 22:02:42 +01:00
KHobbits
2fc2566558 Exp command cleanup 2012-05-19 21:52:54 +01:00
KHobbits
0c319a0ee3 Merge pull request #70 from kukelekuuk00/master
/exp [set|give|player] [player] [amount]
2012-05-19 12:42:33 -07:00
KHobbits
a64becfedf Update CraftBukkit: 1.2.5-R2.0 - 2190
Update Bukkit: 1.2.5-R2.0 - 1459
2012-05-19 20:35:36 +01:00
KHobbits
f3fdfd259a Merge branch 'master' of github.com:essentials/Essentials 2012-05-19 17:45:09 +01:00
KHobbits
3005c2fb20 Strip invalid chars from kit names
This may possibly block some kits from working that previous worked, if the kit name contained unusual letters
2012-05-19 17:44:47 +01:00
kukelekuuk00
8a6d8d10e8 Fixes made, added /exp fix [playername] this fixes negative exp. 2012-05-17 14:39:40 +02:00
md_5
4b76b25d93 There is no need to start a second task to measure lag, it can in fact be measured with enough precision from the exisitng one. 2012-05-17 20:33:40 +10:00
md_5
fd52f8652e Add a LagMeter (ticks per second) to the /gc command. This command can now be accessed with /lag as well. Also added a simple /vanish command, with the extra node essentials.vanish.see
If you require a more advanced vanish solution checkout VanishNoPacket from mbaxter.
2012-05-17 20:25:02 +10:00
kukelekuuk00
2313726f3f small description change 2012-05-14 11:43:57 +02:00
kukelekuuk00
2a2b311f2a new command /exp [set|give|player] [player] [amount]
perms are essentials.exp,  essentials.exp.others,  essentials.exp.set,  essentials.exp.set.others,  essentials.exp.give and  essentials.exp.give.others
2012-05-14 11:36:44 +02:00
KHobbits
ec50807670 Try to trim long displaynicks instead of blankly refusing to show them.
Will try trimming prefixes and dropping suffixes before trimming nicknames.
2012-05-13 18:58:50 +01:00
kukelekuuk00
e252ca6026 Added an /exp command that shows the amount of exp you have and how much you need for the next level.
Permissions are essentials.exp and essentials.exp.needed
2012-05-13 13:44:41 +02:00
KHobbits
543a9ac920 Force 3 letters before matching players for /god /gamemode and /fly 2012-05-07 00:30:09 +01:00
KHobbits
48453b4a0c Revert "Update home count..." This reverts commit 61f76d1097.
On second thought, this would just lead to inconsistency....
2012-05-07 00:16:45 +01:00
KHobbits
6d9ffc0b9f Home confirmation when using a bed. 2012-05-07 00:08:01 +01:00
KHobbits
61f76d1097 Update home count to include the bed home if set, this does not prevent people from setting a bed home if they are at max. 2012-05-07 00:05:02 +01:00
KHobbits
0baaf193c8 Revert "Revert "New config option 'cancel-afk-on-move' - Set to false you don't use afk." -- This should fix afk mode."
This reverts commit 14a8092f02.

Another attempt at adding 'cancel-afk-on-move' toggle.
2012-05-06 23:38:04 +01:00
KHobbits
3f119b2a04 Revert "/me crashes ementalo's face for making the client crash."
This reverts commit 95a6008941.

And fix the original bug.
2012-05-06 23:30:55 +01:00
KHobbits
e242b794d1 Add whisper to social spy trigger list. 2012-05-06 16:11:16 +01:00
KHobbits
2cf1fae209 Revert "We can't damage and kill, so we will just kill to make everyone happy, and the event pointless."
This reverts commit d54a1bb9bd.

Also fix kill to do the same.
2012-05-06 16:09:47 +01:00
md_5
d54a1bb9bd We can't damage and kill, so we will just kill to make everyone happy, and the event pointless. 2012-05-05 20:01:18 +10:00
snowleo
810d44dbad Merge branch 'refs/heads/groupmanager' 2012-04-26 10:42:48 +02:00
snowleo
14a8092f02 Revert "New config option 'cancel-afk-on-move' - Set to false you don't use afk." -- This should fix afk mode.
This reverts commit e72afac21f.

Conflicts:

	Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
2012-04-26 10:41:24 +02:00
ementalo
c98546eff3 Latest items.csv by necrodoom 2012-04-25 11:27:18 +01:00
md_5
95a6008941 /me crashes ementalo's face for making the client crash. 2012-04-25 17:02:15 +10:00
snowleo
c9a1a56e91 Fix items.csv 2012-04-24 21:48:28 +03:00
snowleo
88fbb8879b Merge pull request #66 from Iaccidentally/patch-8
Necrodoom's update to items.csv
2012-04-24 11:42:50 -07:00
Iaccidentally
44429cb097 Necrodoom's update to items.csv 2012-04-24 14:57:56 -03:00
ementalo
6db33bd350 Updated czech language, thanks tommymortago 2012-04-24 12:29:24 +01:00
md_5
e54ee3fd45 Small cleanup of things 2012-04-24 20:31:19 +10:00
ementalo
5f0fb4230d Adding the kickedAll TL key the the rest of the files 2012-04-24 10:24:08 +01:00
md_5
73d49059ce Add message to sender when all players kicked, addresses issue #1968 2012-04-24 17:47:27 +10:00
md_5
57f91c2596 Use a quick (and working comparer) 2012-04-24 17:44:49 +10:00
ementalo
cf71fbc6c8 New permission essentials.invsee.preventmodify. People with this permission cannot have their inventories modified by invsee 2012-04-23 23:51:10 +01:00
snowleo
946b007f5d Merge pull request #64 from mdojcar/patch-1
0.2 version of Czech translate: optimized by mdojcar
2012-04-23 14:42:55 -07:00
ElgarL
14b2af7d7b Allow 'manucheckp' to notify when superperms reports false but it is
really negated.
2012-04-22 12:12:50 +01:00
ElgarL
e843009a76 Fix forgetting sub groups on a manload. 2012-04-21 16:58:22 +01:00
mdojcar
b3bf427426 0.2 version: optimized by mdojcar (modojcar@seznam.cz) - mirne fixy a trochu jsem preklad vylepsil 2012-04-21 09:35:59 +03:00
ElgarL
402e162abc updated classpath (eclipse) for teh whole project 2012-04-21 02:33:13 +01:00
ElgarL
bc4716d384 remove unneeded dependency of craftbukkit 2012-04-21 02:32:37 +01:00
ElgarL
e433b11f00 Remove unneeded dependency of craftbukkit (Eclipse building) 2012-04-21 02:32:02 +01:00
KHobbits
ddb50fed13 Remove stack trace cleaning, didn't actually remove unwanted elements. 2012-04-20 22:31:25 +01:00
ElgarL
e2b92b6fa2 Prevent null perms getting past the GlobalGroups loader. 2012-04-18 22:22:35 +01:00
KHobbits
bbfdad2be0 Slightly widen block break protection on protected signs (still does not block chain breaks). 2012-04-18 01:30:14 +01:00
KHobbits
9871fc03e7 Merge remote branch 'remotes/origin/groupmanager' 2012-04-18 00:39:14 +01:00
KHobbits
7c74c952ca Switch the order of the alt give syntax to follow vanilla order. 2012-04-18 00:37:44 +01:00
ElgarL
1df54c7984 Fix a couple of perms in GlobalGroups 2012-04-17 18:57:11 +01:00
KHobbits
6facba90ef Don't get the Essentials user object when we don't need it. 2012-04-17 01:14:07 +01:00
KHobbits
28c4fcb19c Wrong default value for AFK disable pickup. 2012-04-17 00:53:57 +01:00
ElgarL
a926f6c21d Re-initialize the WorldsHolder on a reload, as un-registering and
re-registering a new holder means all plugins have to check for the new
service on every quiery.
2012-04-16 23:54:33 +01:00
KHobbits
c85a6f9bbf Merge branch 'master' of github.com:essentials/Essentials 2012-04-16 21:43:19 +01:00
KHobbits
6cd96ec0a4 Null check, for quick exit. 2012-04-16 21:42:53 +01:00
md_5
ce188f57bb Do we have to remind @khobbits not to code while drunk. Again. 2012-04-16 19:43:53 +10:00
KHobbits
90619f44a2 Fixing a few TL issues. 2012-04-16 10:33:51 +01:00
KHobbits
b39e737579 Don't fire entity powertool commands, with our user object. 2012-04-16 10:19:19 +01:00
KHobbits
98e1889528 Minor perf tweak. 2012-04-15 23:13:34 +01:00
KHobbits
e72afac21f New config option 'cancel-afk-on-move' - Set to false you don't use afk. 2012-04-15 22:50:55 +01:00
KHobbits
9a1a6eee2d Few missing default permissions. 2012-04-15 22:02:08 +01:00
KHobbits
ae81785cb4 Merge remote branch 'remotes/origin/groupmanager' 2012-04-15 19:41:06 +01:00
KHobbits
717d7ee805 Fix metrics errors to be... descriptive. 2012-04-15 15:12:42 +01:00
KHobbits
41cc3aebf0 Revert "Add option to disable jails entirely."
This reverts commit fcffc81a96.
2012-04-14 23:18:20 +01:00
KHobbits
bd2495040d Throw syntax error on /item, if syntax is wrong. 2012-04-14 17:53:33 +01:00
KHobbits
c17abeb0bc Merge branch 'master' of github.com:essentials/Essentials 2012-04-14 15:58:12 +01:00
KHobbits
37120287e4 Fix null locations in /seen 2012-04-14 15:57:47 +01:00
md_5
fcffc81a96 Add option to disable jails entirely. 2012-04-14 15:21:42 +10:00
md_5
e240110a2e Change some ordering and clean pmd warnings 2012-04-14 15:07:10 +10:00
KHobbits
45714bc5d5 Optimize sign interacts. 2012-04-14 04:54:01 +01:00
KHobbits
f09e15a051 Try to speed up teleport events. 2012-04-14 04:13:37 +01:00
ElgarL
34569ba6c0 Correct formatting in command list. 2012-04-13 23:56:50 +01:00
ElgarL
31ce82edda Finally remove all deprecated methods. 2012-04-13 15:16:08 +01:00
ElgarL
a5dcfdbabb Code tidy 2012-04-13 15:00:55 +01:00
ElgarL
59b204d410 Stop using our own deprecated methods as we tell others to do. 2012-04-13 14:57:23 +01:00
ementalo
d29f3c49a2 Merge branch 'master' of https://github.com/essentials/Essentials 2012-04-13 14:52:25 +01:00
ementalo
4a8dcde76d Don't kill tamed ocelots with killall Test #1921 2012-04-13 14:49:15 +01:00
ElgarL
b838cde648 Update all code formatting to use tabs for indentation. 2012-04-13 14:40:26 +01:00
ElgarL
2baa87036c Fixed the 'last' nested throw/catch and rework all user and group
reading to be certain to trap all errors.
2012-04-13 13:58:05 +01:00
snowleo
7a79e204aa Fix double charge in /jump 2012-04-12 23:57:19 +03:00
ementalo
85e46dfc4e Merge branch 'master' of github.com:essentials/Essentials 2012-04-12 21:26:34 +01:00
ementalo
8afa016c82 Display name of new world on world change 2012-04-12 21:26:19 +01:00
snowleo
eb2d6d0ee6 Merge branch 'refs/heads/groupmanager' 2012-04-12 04:27:04 +02:00
ElgarL
f9b44317f0 Unregister the worldsHolder as a service on a reload/shutdown instead of
the whole plugin.
2012-04-12 03:21:38 +01:00
ElgarL
93b685d2ce Fix silly nested throw/catch statements. Errors are now correctly
generated when reading yml's.
2012-04-12 01:21:22 +01:00
snowleo
e54529dbd2 Merge branch 'refs/heads/groupmanager'
Conflicts:
	EssentialsGroupManager/src/globalgroups.yml
2012-04-11 21:57:58 +02:00
snowleo
5b8dbda61d Prevent that a config file is loaded/saved by more than one thread. 2012-04-11 22:51:34 +03:00
ElgarL
6329acf951 Expand GlobalGroups.yml and groups.yml to cover the VanishNoPacket
plugin. Demonstrating how to negate and add nodes when using the '*'
permission with inheritance.
2012-04-11 19:10:28 +01:00
ElgarL
59cf271674 Fix 'manuadd' to use the default or selected world (via 'manselect'), if
the world is not specified in the command.
2012-04-10 20:48:34 +01:00
ElgarL
41a786b836 Stop the error on shutdown if GM failed to load at startup.
GroupManager will now generate it's own log (in the GM folder) to
keep things tidy, but also to account of those players unable to
find/access their server.log.
Startup errors will now lock out ALL commands other than '/manload'
2012-04-10 20:40:04 +01:00
ElgarL
5e5038d05c Properly fix concurrent modification when removing all attachments. 2012-04-10 17:02:50 +01:00
snowleo
2fa549187e Should fix some exp math issues 2012-04-09 17:52:46 +03:00
ElgarL
930c2809a4 Added missing confirmation message on '/manload'. 2012-04-07 21:30:49 +01:00
ElgarL
c0133d45d7 Better handling of errors in user and group yml's. 2012-04-07 19:24:46 +01:00
ElgarL
f6daf12e36 Fix a concurrent modification error when removing all attachments. 2012-04-07 17:21:48 +01:00
ElgarL
321543089b Expand 'manwhois' to also list a users subgroups. 2012-04-07 11:47:07 +01:00
KHobbits
af46453666 Allow vanilla syntax of /give 2012-04-07 04:39:12 +01:00
KHobbits
cae8724d4e Remove 'set' and 'add' from /time command args, to allow use of original syntax. 2012-04-07 04:22:17 +01:00
KHobbits
c9d23c1c80 New ingame command syntax: /kit <kit> <playername>
New Permission: essentials.kit.others - allows giving kits to other people.
New console commands: /kit & /kit <kit> <playername>
2012-04-07 03:34:01 +01:00
KHobbits
ae06bc80c6 Console should be able to kick everyone. 2012-04-07 03:07:07 +01:00
KHobbits
1c28990221 Move player loading and updates to new thread, to reduce on join lag. 2012-04-06 19:19:08 +01:00
ElgarL
43c733393c Remove all permission attachments when performing a manload or restart. 2012-04-06 12:53:36 +01:00
KHobbits
1f8648dbcc Chat spy, should show otherworld chat. 2012-04-06 02:36:27 +01:00
KHobbits
69d0090fc2 Merge branch 'master' of github.com:essentials/Essentials 2012-04-05 23:37:33 +01:00
KHobbits
13829e052b Fix /time not working with the '##pm' syntax. 2012-04-05 23:36:57 +01:00
md_5
27ed75df4b Add version tag 2012-04-06 07:39:25 +10:00
md_5
14e29db2d3 Add polish translation, thanks losdamianos 2012-04-06 07:33:10 +10:00
ElgarL
006f8c3a73 Don't throw errors when attempting to remove permission attachments
(bukkit will have already removed it).
2012-04-05 21:06:48 +01:00
snowleo
4ffe3b7a23 Merge remote-tracking branch 'origin/groupmanager' 2012-04-05 17:05:43 +02:00
ElgarL
a407c6ed0c Fix an error I caused trying to modify an unmodifiable list when parsing
'*' permissions.
2012-04-05 15:02:08 +01:00
KHobbits
23597d2f1c Fixing up NPE bug in jails (implemented in Dev2.9.163) 2012-04-05 13:28:23 +01:00
ElgarL
d8891569e9 Update to 2.0
Fix GM reporting of permission inheritance to retain the correct order.
Lower inheritance groups can no longer negate a higher groups
permissions.
2012-04-05 12:54:26 +01:00
KHobbits
4ef03ab5d9 Added wiki names for enchantments. 2012-04-05 05:46:36 +01:00
KHobbits
6ee9577b04 Jail update, jailed people can't attack other players. 2012-04-05 03:22:49 +01:00
KHobbits
98a61f6898 Updating plugin.yml to add sendall syntax. 2012-04-04 23:02:13 +01:00
KHobbits
5a23c69c06 Added extra params to setHome TL key {0} world {1} x {2} y {3} z 2012-04-04 18:19:39 +01:00
ementalo
ff2e090717 1.2.5 Update Craftbukkit #2149 Bukkit ??? 2012-04-04 15:33:11 +01:00
KHobbits
32e1253044 Fix unit tests. 2012-04-04 03:21:14 +01:00
KHobbits
e7a35a8e1f Report invalid enchantments in kits.
Improve error logging
2012-04-04 03:09:27 +01:00
KHobbits
bc9c6d8f40 Catch all values greater than 10 years to avoid exploits. 2012-04-04 02:07:01 +01:00
KHobbits
edf57ddf9e Cap mute/ban/jail to 10 years (any more is silly).
Cap time descriptions to 3 significant notions.
2012-04-04 01:55:06 +01:00
KHobbits
ae54a877bd Update seen to show better data for vanished users:
New Perm: essentials.seen.extra - Shows some extra information for staff
2012-04-04 01:20:57 +01:00
KHobbits
4882c302d8 Little bit of powertools code cleanup. 2012-04-04 00:40:58 +01:00
KHobbits
db4b150d21 Enable powertools if they are disabled when setting a new tool. 2012-04-04 00:39:59 +01:00
KHobbits
09e8c6db21 Better hide vanished players. 2012-04-03 16:12:49 +01:00
KHobbits
c107532f76 Command cost api update: Can now set fallback costs.
Repair command addition: ontop of 'repair' and 'repair-<itemname>' you can now charge for 'repair-all' to charge more for /repair all or 'repair-item' to charge per item repaired.
2012-04-03 15:35:13 +01:00
ElgarL
77e15e9330 Prevent Null entries in group inheritance from throwing errors. 2012-04-03 14:30:27 +01:00
KHobbits
a3c4e75423 Switch sign listeners back to compare block id, rather than materials. 2012-04-02 22:58:07 +01:00
ElgarL
99e315e625 Added a new permission node 'groupmanager.op'. This will cause players
with this node to be treated as op's when using GroupManager commands
(they will still require each commands
permission node to use them).
2012-04-02 21:12:19 +01:00
KHobbits
0a24b24979 Allow tppos to be used in console. 2012-04-02 02:47:44 +01:00
KHobbits
4edaa53b70 Optional second param to /gm to force gamemode on other players. 2012-04-02 02:31:31 +01:00
KHobbits
2add104432 Listener Cleanup 2012-04-02 02:22:30 +01:00
ElgarL
4f2a13c223 Force remove player attachments on disconnect, and tidyup during player
join in case of any errors. Fixes a bug of losing permissions.
2012-04-01 03:44:37 +01:00
KHobbits
c3ee344089 Make sure can build checks in permbukkit/privileges work for admins/owners. 2012-04-01 02:44:11 +01:00
KHobbits
fd58d34692 Minor cleanup to player events. 2012-03-30 21:44:14 +01:00
KHobbits
384399ffed Add newish signs to default enabled commands config. 2012-03-30 21:04:15 +01:00
KHobbits
ccfb3ec97e Formatting. 2012-03-30 13:29:58 +01:00
KHobbits
88bcb862b8 Don't push vault version to metrics. 2012-03-30 13:27:57 +01:00
KHobbits
e77cfed3fa Reset ban reason to null on /ban <player>, if no reason is set. 2012-03-30 11:40:44 +01:00
KHobbits
ac33344c25 Fix tpo syntax error. 2012-03-29 22:32:16 +01:00
KHobbits
93e5913ba1 Iaccidentally's changes to pt TL. 2012-03-29 21:17:50 +01:00
KHobbits
fc98e1a617 Update TL header. 2012-03-29 18:49:56 +01:00
KHobbits
932a576f99 New translation messages 2012-03-29 18:37:22 +01:00
KHobbits
d6edf09eac Update default permissions. 2012-03-29 18:14:24 +01:00
KHobbits
5714acb227 Missing air materials. 2012-03-29 16:41:13 +01:00
ElgarL
131f0e4234 Merge branch 'groupmanager' of https://elgarl@github.com/essentials/Essentials.git into groupmanager 2012-03-29 14:09:07 +01:00
ElgarL
0632fd253e Catch errors caused by bad indentation in yml's. 2012-03-29 14:02:53 +01:00
ElgarL
ee5922fbec Stop attempting to push empty permissions when players edit the yml's
incorrectly.
2012-03-29 13:41:59 +01:00
KHobbits
fe9122916c Interact event cleanup 2012-03-29 03:06:52 +01:00
KHobbits
00308af1cd Update to CB #2126 B #1425
Min CB version changed to 2122
2012-03-29 02:00:51 +01:00
KHobbits
986073b34d Fix using /setworth <price> 2012-03-29 00:13:56 +01:00
KHobbits
22c01084c5 Merge branch 'groupmanager' of github.com:essentials/Essentials 2012-03-28 17:37:03 +01:00
KHobbits
849625e369 Implement all abstract methods. 2012-03-28 15:12:25 +01:00
KHobbits
41b50529c9 Merge branch 'master' of github.com:essentials/Essentials 2012-03-28 15:03:45 +01:00
KHobbits
2c085c413a Don't register jail listeners, if no jails are set. 2012-03-28 15:03:18 +01:00
snowleo
d619752942 Fix for the fix 2012-03-28 11:21:31 +02:00
snowleo
32201c5615 Fix isAffordableFor in Trade class
This fixes buy signs giving out items, when the player has essentials.eco.loan permission, but min-money in config is set to 0.
2012-03-28 10:36:10 +02:00
KHobbits
5e8a25c9c8 Pull example perm files out of the ess jar. 2012-03-28 00:59:51 +01:00
KHobbits
ba2bfc2ab1 Try to reduce lag caused by join spam. 2012-03-27 21:08:06 +01:00
snowleo
f27fcf7be8 Adds pvp protection after teleport 2012-03-27 21:15:11 +02:00
KHobbits
3ea6a72946 Adding world permission checks to:
tpaall tpall tpahere tphere tpohere
User is required to have the permission for the world he is in, before he can teleport users outside this world, to it.
2012-03-27 15:28:40 +01:00
ElgarL
d1da8a3166 Update GlobalGroups.yml for new/changed Towny permission nodes. 2012-03-27 10:14:53 +01:00
ElgarL
e02a27fc8e Auto rename all case sensitive world folders to lower case (if
possible).
2012-03-26 20:06:59 +01:00
ElgarL
246c62ea15 Treat all world names as lower case for file handling (please check in
your worlds folder. You should have no folders with upper case letters
from now).
2012-03-26 19:18:19 +01:00
KHobbits
9746346bc1 Fix kit enchants for people without oversized stack permission.
Add permissions lookup to debug mode.
2012-03-26 13:28:32 +01:00
KHobbits
c23eb475eb Clarify how backup works.
Add option for auto save-all.
2012-03-26 00:49:53 +01:00
KHobbits
8f94e43baf Update tp to check if target player has tptoggle disabled.
Update tpo to allow player to player tp.
2012-03-25 23:32:04 +01:00
KHobbits
bb278fef02 Don't show 'backup started' on /backup if it hasn't been configured. 2012-03-25 19:10:39 +01:00
KHobbits
0dc660eb7d Reorder login/join event calls. 2012-03-25 17:27:06 +01:00
KHobbits
8bc7bcfef1 Don't override other plugins which allow joining over capacity. 2012-03-25 16:46:36 +01:00
KHobbits
1eaefa2192 Reduce amount of move event calls being processed. 2012-03-25 16:30:22 +01:00
KHobbits
b53586474b Update [balance] sign to use currency formatting. 2012-03-25 14:26:08 +01:00
KHobbits
8b9c5c65db Merge branch 'master' of github.com:essentials/Essentials 2012-03-25 14:20:53 +01:00
KHobbits
3c4911ca02 Fix chat format regex. 2012-03-25 14:20:26 +01:00
snowleo
a1f8ec81ed CopyPaste-Fail 2012-03-25 11:47:26 +02:00
snowleo
668e330823 Wrong url 2012-03-25 11:45:50 +02:00
snowleo
a8f88dea7d This is no longer stored in file, so it's not part of UserData anymore. 2012-03-25 11:44:33 +02:00
snowleo
6ed997ef5f Optimize metrics 2012-03-25 11:39:19 +02:00
snowleo
b5965d8d23 AntiCheat has different version numbers, so don't check. 2012-03-25 11:09:13 +02:00
KHobbits
613ba0ec10 Should probably cancel this at lowest. 2012-03-25 02:55:19 +01:00
KHobbits
22b5d29ecb Merge branch 'master' of github.com:essentials/Essentials 2012-03-25 02:34:19 +01:00
KHobbits
30523d128c Invsee now shows a live player inventory in a window, rather than cloning players inventory.
New Permission: essentials.invsee.modify - Player with this permission will be able to add/remove items from the other players inventory.
2012-03-25 02:33:52 +01:00
KHobbits
014a2edd4c Update Essentials/src/config.yml 2012-03-24 23:28:56 +00:00
KHobbits
669fabe8f6 Mysql is bad. 2012-03-24 23:25:43 +00:00
KHobbits
ee622b7032 Better English. 2012-03-24 21:12:15 +00:00
KHobbits
c2259cbe48 New permission check: essentials.list.hidden is now required to /getpos hidden players. 2012-03-24 21:08:45 +00:00
KHobbits
8f14b46128 Extra itemcsv. 2012-03-23 23:13:04 +00:00
KHobbits
98396baf81 'Enabled' looks better than 'true'. 2012-03-23 22:38:01 +00:00
KHobbits
f2a2d0c2a9 Make sure items don't stack wrong in [free] signs. 2012-03-23 20:15:03 +00:00
KHobbits
9966c386bc Fix for showing plugins when user has no permission. 2012-03-23 18:26:19 +00:00
KHobbits
b0c7626c2c Wrong colour code symbol. 2012-03-23 17:50:15 +00:00
KHobbits
e10aac62c8 Merge remote branch 'remotes/origin/groupmanager' 2012-03-23 17:44:00 +00:00
KHobbits
5c85dc3bb0 Help command refresh. 2012-03-23 17:16:09 +00:00
KHobbits
6f82a2ee77 Merge branch 'master' of github.com:essentials/Essentials 2012-03-23 13:53:08 +00:00
snowleo
1bdb4fd14b Spaaaaaace! So much space! Gotta see it all! 2012-03-23 14:30:00 +01:00
KHobbits
a2ae02ba1f Merge branch 'master' of github.com:essentials/Essentials 2012-03-23 13:26:12 +00:00
KHobbits
43ff07a905 Fix url matching. 2012-03-23 13:26:03 +00:00
snowleo
9d40472f9f Fix utf-8 decoding problems. 2012-03-23 14:22:10 +01:00
snowleo
cd9127b447 http://youtu.be/8DdeLUA0Fms 2012-03-23 12:11:01 +01:00
KHobbits
45d07dcac6 Merge branch 'master' of github.com:essentials/Essentials 2012-03-23 10:18:16 +00:00
KHobbits
a17af6f21b Adding missing entities to Protect Spawn Blacklist 2012-03-23 10:16:38 +00:00
snowleo
478c16daf3 Fix UTF8 handling in Configuration class 2012-03-23 11:13:44 +01:00
KHobbits
01506d80c4 Update Essentials/src/config.yml 2012-03-23 10:03:15 +00:00
KHobbits
8dafa33624 Remove white user prefix, if prefix is blank. Messes with EssentialsChat colouring. 2012-03-23 07:56:44 +00:00
KHobbits
8e3337cd93 Fixing chat color formatting. 2012-03-23 00:19:27 +00:00
KHobbits
4c96179f06 Disabling player list updates by default (can mess with tab completion)
Hopefully this will be reverted if/when patch is found.
2012-03-23 00:15:22 +00:00
KHobbits
9d8d46ae42 Improve kit matching, and add enchantments.
Enchanted kit example in config.yml
2012-03-22 23:47:35 +00:00
KHobbits
620e59dbff Fix jar building. 2012-03-22 23:10:59 +00:00
KHobbits
6fd4903b72 Update CB to 2105 2012-03-22 23:07:23 +00:00
KHobbits
d22231b93c New command: /fly
New perm: essentials.fly.others
2012-03-22 22:59:52 +00:00
KHobbits
b3827d1f0c Split formatting perms for signs as well. 2012-03-22 22:26:04 +00:00
KHobbits
ce814c9d0f New Permission: essentials.chat.url
Without this perm, URLs will be modified not to be links.
2012-03-22 22:19:58 +00:00
KHobbits
35b14d2b58 Split colour permissions into 3: color/magic/format 2012-03-22 22:07:13 +00:00
KHobbits
e7adb6c78b Update to 1.2.4 (R0.1)
New Minimum CB version: 2100
2012-03-22 20:55:56 +00:00
KHobbits
e269f4fe2b Extra items in 1.2.4 2012-03-22 20:48:27 +00:00
KHobbits
7eb0a580c7 Add villager professions to /spawnmob 2012-03-22 20:03:52 +00:00
ElgarL
b13d2ae787 Correct Grammar 2012-03-22 17:54:59 +00:00
ElgarL
7868e3de65 Merge pull request #62 from bonney12/groupmanager
Update language and commenting
2012-03-22 10:53:25 -07:00
KHobbits
0096a497d4 Bukkit R0.3 api updates. 2012-03-22 17:26:05 +00:00
KHobbits
1909f52992 Update missing 1.2.3 items in items.csv 2012-03-22 17:25:42 +00:00
KHobbits
7627b082fc Extra Trees 2012-03-22 17:25:13 +00:00
KHobbits
fb6c5a3aba Fixed again. 2012-03-22 12:02:19 +00:00
KHobbits
8d6bd6e065 Fix typo. 2012-03-22 11:57:30 +00:00
KHobbits
c0a3b16fbf Merge branch 'master' of github.com:essentials/Essentials 2012-03-21 23:55:19 +00:00
KHobbits
0cdd5ceac3 Cleaning up displaynames 2012-03-21 23:54:57 +00:00
KHobbits
3c3967b355 Merge pull request #63 from Iaccidentally/patch-6
update default player-commands to support new and missed commands
2012-03-21 09:25:05 -07:00
Iaccidentally
852facb38e update default player-commands to support new and missed commands 2012-03-21 13:23:36 -03:00
Michael Bonney
e0d15f8aa4 Removed Portuguese text, and added English replacements. Made more sense of the sentences, and also changed an incorrect message to it's proper form. 2012-03-21 16:13:34 +00:00
KHobbits
900ebee4e5 Split if tree for readability. 2012-03-20 15:03:53 +00:00
KHobbits
6f3b475c72 Teleport check cleanup 2012-03-20 13:26:49 +00:00
KHobbits
fb2540cd26 Fix per world teleport permission checking. 2012-03-20 11:53:05 +00:00
KHobbits
5eb6e886a8 Add 'color' sign type to config file.
Enforce colour permission on signs when essentials signs are enabled.
2012-03-19 08:21:39 +00:00
KHobbits
519a5c34d1 Missing kit time check from [kit] signs. 2012-03-18 17:15:46 +00:00
KHobbits
9b6897a02a Only show nickname update message in debug mode. 2012-03-18 03:29:49 +00:00
KHobbits
0631579158 Shorten help messages. 2012-03-18 03:01:44 +00:00
KHobbits
de521a230e Error and info cleanup. 2012-03-17 20:23:46 +00:00
KHobbits
6a96a4b3e0 Merge remote branch 'remotes/origin/groupmanager' 2012-03-17 18:20:33 +00:00
ElgarL
e111cb6f96 Don't remove an attachment on a player leaving as Bukkit never forgets
it. This fixes non mirrored permissions being messed up if a player
relogs.
2012-03-17 15:56:40 +00:00
snowleo
eef8c3d63f Merge branch 'refs/heads/groupmanager' 2012-03-17 13:38:51 +01:00
ElgarL
ab825da214 Removed some debug spam. 2012-03-17 12:37:23 +00:00
snowleo
14d39de74c Fix bukkit download url 2012-03-17 11:15:28 +01:00
snowleo
bb1c6ef9f6 Fix bukkit download url 2012-03-17 11:12:32 +01:00
KHobbits
d913472fa6 Merge remote branch 'remotes/origin/groupmanager' 2012-03-17 08:01:19 +00:00
KHobbits
5e45679d55 New permission: essentials.tp.others - Allows players to /tp <p1> <p2> replaces old reused permission.
New permission usage: if world-teleport-permissions is true in the config, TP commands will now check for essentials.world.<worldname> when a tp would switch worlds.
2012-03-17 06:10:02 +00:00
KHobbits
f42ff086ca Comments to SetExpFix. 2012-03-17 03:38:32 +00:00
KHobbits
e95a8e037d Adding Exp to /whois, shows total exp and ingame level.
Due to the way minecraft calculates levels (flawed formula), its possible to not match calculated level.
2012-03-17 01:43:49 +00:00
KHobbits
29e5d0a977 Adding reference to &k in MOTD. 2012-03-16 23:03:22 +00:00
KHobbits
c009dc28dc Handle permission check failures better. 2012-03-15 23:15:19 +00:00
KHobbits
04e84c62d6 Add missing methods. 2012-03-15 22:23:26 +00:00
KHobbits
c3d6294df5 Updating Bukkit/CraftBukkit to match minimum ver. 2012-03-15 22:15:17 +00:00
md_5
0db9353e87 Fill the entire sign with free goodness 2012-03-15 20:55:56 +11:00
md_5
b18b2864bd Update minimum CraftBukkit version 2012-03-15 20:51:51 +11:00
md_5
fe71529271 Restore [free] and [disposal] signs back to their intended behaviour 2012-03-15 20:48:55 +11:00
snowleo
c801757327 :P 2012-03-15 09:15:28 +01:00
KHobbits
e8feadeade Graph a little bit extra information. 2012-03-15 08:08:25 +00:00
KHobbits
8657cd1d29 Fix fake explosions. 2012-03-15 06:42:58 +00:00
KHobbits
0629a24d45 Make /nuke drop tnt from a more reasonable height. 2012-03-15 05:09:34 +00:00
KHobbits
71da2d092a Make /spawner errors more descriptive. 2012-03-15 04:41:56 +00:00
KHobbits
e6b5014fe6 Add metric opt out toggle ingame. 2012-03-15 03:49:17 +00:00
KHobbits
89061b8e7e Fixing setwarp command. 2012-03-15 02:12:43 +00:00
KHobbits
2d85e05d50 Adding some simple feature metrics. 2012-03-15 02:12:27 +00:00
KHobbits
5ff084fb00 Metrics errors aren't important. 2012-03-15 01:32:08 +00:00
KHobbits
9f38876a45 Basic module graph. 2012-03-15 01:17:12 +00:00
KHobbits
1212738b2d Add Griefcraft metrics to Essentials
Warns on first start, and first staff join, and 5 minute warning before logging starts.
2012-03-15 00:49:22 +00:00
ementalo
57f1935b1e Adding permissions for overwriting exisitng warps
essentials.warp.overwrite.[warpname] will allow overwrting of exsiting warps
essentials.warp.overwrite.* for all warps
Adding WarpNotFoundException class
2012-03-14 21:16:22 +00:00
KHobbits
e28c73fc12 Fixing warp command costs. 2012-03-13 16:15:01 +00:00
ElgarL
3f15c9b52b Fix a globalgroup inheritance in groups.yml 2012-03-12 22:18:25 +00:00
KHobbits
303bfe5061 Missed a TL key. 2012-03-12 16:50:32 +00:00
KHobbits
a4a99e30f3 Fixing a few TL Keys 2012-03-12 15:35:20 +00:00
KHobbits
d8cb9fd02b New TL Key, allow formatting/colouring of help output. 2012-03-12 15:21:37 +00:00
KHobbits
d5f9558a20 New permission: essentials.seen.banreason
With this permission players can see why a user was banned, in /seen.
2012-03-12 15:00:44 +00:00
KHobbits
e03be504f5 Adding jail time to /whois. 2012-03-12 01:15:10 +00:00
KHobbits
23cad69a6e Update offline user check.
Add ban reason to /seen
2012-03-12 01:00:57 +00:00
KHobbits
b4fc2833cd Update setworth to allow /setworth <price> ingame
Allow /setworth to be used from console.
2012-03-11 23:59:59 +00:00
KHobbits
80f3a4ff2e New Permission: essentials.lightning.others
With this permission you can use /lightning <player>, without only strike based on direction.
2012-03-11 20:58:54 +00:00
KHobbits
ac5a01657f Add Enderman check to EntityChangeEvent (Should fix sheep eating grass). 2012-03-11 01:46:01 +00:00
KHobbits
f48fed04b8 Use ignoreCancelled on event registration. 2012-03-10 21:42:46 +00:00
KHobbits
7cace46970 Update info.txt to hint at /einfo. 2012-03-07 12:14:32 +00:00
KHobbits
eb16013fce Fixing typo in config.yml 2012-03-06 23:17:10 +00:00
ElgarL
fd32b29647 change []<> for optional command components 2012-03-06 16:23:57 +00:00
ElgarL
0b59531236 Expanded '/manuadd'to accept an optional variable for the world (eg
'/manuadd <player> <group> <world>').
2012-03-06 11:02:48 +00:00
KHobbits
787da5c3c6 Merge branch 'release'
Conflicts:
	lib/bukkit.jar
	lib/craftbukkit.jar
2012-03-05 16:25:35 +00:00
KHobbits
12a1dd92a1 Change starter kit to default to stone tools 2012-03-05 15:51:15 +00:00
KHobbits
caea6dac30 Temp fix to disable version check on R7 2012-03-05 14:17:09 +00:00
KHobbits
c49a455018 Craftbukkit/Bukkit R7 2012-03-05 08:41:19 +00:00
md_5
3d9baea863 I dont think free noteblocks are a good idea 2012-03-05 08:37:16 +00:00
KHobbits
4096f9da14 Missed one. 2012-03-05 08:37:15 +00:00
KHobbits
a110c6a1eb Fixing spawnmob count. 2012-03-05 08:37:15 +00:00
KHobbits
8eb7410b7e Add listgroups as TL key 2012-03-05 08:37:15 +00:00
KHobbits
af44cd1ff5 Apply colors to group tags. 2012-03-05 08:37:15 +00:00
KHobbits
a2b149395c Build custom mob list /spawnmob 2012-03-05 08:37:14 +00:00
KHobbits
1dd2369e56 CME 2012-03-05 08:37:14 +00:00
KHobbits
66e47c9f08 Adding starter/newbie kit to EssentialsSpawn
Optimization to EssentialsSpawn join event.
2012-03-05 08:37:14 +00:00
KHobbits
1a3601f72b Extra command alias. 2012-03-05 08:37:14 +00:00
KHobbits
74f46b558f Allow more currency customization.
Added currency key to messages.
2012-03-05 08:37:14 +00:00
KHobbits
f74833d045 Adding option to modify all users balances (including offline) /eco reset ** <amount> 2012-03-05 08:37:14 +00:00
KHobbits
5efe3f5ed4 Half-revert double backflip. 10 points.
(op prefix changes that md-5 broke, thinking I broke op prefixes)
2012-03-05 08:37:14 +00:00
md_5
82930842fc Fix op colours, which KHobbits broke! 2012-03-05 08:37:13 +00:00
Chris Ward
1f4e1fcf56 Cleanup
Signed-off-by: Chris Ward <chris@chrisgward.com>
2012-03-05 08:35:48 +00:00
Chris Ward
122d7ce538 Cleanup
Signed-off-by: Chris Ward <chris@chrisgward.com>
2012-03-05 08:35:48 +00:00
KHobbits
285aea5dfe Capital case for formatting. 2012-03-05 08:35:48 +00:00
KHobbits
42a148524e Force all kits to lowercase. 2012-03-05 08:35:48 +00:00
KHobbits
a87b8e869a *make it look like i'm doing something* 2012-03-05 08:35:48 +00:00
KHobbits
160db97e47 I think switches are better. 2012-03-05 08:35:48 +00:00
KHobbits
4b676222f9 Only update displayname on world change, not every teleport. 2012-03-05 08:35:48 +00:00
KHobbits
66a06f84f2 Extra command aliases 2012-03-05 08:35:47 +00:00
KHobbits
fbb5ffac46 Make the antioch message optional. 2012-03-05 08:35:47 +00:00
KHobbits
ed77f8bcbc Entity event cleanup 2012-03-05 08:35:47 +00:00
KHobbits
a7f6cde9b2 Shouldn't really be canceling events at priority monitor, oops. 2012-03-05 08:35:47 +00:00
KHobbits
2632110781 Don't think we need animation event anymore. 2012-03-05 08:35:47 +00:00
Iaccidentally
800a61bcf8 update messages.properties for the new bukkit download link (ci.bukkit,org no longer works) 2012-03-05 08:35:46 +00:00
md_5
85e6436bf0 I dont think free noteblocks are a good idea 2012-03-05 18:40:18 +11:00
md_5
cd5f894ec1 Allow spamming of this, by reducing explosion damage to 0, same effect, no mess 2012-03-05 18:28:04 +11:00
KHobbits
5090554cbd Missed one. 2012-03-05 00:39:37 +00:00
KHobbits
659ad5be55 Fixing spawnmob count. 2012-03-05 00:22:31 +00:00
KHobbits
157b814cd5 Add listgroups as TL key 2012-03-05 00:19:40 +00:00
KHobbits
e5ff6397cf Apply colors to group tags. 2012-03-05 00:08:37 +00:00
KHobbits
72827d5585 Build custom mob list /spawnmob 2012-03-04 21:54:51 +00:00
KHobbits
d0c4146084 CME 2012-03-04 21:43:24 +00:00
KHobbits
037df27d06 Adding starter/newbie kit to EssentialsSpawn
Optimization to EssentialsSpawn join event.
2012-03-04 20:09:25 +00:00
KHobbits
5544acef05 Extra command alias. 2012-03-04 16:17:16 +00:00
KHobbits
52afb22392 Updating Craftbukkit #2034 Bukkit #1378 2012-03-04 16:01:49 +00:00
ElgarL
af796bed24 Better reporting when a users.yml is failing to load. 2012-03-04 10:39:39 +00:00
KHobbits
1c64792672 Allow more currency customization.
Added currency key to messages.
2012-03-04 10:11:58 +00:00
KHobbits
aff5cdaf37 Adding option to modify all users balances (including offline) /eco reset ** <amount> 2012-03-04 09:20:03 +00:00
KHobbits
a2ecef8948 Half-revert double backflip. 10 points.
(op prefix changes that md-5 broke, thinking I broke op prefixes)
2012-03-04 08:18:25 +00:00
KHobbits
78180375c3 Merge branch 'master' of github.com:essentials/Essentials 2012-03-04 08:13:29 +00:00
md_5
db72175ad1 Fix op colours, which KHobbits broke! 2012-03-04 15:43:00 +11:00
snowleo
1fa51f73d8 Cleanup of /spawnmob 2012-03-03 17:01:53 +01:00
ElgarL
a4e369b512 Minor change to globalgroups 2012-03-03 14:03:52 +00:00
KHobbits
d5b168f98f Merge branch 'master' of github.com:essentials/Essentials 2012-03-03 13:49:26 +00:00
KHobbits
af87070ccd Update CB #2032 B #1377
Min CB #2015
2012-03-03 13:48:58 +00:00
ElgarL
47a03a993c Fix a silly logic error when testing bukkit perms 2012-03-03 13:47:59 +00:00
ElgarL
7b6d1b3226 Minor optimization when checking bukkit permissions. 2012-03-03 13:00:17 +00:00
md-5
bcd42f5cf4 Merge pull request #56 from Iaccidentally/patch-4
Allow spawning baby villagers and ocelots
2012-03-03 00:34:00 -08:00
md-5
2721dc5c29 Merge pull request #55 from chrisward/master
Just a really small cleanup
2012-03-03 00:31:48 -08:00
Chris Ward
e1437e9564 Cleanup
Signed-off-by: Chris Ward <chris@chrisgward.com>
2012-03-03 19:21:27 +11:00
Iaccidentally
54bbcda2a3 add little babbys 2012-03-03 03:04:54 -05:00
KHobbits
5e191d963a Capital case for formatting. 2012-03-03 07:09:41 +00:00
Chris Ward
8d455724fd Cleanup
Signed-off-by: Chris Ward <chris@chrisgward.com>
2012-03-03 18:07:43 +11:00
KHobbits
1670128d17 Force all kits to lowercase. 2012-03-03 07:03:54 +00:00
KHobbits
a1a0cda1bd *make it look like i'm doing something* 2012-03-03 05:27:02 +00:00
KHobbits
5e130592f7 I think switches are better. 2012-03-03 05:09:03 +00:00
KHobbits
fd989aaf2d Only update displayname on world change, not every teleport. 2012-03-02 19:05:30 +00:00
KHobbits
bb82807e3c Extra command aliases 2012-03-02 17:05:55 +00:00
KHobbits
fc744099a2 Make the antioch message optional. 2012-03-02 17:03:34 +00:00
KHobbits
7c05dc19cc Entity event cleanup 2012-03-02 16:54:12 +00:00
KHobbits
cbff40c82f Shouldn't really be canceling events at priority monitor, oops. 2012-03-02 16:33:20 +00:00
KHobbits
b2f82fd115 Don't think we need animation event anymore. 2012-03-02 16:29:06 +00:00
KHobbits
cbdecbb73e Merge pull request #54 from Iaccidentally/patch-3
update messages.properties for the new bukkit download link (ci.bukkit,o...
2012-03-01 20:15:16 -08:00
Iaccidentally
95749d5c8e update messages.properties for the new bukkit download link (ci.bukkit,org no longer works) 2012-03-01 23:10:32 -05:00
snowleo
0c07b6ac39 Will be removed until the next release XD 2012-03-02 01:30:52 +01:00
snowleo
3ba407a734 Better cats 2012-03-02 00:40:50 +01:00
snowleo
4e59b0a935 Fix world heights 2012-03-02 00:18:31 +01:00
snowleo
d09e3af0f7 Min version CB# 2004 2012-03-02 00:12:22 +01:00
snowleo
04a83dfc78 New eggs 2012-03-02 00:09:50 +01:00
snowleo
514666eae2 New Entities and Items for 1.2 2012-03-02 00:06:57 +01:00
snowleo
008c9b96ba CB#2004 B#1368 2012-03-01 23:57:34 +01:00
KHobbits
45ff2b33d5 Merge branch 'master' of github.com:essentials/Essentials 2012-03-01 22:37:15 +00:00
KHobbits
e01484f652 Kit sign cleanup 2012-03-01 22:36:51 +00:00
snowleo
eda8380586 update inventory 2012-03-01 23:23:23 +01:00
snowleo
79c376b584 Bukkit broke this sign :( 2012-03-01 23:10:12 +01:00
KHobbits
1ce314bc3c Fix kit timers resetting on server restart. 2012-03-01 22:04:50 +00:00
KHobbits
38170c16c0 Fix version matching. 2012-03-01 21:47:01 +00:00
snowleo
241b481423 Merge branch 'refs/heads/master' into release 2012-03-01 19:08:52 +01:00
snowleo
6af994bcb1 EntityType instead of CreatureType 2012-03-01 19:05:50 +01:00
snowleo
5eaef48834 Requires #1988 because of the new Inventory stuff 2012-03-01 19:05:50 +01:00
snowleo
2a1c4c3599 Updated to R6 2012-03-01 19:05:50 +01:00
snowleo
cac3dd6fa6 CB# 1988 B# 1360 2012-03-01 19:05:49 +01:00
md_5
492651e54c Separate config sections evenly 2012-03-01 19:05:47 +01:00
md_5
7c64ee8ecc Remove old, unwanted manifest.mf files 2012-03-01 19:05:47 +01:00
ElgarL
b1758b1342 Make 'manload' reload the config correctly. 2012-03-01 19:05:47 +01:00
KHobbits
3d01a66489 Updating Bukkit: CB #1858, B #1334 2012-03-01 19:05:47 +01:00
snowleo
a1940111a4 Merge remote-tracking branch 'origin/groupmanager' 2012-03-01 17:33:25 +01:00
snowleo
bc2bea8774 EntityType instead of CreatureType 2012-03-01 17:33:09 +01:00
snowleo
697b7dcc2c Requires #1988 because of the new Inventory stuff 2012-03-01 16:17:40 +01:00
snowleo
b0a2daf8e8 Updated to R6 2012-03-01 16:16:05 +01:00
snowleo
8ef671d1af CB# 1988 B# 1360 2012-03-01 16:16:05 +01:00
md_5
c42047d643 Merge remote-tracking branch 'origin/master' 2012-03-01 16:23:21 +11:00
md_5
0e35e94b10 Separate config sections evenly 2012-03-01 14:40:57 +11:00
md_5
35047ad6ee Remove old, unwanted manifest.mf files 2012-03-01 12:27:59 +11:00
ElgarL
0bea62ed00 Make 'manload' reload the config correctly. 2012-02-28 10:46:10 +00:00
KHobbits
149b4855a6 Adding option to log all eco api transactions. 2012-02-28 02:45:03 +00:00
KHobbits
ca1770fddc Prevent EssSpawn trying to handle spawning of jailed players. 2012-02-28 02:45:03 +00:00
KHobbits
9ecb3d07a9 Change jail listener to catch respawn at Highest 2012-02-28 02:45:03 +00:00
KHobbits
517ec1c756 Allow people to hit exactly 'min money'. 2012-02-28 02:45:03 +00:00
KHobbits
dae8330ec2 Cleanup. 2012-02-28 02:45:03 +00:00
KHobbits
d84102f2cc Adjustments to negative eco give/take. 2012-02-28 02:45:03 +00:00
KHobbits
a1a60cd23a Display users new balance on /eco give/take. 2012-02-28 02:45:02 +00:00
KHobbits
c3de3a12cc Add Minimum Balance, to allow people to manage overdrafts. 2012-02-28 02:45:02 +00:00
KHobbits
c7c8822810 Adding option to log all eco api transactions. 2012-02-27 15:31:43 +00:00
KHobbits
fc1d3c894d Prevent EssSpawn trying to handle spawning of jailed players. 2012-02-27 03:40:18 +00:00
KHobbits
f82dee2da2 Change jail listener to catch respawn at Highest 2012-02-27 03:24:58 +00:00
KHobbits
219129a1ea Allow people to hit exactly 'min money'. 2012-02-26 05:10:04 +00:00
KHobbits
113f665d68 Cleanup. 2012-02-26 05:06:03 +00:00
KHobbits
8c35e32c86 Adjustments to negative eco give/take. 2012-02-26 05:01:40 +00:00
KHobbits
cc3eff6ca0 Display users new balance on /eco give/take. 2012-02-26 04:27:29 +00:00
KHobbits
739febf06a Add Minimum Balance, to allow people to manage overdrafts. 2012-02-26 04:15:14 +00:00
KHobbits
158cf6a3b1 Updating Bukkit: CB #1858, B #1334 2012-02-25 17:57:26 +00:00
KHobbits
b5772fd4af Lowering min bukkit to r4 - 1838, this build should still be compatible. 2012-02-25 17:40:00 +00:00
KHobbits
8afddfda98 Merge branch 'master' into release 2012-02-25 17:22:39 +00:00
KHobbits
8a7ffb2d4e Merge remote branch 'remotes/origin/groupmanager' 2012-02-25 17:22:01 +00:00
ElgarL
c51a22df1b Prevent promoting players to, and demoting to GlobalGroups. 2012-02-25 09:29:54 +00:00
ElgarL
48072b6c99 Prevent adding inheritances to globalgroups. These are permissions
collections, not player groups.
2012-02-25 09:22:54 +00:00
KHobbits
b384f077d6 Write to user files less, on money update. 2012-02-23 17:25:00 +00:00
KHobbits
8032a033f7 Balance top now has server total on first line.
Balance top will update ess balance backup if using register/vault eco.
2012-02-23 15:17:23 +00:00
KHobbits
37c703527e Fixing upgrade script to allow powertool upgrade. 2012-02-23 14:49:23 +00:00
KHobbits
6cac560834 Fixing kits for new config classes. 2012-02-22 12:32:51 +00:00
KHobbits
9110f674c0 Extra command aliases. 2012-02-22 01:29:37 +00:00
KHobbits
862aac2752 Powertools dispatch commands as delayed tasks (should reduce any conflict issues). 2012-02-22 00:23:04 +00:00
KHobbits
69c1115d90 Switch powertools to use different event.
Reduce multiple triggering of powertool events.
Abort event when used with powertool.
2012-02-22 00:11:21 +00:00
KHobbits
52473b4725 Fix powertools with new config format. 2012-02-22 00:10:13 +00:00
KHobbits
dad9f0981d Check to see if home section exists. 2012-02-21 22:19:56 +00:00
KHobbits
554f99bc71 Fixing home list. 2012-02-21 22:12:37 +00:00
KHobbits
594fc433a5 Fix /sudo message display. 2012-02-21 21:39:25 +00:00
ElgarL
f3f29351da Removed BukkitPermsOverride as this is now the default with bukkit
handling child nodes.
2012-02-21 18:40:54 +00:00
ElgarL
d904709d06 Update for Bukkit R5 compatability.
Removed some unused variables.
2012-02-21 18:38:08 +00:00
snowleo
82f2bff2da Never give our user object to other plugins! 2012-02-21 18:41:27 +01:00
snowleo
e37fd0383c Merge branch 'refs/heads/groupmanager' 2012-02-21 17:34:45 +01:00
snowleo
8cd0c2d81d Updated Essentials to work with R5 2012-02-21 17:33:46 +01:00
snowleo
f1d4b2655f CB#1952
B#1330
2012-02-21 16:47:25 +01:00
KHobbits
1bbd5fa03f Merge branch 'master' into release 2012-02-19 01:20:50 +00:00
KHobbits
26e634758e Add bPerm2 support for chat prefixes. 2012-02-18 22:47:38 +00:00
KHobbits
3cd1527aeb Little bit of extra info in the default /einfo file 2012-02-18 22:08:18 +00:00
KHobbits
32d15676af Re-allow colours in newb welcome messages. 2012-02-18 21:34:05 +00:00
KHobbits
f680bd4bd6 Adding full keyword support for newb join message.
Also adding {ADDRESS} and {USERNAME} as new keywords.
2012-02-18 21:09:18 +00:00
ElgarL
a1959783f3 A command of '/manload' with no world arguments now performs a full
reload of GM.
2012-02-18 09:05:28 +00:00
KHobbits
94a553f3ec Don't try to use old bPerms API if it is not available. 2012-02-16 23:44:13 +00:00
KHobbits
1cf716534a Fixing being charged twice for /back. 2012-02-16 16:57:50 +00:00
KHobbits
35683cbfcf Merge remote branch 'remotes/origin/master' into release 2012-02-15 19:09:02 +00:00
md_5
ac95bbf2c7 Its a good idea to actually register the listeners 2012-02-15 19:55:41 +11:00
md_5
7be3239af5 Make Essentials Update use new Listener system, and fix a few general mistakes, including that of the config 2012-02-15 19:34:46 +11:00
md_5
df7f19f004 Fix formatting in the config.yml and plugin.yml files. Add a new author. 2012-02-15 17:57:53 +11:00
md_5
79d38108e0 Add all the new R4 methods 2012-02-15 17:53:47 +11:00
md_5
5af76d42ee Update to 1.1-R4 2012-02-15 17:44:35 +11:00
md_5
d926839ffd Remove dropItems from the inventory work around 2012-02-15 17:21:28 +11:00
ElgarL
f9b9110201 comment name change 2012-02-15 06:16:33 +00:00
ElgarL
3fd7635397 Depreciate PlayerTeleportEvent, PlayerRespawnEvent and PlayerPortalEvent
as it's all handled in PlayerChangedWorldEvent.
This also means we no longer update permissions before we change
worlds.
2012-02-15 06:15:31 +00:00
KHobbits
dadf6722f7 Merge branch 'master' into release 2012-02-14 23:56:02 +00:00
KHobbits
2aa24bec2f /spawnmob - Only list mobs you have permission to spawn. 2012-02-14 23:55:29 +00:00
snowleo
706780bb36 Don't return null, throw an exception 2012-02-14 20:30:06 +01:00
snowleo
092a9dde2c Merge pull request #49 from Iaccidentally/patch-2
fix typo in config.yml (another one)
2012-02-14 11:21:52 -08:00
Iaccidentally
b238dc0fa2 fix typo in config.yml (another one) 2012-02-14 14:21:07 -05:00
snowleo
b6cbc665d7 Merge pull request #48 from Iaccidentally/patch-1
fix typo in config.yml
2012-02-14 11:18:03 -08:00
Iaccidentally
665980c800 fix typo in config.yml 2012-02-14 14:16:34 -05:00
ElgarL
e6c762fdcb Depreciate PlayerTeleportEvent as it's all handled in
PlayerChangedWorldEvent.
2012-02-14 13:01:39 +00:00
snowleo
dd1dc82f6d Less sanitizing for more performance 2012-02-13 21:32:05 +01:00
KHobbits
e55bee514f Caching regex return in user cleanup.
(Pushing this for testing purposes).
2012-02-13 19:40:33 +00:00
KHobbits
6ef21a21d7 Merge branch 'master' into release 2012-02-13 17:35:05 +00:00
KHobbits
d5e68718b9 Merge remote branch 'remotes/origin/groupmanager' 2012-02-13 17:24:32 +00:00
KHobbits
2cf3bcffef Merge branch 'master' of github.com:essentials/Essentials 2012-02-13 17:17:14 +00:00
KHobbits
3985a7aa08 Allow charges for different mob types in /spawner 2012-02-13 17:16:27 +00:00
KHobbits
19231bd557 Add per warp command costs
Make warp other commands charge the commander, not the warped.
2012-02-13 17:09:07 +00:00
md_5
0ee6d41b1b Clean up the CommandException stack traces so they appear as if Essentials was never there. 2012-02-12 08:19:24 +11:00
KHobbits
7aec351469 Update trade signs properly, and visibly handle full signs. 2012-02-11 21:15:26 +00:00
KHobbits
73631e575b Merge pull request #46 from krinsdeath/master
Added Privileges to known Permissions plugins
2012-02-11 12:12:59 -08:00
KHobbits
b799a238f2 Refactoring tpaccept perm check to include tpaall. 2012-02-11 20:10:19 +00:00
KHobbits
c06b2dc9da Merge pull request #45 from Wolvereness/master
Fix /tpaccept permission check
Refactoring to follow.
2012-02-11 12:06:42 -08:00
Jeff Wardian
50e3312f79 Added PrivilegesHandler.java;
Implemented privileges in PermissionsHandler.java;

Fixed PrivilegesHandler.canBuild();
2012-02-11 10:06:18 -08:00
ElgarL
ec654f6412 Change Service registration to register WorldsHolder instead of
AnjoPermissionsHandler. This is the correct entry point for all data.
2012-02-11 10:36:55 +00:00
Wolvereness
513b4d1372 Fix exploit with /tpaccept if sender no longer has permission 2012-02-09 23:14:57 -06:00
KHobbits
1187f199d9 Allow colour codes in /ping 2012-02-09 22:13:00 +00:00
KHobbits
c3c1a290b6 New Permission: essentials.sudo.exempt
If a user has this perm, they cannot be controlled.
2012-02-09 22:11:46 +00:00
KHobbits
258d416eb8 Optional argument to /ping [message]- Message to be echo'd.
Possible use in scripts, checking for lag, /sudo, etc.
2012-02-09 22:02:24 +00:00
KHobbits
c6649615fe Fixing silly typo - Fixes shout costs. 2012-02-09 02:11:36 +00:00
ElgarL
6404fc031a Add some commenting 2012-02-05 16:41:34 +00:00
ElgarL
29ec27d4fa Fix world mirroring so it correctly creates data files and data sources
for partially mirrored worlds.
Fixed world mirroring so it returns the correct data for the
requested world
2012-02-05 16:30:58 +00:00
ElgarL
c8dfbb5383 Prevent getAllPlayersPermissions() processing a group more than once.
Improves performance when using complex inheritance structures.
2012-02-02 18:10:35 +00:00
KHobbits
8a392410bc Merge branch 'master' into release 2012-02-02 11:41:18 +00:00
KHobbits
65b24efcb3 Make it so ops can build, even if they don't have the matching permission. 2012-02-02 10:43:17 +00:00
KHobbits
c764420e84 Force minimum CB version to 1846, don't want people on #1840 due to big bugs. 2012-02-02 10:32:18 +00:00
KHobbits
9614031f7f Fixing repair to not repair items with datavalues, unless they actually have a durability. 2012-02-02 10:27:35 +00:00
KHobbits
6dc6a5953b Craftbukkit #1846 Bukkit #1211 2012-02-02 10:27:09 +00:00
KHobbits
98c3e5ce8e Recover from broken config files, but keep a backup of the old one for purpose of data recovery. 2012-02-02 09:48:56 +00:00
KHobbits
34bc0de6e1 Extend valid characters to be a little less strict. 2012-02-02 09:37:30 +00:00
KHobbits
4a68ff5a7a Sanitize mail for untoward characters.
Prevent a user error from terminating essentials timer task.
2012-02-02 09:26:36 +00:00
ElgarL
d809c6d0c4 fix setGroup to only block superperms update if update is false. 2012-02-02 02:41:10 +00:00
ElgarL
0e3c4a1368 Fix a bug with getWorldData return the main world data for all mirrors,
instead of the worlds parent data.
2012-02-02 02:01:04 +00:00
KHobbits
cfc7418086 More info, and less severe warning on jail error. 2012-01-31 08:33:14 +00:00
KHobbits
a8a07d8dbe Update jails to new event system. 2012-01-31 08:06:50 +00:00
ElgarL
413b03315f Catch all errors in badly formatted groups. 2012-01-31 03:16:34 +00:00
ElgarL
83a227d050 Track the 'onPlayerChangeWorld' event as some teleports seem to not be
triggering a world move.
2012-01-30 17:08:55 +00:00
ElgarL
b5ae4f2955 Auto sort permissions on load to speed up population of superperms.
Negating a parent node after adding all nodes with * will now
correctly remove all child nodes of that parent before populating
superperms.
	  eg.
	      - '*'
	      - -vanish.*
	      - vanish.standard
2012-01-30 14:41:19 +00:00
KHobbits
b0514341bc Merge branch 'master' into release 2012-01-30 05:36:03 +00:00
KHobbits
52e276af98 Remove invalid item spawn blacklist warning during startup. 2012-01-29 23:36:27 +00:00
KHobbits
bc6ef182a9 Merge branch 'master' into release 2012-01-29 21:44:30 +00:00
KHobbits
55b98ff934 Prevent /home bed, if the bed was later destroyed. 2012-01-29 21:44:15 +00:00
KHobbits
81086b989a Merge branch 'master' into release 2012-01-29 21:39:05 +00:00
ElgarL
00ca22bad1 .project change for Eclipse Build tool 2012-01-29 21:37:50 +00:00
KHobbits
b905a65f0e Fixing Kill/suicide in creative mode. 2012-01-29 21:37:38 +00:00
KHobbits
bc961a15ca Merge branch 'master' into release 2012-01-29 21:20:56 +00:00
KHobbits
7a8f0fec4d New craftbukkit
CB 1840, B 1208
2012-01-29 21:06:55 +00:00
KHobbits
f1cee6d0d9 Merge remote branch 'remotes/origin/groupmanager' 2012-01-29 20:57:54 +00:00
KHobbits
594f411d2e Fix boolean fail in /r offline checking. 2012-01-29 20:57:17 +00:00
ElgarL
8ad0f9ec11 updating .gitignore 2012-01-29 11:04:52 +00:00
ElgarL
46a694d41b Fix players retaining permissions when demoted. 2012-01-29 10:54:24 +00:00
KHobbits
f061d10078 Merge branch 'master' into release 2012-01-29 05:00:04 +00:00
KHobbits
8542def88c Optional second argument to /tpaccept, it will only accept the request if the sender matched that string. 2012-01-29 04:59:30 +00:00
KHobbits
930a1331d9 Added kit note.
Fixes #1276
2012-01-29 03:26:44 +00:00
KHobbits
021a149f2d Kill people the proper way.
Test #1410
2012-01-29 03:23:38 +00:00
KHobbits
583a7292f0 Switch /near priority to check for int first.
Test #1269
2012-01-29 03:09:59 +00:00
KHobbits
fb19cd53bc Make sure player is online when sending a /reply. 2012-01-29 02:57:52 +00:00
KHobbits
7450b0bbea Merge branch 'master' into release 2012-01-29 01:45:40 +00:00
KHobbits
d60ae36a0c Merge remote branch 'remotes/origin/groupmanager' 2012-01-29 01:45:03 +00:00
KHobbits
4bc8c70a4b Prevent disabled sign creation (if any of essentials signs are enabled) 2012-01-29 01:42:55 +00:00
KHobbits
ff603688cb Fix sign list format. 2012-01-29 01:38:24 +00:00
KHobbits
6009a8dc7d Disable all signs by default. 2012-01-29 01:27:04 +00:00
KHobbits
11bee4e7df Added options to enable each sign type 2012-01-29 01:12:38 +00:00
ElgarL
cdfed7a79e silly formatting change to test gitbot 2012-01-28 18:01:17 +00:00
KHobbits
f1f93ba94d Merge branch 'master' into release 2012-01-28 12:59:15 +00:00
KHobbits
750fabcddd Merge remote branch 'remotes/origin/groupmanager' 2012-01-28 12:58:37 +00:00
ElgarL
5efb151b30 fix for an iterator error if there is only one element in the array. 2012-01-28 11:59:54 +00:00
ElgarL
c101c1ca6b Fixed a bug when pushing superperms in the wrong order. 2012-01-28 11:47:39 +00:00
KHobbits
af7aec7927 Only list bed home if it is set. 2012-01-28 01:39:51 +00:00
KHobbits
842afc6cc3 Allow space as well as : in /delhome 2012-01-28 01:32:15 +00:00
KHobbits
b52bdd4b40 Stop users from using /sethome bed 2012-01-28 01:09:02 +00:00
KHobbits
70639b5c85 If bed home is set, give priority when spawning. 2012-01-28 00:57:08 +00:00
KHobbits
d377672c48 Check bed still exist, for bed homes. 2012-01-28 00:49:22 +00:00
KHobbits
4f1eb9f1cb Switch website URL's to point at wiki. 2012-01-28 00:20:46 +00:00
ElgarL
cacf235d18 Properly fix inherited negated nodes. 2012-01-27 13:09:11 +00:00
ElgarL
9077d6c9af do not allow inherited permissions to negate higher perms. 2012-01-27 12:38:00 +00:00
KHobbits
50315cbd55 Merge branch 'master' of github.com:essentials/Essentials 2012-01-26 21:21:35 +00:00
KHobbits
8c2a8646e4 Revert emergency listener to old style
Stops peoples world world burning down if they throw in 2.8, on a 1.0 server.
2012-01-26 21:21:13 +00:00
snowleo
4797911706 Merge branch 'refs/heads/master' into release 2012-01-26 04:51:10 +01:00
snowleo
218960e39c Minor fix to french translation 2012-01-26 04:49:26 +01:00
Léa Gris
e91392dc54 i18n added to command nuke 2012-01-26 04:46:00 +01:00
Léa Gris
30b54c62ef Updated translations to Essentials Dev2.7.191 2012-01-26 04:45:16 +01:00
KHobbits
2c63b2e2ae Merge branch 'master' into release 2012-01-26 00:31:05 +00:00
KHobbits
4736069ddd Set min bukkit to 1818 - RB 2012-01-26 00:30:33 +00:00
KHobbits
101f05c127 Merge remote branch 'remotes/origin/groupmanager' 2012-01-26 00:28:10 +00:00
ElgarL
747b129aa2 Fixed an infinite loop error when using '/manudel' on a logged in
player. It caused setDefaultGroup to trigger a bukkit update when no GM
User existed yet.
2012-01-25 23:44:14 +00:00
ElgarL
dab4a4f587 Trap errors in fetching the mirrors map. 2012-01-25 22:43:07 +00:00
ElgarL
53d3bfa977 Check for a null player object in the PlayerTeleportEvent. 2012-01-25 22:35:24 +00:00
ElgarL
d7e814d55c Fixed subgroups (I broke earlier). 2012-01-25 22:33:22 +00:00
ementalo
01e4812e46 Merge branch 'master' into release 2012-01-25 14:29:05 +00:00
paul.aston
7d9c71ad69 CB #1818
RB #1200
2012-01-25 14:23:46 +00:00
Paul A.
81ec3173b2 Merge pull request #43 from essentials/groupmanager
Fix trying to modify an unmodifiable collection breaking superperms.
2012-01-24 17:29:08 -08:00
ElgarL
540b480427 Fix trying to modify an unmodifiable collection breaking superperms. 2012-01-25 01:20:44 +00:00
KHobbits
e35ef69bdb Merge branch 'master' into release 2012-01-25 00:04:08 +00:00
KHobbits
f4825a2c28 Merge remote branch 'remotes/origin/groupmanager' 2012-01-25 00:02:15 +00:00
ementalo
2d328ecb94 Don't try to spawn users who have disconnected before we have a chance to spawn them 2012-01-24 22:43:33 +00:00
ElgarL
59a78f05c7 Fix typo/wording in changelog
Allow negation to the * permission node when populating superperms.
2012-01-24 19:41:22 +00:00
ElgarL
3a559ae1ad Allow negations with the * permission node when population superperms. 2012-01-24 19:38:22 +00:00
ElgarL
09deec5770 Fix hasOwnData to return a correct result with new mirroring system 2012-01-24 15:37:21 +00:00
ElgarL
a3f1105a64 Fixed isInList 2012-01-24 15:35:20 +00:00
ElgarL
adcd99626f addSubGroup now returns a boolean for success/failure.
'/manuaddsub' now correctly reports if it was able to add the sub
group.
2012-01-24 14:21:07 +00:00
ElgarL
710a27a53b Added recursive loop detection for World mirroring (you may not set the
main world as a mirror of another).
Fixed fetching world data so it no longer returns the mirrored world
for groups. Each world data holder now points to the correct data set,
so can be returned as an object.
2012-01-24 14:08:53 +00:00
snowleo
f8a66de08c Merge branch 'refs/heads/master' into release 2012-01-24 03:43:49 +01:00
snowleo
7fa0e9818f Merge branch 'refs/heads/groupmanager' 2012-01-24 03:43:17 +01:00
ementalo
3b935a2628 Add new permission essentials.protect.alerts.notrigger
If user has this permisson they do not trigger EssProtect block alerts
2012-01-23 15:48:56 +00:00
ElgarL
6237e2e51f Fixed infinite loop error on player join.
Optimized code to only update the player logging in instead of all
players online.
2012-01-22 23:46:26 +00:00
ElgarL
8d5224444c Separated all events to be independent classes. 2012-01-21 20:18:40 +00:00
ElgarL
0bf58b939d Fixed a random null error upon a player portaling. 2012-01-21 19:09:08 +00:00
KHobbits
9323b6a78a Merge branch 'master' into release 2012-01-21 17:19:12 +00:00
ElgarL
84fc2887e3 Update to new Bukkit Event system.
Update GroupManagerBridge for new event system.
2012-01-21 11:47:08 +00:00
KHobbits
0e2afd0122 Catching throwable leads to madness, lets do this safely. 2012-01-21 00:19:13 +00:00
KHobbits
69a136754f Catch errors too, incase the class doesn't exist. 2012-01-21 00:01:43 +00:00
KHobbits
6554add2b6 Messages Cleanup 2012-01-20 23:13:37 +00:00
KHobbits
f4d638c2d9 If vault throws an exception, it should not be enabled. 2012-01-20 23:04:43 +00:00
KHobbits
7e5687b5cc Adding translation keys for [L] and [Spy] 2012-01-20 22:57:35 +00:00
KHobbits
42ab423479 Check shout/question messages are longer than 1 character. 2012-01-20 22:54:47 +00:00
snowleo
93d632a9ff Removing load info, bucket displays that now. 2012-01-20 05:52:35 +01:00
snowleo
90e1b619be New Event code for EssentialsSpawn 2012-01-20 05:34:28 +01:00
snowleo
ebb3a1c19f Update for new CraftBukkit Event Code
EssentialsSpawn can't be updated yet, because the new event system lacks dynamic priorities.
2012-01-20 05:20:37 +01:00
snowleo
1d0a9e4c89 CB#1791 2012-01-20 04:09:35 +01:00
KHobbits
871657bdf9 Fix EssChat displayname error. 2012-01-19 15:51:55 +00:00
KHobbits
92c2e1777d Merge remote branch 'remotes/origin/groupmanager' 2012-01-19 15:34:00 +00:00
KHobbits
6ccb5830e0 Fix Lombok include. 2012-01-19 15:08:37 +00:00
ElgarL
7ee3919175 Fixed text when adding a subgroup to not say the player was moved. 2012-01-19 13:08:57 +00:00
snowleo
18f9fd3e31 Update of Lombok, fixes memory leak in Netbeans 2012-01-19 13:17:05 +01:00
ElgarL
16d537bd6c Remove debug spam 2012-01-19 12:08:39 +00:00
snowleo
5995544f2d Cache MessageFormats for Chat 2012-01-19 02:03:20 +01:00
KHobbits
9f37b06123 Compiled regex is faster. 2012-01-18 23:35:30 +00:00
KHobbits
be5e54ab99 Make sure to clean the chatStore. 2012-01-18 23:08:40 +00:00
KHobbits
59090403e8 Reduce duplicate calls in EssentialsChat
Should cut the time down a little.
2012-01-18 22:53:39 +00:00
KHobbits
3dcfb94ece Merge remote branch 'remotes/origin/groupmanager' 2012-01-18 20:04:50 +00:00
ElgarL
9c052b5178 Better optimize assembling of a players permissions and allow the * node
to populate all registered superperms.
2012-01-18 16:39:12 +00:00
ElgarL
64af5b465d Added a tidy error message for invalid permission entries in
GlobalGroups.
2012-01-18 01:25:25 +00:00
KHobbits
80322e2066 Merge remote branch 'remotes/origin/groupmanager' 2012-01-17 23:50:05 +00:00
KHobbits
3e10997bef Merge remote branch 'remotes/origin/groupmanager' 2012-01-17 23:49:38 +00:00
ElgarL
89c41b0508 v 1.9:
Optimize populating Bukkit perms so we no longer calculate the
child
nodes (Bukkit already does this).
2012-01-17 18:03:16 +00:00
KHobbits
714bbb1c78 Merge branch 'master' of github.com:essentials/Essentials 2012-01-17 17:40:22 +00:00
KHobbits
1994fb9f79 Auto Update GM Version 2012-01-17 17:24:22 +00:00
snowleo
c6ac284542 Shorter names for enchantment signs. 2012-01-17 01:45:03 +01:00
KHobbits
d9c4b564fc Stripping vanilla colour from /helpop and /mail
Adding support for &k in EssChat
Adding support for colour in /msg and /r - New perm: essentials.msg.color
2012-01-16 20:25:36 +00:00
KHobbits
154d47d54e Merge branch 'master' of github.com:essentials/Essentials 2012-01-16 19:42:37 +00:00
KHobbits
717766b6f9 Stripping vanilla colours from /msg 2012-01-16 19:42:15 +00:00
snowleo
ac57b5f72d Fix /nick command colors 2012-01-16 20:38:53 +01:00
snowleo
9cb1e28654 Strip colors from chat, if the user does not have the permission. 2012-01-16 20:29:55 +01:00
KHobbits
36146ff618 Removing debugging message from player login. 2012-01-16 18:58:44 +00:00
snowleo
69a16abc76 Cleanup 2012-01-16 19:11:41 +01:00
KHobbits
672207d385 Adding support for Vault as a fallback economy method. 2012-01-16 18:00:43 +00:00
KHobbits
5255f18572 Merge remote branch 'remotes/origin/master' into release 2012-01-16 12:43:09 +00:00
snowleo
6428499138 Optimize TextInput to cache motd and info textfiles. 2012-01-16 04:51:27 +01:00
snowleo
9095aa40eb Revert changes to Usermap 2012-01-16 02:12:20 +01:00
snowleo
e43491bc83 Optimize Break in Protect 2012-01-16 01:55:04 +01:00
snowleo
d21567290d Speed improvements for Move and Interact Event. 2012-01-16 00:50:52 +01:00
ElgarL
1a0b03db4d Removed '- bukkit.command' form the globalgroups permission nodes. 2012-01-15 01:43:42 +00:00
snowleo
68e6c98e60 Reload less 2012-01-14 23:25:52 +01:00
snowleo
28981cba8a Temporary fix for Spawns and Jails when Worlds are loaded after Essentials.
This will be replaced by BetterLocation fix in 3.0 branch.
2012-01-14 23:13:58 +01:00
KHobbits
f748383969 Allowing use of aliases in help/info/motd, for command suggestions.
Test #1441
2012-01-14 16:53:18 +00:00
KHobbits
e4a90c11a7 Fixing double charges on /home
Test #1426
2012-01-14 16:42:53 +00:00
KHobbits
35e6aebd09 Fixing {WorldDate}
Test #1353
2012-01-14 16:36:19 +00:00
KHobbits
087d5a782a Merge branch 'master' into release 2012-01-14 15:52:55 +00:00
KHobbits
0d4c728d4b Merge remote branch 'remotes/origin/groupmanager' 2012-01-14 15:52:22 +00:00
ElgarL
d0e5685ac0 Catch NullPointerErrors generated by blank permission nodes. 2012-01-14 15:48:55 +00:00
KHobbits
38e85fae7e Update Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java 2012-01-14 15:04:16 +00:00
KHobbits
2dce5d2b23 Merge branch 'master' into release
~ GM needs testing before release ~
2012-01-14 13:16:33 +00:00
KHobbits
b2fe7986f8 Removing debugging messages. 2012-01-13 22:50:48 +00:00
KHobbits
59b2c06ef8 Adjusting default spawn behavior.
Moving option in config file.
2012-01-13 22:41:47 +00:00
snowleo
f5d57efbba Merge branch 'refs/heads/groupmanager' 2012-01-13 01:38:54 +01:00
snowleo
5f41b13351 Add new eggs to items.csv 2012-01-12 23:56:39 +01:00
snowleo
7f759d520c Min Bukkit version is 1713 now 2012-01-12 23:43:11 +01:00
snowleo
af6c07d304 Added the new Enchantments 2012-01-12 23:42:04 +01:00
snowleo
f301e883fc Netbeans 7.1 stuff 2012-01-12 23:37:39 +01:00
snowleo
7d0e65e9ac CB#1713 B#1136 2012-01-12 23:36:45 +01:00
ElgarL
768c92e5bf Major, MAJOR changes to support partial/full world mirroring.
You can now mirror groups.yml, users.yml or both files between
different worlds.
2012-01-11 05:51:40 +00:00
ElgarL
2a478fe03d Optimize fetching of Mirrored world data. 2012-01-10 18:40:34 +00:00
ElgarL
58057a771d Changed over to a reflection method for populating superperms as Bukkit
lags when you handle permissions one at a time.
2012-01-09 02:00:58 +00:00
ElgarL
4c485f3147 Fix 'manucheckp' to correctly report if a permission is available from
GroupManager or Bukkit.
2012-01-05 19:43:30 +00:00
ElgarL
7726fd0081 Reload GlobalGroups when you perform a world load.
Changed GlobalGroups to save/load before local groups in the
scheduled data saving/loading
2012-01-03 02:04:48 +00:00
snowleo
2799efd0a3 Merge pull request #42 from jjkoletar/patch-1
No sending to all players, must specify target.
2012-01-01 16:38:05 -08:00
Jeremy
2d003de5c0 No sending to all players, must specify target. 2012-01-01 18:18:29 -06:00
ElgarL
3aba996e97 Changed the way events are raised to prevent variable corruption. 2011-12-29 14:52:42 +00:00
ElgarL
69847af08a Decreased ranks of default users so idiots who don't remove them can't
get 'hacked' when in offline mode.
2011-12-22 17:01:10 +00:00
ElgarL
debcf4714a Delayed GroupManager events so Superperms will be fully updated before
plugins receive the events.
2011-12-20 17:21:55 +00:00
snowleo
a256c4c6bc Only info not a warning if a file is missing 2011-12-20 12:25:30 +01:00
snowleo
a0bf25749d Only info not a warning if a file is missing 2011-12-20 12:24:59 +01:00
snowleo
68376b50fc Correctly match release and non release versions of bukkit. 2011-12-20 12:20:41 +01:00
snowleo
9d14af5d3e Correctly match release and non release versions of bukkit. 2011-12-20 12:20:12 +01:00
snowleo
21b7931f7b Fix sending our player object to other plugins. 2011-12-20 11:57:51 +01:00
snowleo
4386192e7e Fix sending our player object to other plugins. 2011-12-20 11:57:22 +01:00
ElgarL
a2202439bb Expanded GlobalGroups.yml and Groups.yml to include Towny permissions. 2011-12-19 19:22:04 +00:00
ElgarL
7c8c40c790 manpromote and mandemote now correctly sent the notification to the
console if the command was issued there.
2011-12-19 15:44:27 +00:00
snowleo
40f9c1e019 Always return an offlineplayer object with the name, that the user wants. 2011-12-19 12:57:09 +01:00
snowleo
433b691b29 Fix double names in /balancetop and show display name in balancetop 2011-12-19 12:39:23 +01:00
snowleo
eeeea7e227 Merge branch 'refs/heads/master' into release 2011-12-19 12:07:28 +01:00
KHobbits
222f09bcac Merge branch 'master' of github.com:essentials/Essentials 2011-12-19 10:57:44 +00:00
KHobbits
4581121750 Prevent future warps being named as numbers. 2011-12-19 10:57:18 +00:00
snowleo
5a33fb9ca9 More null checks for Jails 2011-12-19 11:53:52 +01:00
KHobbits
8640a687b1 Merge remote branch 'remotes/origin/master' into release 2011-12-19 05:04:15 +00:00
ElgarL
afe8ecd3df Fixed a typo 2011-12-18 15:21:56 +00:00
ElgarL
244673e1fb Fixed manucheckp on group (missed it in last commit) 2011-12-18 14:35:14 +00:00
ElgarL
de40f7f556 Fixed 'manucheckp' returning a null for the searched node when it's a
group/subgroup.
2011-12-18 14:26:00 +00:00
ElgarL
ac77bbb0b4 Changed ServicesManager registration to lowest from normal. 2011-12-18 04:25:54 +00:00
KHobbits
6298af0039 Merge branch 'master' of github.com:essentials/Essentials 2011-12-15 20:47:24 +00:00
KHobbits
42849879eb Make powertool use a chat event, instead of just messaging each user. 2011-12-15 20:47:06 +00:00
snowleo
1a27a74476 Corrected version match for 1597 build version 2011-12-15 10:32:04 +01:00
ElgarL
815a9dcca2 Removed op permissions from admins in the default GloblaGroups.yml. 2011-12-14 16:24:47 +00:00
snowleo
3aed03caf0 Fix failing override for /enchant /eco /ext 2011-12-14 15:07:08 +01:00
snowleo
b61a67224a Merge branch 'refs/heads/master' into release 2011-12-14 11:56:09 +01:00
snowleo
f1ddcbd4fd Merge branch 'refs/heads/groupmanager' 2011-12-14 10:03:32 +01:00
ElgarL
8d29a2c578 deleting the contents of GlobalGroups.yml will no longer thrown a
NullPointerException.
2011-12-14 04:26:02 +00:00
KHobbits
030c1c94d1 Read current exp, instead of stored exp.
This means that exp used in enchanting is subtracted from total exp.
2011-12-14 03:41:24 +00:00
snowleo
0262ca1a4e Merge branch 'refs/heads/master' into release 2011-12-13 23:52:58 +01:00
snowleo
7f4a4951f2 Merge branch 'refs/heads/groupmanager' 2011-12-13 23:52:25 +01:00
ElgarL
559400c606 GM now registers with Bukkits ServicesManager. 2011-12-13 18:20:02 +00:00
ElgarL
5b195299ba Update event Action names to be unique 2011-12-13 17:32:39 +00:00
ElgarL
759892078a Added custom events so plugins can now be notified of changes within
GroupManager.
2011-12-13 17:13:53 +00:00
KHobbits
1dbbee6914 Fixing killall command definition. 2011-12-13 09:38:20 +00:00
snowleo
8747b97c60 Merge branch 'refs/heads/master' into release 2011-12-13 10:32:59 +01:00
snowleo
8b726f81db Renamed /butcher to /killall and fixes to the code. 2011-12-13 10:28:15 +01:00
snowleo
31ca41d09f Netbeans 7.1 changes for EssentialsUpdate 2011-12-13 08:46:50 +01:00
snowleo
ab49f31b6d Tiny fix to the last commit. 2011-12-13 08:41:28 +01:00
snowleo
4c113604da Better exp fix and allow exp on buy and sell signs. 2011-12-13 08:38:15 +01:00
snowleo
ef5d7898c3 Disabling exp as currency. Normal money will be used. 2011-12-13 07:35:46 +01:00
KHobbits
c391c3d785 Update exp trade signs on purchase. 2011-12-13 04:52:09 +00:00
KHobbits
3dbfa343d0 Fixing Sell/Buy Signs which use EXP as a currency. 2011-12-13 04:29:16 +00:00
KHobbits
7071b74aa3 Merge branch 'master' of github.com:essentials/Essentials 2011-12-13 03:12:09 +00:00
KHobbits
18ce62d0b9 Update copylibs. 2011-12-13 03:11:11 +00:00
KHobbits
d38d047f74 Inform user that they were healed. 2011-12-13 01:47:58 +00:00
KHobbits
f38ac61e3e Merge branch 'master' into release 2011-12-12 23:15:48 +00:00
KHobbits
ac48def854 Updating min Bukkit version. 2011-12-12 23:13:39 +00:00
KHobbits
33e2379b42 Merge branch 'master' into release 2011-12-12 23:06:40 +00:00
KHobbits
3fe1ec9beb Updating to RB
CraftBukkit #1597 Bukkit #1073
2011-12-12 23:00:21 +00:00
KHobbits
c0ecb0221d Merge remote branch 'remotes/origin/groupmanager'
Adjusting bukkit paths to remove version number.
2011-12-12 22:51:18 +00:00
KHobbits
c6b275dcc1 Update Bukkit jars and paths. 2011-12-12 22:45:59 +00:00
ElgarL
0e0b441168 Offline player checks now support partial name matches. 2011-12-12 16:39:15 +00:00
ElgarL
aaf08150e6 Fix classpath for Eclipse 2011-12-12 15:59:34 +00:00
ElgarL
50f215adda Dev Jar files for GM 2011-12-12 15:56:00 +00:00
ElgarL
4b43453a74 Update GM version to 1.7
GM now supports offline players without having to mantogglevalidate
Added craftbukkit-1.0.0-SNAPSHOT.jar to lib (version 1587)
Added bukkit-1.0.0-R1-SNAPSHOT.jar to lib (version 1065)
Updated GM XML's to build using dev bukkit/CB build jars.
2011-12-12 15:53:33 +00:00
KHobbits
3eff598791 Merge branch 'master' of github.com:essentials/Essentials 2011-12-12 00:49:33 +00:00
KHobbits
a7b1c3d534 Switching the item value of brewing stands 2011-12-12 00:48:39 +00:00
snowleo
f8e1f02523 Fix sorting of users in /who 2011-12-11 09:22:27 +01:00
KHobbits
a63c116590 Temp Fix wildcard permissions in bperms. 2011-12-11 06:00:29 +00:00
KHobbits
fad38170a8 Make the version error messages stand out a little more... 2011-12-11 05:49:25 +00:00
KHobbits
aa5f819d7b Added cleanup note
Minecraft server usually shows players around 140-180 range, so changing default /near to 200.
2011-12-10 04:12:22 +00:00
KHobbits
f9905f9953 Make the alt command message, sound less negative/broken. 2011-12-09 22:53:36 +00:00
KHobbits
06c2453941 Update plugin information. 2011-12-09 21:51:31 +00:00
KHobbits
c0e903c1f3 New permissions: essentials.powertool.append. 2011-12-09 21:42:36 +00:00
KHobbits
f99867dd0a Simplify the protect config file examples. 2011-12-09 04:07:53 +00:00
snowleo
de12c5c6d1 Fix broken charge for shout and question 2011-12-09 02:48:57 +01:00
ementalo
95d5217f58 Allow timeout of /tpa /tpahere requests
Adds new config setting tpa-accept-cancellation
Test #781
2011-12-08 23:43:09 +00:00
KHobbits
52b1017bda Merge branch 'master' of github.com:essentials/Essentials 2011-12-08 04:44:34 +00:00
KHobbits
b102c5f3d8 First Refactor of Kits
New sign: [Kit] / <kit name> / [group] / [charge]
2011-12-08 04:44:18 +00:00
snowleo
8d0230d6a8 Merge branch 'refs/heads/master' into release 2011-12-08 05:41:00 +01:00
snowleo
e379ac5d77 Merge branch 'refs/heads/groupmanager' 2011-12-08 04:14:27 +01:00
ElgarL
789a6b9540 Fix manload to properly clone user variables. 2011-12-08 02:28:12 +00:00
KHobbits
221e1d3bb2 Merge branch 'master' of github.com:essentials/Essentials 2011-12-08 02:23:18 +00:00
KHobbits
9410a25cce Adjusting /spawn to not trigger respawn event. 2011-12-08 02:21:10 +00:00
snowleo
ae7d968f5c Fix for Towny using an old method. 2011-12-08 02:23:44 +01:00
snowleo
5002e7a6ad Prevent blockdamage by enderdragon (default true) in EssentialsProtect CB#1566 B#1058 2011-12-08 00:48:53 +01:00
snowleo
13a42d1937 Fix Jails not loaded after server start. 2011-12-07 16:50:16 +01:00
snowleo
46c99e5c6f /home sends the player to bed again before it tries to respawn. 2011-12-07 15:18:50 +01:00
snowleo
02b25120e8 Allow to set the Respawn priority in config. 2011-12-07 15:09:22 +01:00
snowleo
435219bab6 Fix Enchant sign, the user has to hold the item in hand now. A * or "any" in the second line allows to enchant all possible items. 2011-12-07 14:23:56 +01:00
snowleo
766f0a9f13 Use of our Inventory code in enchant sign to be reliable. 2011-12-07 13:44:51 +01:00
snowleo
d60de76d87 New config option disable-item-pickup-while-afk, defaults to true. 2011-12-07 12:10:41 +01:00
snowleo
324cd74826 Banned moved from /whois to /seen 2011-12-07 12:00:01 +01:00
snowleo
e7ebc94a9e SnakeYaml now ignores additional mapping values in files, so it throws less errors. 2011-12-07 11:57:31 +01:00
snowleo
5c02346f85 Fix I18n file not loading from Essentials folder, when the locale is not defined in config. 2011-12-07 11:22:02 +01:00
snowleo
5b539bf034 Fix /mail sendall, fixes #1209 2011-12-07 11:02:10 +01:00
snowleo
879d4913dc /balancetop now has pages instead of max argument
Test #1210
2011-12-07 10:53:06 +01:00
snowleo
ef49d92c49 Null check in new player teleport, fixes #1212 2011-12-07 10:37:34 +01:00
snowleo
719539d63b Missing translation for last commit 2011-12-07 10:35:06 +01:00
snowleo
fdd8fffbb3 Support for experience as trading goods on signs. This will not work until experience is fixed in Bukkit. 2011-12-07 10:31:18 +01:00
snowleo
67a3a55f5a Updated /near and /getpos command, added new argument playername
Test #1214
2011-12-07 10:03:23 +01:00
Khyperia
e8eb1974b8 New feature: IsBanned to /whois 2011-12-07 09:36:11 +08:00
Khyperia
a82d8d1d44 Added new player argument: /spawnmob <mob> [amount] [player]
Test: #821
2011-12-07 09:36:11 +08:00
ementalo
9ca0e51dac Merge branch 'master' of github.com:essentials/Essentials 2011-12-07 01:13:08 +00:00
ementalo
10597cec2f Catch TeleportClause.COMMAND in the teleport listener.
Changed Teleport methods to pass a TeleportClause param
2011-12-07 01:12:36 +00:00
Khyperia
b49a9ef165 New feature: /mail sendall <message>
Test: #649
2011-12-07 08:53:15 +08:00
Khyperia
d573671933 Renamed /find to /itemdb 2011-12-07 08:53:14 +08:00
Khyperia
a0d66ce230 New command: /find <item>
Test #278
Test #293
Test #348
2011-12-07 08:53:14 +08:00
snowleo
854fc05c5b Fix serious bug in Dev2.7.137 - Dev2.7.144: if spawn.yml is not present, the server will run into a deadlock. 2011-12-07 00:08:45 +01:00
ementalo
b9077d91a5 Adding ability to save /back location from teleport events outside essentilals
New config setting to turn this on "register-back-in-listener"
Test #1200
CB#1560 / B#1055
2011-12-06 22:56:38 +00:00
snowleo
ff13279e6c Fixing color in announce-format 2011-12-06 22:02:19 +01:00
snowleo
ce3a7c8719 This is no longer needed 2011-12-06 17:44:02 +01:00
snowleo
9e1571a8e5 More cleanup 2011-12-06 17:42:55 +01:00
snowleo
d2953c99ef Added /jail /ejail alias to plugin.yml 2011-12-06 17:31:35 +01:00
snowleo
72e187cd5c Updated Jails to use the new config classes 2011-12-06 17:28:48 +01:00
snowleo
2851a4634c cleanup 2011-12-06 16:35:30 +01:00
snowleo
58237a796a New Interfaces in api package (WIP) 2011-12-06 16:32:06 +01:00
snowleo
5433a68502 UserBase is abstract 2011-12-06 15:40:35 +01:00
snowleo
a7097df231 Refactoring to create less redundant code 2011-12-06 15:38:14 +01:00
snowleo
51390a9698 Prevent some rare cases of NPE and Deadlocks, better error handling on yaml load 2011-12-06 14:39:52 +01:00
snowleo
019b49ef11 Updated EssentialsSpawn to use the new config code
/spawn and /home now call the PlayerRespawnEvent to make it more compatible with other plugins.
2011-12-06 13:41:29 +01:00
snowleo
f3b278eac2 More work done on config code 2011-12-06 10:37:17 +01:00
snowleo
6fe8e603af Using the correct type of Set in UserMap. 2011-12-06 08:28:41 +01:00
snowleo
6b06adfc23 Check if the item can be enchanted. 2011-12-05 00:20:46 +01:00
Khyperia
2b919faa7b Added {VERSION} to motd
Test #1198
2011-12-05 06:56:20 +08:00
snowleo
b2ffdc9774 utf8 encoding 2011-12-04 23:39:08 +01:00
snowleo
e5aa7f496b Merge remote-tracking branch 'dysp/patch-1'
Conflicts:
	Essentials/src/messages_da.properties
2011-12-04 23:37:01 +01:00
snowleo
cb89fe5358 Readded because of popular demand: default-stack-size for /give and /item, values below 1 return max stack size (or oversized stack size). 2011-12-04 23:21:30 +01:00
snowleo
ad60eb538e Ignore teleport cooldown on /tjail 2011-12-04 22:57:40 +01:00
snowleo
cbc744c85a Added missing steps to items.csv (by andrewkm from ecocitycraft.com) 2011-12-04 22:53:29 +01:00
snowleo
6371a59819 Fix some rare cases, where adding an item to inventory could result in an infinite loop. 2011-12-04 22:45:47 +01:00
snowleo
20bc8840d6 Allow oversized stacks in kits. 2011-12-04 22:33:49 +01:00
snowleo
f12e9f6dfb Enchantements are now stored in one class 2011-12-04 22:28:29 +01:00
snowleo
c8814bd70e Added missing [player] to plugin.yml 2011-12-04 22:10:20 +01:00
snowleo
8417c5e1f0 New permission essentials.spawn.others 2011-12-04 22:09:36 +01:00
snowleo
ec3586c08c Added null check to /break 2011-12-04 22:06:03 +01:00
snowleo
d9c773270b Less use of sqrt 2011-12-04 22:01:50 +01:00
snowleo
dd84f5c331 Merge pull request #35 from khyperia/master
Multiple commits from khyperia
2011-12-04 12:49:52 -08:00
Khyperia
2c2f956068 Added [enchant] sign
Test #1177
2011-12-04 14:58:00 -05:00
Khyperia
ba3ccf7a2c Added /spawn <player>
Test #607
2011-12-03 20:24:35 -05:00
KHobbits
90f87804b1 Show command conflict in debug mode. 2011-12-03 23:38:28 +00:00
KHobbits
ea21e402ec Sort translation files properly. 2011-12-03 21:18:15 +00:00
KHobbits
1066f7a478 New Permission: essentials.world.<worldname>
~ Unsure about the future of this feature, its recommended you don't rely on /world to switch worlds ~
Test #1178
2011-12-03 21:15:53 +00:00
KHobbits
1c03cdb4d0 New command /remove
Test #1193
2011-12-03 21:14:03 +00:00
KHobbits
6d3e1b862e New command: /feed New permission: essentials.feed.others
Test #1191
2011-12-03 20:54:53 +00:00
KHobbits
d4c2443b5f New command: /more
Test #1189
2011-12-03 20:44:44 +00:00
KHobbits
8ce8764f6a New Command /break, and new Permission: essentials.break.bedrock
Test #1188
2011-12-03 20:41:24 +00:00
KHobbits
343618642b Merge pull request #34 from khyperia/master 2011-12-03 12:36:38 -08:00
Khyperia
1cb593dba3 Added per-world permissions for /world 2011-12-03 12:13:42 -05:00
Khyperia
85d743dce5 Merge commit 2011-12-03 11:14:53 -05:00
KHobbits
118b3638eb Small cleanup to checkActivity 2011-12-03 13:50:32 +00:00
Khyperia
dc74239edc Fixed accedental typo 2011-12-02 20:55:43 -05:00
Dysp
647eac32fc The last translation was so poorly done (I suspect the use of google-translate) that I decided to translate it myself. There may be errors due to lack of insigt for the context of the individual sentence. I can easily correct these, if I am notified. 2011-12-03 01:05:12 +01:00
Khyperia
91be153474 Added some commands from request 946 2011-12-02 19:02:12 -05:00
KHobbits
b03a327f9b Patching gamemode and god toggles to not match on ' ' 2011-12-02 21:32:32 +00:00
KHobbits
3b2403b686 items.csv update for crackedstonebrick (id98,2) 2011-12-02 09:28:57 +00:00
KHobbits
16e3830f9e Remove invalid dupe permission from permbukkit example. 2011-12-02 09:23:23 +00:00
KHobbits
73ec9978fb Make the chat formatting config file link to the wiki. 2011-12-02 09:17:20 +00:00
snowleo
055f11c89e Missing language files for last commit 2011-12-02 08:34:28 +01:00
snowleo
1489203aca New config options repair-enchanted (default true) and permission essentials.repair.enchanted 2011-12-02 08:30:52 +01:00
snowleo
1f1b6aff54 Allows to be teleported to bed location of offline players.
Also adds missing return in /home command
2011-12-02 08:19:55 +01:00
snowleo
8d4d8effa0 Null check 2011-12-02 03:27:37 +01:00
snowleo
8591023ad5 Moved block to item conversion to Util class 2011-12-02 03:25:22 +01:00
snowleo
42f4bba320 Added new tags to info.txt 2011-12-02 02:01:48 +01:00
Khyperia
746c80b0d6 Added many new MOTD possibilities + getI18n() to Essentials.java 2011-12-02 08:42:48 +08:00
Khyperia
bbb47fe6d3 Added {DATE} and {TIME} to motd 2011-12-02 08:42:48 +08:00
Khyperia
4c1c3e4852 Added many new MOTD possibilities + getI18n() to Essentials.java 2011-12-01 19:37:12 -05:00
KHobbits
3b0c604de0 Missing command aliases. 2011-12-01 17:32:48 +00:00
KHobbits
7a80a36eab Missing aliases 2011-12-01 17:25:46 +00:00
KHobbits
83a4431bd7 CB#1538 b#1050 2011-12-01 16:20:53 +00:00
KHobbits
c0eec02f0a Show how far away each player is. 2011-12-01 15:58:25 +00:00
KHobbits
c97d069783 Fixing near output. 2011-12-01 15:31:53 +00:00
KHobbits
b0377498f7 Better distance checking. 2011-12-01 15:15:45 +00:00
KHobbits
00d44873ca Command: /near 2011-12-01 14:43:16 +00:00
KHobbits
2a8ccb43ae Fixing spawnmob errors to say the right thing. 2011-12-01 14:43:00 +00:00
KHobbits
f006932639 Merge branch 'master' of github.com:essentials/Essentials
Conflicts:
	Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
	Essentials/src/com/earth2me/essentials/commands/Commandenchant.java
2011-12-01 13:47:06 +00:00
KHobbits
2dc6f8c202 Command Cleanup 2011-12-01 13:42:39 +00:00
snowleo
39851694ad minor changes to items.csv 2011-12-01 04:46:43 +01:00
snowleo
737f7799fc Updated items.csv by michaelwm from ecocitycraft.com 2011-12-01 04:39:51 +01:00
Khyperia
8356624479 Added {DATE} and {TIME} to motd 2011-11-30 21:02:57 -05:00
Khyperia
dde8595c51 Updating to latest 2011-11-30 20:30:21 -05:00
snowleo
909e5bd3f8 Update of Smack to 3.2.1 2011-12-01 02:11:40 +01:00
snowleo
e6e1c7d160 We don't need them anymore. 2011-12-01 01:56:39 +01:00
snowleo
a5f4ada85d This is obsolete too. 2011-12-01 01:41:09 +01:00
snowleo
4f8be31343 Cleanup of the library folder
Also: we don't use the mysql.jar/sqlite.jar anymore, since it is included in craftbukkit. I don't know why this reference in config.yml still exists.
2011-12-01 01:35:48 +01:00
snowleo
40220960f5 We don't need that anymore. 2011-11-30 23:51:41 +01:00
snowleo
3c9f0db3d4 CB#1534 B#1048 2011-11-30 22:59:50 +01:00
snowleo
bd7bd86e62 Allow EssentialsProtect to go into emergency mode, if Essentials core is not present at all. 2011-11-30 21:25:11 +01:00
snowleo
5e2123c91e If Essentials core fails to read one of the configs now, it will disable itself. If other modules detect that Essentials is not enabled, they will be disabled too. EssentialsProtect will go into emergency mode, canceling all events that could hurt your world. Fix the file and either restart or reload the server. 2011-11-30 20:49:11 +01:00
snowleo
15d8ec6026 Removed EnchantmentFix, because it's fixed in CB#1526 2011-11-30 20:49:11 +01:00
KHobbits
a8a9fc3dd6 /spawnmob sheep:<colour> + /spawnmob sheep:baby = /spawnmob sheep:<colour>baby.
And as a nice extra, random: /spawnmob sheep:randombaby 10
2011-11-30 03:58:20 +00:00
KHobbits
1de4a40bf6 Missing an Animal. 2011-11-30 03:44:33 +00:00
snowleo
35f5578436 New config option update-bed-at-daytime that allows players to always set their bed location 2011-11-30 02:51:02 +01:00
snowleo
b8d60674cb Updated readme about format guidelines. 2011-11-30 00:54:44 +01:00
snowleo
a30a28265a Removing old settings.zip 2011-11-30 00:52:55 +01:00
snowleo
f5344b65d3 Fix /balancetop, cache was not cleared 2011-11-30 00:48:51 +01:00
snowleo
37e5260cda Merge branch 'refs/heads/master' into release 2011-11-29 21:55:09 +01:00
snowleo
e169e954ba Merge branch 'refs/heads/groupmanager' 2011-11-29 21:38:00 +01:00
snowleo
5f0936cf44 mirror world_the_end in default config.yml 2011-11-29 21:34:31 +01:00
snowleo
aed160b5fc Using this code until Bukkit fixes spawnCreature() 2011-11-29 19:24:54 +01:00
snowleo
0b2a3fcf7f Output the redirected plugin too. 2011-11-29 18:48:52 +01:00
snowleo
57a0ec9912 Allow joinList to understand Collections. 2011-11-29 18:40:13 +01:00
KHobbits
e5435f24db Merge branch 'master' of github.com:essentials/Essentials 2011-11-29 17:21:46 +00:00
KHobbits
af7eae6201 Adding some debug info to /essentials 2011-11-29 17:21:18 +00:00
snowleo
60067964be Fix NPE in getUser() 2011-11-29 17:39:22 +01:00
KHobbits
cdbae1631d Settings Cleanup. 2011-11-29 16:16:45 +00:00
KHobbits
414d6b79e9 GC: Never force reclaiming RAM on user logout, it will be done automatically, when the time is right.
~ Should reduce player event lag a little bit ~
2011-11-29 16:06:39 +00:00
KHobbits
dd3b1e97b6 Merge branch 'master' of github.com:essentials/Essentials 2011-11-29 13:10:19 +00:00
KHobbits
0c81a68c7b Handle a null handler (GM) 2011-11-29 13:10:00 +00:00
snowleo
183343c388 1TBS? Nope, Allman
This reverts commit a36b755248.
2011-11-29 05:06:07 +01:00
snowleo
a36b755248 New format guidelines? 2011-11-29 04:51:29 +01:00
ElgarL
1838dbc931 globalgroups prefix 'g:' is now not case sensitive. 2011-11-29 02:32:09 +00:00
snowleo
525fefc484 UserMap.getUser() will return null on failure. 2011-11-29 00:36:36 +01:00
snowleo
4bacdb327a Fix NPE when reading old player files 2011-11-29 00:30:06 +01:00
snowleo
19b8031933 Merge branch 'refs/heads/master' into release 2011-11-28 22:42:17 +01:00
snowleo
91cdff955a Fix another bug in /sell 2011-11-28 22:41:26 +01:00
snowleo
8c06b13a77 Allow to set size of MagmaCubes in /spawnmob 2011-11-28 22:06:59 +01:00
snowleo
7db7fd4136 Added info how to read the next page to /info /help /motd /rules 2011-11-28 20:52:15 +01:00
snowleo
99211fd407 Merge branch 'refs/heads/master' into release 2011-11-28 20:28:05 +01:00
snowleo
5e24584bf7 Fix bug in /sell command 2011-11-28 20:24:13 +01:00
snowleo
3d839c2b21 Merge branch 'refs/heads/master' into release 2011-11-28 20:03:09 +01:00
snowleo
9acc7db06f Changes to /sell /give and /item
Material.getMaxStackSize() will now be used in /give and /item
The config option default-stack-size has been removed
New config option oversized-stacksize and permission essentials.oversizedstacks
Fixes bug giving out too many items on /give and /item when a stacksize > 64 is given.
Fixes bug in /sell that ignores enchantments
/sell now uses Material.getMaxStackSize() for /sell egg 2s (will sell 32 instead of 128 now)
2011-11-28 19:55:51 +01:00
snowleo
0354b8d019 Translation of /balancetop 2011-11-28 18:59:33 +01:00
snowleo
eea7785b7f Calculation of /balancetop is now async to prevent slowdown of the server 2011-11-28 18:53:38 +01:00
snowleo
7268e1965d Ignore defaultstacksize from config, just use 64 2011-11-28 17:58:26 +01:00
KHobbits
4614d6d0dd Merge branch 'master' of github.com:essentials/Essentials 2011-11-28 12:56:20 +00:00
KHobbits
4a83d17fec Adding extra mobs to essentials protect, changing some default settings. 2011-11-28 12:55:54 +00:00
snowleo
e8d64aca5e New option for EssProtect: Prevent villager death. 2011-11-28 06:15:51 +01:00
snowleo
e1e7a1cfdb Merge branch 'refs/heads/master' into release 2011-11-28 04:23:38 +01:00
snowleo
b637e494c2 Forgot this again. :D 2011-11-28 04:15:09 +01:00
KHobbits
ccfc3b8d78 Someone said something about wanting Snowmen.
... and MagmaCubes.
Bukkit #1045 CraftBukkit #1522
2011-11-28 03:12:37 +00:00
KHobbits
05c90af1ee Fix empty argument in delhome. 2011-11-28 02:54:19 +00:00
snowleo
6603d0997e Fix broken trade/buy signs because of a wrong cast 2011-11-27 22:36:32 +01:00
snowleo
0ed7f87ee0 Merge branch 'refs/heads/master' into release 2011-11-27 20:59:19 +01:00
snowleo
aceda4c680 Allow enchantments to be removed using /enchant enchantmentname 0 2011-11-27 20:40:39 +01:00
snowleo
67be976d90 New permissions:
essentials.spawnmob.[mobname] and essentials.spawner.[mobname]
2011-11-27 19:59:06 +01:00
snowleo
ec6baa3621 Catch exception instead of checking for null 2011-11-27 19:13:55 +01:00
snowleo
82f864a7f9 Update Essentials/src/messages_fr.properties 2011-11-27 18:56:04 +01:00
snowleo
2a22c04688 Merge pull request #32 from leagris/patch-1
Up to date, more accurate french translation.
2011-11-27 09:55:33 -08:00
Léa Gris
1c6c460a09 Up to date, more accurate french translation. 2011-11-27 17:52:12 +01:00
snowleo
c5251591de Allow /unbanip playername, not just ips 2011-11-27 16:58:47 +01:00
snowleo
ccb4d3a7e8 Don't add the internal bukkit names to the enchantment list, to make it shorter. 2011-11-27 11:43:42 +01:00
snowleo
d5db9d404a Revert to the old behavior of oversized stacks. We might remove or change this in the future. 2011-11-27 10:59:28 +01:00
snowleo
0c0c9573be Updated the enchantment names to match those of the game 2011-11-27 10:48:10 +01:00
snowleo
76a8f794ef Enchantments in CraftBukkit are still broken, but it works with Essentials :) 2011-11-27 10:02:41 +01:00
snowleo
cbba3639b9 Fix Typo 2011-11-27 09:09:04 +01:00
snowleo
8791a8dbb7 Only print stack trace of motd.txt not found, if debug is on. 2011-11-27 09:07:15 +01:00
snowleo
098072517a Added enchantment to /give and /item
Updated plugin.yml
2011-11-27 08:57:21 +01:00
snowleo
b8f9a4b96f Implement correct hashCode() and equals() in EnchantmentLevel 2011-11-27 08:26:52 +01:00
snowleo
9c56b147ee Enchantment Multiplier in future Worth config 2011-11-27 08:18:41 +01:00
snowleo
41e8c4c7b8 Enchantments on Trade signs? Fixes check, so we won't add items that are enchanted. 2011-11-27 07:47:16 +01:00
snowleo
a8a72da15e Added 1.9 material where you can stand 2011-11-27 07:33:03 +01:00
snowleo
9b6c01d071 /spawner without mobname outputs available mobs 2011-11-27 07:32:42 +01:00
snowleo
3c71ae4cd9 Locale.ENGLISH!!1! 2011-11-27 06:23:07 +01:00
snowleo
34edf34ba3 Using the ItemStack.clone() method 2011-11-27 06:10:11 +01:00
snowleo
f250a107e4 CB#1518 B#1042
Support for Enchantments & Removed broken BedFix (in cb now)
2011-11-27 06:01:41 +01:00
KHobbits
d5c852b79d URL went nowhere. 2011-11-27 04:54:48 +00:00
snowleo
65776d6ed2 BedLocationFix for CraftBukkit 2011-11-27 04:46:33 +01:00
snowleo
0234c55ce3 New command /enchant
Permissions for each enchantment: essentials.enchant.[enchantmentname]
For all use *
2011-11-27 04:36:42 +01:00
KHobbits
ee42030307 Merge remote branch 'remotes/origin/groupmanager' 2011-11-27 03:16:32 +00:00
ElgarL
263a3fc80b Added file details in error messages for loading groups/users. 2011-11-27 03:12:28 +00:00
snowleo
a714e39bf4 CB#1512 B#1039 2011-11-27 03:22:39 +01:00
KHobbits
68297b5cf8 Merge branch 'master' of github.com:essentials/Essentials 2011-11-27 01:15:39 +00:00
KHobbits
ae4c10ced6 Fixing optional argument on tppos to use the correct yaw value. 2011-11-27 01:15:14 +00:00
snowleo
b5e9ad02ae arrrgggss 2011-11-27 00:31:14 +01:00
snowleo
c70700f7b8 Fix banning random player (and all other commands where a empty player is given) 2011-11-27 00:23:40 +01:00
snowleo
b21b7b7e15 New behavior of the /home command and beds
- The behavior has been altered to match the vanilla server.
 - Using a bed will no longer create a home in the users file, if config option bed-sethome is set
 - The config option bed-sethome has been removed
 - It's now possible to go to /home bed or /home playername:bed
 - Bed locations stored before installing Essentials will be used
 - Players respawn at their bed location (if set) instead of the spawn, if respawn-at-home is set to false
 - The default value of spawn-if-no-home is set to true
 - If spawn-if-no-home is set and the player has not set a home, he will be either teleported to his bed location (if set) or the spawn, when he uses the /home command
2011-11-26 22:30:40 +01:00
snowleo
f9d14697b6 Forgot to save this file before commit 2011-11-26 17:37:07 +01:00
snowleo
8ed4418d5f Translated /list command 2011-11-26 15:26:48 +01:00
snowleo
4ad19b6fad Cleanup 2011-11-26 00:34:36 +01:00
snowleo
d4685d1d10 Fix ItemDupe bug in bukkit 2011-11-25 22:26:06 +01:00
snowleo
fa73394113 Merge branch 'refs/heads/groupmanager' 2011-11-25 21:12:38 +01:00
ElgarL
b25a8f059b Optimizations include changing the return of comparePermissionString. 2011-11-25 19:33:32 +00:00
ElgarL
0cb77d8a03 Minor optimization for groups 2011-11-25 16:34:34 +00:00
ElgarL
b41c3709ba Raised bukkit perms priority 2011-11-25 16:01:46 +00:00
ElgarL
24a6073488 Fix superperms to pass all tests
http://dev.bukkit.org/server-mods/superpermstest/
2011-11-25 15:49:35 +00:00
snowleo
3daf56c8be Another safety check 2011-11-25 14:02:40 +01:00
snowleo
223028f306 Fix another NPE in AlternativeCommandsHandler 2011-11-25 13:55:09 +01:00
snowleo
7afbad3218 This config option is never read 2011-11-25 13:03:07 +01:00
snowleo
871c0e6b6a Disable god mode automatically in worlds defined by config 2011-11-25 07:12:21 +01:00
snowleo
73d13f5748 Oh no! Angry wolf babies D: 2011-11-25 06:04:19 +01:00
snowleo
03452bda68 Baby wolfs, awwwwh 2011-11-25 05:54:32 +01:00
snowleo
613cb57fdb CB#1501 B#1037
New spawnmob options: cow:baby sheep:baby chicken:baby pig:baby
2011-11-25 05:49:57 +01:00
snowleo
31b9e792bd Fix NPE in AlternativeCommandsHandler on shutdown 2011-11-25 00:22:57 +01:00
ElgarL
cd8ef9361b minimal optimizations 2011-11-24 16:45:57 +00:00
ElgarL
eea381e714 optimize getPermissionList 2011-11-24 16:34:05 +00:00
ElgarL
5a9b573309 More optimization (charAt(0)) 2011-11-24 16:05:41 +00:00
ElgarL
70c235d4f0 remove unused imports. 2011-11-24 16:00:46 +00:00
ElgarL
127681736d rewrite of comparePermissionString (snowleo) 2011-11-24 15:57:21 +00:00
ElgarL
73a7a6a1dd Optimize comparePermissionString 2011-11-24 15:28:32 +00:00
ElgarL
dec7ea1926 remove bukkit perms check from checkUserPermission as it's performed in
checkFullUserPermission
2011-11-24 14:05:25 +00:00
ElgarL
94983c3ca7 Optimize sorting to speedup permission tests. 2011-11-24 13:26:30 +00:00
snowleo
32e43bf167 Show more then 9 lines of motd on login 2011-11-24 05:57:01 +01:00
snowleo
579bbc9f2c Merge branch 'refs/heads/master' into release 2011-11-24 04:26:05 +01:00
KHobbits
af456a73dd New permission essentials.nick.color
Allows control over who can use colour codes in nicknames.
2011-11-23 22:24:31 +00:00
snowleo
b35d5f30f9 Invert pattern 2011-11-23 02:52:08 +01:00
snowleo
8aaaed2ef8 More work on the config code 2011-11-23 02:43:38 +01:00
snowleo
e683ce5751 Merge branch 'refs/heads/groupmanager' 2011-11-22 15:12:20 +01:00
snowleo
b0aaafd08d GM does not need CraftBukkit 2011-11-22 06:02:47 +01:00
KHobbits
212442ab1c Fixing inventory method calls.
Bug report: http://pastie.org/2901587
2011-11-22 04:55:21 +00:00
KHobbits
bf244fff80 Switching priority on help permissions
Bukkit #1488
2011-11-22 04:41:34 +00:00
KHobbits
2620e2ae08 Merge branch 'master' of github.com:essentials/Essentials 2011-11-22 04:00:26 +00:00
KHobbits
d59e2834d1 Rewriting help, to use new classes. 2011-11-22 04:00:04 +00:00
snowleo
63991cb38d Moved all dependency on craftbukkit to one package in the main jar. The rest is now clean bukkit code. Also cleaned PlayerExtension class. 2011-11-22 03:02:08 +01:00
snowleo
94b70e1ee9 Corrected name in items.csv: whitestone => enderstone 2011-11-22 02:25:56 +01:00
ElgarL
fd1c2824ce Stop throwing errors on an empty users file. 2011-11-21 09:51:31 +00:00
snowleo
a5853baf4c Set shooter of Fireball or it will die instantly. 2011-11-21 03:50:31 +01:00
snowleo
90694b15cc Added new creatures to EssProtect prevent spawning
Ghast and Slime default value changed
2011-11-21 03:21:02 +01:00
snowleo
5e4b7f85c8 Cleanup 2011-11-21 03:07:44 +01:00
snowleo
b5bc83e714 Fixing the tests 2011-11-21 03:05:18 +01:00
snowleo
220d68f375 Switch to the new I18n class and format cleanup of all classes 2011-11-21 02:55:26 +01:00
snowleo
e672de949c Merge branch 'refs/heads/master' into release 2011-11-20 21:46:02 +01:00
snowleo
19f5a2340d Fix timeWorldCurrent translation key in /time command 2011-11-20 19:12:20 +01:00
snowleo
1e4a54baca Prevent NPE with creatures that are not added to bucket yet. 2011-11-20 16:50:08 +01:00
snowleo
14cc499421 Fix long prefix breaking setPlayerListName(), because they are too long.
If Essentials detects, that the player name would be too long with prefix and suffix to fit in the player list, it will only update the name without prefix and suffix but with nickname and opcolor.
2011-11-20 16:43:38 +01:00
snowleo
6633b39954 Fix Bukkit version pattern 2011-11-20 16:40:18 +01:00
snowleo
a886645afa Add SmallFireball to EssProtect 2011-11-20 15:43:39 +01:00
snowleo
8c478c76a5 Added option to /fireball command: /fireball small 2011-11-20 14:34:03 +01:00
snowleo
293f2f7cd2 Added new mobs 2011-11-20 14:33:17 +01:00
snowleo
1f6b1f4a2c Added new methods to Fake classes 2011-11-20 14:30:54 +01:00
snowleo
765ec51b32 Added the new items to items.csv 2011-11-20 14:30:21 +01:00
snowleo
c132a75c1a CB# 1467 B#1022 2011-11-20 14:03:00 +01:00
ElgarL
000d060ea6 better groups match checking for globalgroups 2011-11-20 02:27:25 +00:00
ElgarL
317b0833ef Prevent Group.equals tests throwing a NullPointerException for
GlobalGroups.
2011-11-19 20:46:34 +00:00
snowleo
f72762bcb2 Merge branch 'refs/heads/master' into release 2011-11-19 16:04:00 +01:00
KHobbits
4f8319bbb9 Warn in the console if group prefixes are too long.
People using displayname prefixes can set longer chat prefixes in the chat config.
2011-11-18 23:08:16 +00:00
KHobbits
cd9ea163e4 Continuing code cleanup 2011-11-18 22:09:26 +00:00
KHobbits
fc00ff471d Merge branch 'master' of github.com:essentials/Essentials into essmaster 2011-11-18 19:18:06 +00:00
snowleo
85ef892f0e Null checks 2011-11-18 20:15:26 +01:00
KHobbits
2e0fb15952 More code cleanup. 2011-11-18 18:33:22 +00:00
KHobbits
11f02fb947 Code cleanup continues... 2011-11-18 18:11:49 +00:00
KHobbits
e5a8cd88f0 Code cleanup continued. 2011-11-18 17:48:49 +00:00
snowleo
9987568ae8 New I18n code, not used yet 2011-11-18 15:04:22 +01:00
KHobbits
a05f730e76 Little more command cleanup. 2011-11-18 13:48:31 +00:00
KHobbits
5655509c62 Updating gitignore to ignore private files. 2011-11-18 12:10:36 +00:00
KHobbits
a9b77b3486 Updating gamemode to allow essentials.gamemode.other. 2011-11-18 12:08:27 +00:00
KHobbits
37bd9bc9b5 Merge branch 'master' of github.com:essentials/Essentials into essmaster 2011-11-18 12:07:11 +00:00
KHobbits
e54d73704e Command cleanup 2011-11-18 12:06:59 +00:00
KHobbits
e5c77c1aeb Updating web push to just push the zip files. 2011-11-18 12:06:19 +00:00
snowleo
edf0ab756c Updated UserMap to newest Guava-API 2011-11-18 05:29:27 +01:00
snowleo
c96b14a34c Remove useless import 2011-11-18 05:23:38 +01:00
snowleo
3841648eba Update ExecuteTimer to use ns instead of ms for calculations, output is still in ms 2011-11-18 05:13:38 +01:00
snowleo
ffc1640308 Java 1.5 clients will never reach that point, so we can remove it. 2011-11-18 04:22:09 +01:00
snowleo
0bbc1e540b motd and rules are now configured in the files motd.txt and rules.txt, values from config.yml are copied automatically
New features:
Info command now understands the tags from motd and rules
motd and rules are now multipage
On join, only the first page of motd is shown.
2011-11-18 04:18:03 +01:00
snowleo
2a98734d22 Better solution for the alternative commands 2011-11-18 01:43:58 +01:00
snowleo
603d23659b Check for other plugin aliases and run them instead. 2011-11-18 01:01:05 +01:00
snowleo
7ecc3c25b0 Merge branch 'refs/heads/master' into release 2011-11-17 19:06:44 +01:00
snowleo
41c03853ab General fix against overwriting already existing protections 2011-11-17 17:06:06 +01:00
snowleo
adcffba7cf Merge branch 'refs/heads/master' into release 2011-11-17 16:34:39 +01:00
snowleo
2a4c26ee69 Prevent that sign protection in EssProtect can be circumvented by placing signs. 2011-11-17 16:20:31 +01:00
snowleo
8143154826 The data value of leaves changed by 4
0 -> 4, 1 -> 5, 2 -> 6 to make them permanent, items.csv should be updated automatically
2011-11-17 16:14:56 +01:00
snowleo
e271e60144 Merge branch 'refs/heads/master' into release 2011-11-17 15:34:27 +01:00
snowleo
c5c29aef4e Merge branch 'refs/heads/groupmanager' 2011-11-17 15:34:05 +01:00
ElgarL
7b7d1f557f Fixed a crash on reload due to bukkit not unloading plugins before
reloading.
2011-11-17 14:28:33 +00:00
snowleo
af5a86c48c Fix water/lava bucket bug with mobs 2011-11-17 14:23:35 +01:00
ElgarL
022f7ab1d4 Fixed GM holding files open and causing the time stamp to be incorrect.
This caused GM to require a '/mansave force' when it shouldn't be
needed.
2011-11-17 05:46:01 +00:00
snowleo
b9daf6aaa5 Sudo: This would break horrible for offline players and the original player object has to be used. 2011-11-16 04:26:24 +01:00
KHobbits
4be1797592 Sudo Command
This might never make it to release, needs tidying first at least.
2011-11-16 03:00:31 +00:00
KHobbits
c0d046841f Gamemode sign, standard sign permissions. 2011-11-16 00:21:55 +00:00
KHobbits
e4c3f7b115 New permission: essentials.repair.armor
If a player has this permission '/repair all' will also repair equipped armor.
2011-11-15 23:54:26 +00:00
KHobbits
f51b92c99e Updating banip to support offline players. 2011-11-15 23:01:15 +00:00
snowleo
16be86953f Merge branch 'refs/heads/master' into release 2011-11-15 22:52:42 +01:00
snowleo
eda827b244 Merge branch 'refs/heads/groupmanager' 2011-11-15 22:52:05 +01:00
snowleo
27ee7efde5 Cleanup of the /tree commands 2011-11-15 22:51:14 +01:00
snowleo
cccebdd62e null the Essentials object in static EcoApi, so it doesn't leak on /reload.
TODO: Make the eco api non-static
2011-11-15 22:51:14 +01:00
snowleo
d2f3bf94ae Prevent that players are teleported to offline players using /tpa and players that lost their tpahere permission 2011-11-15 22:51:14 +01:00
ElgarL
f4e22a17db Added comments to groups.yml for global groups 2011-11-15 18:17:18 +00:00
KHobbits
b619a54105 Prevent client crash on 'Free air' 2011-11-14 10:11:23 +00:00
snowleo
cd897890be Fix #1106 GeoIP announces players who are hidden, on join. 2011-11-11 03:27:09 +01:00
ElgarL
437d3b41b8 Remove bperms nodes which shouldn't be in globalGroups 2011-11-08 13:03:32 +00:00
KHobbits
1f527cdb9e Merge branch 'essmaster' into essrelease 2011-11-08 05:17:42 +00:00
KHobbits
90c9fe7e65 Merge remote branch 'remotes/ess/groupmanager' into essmaster 2011-11-08 05:16:15 +00:00
ElgarL
e9f942e802 Change to default users as examples 2011-11-07 22:15:58 +00:00
ElgarL
f40260acef Minor optimization for Group loading/clone 2011-11-07 15:33:15 +00:00
ElgarL
ab2e8f94f0 Fix for Users file being flagged as updated when it wasn't. 2011-11-07 01:59:12 +00:00
ElgarL
cf9ef46182 Fixed Group/User reloading
Fixed Group.clone(dataholder)
2011-11-05 15:41:40 +00:00
KHobbits
cc5062828a Extra translation keys. 2011-11-05 00:12:07 +00:00
KHobbits
165d499ef3 Adding op/god mode to whois. 2011-11-04 23:41:39 +00:00
ElgarL
1c7e0e5b9f Fix for file date conflict causing memory data to be wiped. 2011-11-04 23:13:42 +00:00
KHobbits
f0c49019dd Only pull/push data on valid player data. 2011-11-04 23:13:21 +00:00
ElgarL
e7234e621d Optimize notify test so it's not run as often 2011-11-04 18:20:09 +00:00
ElgarL
269947bdae Fix string compares 2011-11-04 18:12:37 +00:00
ElgarL
4ac5551c6b Notification of being moved to the default group only happens if it's a
demotion/promotion (not on join).
2011-11-04 17:51:29 +00:00
KHobbits
05242a7e8f Force displayname update on /list.
Tidy duplicate displayname call.
2011-11-04 16:51:00 +00:00
KHobbits
fd2ec22919 Clear all powertools - /powertool c: 2011-11-04 16:42:03 +00:00
KHobbits
7618754b89 Removing Reloadall Command
Tidy plugin.yml
2011-11-04 16:20:09 +00:00
KHobbits
d8f7c82e2d Start logging players last login address. 2011-11-04 15:28:51 +00:00
KHobbits
fd4c82b0eb Merge remote branch 'remotes/ess/groupmanager' into essmaster 2011-11-04 11:40:33 +00:00
KHobbits
70d1c7d7d7 Merge branch 'master' of github.com:essentials/Essentials into essmaster 2011-11-04 11:40:18 +00:00
KHobbits
894d956ba1 Extra command alias's. 2011-11-04 11:39:31 +00:00
ElgarL
52c2110a2b Fixed up javadoc comment errors 2011-11-04 09:36:11 +00:00
snowleo
8890284b3e Temporary debug mode using /essentials debug 2011-11-04 02:44:00 +01:00
KHobbits
02cc1b9fe9 Merge branch 'master' of github.com:essentials/Essentials into essmaster 2011-11-04 00:45:03 +00:00
KHobbits
6d6a29a99d Alias for 'Everyone' on warp signs. 2011-11-04 00:44:41 +00:00
snowleo
1d95f1c6d2 Fix bug in sign state loop 2011-11-04 01:24:01 +01:00
KHobbits
6e4bf932ec Adding game mode command for quick toggling (/gm /creative /gamemode) 2011-11-03 23:39:13 +00:00
KHobbits
a9a8216f4d Spanish translation 2011-11-03 23:11:04 +00:00
KHobbits
f98eb4a40d Adding gamemode to whois
Fixing exception in unban
2011-11-03 23:10:42 +00:00
KHobbits
51920420ce Allow proper escaping and use of & symbol in nicks (&& = &). 2011-11-03 22:19:33 +00:00
KHobbits
d171cce45d Trim long nicknames for use in tab list
Colour Nicknames
Refactor /nick Command
Fix nickother validity checks.
2011-11-03 22:13:50 +00:00
ElgarL
5560ab4294 Fix for an error in checkFullUserPermission caused by players
disconnecting mid perms update.
2011-11-03 20:42:34 +00:00
ElgarL
87ccd7bf46 Fix for an error in checkFullUserPermission caused by silly requests for
a null perm.
2011-11-03 20:29:30 +00:00
KHobbits
d264c26310 Allow the use of the warp command from the console 2011-11-03 16:17:39 +00:00
ElgarL
e873ebd67d GM will now check to see if it's data files have been changed at each
scheduled save.
	  If the files have been altered (on disc) it will reload, so long as
the in-memory data hasn't changed.
	  If the files on Disc have changed AND there have been changes to it's
in-memory data it will show a warning.
	  You then MUST issue a '/mansave force' to overwrite the disc files,
or a '/manload' to overwrite the memory data.
2011-11-02 22:33:29 +00:00
KHobbits
375636cd36 Code tidy, trigger build id update. 2011-11-01 16:54:36 +00:00
ElgarL
57f9bc06b0 Prevent setting 'minutes' in the config to zero causing an error. 2011-11-01 12:12:32 +00:00
ElgarL
97cae6c0cb Added a config.yml setting of 'validate_toggle' for those who prefer
'mantogglevalidate' to always be off.
2011-10-31 20:41:50 +00:00
ElgarL
1fd02b8a4a Expanded 'canUserBuild()' to include inheritance and subgroups. 2011-10-31 20:20:57 +00:00
ElgarL
9734274ed1 Fixed an error on 'manucheckv'. If the users doesn't have the variable
it fell through causing an exception.
Added checking of subgroups for Info nodes.
2011-10-31 20:07:21 +00:00
ElgarL
3f2916967d Added Info node support to Global Groups. 2011-10-31 17:23:24 +00:00
ElgarL
0731de53b4 Typo's and formatting 2011-10-31 09:14:58 +00:00
ElgarL
0f67d42c99 Global Groups yml and class 2011-10-31 08:34:57 +00:00
ElgarL
34ba8e89bc Added Global Groups
Defined in groupmanager/globalgroups.yml.
Create groups in the yml with a g: prefix, then inherit in the worlds
groups files.
2011-10-31 08:34:07 +00:00
ElgarL
b1c6173995 Fixed GM loading world data files twice at startup.
Improved error reporting for invalid groups.yml
2011-10-31 02:06:25 +00:00
okamosy
dd87dcdd3d Merge branch 'master' of github.com:essentials/Essentials into ess 2011-10-30 21:30:21 +00:00
okamosy
ffd7ba7d5f EssChat update part 1. 2011-10-30 21:29:56 +00:00
KHobbits
4ac03ef15a Debug messages: Execution time on reload/enable.
~ Probably needs removed later?
2011-10-30 05:38:17 +00:00
KHobbits
8daa0e7a9b Removing translations for portal actions. 2011-10-30 01:26:05 +00:00
KHobbits
982c3fef0d Merge branch 'master' of github.com:essentials/Essentials into essmaster 2011-10-30 01:37:40 +01:00
KHobbits
1757badf64 Cleanup last references to portal management in Essentials. 2011-10-30 01:37:18 +01:00
snowleo
5196237c46 XMPP: Don't send messages from spy users back to them. 2011-10-30 00:18:55 +02:00
KHobbits
094a747db3 More message, in /me 2011-10-29 10:36:30 +01:00
KHobbits
284f48f631 Updating actions to allow translations, and colour. 2011-10-29 09:38:32 +01:00
KHobbits
c2c889cab9 Tidy the XML a little and test a library property. 2011-10-29 04:31:56 +01:00
KHobbits
a2619a6e2b More teamcity fixes. 2011-10-29 02:50:57 +01:00
KHobbits
6e16e4724d Merge branch 'master' of github.com:essentials/Essentials into essmaster 2011-10-29 02:49:03 +01:00
KHobbits
9afcba4739 Will teamcity like this change? 2011-10-29 02:48:42 +01:00
KHobbits
c05e8085ed Lets try a adding a few dependencies. 2011-10-29 02:31:05 +01:00
KHobbits
6d86f40ca3 Updating build order. 2011-10-29 02:23:13 +01:00
KHobbits
cc9e7130e8 Adding the handler to the (painful) list of permissions systems we support. 2011-10-29 02:16:29 +01:00
KHobbits
809d18575d File formatting. 2011-10-29 02:09:11 +01:00
KHobbits
56b5a128f5 GM permission handler...
Look mum, no bridge.
2011-10-29 02:06:27 +01:00
KHobbits
8915c29b31 Merge remote branch 'remotes/ess/groupmanager' into essmaster 2011-10-28 22:07:43 +01:00
ElgarL
819c8f3aa9 Fixed GM to recognize Superperm child nodes.
If you add a node like Towny.admin GM will now correctly report on
all child nodes.
2011-10-28 18:43:29 +01:00
snowleo
6c479fceed Removing never used ErrorHandler and UpdateTimer from Essentials Core, they are now in EssentialsUpdate 2011-10-27 18:45:27 +02:00
KHobbits
04de66bc8a Sneaking in an option to disable prefix/suffix selectively.
(This will probably be removed during ess chat rewrite).
2011-10-27 06:17:18 +01:00
KHobbits
32cc1b66a4 Merge branch 'master' of github.com:essentials/Essentials into essmaster 2011-10-27 05:48:45 +01:00
KHobbits
65a588ea20 Altering PEX prefix/suffix. 2011-10-27 05:47:55 +01:00
snowleo
e0a29ed6a0 Don't block /essentialsupdate command after selfupdate 2011-10-27 01:18:59 +02:00
ElgarL
fadfc490a7 v 1.5:
- Fixed opOverrides and bukkit_perms_override to read the correct
entries.
	- Better commenting in config.yml
2011-10-27 00:04:54 +01:00
snowleo
fd7894caae After the selfupdate, check for the bukkit version. We will not automatically update bukkit, so the player is displayed a message, if he tries to update or install. 2011-10-27 00:41:12 +02:00
snowleo
8200fc2a98 Close file input on exception 2011-10-27 00:08:48 +02:00
snowleo
4b6fc99a62 Crop after 15KB and add a note, that it's cropped by the upload. 2011-10-27 00:06:15 +02:00
snowleo
60b9d4fc80 Some cleanup, refactoring of EssentialsHelp class 2011-10-27 00:03:16 +02:00
snowleo
7622c5c510 Abort update text 2011-10-26 22:27:43 +02:00
snowleo
76f8cb96ca Reload after installation 2011-10-26 22:23:30 +02:00
snowleo
f6e56ce0f4 Removing automatic updates
It's a bad idea to automatically overwrite files, without asking the player first.

This would be triggered by the selfupdate after the reload.
2011-10-26 22:17:27 +02:00
snowleo
72596decba The state machine now handles both manual updating and installation. 2011-10-26 22:14:24 +02:00
snowleo
e8b8d26bdb Basic automatic updates downloader 2011-10-26 20:25:09 +02:00
snowleo
d5cb9ab965 Cleanup 2011-10-26 20:24:46 +02:00
snowleo
9914e187e2 Cleanup 2011-10-26 20:23:28 +02:00
snowleo
36fa05f3a6 The work process is done async to the server loop. 2011-10-26 19:54:38 +02:00
snowleo
5641b1173c Abort the installation wizard if a runtime exception happens 2011-10-26 19:46:40 +02:00
snowleo
48f8eb9788 Cleanly resume the installation, if the player quits the game and reconnects
If the installation is already running in background after the wizard, it will not stop, if the player quits the game.
2011-10-26 19:39:01 +02:00
snowleo
7f825750f0 Advanced mode 2011-10-26 18:18:58 +02:00
snowleo
102570958e Allow states to be automatically added to the state map.
They have to have a Constructor that accept the StateMap as argument, otherwise a RuntimeException is thrown.
2011-10-26 17:42:39 +02:00
KHobbits
38b6d79f49 Few more states in EssentialsUpdate 2011-10-26 16:26:26 +01:00
KHobbits
d064c68875 Fixing invsee error. 2011-10-26 06:02:54 +01:00
KHobbits
2bb45022d6 Extra triggers for /sell inventory 2011-10-26 03:32:38 +01:00
KHobbits
dc2e23c85a Improved readability of /sell
~translations need checking~
2011-10-26 03:05:09 +01:00
KHobbits
5a54ef355f Cleanup debug message, code tidy. 2011-10-25 22:18:28 +01:00
KHobbits
9af6bdb1d6 Only prevent AFK heal, if freeze player is enabled. 2011-10-25 16:21:56 +01:00
KHobbits
dca88382ab Fix health event name. 2011-10-24 17:46:53 +01:00
KHobbits
d4a495fb52 Merge branch 'master' of github.com:essentials/Essentials into essmaster 2011-10-24 17:00:05 +01:00
KHobbits
a4556e8cf0 AFK users shouldn't heal from full hunger. 2011-10-24 15:37:44 +01:00
snowleo
c79bb03d5e Cleanup 2011-10-23 23:22:04 +02:00
snowleo
9c793208ad Minor changes because we use a map instead of a list 2011-10-23 23:20:18 +02:00
snowleo
b07b3fc373 Another state added 2011-10-23 23:13:30 +02:00
snowleo
ff92e0bf6f Less chance for C&P error 2011-10-23 23:11:47 +02:00
snowleo
8854b3f565 Moving the link between the states from the constructor of the state machine to the states classes. 2011-10-23 23:08:42 +02:00
KHobbits
6974abea28 Automatically unAFK on interaction. 2011-10-23 21:51:38 +01:00
snowleo
9433acf689 Statemachine for installation wizard (WIP) 2011-10-23 21:45:01 +02:00
snowleo
11e8240c5c Merge branch 'refs/heads/master' into release
Conflicts:
	EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
2011-10-22 11:55:01 +02:00
snowleo
aa922c5b67 Fix Test 2011-10-21 01:36:13 +02:00
snowleo
1a020698d1 Use of lomboks delegate on player wrapping 2011-10-21 01:23:35 +02:00
snowleo
022b8caa18 CB#1337
B#953
2011-10-21 00:12:03 +02:00
snowleo
14c406f7fb Merge branch 'refs/heads/groupmanager' 2011-10-21 00:04:40 +02:00
snowleo
4d877741d4 Cleanup 2011-10-19 18:17:19 +02:00
snowleo
1cbd10a38e Moved all config options to new Settings classes 2011-10-19 17:52:07 +02:00
snowleo
358456c8ea Cleanup 2011-10-19 14:47:32 +02:00
snowleo
1c7dcfc63d Merge pull request #30 from tustin2121/master
Porting Some Player-Only Commands to the Console
2011-10-19 05:38:56 -07:00
Tim P
82b225a261 Minor fixes. Basic testing shows all works. 2011-10-18 23:08:06 -04:00
Tim P
6ab30159fa Made a concerted effort to change the messages.properties in the various languages
to the new format for weather.
- Incidently, there was an error in the _da translation - the message for the key
  weatherSun did not have a "in your world" clause. This is added with the "your
  world" clause changed, like it is everywhere.
2011-10-18 22:01:23 -04:00
Tim P
a86a1990cd Made a couple commands available for the console (ones that make sense to be able to
access from the command line).
2011-10-18 12:12:41 -04:00
KHobbits
625c7d0302 Save the ban reason, not the command name. 2011-10-18 05:35:21 +01:00
KHobbits
27a0552c2a Removing debugging. 2011-10-18 02:21:26 +01:00
KHobbits
7c5674c294 More debugging 2011-10-18 02:11:22 +01:00
KHobbits
f5c442aa5c Adding a debug note. 2011-10-18 01:55:35 +01:00
ElgarL
569af0bcf0 Added data.save.hours setting to config. This allow control over how
long backups are retained.
2011-10-16 08:58:45 +01:00
snowleo
238748f360 Updated german translation by HDS 2011-10-16 09:39:06 +02:00
ElgarL
e049364557 Simplified config.yml while retaining backwards compatibility. 2011-10-16 03:35:55 +01:00
ElgarL
121966436e Fixed reading world mirrors from the config. 2011-10-16 01:23:25 +01:00
snowleo
d3afd7a670 Revert bed fix, because it's fixed in Bukkit now. Thanks to feildmaster 2011-10-15 10:49:51 +02:00
snowleo
9d121af860 Test if objects can be read from yaml in the original sort 2011-10-15 01:15:01 +02:00
snowleo
200ef0c8e2 Correctly fix the N/S direction 2011-10-15 01:15:01 +02:00
KHobbits
6f77a2ba07 Moving apikey outside main file.
Keep the actual key in local repo ;)
2011-10-13 20:45:57 +01:00
KHobbits
db97ce99ef Merge branch 'master' of github.com:essentials/Essentials into essmaster 2011-10-13 17:20:03 +01:00
KHobbits
e7b790861f Made a silly little upload script, for uploading things to dev bukkit. 2011-10-13 17:19:25 +01:00
snowleo
d3aaf3c14a New storage system for settings (WIP) 2011-10-13 01:40:11 +02:00
KHobbits
d732821e06 Merge remote branch 'remotes/ess/groupmanager' into essmaster 2011-10-12 17:10:31 +01:00
snowleo
e628c36172 Cleanup 2011-10-12 12:20:02 +02:00
snowleo
9312871250 Replacing martyr with Pircbot 1.5 2011-10-12 05:00:36 +02:00
snowleo
860d446d28 EssentialsUpdate WIP 2011-10-12 03:14:26 +02:00
ElgarL
03adb56d25 Added a config setting - bukkit_perms_override: false
Enable to allow default Bukkit based permissions to remain enabled,
unless directly negated within GroupManager.
2011-10-12 00:16:53 +01:00
ElgarL
1543bfd550 v 1.4:
- Updated for Bukkits new YamlConfiguration.
	- Cleared remaining Cast errors cause by object cloning.
2011-10-11 22:05:21 +01:00
717 changed files with 70184 additions and 60901 deletions

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/bukkit-0.0.1-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="lib/craftbukkit-0.0.1-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="lib/Permissions3.jar"/>
</classpath>

85
.gitignore vendored
View File

@@ -1,35 +1,50 @@
.DS_Store
/BuildAll/nbproject/private/
/EssentialsProtect/nbproject/private/
/EssentialsChat/nbproject/private/
/EssentialsGroupBridge/nbproject/private/
/EssentialsGeoIP/nbproject/private/
/EssentialsSpawn/nbproject/private/
/EssentialsXMPP/nbproject/private/
/EssentialsGroupManager/nbproject/private/
/BuildAll/build/
/EssentialsGroupBridge/dist/
/EssentialsGroupBridge/build/
/EssentialsGeoIP/dist/
/EssentialsGeoIP/build/
/EssentialsGroupManager/build/
/EssentialsGroupManager/dist/
/BuildAll/dist/
/EssentialsChat/build/
/EssentialsChat/dist/
/EssentialsSpawn/build/
/EssentialsSpawn/dist/
/EssentialsXMPP/dist/
/EssentialsXMPP/build/
/EssentialsProtect/dist/
/EssentialsProtect/build/
/EssentialsPermissionsCommands/nbproject/private/
/EssentialsPermissionsCommands/build/
/EssentialsPermissionsCommands/dist/
/Essentials/nbproject/private/
/Essentials/dist/
/Essentials/build/
/YamlAnnotations/
/EssentialsUpdate/nbproject/private/
/EssentialsRelease/
/EssentialsUpdate/
.DS_Store
/BuildAll/nbproject/private/
/EssentialsProtect/nbproject/private/
/EssentialsChat/nbproject/private/
/EssentialsGroupBridge/nbproject/private/
/EssentialsGeoIP/nbproject/private/
/EssentialsSpawn/nbproject/private/
/EssentialsGroupManager/nbproject/private/
/BuildAll/build/
/EssentialsGroupBridge/dist/
/EssentialsGroupBridge/build/
/EssentialsGeoIP/dist/
/EssentialsGeoIP/build/
/EssentialsGroupManager/build/
/EssentialsGroupManager/dist/
/BuildAll/dist/
/EssentialsChat/build/
/EssentialsChat/dist/
/EssentialsSpawn/build/
/EssentialsSpawn/dist/
/EssentialsProtect/dist/
/EssentialsProtect/build/
/EssentialsPermissionsCommands/nbproject/private/
/EssentialsPermissionsCommands/build/
/EssentialsPermissionsCommands/dist/
/Essentials/nbproject/private/
/Essentials/dist/
/Essentials/build/
/YamlAnnotations/
/EssentialsUpdate/nbproject/private/
/EssentialsRelease/
/EssentialsUpdate/dist/
/EssentialsUpdate/build/
/WebPush/apikey.php
/WebPush/nbproject/private
/EssentialsGroupManager/bin
/EssentialsGroupManager/.externalToolBuilders
/EssentialsAntiBuild/nbproject/private/
/EssentialsAntiBuild/dist/
/EssentialsAntiBuild/build/
/jars
/out
.idea/
*.iml
target/
dependency-reduced-pom.xml
/Essentials/config.yml
/Essentials/userdata/testplayer1.yml
/Essentials/usermap.csv
/Essentials/userdata

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Essentials</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

20
.travis.yml Normal file
View File

@@ -0,0 +1,20 @@
language: java
jdk:
- oraclejdk7
- openjdk7
- openjdk6
script: mvn compile test
install: true
notifications:
irc:
channels:
- "irc.esper.net#lain"
on_success: change
on_failure: always
email:
recipients:
- "khobbits@ess3.net"
on_success: change
on_failure: always
slack:
secure: Au+u0l79voEjTbkxpak2RMIBmVQqp0lJLOFje2wyYYlBOjbbuL71hduuvo0aayQ95IJZkt2Sz33m0ZxdVRhZaMaJ5/miVkqbRnWR6hJ/EeAnFFpTeEjQd8nSrxucJlfd0iXgDoVe76d2MzakLfGReluHLP3TgiAapZF+rH4NCIw=

View File

@@ -1,74 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="BuildAll" default="default" basedir=".">
<description>Builds, tests, and runs the project BuildAll.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar-with-manifest: JAR building (if you are using a manifest)
-do-jar-without-manifest: JAR building (if you are not using a manifest)
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="BuildAll-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
</project>

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +0,0 @@
build.xml.data.CRC32=51b33957
build.xml.script.CRC32=7a797370
build.xml.stylesheet.CRC32=28e38971@1.44.1.45
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=51b33957
nbproject/build-impl.xml.script.CRC32=66b89647
nbproject/build-impl.xml.stylesheet.CRC32=0ae3a408@1.44.1.45

View File

@@ -1,131 +0,0 @@
annotation.processing.enabled=true
annotation.processing.enabled.in.editor=false
annotation.processing.run.all.processors=true
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
application.title=BuildAll
application.vendor=
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs=true
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width=2
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.spaces-per-tab=2
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.tab-size=2
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=120
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-line-wrap=none
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=project
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineAnnotationArgs=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineArrayInit=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineAssignment=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineBinaryOp=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineCallArgs=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineDisjunctiveCatchTypes=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineFor=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineImplements=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineMethodParams=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineParenthesized=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineTernaryOp=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineThrows=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineTryResources=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.blankLinesAfterClassHeader=0
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.blankLinesBeforeClass=2
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.expand-tabs=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.indent-shift-width=4
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.indentCasesFromSwitch=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.methodDeclBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.otherBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeCatchOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeElseOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeFinallyOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeWhileOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceAfterTypeCast=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaces-per-tab=4
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.tab-size=4
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
# Uncomment to specify the preferred debugger connection transport:
#debug.transport=dt_socket
debug.classpath=\
${run.classpath}
debug.test.classpath=\
${run.test.classpath}
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/BuildAll.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
includes=**
jar.compress=true
javac.classpath=\
${reference.Essentials.jar}:\
${reference.EssentialsChat.jar}:\
${reference.EssentialsProtect.jar}:\
${reference.EssentialsSpawn.jar}:\
${reference.EssentialsGeoIP.jar}:\
${reference.EssentialsGroupBridge.jar}:\
${reference.EssentialsXMPP.jar}:\
${reference.EssentialsGroupManager.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
javac.processorpath=\
${javac.classpath}
javac.source=1.6
javac.target=1.6
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
${libs.junit.classpath}:\
${libs.junit_4.classpath}
javac.test.processorpath=\
${javac.test.classpath}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
javadoc.noindex=false
javadoc.nonavbar=false
javadoc.notree=false
javadoc.private=false
javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=false
platform.active=default_platform
project.Essentials=../Essentials
project.EssentialsChat=../EssentialsChat
project.EssentialsGeoIP=../EssentialsGeoIP
project.EssentialsGroupBridge=../EssentialsGroupBridge
project.EssentialsGroupManager=../EssentialsGroupManager
project.EssentialsProtect=../EssentialsProtect
project.EssentialsSpawn=../EssentialsSpawn
project.EssentialsXMPP=../EssentialsXMPP
reference.Essentials.jar=${project.Essentials}/dist/Essentials.jar
reference.EssentialsChat.jar=${project.EssentialsChat}/dist/EssentialsChat.jar
reference.EssentialsGeoIP.jar=${project.EssentialsGeoIP}/dist/EssentialsGeoIP.jar
reference.EssentialsGroupBridge.jar=${project.EssentialsGroupBridge}/dist/EssentialsGroupBridge.jar
reference.EssentialsGroupManager.jar=${project.EssentialsGroupManager}/dist/EssentialsGroupManager.jar
reference.EssentialsProtect.jar=${project.EssentialsProtect}/dist/EssentialsProtect.jar
reference.EssentialsSpawn.jar=${project.EssentialsSpawn}/dist/EssentialsSpawn.jar
reference.EssentialsXMPP.jar=${project.EssentialsXMPP}/dist/EssentialsXMPP.jar
run.classpath=\
${javac.classpath}:\
${build.classes.dir}
# Space-separated list of JVM arguments used when running the project
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
# or test-sys-prop.name=value to set system properties for unit tests):
run.jvmargs=
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=src
test.src.dir=test

View File

@@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>BuildAll</name>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots>
<root id="test.src.dir"/>
</test-roots>
</data>
<libraries xmlns="http://www.netbeans.org/ns/ant-project-libraries/1">
<definitions>..\lib\nblibraries.properties</definitions>
</libraries>
<references xmlns="http://www.netbeans.org/ns/ant-project-references/1">
<reference>
<foreign-project>Essentials</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
<reference>
<foreign-project>EssentialsChat</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
<reference>
<foreign-project>EssentialsGeoIP</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
<reference>
<foreign-project>EssentialsGroupBridge</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
<reference>
<foreign-project>EssentialsGroupManager</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
<reference>
<foreign-project>EssentialsProtect</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
<reference>
<foreign-project>EssentialsSpawn</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
<reference>
<foreign-project>EssentialsXMPP</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
</references>
</configuration>
</project>

View File

@@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="Essentials" default="default" basedir=".">
<description>Builds, tests, and runs the project Essentials.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar-with-manifest: JAR building (if you are using a manifest)
-do-jar-without-manifest: JAR building (if you are not using a manifest)
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="Essentials-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
<!--target name="-post-jar">
<jar jarfile="${dist.dir}/Essentials.jar">
<zipfileset src="${dist.jar}" excludes="META-INF/*" />
<zipfileset src="${dist.dir}/lib/Register.jar" excludes="META-INF/*" />
<manifest>
<attribute name="Classpath" value="Essentials.jar"/>
</manifest>
</jar>
</target-->
</project>

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +0,0 @@
build.xml.data.CRC32=7d758acf
build.xml.script.CRC32=3233ee78
build.xml.stylesheet.CRC32=28e38971@1.38.2.45
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=4b596d89
nbproject/build-impl.xml.script.CRC32=dbc81ee1
nbproject/build-impl.xml.stylesheet.CRC32=0ae3a408@1.44.1.45
nbproject/profiler-build-impl.xml.data.CRC32=ab78ce15
nbproject/profiler-build-impl.xml.script.CRC32=abda56ed
nbproject/profiler-build-impl.xml.stylesheet.CRC32=f10cf54c@1.11.1

View File

@@ -1,2 +0,0 @@
DoNotUseThreads
SignatureDeclareThrowsException

View File

@@ -1,138 +0,0 @@
annotation.processing.enabled=true
annotation.processing.enabled.in.editor=false
annotation.processing.run.all.processors=true
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
application.title=Essentials
application.vendor=
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs=true
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width=2
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.spaces-per-tab=2
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.tab-size=2
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=120
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-line-wrap=none
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=project
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineAnnotationArgs=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineArrayInit=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineAssignment=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineBinaryOp=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineCallArgs=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineDisjunctiveCatchTypes=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineFor=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineImplements=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineMethodParams=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineParenthesized=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineTernaryOp=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineThrows=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.alignMultilineTryResources=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.blankLinesAfterClassHeader=0
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.blankLinesBeforeClass=2
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.expand-tabs=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.indent-shift-width=4
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.indentCasesFromSwitch=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.methodDeclBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.otherBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeCatchOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeElseOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeFinallyOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeWhileOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceAfterTypeCast=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaces-per-tab=4
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.tab-size=4
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
# Uncomment to specify the preferred debugger connection transport:
#debug.transport=dt_socket
debug.classpath=\
${run.classpath}
debug.test.classpath=\
${run.test.classpath}
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/Essentials.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.BOSEconomy7.jar=../lib/BOSEconomy7.jar
file.reference.bPermissions.jar=../lib/bPermissions.jar
file.reference.craftbukkit-0.0.1-SNAPSHOT.jar=..\\lib\\craftbukkit-0.0.1-SNAPSHOT.jar
file.reference.iCo4.jar=../lib/iCo4.jar
file.reference.iCo5.jar=../lib/iCo5.jar
file.reference.iCo6.jar=../lib/iCo6.jar
file.reference.junit-4.5.jar=..\\lib\\junit_4\\junit-4.5.jar
file.reference.MultiCurrency.jar=../lib/MultiCurrency.jar
file.reference.Permissions3.jar=../lib/Permissions3.jar
file.reference.PermissionsBukkit-1.2.jar=../lib/PermissionsBukkit-1.2.jar
file.reference.PermissionsEx.jar=../lib/PermissionsEx.jar
includes=**
jar.archive.disabled=${jnlp.enabled}
jar.compress=true
jar.index=${jnlp.enabled}
javac.classpath=\
${file.reference.Permissions3.jar}:\
${file.reference.craftbukkit-0.0.1-SNAPSHOT.jar}:\
${file.reference.iCo4.jar}:\
${file.reference.iCo5.jar}:\
${file.reference.iCo6.jar}:\
${file.reference.MultiCurrency.jar}:\
${file.reference.BOSEconomy7.jar}:\
${file.reference.PermissionsEx.jar}:\
${file.reference.bPermissions.jar}:\
${file.reference.PermissionsBukkit-1.2.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
javac.processorpath=\
${javac.classpath}
javac.source=1.6
javac.target=1.6
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
${file.reference.junit-4.5.jar}
javac.test.processorpath=\
${javac.test.classpath}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
javadoc.noindex=false
javadoc.nonavbar=false
javadoc.notree=false
javadoc.private=false
javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
jnlp.codebase.type=no.codebase
jnlp.descriptor=application
jnlp.enabled=false
jnlp.mixed.code=default
jnlp.offline-allowed=false
jnlp.signed=false
jnlp.signing=
jnlp.signing.alias=
jnlp.signing.keystore=
meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=true
platform.active=default_platform
run.classpath=\
${javac.classpath}:\
${build.classes.dir}
# Space-separated list of JVM arguments used when running the project
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
# or test-sys-prop.name=value to set system properties for unit tests):
run.jvmargs=-Djline.terminal=jline.UnsupportedTerminal
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=src
test.src.dir=test

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>Essentials</name>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots>
<root id="test.src.dir"/>
</test-roots>
</data>
<libraries xmlns="http://www.netbeans.org/ns/ant-project-libraries/1">
<definitions>../lib/nblibraries.properties</definitions>
</libraries>
<references xmlns="http://www.netbeans.org/ns/ant-project-references/1"/>
</configuration>
</project>

144
Essentials/pom.xml Normal file
View File

@@ -0,0 +1,144 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.mcess</groupId>
<artifactId>EssentialsParent</artifactId>
<version>2.x-SNAPSHOT</version>
</parent>
<artifactId>Essentials</artifactId>
<url>http://ess3.net/</url>
<organization>
<name>Essentials Team</name>
<url>http://ess3.net/</url>
</organization>
<licenses>
<license>
<name>GPLv3</name>
<url>http://www.gnu.org/copyleft/gpl.html</url>
</license>
</licenses>
<scm>
<connection>scm:git:https://github.com/essentials/Essentials.git</connection>
<developerConnection>scm:git:https://github.com/essentials/Essentials.git</developerConnection>
<url>https://github.com/essentials/Essentials</url>
</scm>
<issueManagement>
<system>JIRA</system>
<url>http://essentials3.atlassian.net</url>
</issueManagement>
<ciManagement>
<system>TeamCity</system>
<url>http://ci.ess3.net/</url>
</ciManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.7.2-R0.3-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/bukkit.jar</systemPath>
</dependency>
<dependency>
<groupId>BOSEconomy</groupId>
<artifactId>BOSEconomy</artifactId>
<version>v0.7.8.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/BOSEconomy.jar</systemPath>
</dependency>
<dependency>
<groupId>de.bananaco</groupId>
<artifactId>bPermissions</artifactId>
<version>v2.12-DEV</version>
</dependency>
<dependency>
<groupId>iConomy</groupId>
<artifactId>iConomy5</artifactId>
<version>5</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/iCo5.jar</systemPath>
</dependency>
<dependency>
<groupId>iConomy</groupId>
<artifactId>iConomy6</artifactId>
<version>6</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/iCo6.jar</systemPath>
</dependency>
<dependency>
<groupId>org.mcess</groupId>
<artifactId>GroupManager</artifactId>
<version>${project.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/../EssentialsGroupManager/dist/EssentialsGroupManager.jar</systemPath>
</dependency>
<dependency>
<groupId>MultiCurrency</groupId>
<artifactId>MultiCurrency</artifactId>
<version>2.2</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/MultiCurrency.jar</systemPath>
</dependency>
<dependency>
<groupId>com.platymuus</groupId>
<artifactId>bukkit-permissions</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/PermissionsBukkit.jar</systemPath>
</dependency>
<dependency>
<groupId>ru.tehkode</groupId>
<artifactId>PermissionsEx</artifactId>
<version>1.20.4</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/PermissionsEx.jar</systemPath>
</dependency>
<dependency>
<groupId>Privileges</groupId>
<artifactId>Privileges</artifactId>
<version>1.8.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/Privileges.jar</systemPath>
</dependency>
<dependency>
<groupId>SimplyPerms</groupId>
<artifactId>SimplyPerms</artifactId>
<version>1.7.6</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/SimplyPerms.jar</systemPath>
</dependency>
<dependency>
<groupId>net.milkbowl.vault</groupId>
<artifactId>Vault</artifactId>
<version>1.2.32</version>
</dependency>
<dependency>
<groupId>zPermissions</groupId>
<artifactId>zPermissions</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/../lib/zPermissions.jar</systemPath>
</dependency>
</dependencies>
</project>

18
Essentials/src/book.txt Normal file
View File

@@ -0,0 +1,18 @@
This is the book file.
This file format works similar to the info.txt, motd.txt and rules.txt
Place content in here that you would like to be used by books ingame.
You can use this content by using the book:<section> meta option in kits or item spawning.
#Colors
Minecraft colors:
&0 &&0 &1 &&1 &2 &&2 &3 &&3
&4 &&4 &5 &&5 &6 &&6 &7 &&7
&8 &&8 &9 &&9 &a &&a &b &&b
&c &&c &d &&d &e &&e &f &&f
&0
&&k &kMagic&r &&l &lBold
&&m &mStrike&r &&n &nUline
&&o &oItalic&r &&r &rReset

View File

@@ -1,131 +0,0 @@
package com.earth2me.essentials;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.CraftServer;
public class Backup implements Runnable
{
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private transient final Server server;
private transient final IEssentials ess;
private transient boolean running = false;
private transient int taskId = -1;
private transient boolean active = false;
public Backup(final IEssentials ess)
{
this.ess = ess;
server = ess.getServer();
if (server.getOnlinePlayers().length > 0)
{
startTask();
}
}
void onPlayerJoin()
{
startTask();
}
private void startTask()
{
if (!running)
{
final long interval = ess.getSettings().getBackupInterval() * 1200; // minutes -> ticks
if (interval < 1200)
{
return;
}
taskId = ess.scheduleSyncRepeatingTask(this, interval, interval);
running = true;
}
}
public void run()
{
if (active)
{
return;
}
active = true;
final String command = ess.getSettings().getBackupCommand();
if (command == null || "".equals(command))
{
return;
}
LOGGER.log(Level.INFO, Util.i18n("backupStarted"));
final CommandSender cs = server.getConsoleSender();
server.dispatchCommand(cs, "save-all");
server.dispatchCommand(cs, "save-off");
ess.scheduleAsyncDelayedTask(
new Runnable()
{
public void run()
{
try
{
final ProcessBuilder childBuilder = new ProcessBuilder(command);
childBuilder.redirectErrorStream(true);
childBuilder.directory(ess.getDataFolder().getParentFile().getParentFile());
final Process child = childBuilder.start();
final BufferedReader reader = new BufferedReader(new InputStreamReader(child.getInputStream()));
try
{
child.waitFor();
String line;
do
{
line = reader.readLine();
if (line != null)
{
LOGGER.log(Level.INFO, line);
}
}
while (line != null);
}
finally
{
reader.close();
}
}
catch (InterruptedException ex)
{
LOGGER.log(Level.SEVERE, null, ex);
}
catch (IOException ex)
{
LOGGER.log(Level.SEVERE, null, ex);
}
finally
{
ess.scheduleSyncDelayedTask(
new Runnable()
{
public void run()
{
server.dispatchCommand(cs, "save-on");
if (server.getOnlinePlayers().length == 0)
{
running = false;
if (taskId != -1)
{
server.getScheduler().cancelTask(taskId);
}
}
active = false;
LOGGER.log(Level.INFO, Util.i18n("backupFinished"));
}
});
}
}
});
}
}

View File

@@ -1,684 +0,0 @@
/*
* Essentials - a bukkit plugin
* Copyright (C) 2011 Essentials Team
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.earth2me.essentials;
import com.earth2me.essentials.api.Economy;
import com.earth2me.essentials.commands.EssentialsCommand;
import java.io.*;
import java.util.*;
import java.util.logging.*;
import org.bukkit.*;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.commands.IEssentialsCommand;
import com.earth2me.essentials.commands.NoChargeException;
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
import com.earth2me.essentials.perm.PermissionsHandler;
import com.earth2me.essentials.register.payment.Methods;
import com.earth2me.essentials.signs.SignBlockListener;
import com.earth2me.essentials.signs.SignEntityListener;
import com.earth2me.essentials.signs.SignPlayerListener;
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.bukkit.command.PluginCommand;
import org.bukkit.entity.Player;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event.Type;
import org.bukkit.plugin.*;
import org.bukkit.plugin.java.*;
import org.bukkit.scheduler.BukkitScheduler;
public class Essentials extends JavaPlugin implements IEssentials
{
public static final int BUKKIT_VERSION = 1060;
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private transient ISettings settings;
private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this);
private transient Spawn spawn;
private transient Jail jail;
private transient Warps warps;
private transient Worth worth;
private transient List<IConf> confList;
private transient Backup backup;
private transient ItemDb itemDb;
private transient EssentialsUpdateTimer updateTimer;
private transient final Methods paymentMethod = new Methods();
private transient final static boolean enableErrorLogging = false;
private transient final EssentialsErrorHandler errorHandler = new EssentialsErrorHandler();
private transient PermissionsHandler permissionsHandler;
private transient UserMap userMap;
@Override
public ISettings getSettings()
{
return settings;
}
public void setupForTesting(final Server server) throws IOException, InvalidDescriptionException
{
final File dataFolder = File.createTempFile("essentialstest", "");
if (!dataFolder.delete())
{
throw new IOException();
}
if (!dataFolder.mkdir())
{
throw new IOException();
}
LOGGER.log(Level.INFO, Util.i18n("usingTempFolderForTesting"));
LOGGER.log(Level.INFO, dataFolder.toString());
this.initialize(null, server, new PluginDescriptionFile(new FileReader(new File("src" + File.separator + "plugin.yml"))), dataFolder, null, null);
settings = new Settings(this);
userMap = new UserMap(this);
permissionsHandler = new PermissionsHandler(this, false);
Economy.setEss(this);
}
@Override
public void onEnable()
{
final String[] javaversion = System.getProperty("java.version").split("\\.", 3);
if (javaversion == null || javaversion.length < 2 || Integer.parseInt(javaversion[1]) < 6)
{
LOGGER.log(Level.SEVERE, "Java version not supported! Please install Java 1.6. You have " + System.getProperty("java.version"));
}
if (enableErrorLogging)
{
LOGGER.addHandler(errorHandler);
}
final EssentialsUpgrade upgrade = new EssentialsUpgrade(this);
upgrade.beforeSettings();
confList = new ArrayList<IConf>();
settings = new Settings(this);
confList.add(settings);
upgrade.afterSettings();
Util.updateLocale(settings.getLocale(), this);
userMap = new UserMap(this);
confList.add(userMap);
spawn = new Spawn(getServer(), this.getDataFolder());
confList.add(spawn);
warps = new Warps(getServer(), this.getDataFolder());
confList.add(warps);
worth = new Worth(this.getDataFolder());
confList.add(worth);
itemDb = new ItemDb(this);
confList.add(itemDb);
reload();
backup = new Backup(this);
final PluginManager pm = getServer().getPluginManager();
for (Plugin plugin : pm.getPlugins())
{
if (plugin.getDescription().getName().startsWith("Essentials")
&& !plugin.getDescription().getVersion().equals(this.getDescription().getVersion()))
{
LOGGER.log(Level.WARNING, Util.format("versionMismatch", plugin.getDescription().getName()));
}
}
final Matcher versionMatch = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-[0-9]+-[0-9a-z]+-b([0-9]+)jnks.*").matcher(getServer().getVersion());
if (versionMatch.matches())
{
final int versionNumber = Integer.parseInt(versionMatch.group(4));
if (versionNumber < BUKKIT_VERSION)
{
LOGGER.log(Level.WARNING, Util.i18n("notRecommendedBukkit"));
}
}
else
{
LOGGER.log(Level.INFO, Util.i18n("bukkitFormatChanged"));
}
permissionsHandler = new PermissionsHandler(this, settings.useBukkitPermissions());
final EssentialsPluginListener serverListener = new EssentialsPluginListener(this);
pm.registerEvent(Type.PLUGIN_ENABLE, serverListener, Priority.Low, this);
pm.registerEvent(Type.PLUGIN_DISABLE, serverListener, Priority.Low, this);
confList.add(serverListener);
final EssentialsPlayerListener playerListener = new EssentialsPlayerListener(this);
pm.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Monitor, this);
pm.registerEvent(Type.PLAYER_QUIT, playerListener, Priority.Monitor, this);
pm.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Lowest, this);
pm.registerEvent(Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Lowest, this);
pm.registerEvent(Type.PLAYER_MOVE, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_LOGIN, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_TELEPORT, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_INTERACT, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_EGG_THROW, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_BUCKET_EMPTY, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_ANIMATION, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_BED_ENTER, playerListener, Priority.Lowest, this);
final EssentialsBlockListener blockListener = new EssentialsBlockListener(this);
pm.registerEvent(Type.BLOCK_PLACE, blockListener, Priority.Lowest, this);
final SignBlockListener signBlockListener = new SignBlockListener(this);
pm.registerEvent(Type.SIGN_CHANGE, signBlockListener, Priority.Highest, this);
pm.registerEvent(Type.BLOCK_PLACE, signBlockListener, Priority.Low, this);
pm.registerEvent(Type.BLOCK_BREAK, signBlockListener, Priority.Highest, this);
pm.registerEvent(Type.BLOCK_IGNITE, signBlockListener, Priority.Low, this);
pm.registerEvent(Type.BLOCK_BURN, signBlockListener, Priority.Low, this);
pm.registerEvent(Type.BLOCK_PISTON_EXTEND, signBlockListener, Priority.Low, this);
pm.registerEvent(Type.BLOCK_PISTON_RETRACT, signBlockListener, Priority.Low, this);
final SignPlayerListener signPlayerListener = new SignPlayerListener(this);
pm.registerEvent(Type.PLAYER_INTERACT, signPlayerListener, Priority.Low, this);
final SignEntityListener signEntityListener = new SignEntityListener(this);
pm.registerEvent(Type.ENTITY_EXPLODE, signEntityListener, Priority.Low, this);
pm.registerEvent(Type.ENDERMAN_PICKUP, signEntityListener, Priority.Low, this);
final EssentialsEntityListener entityListener = new EssentialsEntityListener(this);
pm.registerEvent(Type.ENTITY_DAMAGE, entityListener, Priority.Lowest, this);
pm.registerEvent(Type.ENTITY_COMBUST, entityListener, Priority.Lowest, this);
pm.registerEvent(Type.ENTITY_DEATH, entityListener, Priority.Lowest, this);
pm.registerEvent(Type.FOOD_LEVEL_CHANGE, entityListener, Priority.Lowest, this);
jail = new Jail(this);
final JailPlayerListener jailPlayerListener = new JailPlayerListener(this);
confList.add(jail);
pm.registerEvent(Type.BLOCK_BREAK, jail, Priority.Low, this);
pm.registerEvent(Type.BLOCK_DAMAGE, jail, Priority.Low, this);
pm.registerEvent(Type.BLOCK_PLACE, jail, Priority.Low, this);
pm.registerEvent(Type.PLAYER_INTERACT, jailPlayerListener, Priority.Low, this);
pm.registerEvent(Type.PLAYER_RESPAWN, jailPlayerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_TELEPORT, jailPlayerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_JOIN, jailPlayerListener, Priority.High, this);
pm.registerEvent(Type.ENTITY_EXPLODE, tntListener, Priority.High, this);
final EssentialsTimer timer = new EssentialsTimer(this);
getScheduler().scheduleSyncRepeatingTask(this, timer, 1, 100);
Economy.setEss(this);
if (getSettings().isUpdateEnabled())
{
updateTimer = new EssentialsUpdateTimer(this);
getScheduler().scheduleAsyncRepeatingTask(this, updateTimer, 20 * 60 * 10, 20 * 3600 * 6);
}
LOGGER.info(Util.format("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), Util.joinList(this.getDescription().getAuthors())));
}
@Override
public void onDisable()
{
Trade.closeLog();
LOGGER.removeHandler(errorHandler);
}
@Override
public void reload()
{
Trade.closeLog();
for (IConf iConf : confList)
{
iConf.reloadConfig();
}
Util.updateLocale(settings.getLocale(), this);
// for motd
getConfiguration().load();
}
@Override
public String[] getMotd(final CommandSender sender, final String def)
{
return getLines(sender, "motd", def);
}
@Override
public String[] getLines(final CommandSender sender, final String node, final String def)
{
List<String> lines = (List<String>)getConfiguration().getProperty(node);
if (lines == null)
{
return new String[0];
}
String[] retval = new String[lines.size()];
if (lines.isEmpty() || lines.get(0) == null)
{
try
{
lines = new ArrayList<String>();
// "[]" in YaML indicates empty array, so respect that
if (!getConfiguration().getString(node, def).equals("[]"))
{
lines.add(getConfiguration().getString(node, def));
retval = new String[lines.size()];
}
}
catch (Throwable ex2)
{
LOGGER.log(Level.WARNING, Util.format("corruptNodeInConfig", node));
return new String[0];
}
}
// if still empty, call it a day
if (lines == null || lines.isEmpty() || lines.get(0) == null)
{
return new String[0];
}
for (int i = 0; i < lines.size(); i++)
{
String m = lines.get(i);
if (m == null)
{
continue;
}
m = m.replace('&', '§').replace("§§", "&");
if (sender instanceof User || sender instanceof Player)
{
User user = getUser(sender);
m = m.replace("{PLAYER}", user.getDisplayName());
m = m.replace("{IP}", user.getAddress().toString());
m = m.replace("{BALANCE}", Double.toString(user.getMoney()));
m = m.replace("{MAILS}", Integer.toString(user.getMails().size()));
m = m.replace("{WORLD}", user.getLocation().getWorld().getName());
}
int playerHidden = 0;
for (Player p : getServer().getOnlinePlayers())
{
if (getUser(p).isHidden())
{
playerHidden++;
}
}
m = m.replace("{ONLINE}", Integer.toString(getServer().getOnlinePlayers().length - playerHidden));
m = m.replace("{UNIQUE}", Integer.toString(userMap.getUniqueUsers()));
if (m.matches(".*\\{PLAYERLIST\\}.*"))
{
StringBuilder online = new StringBuilder();
for (Player p : getServer().getOnlinePlayers())
{
if (getUser(p).isHidden())
{
continue;
}
if (online.length() > 0)
{
online.append(", ");
}
online.append(p.getDisplayName());
}
m = m.replace("{PLAYERLIST}", online.toString());
}
if (sender instanceof Player)
{
try
{
Class User = getClassLoader().loadClass("bukkit.Vandolis.User");
Object vuser = User.getConstructor(User.class).newInstance((Player)sender);
m = m.replace("{RED:BALANCE}", User.getMethod("getMoney").invoke(vuser).toString());
m = m.replace("{RED:BUYS}", User.getMethod("getNumTransactionsBuy").invoke(vuser).toString());
m = m.replace("{RED:SELLS}", User.getMethod("getNumTransactionsSell").invoke(vuser).toString());
}
catch (Throwable ex)
{
m = m.replace("{RED:BALANCE}", "N/A");
m = m.replace("{RED:BUYS}", "N/A");
m = m.replace("{RED:SELLS}", "N/A");
}
}
retval[i] = m + " ";
}
return retval;
}
@Override
public boolean onCommand(final CommandSender sender, final Command command, final String commandLabel, final String[] args)
{
return onCommandEssentials(sender, command, commandLabel, args, Essentials.class.getClassLoader(), "com.earth2me.essentials.commands.Command", "essentials.");
}
@Override
public boolean onCommandEssentials(final CommandSender sender, final Command command, final String commandLabel, final String[] args, final ClassLoader classLoader, final String commandPath, final String permissionPrefix)
{
// Allow plugins to override the command via onCommand
if (!getSettings().isCommandOverridden(command.getName()) && !commandLabel.startsWith("e"))
{
for (Plugin p : getServer().getPluginManager().getPlugins())
{
if (p.getDescription().getMain().contains("com.earth2me.essentials"))
{
continue;
}
final PluginDescriptionFile desc = p.getDescription();
if (desc == null)
{
continue;
}
if (desc.getName() == null)
{
continue;
}
final PluginCommand pc = getServer().getPluginCommand(desc.getName() + ":" + commandLabel);
if (pc != null)
{
return pc.execute(sender, commandLabel, args);
}
}
}
try
{
User user = null;
if (sender instanceof Player)
{
user = getUser(sender);
LOGGER.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0)));
}
// New mail notification
if (user != null && !getSettings().isCommandDisabled("mail") && !commandLabel.equals("mail") && user.isAuthorized("essentials.mail"))
{
final List<String> mail = user.getMails();
if (mail != null && !mail.isEmpty())
{
user.sendMessage(Util.format("youHaveNewMail", mail.size()));
}
}
// Check for disabled commands
if (getSettings().isCommandDisabled(commandLabel))
{
return true;
}
IEssentialsCommand cmd;
try
{
cmd = (IEssentialsCommand)classLoader.loadClass(commandPath + command.getName()).newInstance();
cmd.setEssentials(this);
}
catch (Exception ex)
{
sender.sendMessage(Util.format("commandNotLoaded", commandLabel));
LOGGER.log(Level.SEVERE, Util.format("commandNotLoaded", commandLabel), ex);
return true;
}
// Check authorization
if (user != null && !user.isAuthorized(cmd, permissionPrefix))
{
LOGGER.log(Level.WARNING, Util.format("deniedAccessCommand", user.getName()));
user.sendMessage(Util.i18n("noAccessCommand"));
return true;
}
// Run the command
try
{
if (user == null)
{
cmd.run(getServer(), sender, commandLabel, command, args);
}
else
{
cmd.run(getServer(), user, commandLabel, command, args);
}
return true;
}
catch (NoChargeException ex)
{
return true;
}
catch (NotEnoughArgumentsException ex)
{
sender.sendMessage(command.getDescription());
sender.sendMessage(command.getUsage().replaceAll("<command>", commandLabel));
return true;
}
catch (Throwable ex)
{
showError(sender, ex, commandLabel);
return true;
}
}
catch (Throwable ex)
{
LOGGER.log(Level.SEVERE, Util.format("commandFailed", commandLabel), ex);
return true;
}
}
@Override
public void showError(final CommandSender sender, final Throwable exception, final String commandLabel)
{
sender.sendMessage(Util.format("errorWithMessage", exception.getMessage()));
final LogRecord logRecord = new LogRecord(Level.WARNING, Util.format("errorCallingCommand", commandLabel));
logRecord.setThrown(exception);
if (getSettings().isDebug())
{
LOGGER.log(logRecord);
}
else
{
if (enableErrorLogging)
{
errorHandler.publish(logRecord);
errorHandler.flush();
}
}
}
@Override
public BukkitScheduler getScheduler()
{
return this.getServer().getScheduler();
}
@Override
public Jail getJail()
{
return jail;
}
@Override
public Warps getWarps()
{
return warps;
}
@Override
public Worth getWorth()
{
return worth;
}
@Override
public Backup getBackup()
{
return backup;
}
@Override
public Spawn getSpawn()
{
return spawn;
}
@Override
public User getUser(final Object base)
{
if (base instanceof Player)
{
return getUser((Player)base);
}
if (base instanceof String)
{
try
{
return userMap.getUser((String)base);
}
catch (NullPointerException ex)
{
return null;
}
}
return null;
}
private <T extends Player> User getUser(final T base)
{
if (base == null)
{
return null;
}
if (base instanceof User)
{
return (User)base;
}
try
{
return userMap.getUser(base.getName()).update(base);
}
catch (NullPointerException ex)
{
return new User(base, this);
}
}
@Override
public User getOfflineUser(final String name)
{
try
{
return userMap.getUser(name);
}
catch (NullPointerException ex)
{
return null;
}
}
@Override
public World getWorld(final String name)
{
if (name.matches("[0-9]+"))
{
final int worldId = Integer.parseInt(name);
if (worldId < getServer().getWorlds().size())
{
return getServer().getWorlds().get(worldId);
}
}
return getServer().getWorld(name);
}
@Override
public void addReloadListener(final IConf listener)
{
confList.add(listener);
}
@Override
public Methods getPaymentMethod()
{
return paymentMethod;
}
@Override
public int broadcastMessage(final IUser sender, final String message)
{
if (sender == null) {
return getServer().broadcastMessage(message);
}
if (sender.isHidden()) {
return 0;
}
final Player[] players = getServer().getOnlinePlayers();
for (Player player : players)
{
final User user = getUser(player);
if (!user.isIgnoredPlayer(sender.getName()))
{
player.sendMessage(message);
}
}
return players.length;
}
public Map<BigInteger, String> getErrors()
{
return errorHandler.getErrors();
}
@Override
public int scheduleAsyncDelayedTask(final Runnable run)
{
return this.getScheduler().scheduleAsyncDelayedTask(this, run);
}
@Override
public int scheduleSyncDelayedTask(final Runnable run)
{
return this.getScheduler().scheduleSyncDelayedTask(this, run);
}
@Override
public int scheduleSyncDelayedTask(final Runnable run, final long delay)
{
return this.getScheduler().scheduleSyncDelayedTask(this, run, delay);
}
@Override
public int scheduleSyncRepeatingTask(final Runnable run, final long delay, final long period)
{
return this.getScheduler().scheduleSyncRepeatingTask(this, run, delay, period);
}
@Override
public TNTExplodeListener getTNTListener()
{
return tntListener;
}
@Override
public PermissionsHandler getPermissionsHandler()
{
return permissionsHandler;
}
@Override
public ItemDb getItemDb()
{
return itemDb;
}
@Override
public UserMap getUserMap()
{
return userMap;
}
}

View File

@@ -1,110 +0,0 @@
package com.earth2me.essentials;
import java.util.logging.Logger;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.event.block.BlockListener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.inventory.ItemStack;
public class EssentialsBlockListener extends BlockListener
{
private final IEssentials ess;
private static final Logger logger = Logger.getLogger("Minecraft");
public EssentialsBlockListener(IEssentials ess)
{
this.ess = ess;
}
@Override
public void onBlockPlace(BlockPlaceEvent event)
{
if (event.isCancelled())
{
return;
}
final User user = ess.getUser(event.getPlayer());
// Do not rely on getItemInHand();
// http://leaky.bukkit.org/issues/663
final ItemStack is = new ItemStack(event.getBlockPlaced().getType(), 1, (short)0, event.getBlockPlaced().getData());
switch (is.getType())
{
case WOODEN_DOOR:
is.setType(Material.WOOD_DOOR);
is.setDurability((short)0);
break;
case IRON_DOOR_BLOCK:
is.setType(Material.IRON_DOOR);
is.setDurability((short)0);
break;
case SIGN_POST:
case WALL_SIGN:
is.setType(Material.SIGN);
is.setDurability((short)0);
break;
case CROPS:
is.setType(Material.SEEDS);
is.setDurability((short)0);
break;
case CAKE_BLOCK:
is.setType(Material.CAKE);
is.setDurability((short)0);
break;
case BED_BLOCK:
is.setType(Material.BED);
is.setDurability((short)0);
break;
case REDSTONE_WIRE:
is.setType(Material.REDSTONE);
is.setDurability((short)0);
break;
case REDSTONE_TORCH_OFF:
case REDSTONE_TORCH_ON:
is.setType(Material.REDSTONE_TORCH_ON);
is.setDurability((short)0);
break;
case DIODE_BLOCK_OFF:
case DIODE_BLOCK_ON:
is.setType(Material.DIODE);
is.setDurability((short)0);
break;
case DOUBLE_STEP:
is.setType(Material.STEP);
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:
is.setDurability((short)0);
break;
case FIRE:
return;
}
boolean unlimitedForUser = user.hasUnlimited(is);
if (unlimitedForUser && user.getGameMode() == GameMode.SURVIVAL)
{
ess.scheduleSyncDelayedTask(
new Runnable()
{
public void run()
{
user.getInventory().addItem(is);
user.updateInventory();
}
});
}
}
}

View File

@@ -1,277 +0,0 @@
package com.earth2me.essentials;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.config.Configuration;
public class EssentialsConf extends Configuration
{
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private transient File configFile;
private transient String templateName = null;
private transient Class<?> resourceClass = EssentialsConf.class;
public EssentialsConf(final File configFile)
{
super(configFile);
this.configFile = configFile;
if (this.root == null)
{
this.root = new HashMap<String, Object>();
}
}
@Override
public void load()
{
configFile = configFile.getAbsoluteFile();
if (!configFile.getParentFile().exists())
{
if (!configFile.getParentFile().mkdirs())
{
LOGGER.log(Level.SEVERE, Util.format("failedToCreateConfig", configFile.toString()));
}
}
// This will delete files where the first character is 0. In most cases they are broken.
if (configFile.exists() && configFile.length() != 0)
{
try
{
final InputStream input = new FileInputStream(configFile);
try
{
if (input.read() == 0)
{
input.close();
configFile.delete();
}
}
catch (IOException ex)
{
LOGGER.log(Level.SEVERE, null, ex);
}
finally
{
try
{
input.close();
}
catch (IOException ex)
{
LOGGER.log(Level.SEVERE, null, ex);
}
}
}
catch (FileNotFoundException ex)
{
LOGGER.log(Level.SEVERE, null, ex);
}
}
if (!configFile.exists())
{
if (templateName != null)
{
LOGGER.log(Level.INFO, Util.format("creatingConfigFromTemplate", configFile.toString()));
createFromTemplate();
}
else
{
try
{
LOGGER.log(Level.INFO, Util.format("creatingEmptyConfig", configFile.toString()));
if (!configFile.createNewFile())
{
LOGGER.log(Level.SEVERE, Util.format("failedToCreateConfig", configFile.toString()));
}
}
catch (IOException ex)
{
LOGGER.log(Level.SEVERE, Util.format("failedToCreateConfig", configFile.toString()), ex);
}
}
}
try
{
super.load();
}
catch (RuntimeException e)
{
LOGGER.log(Level.INFO, "File: " + configFile.toString());
throw e;
}
if (this.root == null)
{
this.root = new HashMap<String, Object>();
}
}
private void createFromTemplate()
{
InputStream istr = null;
OutputStream ostr = null;
try
{
istr = resourceClass.getResourceAsStream(templateName);
if (istr == null)
{
LOGGER.log(Level.SEVERE, Util.format("couldNotFindTemplate", templateName));
return;
}
ostr = new FileOutputStream(configFile);
byte[] buffer = new byte[1024];
int length = 0;
length = istr.read(buffer);
while (length > 0)
{
ostr.write(buffer, 0, length);
length = istr.read(buffer);
}
}
catch (IOException ex)
{
LOGGER.log(Level.SEVERE, Util.format("failedToWriteConfig", configFile.toString()), ex);
return;
}
finally
{
try
{
if (istr != null)
{
istr.close();
}
}
catch (IOException ex)
{
Logger.getLogger(EssentialsConf.class.getName()).log(Level.SEVERE, null, ex);
}
try
{
if (ostr != null)
{
ostr.close();
}
}
catch (IOException ex)
{
LOGGER.log(Level.SEVERE, Util.format("failedToCloseConfig", configFile.toString()), ex);
}
}
}
public void setTemplateName(final String templateName)
{
this.templateName = templateName;
}
public File getFile()
{
return configFile;
}
public void setTemplateName(final String templateName, final Class<?> resClass)
{
this.templateName = templateName;
this.resourceClass = resClass;
}
public boolean hasProperty(final String path)
{
return getProperty(path) != null;
}
public Location getLocation(final String path, final Server server) throws Exception
{
final String worldName = getString((path == null ? "" : path + ".") + "world");
if (worldName == null || worldName.isEmpty())
{
return null;
}
final World world = server.getWorld(worldName);
if (world == null)
{
throw new Exception(Util.i18n("invalidWorld"));
}
return new Location(world,
getDouble((path == null ? "" : path + ".") + "x", 0),
getDouble((path == null ? "" : path + ".") + "y", 0),
getDouble((path == null ? "" : path + ".") + "z", 0),
(float)getDouble((path == null ? "" : path + ".") + "yaw", 0),
(float)getDouble((path == null ? "" : path + ".") + "pitch", 0));
}
public void setProperty(final String path, final Location loc)
{
setProperty((path == null ? "" : path + ".") + "world", loc.getWorld().getName());
setProperty((path == null ? "" : path + ".") + "x", loc.getX());
setProperty((path == null ? "" : path + ".") + "y", loc.getY());
setProperty((path == null ? "" : path + ".") + "z", loc.getZ());
setProperty((path == null ? "" : path + ".") + "yaw", loc.getYaw());
setProperty((path == null ? "" : path + ".") + "pitch", loc.getPitch());
}
public ItemStack getItemStack(final String path)
{
return new ItemStack(
Material.valueOf(getString(path + ".type", "AIR")),
getInt(path + ".amount", 1),
(short)getInt(path + ".damage", 0)/*,
(byte)getInt(path + ".data", 0)*/);
}
public void setProperty(final String path, final ItemStack stack)
{
final Map<String, Object> map = new HashMap<String, Object>();
map.put("type", stack.getType().toString());
map.put("amount", stack.getAmount());
map.put("damage", stack.getDurability());
// getData().getData() is broken
//map.put("data", stack.getDurability());
setProperty(path, map);
}
public long getLong(final String path, final long def)
{
try
{
final Number num = (Number)getProperty(path);
return num == null ? def : num.longValue();
}
catch (ClassCastException ex)
{
return def;
}
}
@Override
public double getDouble(final String path, final double def)
{
try
{
Number num = (Number)getProperty(path);
return num == null ? def : num.doubleValue();
}
catch (ClassCastException ex)
{
return def;
}
}
}

View File

@@ -1,101 +0,0 @@
package com.earth2me.essentials;
import java.util.List;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityCombustEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityListener;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.inventory.ItemStack;
public class EssentialsEntityListener extends EntityListener
{
private final IEssentials ess;
public EssentialsEntityListener(IEssentials ess)
{
this.ess = ess;
}
@Override
public void onEntityDamage(EntityDamageEvent event)
{
if (event instanceof EntityDamageByEntityEvent)
{
EntityDamageByEntityEvent edEvent = (EntityDamageByEntityEvent)event;
Entity eAttack = edEvent.getDamager();
Entity eDefend = edEvent.getEntity();
if (eDefend instanceof Player && eAttack instanceof Player)
{
User defender = ess.getUser(eDefend);
User attacker = ess.getUser(eAttack);
ItemStack is = attacker.getItemInHand();
List<String> commandList = attacker.getPowertool(is);
if (commandList != null && !commandList.isEmpty())
{
for (String command : commandList)
{
if (command != null && !command.isEmpty())
{
attacker.getServer().dispatchCommand(attacker, command.replaceAll("\\{player\\}", defender.getName()));
event.setCancelled(true);
return;
}
}
}
}
}
if (event.getEntity() instanceof Player && ess.getUser(event.getEntity()).isGodModeEnabled())
{
final Player player = (Player)event.getEntity();
player.setFireTicks(0);
player.setRemainingAir(player.getMaximumAir());
event.setCancelled(true);
}
}
@Override
public void onEntityCombust(EntityCombustEvent event)
{
if (event.getEntity() instanceof Player && ess.getUser(event.getEntity()).isGodModeEnabled())
{
event.setCancelled(true);
}
}
@Override
public void onEntityDeath(final EntityDeathEvent event)
{
if (event instanceof PlayerDeathEvent)
{
final PlayerDeathEvent pdevent = (PlayerDeathEvent)event;
final User user = ess.getUser(pdevent.getEntity());
if (user.isAuthorized("essentials.back.ondeath") && !ess.getSettings().isCommandDisabled("back"))
{
user.setLastLocation();
user.sendMessage(Util.i18n("backAfterDeath"));
}
if (!ess.getSettings().areDeathMessagesEnabled())
{
pdevent.setDeathMessage("");
}
}
}
@Override
public void onFoodLevelChange(FoodLevelChangeEvent event)
{
if (event.getEntity() instanceof Player && ess.getUser(event.getEntity()).isGodModeEnabled())
{
//TODO: Remove the following line, when we're happy to remove backwards compatability with 1185.
event.setFoodLevel(20);
event.setCancelled(true);
}
}
}

View File

@@ -1,128 +0,0 @@
package com.earth2me.essentials;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
class EssentialsErrorHandler extends Handler
{
private final Map<BigInteger, String> errors = new HashMap<BigInteger, String>();
private final List<LogRecord> records = new LinkedList<LogRecord>();
public EssentialsErrorHandler()
{
}
@Override
public void publish(LogRecord lr)
{
if (lr.getThrown() == null || lr.getLevel().intValue() < Level.WARNING.intValue())
{
return;
}
synchronized (records)
{
records.add(lr);
}
}
@Override
public void flush()
{
synchronized (records)
{
sortRecords();
}
}
@Override
public void close() throws SecurityException
{
synchronized (records)
{
sortRecords();
}
}
private void sortRecords()
{
for (LogRecord lr : records)
{
try
{
if (lr.getThrown() == null)
{
return;
}
Throwable tr = lr.getThrown();
StackTraceElement[] elements = tr.getStackTrace();
if (elements == null || elements.length <= 0)
{
return;
}
boolean essentialsFound = false;
for (StackTraceElement stackTraceElement : elements)
{
if (stackTraceElement.getClassName().contains("com.earth2me.essentials"))
{
essentialsFound = true;
break;
}
}
if (!essentialsFound && tr.getCause() != null)
{
Throwable cause = tr.getCause();
StackTraceElement[] elements2 = cause.getStackTrace();
if (elements2 != null)
{
for (StackTraceElement stackTraceElement : elements2)
{
if (stackTraceElement.getClassName().contains("com.earth2me.essentials"))
{
essentialsFound = true;
break;
}
}
}
}
StringBuilder sb = new StringBuilder();
sb.append("[").append(lr.getLevel().getName()).append("] ").append(lr.getMessage()).append("\n");
sb.append(tr.getMessage()).append("\n");
for (StackTraceElement stackTraceElement : tr.getStackTrace())
{
sb.append(stackTraceElement.toString()).append("\n");
}
if (tr.getCause() != null && tr.getCause().getStackTrace() != null)
{
sb.append(tr.getCause().getMessage()).append("\n");
for (StackTraceElement stackTraceElement : tr.getCause().getStackTrace())
{
sb.append(stackTraceElement.toString()).append("\n");
}
}
String errorReport = sb.toString();
byte[] bytesOfMessage = errorReport.getBytes("UTF-8");
MessageDigest md = MessageDigest.getInstance("MD5");
BigInteger bi = new BigInteger(md.digest(bytesOfMessage));
errors.put(bi, errorReport);
}
catch (Throwable t)
{
//Ignore all exceptions inside the exception handler
}
}
records.clear();
}
Map<BigInteger, String> getErrors()
{
return errors;
}
}

View File

@@ -1,403 +0,0 @@
package com.earth2me.essentials;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerAnimationEvent;
import org.bukkit.event.player.PlayerAnimationType;
import org.bukkit.event.player.PlayerBedEnterEvent;
import org.bukkit.event.player.PlayerBucketEmptyEvent;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerEggThrowEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerLoginEvent.Result;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.inventory.ItemStack;
public class EssentialsPlayerListener extends PlayerListener
{
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private final transient Server server;
private final transient IEssentials ess;
public EssentialsPlayerListener(final IEssentials parent)
{
this.ess = parent;
this.server = parent.getServer();
}
@Override
public void onPlayerRespawn(final PlayerRespawnEvent event)
{
final User user = ess.getUser(event.getPlayer());
user.setDisplayNick(user.getNick());
updateCompass(user);
if (ess.getSettings().changeDisplayName())
{
user.setDisplayNick(user.getNick());
}
}
@Override
public void onPlayerChat(final PlayerChatEvent event)
{
final User user = ess.getUser(event.getPlayer());
if (user.isMuted())
{
event.setCancelled(true);
user.sendMessage(Util.i18n("playerMuted"));
LOGGER.info(Util.format("mutedUserSpeaks", user.getName()));
}
final Iterator<Player> it = event.getRecipients().iterator();
while (it.hasNext())
{
final User u = ess.getUser(it.next());
if (u.isIgnoredPlayer(user.getName()))
{
it.remove();
}
}
user.updateActivity(true);
if (ess.getSettings().changeDisplayName())
{
user.setDisplayNick(user.getNick());
}
}
@Override
public void onPlayerMove(final PlayerMoveEvent event)
{
if (event.isCancelled())
{
return;
}
final User user = ess.getUser(event.getPlayer());
if (user.isAfk() && ess.getSettings().getFreezeAfkPlayers())
{
final Location from = event.getFrom();
final Location to = event.getTo().clone();
to.setX(from.getX());
to.setY(from.getY());
to.setZ(from.getZ());
try
{
event.setTo(Util.getSafeDestination(to));
}
catch (Exception ex)
{
event.setTo(to);
}
return;
}
final Location afk = user.getAfkPosition();
if (afk == null || !event.getTo().getWorld().equals(afk.getWorld()) || afk.distanceSquared(event.getTo()) > 9)
{
user.updateActivity(true);
}
}
@Override
public void onPlayerQuit(final PlayerQuitEvent event)
{
final User user = ess.getUser(event.getPlayer());
if (ess.getSettings().removeGodOnDisconnect() && user.isGodModeEnabled())
{
user.toggleGodModeEnabled();
}
if (user.getSavedInventory() != null)
{
user.getInventory().setContents(user.getSavedInventory());
user.setSavedInventory(null);
}
user.updateActivity(false);
user.dispose();
if (!ess.getSettings().getReclaimSetting())
{
return;
}
final Thread thread = new Thread(new Runnable()
{
public void run()
{
try
{
Thread.sleep(1000);
Runtime rt = Runtime.getRuntime();
double mem = rt.freeMemory();
rt.runFinalization();
rt.gc();
mem = rt.freeMemory() - mem;
mem /= 1024 * 1024;
LOGGER.log(Level.INFO, Util.format("freedMemory", mem));
}
catch (InterruptedException ex)
{
return;
}
}
});
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
@Override
public void onPlayerJoin(final PlayerJoinEvent event)
{
ess.getBackup().onPlayerJoin();
final User user = ess.getUser(event.getPlayer());
if (ess.getSettings().changeDisplayName())
{
user.setDisplayNick(user.getNick());
}
user.updateActivity(false);
if (user.isAuthorized("essentials.sleepingignored"))
{
user.setSleepingIgnored(true);
}
if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd"))
{
for (String m : ess.getMotd(user, null))
{
if (m == null)
{
continue;
}
user.sendMessage(m);
}
}
if (!ess.getSettings().isCommandDisabled("mail") && user.isAuthorized("essentials.mail"))
{
final List<String> mail = user.getMails();
if (mail.isEmpty())
{
user.sendMessage(Util.i18n("noNewMail"));
}
else
{
user.sendMessage(Util.format("youHaveNewMail", mail.size()));
}
}
}
@Override
public void onPlayerLogin(final PlayerLoginEvent event)
{
if (event.getResult() != Result.ALLOWED && event.getResult() != Result.KICK_FULL && event.getResult() != Result.KICK_BANNED)
{
LOGGER.log(Level.INFO, "Disconnecting user " + event.getPlayer().toString() + " due to " + event.getResult().toString());
return;
}
User user = ess.getUser(event.getPlayer());
user.setNPC(false);
final long currentTime = System.currentTimeMillis();
boolean banExpired = user.checkBanTimeout(currentTime);
user.checkMuteTimeout(currentTime);
user.checkJailTimeout(currentTime);
if (banExpired == false && (user.isBanned() || event.getResult() == Result.KICK_BANNED))
{
final String banReason = user.getBanReason();
event.disallow(Result.KICK_BANNED, banReason != null && !banReason.isEmpty() && !banReason.equalsIgnoreCase("ban") ? banReason : Util.i18n("defaultBanReason"));
return;
}
if (server.getOnlinePlayers().length >= server.getMaxPlayers() && !user.isAuthorized("essentials.joinfullserver"))
{
event.disallow(Result.KICK_FULL, Util.i18n("serverFull"));
return;
}
event.allow();
user.setLastLogin(System.currentTimeMillis());
updateCompass(user);
}
private void updateCompass(final User user)
{
try
{
user.setCompassTarget(user.getHome(user.getLocation()));
}
catch (Exception ex)
{
}
}
@Override
public void onPlayerTeleport(PlayerTeleportEvent event)
{
if (event.isCancelled())
{
return;
}
final User user = ess.getUser(event.getPlayer());
if (ess.getSettings().changeDisplayName())
{
user.setDisplayNick(user.getNick());
}
updateCompass(user);
}
@Override
public void onPlayerInteract(final PlayerInteractEvent event)
{
if (event.isCancelled())
{
return;
}
if (event.getAction() != Action.RIGHT_CLICK_BLOCK)
{
return;
}
if (ess.getSettings().getBedSetsHome() && event.getClickedBlock().getType() == Material.BED_BLOCK)
{
try
{
final User user = ess.getUser(event.getPlayer());
user.setHome();
user.sendMessage(Util.i18n("homeSetToBed"));
}
catch (Throwable ex)
{
}
}
}
@Override
public void onPlayerEggThrow(final PlayerEggThrowEvent event)
{
final User user = ess.getUser(event.getPlayer());
final ItemStack is = new ItemStack(Material.EGG, 1);
if (user.hasUnlimited(is))
{
user.getInventory().addItem(is);
user.updateInventory();
}
}
@Override
public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event)
{
final User user = ess.getUser(event.getPlayer());
if (user.hasUnlimited(new ItemStack(event.getBucket())))
{
event.getItemStack().setType(event.getBucket());
ess.scheduleSyncDelayedTask(new Runnable()
{
public void run()
{
user.updateInventory();
}
});
}
}
@Override
public void onPlayerAnimation(final PlayerAnimationEvent event)
{
usePowertools(event);
}
private void usePowertools(final PlayerAnimationEvent event)
{
if (event.getAnimationType() != PlayerAnimationType.ARM_SWING)
{
return;
}
final User user = ess.getUser(event.getPlayer());
final ItemStack is = user.getItemInHand();
if (is == null || is.getType() == Material.AIR || !user.arePowerToolsEnabled())
{
return;
}
final List<String> commandList = user.getPowertool(is);
if (commandList == null || commandList.isEmpty())
{
return;
}
// We need to loop through each command and execute
for (String command : commandList)
{
if (command.matches(".*\\{player\\}.*"))
{
//user.sendMessage("Click a player to use this command");
continue;
}
else if (command.startsWith("c:"))
{
for (Player p : server.getOnlinePlayers())
{
p.sendMessage(user.getDisplayName() + ":" + command.substring(2));
}
}
else
{
user.getServer().dispatchCommand(event.getPlayer(), command);
}
}
}
@Override
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event)
{
if (event.isCancelled())
{
return;
}
final User user = ess.getUser(event.getPlayer());
final String cmd = event.getMessage().toLowerCase().split(" ")[0].replace("/", "").toLowerCase();
final List<String> commands = Arrays.asList("msg", "r", "mail", "m", "t", "emsg", "tell", "er", "reply", "ereply", "email");
if (commands.contains(cmd))
{
for (Player player : ess.getServer().getOnlinePlayers())
{
User spyer = ess.getUser(player);
if (spyer.isSocialSpyEnabled() && !user.equals(spyer))
{
player.sendMessage(user.getDisplayName() + " : " + event.getMessage());
}
}
}
if (!cmd.equalsIgnoreCase("afk"))
{
user.updateActivity(true);
}
}
@Override
public void onPlayerBedEnter(PlayerBedEnterEvent event)
{
if (event.isCancelled()) {
return;
}
if (event.getPlayer().isSleepingIgnored()) {
event.setCancelled(true);
event.getPlayer().sendMessage("You can't go to bed, your sleep is ignored.");
}
}
}

View File

@@ -1,48 +0,0 @@
package com.earth2me.essentials;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.event.server.PluginDisableEvent;
import org.bukkit.event.server.PluginEnableEvent;
import org.bukkit.event.server.ServerListener;
public class EssentialsPluginListener extends ServerListener implements IConf
{
private final transient IEssentials ess;
private static final Logger LOGGER = Logger.getLogger("Minecraft");
public EssentialsPluginListener(final IEssentials ess)
{
this.ess = ess;
}
@Override
public void onPluginEnable(final PluginEnableEvent event)
{
ess.getPermissionsHandler().checkPermissions();
if (!ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().setMethod(ess.getServer().getPluginManager()))
{
LOGGER.log(Level.INFO, "[Essentials] Payment method found (" + ess.getPaymentMethod().getMethod().getName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")");
}
}
@Override
public void onPluginDisable(final PluginDisableEvent event)
{
ess.getPermissionsHandler().checkPermissions();
// Check to see if the plugin thats being disabled is the one we are using
if (ess.getPaymentMethod() != null && ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().checkDisabled(event.getPlugin()))
{
ess.getPaymentMethod().reset();
LOGGER.log(Level.INFO, "[Essentials] Payment method was disabled. No longer accepting payments.");
}
}
@Override
public void reloadConfig()
{
ess.getPermissionsHandler().setUseSuperperms(ess.getSettings().useBukkitPermissions());
ess.getPermissionsHandler().checkPermissions();
}
}

View File

@@ -1,45 +0,0 @@
package com.earth2me.essentials;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.bukkit.entity.Player;
public class EssentialsTimer implements Runnable
{
private final transient IEssentials ess;
private final transient Set<User> onlineUsers = new HashSet<User>();
EssentialsTimer(final IEssentials ess)
{
this.ess = ess;
}
@Override
public void run()
{
final long currentTime = System.currentTimeMillis();
for (Player player : ess.getServer().getOnlinePlayers())
{
final User user = ess.getUser(player);
onlineUsers.add(user);
user.setLastOnlineActivity(currentTime);
user.checkActivity();
}
final Iterator<User> iterator = onlineUsers.iterator();
while (iterator.hasNext())
{
final User user = iterator.next();
if (user.getLastOnlineActivity() < currentTime && user.getLastOnlineActivity() > user.getLastLogout())
{
user.setLastLogout(user.getLastOnlineActivity());
iterator.remove();
continue;
}
user.checkMuteTimeout(currentTime);
user.checkJailTimeout(currentTime);
}
}
}

View File

@@ -1,84 +0,0 @@
package com.earth2me.essentials;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.bukkit.entity.Player;
class EssentialsUpdateTimer implements Runnable
{
private transient URL url;
private final transient IEssentials ess;
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private final transient Pattern pattern = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-[0-9]+-[0-9a-z]+-b([0-9]+)jnks.*");
public EssentialsUpdateTimer(final IEssentials ess)
{
this.ess = ess;
try
{
url = new URL("http://essentialsupdate.appspot.com/check");
}
catch (MalformedURLException ex)
{
LOGGER.log(Level.SEVERE, "Invalid url!", ex);
}
}
@Override
public void run()
{
try
{
final StringBuilder builder = new StringBuilder();
String bukkitVersion = ess.getServer().getVersion();
final Matcher versionMatch = pattern.matcher(bukkitVersion);
if (versionMatch.matches())
{
bukkitVersion = versionMatch.group(4);
}
builder.append("v=").append(URLEncoder.encode(ess.getDescription().getVersion(), "UTF-8"));
builder.append("&b=").append(URLEncoder.encode(bukkitVersion, "UTF-8"));
final URLConnection conn = url.openConnection();
conn.setConnectTimeout(10000);
conn.setDoOutput(true);
conn.connect();
final OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(builder.toString());
writer.flush();
final BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
final String ret = reader.readLine();
writer.close();
reader.close();
if (!ret.isEmpty() && !ret.equalsIgnoreCase("OK"))
{
LOGGER.log(Level.INFO, "Essentials Update-Check: " + ret);
if (ret.startsWith("New Version"))
{
for (Player player : ess.getServer().getOnlinePlayers())
{
final User user = ess.getUser(player);
if (user.isAuthorized("essentials.admin.notices.update"))
{
user.sendMessage(ret);
}
}
}
}
}
catch (IOException ex)
{
LOGGER.log(Level.SEVERE, "Failed to open connection", ex);
}
}
}

View File

@@ -1,669 +0,0 @@
package com.earth2me.essentials;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigInteger;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.inventory.ItemStack;
public class EssentialsUpgrade
{
private final static Logger LOGGER = Logger.getLogger("Minecraft");
private final transient IEssentials ess;
private final transient EssentialsConf doneFile;
EssentialsUpgrade(final IEssentials essentials)
{
ess = essentials;
if (!ess.getDataFolder().exists())
{
ess.getDataFolder().mkdirs();
}
doneFile = new EssentialsConf(new File(ess.getDataFolder(), "upgrades-done.yml"));
doneFile.load();
}
private void moveWorthValuesToWorthYml()
{
if (doneFile.getBoolean("moveWorthValuesToWorthYml", false))
{
return;
}
try
{
final File configFile = new File(ess.getDataFolder(), "config.yml");
if (!configFile.exists())
{
return;
}
final EssentialsConf conf = new EssentialsConf(configFile);
conf.load();
final Worth worth = new Worth(ess.getDataFolder());
boolean found = false;
for (Material mat : Material.values())
{
final int id = mat.getId();
final double value = conf.getDouble("worth-" + id, Double.NaN);
if (!Double.isNaN(value))
{
found = true;
worth.setPrice(new ItemStack(mat, 1, (short)0, (byte)0), value);
}
}
if (found)
{
removeLinesFromConfig(configFile, "\\s*#?\\s*worth-[0-9]+.*", "# Worth values have been moved to worth.yml");
}
doneFile.setProperty("moveWorthValuesToWorthYml", true);
doneFile.save();
}
catch (Throwable e)
{
LOGGER.log(Level.SEVERE, Util.i18n("upgradingFilesError"), e);
}
}
private void removeLinesFromConfig(File file, String regex, String info) throws Exception
{
boolean needUpdate = false;
final BufferedReader bReader = new BufferedReader(new FileReader(file));
final File tempFile = File.createTempFile("essentialsupgrade", ".tmp.yml", ess.getDataFolder());
final BufferedWriter bWriter = new BufferedWriter(new FileWriter(tempFile));
do
{
final String line = bReader.readLine();
if (line == null)
{
break;
}
if (line.matches(regex))
{
if (!needUpdate && info != null)
{
bWriter.write(info, 0, info.length());
bWriter.newLine();
}
needUpdate = true;
}
else
{
if (line.endsWith("\r\n"))
{
bWriter.write(line, 0, line.length() - 2);
}
else if (line.endsWith("\r") || line.endsWith("\n"))
{
bWriter.write(line, 0, line.length() - 1);
}
else
{
bWriter.write(line, 0, line.length());
}
bWriter.newLine();
}
}
while (true);
bReader.close();
bWriter.close();
if (needUpdate)
{
if (!file.renameTo(new File(file.getParentFile(), file.getName().concat("." + System.currentTimeMillis() + ".upgradebackup"))))
{
throw new Exception(Util.i18n("configFileMoveError"));
}
if (!tempFile.renameTo(file))
{
throw new Exception(Util.i18n("configFileRenameError"));
}
}
else
{
tempFile.delete();
}
}
private void updateUsersToNewDefaultHome()
{
if (doneFile.getBoolean("updateUsersToNewDefaultHome", false))
{
return;
}
final File userdataFolder = new File(ess.getDataFolder(), "userdata");
if (!userdataFolder.exists() || !userdataFolder.isDirectory())
{
return;
}
final File[] userFiles = userdataFolder.listFiles();
for (File file : userFiles)
{
if (!file.isFile() || !file.getName().endsWith(".yml"))
{
continue;
}
final EssentialsConf config = new EssentialsConf(file);
try
{
config.load();
if (config.hasProperty("home") && !config.hasProperty("home.default"))
{
@SuppressWarnings("unchecked")
final List<Object> vals = (List<Object>)config.getProperty("home");
if (vals == null)
{
continue;
}
World world = ess.getServer().getWorlds().get(0);
if (vals.size() > 5)
{
world = ess.getServer().getWorld((String)vals.get(5));
}
if (world != null)
{
final Location loc = new Location(
world,
((Number)vals.get(0)).doubleValue(),
((Number)vals.get(1)).doubleValue(),
((Number)vals.get(2)).doubleValue(),
((Number)vals.get(3)).floatValue(),
((Number)vals.get(4)).floatValue());
final String worldName = world.getName().toLowerCase();
if (worldName != null && !worldName.isEmpty())
{
config.removeProperty("home");
config.setProperty("home.default", worldName);
config.setProperty("home.worlds." + worldName, loc);
config.save();
}
}
}
}
catch (RuntimeException ex)
{
LOGGER.log(Level.INFO, "File: " + file.toString());
throw ex;
}
}
doneFile.setProperty("updateUsersToNewDefaultHome", true);
doneFile.save();
}
private void updateUsersPowerToolsFormat()
{
if (doneFile.getBoolean("updateUsersPowerToolsFormat", false))
{
return;
}
final File userdataFolder = new File(ess.getDataFolder(), "userdata");
if (!userdataFolder.exists() || !userdataFolder.isDirectory())
{
return;
}
final File[] userFiles = userdataFolder.listFiles();
for (File file : userFiles)
{
if (!file.isFile() || !file.getName().endsWith(".yml"))
{
continue;
}
final EssentialsConf config = new EssentialsConf(file);
try
{
config.load();
if (config.hasProperty("powertools"))
{
@SuppressWarnings("unchecked")
final Map<Integer, Object> powertools = (Map<Integer, Object>)config.getProperty("powertools");
if (powertools == null)
{
continue;
}
for (Map.Entry<Integer, Object> entry : powertools.entrySet())
{
if (entry.getValue() instanceof String)
{
List<String> temp = new ArrayList<String>();
temp.add((String)entry.getValue());
((Map<Integer, Object>)powertools).put(entry.getKey(), temp);
}
}
config.save();
}
}
catch (RuntimeException ex)
{
LOGGER.log(Level.INFO, "File: " + file.toString());
throw ex;
}
}
doneFile.setProperty("updateUsersPowerToolsFormat", true);
doneFile.save();
}
private void updateUsersHomesFormat()
{
if (doneFile.getBoolean("updateUsersHomesFormat", false))
{
return;
}
final File userdataFolder = new File(ess.getDataFolder(), "userdata");
if (!userdataFolder.exists() || !userdataFolder.isDirectory())
{
return;
}
final File[] userFiles = userdataFolder.listFiles();
for (File file : userFiles)
{
if (!file.isFile() || !file.getName().endsWith(".yml"))
{
continue;
}
final EssentialsConf config = new EssentialsConf(file);
try
{
config.load();
if (config.hasProperty("home") && config.hasProperty("home.default"))
{
@SuppressWarnings("unchecked")
final String defworld = (String)config.getProperty("home.default");
final Location defloc = getFakeLocation(config, "home.worlds." + defworld);
if (defloc != null)
{
config.setProperty("homes.home", defloc);
}
List<String> worlds = config.getKeys("home.worlds");
Location loc;
String worldName;
if (worlds == null)
{
continue;
}
for (String world : worlds)
{
if (defworld.equalsIgnoreCase(world))
{
continue;
}
loc = getFakeLocation(config, "home.worlds." + world);
if (loc == null)
{
continue;
}
worldName = loc.getWorld().getName().toLowerCase();
if (worldName != null && !worldName.isEmpty())
{
config.setProperty("homes." + worldName, loc);
}
}
config.removeProperty("home");
config.save();
}
}
catch (RuntimeException ex)
{
LOGGER.log(Level.INFO, "File: " + file.toString());
throw ex;
}
}
doneFile.setProperty("updateUsersHomesFormat", true);
doneFile.save();
}
private void moveUsersDataToUserdataFolder()
{
final File usersFile = new File(ess.getDataFolder(), "users.yml");
if (!usersFile.exists())
{
return;
}
final EssentialsConf usersConfig = new EssentialsConf(usersFile);
usersConfig.load();
for (String username : usersConfig.getKeys(null))
{
final User user = new User(new OfflinePlayer(username, ess), ess);
final String nickname = usersConfig.getString(username + ".nickname");
if (nickname != null && !nickname.isEmpty() && !nickname.equals(username))
{
user.setNickname(nickname);
}
final List<String> mails = usersConfig.getStringList(username + ".mail", null);
if (mails != null && !mails.isEmpty())
{
user.setMails(mails);
}
if (!user.hasHome())
{
@SuppressWarnings("unchecked")
final List<Object> vals = (List<Object>)usersConfig.getProperty(username + ".home");
if (vals != null)
{
World world = ess.getServer().getWorlds().get(0);
if (vals.size() > 5)
{
world = getFakeWorld((String)vals.get(5));
}
if (world != null)
{
user.setHome("home", new Location(world,
((Number)vals.get(0)).doubleValue(),
((Number)vals.get(1)).doubleValue(),
((Number)vals.get(2)).doubleValue(),
((Number)vals.get(3)).floatValue(),
((Number)vals.get(4)).floatValue()));
}
}
}
}
usersFile.renameTo(new File(usersFile.getAbsolutePath() + ".old"));
}
private void convertWarps()
{
final File warpsFolder = new File(ess.getDataFolder(), "warps");
if (!warpsFolder.exists())
{
warpsFolder.mkdirs();
}
final File[] listOfFiles = warpsFolder.listFiles();
if (listOfFiles.length >= 1)
{
for (int i = 0; i < listOfFiles.length; i++)
{
final String filename = listOfFiles[i].getName();
if (listOfFiles[i].isFile() && filename.endsWith(".dat"))
{
try
{
final BufferedReader rx = new BufferedReader(new FileReader(listOfFiles[i]));
double x, y, z;
float yaw, pitch;
String worldName;
try
{
if (!rx.ready())
{
continue;
}
x = Double.parseDouble(rx.readLine().trim());
if (!rx.ready())
{
continue;
}
y = Double.parseDouble(rx.readLine().trim());
if (!rx.ready())
{
continue;
}
z = Double.parseDouble(rx.readLine().trim());
if (!rx.ready())
{
continue;
}
yaw = Float.parseFloat(rx.readLine().trim());
if (!rx.ready())
{
continue;
}
pitch = Float.parseFloat(rx.readLine().trim());
worldName = rx.readLine();
}
finally
{
rx.close();
}
World w = null;
for (World world : ess.getServer().getWorlds())
{
if (world.getEnvironment() != World.Environment.NETHER)
{
w = world;
break;
}
}
if (worldName != null)
{
worldName = worldName.trim();
World w1 = null;
w1 = getFakeWorld(worldName);
if (w1 != null)
{
w = w1;
}
}
final Location loc = new Location(w, x, y, z, yaw, pitch);
ess.getWarps().setWarp(filename.substring(0, filename.length() - 4), loc);
if (!listOfFiles[i].renameTo(new File(warpsFolder, filename + ".old")))
{
throw new Exception(Util.format("fileRenameError", filename));
}
}
catch (Exception ex)
{
LOGGER.log(Level.SEVERE, null, ex);
}
}
}
}
final File warpFile = new File(ess.getDataFolder(), "warps.txt");
if (warpFile.exists())
{
try
{
final BufferedReader rx = new BufferedReader(new FileReader(warpFile));
try
{
for (String[] parts = new String[0]; rx.ready(); parts = rx.readLine().split(":"))
{
if (parts.length < 6)
{
continue;
}
final String name = parts[0];
final double x = Double.parseDouble(parts[1].trim());
final double y = Double.parseDouble(parts[2].trim());
final double z = Double.parseDouble(parts[3].trim());
final float yaw = Float.parseFloat(parts[4].trim());
final float pitch = Float.parseFloat(parts[5].trim());
if (name.isEmpty())
{
continue;
}
World w = null;
for (World world : ess.getServer().getWorlds())
{
if (world.getEnvironment() != World.Environment.NETHER)
{
w = world;
break;
}
}
final Location loc = new Location(w, x, y, z, yaw, pitch);
ess.getWarps().setWarp(name, loc);
if (!warpFile.renameTo(new File(ess.getDataFolder(), "warps.txt.old")))
{
throw new Exception(Util.format("fileRenameError", "warps.txt"));
}
}
}
finally
{
rx.close();
}
}
catch (Exception ex)
{
LOGGER.log(Level.SEVERE, null, ex);
}
}
}
private void sanitizeAllUserFilenames()
{
if (doneFile.getBoolean("sanitizeAllUserFilenames", false))
{
return;
}
final File usersFolder = new File(ess.getDataFolder(), "userdata");
if (!usersFolder.exists())
{
return;
}
final File[] listOfFiles = usersFolder.listFiles();
for (int i = 0; i < listOfFiles.length; i++)
{
final String filename = listOfFiles[i].getName();
if (!listOfFiles[i].isFile() || !filename.endsWith(".yml"))
{
continue;
}
final String sanitizedFilename = Util.sanitizeFileName(filename.substring(0, filename.length() - 4)) + ".yml";
if (sanitizedFilename.equals(filename))
{
continue;
}
final File tmpFile = new File(listOfFiles[i].getParentFile(), sanitizedFilename + ".tmp");
final File newFile = new File(listOfFiles[i].getParentFile(), sanitizedFilename);
if (!listOfFiles[i].renameTo(tmpFile))
{
LOGGER.log(Level.WARNING, Util.format("userdataMoveError", filename, sanitizedFilename));
continue;
}
if (newFile.exists())
{
LOGGER.log(Level.WARNING, Util.format("duplicatedUserdata", filename, sanitizedFilename));
continue;
}
if (!tmpFile.renameTo(newFile))
{
LOGGER.log(Level.WARNING, Util.format("userdataMoveBackError", sanitizedFilename, sanitizedFilename));
}
}
doneFile.setProperty("sanitizeAllUserFilenames", true);
doneFile.save();
}
private World getFakeWorld(final String name)
{
final File bukkitDirectory = ess.getDataFolder().getParentFile().getParentFile();
final File worldDirectory = new File(bukkitDirectory, name);
if (worldDirectory.exists() && worldDirectory.isDirectory())
{
return new FakeWorld(worldDirectory.getName(), World.Environment.NORMAL);
}
return null;
}
public Location getFakeLocation(EssentialsConf config, String path)
{
String worldName = config.getString((path != null ? path + "." : "") + "world");
if (worldName == null || worldName.isEmpty())
{
return null;
}
World world = getFakeWorld(worldName);
if (world == null)
{
return null;
}
return new Location(world,
config.getDouble((path != null ? path + "." : "") + "x", 0),
config.getDouble((path != null ? path + "." : "") + "y", 0),
config.getDouble((path != null ? path + "." : "") + "z", 0),
(float)config.getDouble((path != null ? path + "." : "") + "yaw", 0),
(float)config.getDouble((path != null ? path + "." : "") + "pitch", 0));
}
private void deleteOldItemsCsv()
{
if (doneFile.getBoolean("deleteOldItemsCsv", false))
{
return;
}
final File file = new File(ess.getDataFolder(), "items.csv");
if (file.exists())
{
try
{
final Set<BigInteger> oldconfigs = new HashSet<BigInteger>();
oldconfigs.add(new BigInteger("66ec40b09ac167079f558d1099e39f10", 16)); // sep 1
oldconfigs.add(new BigInteger("34284de1ead43b0bee2aae85e75c041d", 16)); // crlf
oldconfigs.add(new BigInteger("c33bc9b8ee003861611bbc2f48eb6f4f", 16)); // jul 24
oldconfigs.add(new BigInteger("6ff17925430735129fc2a02f830c1daa", 16)); // crlf
MessageDigest digest = ManagedFile.getDigest();
final BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
final DigestInputStream dis = new DigestInputStream(bis, digest);
final byte[] buffer = new byte[1024];
try
{
while (dis.read(buffer) != -1)
{
}
}
finally
{
dis.close();
}
BigInteger hash = new BigInteger(1, digest.digest());
if (oldconfigs.contains(hash) && !file.delete())
{
throw new IOException("Could not delete file " + file.toString());
}
doneFile.setProperty("deleteOldItemsCsv", true);
doneFile.save();
}
catch (IOException ex)
{
Bukkit.getLogger().log(Level.SEVERE, ex.getMessage(), ex);
}
}
}
public void beforeSettings()
{
if (!ess.getDataFolder().exists())
{
ess.getDataFolder().mkdirs();
}
moveWorthValuesToWorthYml();
}
public void afterSettings()
{
sanitizeAllUserFilenames();
updateUsersToNewDefaultHome();
moveUsersDataToUserdataFolder();
convertWarps();
updateUsersPowerToolsFormat();
updateUsersHomesFormat();
deleteOldItemsCsv();
}
}

View File

@@ -1,190 +0,0 @@
package com.earth2me.essentials;
import java.util.HashMap;
import org.bukkit.Material;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
public class FakeInventory implements Inventory
{
ItemStack[] items;
public FakeInventory(ItemStack[] items)
{
this.items = new ItemStack[items.length];
for (int i = 0; i < items.length; i++)
{
if (items[i] == null)
{
continue;
}
this.items[i] = new ItemStack(items[i].getTypeId(), items[i].getAmount(), items[i].getDurability());
}
}
@Override
public int getSize()
{
return items.length;
}
@Override
public String getName()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public ItemStack getItem(int i)
{
return items[i];
}
@Override
public void setItem(int i, ItemStack is)
{
items[i] = is;
}
@Override
public HashMap<Integer, ItemStack> addItem(ItemStack... iss)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public HashMap<Integer, ItemStack> removeItem(ItemStack... iss)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public ItemStack[] getContents()
{
return items;
}
@Override
public void setContents(ItemStack[] iss)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean contains(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean contains(Material mtrl)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean contains(ItemStack is)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean contains(int i, int i1)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean contains(Material mtrl, int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean contains(ItemStack is, int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public HashMap<Integer, ? extends ItemStack> all(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public HashMap<Integer, ? extends ItemStack> all(Material mtrl)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public HashMap<Integer, ? extends ItemStack> all(ItemStack is)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int first(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int first(Material mtrl)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int first(ItemStack is)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int firstEmpty()
{
for (int i = 0; i < items.length; i++)
{
if (items[i] == null || items[i].getTypeId() == 0) {
return i;
}
}
return -1;
}
@Override
public void remove(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void remove(Material mtrl)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void remove(ItemStack is)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void clear(int i)
{
items[i] = null;
}
@Override
public void clear()
{
for (int i = 0; i < items.length; i++)
{
items[i] = null;
}
}
}

View File

@@ -1,5 +0,0 @@
package com.earth2me.essentials;
public interface IConf {
public void reloadConfig();
}

View File

@@ -1,65 +0,0 @@
package com.earth2me.essentials;
import com.earth2me.essentials.perm.PermissionsHandler;
import com.earth2me.essentials.register.payment.Methods;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitScheduler;
public interface IEssentials extends Plugin
{
void addReloadListener(IConf listener);
void reload();
boolean onCommandEssentials(CommandSender sender, Command command, String commandLabel, String[] args, ClassLoader classLoader, String commandPath, String permissionPrefix);
User getUser(Object base);
User getOfflineUser(String name);
World getWorld(String name);
int broadcastMessage(IUser sender, String message);
ISettings getSettings();
BukkitScheduler getScheduler();
String[] getMotd(CommandSender sender, String def);
String[] getLines(CommandSender sender, String node, String def);
Jail getJail();
Warps getWarps();
Worth getWorth();
Backup getBackup();
Spawn getSpawn();
Methods getPaymentMethod();
int scheduleAsyncDelayedTask(Runnable run);
int scheduleSyncDelayedTask(Runnable run);
int scheduleSyncDelayedTask(Runnable run, long delay);
int scheduleSyncRepeatingTask(final Runnable run, long delay, long period);
TNTExplodeListener getTNTListener();
PermissionsHandler getPermissionsHandler();
void showError(final CommandSender sender, final Throwable exception, final String commandLabel);
ItemDb getItemDb();
UserMap getUserMap();
}

View File

@@ -1,9 +0,0 @@
package com.earth2me.essentials;
import org.bukkit.command.CommandSender;
public interface IReplyTo {
public void setReplyTo(CommandSender user);
public CommandSender getReplyTo();
}

View File

@@ -1,137 +0,0 @@
package com.earth2me.essentials;
import com.earth2me.essentials.commands.IEssentialsCommand;
import java.util.List;
import java.util.Map;
import org.bukkit.ChatColor;
public interface ISettings extends IConf
{
boolean areSignsDisabled();
String format(String format, IUser user);
String getAnnounceNewPlayerFormat(IUser user);
boolean getAnnounceNewPlayers();
String getBackupCommand();
long getBackupInterval();
boolean getBedSetsHome();
String getChatFormat(String group);
int getChatRadius();
double getCommandCost(IEssentialsCommand cmd);
double getCommandCost(String label);
String getCurrencySymbol();
int getDefaultStackSize();
double getHealCooldown();
Object getKit(String name);
Map<String, Object> getKits();
String getLocale();
String getNewbieSpawn();
String getNicknamePrefix();
ChatColor getOperatorColor() throws Exception;
boolean getPerWarpPermission();
boolean getProtectBoolean(final String configName, boolean def);
int getProtectCreeperMaxHeight();
List<Integer> getProtectList(final String configName);
boolean getProtectPreventSpawn(final String creatureName);
String getProtectString(final String configName);
boolean getReclaimSetting();
boolean getRespawnAtHome();
List getMultipleHomes();
int getHomeLimit(String set);
int getHomeLimit(User user);
boolean getSortListByGroups();
int getSpawnMobLimit();
int getStartingBalance();
double getTeleportCooldown();
double getTeleportDelay();
boolean hidePermissionlessHelp();
boolean isCommandDisabled(final IEssentialsCommand cmd);
boolean isCommandDisabled(String label);
boolean isCommandOverridden(String name);
boolean isCommandRestricted(IEssentialsCommand cmd);
boolean isCommandRestricted(String label);
boolean isDebug();
boolean isEcoDisabled();
boolean isTradeInStacks(int id);
List<Integer> itemSpawnBlacklist();
boolean permissionBasedItemSpawn();
boolean showNonEssCommandsInHelp();
boolean spawnIfNoHome();
boolean warnOnBuildDisallow();
boolean warnOnSmite();
double getMaxMoney();
boolean isEcoLogEnabled();
boolean removeGodOnDisconnect();
boolean changeDisplayName();
boolean isPlayerCommand(String string);
boolean useBukkitPermissions();
boolean addPrefixSuffix();
boolean isUpdateEnabled();
long getAutoAfk();
long getAutoAfkKick();
boolean getFreezeAfkPlayers();
boolean areDeathMessagesEnabled();
}

View File

@@ -1,59 +0,0 @@
package com.earth2me.essentials;
import com.earth2me.essentials.commands.IEssentialsCommand;
import java.net.InetSocketAddress;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.inventory.PlayerInventory;
public interface IUser
{
int getHealth();
Location getLocation();
boolean isOnline();
void sendMessage(String string);
long getLastTeleportTimestamp();
boolean isAuthorized(String node);
boolean isAuthorized(IEssentialsCommand cmd);
boolean isAuthorized(IEssentialsCommand cmd, String permissionPrefix);
void setLastTeleportTimestamp(long time);
Location getLastLocation();
Player getBase();
double getMoney();
void takeMoney(double value);
void giveMoney(double value);
PlayerInventory getInventory();
void updateInventory();
String getGroup();
void setLastLocation();
Location getHome(String name) throws Exception;
Location getHome(Location loc) throws Exception;
String getName();
InetSocketAddress getAddress();
String getDisplayName();
boolean isHidden();
}

View File

@@ -1,332 +0,0 @@
package com.earth2me.essentials;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.Location;
import org.bukkit.entity.Item;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
/*
* This class can be removed when
* https://github.com/Bukkit/CraftBukkit/pull/193
* is accepted to CraftBukkit
*/
public final class InventoryWorkaround
{
private InventoryWorkaround()
{
}
public static int first(final Inventory inventory, final ItemStack item, final boolean forceDurability, final boolean forceAmount)
{
return next(inventory, item, 0, forceDurability, forceAmount);
}
public static int next(final Inventory cinventory, final ItemStack item, final int start, final boolean forceDurability, final boolean forceAmount)
{
final ItemStack[] inventory = cinventory.getContents();
for (int i = start; i < inventory.length; i++)
{
final ItemStack cItem = inventory[i];
if (cItem == null)
{
continue;
}
if (item.getTypeId() == cItem.getTypeId() && (!forceAmount || item.getAmount() == cItem.getAmount()) && (!forceDurability || cItem.getDurability() == item.getDurability()))
{
return i;
}
}
return -1;
}
public static int firstPartial(final Inventory cinventory, final ItemStack item, final boolean forceDurability)
{
if (item == null)
{
return -1;
}
final ItemStack[] inventory = cinventory.getContents();
for (int i = 0; i < inventory.length; i++)
{
final ItemStack cItem = inventory[i];
if (cItem == null)
{
continue;
}
if (item.getTypeId() == cItem.getTypeId() && cItem.getAmount() < cItem.getType().getMaxStackSize() && (!forceDurability || cItem.getDurability() == item.getDurability()))
{
return i;
}
}
return -1;
}
public static boolean addAllItems(final Inventory cinventory, final boolean forceDurability, final ItemStack... items)
{
final Inventory fake = new FakeInventory(cinventory.getContents());
if (addItem(fake, forceDurability, items).isEmpty())
{
addItem(cinventory, forceDurability, items);
return true;
}
else
{
return false;
}
}
public static Map<Integer, ItemStack> addItem(final Inventory cinventory, final boolean forceDurability, final ItemStack... items)
{
final Map<Integer, ItemStack> leftover = new HashMap<Integer, ItemStack>();
/* TODO: some optimization
* - Create a 'firstPartial' with a 'fromIndex'
* - Record the lastPartial per Material
* - Cache firstEmpty result
*/
// combine items
ItemStack[] combined = new ItemStack[items.length];
for (int i = 0; i < items.length; i++)
{
if (items[i] == null || items[i].getAmount() < 1)
{
continue;
}
for (int j = 0; j < combined.length; j++)
{
if (combined[j] == null)
{
combined[j] = new ItemStack(items[i].getType(), items[i].getAmount(), items[i].getDurability());
break;
}
if (combined[j].getTypeId() == items[i].getTypeId() && (!forceDurability || combined[j].getDurability() == items[i].getDurability()))
{
combined[j].setAmount(combined[j].getAmount() + items[i].getAmount());
break;
}
}
}
for (int i = 0; i < combined.length; i++)
{
final ItemStack item = combined[i];
if (item == null)
{
continue;
}
while (true)
{
// Do we already have a stack of it?
final int firstPartial = firstPartial(cinventory, item, forceDurability);
// Drat! no partial stack
if (firstPartial == -1)
{
// Find a free spot!
final int firstFree = cinventory.firstEmpty();
if (firstFree == -1)
{
// No space at all!
leftover.put(i, item);
break;
}
else
{
// More than a single stack!
if (item.getAmount() > item.getType().getMaxStackSize())
{
cinventory.setItem(firstFree, new ItemStack(item.getTypeId(), item.getType().getMaxStackSize(), item.getDurability()));
item.setAmount(item.getAmount() - item.getType().getMaxStackSize());
}
else
{
// Just store it
cinventory.setItem(firstFree, item);
break;
}
}
}
else
{
// So, apparently it might only partially fit, well lets do just that
final ItemStack partialItem = cinventory.getItem(firstPartial);
final int amount = item.getAmount();
final int partialAmount = partialItem.getAmount();
final int maxAmount = partialItem.getType().getMaxStackSize();
// Check if it fully fits
if (amount + partialAmount <= maxAmount)
{
partialItem.setAmount(amount + partialAmount);
break;
}
// It fits partially
partialItem.setAmount(maxAmount);
item.setAmount(amount + partialAmount - maxAmount);
}
}
}
return leftover;
}
public static Map<Integer, ItemStack> removeItem(final Inventory cinventory, final boolean forceDurability, final ItemStack... items)
{
final Map<Integer, ItemStack> leftover = new HashMap<Integer, ItemStack>();
// TODO: optimization
for (int i = 0; i < items.length; i++)
{
final ItemStack item = items[i];
if (item == null)
{
continue;
}
int toDelete = item.getAmount();
while (true)
{
// Bail when done
if (toDelete <= 0)
{
break;
}
// get first Item, ignore the amount
final int first = first(cinventory, item, forceDurability, false);
// Drat! we don't have this type in the inventory
if (first == -1)
{
item.setAmount(toDelete);
leftover.put(i, item);
break;
}
else
{
final ItemStack itemStack = cinventory.getItem(first);
final int amount = itemStack.getAmount();
if (amount <= toDelete)
{
toDelete -= amount;
// clear the slot, all used up
cinventory.clear(first);
}
else
{
// split the stack and store
itemStack.setAmount(amount - toDelete);
cinventory.setItem(first, itemStack);
toDelete = 0;
}
}
}
}
return leftover;
}
public static boolean containsItem(final Inventory cinventory, final boolean forceDurability, final ItemStack... items)
{
final Map<Integer, ItemStack> leftover = new HashMap<Integer, ItemStack>();
// TODO: optimization
// combine items
ItemStack[] combined = new ItemStack[items.length];
for (int i = 0; i < items.length; i++)
{
if (items[i] == null)
{
continue;
}
for (int j = 0; j < combined.length; j++)
{
if (combined[j] == null)
{
combined[j] = new ItemStack(items[i].getType(), items[i].getAmount(), items[i].getDurability());
break;
}
if (combined[j].getTypeId() == items[i].getTypeId() && (!forceDurability || combined[j].getDurability() == items[i].getDurability()))
{
combined[j].setAmount(combined[j].getAmount() + items[i].getAmount());
break;
}
}
}
for (int i = 0; i < combined.length; i++)
{
final ItemStack item = combined[i];
if (item == null)
{
continue;
}
int mustHave = item.getAmount();
int position = 0;
while (true)
{
// Bail when done
if (mustHave <= 0)
{
break;
}
final int slot = next(cinventory, item, position, forceDurability, false);
// Drat! we don't have this type in the inventory
if (slot == -1)
{
leftover.put(i, item);
break;
}
else
{
final ItemStack itemStack = cinventory.getItem(slot);
final int amount = itemStack.getAmount();
if (amount <= mustHave)
{
mustHave -= amount;
}
else
{
mustHave = 0;
}
position = slot + 1;
}
}
}
return leftover.isEmpty();
}
public static Item[] dropItem(final Location loc, final ItemStack itm)
{
final int maxStackSize = itm.getType().getMaxStackSize();
final int stacks = itm.getAmount() / maxStackSize;
final int leftover = itm.getAmount() % maxStackSize;
Item[] itemStacks = new Item[stacks + (leftover > 0 ? 1 : 0)];
for (int i = 0; i < stacks; i++)
{
itemStacks[i] = loc.getWorld().dropItem(loc, new ItemStack(itm.getType(), maxStackSize, itm.getDurability()));
}
if (leftover > 0)
{
itemStacks[stacks] = loc.getWorld().dropItem(loc, new ItemStack(itm.getType(), leftover, itm.getDurability()));
}
return itemStacks;
}
}

View File

@@ -1,118 +0,0 @@
package com.earth2me.essentials;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
public class ItemDb implements IConf
{
private final transient IEssentials ess;
public ItemDb(final IEssentials ess)
{
this.ess = ess;
file = new ManagedFile("items.csv", ess);
}
private final transient Map<String, Integer> items = new HashMap<String, Integer>();
private final transient Map<String, Short> durabilities = new HashMap<String, Short>();
private final transient ManagedFile file;
@Override
public void reloadConfig()
{
final List<String> lines = file.getLines();
if (lines.isEmpty()) {
return;
}
durabilities.clear();
items.clear();
for (String line : lines)
{
line = line.trim().toLowerCase();
if (line.length() > 0 && line.charAt(0) == '#')
{
continue;
}
final String[] parts = line.split("[^a-z0-9]");
if (parts.length < 2)
{
continue;
}
final int numeric = Integer.parseInt(parts[1]);
durabilities.put(parts[0].toLowerCase(), parts.length > 2 && !parts[2].equals("0") ? Short.parseShort(parts[2]) : 0);
items.put(parts[0].toLowerCase(), numeric);
}
}
public ItemStack get(final String id, final int quantity) throws Exception
{
final ItemStack retval = get(id.toLowerCase());
retval.setAmount(quantity);
return retval;
}
public ItemStack get(final String id) throws Exception
{
int itemid = 0;
String itemname = null;
short metaData = 0;
if (id.matches("^\\d+[:+',;.]\\d+$"))
{
itemid = Integer.parseInt(id.split("[:+',;.]")[0]);
metaData = Short.parseShort(id.split("[:+',;.]")[1]);
}
else if (id.matches("^\\d+$"))
{
itemid = Integer.parseInt(id);
}
else if (id.matches("^[^:+',;.]+[:+',;.]\\d+$"))
{
itemname = id.split("[:+',;.]")[0].toLowerCase();
metaData = Short.parseShort(id.split("[:+',;.]")[1]);
}
else
{
itemname = id.toLowerCase();
}
if (itemname != null)
{
if (items.containsKey(itemname))
{
itemid = items.get(itemname);
if (durabilities.containsKey(itemname) && metaData == 0)
{
metaData = durabilities.get(itemname);
}
}
else if (Material.getMaterial(itemname) != null)
{
itemid = Material.getMaterial(itemname).getId();
metaData = 0;
}
else
{
throw new Exception(Util.format("unknownItemName", id));
}
}
final Material mat = Material.getMaterial(itemid);
if (mat == null)
{
throw new Exception(Util.format("unknownItemId", itemid));
}
final ItemStack retval = new ItemStack(mat);
retval.setAmount(ess.getSettings().getDefaultStackSize());
retval.setDurability(metaData);
return retval;
}
}

View File

@@ -1,97 +0,0 @@
package com.earth2me.essentials;
import java.io.File;
import java.util.List;
import java.util.logging.Logger;
import org.bukkit.Location;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDamageEvent;
import org.bukkit.event.block.BlockListener;
import org.bukkit.event.block.BlockPlaceEvent;
public class Jail extends BlockListener implements IConf
{
private static final Logger logger = Logger.getLogger("Minecraft");
private final EssentialsConf config;
private final IEssentials ess;
public Jail(IEssentials ess)
{
this.ess = ess;
config = new EssentialsConf(new File(ess.getDataFolder(), "jail.yml"));
config.load();
}
public void setJail(Location loc, String jailName) throws Exception
{
config.setProperty(jailName.toLowerCase(), loc);
config.save();
}
public Location getJail(String jailName) throws Exception
{
if (jailName == null || config.getProperty(jailName.toLowerCase()) == null)
{
throw new Exception(Util.i18n("jailNotExist"));
}
Location loc = config.getLocation(jailName.toLowerCase(), ess.getServer());
return loc;
}
public void sendToJail(User user, String jail) throws Exception
{
if (!(user.getBase() instanceof OfflinePlayer))
{
user.getTeleport().now(getJail(jail));
}
user.setJail(jail);
}
public void delJail(String jail) throws Exception
{
config.removeProperty(jail.toLowerCase());
config.save();
}
public List<String> getJails() throws Exception
{
return config.getKeys(null);
}
public void reloadConfig()
{
config.load();
}
@Override
public void onBlockBreak(BlockBreakEvent event)
{
User user = ess.getUser(event.getPlayer());
if (user.isJailed())
{
event.setCancelled(true);
}
}
@Override
public void onBlockPlace(BlockPlaceEvent event)
{
User user = ess.getUser(event.getPlayer());
if (user.isJailed())
{
event.setCancelled(true);
}
}
@Override
public void onBlockDamage(BlockDamageEvent event)
{
User user = ess.getUser(event.getPlayer());
if (user.isJailed())
{
event.setCancelled(true);
}
}
}

View File

@@ -1,84 +0,0 @@
package com.earth2me.essentials;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
public class JailPlayerListener extends PlayerListener
{
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private final IEssentials ess;
public JailPlayerListener(IEssentials parent)
{
this.ess = parent;
}
@Override
public void onPlayerInteract(PlayerInteractEvent event)
{
final User user = ess.getUser(event.getPlayer());
if (user.isJailed())
{
event.setCancelled(true);
}
}
@Override
public void onPlayerRespawn(PlayerRespawnEvent event)
{
final User user = ess.getUser(event.getPlayer());
if (user.isJailed() && user.getJail() != null && !user.getJail().isEmpty())
{
try
{
event.setRespawnLocation(ess.getJail().getJail(user.getJail()));
}
catch (Exception ex)
{
}
}
}
@Override
public void onPlayerTeleport(PlayerTeleportEvent event)
{
final User user = ess.getUser(event.getPlayer());
if (!user.isJailed() || user.getJail() == null || user.getJail().isEmpty())
{
return;
}
try
{
event.setTo(ess.getJail().getJail(user.getJail()));
}
catch (Exception ex)
{
LOGGER.log(Level.WARNING, Util.i18n("returnPlayerToJailError"), ex);
}
user.sendMessage(Util.i18n("jailMessage"));
}
@Override
public void onPlayerJoin(final PlayerJoinEvent event)
{
User u = ess.getUser(event.getPlayer());
if (u.isJailed())
{
try
{
ess.getJail().sendToJail(u, u.getJail());
}
catch (Exception ex)
{
LOGGER.log(Level.WARNING, Util.i18n("returnPlayerToJailError"), ex);
}
u.sendMessage(Util.i18n("jailMessage"));
}
}
}

View File

@@ -1,104 +0,0 @@
package com.earth2me.essentials;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.entity.CreatureType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
public enum Mob
{
CHICKEN("Chicken", Enemies.FRIENDLY, CreatureType.CHICKEN),
COW("Cow", Enemies.FRIENDLY, CreatureType.COW),
CREEPER("Creeper", Enemies.ENEMY, CreatureType.CREEPER),
GHAST("Ghast", Enemies.ENEMY, CreatureType.GHAST),
GIANT("Giant", Enemies.ENEMY, CreatureType.GIANT),
PIG("Pig", Enemies.FRIENDLY, CreatureType.PIG),
PIGZOMB("PigZombie", Enemies.NEUTRAL, CreatureType.PIG_ZOMBIE),
SHEEP("Sheep", Enemies.FRIENDLY, "", CreatureType.SHEEP),
SKELETON("Skeleton", Enemies.ENEMY, CreatureType.SKELETON),
SLIME("Slime", Enemies.ENEMY, CreatureType.SLIME),
SPIDER("Spider", Enemies.ENEMY, CreatureType.SPIDER),
SQUID("Squid", Enemies.FRIENDLY, CreatureType.SQUID),
ZOMBIE("Zombie", Enemies.ENEMY, CreatureType.ZOMBIE),
WOLF("Wolf", Enemies.NEUTRAL, CreatureType.WOLF),
CAVESPIDER("CaveSpider", Enemies.ENEMY, CreatureType.CAVE_SPIDER),
ENDERMAN("Enderman", Enemies.ENEMY, "", CreatureType.ENDERMAN),
SILVERFISH("Silverfish", Enemies.ENEMY, "", CreatureType.SILVERFISH);
public static final Logger logger = Logger.getLogger("Minecraft");
private Mob(String n, Enemies en, String s, CreatureType type)
{
this.suffix = s;
this.name = n;
this.type = en;
this.bukkitType = type;
}
private Mob(String n, Enemies en, CreatureType type)
{
this.name = n;
this.type = en;
this.bukkitType = type;
}
public String suffix = "s";
final public String name;
final public Enemies type;
final private CreatureType bukkitType;
private static final Map<String, Mob> hashMap = new HashMap<String, Mob>();
static
{
for (Mob mob : Mob.values())
{
hashMap.put(mob.name, mob);
}
}
public LivingEntity spawn(final Player player, final Server server, final Location loc) throws MobException
{
final LivingEntity entity = player.getWorld().spawnCreature(loc, this.bukkitType);
if (entity == null)
{
logger.log(Level.WARNING, Util.i18n("unableToSpawnMob"));
throw new MobException();
}
return entity;
}
public enum Enemies
{
FRIENDLY("friendly"),
NEUTRAL("neutral"),
ENEMY("enemy");
private Enemies(final String t)
{
this.type = t;
}
final protected String type;
}
public CreatureType getType () {
return bukkitType;
}
public static class MobException extends Exception
{
private static final long serialVersionUID = 1L;
}
public static Mob fromName(String n)
{
return hashMap.get(n);
}
}

View File

@@ -1,747 +0,0 @@
package com.earth2me.essentials;
import java.net.InetSocketAddress;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import org.bukkit.Achievement;
import org.bukkit.Effect;
import org.bukkit.GameMode;
import org.bukkit.Instrument;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Note;
import org.bukkit.Server;
import org.bukkit.Statistic;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Egg;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Snowball;
import org.bukkit.entity.Vehicle;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.map.MapView;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.permissions.PermissionAttachmentInfo;
import org.bukkit.plugin.Plugin;
import org.bukkit.util.Vector;
public class OfflinePlayer implements Player
{
private final String name;
final transient IEssentials ess;
private Location location = new Location(null, 0, 0, 0, 0, 0);
private World world;
private UUID uniqueId = UUID.randomUUID();
private org.bukkit.OfflinePlayer base;
public OfflinePlayer(String name, IEssentials ess)
{
this.name = name;
this.ess = ess;
this.world = ess.getServer().getWorlds().get(0);
this.base = ess.getServer().getOfflinePlayer(name);
}
public boolean isOnline()
{
return base.isOnline();
}
public boolean isOp()
{
return base.isOp();
}
public void sendMessage(String string)
{
}
public String getDisplayName()
{
return name;
}
public void setDisplayName(String string)
{
}
public void setCompassTarget(Location lctn)
{
}
public InetSocketAddress getAddress()
{
return null;
}
public void kickPlayer(String string)
{
}
public String getName()
{
return name;
}
public PlayerInventory getInventory()
{
return null;
}
public ItemStack getItemInHand()
{
return null;
}
public void setItemInHand(ItemStack is)
{
}
public int getHealth()
{
return 0;
}
public void setHealth(int i)
{
}
public Egg throwEgg()
{
return null;
}
public Snowball throwSnowball()
{
return null;
}
public Arrow shootArrow()
{
return null;
}
public boolean isInsideVehicle()
{
return false;
}
public boolean leaveVehicle()
{
return false;
}
public Vehicle getVehicle()
{
return null;
}
public Location getLocation()
{
return location;
}
public World getWorld()
{
return world;
}
public void setLocation(Location loc)
{
location = loc;
world = loc.getWorld();
}
public void teleportTo(Location lctn)
{
}
public void teleportTo(Entity entity)
{
}
public int getEntityId()
{
return -1;
}
public boolean performCommand(String string)
{
return false;
}
public boolean isPlayer()
{
return false;
}
public int getRemainingAir()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setRemainingAir(int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public int getMaximumAir()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setMaximumAir(int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean isSneaking()
{
return false;
}
public void setSneaking(boolean bln)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void updateInventory()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void chat(String string)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public double getEyeHeight()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public double getEyeHeight(boolean bln)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public List<Block> getLineOfSight(HashSet<Byte> hs, int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public Block getTargetBlock(HashSet<Byte> hs, int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public List<Block> getLastTwoTargetBlocks(HashSet<Byte> hs, int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public int getFireTicks()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public int getMaxFireTicks()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setFireTicks(int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void remove()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public Server getServer()
{
return ess == null ? null : ess.getServer();
}
public Vector getMomentum()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setMomentum(Vector vector)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setVelocity(Vector vector)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public Vector getVelocity()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void damage(int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void damage(int i, Entity entity)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public Location getEyeLocation()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void sendRawMessage(String string)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public Location getCompassTarget()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public int getMaximumNoDamageTicks()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setMaximumNoDamageTicks(int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public int getLastDamage()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setLastDamage(int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public int getNoDamageTicks()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setNoDamageTicks(int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean teleport(Location lctn)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean teleport(Entity entity)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public Entity getPassenger()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean setPassenger(Entity entity)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean isEmpty()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean eject()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void saveData()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void loadData()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean isSleeping()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public int getSleepTicks()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public List<Entity> getNearbyEntities(double d, double d1, double d2)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean isDead()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public float getFallDistance()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setFallDistance(float f)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setSleepingIgnored(boolean bln)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean isSleepingIgnored()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void awardAchievement(Achievement a)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void incrementStatistic(Statistic ststc)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void incrementStatistic(Statistic ststc, int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void incrementStatistic(Statistic ststc, Material mtrl)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void incrementStatistic(Statistic ststc, Material mtrl, int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void playNote(Location lctn, byte b, byte b1)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void sendBlockChange(Location lctn, Material mtrl, byte b)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void sendBlockChange(Location lctn, int i, byte b)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void setLastDamageCause(EntityDamageEvent ede)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public EntityDamageEvent getLastDamageCause()
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public void playEffect(Location lctn, Effect effect, int i)
{
throw new UnsupportedOperationException(Util.i18n("notSupportedYet"));
}
public boolean sendChunkChange(Location lctn, int i, int i1, int i2, byte[] bytes)
{
return true;
}
public UUID getUniqueId()
{
return uniqueId;
}
public void playNote(Location lctn, Instrument i, Note note)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void setPlayerTime(long l, boolean bln)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public long getPlayerTime()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public long getPlayerTimeOffset()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean isPlayerTimeRelative()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void resetPlayerTime()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean isPermissionSet(String string)
{
return false;
}
public boolean isPermissionSet(Permission prmsn)
{
return false;
}
public boolean hasPermission(String string)
{
return false;
}
public boolean hasPermission(Permission prmsn)
{
return false;
}
public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public PermissionAttachment addAttachment(Plugin plugin)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln, int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public PermissionAttachment addAttachment(Plugin plugin, int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void removeAttachment(PermissionAttachment pa)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void recalculatePermissions()
{
}
public Set<PermissionAttachmentInfo> getEffectivePermissions()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void setOp(boolean bln)
{
base.setOp(bln);
}
@Override
public void sendMap(MapView mv)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isBanned()
{
return base.isBanned();
}
@Override
public void setBanned(boolean bln)
{
base.setBanned(bln);
}
@Override
public boolean isWhitelisted()
{
return base.isWhitelisted();
}
@Override
public void setWhitelisted(boolean bln)
{
base.setWhitelisted(bln);
}
@Override
public GameMode getGameMode()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setGameMode(GameMode gm)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int getExperience()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setExperience(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int getLevel()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setLevel(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int getTotalExperience()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setTotalExperience(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public float getExhaustion()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setExhaustion(float f)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public float getSaturation()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setSaturation(float f)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int getFoodLevel()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setFoodLevel(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public Location getBedSpawnLocation()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isSprinting()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setSprinting(boolean bln)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setPlayerListName(String name)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public String getPlayerListName()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int getTicksLived()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setTicksLived(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public Map<String, Object> serialize()
{
throw new UnsupportedOperationException("Not supported yet.");
}
}

View File

@@ -1,59 +0,0 @@
package com.earth2me.essentials;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import net.minecraft.server.EntityPlayer;
import net.minecraft.server.IInventory;
import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
import org.bukkit.entity.Player;
public class PlayerExtension extends PlayerWrapper
{
protected final IEssentials ess;
public PlayerExtension(Player base, IEssentials ess)
{
super(base);
this.ess = ess;
}
public void showInventory(IInventory inventory)
{
getHandle().a(inventory);
}
public void showInventory(CraftInventoryPlayer inventory)
{
showInventory((IInventory)inventory.getInventory());
}
public TargetBlock getTarget()
{
return new TargetBlock(getBase());
}
public String getGroup()
{
return ess.getPermissionsHandler().getGroup(base);
}
public boolean inGroup(String group)
{
return ess.getPermissionsHandler().inGroup(base, group);
}
public boolean canBuild()
{
return ess.getPermissionsHandler().canBuild(base, getGroup());
}
public EntityPlayer getHandle()
{
return getCraftPlayer().getHandle();
}
public CraftPlayer getCraftPlayer()
{
return (CraftPlayer)base;
}
}

View File

@@ -1,777 +0,0 @@
package com.earth2me.essentials;
import java.net.InetSocketAddress;
import java.util.*;
import org.bukkit.*;
import org.bukkit.block.Block;
import org.bukkit.entity.*;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.inventory.*;
import org.bukkit.map.MapView;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.permissions.PermissionAttachmentInfo;
import org.bukkit.plugin.Plugin;
import org.bukkit.util.Vector;
public class PlayerWrapper implements Player
{
protected Player base;
public PlayerWrapper(Player base)
{
this.base = base;
}
public final Player getBase()
{
return base;
}
public final Player setBase(Player base)
{
return this.base = base;
}
@Override
public void setDisplayName(String string)
{
base.setDisplayName(string);
}
@Override
public void setCompassTarget(Location lctn)
{
base.setCompassTarget(lctn);
}
@Override
public InetSocketAddress getAddress()
{
return base.getAddress();
}
@Override
public void kickPlayer(String string)
{
base.kickPlayer(string);
}
@Override
public String getName()
{
return base.getName();
}
@Override
public PlayerInventory getInventory()
{
return base.getInventory();
}
@Override
public ItemStack getItemInHand()
{
return base.getItemInHand();
}
@Override
public void setItemInHand(ItemStack is)
{
base.setItemInHand(is);
}
@Override
public int getHealth()
{
return base.getHealth();
}
@Override
public void setHealth(int i)
{
base.setHealth(i);
}
@Override
public Egg throwEgg()
{
return base.throwEgg();
}
@Override
public Snowball throwSnowball()
{
return base.throwSnowball();
}
@Override
public Arrow shootArrow()
{
return base.shootArrow();
}
@Override
public boolean isInsideVehicle()
{
return base.isInsideVehicle();
}
@Override
public boolean leaveVehicle()
{
return base.leaveVehicle();
}
@Override
public Vehicle getVehicle()
{
return base.getVehicle();
}
@Override
public Location getLocation()
{
return base.getLocation();
}
@Override
public World getWorld()
{
return base.getWorld();
}
@Override
public Server getServer()
{
return base.getServer();
}
@Override
public boolean isOnline()
{
return base.isOnline();
}
@Override
public boolean isOp()
{
return base.isOp();
}
@Override
public boolean teleport(Location lctn)
{
return base.teleport(lctn);
}
@Override
public boolean teleport(Entity entity)
{
return base.teleport(entity);
}
@Override
public void sendMessage(String string)
{
base.sendMessage(string);
}
@Override
public void setVelocity(Vector vector)
{
base.setVelocity(vector);
}
@Override
public Vector getVelocity()
{
return base.getVelocity();
}
@Override
public double getEyeHeight()
{
return base.getEyeHeight();
}
@Override
public double getEyeHeight(boolean bln)
{
return base.getEyeHeight(bln);
}
@Override
public List<Block> getLineOfSight(HashSet<Byte> hs, int i)
{
return base.getLineOfSight(hs, i);
}
@Override
public Block getTargetBlock(HashSet<Byte> hs, int i)
{
return base.getTargetBlock(hs, i);
}
@Override
public List<Block> getLastTwoTargetBlocks(HashSet<Byte> hs, int i)
{
return base.getLastTwoTargetBlocks(hs, i);
}
@Override
public int getFireTicks()
{
return base.getFireTicks();
}
@Override
public int getMaxFireTicks()
{
return base.getMaxFireTicks();
}
@Override
public void setFireTicks(int i)
{
base.setFireTicks(i);
}
@Override
public void remove()
{
base.remove();
}
/**
* This is not deprecated because the underlying method isn't really deprecated; rather, it's just "imperfect". By
* We will continue to use this method even after the underlying CraftBukkit method is changed, so do not deprecate
* it. Chances are Bukkit will also choose to un-deprecate this method at some point.
*/
@Override
public void updateInventory()
{
base.updateInventory();
}
@Override
public void chat(String string)
{
base.chat(string);
}
@Override
public boolean isSneaking()
{
return base.isSneaking();
}
@Override
public void setSneaking(boolean bln)
{
base.setSneaking(bln);
}
@Override
public int getEntityId()
{
return base.getEntityId();
}
@Override
public boolean performCommand(String string)
{
return base.performCommand(string);
}
@Override
public int getRemainingAir()
{
return base.getRemainingAir();
}
@Override
public void setRemainingAir(int i)
{
base.setRemainingAir(i);
}
@Override
public int getMaximumAir()
{
return base.getMaximumAir();
}
@Override
public void setMaximumAir(int i)
{
base.setMaximumAir(i);
}
@Override
public String getDisplayName()
{
if (base.getDisplayName() != null)
return base.getDisplayName();
else
return base.getName();
}
@Override
public void damage(int i)
{
base.damage(i);
}
@Override
public void damage(int i, Entity entity)
{
base.damage(i, entity);
}
@Override
public Location getEyeLocation()
{
return base.getEyeLocation();
}
@Override
public void sendRawMessage(String string) {
base.sendRawMessage(string);
}
@Override
public Location getCompassTarget()
{
return base.getCompassTarget();
}
@Override
public int getMaximumNoDamageTicks()
{
return base.getMaximumNoDamageTicks();
}
@Override
public void setMaximumNoDamageTicks(int i)
{
base.setMaximumNoDamageTicks(i);
}
@Override
public int getLastDamage()
{
return base.getLastDamage();
}
@Override
public void setLastDamage(int i)
{
base.setLastDamage(i);
}
@Override
public int getNoDamageTicks()
{
return base.getNoDamageTicks();
}
@Override
public void setNoDamageTicks(int i)
{
base.setNoDamageTicks(i);
}
@Override
public Entity getPassenger()
{
return base.getPassenger();
}
@Override
public boolean setPassenger(Entity entity)
{
return base.setPassenger(entity);
}
@Override
public boolean isEmpty()
{
return base.isEmpty();
}
@Override
public boolean eject()
{
return base.eject();
}
public void saveData()
{
base.saveData();
}
public void loadData()
{
base.loadData();
}
public boolean isSleeping()
{
return base.isSleeping();
}
public int getSleepTicks()
{
return base.getSleepTicks();
}
public List<Entity> getNearbyEntities(double d, double d1, double d2)
{
return base.getNearbyEntities(d, d1, d2);
}
public boolean isDead()
{
return base.isDead();
}
public float getFallDistance()
{
return base.getFallDistance();
}
public void setFallDistance(float f)
{
base.setFallDistance(f);
}
public void setSleepingIgnored(boolean bln)
{
base.setSleepingIgnored(bln);
}
public boolean isSleepingIgnored()
{
return base.isSleepingIgnored();
}
public void awardAchievement(Achievement a)
{
base.awardAchievement(a);
}
public void incrementStatistic(Statistic ststc)
{
base.incrementStatistic(ststc);
}
public void incrementStatistic(Statistic ststc, int i)
{
base.incrementStatistic(ststc, i);
}
public void incrementStatistic(Statistic ststc, Material mtrl)
{
base.incrementStatistic(ststc, mtrl);
}
public void incrementStatistic(Statistic ststc, Material mtrl, int i)
{
base.incrementStatistic(ststc, mtrl, i);
}
public void playNote(Location lctn, byte b, byte b1)
{
base.playNote(lctn, b, b1);
}
public void sendBlockChange(Location lctn, Material mtrl, byte b)
{
base.sendBlockChange(lctn, mtrl, b);
}
public void sendBlockChange(Location lctn, int i, byte b)
{
base.sendBlockChange(lctn, i, b);
}
public void setLastDamageCause(EntityDamageEvent ede)
{
base.setLastDamageCause(ede);
}
public EntityDamageEvent getLastDamageCause()
{
return base.getLastDamageCause();
}
public void playEffect(Location lctn, Effect effect, int i)
{
base.playEffect(lctn, effect, i);
}
public boolean sendChunkChange(Location lctn, int i, int i1, int i2, byte[] bytes)
{
return base.sendChunkChange(lctn, i, i1, i2, bytes);
}
public UUID getUniqueId()
{
return base.getUniqueId();
}
public void playNote(Location lctn, Instrument i, Note note)
{
base.playNote(lctn, i, note);
}
public void setPlayerTime(long l, boolean bln)
{
base.setPlayerTime(l, bln);
}
public long getPlayerTime()
{
return base.getPlayerTime();
}
public long getPlayerTimeOffset()
{
return base.getPlayerTimeOffset();
}
public boolean isPlayerTimeRelative()
{
return base.isPlayerTimeRelative();
}
public void resetPlayerTime()
{
base.resetPlayerTime();
}
public boolean isPermissionSet(String string)
{
return base.isPermissionSet(string);
}
public boolean isPermissionSet(Permission prmsn)
{
return base.isPermissionSet(prmsn);
}
public boolean hasPermission(String string)
{
return base.hasPermission(string);
}
public boolean hasPermission(Permission prmsn)
{
return base.hasPermission(prmsn);
}
public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln)
{
return base.addAttachment(plugin, string, bln);
}
public PermissionAttachment addAttachment(Plugin plugin)
{
return base.addAttachment(plugin);
}
public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln, int i)
{
return base.addAttachment(plugin, string, bln, i);
}
public PermissionAttachment addAttachment(Plugin plugin, int i)
{
return base.addAttachment(plugin, i);
}
public void removeAttachment(PermissionAttachment pa)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void recalculatePermissions()
{
base.recalculatePermissions();
}
public Set<PermissionAttachmentInfo> getEffectivePermissions()
{
return base.getEffectivePermissions();
}
public void setOp(boolean bln)
{
base.setOp(bln);
}
@Override
public void sendMap(MapView mv)
{
base.sendMap(mv);
}
@Override
public boolean isBanned()
{
return base.isBanned();
}
@Override
public void setBanned(boolean bln)
{
base.setBanned(bln);
}
@Override
public boolean isWhitelisted()
{
return base.isWhitelisted();
}
@Override
public void setWhitelisted(boolean bln)
{
base.setWhitelisted(bln);
}
@Override
public GameMode getGameMode()
{
return base.getGameMode();
}
@Override
public void setGameMode(GameMode gm)
{
base.setGameMode(gm);
}
@Override
public int getExperience()
{
return base.getExperience();
}
@Override
public void setExperience(int i)
{
base.setExperience(i);
}
@Override
public int getLevel()
{
return base.getLevel();
}
@Override
public void setLevel(int i)
{
base.setLevel(i);
}
@Override
public int getTotalExperience()
{
return base.getTotalExperience();
}
@Override
public void setTotalExperience(int i)
{
base.setTotalExperience(i);
}
@Override
public float getExhaustion()
{
return base.getExhaustion();
}
@Override
public void setExhaustion(float f)
{
base.setExhaustion(f);
}
@Override
public float getSaturation()
{
return base.getSaturation();
}
@Override
public void setSaturation(float f)
{
base.setSaturation(f);
}
@Override
public int getFoodLevel()
{
return base.getFoodLevel();
}
@Override
public void setFoodLevel(int i)
{
base.setFoodLevel(i);
}
@Override
public Location getBedSpawnLocation()
{
return base.getBedSpawnLocation();
}
@Override
public boolean isSprinting()
{
return base.isSprinting();
}
@Override
public void setSprinting(boolean bln)
{
base.setSprinting(bln);
}
@Override
public void setPlayerListName(String name)
{
base.setPlayerListName(name);
}
@Override
public String getPlayerListName()
{
return base.getPlayerListName();
}
@Override
public int getTicksLived()
{
return base.getTicksLived();
}
@Override
public void setTicksLived(int i)
{
base.setTicksLived(i);
}
@Override
public Map<String, Object> serialize()
{
return base.serialize();
}
}

View File

@@ -1,532 +0,0 @@
package com.earth2me.essentials;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.ChatColor;
import com.earth2me.essentials.commands.IEssentialsCommand;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.bukkit.inventory.ItemStack;
public class Settings implements ISettings
{
private final transient EssentialsConf config;
private final static Logger logger = Logger.getLogger("Minecraft");
private final transient IEssentials ess;
public Settings(IEssentials ess)
{
this.ess = ess;
config = new EssentialsConf(new File(ess.getDataFolder(), "config.yml"));
config.setTemplateName("/config.yml");
reloadConfig();
}
@Override
public boolean getRespawnAtHome()
{
return config.getBoolean("respawn-at-home", false);
}
@Override
public boolean getBedSetsHome()
{
return config.getBoolean("bed-sethome", false);
}
@Override
public List<String> getMultipleHomes()
{
return config.getKeys("sethome-multiple");
}
@Override
public int getHomeLimit(final User user)
{
final List<String> homeList = getMultipleHomes();
if (homeList == null)
{
//TODO: Replace this code to remove backwards compat, after settings are automatically updated
// return getHomeLimit("default");
return config.getInt("multiple-homes", 5);
}
int limit = getHomeLimit("default");
for (String set : homeList)
{
logger.log(Level.INFO, "Found home set: " + set);
if (user.hasPermission("essentials.sethome.multiple." + set) && limit < getHomeLimit(set))
{
limit = getHomeLimit(set);
}
}
return limit;
}
@Override
public int getHomeLimit(final String set)
{
return config.getInt("sethome-multiple." + set, config.getInt("sethome-multiple.default", 3));
}
@Override
public int getChatRadius()
{
return config.getInt("chat.radius", config.getInt("chat-radius", 0));
}
@Override
public double getTeleportDelay()
{
return config.getDouble("teleport-delay", 0);
}
@Override
public int getDefaultStackSize()
{
return config.getInt("default-stack-size", 64);
}
@Override
public int getStartingBalance()
{
return config.getInt("starting-balance", 0);
}
@Override
public boolean isCommandDisabled(final IEssentialsCommand cmd)
{
return isCommandDisabled(cmd.getName());
}
@Override
public boolean isCommandDisabled(String label)
{
for (String c : config.getStringList("disabled-commands", new ArrayList<String>(0)))
{
if (!c.equalsIgnoreCase(label))
{
continue;
}
return true;
}
return config.getBoolean("disable-" + label.toLowerCase(), false);
}
@Override
public boolean isCommandRestricted(IEssentialsCommand cmd)
{
return isCommandRestricted(cmd.getName());
}
@Override
public boolean isCommandRestricted(String label)
{
for (String c : config.getStringList("restricted-commands", new ArrayList<String>(0)))
{
if (!c.equalsIgnoreCase(label))
{
continue;
}
return true;
}
return config.getBoolean("restrict-" + label.toLowerCase(), false);
}
@Override
public boolean isPlayerCommand(String label)
{
for (String c : config.getStringList("player-commands", new ArrayList<String>(0)))
{
if (!c.equalsIgnoreCase(label))
{
continue;
}
return true;
}
return false;
}
@Override
public boolean isCommandOverridden(String name)
{
List<String> defaultList = new ArrayList<String>(1);
defaultList.add("god");
for (String c : config.getStringList("overridden-commands", defaultList))
{
if (!c.equalsIgnoreCase(name))
{
continue;
}
return true;
}
return config.getBoolean("override-" + name.toLowerCase(), false);
}
@Override
public double getCommandCost(IEssentialsCommand cmd)
{
return getCommandCost(cmd.getName());
}
@Override
public double getCommandCost(String label)
{
double cost = config.getDouble("command-costs." + label, 0.0);
if (cost == 0.0)
{
cost = config.getDouble("cost-" + label, 0.0);
}
return cost;
}
@Override
public String getNicknamePrefix()
{
return config.getString("nickname-prefix", "~");
}
@Override
public double getTeleportCooldown()
{
return config.getDouble("teleport-cooldown", 60);
}
@Override
public double getHealCooldown()
{
return config.getDouble("heal-cooldown", 60);
}
@Override
public Object getKit(String name)
{
Map<String, Object> kits = (Map<String, Object>)config.getProperty("kits");
for (Map.Entry<String, Object> entry : kits.entrySet())
{
if (entry.getKey().equalsIgnoreCase(name.replace('.', '_').replace('/', '_')))
{
return entry.getValue();
}
}
return null;
}
@Override
public Map<String, Object> getKits()
{
return (Map<String, Object>)config.getProperty("kits");
}
@Override
public ChatColor getOperatorColor() throws Exception
{
String colorName = config.getString("ops-name-color", null);
if (colorName == null)
{
return ChatColor.RED;
}
if ("none".equalsIgnoreCase(colorName) || colorName.isEmpty())
{
throw new Exception();
}
try
{
return ChatColor.valueOf(colorName.toUpperCase());
}
catch (IllegalArgumentException ex)
{
}
return ChatColor.getByCode(Integer.parseInt(colorName, 16));
}
@Override
public boolean getReclaimSetting()
{
return config.getBoolean("reclaim-onlogout", true);
}
@Override
public int getSpawnMobLimit()
{
return config.getInt("spawnmob-limit", 10);
}
@Override
public boolean showNonEssCommandsInHelp()
{
return config.getBoolean("non-ess-in-help", true);
}
@Override
public boolean hidePermissionlessHelp()
{
return config.getBoolean("hide-permissionless-help", true);
}
@Override
public int getProtectCreeperMaxHeight()
{
return config.getInt("protect.creeper.max-height", -1);
}
@Override
public boolean areSignsDisabled()
{
return config.getBoolean("signs-disabled", false);
}
@Override
public long getBackupInterval()
{
return config.getInt("backup.interval", 1440); // 1440 = 24 * 60
}
@Override
public String getBackupCommand()
{
return config.getString("backup.command", null);
}
@Override
public String getChatFormat(String group)
{
return config.getString("chat.group-formats." + (group == null ? "Default" : group),
config.getString("chat.format", "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}"));
}
@Override
public boolean getAnnounceNewPlayers()
{
return !config.getString("newbies.announce-format", "-").isEmpty();
}
@Override
public String getAnnounceNewPlayerFormat(IUser user)
{
return format(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"), user);
}
@Override
public String format(String format, IUser user)
{
return format.replace('&', '§').replace("§§", "&").replace("{PLAYER}", user.getDisplayName()).replace("{DISPLAYNAME}", user.getDisplayName()).replace("{GROUP}", user.getGroup()).replace("{USERNAME}", user.getName()).replace("{ADDRESS}", user.getAddress().toString());
}
@Override
public String getNewbieSpawn()
{
return config.getString("newbies.spawnpoint", "default");
}
@Override
public boolean getPerWarpPermission()
{
return config.getBoolean("per-warp-permission", false);
}
@Override
public boolean getSortListByGroups()
{
return config.getBoolean("sort-list-by-groups", true);
}
@Override
public void reloadConfig()
{
config.load();
}
@Override
public List<Integer> itemSpawnBlacklist()
{
final List<Integer> epItemSpwn = new ArrayList<Integer>();
for (String itemName : config.getString("item-spawn-blacklist", "").split(","))
{
itemName = itemName.trim();
if (itemName.isEmpty())
{
continue;
}
ItemStack is;
try
{
is = ess.getItemDb().get(itemName);
epItemSpwn.add(is.getTypeId());
}
catch (Exception ex)
{
logger.log(Level.SEVERE, Util.format("unknownItemInList", itemName, "item-spawn-blacklist"));
}
}
return epItemSpwn;
}
@Override
public boolean spawnIfNoHome()
{
return config.getBoolean("spawn-if-no-home", false);
}
@Override
public boolean warnOnBuildDisallow()
{
return config.getBoolean("protect.disable.warn-on-build-disallow", false);
}
@Override
public boolean isDebug()
{
return config.getBoolean("debug", false);
}
@Override
public boolean warnOnSmite()
{
return config.getBoolean("warn-on-smite", true);
}
@Override
public boolean permissionBasedItemSpawn()
{
return config.getBoolean("permission-based-item-spawn", false);
}
@Override
public String getLocale()
{
return config.getString("locale", "");
}
@Override
public String getCurrencySymbol()
{
return config.getString("currency-symbol", "$").substring(0, 1).replaceAll("[0-9]", "$");
}
@Override
public boolean isTradeInStacks(int id)
{
return config.getBoolean("trade-in-stacks-" + id, false);
}
@Override
public boolean isEcoDisabled()
{
return config.getBoolean("disable-eco", false);
}
@Override
public boolean getProtectPreventSpawn(final String creatureName)
{
return config.getBoolean("protect.prevent.spawn." + creatureName, false);
}
@Override
public List<Integer> getProtectList(final String configName)
{
final List<Integer> list = new ArrayList<Integer>();
for (String itemName : config.getString(configName, "").split(","))
{
itemName = itemName.trim();
if (itemName.isEmpty())
{
continue;
}
ItemStack itemStack;
try
{
itemStack = ess.getItemDb().get(itemName);
list.add(itemStack.getTypeId());
}
catch (Exception ex)
{
logger.log(Level.SEVERE, Util.format("unknownItemInList", itemName, configName));
}
}
return list;
}
@Override
public String getProtectString(final String configName)
{
return config.getString(configName, null);
}
@Override
public boolean getProtectBoolean(final String configName, boolean def)
{
return config.getBoolean(configName, def);
}
private final static double MAXMONEY = 10000000000000.0;
public double getMaxMoney()
{
double max = config.getDouble("max-money", MAXMONEY);
if (Math.abs(max) > MAXMONEY)
{
max = max < 0 ? -MAXMONEY : MAXMONEY;
}
return max;
}
public boolean isEcoLogEnabled()
{
return config.getBoolean("economy-log-enabled", false);
}
public boolean removeGodOnDisconnect()
{
return config.getBoolean("remove-god-on-disconnect", false);
}
public boolean changeDisplayName()
{
return config.getBoolean("change-displayname", true);
}
public boolean useBukkitPermissions()
{
return config.getBoolean("use-bukkit-permissions", false);
}
public boolean addPrefixSuffix()
{
return config.getBoolean("add-prefix-suffix", ess.getServer().getPluginManager().isPluginEnabled("EssentialsChat"));
}
@Override
public boolean isUpdateEnabled()
{
return config.getBoolean("update-check", false);
}
@Override
public long getAutoAfk()
{
return config.getLong("auto-afk", 300);
}
@Override
public long getAutoAfkKick()
{
return config.getLong("auto-afk-kick", -1);
}
@Override
public boolean getFreezeAfkPlayers()
{
return config.getBoolean("freeze-afk-players", false);
}
@Override
public boolean areDeathMessagesEnabled()
{
return config.getBoolean("death-messages", true);
}
}

View File

@@ -1,87 +0,0 @@
package com.earth2me.essentials;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.World.Environment;
public class Spawn implements IConf {
private static final Logger logger = Logger.getLogger("Minecraft");
private final EssentialsConf config;
private final Server server;
public Spawn(Server server, File dataFolder) {
File configFile = new File(dataFolder, "spawn.yml");
this.server = server;
config = new EssentialsConf(configFile);
config.load();
}
public void setSpawn(Location loc, String group) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("world", loc.getWorld().getName());
map.put("x", loc.getX());
map.put("y", loc.getY());
map.put("z", loc.getZ());
map.put("yaw", loc.getYaw());
map.put("pitch", loc.getPitch());
config.setProperty(group, map);
config.save();
if ("default".equals(group)) {
loc.getWorld().setSpawnLocation(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
}
}
public Location getSpawn(String group) {
if (config.getProperty(group) == null) {
group = "default";
}
if (config.getProperty(group) == null) {
for (World w : server.getWorlds()) {
if (w.getEnvironment() != Environment.NORMAL) {
continue;
}
return w.getSpawnLocation();
}
}
String worldId = config.getString(group + ".world", "");
World world = server.getWorlds().get(server.getWorlds().size() > 1 ? 1 : 0);
for (World w : server.getWorlds()) {
if (w.getEnvironment() != Environment.NORMAL) {
continue;
}
world = w;
break;
}
for (World w : server.getWorlds()) {
if (!w.getName().equals(worldId)) {
continue;
}
world = w;
break;
}
double x = config.getDouble(group + ".x", config.getDouble("default.x", 0));
double y = config.getDouble(group + ".y", config.getDouble("default.y", 0));
double z = config.getDouble(group + ".z", config.getDouble("default.z", 0));
float yaw = (float) config.getDouble(group + ".yaw", config.getDouble("default.yaw", 0));
float pitch = (float) config.getDouble(group + ".pitch", config.getDouble("default.pitch", 0));
Location retval = new Location(world, x, y, z, yaw, pitch);
if (y < 1) {
retval.setY(world.getHighestBlockYAt(retval));
}
return retval;
}
public void reloadConfig() {
config.load();
}
}

View File

@@ -1,88 +0,0 @@
package com.earth2me.essentials;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.minecraft.server.ChunkPosition;
import net.minecraft.server.Packet60Explosion;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntityListener;
public class TNTExplodeListener extends EntityListener implements Runnable
{
private final IEssentials ess;
private boolean enabled = false;
private int timer = -1;
public TNTExplodeListener(IEssentials ess)
{
this.ess = ess;
}
public void enable()
{
if (!enabled)
{
enabled = true;
timer = ess.scheduleSyncDelayedTask(this, 1000);
return;
}
if (timer != -1) {
ess.getScheduler().cancelTask(timer);
timer = ess.scheduleSyncDelayedTask(this, 1000);
}
}
@Override
public void onEntityExplode(final EntityExplodeEvent event)
{
if (!enabled)
{
return;
}
if (event.getEntity() instanceof LivingEntity)
{
return;
}
try {
final Set<ChunkPosition> set = new HashSet<ChunkPosition>(event.blockList().size());
final Player[] players = ess.getServer().getOnlinePlayers();
final List<ChunkPosition> blocksUnderPlayers = new ArrayList<ChunkPosition>(players.length);
final Location loc = event.getLocation();
for (Player player : players)
{
if (player.getWorld().equals(loc.getWorld()))
{
blocksUnderPlayers.add(new ChunkPosition(player.getLocation().getBlockX(), player.getLocation().getBlockY() - 1, player.getLocation().getBlockZ()));
}
}
for (Block block : event.blockList())
{
final ChunkPosition cp = new ChunkPosition(block.getX(), block.getY(), block.getZ());
if (!blocksUnderPlayers.contains(cp))
{
set.add(cp);
}
}
((CraftServer)ess.getServer()).getHandle().sendPacketNearby(loc.getX(), loc.getY(), loc.getZ(), 64.0, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, new Packet60Explosion(loc.getX(), loc.getY(), loc.getZ(), 3.0F, set));
} catch (Throwable ex) {
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
}
event.setCancelled(true);
}
public void run()
{
enabled = false;
}
}

View File

@@ -1,527 +0,0 @@
package com.earth2me.essentials;
import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
/**
* Original authors: toi & Raphfrk
*/
@Deprecated
public class TargetBlock
{
private transient final Location location;
private transient final double viewHeight;
private transient final int maxDistance;
private transient final int[] blockToIgnore;
private transient final double checkDistance;
private transient double curDistance;
private transient double targetPositionX;
private transient double targetPositionY;
private transient double targetPositionZ;
private transient int itargetPositionX;
private transient int itargetPositionY;
private transient int itargetPositionZ;
private transient int prevPositionX;
private transient int prevPositionY;
private transient int prevPositionZ;
private transient final double offsetX;
private transient final double offsetY;
private transient final double offsetZ;
/**
* Constructor requiring a player, uses default values
*
* @param player Player to work with
*/
public TargetBlock(final Player player)
{
this(player.getLocation(), 300, 1.65, 0.2, null);
}
/**
* Constructor requiring a location, uses default values
*
* @param loc Location to work with
*/
public TargetBlock(final Location loc)
{
this(loc, 300, 0, 0.2, null);
}
/**
* Constructor requiring a player, max distance and a checking distance
*
* @param player Player to work with
* @param maxDistance How far it checks for blocks
* @param checkDistance How often to check for blocks, the smaller the more precise
*/
public TargetBlock(final Player player, final int maxDistance, final double checkDistance)
{
this(player.getLocation(), maxDistance, 1.65, checkDistance, null);
}
/**
* Constructor requiring a location, max distance and a checking distance
*
* @param loc What location to work with
* @param maxDistance How far it checks for blocks
* @param checkDistance How often to check for blocks, the smaller the more precise
*/
public TargetBlock(final Location loc, final int maxDistance, final double checkDistance)
{
this(loc, maxDistance, 0, checkDistance, null);
}
/**
* Constructor requiring a player, max distance, checking distance and an array of blocks to ignore
*
* @param player What player to work with
* @param maxDistance How far it checks for blocks
* @param checkDistance How often to check for blocks, the smaller the more precise
* @param blocksToIgnore Integer array of what block ids to ignore while checking for viable targets
*/
public TargetBlock(final Player player, final int maxDistance, final double checkDistance, final int[] blocksToIgnore)
{
this(player.getLocation(), maxDistance, 1.65, checkDistance, blocksToIgnore);
}
/**
* Constructor requiring a location, max distance, checking distance and an array of blocks to ignore
*
* @param loc What location to work with
* @param maxDistance How far it checks for blocks
* @param checkDistance How often to check for blocks, the smaller the more precise
* @param blocksToIgnore Array of what block ids to ignore while checking for viable targets
*/
public TargetBlock(final Location loc, final int maxDistance, final double checkDistance, final int[] blocksToIgnore)
{
this(loc, maxDistance, 0, checkDistance, blocksToIgnore);
}
/**
* Constructor requiring a player, max distance, checking distance and an array of blocks to ignore
*
* @param player What player to work with
* @param maxDistance How far it checks for blocks
* @param checkDistance How often to check for blocks, the smaller the more precise
* @param blocksToIgnore String ArrayList of what block ids to ignore while checking for viable targets
*/
public TargetBlock(final Player player, final int maxDistance, final double checkDistance, final List<String> blocksToIgnore)
{
this(player.getLocation(), maxDistance, 1.65, checkDistance, TargetBlock.convertStringArraytoIntArray(blocksToIgnore));
}
/**
* Constructor requiring a location, max distance, checking distance and an array of blocks to ignore
*
* @param loc What location to work with
* @param maxDistance How far it checks for blocks
* @param checkDistance How often to check for blocks, the smaller the more precise
* @param blocksToIgnore String ArrayList of what block ids to ignore while checking for viable targets
*/
public TargetBlock(final Location loc, final int maxDistance, final double checkDistance, final List<String> blocksToIgnore)
{
this(loc, maxDistance, 0, checkDistance, TargetBlock.convertStringArraytoIntArray(blocksToIgnore));
}
/**
* Set the values, all constructors uses this function
*
* @param loc Location of the view
* @param maxDistance How far it checks for blocks
* @param viewPos Where the view is positioned in y-axis
* @param checkDistance How often to check for blocks, the smaller the more precise
* @param blocksToIgnore Ids of blocks to ignore while checking for viable targets
*/
private TargetBlock(final Location loc, final int maxDistance, final double viewHeight, final double checkDistance, final int[] blocksToIgnore)
{
this.location = loc;
this.maxDistance = maxDistance;
this.viewHeight = viewHeight;
this.checkDistance = checkDistance;
if (blocksToIgnore == null || blocksToIgnore.length == 0)
{
this.blockToIgnore = new int[0];
}
else
{
this.blockToIgnore = new int[blocksToIgnore.length];
System.arraycopy(blocksToIgnore, 0, this.blockToIgnore, 0, this.blockToIgnore.length);
}
final double xRotation = (loc.getYaw() + 90) % 360;
final double yRotation = loc.getPitch() * -1;
final double hypotenuse = (checkDistance * Math.cos(Math.toRadians(yRotation)));
offsetX = hypotenuse * Math.cos(Math.toRadians(xRotation));
offsetY = checkDistance * Math.sin(Math.toRadians(yRotation));
offsetZ = hypotenuse * Math.sin(Math.toRadians(xRotation));
reset();
}
/**
* Call this to reset checking position to allow you to check for a new target with the same TargetBlock instance.
*/
public final void reset()
{
targetPositionX = location.getX();
targetPositionY = location.getY() + viewHeight;
targetPositionZ = location.getZ();
itargetPositionX = (int)Math.floor(targetPositionX);
itargetPositionY = (int)Math.floor(targetPositionY);
itargetPositionZ = (int)Math.floor(targetPositionZ);
prevPositionX = itargetPositionX;
prevPositionY = itargetPositionY;
prevPositionZ = itargetPositionZ;
this.curDistance = 0;
}
/**
* Gets the distance to a block. Measures from the block underneath the player to the targetblock
* Should only be used when passing player as an constructor parameter
*
* @return double
*/
public double getDistanceToBlock()
{
final double blockUnderPlayerX = Math.floor(location.getX() + 0.5);
final double blockUnderPlayerY = Math.floor(location.getY() - 0.5);
final double blockUnderPlayerZ = Math.floor(location.getZ() + 0.5);
final Block block = getTargetBlock();
final double distX = block.getX() - blockUnderPlayerX;
final double distY = block.getY() - blockUnderPlayerY;
final double distZ = block.getZ() - blockUnderPlayerZ;
return Math.sqrt(distX*distX + distY*distY + distZ*distZ);
}
/**
* Gets the rounded distance to a block. Measures from the block underneath the player to the targetblock
* Should only be used when passing player as an constructor parameter
*
* @return int
*/
public int getDistanceToBlockRounded()
{
return (int)Math.round(getDistanceToBlock());
}
/**
* Gets the floored x distance to a block.
*
* @return int
*/
public int getXDistanceToBlock()
{
return (int)Math.floor(getTargetBlock().getX() - location.getBlockX() + 0.5);
}
/**
* Gets the floored y distance to a block
*
* @return int
*/
public int getYDistanceToBlock()
{
return (int)Math.floor(getTargetBlock().getY() - location.getBlockY() + viewHeight);
}
/**
* Gets the floored z distance to a block
*
* @return int
*/
public int getZDistanceToBlock()
{
return (int)Math.floor(getTargetBlock().getZ() - location.getBlockZ() + 0.5);
}
/**
* Returns the block at the sight. Returns null if out of range or if no viable target was found
*
* @return Block
*/
public Block getTargetBlock()
{
this.reset();
Block block;
do
{
block = getNextBlock();
}
while (block != null && ((block.getTypeId() == 0) || this.blockIsIgnored(block.getTypeId())));
return block;
}
/**
* Sets the type of the block at the sight. Returns false if the block wasn't set.
*
* @param typeID ID of type to set the block to
* @return boolean
*/
public boolean setTargetBlock(final int typeID)
{
return setTargetBlock(Material.getMaterial(typeID));
}
/**
* Sets the type of the block at the sight. Returns false if the block wasn't set.
*
* @param type Material to set the block to
* @return boolean
*/
@SuppressWarnings("empty-statement")
public boolean setTargetBlock(final Material type)
{
if (type == null)
{
return false;
}
final Block block = getTargetBlock();
if (block != null)
{
block.setType(type);
return true;
}
return false;
}
/**
* Sets the type of the block at the sight. Returns false if the block wasn't set.
* Observe! At the moment this function is using the built-in enumerator function .valueOf(String) but would preferably be changed to smarter function, when implemented
*
* @param type Name of type to set the block to
* @return boolean
*/
public boolean setTargetBlock(final String type)
{
return setTargetBlock(Material.valueOf(type));
}
/**
* Returns the block attached to the face at the sight. Returns null if out of range or if no viable target was found
*
* @return Block
*/
public Block getFaceBlock()
{
final Block block = getTargetBlock();
if (block == null)
{
return null;
}
return getPreviousBlock();
}
/**
* Sets the type of the block attached to the face at the sight. Returns false if the block wasn't set.
*
* @param typeID
* @return boolean
*/
public boolean setFaceBlock(final int typeID)
{
return setFaceBlock(Material.getMaterial(typeID));
}
/**
* Sets the type of the block attached to the face at the sight. Returns false if the block wasn't set.
*
* @param type
* @return boolean
*/
public boolean setFaceBlock(final Material type)
{
if (type == null)
{
return false;
}
if (getCurrentBlock() != null)
{
final Block blk = location.getWorld().getBlockAt(prevPositionX, prevPositionY, prevPositionZ);
blk.setType(type);
return true;
}
return false;
}
/**
* Sets the type of the block attached to the face at the sight. Returns false if the block wasn't set.
* Observe! At the moment this function is using the built-in enumerator function .valueOf(String) but would preferably be changed to smarter function, when implemented
*
* @param type
* @return boolean
*/
public boolean setFaceBlock(final String type)
{
return setFaceBlock(Material.valueOf(type));
}
/**
* Get next block
*
* @return Block
*/
public Block getNextBlock()
{
prevPositionX = itargetPositionX;
prevPositionY = itargetPositionY;
prevPositionZ = itargetPositionZ;
do
{
curDistance += checkDistance;
targetPositionX += offsetX;
targetPositionY += offsetY;
targetPositionZ += offsetZ;
itargetPositionX = (int)Math.floor(targetPositionX);
itargetPositionY = (int)Math.floor(targetPositionY);
itargetPositionZ = (int)Math.floor(targetPositionZ);
}
while (curDistance <= maxDistance && itargetPositionX == prevPositionX && itargetPositionY == prevPositionY && itargetPositionZ == prevPositionZ);
if (curDistance > maxDistance)
{
return null;
}
return this.location.getWorld().getBlockAt(itargetPositionX, itargetPositionY, itargetPositionZ);
}
/**
* Returns the current block along the line of vision
*
* @return Block
*/
public Block getCurrentBlock()
{
Block block;
if (curDistance <= maxDistance)
{
block = this.location.getWorld().getBlockAt(itargetPositionX, itargetPositionY, itargetPositionZ);
}
else
{
block = null;
}
return block;
}
/**
* Sets current block type. Returns false if the block wasn't set.
*
* @param typeID
*/
public boolean setCurrentBlock(final int typeID)
{
return setCurrentBlock(Material.getMaterial(typeID));
}
/**
* Sets current block type. Returns false if the block wasn't set.
*
* @param type
*/
public boolean setCurrentBlock(final Material type)
{
final Block blk = getCurrentBlock();
if (blk != null && type != null)
{
blk.setType(type);
return true;
}
return false;
}
/**
* Sets current block type. Returns false if the block wasn't set.
* Observe! At the moment this function is using the built-in enumerator function .valueOf(String) but would preferably be changed to smarter function, when implemented
*
* @param type
*/
public boolean setCurrentBlock(final String type)
{
return setCurrentBlock(Material.valueOf(type));
}
/**
* Returns the previous block in the aimed path
*
* @return Block
*/
public Block getPreviousBlock()
{
return this.location.getWorld().getBlockAt(prevPositionX, prevPositionY, prevPositionZ);
}
/**
* Sets previous block type id. Returns false if the block wasn't set.
*
* @param typeID
*/
public boolean setPreviousBlock(final int typeID)
{
return setPreviousBlock(Material.getMaterial(typeID));
}
/**
* Sets previous block type id. Returns false if the block wasn't set.
*
* @param type
*/
public boolean setPreviousBlock(final Material type)
{
final Block blk = getPreviousBlock();
if (blk != null && type != null)
{
blk.setType(type);
return true;
}
return false;
}
/**
* Sets previous block type id. Returns false if the block wasn't set.
* Observe! At the moment this function is using the built-in enumerator function .valueOf(String) but would preferably be changed to smarter function, when implemented
*
* @param type
*/
public boolean setPreviousBlock(final String type)
{
return setPreviousBlock(Material.valueOf(type));
}
private static int[] convertStringArraytoIntArray(final List<String> array)
{
final int intarray[] = new int[array == null ? 0 : array.size()];
for (int i = 0; i < intarray.length; i++)
{
try
{
intarray[i] = Integer.parseInt(array.get(i));
}
catch (NumberFormatException nfe)
{
}
}
return intarray;
}
private boolean blockIsIgnored(final int value)
{
for (int i : this.blockToIgnore)
{
if (i == value)
{
return true;
}
}
return false;
}
}

View File

@@ -1,271 +0,0 @@
package com.earth2me.essentials;
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.logging.Logger;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
public class Teleport implements Runnable
{
private static final double MOVE_CONSTANT = 0.3;
private static class Target
{
private final Location location;
private final Entity entity;
public Target(Location location)
{
this.location = location;
this.entity = null;
}
public Target(Entity entity)
{
this.entity = entity;
this.location = null;
}
public Location getLocation()
{
if (this.entity != null)
{
return this.entity.getLocation();
}
return location;
}
}
private IUser user;
private int teleTimer = -1;
private long started; // time this task was initiated
private long delay; // how long to delay the teleport
private int health;
// note that I initially stored a clone of the location for reference, but...
// when comparing locations, I got incorrect mismatches (rounding errors, looked like)
// so, the X/Y/Z values are stored instead and rounded off
private long initX;
private long initY;
private long initZ;
private Target teleportTarget;
private Trade chargeFor;
private final IEssentials ess;
private static final Logger logger = Logger.getLogger("Minecraft");
private void initTimer(long delay, Target target, Trade chargeFor)
{
this.started = System.currentTimeMillis();
this.delay = delay;
this.health = user.getHealth();
this.initX = Math.round(user.getLocation().getX() * MOVE_CONSTANT);
this.initY = Math.round(user.getLocation().getY() * MOVE_CONSTANT);
this.initZ = Math.round(user.getLocation().getZ() * MOVE_CONSTANT);
this.teleportTarget = target;
this.chargeFor = chargeFor;
}
public void run()
{
if (user == null || !user.isOnline() || user.getLocation() == null)
{
cancel();
return;
}
if (Math.round(user.getLocation().getX() * MOVE_CONSTANT) != initX
|| Math.round(user.getLocation().getY() * MOVE_CONSTANT) != initY
|| Math.round(user.getLocation().getZ() * MOVE_CONSTANT) != initZ
|| user.getHealth() < health)
{ // user moved, cancel teleport
cancel(true);
return;
}
health = user.getHealth(); // in case user healed, then later gets injured
long now = System.currentTimeMillis();
if (now > started + delay)
{
try
{
cooldown(false);
user.sendMessage(Util.i18n("teleportationCommencing"));
try
{
now(teleportTarget);
if (chargeFor != null)
{
chargeFor.charge(user);
}
}
catch (Throwable ex)
{
ess.showError(user.getBase(), ex, "teleport");
}
return;
}
catch (Exception ex)
{
user.sendMessage(Util.format("cooldownWithMessage", ex.getMessage()));
}
}
}
public Teleport(IUser user, IEssentials ess)
{
this.user = user;
this.ess = ess;
}
public void respawn(Spawn spawn, Trade chargeFor) throws Exception
{
teleport(new Target(spawn.getSpawn(user.getGroup())), chargeFor);
}
public void warp(String warp, Trade chargeFor) throws Exception
{
Location loc = ess.getWarps().getWarp(warp);
teleport(new Target(loc), chargeFor);
user.sendMessage(Util.format("warpingTo", warp));
}
public void cooldown(boolean check) throws Exception
{
Calendar now = new GregorianCalendar();
if (user.getLastTeleportTimestamp() > 0)
{
double cooldown = ess.getSettings().getTeleportCooldown();
Calendar cooldownTime = new GregorianCalendar();
cooldownTime.setTimeInMillis(user.getLastTeleportTimestamp());
cooldownTime.add(Calendar.SECOND, (int)cooldown);
cooldownTime.add(Calendar.MILLISECOND, (int)((cooldown * 1000.0) % 1000.0));
if (cooldownTime.after(now) && !user.isAuthorized("essentials.teleport.cooldown.bypass"))
{
throw new Exception(Util.format("timeBeforeTeleport", Util.formatDateDiff(cooldownTime.getTimeInMillis())));
}
}
// if justCheck is set, don't update lastTeleport; we're just checking
if (!check)
{
user.setLastTeleportTimestamp(now.getTimeInMillis());
}
}
public void cancel(boolean notifyUser)
{
if (teleTimer == -1)
{
return;
}
try
{
ess.getServer().getScheduler().cancelTask(teleTimer);
if (notifyUser)
{
user.sendMessage(Util.i18n("pendingTeleportCancelled"));
}
}
finally
{
teleTimer = -1;
}
}
public void cancel()
{
cancel(false);
}
public void teleport(Location loc, Trade chargeFor) throws Exception
{
teleport(new Target(loc), chargeFor);
}
public void teleport(Entity entity, Trade chargeFor) throws Exception
{
teleport(new Target(entity), chargeFor);
}
private void teleport(Target target, Trade chargeFor) throws Exception
{
double delay = ess.getSettings().getTeleportDelay();
if (chargeFor != null)
{
chargeFor.isAffordableFor(user);
}
cooldown(true);
if (delay <= 0 || user.isAuthorized("essentials.teleport.timer.bypass"))
{
cooldown(false);
now(target);
if (chargeFor != null)
{
chargeFor.charge(user);
}
return;
}
cancel();
Calendar c = new GregorianCalendar();
c.add(Calendar.SECOND, (int)delay);
c.add(Calendar.MILLISECOND, (int)((delay * 1000.0) % 1000.0));
user.sendMessage(Util.format("dontMoveMessage", Util.formatDateDiff(c.getTimeInMillis())));
initTimer((long)(delay * 1000.0), target, chargeFor);
teleTimer = ess.scheduleSyncRepeatingTask(this, 10, 10);
}
private void now(Target target) throws Exception
{
cancel();
user.setLastLocation();
user.getBase().teleport(Util.getSafeDestination(target.getLocation()));
}
public void now(Location loc) throws Exception
{
cooldown(false);
now(new Target(loc));
}
public void now(Location loc, Trade chargeFor) throws Exception
{
cooldown(false);
chargeFor.charge(user);
now(new Target(loc));
}
public void now(Entity entity, boolean cooldown) throws Exception
{
if (cooldown)
{
cooldown(false);
}
now(new Target(entity));
}
public void back(Trade chargeFor) throws Exception
{
teleport(new Target(user.getLastLocation()), chargeFor);
}
public void back() throws Exception
{
now(new Target(user.getLastLocation()));
}
public void home(IUser user, String home, Trade chargeFor) throws Exception
{
final Location loc = user.getHome(home);
if (loc == null)
{
throw new NotEnoughArgumentsException();
}
teleport(new Target(loc), chargeFor);
}
}

View File

@@ -1,258 +0,0 @@
package com.earth2me.essentials;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Location;
import org.bukkit.inventory.ItemStack;
public class Trade
{
private final transient String command;
private final transient Double money;
private final transient ItemStack itemStack;
private final transient IEssentials ess;
public Trade(final String command, final IEssentials ess)
{
this(command, null, null, ess);
}
public Trade(final double money, final IEssentials ess)
{
this(null, money, null, ess);
}
public Trade(final ItemStack items, final IEssentials ess)
{
this(null, null, items, ess);
}
private Trade(final String command, final Double money, final ItemStack item, final IEssentials ess)
{
this.command = command;
this.money = money;
this.itemStack = item;
this.ess = ess;
}
public void isAffordableFor(final IUser user) throws ChargeException
{
final double mon = user.getMoney();
if (getMoney() != null
&& mon < getMoney()
&& getMoney() > 0
&& !user.isAuthorized("essentials.eco.loan"))
{
throw new ChargeException(Util.i18n("notEnoughMoney"));
}
if (getItemStack() != null
&& !InventoryWorkaround.containsItem(user.getInventory(), true, itemStack))
{
throw new ChargeException(Util.format("missingItems", getItemStack().getAmount(), getItemStack().getType().toString().toLowerCase().replace("_", " ")));
}
if (command != null && !command.isEmpty()
&& !user.isAuthorized("essentials.nocommandcost.all")
&& !user.isAuthorized("essentials.nocommandcost." + command)
&& mon < ess.getSettings().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command)
&& 0 < ess.getSettings().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command)
&& !user.isAuthorized("essentials.eco.loan"))
{
throw new ChargeException(Util.i18n("notEnoughMoney"));
}
}
public void pay(final IUser user)
{
pay(user, true);
}
public boolean pay(final IUser user, final boolean dropItems)
{
boolean success = true;
if (getMoney() != null && getMoney() > 0)
{
user.giveMoney(getMoney());
}
if (getItemStack() != null)
{
if (dropItems)
{
final Map<Integer, ItemStack> leftOver = InventoryWorkaround.addItem(user.getInventory(), true, getItemStack());
for (ItemStack itemStack : leftOver.values())
{
InventoryWorkaround.dropItem(user.getLocation(), itemStack);
}
}
else
{
success = InventoryWorkaround.addAllItems(user.getInventory(), true, getItemStack());
}
user.updateInventory();
}
return success;
}
public void charge(final IUser user) throws ChargeException
{
if (getMoney() != null)
{
final double mon = user.getMoney();
if (mon < getMoney() && getMoney() > 0 && !user.isAuthorized("essentials.eco.loan"))
{
throw new ChargeException(Util.i18n("notEnoughMoney"));
}
user.takeMoney(getMoney());
}
if (getItemStack() != null)
{
if (!InventoryWorkaround.containsItem(user.getInventory(), true, itemStack))
{
throw new ChargeException(Util.format("missingItems", getItemStack().getAmount(), getItemStack().getType().toString().toLowerCase().replace("_", " ")));
}
InventoryWorkaround.removeItem(user.getInventory(), true, getItemStack());
user.updateInventory();
}
if (command != null && !command.isEmpty()
&& !user.isAuthorized("essentials.nocommandcost.all")
&& !user.isAuthorized("essentials.nocommandcost." + command))
{
final double mon = user.getMoney();
final double cost = ess.getSettings().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command);
if (mon < cost && cost > 0 && !user.isAuthorized("essentials.eco.loan"))
{
throw new ChargeException(Util.i18n("notEnoughMoney"));
}
user.takeMoney(cost);
}
}
public Double getMoney()
{
return money;
}
public ItemStack getItemStack()
{
return itemStack;
}
private static FileWriter fw = null;
public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, Location loc, IEssentials ess)
{
if (!ess.getSettings().isEcoLogEnabled())
{
return;
}
if (fw == null)
{
try
{
fw = new FileWriter(new File(ess.getDataFolder(), "trade.log"), true);
}
catch (IOException ex)
{
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
}
}
StringBuilder sb = new StringBuilder();
sb.append(type).append(",").append(subtype).append(",").append(event).append(",\"");
sb.append(DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date()));
sb.append("\",\"");
if (sender != null)
{
sb.append(sender);
}
sb.append("\",");
if (charge == null)
{
sb.append("\"\",\"\",\"\"");
}
else
{
if (charge.getItemStack() != null)
{
sb.append(charge.getItemStack().getAmount()).append(",");
sb.append(charge.getItemStack().getType().toString()).append(",");
sb.append(charge.getItemStack().getDurability());
}
if (charge.getMoney() != null)
{
sb.append(charge.getMoney()).append(",");
sb.append("money").append(",");
sb.append(ess.getSettings().getCurrencySymbol());
}
}
sb.append(",\"");
if (receiver != null)
{
sb.append(receiver);
}
sb.append("\",");
if (pay == null)
{
sb.append("\"\",\"\",\"\"");
}
else
{
if (pay.getItemStack() != null)
{
sb.append(pay.getItemStack().getAmount()).append(",");
sb.append(pay.getItemStack().getType().toString()).append(",");
sb.append(pay.getItemStack().getDurability());
}
if (pay.getMoney() != null)
{
sb.append(pay.getMoney()).append(",");
sb.append("money").append(",");
sb.append(ess.getSettings().getCurrencySymbol());
}
}
if (loc == null)
{
sb.append(",\"\",\"\",\"\",\"\"");
}
else
{
sb.append(",\"");
sb.append(loc.getWorld().getName()).append("\",");
sb.append(loc.getBlockX()).append(",");
sb.append(loc.getBlockY()).append(",");
sb.append(loc.getBlockZ()).append(",");
}
sb.append("\n");
try
{
fw.write(sb.toString());
fw.flush();
}
catch (IOException ex)
{
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
}
}
public static void closeLog()
{
if (fw != null)
{
try
{
fw.close();
}
catch (IOException ex)
{
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
}
fw = null;
}
}
}

View File

@@ -1,489 +0,0 @@
package com.earth2me.essentials;
import com.earth2me.essentials.commands.IEssentialsCommand;
import com.earth2me.essentials.register.payment.Method;
import java.util.Calendar;
import java.util.GregorianCalendar;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class User extends UserData implements Comparable<User>, IReplyTo, IUser
{
private boolean justPortaled = false;
private CommandSender replyTo = null;
private transient User teleportRequester;
private transient boolean teleportRequestHere;
private transient final Teleport teleport;
private transient long lastOnlineActivity;
private transient long lastActivity = System.currentTimeMillis();
private boolean hidden = false;
private transient Location afkPosition;
User(final Player base, final IEssentials ess)
{
super(base, ess);
teleport = new Teleport(this, ess);
afkPosition = getLocation();
}
User update(final Player base)
{
setBase(base);
return this;
}
@Override
public boolean isAuthorized(final IEssentialsCommand cmd)
{
return isAuthorized(cmd, "essentials.");
}
@Override
public boolean isAuthorized(final IEssentialsCommand cmd, final String permissionPrefix)
{
return isAuthorized(permissionPrefix + (cmd.getName().equals("r") ? "msg" : cmd.getName()));
}
@Override
public boolean isAuthorized(final String node)
{
if (base instanceof OfflinePlayer)
{
return false;
}
if (isOp())
{
return true;
}
if (isJailed())
{
return false;
}
return ess.getPermissionsHandler().hasPermission(base, node);
}
public void healCooldown() throws Exception
{
final Calendar now = new GregorianCalendar();
if (getLastHealTimestamp() > 0)
{
final double cooldown = ess.getSettings().getHealCooldown();
final Calendar cooldownTime = new GregorianCalendar();
cooldownTime.setTimeInMillis(getLastHealTimestamp());
cooldownTime.add(Calendar.SECOND, (int)cooldown);
cooldownTime.add(Calendar.MILLISECOND, (int)((cooldown * 1000.0) % 1000.0));
if (cooldownTime.after(now) && !isAuthorized("essentials.heal.cooldown.bypass"))
{
throw new Exception(Util.format("timeBeforeHeal", Util.formatDateDiff(cooldownTime.getTimeInMillis())));
}
}
setLastHealTimestamp(now.getTimeInMillis());
}
@Override
public void giveMoney(final double value)
{
giveMoney(value, null);
}
public void giveMoney(final double value, final CommandSender initiator)
{
if (value == 0)
{
return;
}
setMoney(getMoney() + value);
sendMessage(Util.format("addedToAccount", Util.formatCurrency(value, ess)));
if (initiator != null)
{
initiator.sendMessage(Util.format("addedToOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName()));
}
}
public void payUser(final User reciever, final double value) throws Exception
{
if (value == 0)
{
return;
}
if (canAfford(value))
{
setMoney(getMoney() - value);
reciever.setMoney(reciever.getMoney() + value);
sendMessage(Util.format("moneySentTo", Util.formatCurrency(value, ess), reciever.getDisplayName()));
reciever.sendMessage(Util.format("moneyRecievedFrom", Util.formatCurrency(value, ess), getDisplayName()));
}
else
{
throw new Exception(Util.i18n("notEnoughMoney"));
}
}
@Override
public void takeMoney(final double value)
{
takeMoney(value, null);
}
public void takeMoney(final double value, final CommandSender initiator)
{
if (value == 0)
{
return;
}
setMoney(getMoney() - value);
sendMessage(Util.format("takenFromAccount", Util.formatCurrency(value, ess)));
if (initiator != null)
{
initiator.sendMessage(Util.format("takenFromOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName()));
}
}
public boolean canAfford(final double cost)
{
final double mon = getMoney();
return mon >= cost || isAuthorized("essentials.eco.loan");
}
public void dispose()
{
this.base = new OfflinePlayer(getName(), ess);
}
public boolean getJustPortaled()
{
return justPortaled;
}
public void setJustPortaled(final boolean value)
{
justPortaled = value;
}
@Override
public void setReplyTo(final CommandSender user)
{
replyTo = user;
}
@Override
public CommandSender getReplyTo()
{
return replyTo;
}
@Override
public int compareTo(final User other)
{
return ChatColor.stripColor(this.getDisplayName()).compareToIgnoreCase(ChatColor.stripColor(other.getDisplayName()));
}
@Override
public boolean equals(final Object object)
{
if (!(object instanceof User))
{
return false;
}
return ChatColor.stripColor(this.getDisplayName()).equalsIgnoreCase(ChatColor.stripColor(((User)object).getDisplayName()));
}
@Override
public int hashCode()
{
return ChatColor.stripColor(this.getDisplayName()).hashCode();
}
public Boolean canSpawnItem(final int itemId)
{
return !ess.getSettings().itemSpawnBlacklist().contains(itemId);
}
public Location getHome() throws Exception
{
return getHome(getHomes().get(0));
}
public void setHome()
{
setHome("home", getLocation());
}
public void setHome(final String name)
{
setHome(name, getLocation());
}
@Override
public void setLastLocation()
{
setLastLocation(getLocation());
}
public void requestTeleport(final User player, final boolean here)
{
teleportRequester = player;
teleportRequestHere = here;
}
public User getTeleportRequest()
{
return teleportRequester;
}
public boolean isTeleportRequestHere()
{
return teleportRequestHere;
}
public String getNick()
{
final StringBuilder nickname = new StringBuilder();
final String nick = getNickname();
if (ess.getSettings().isCommandDisabled("nick") || nick == null || nick.isEmpty() || nick.equals(getName()))
{
nickname.append(getName());
}
else
{
nickname.append(ess.getSettings().getNicknamePrefix()).append(nick);
}
if (isOp())
{
try
{
nickname.insert(0, ess.getSettings().getOperatorColor().toString());
nickname.append("§f");
}
catch (Exception e)
{
}
}
if (ess.getSettings().addPrefixSuffix())
{
final String prefix = ess.getPermissionsHandler().getPrefix(base).replace('&', '§').replace("{WORLDNAME}", this.getWorld().getName());
final String suffix = ess.getPermissionsHandler().getSuffix(base).replace('&', '§').replace("{WORLDNAME}", this.getWorld().getName());
nickname.insert(0, prefix);
nickname.append(suffix);
if (suffix.length() < 2 || !suffix.substring(suffix.length() - 2, suffix.length() - 1).equals("§"))
{
nickname.append("§f");
}
}
return nickname.toString();
}
public void setDisplayNick(String name)
{
setDisplayName(name);
//TODO: Maybe we need to limit nick length, or try use a string trim.
if (name.length() <= 16) {
setPlayerListName(name);
}
}
public Teleport getTeleport()
{
return teleport;
}
public long getLastOnlineActivity()
{
return lastOnlineActivity;
}
public void setLastOnlineActivity(final long timestamp)
{
lastOnlineActivity = timestamp;
}
@Override
public double getMoney()
{
if (ess.getPaymentMethod().hasMethod())
{
try
{
final Method method = ess.getPaymentMethod().getMethod();
if (!method.hasAccount(this.getName()))
{
throw new Exception();
}
final Method.MethodAccount account = ess.getPaymentMethod().getMethod().getAccount(this.getName());
return account.balance();
}
catch (Throwable ex)
{
}
}
return super.getMoney();
}
@Override
public void setMoney(final double value)
{
if (ess.getPaymentMethod().hasMethod())
{
try
{
final Method method = ess.getPaymentMethod().getMethod();
if (!method.hasAccount(this.getName()))
{
throw new Exception();
}
final Method.MethodAccount account = ess.getPaymentMethod().getMethod().getAccount(this.getName());
account.set(value);
}
catch (Throwable ex)
{
}
}
super.setMoney(value);
}
@Override
public void setAfk(final boolean set)
{
this.setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") ? true : set);
if (set && !isAfk()) {
afkPosition = getLocation();
}
super.setAfk(set);
}
@Override
public boolean toggleAfk()
{
final boolean now = super.toggleAfk();
this.setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") ? true : now);
return now;
}
public boolean isHidden()
{
return hidden;
}
public void setHidden(final boolean hidden)
{
this.hidden = hidden;
}
//Returns true if status expired during this check
public boolean checkJailTimeout(final long currentTime)
{
if (getJailTimeout() > 0 && getJailTimeout() < currentTime && isJailed())
{
setJailTimeout(0);
setJailed(false);
sendMessage(Util.i18n("haveBeenReleased"));
setJail(null);
try
{
getTeleport().back();
}
catch (Exception ex)
{
}
return true;
}
return false;
}
//Returns true if status expired during this check
public boolean checkMuteTimeout(final long currentTime)
{
if (getMuteTimeout() > 0 && getMuteTimeout() < currentTime && isMuted())
{
setMuteTimeout(0);
sendMessage(Util.i18n("canTalkAgain"));
setMuted(false);
return true;
}
return false;
}
//Returns true if status expired during this check
public boolean checkBanTimeout(final long currentTime)
{
if (getBanTimeout() > 0 && getBanTimeout() < currentTime && isBanned())
{
setBanTimeout(0);
setBanned(false);
return true;
}
return false;
}
public void updateActivity(final boolean broadcast)
{
if (isAfk())
{
setAfk(false);
if (broadcast && !isHidden())
{
ess.broadcastMessage(this, Util.format("userIsNotAway", getDisplayName()));
}
}
lastActivity = System.currentTimeMillis();
}
public void checkActivity()
{
final long autoafkkick = ess.getSettings().getAutoAfkKick();
if (autoafkkick > 0 && lastActivity + autoafkkick * 1000 < System.currentTimeMillis()
&& !isHidden() && !isAuthorized("essentials.kick.exempt") && !isAuthorized("essentials.afk.kickexempt"))
{
final String kickReason = Util.format("autoAfkKickReason", autoafkkick / 60.0);
kickPlayer(kickReason);
for (Player player : ess.getServer().getOnlinePlayers())
{
final User user = ess.getUser(player);
if (user.isAuthorized("essentials.kick.notify"))
{
player.sendMessage(Util.format("playerKicked", Console.NAME, getName(), kickReason));
}
}
}
final long autoafk = ess.getSettings().getAutoAfk();
if (!isAfk() && autoafk > 0 && lastActivity + autoafk * 1000 < System.currentTimeMillis() && isAuthorized("essentials.afk"))
{
setAfk(true);
if (!isHidden()) {
ess.broadcastMessage(this, Util.format("userIsAway", getDisplayName()));
}
}
}
public Location getAfkPosition()
{
return afkPosition;
}
@Override
public boolean toggleGodModeEnabled()
{
if (!isGodModeEnabled()) {
setFoodLevel(20);
}
return super.toggleGodModeEnabled();
}
@Override
public boolean isGodModeEnabled()
{
return super.isGodModeEnabled() || (isAfk() && ess.getSettings().getFreezeAfkPlayers());
}
}

View File

@@ -1,119 +0,0 @@
package com.earth2me.essentials;
import com.google.common.base.Function;
import com.google.common.collect.ComputationException;
import com.google.common.collect.MapMaker;
import java.io.File;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import java.util.logging.Level;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
public class UserMap implements Function<String, User>, IConf
{
private final transient IEssentials ess;
private final transient ConcurrentMap<String, User> users = new MapMaker().softValues().makeComputingMap(this);
public UserMap(final IEssentials ess)
{
this.ess = ess;
loadAllUsersAsync(ess);
}
private void loadAllUsersAsync(final IEssentials ess)
{
ess.scheduleAsyncDelayedTask(new Runnable()
{
@Override
public void run()
{
final File userdir = new File(ess.getDataFolder(), "userdata");
if (!userdir.exists())
{
return;
}
for (String string : userdir.list())
{
if (!string.endsWith(".yml"))
{
continue;
}
final String name = string.substring(0, string.length() - 4);
try
{
users.get(name.toLowerCase());
}
catch (NullPointerException ex)
{
// Ignore these
}
catch (ComputationException ex)
{
Bukkit.getLogger().log(Level.INFO, "Failed to preload user "+name, ex);
}
}
}
});
}
public boolean userExists(final String name)
{
return users.containsKey(name.toLowerCase());
}
public User getUser(final String name) throws NullPointerException
{
return users.get(name.toLowerCase());
}
@Override
public User apply(final String name)
{
for (Player player : ess.getServer().getOnlinePlayers())
{
if (player.getName().equalsIgnoreCase(name))
{
return new User(player, ess);
}
}
final File userFolder = new File(ess.getDataFolder(), "userdata");
final File userFile = new File(userFolder, Util.sanitizeFileName(name) + ".yml");
if (userFile.exists())
{
return new User(new OfflinePlayer(name, ess), ess);
}
return null;
}
@Override
public void reloadConfig()
{
for (User user : users.values())
{
user.reloadConfig();
}
}
public void removeUser(final String name)
{
users.remove(name.toLowerCase());
}
public Set<User> getAllUsers()
{
final Set<User> userSet = new HashSet<User>();
for (String name : users.keySet())
{
userSet.add(users.get(name));
}
return userSet;
}
public int getUniqueUsers()
{
return users.size();
}
}

View File

@@ -1,551 +0,0 @@
package com.earth2me.essentials;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.MessageFormat;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
public class Util
{
private Util()
{
}
private final static Logger logger = Logger.getLogger("Minecraft");
public static String sanitizeFileName(String name)
{
return name.toLowerCase().replaceAll("[^a-z0-9]", "_");
}
public static String formatDateDiff(long date)
{
Calendar c = new GregorianCalendar();
c.setTimeInMillis(date);
Calendar now = new GregorianCalendar();
return Util.formatDateDiff(now, c);
}
public static String formatDateDiff(Calendar fromDate, Calendar toDate)
{
boolean future = false;
if (toDate.equals(fromDate))
{
return Util.i18n("now");
}
if (toDate.after(fromDate))
{
future = true;
}
StringBuilder sb = new StringBuilder();
int[] types = new int[]
{
Calendar.YEAR,
Calendar.MONTH,
Calendar.DAY_OF_MONTH,
Calendar.HOUR_OF_DAY,
Calendar.MINUTE,
Calendar.SECOND
};
String[] names = new String[]
{
Util.i18n("year"),
Util.i18n("years"),
Util.i18n("month"),
Util.i18n("months"),
Util.i18n("day"),
Util.i18n("days"),
Util.i18n("hour"),
Util.i18n("hours"),
Util.i18n("minute"),
Util.i18n("minutes"),
Util.i18n("second"),
Util.i18n("seconds")
};
for (int i = 0; i < types.length; i++)
{
int diff = dateDiff(types[i], fromDate, toDate, future);
if (diff > 0)
{
sb.append(" ").append(diff).append(" ").append(names[i * 2 + (diff > 1 ? 1 : 0)]);
}
}
if (sb.length() == 0)
{
return "now";
}
return sb.toString();
}
private static int dateDiff(int type, Calendar fromDate, Calendar toDate, boolean future)
{
int diff = 0;
long savedDate = fromDate.getTimeInMillis();
while ((future && !fromDate.after(toDate)) || (!future && !fromDate.before(toDate)))
{
savedDate = fromDate.getTimeInMillis();
fromDate.add(type, future ? 1 : -1);
diff++;
}
diff--;
fromDate.setTimeInMillis(savedDate);
return diff;
}
public static long parseDateDiff(String time, boolean future) throws Exception
{
Pattern timePattern = Pattern.compile(
"(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*(?:s[a-z]*)?)?", Pattern.CASE_INSENSITIVE);
Matcher m = timePattern.matcher(time);
int years = 0;
int months = 0;
int weeks = 0;
int days = 0;
int hours = 0;
int minutes = 0;
int seconds = 0;
boolean found = false;
while (m.find())
{
if (m.group() == null || m.group().isEmpty())
{
continue;
}
for (int i = 0; i < m.groupCount(); i++)
{
if (m.group(i) != null && !m.group(i).isEmpty())
{
found = true;
break;
}
}
if (found)
{
if (m.group(1) != null && !m.group(1).isEmpty())
{
years = Integer.parseInt(m.group(1));
}
if (m.group(2) != null && !m.group(2).isEmpty())
{
months = Integer.parseInt(m.group(2));
}
if (m.group(3) != null && !m.group(3).isEmpty())
{
weeks = Integer.parseInt(m.group(3));
}
if (m.group(4) != null && !m.group(4).isEmpty())
{
days = Integer.parseInt(m.group(4));
}
if (m.group(5) != null && !m.group(5).isEmpty())
{
hours = Integer.parseInt(m.group(5));
}
if (m.group(6) != null && !m.group(6).isEmpty())
{
minutes = Integer.parseInt(m.group(6));
}
if (m.group(7) != null && !m.group(7).isEmpty())
{
seconds = Integer.parseInt(m.group(7));
}
break;
}
}
if (!found)
{
throw new Exception(Util.i18n("illegalDate"));
}
Calendar c = new GregorianCalendar();
if (years > 0)
{
c.add(Calendar.YEAR, years * (future ? 1 : -1));
}
if (months > 0)
{
c.add(Calendar.MONTH, months * (future ? 1 : -1));
}
if (weeks > 0)
{
c.add(Calendar.WEEK_OF_YEAR, weeks * (future ? 1 : -1));
}
if (days > 0)
{
c.add(Calendar.DAY_OF_MONTH, days * (future ? 1 : -1));
}
if (hours > 0)
{
c.add(Calendar.HOUR_OF_DAY, hours * (future ? 1 : -1));
}
if (minutes > 0)
{
c.add(Calendar.MINUTE, minutes * (future ? 1 : -1));
}
if (seconds > 0)
{
c.add(Calendar.SECOND, seconds * (future ? 1 : -1));
}
return c.getTimeInMillis();
}
// The player can stand inside these materials
private static final Set<Integer> AIR_MATERIALS = new HashSet<Integer>();
static {
AIR_MATERIALS.add(Material.AIR.getId());
AIR_MATERIALS.add(Material.SAPLING.getId());
AIR_MATERIALS.add(Material.POWERED_RAIL.getId());
AIR_MATERIALS.add(Material.DETECTOR_RAIL.getId());
AIR_MATERIALS.add(Material.LONG_GRASS.getId());
AIR_MATERIALS.add(Material.DEAD_BUSH.getId());
AIR_MATERIALS.add(Material.YELLOW_FLOWER.getId());
AIR_MATERIALS.add(Material.RED_ROSE.getId());
AIR_MATERIALS.add(Material.BROWN_MUSHROOM.getId());
AIR_MATERIALS.add(Material.RED_MUSHROOM.getId());
AIR_MATERIALS.add(Material.TORCH.getId());
AIR_MATERIALS.add(Material.REDSTONE_WIRE.getId());
AIR_MATERIALS.add(Material.SEEDS.getId());
AIR_MATERIALS.add(Material.SIGN_POST.getId());
AIR_MATERIALS.add(Material.WOODEN_DOOR.getId());
AIR_MATERIALS.add(Material.LADDER.getId());
AIR_MATERIALS.add(Material.RAILS.getId());
AIR_MATERIALS.add(Material.WALL_SIGN.getId());
AIR_MATERIALS.add(Material.LEVER.getId());
AIR_MATERIALS.add(Material.STONE_PLATE.getId());
AIR_MATERIALS.add(Material.IRON_DOOR_BLOCK.getId());
AIR_MATERIALS.add(Material.WOOD_PLATE.getId());
AIR_MATERIALS.add(Material.REDSTONE_TORCH_OFF.getId());
AIR_MATERIALS.add(Material.REDSTONE_TORCH_ON.getId());
AIR_MATERIALS.add(Material.STONE_BUTTON.getId());
AIR_MATERIALS.add(Material.SUGAR_CANE_BLOCK.getId());
AIR_MATERIALS.add(Material.DIODE_BLOCK_OFF.getId());
AIR_MATERIALS.add(Material.DIODE_BLOCK_ON.getId());
AIR_MATERIALS.add(Material.TRAP_DOOR.getId());
AIR_MATERIALS.add(Material.PUMPKIN_STEM.getId());
AIR_MATERIALS.add(Material.MELON_STEM.getId());
AIR_MATERIALS.add(Material.VINE.getId());
//TODO: Add 1.9 materials
}
public static Location getSafeDestination(final Location loc) throws Exception
{
if (loc == null || loc.getWorld() == null)
{
throw new Exception(Util.i18n("destinationNotSet"));
}
final World world = loc.getWorld();
int x = loc.getBlockX();
int y = (int)Math.round(loc.getY());
int z = loc.getBlockZ();
while (isBlockAboveAir(world, x, y, z))
{
y -= 1;
if (y < 0)
{
break;
}
}
while (isBlockUnsafe(world, x, y, z))
{
y += 1;
if (y >= 127)
{
x += 1;
break;
}
}
while (isBlockUnsafe(world, x, y, z))
{
y -= 1;
if (y <= 1)
{
y = 127;
x += 1;
if (x - 32 > loc.getBlockX())
{
throw new Exception(Util.i18n("holeInFloor"));
}
}
}
return new Location(world, x + 0.5D, y, z + 0.5D, loc.getYaw(), loc.getPitch());
}
private static boolean isBlockAboveAir(final World world, final int x, final int y, final int z)
{
return AIR_MATERIALS.contains(world.getBlockAt(x, y - 1, z).getType().getId());
}
public static boolean isBlockUnsafe(final World world, final int x, final int y, final int z)
{
final Block below = world.getBlockAt(x, y - 1, z);
if (below.getType() == Material.LAVA || below.getType() == Material.STATIONARY_LAVA)
{
return true;
}
if (below.getType() == Material.FIRE)
{
return true;
}
if ((!AIR_MATERIALS.contains(world.getBlockAt(x, y, z).getType().getId()))
|| (!AIR_MATERIALS.contains(world.getBlockAt(x, y + 1, z).getType().getId())))
{
return true;
}
return isBlockAboveAir(world, x, y, z);
}
private static DecimalFormat df = new DecimalFormat("#0.00", DecimalFormatSymbols.getInstance(Locale.US));
public static String formatCurrency(final double value, final IEssentials ess)
{
String str = ess.getSettings().getCurrencySymbol() + df.format(value);
if (str.endsWith(".00"))
{
str = str.substring(0, str.length() - 3);
}
return str;
}
public static double roundDouble(final double d)
{
return Math.round(d * 100.0) / 100.0;
}
public static Locale getCurrentLocale()
{
return currentLocale;
}
private static class ConfigClassLoader extends ClassLoader
{
private final transient File dataFolder;
private final transient ClassLoader cl;
private final transient IEssentials ess;
public ConfigClassLoader(final ClassLoader cl, final IEssentials ess)
{
this.ess = ess;
this.dataFolder = ess.getDataFolder();
this.cl = cl;
}
@Override
public URL getResource(final String string)
{
final File file = new File(dataFolder, string);
if (file.exists())
{
try
{
return file.toURI().toURL();
}
catch (MalformedURLException ex)
{
return cl.getResource(string);
}
}
return cl.getResource(string);
}
@Override
public synchronized void clearAssertionStatus()
{
cl.clearAssertionStatus();
}
@Override
public InputStream getResourceAsStream(final String string)
{
final File file = new File(dataFolder, string);
if (file.exists())
{
BufferedReader br = null;
try
{
br = new BufferedReader(new FileReader(file));
final String version = br.readLine();
if (version == null || !version.equals("#version: " + ess.getDescription().getVersion()))
{
logger.log(Level.WARNING, String.format("Translation file %s is not updated for Essentials version. Will use default.", file));
return cl.getResourceAsStream(string);
}
return new FileInputStream(file);
}
catch (IOException ex)
{
return cl.getResourceAsStream(string);
}
finally
{
if (br != null)
{
try
{
br.close();
}
catch (IOException ex)
{
}
}
}
}
return cl.getResourceAsStream(string);
}
@Override
public Enumeration<URL> getResources(final String string) throws IOException
{
return cl.getResources(string);
}
@Override
public Class<?> loadClass(final String string) throws ClassNotFoundException
{
return cl.loadClass(string);
}
@Override
public synchronized void setClassAssertionStatus(final String string, final boolean bln)
{
cl.setClassAssertionStatus(string, bln);
}
@Override
public synchronized void setDefaultAssertionStatus(final boolean bln)
{
cl.setDefaultAssertionStatus(bln);
}
@Override
public synchronized void setPackageAssertionStatus(final String string, final boolean bln)
{
cl.setPackageAssertionStatus(string, bln);
}
}
private static final Locale defaultLocale = Locale.getDefault();
private static Locale currentLocale = defaultLocale;
private static ResourceBundle bundle = ResourceBundle.getBundle("messages", defaultLocale);
private static ResourceBundle defaultBundle = ResourceBundle.getBundle("messages", Locale.US);
public static String i18n(String string)
{
try
{
return bundle.getString(string);
}
catch (MissingResourceException ex)
{
logger.log(Level.WARNING, String.format("Missing translation key \"%s\" in translation file %s", ex.getKey(), bundle.getLocale().toString()), ex);
return defaultBundle.getString(string);
}
}
public static String format(String string, Object... objects)
{
MessageFormat mf = new MessageFormat(i18n(string));
return mf.format(objects);
}
public static void updateLocale(String loc, IEssentials ess)
{
if (loc == null || loc.isEmpty())
{
return;
}
String[] parts = loc.split("[_\\.]");
if (parts.length == 1)
{
currentLocale = new Locale(parts[0]);
}
if (parts.length == 2)
{
currentLocale = new Locale(parts[0], parts[1]);
}
if (parts.length == 3)
{
currentLocale = new Locale(parts[0], parts[1], parts[2]);
}
logger.log(Level.INFO, String.format("Using locale %s", currentLocale.toString()));
bundle = ResourceBundle.getBundle("messages", currentLocale, new ConfigClassLoader(Util.class.getClassLoader(), ess));
if (!bundle.keySet().containsAll(defaultBundle.keySet()))
{
logger.log(Level.WARNING, String.format("Translation file %s does not contain all translation keys.", currentLocale.toString()));
}
}
public static String joinList(Object... list)
{
return joinList(", ", list);
}
public static String joinList(String seperator, Object... list)
{
StringBuilder buf = new StringBuilder();
for (Object each : list)
{
if (buf.length() > 0)
{
buf.append(seperator);
}
if(each instanceof List)
{
buf.append(joinList(seperator, ((List)each).toArray()));
}
else
{
try
{
buf.append(each.toString());
}
catch (Exception e)
{
buf.append(each.toString());
}
}
}
return buf.toString();
}
public static String capitalCase(String s)
{
return s.toUpperCase().charAt(0) + s.toLowerCase().substring(1);
}
}

View File

@@ -1,54 +0,0 @@
package com.earth2me.essentials;
import java.io.File;
import java.util.logging.Logger;
import org.bukkit.inventory.ItemStack;
public class Worth implements IConf
{
private static final Logger logger = Logger.getLogger("Minecraft");
private final EssentialsConf config;
public Worth(File dataFolder)
{
config = new EssentialsConf(new File(dataFolder, "worth.yml"));
config.setTemplateName("/worth.yml");
config.load();
}
public double getPrice(ItemStack itemStack)
{
String itemname = itemStack.getType().toString().toLowerCase().replace("_", "");
double result;
result = config.getDouble("worth."+itemname+"."+itemStack.getDurability(), Double.NaN);
if (Double.isNaN(result)) {
result = config.getDouble("worth."+itemname+".0", Double.NaN);
}
if (Double.isNaN(result)) {
result = config.getDouble("worth."+itemname, Double.NaN);
}
if (Double.isNaN(result)) {
result = config.getDouble("worth-"+itemStack.getTypeId(), Double.NaN);
}
return result;
}
public void setPrice(ItemStack itemStack, double price)
{
if (itemStack.getType().getData() == null) {
config.setProperty("worth." + itemStack.getType().toString().toLowerCase().replace("_", ""), price);
} else {
// Bukkit-bug: getDurability still contains the correct value, while getData().getData() is 0.
config.setProperty("worth." + itemStack.getType().toString().toLowerCase().replace("_", "")+"."+itemStack.getDurability(), price);
}
config.removeProperty("worth-"+itemStack.getTypeId());
config.save();
}
public void reloadConfig()
{
config.load();
}
}

View File

@@ -1,306 +0,0 @@
package com.earth2me.essentials.api;
import com.earth2me.essentials.EssentialsConf;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.io.File;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.entity.Player;
/**
* Instead of using this api directly, we recommend to use the register plugin:
* http://bit.ly/RegisterMethod
*/
public final class Economy
{
private Economy()
{
}
private static final Logger logger = Logger.getLogger("Minecraft");
private static IEssentials ess;
private static final String noCallBeforeLoad = "Essentials API is called before Essentials is loaded.";
/**
* @param aEss the ess to set
*/
public static void setEss(IEssentials aEss)
{
ess = aEss;
}
private static void createNPCFile(String name)
{
File folder = new File(ess.getDataFolder(), "userdata");
if (!folder.exists())
{
folder.mkdirs();
}
EssentialsConf npcConfig = new EssentialsConf(new File(folder, Util.sanitizeFileName(name) + ".yml"));
npcConfig.load();
npcConfig.setProperty("npc", true);
npcConfig.setProperty("money", ess.getSettings().getStartingBalance());
npcConfig.save();
}
private static void deleteNPC(String name)
{
File folder = new File(ess.getDataFolder(), "userdata");
if (!folder.exists())
{
folder.mkdirs();
}
File config = new File(folder, Util.sanitizeFileName(name) + ".yml");
EssentialsConf npcConfig = new EssentialsConf(config);
npcConfig.load();
if (npcConfig.hasProperty("npc") && npcConfig.getBoolean("npc", false))
{
if (!config.delete())
{
logger.log(Level.WARNING, Util.format("deleteFileError", config));
}
ess.getUserMap().removeUser(name);
}
}
private static User getUserByName(String name)
{
if (ess == null)
{
throw new RuntimeException(noCallBeforeLoad);
}
User user;
Player player = ess.getServer().getPlayer(name);
if (player != null)
{
user = ess.getUser(player);
}
else
{
user = ess.getOfflineUser(name);
}
return user;
}
/**
* Returns the balance of a user
* @param name Name of the user
* @return balance
* @throws UserDoesNotExistException
*/
public static double getMoney(String name) throws UserDoesNotExistException
{
User user = getUserByName(name);
if (user == null)
{
throw new UserDoesNotExistException(name);
}
return user.getMoney();
}
/**
* Sets the balance of a user
* @param name Name of the user
* @param balance The balance you want to set
* @throws UserDoesNotExistException If a user by that name does not exists
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
*/
public static void setMoney(String name, double balance) throws UserDoesNotExistException, NoLoanPermittedException
{
User user = getUserByName(name);
if (user == null)
{
throw new UserDoesNotExistException(name);
}
if (balance < 0.0 && !user.isAuthorized("essentials.eco.loan"))
{
throw new NoLoanPermittedException();
}
user.setMoney(balance);
}
/**
* Adds money to the balance of a user
* @param name Name of the user
* @param amount The money you want to add
* @throws UserDoesNotExistException If a user by that name does not exists
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
*/
public static void add(String name, double amount) throws UserDoesNotExistException, NoLoanPermittedException
{
double result = getMoney(name) + amount;
setMoney(name, result);
}
/**
* Substracts money from the balance of a user
* @param name Name of the user
* @param amount The money you want to substract
* @throws UserDoesNotExistException If a user by that name does not exists
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
*/
public static void subtract(String name, double amount) throws UserDoesNotExistException, NoLoanPermittedException
{
double result = getMoney(name) - amount;
setMoney(name, result);
}
/**
* Divides the balance of a user by a value
* @param name Name of the user
* @param value The balance is divided by this value
* @throws UserDoesNotExistException If a user by that name does not exists
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
*/
public static void divide(String name, double value) throws UserDoesNotExistException, NoLoanPermittedException
{
double result = getMoney(name) / value;
setMoney(name, result);
}
/**
* Multiplies the balance of a user by a value
* @param name Name of the user
* @param value The balance is multiplied by this value
* @throws UserDoesNotExistException If a user by that name does not exists
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
*/
public static void multiply(String name, double value) throws UserDoesNotExistException, NoLoanPermittedException
{
double result = getMoney(name) * value;
setMoney(name, result);
}
/**
* Resets the balance of a user to the starting balance
* @param name Name of the user
* @throws UserDoesNotExistException If a user by that name does not exists
* @throws NoLoanPermittedException If the user is not allowed to have a negative balance
*/
public static void resetBalance(String name) throws UserDoesNotExistException, NoLoanPermittedException
{
if (ess == null)
{
throw new RuntimeException(noCallBeforeLoad);
}
setMoney(name, ess.getSettings().getStartingBalance());
}
/**
* @param name Name of the user
* @param amount The amount of money the user should have
* @return true, if the user has more or an equal amount of money
* @throws UserDoesNotExistException If a user by that name does not exists
*/
public static boolean hasEnough(String name, double amount) throws UserDoesNotExistException
{
return amount <= getMoney(name);
}
/**
* @param name Name of the user
* @param amount The amount of money the user should have
* @return true, if the user has more money
* @throws UserDoesNotExistException If a user by that name does not exists
*/
public static boolean hasMore(String name, double amount) throws UserDoesNotExistException
{
return amount < getMoney(name);
}
/**
* @param name Name of the user
* @param amount The amount of money the user should not have
* @return true, if the user has less money
* @throws UserDoesNotExistException If a user by that name does not exists
*/
public static boolean hasLess(String name, double amount) throws UserDoesNotExistException
{
return amount > getMoney(name);
}
/**
* Test if the user has a negative balance
* @param name Name of the user
* @return true, if the user has a negative balance
* @throws UserDoesNotExistException If a user by that name does not exists
*/
public static boolean isNegative(String name) throws UserDoesNotExistException
{
return getMoney(name) < 0.0;
}
/**
* Formats the amount of money like all other Essentials functions.
* Example: $100000 or $12345.67
* @param amount The amount of money
* @return Formatted money
*/
public static String format(double amount)
{
if (ess == null)
{
throw new RuntimeException(noCallBeforeLoad);
}
return Util.formatCurrency(amount, ess);
}
/**
* Test if a player exists to avoid the UserDoesNotExistException
* @param name Name of the user
* @return true, if the user exists
*/
public static boolean playerExists(String name)
{
return getUserByName(name) != null;
}
/**
* Test if a player is a npc
* @param name Name of the player
* @return true, if it's a npc
* @throws UserDoesNotExistException
*/
public static boolean isNPC(String name) throws UserDoesNotExistException
{
User user = getUserByName(name);
if (user == null)
{
throw new UserDoesNotExistException(name);
}
return user.isNPC();
}
/**
* Creates dummy files for a npc, if there is no player yet with that name.
* @param name Name of the player
* @return true, if a new npc was created
*/
public static boolean createNPC(String name)
{
User user = getUserByName(name);
if (user == null)
{
createNPCFile(name);
return true;
}
return false;
}
/**
* Deletes a user, if it is marked as npc.
* @param name Name of the player
* @throws UserDoesNotExistException
*/
public static void removeNPC(String name) throws UserDoesNotExistException
{
User user = getUserByName(name);
if (user == null)
{
throw new UserDoesNotExistException(name);
}
deleteNPC(name);
}
}

View File

@@ -1,13 +0,0 @@
package com.earth2me.essentials.api;
import com.earth2me.essentials.Util;
public class NoLoanPermittedException extends Exception
{
public NoLoanPermittedException()
{
super(Util.i18n("negativeBalanceError"));
}
}

View File

@@ -1,13 +0,0 @@
package com.earth2me.essentials.api;
import com.earth2me.essentials.Util;
public class UserDoesNotExistException extends Exception
{
public UserDoesNotExistException(String name)
{
super(Util.format("userDoesNotExist", name));
}
}

View File

@@ -1,52 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
public class Commandafk extends EssentialsCommand
{
public Commandafk()
{
super("afk");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length > 0 && user.isAuthorized("essentials.afk.others"))
{
User afkUser = ess.getUser(ess.getServer().matchPlayer(args[0]));
if (afkUser != null)
{
toggleAfk(afkUser);
}
}
else
{
toggleAfk(user);
}
}
private final void toggleAfk(User user)
{
if (!user.toggleAfk())
{
//user.sendMessage(Util.i18n("markedAsNotAway"));
if (!user.isHidden())
{
ess.broadcastMessage(user, Util.format("userIsNotAway", user.getDisplayName()));
}
user.updateActivity(false);
}
else
{
//user.sendMessage(Util.i18n("markedAsAway"));
if (!user.isHidden())
{
ess.broadcastMessage(user, Util.format("userIsAway", user.getDisplayName()));
}
}
}
}

View File

@@ -1,26 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Location;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.TargetBlock;
import org.bukkit.entity.TNTPrimed;
public class Commandantioch extends EssentialsCommand
{
public Commandantioch()
{
super("antioch");
}
@Override
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{
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 = new TargetBlock(user).getTargetBlock().getLocation();
loc.getWorld().spawn(loc, TNTPrimed.class);
}
}

View File

@@ -1,24 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Trade;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commandback extends EssentialsCommand
{
public Commandback()
{
super("back");
}
@Override
protected void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
Trade charge = new Trade(this.getName(), ess);
charge.isAffordableFor(user);
user.sendMessage(Util.i18n("backUsageMsg"));
user.getTeleport().back(charge);
}
}

View File

@@ -1,27 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Backup;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
public class Commandbackup extends EssentialsCommand
{
public Commandbackup()
{
super("backup");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
Backup backup = ess.getBackup();
if (backup == null)
{
throw new Exception();
}
backup.run();
sender.sendMessage(Util.i18n("backupStarted"));
}
}

View File

@@ -1,36 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.command.CommandSender;
public class Commandbalance extends EssentialsCommand
{
public Commandbalance()
{
super("balance");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
sender.sendMessage(Util.format("balance", Util.formatCurrency(getPlayer(server, args, 0, true).getMoney(), ess)));
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
double bal = (args.length < 1
|| !(user.isAuthorized("essentials.balance.others")
|| user.isAuthorized("essentials.balance.other"))
? user
: getPlayer(server, args, 0, true)).getMoney();
user.sendMessage(Util.format("balance", Util.formatCurrency(bal, ess)));
}
}

View File

@@ -1,67 +0,0 @@
package com.earth2me.essentials.commands;
import java.util.Map.Entry;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.command.CommandSender;
public class Commandbalancetop extends EssentialsCommand
{
public Commandbalancetop()
{
super("balancetop");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
int max = 10;
if (args.length > 0)
{
try
{
if (Integer.parseInt(args[0]) < 10)
{
max = Integer.parseInt(args[0]);
}
}
catch (NumberFormatException ex)
{
//catch it because they tried to enter a string not number.
}
}
final Map<User, Double> balances = new HashMap<User, Double>();
for (User u : ess.getUserMap().getAllUsers())
{
balances.put(u, u.getMoney());
}
final List<Map.Entry<User, Double>> sortedEntries = new ArrayList<Map.Entry<User, Double>>(balances.entrySet());
Collections.sort(sortedEntries, new Comparator<Map.Entry<User, Double>>()
{
public int compare(final Entry<User, Double> entry1, final Entry<User, Double> entry2)
{
return -entry1.getValue().compareTo(entry2.getValue());
}
});
int count = 0;
sender.sendMessage(Util.format("balanceTop", max));
for (Map.Entry<User, Double> entry : sortedEntries)
{
if (count == max)
{
break;
}
sender.sendMessage(entry.getKey().getDisplayName() + ", " + Util.formatCurrency(entry.getValue(), ess));
count++;
}
}
}

View File

@@ -1,68 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Console;
import com.earth2me.essentials.OfflinePlayer;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.entity.Player;
public class Commandban extends EssentialsCommand
{
public Commandban()
{
super("ban");
}
@Override
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
final User player = getPlayer(server, args, 0, true);
if (player.getBase() instanceof OfflinePlayer)
{
if (sender instanceof Player
&& !ess.getUser(sender).isAuthorized("essentials.ban.offline"))
{
sender.sendMessage(Util.i18n("banExempt"));
return;
}
}
else
{
if (player.isAuthorized("essentials.ban.exempt"))
{
sender.sendMessage(Util.i18n("banExempt"));
return;
}
}
String banReason;
if (args.length > 1)
{
banReason = getFinalArg(args, 1);
player.setBanReason(commandLabel);
}
else
{
banReason = Util.i18n("defaultBanReason");
}
player.setBanned(true);
player.kickPlayer(banReason);
String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
for(Player p : server.getOnlinePlayers())
{
User u = ess.getUser(p);
if(u.isAuthorized("essentials.ban.notify"))
{
p.sendMessage(Util.format("playerBanned", senderName, player.getName(), banReason));
}
}
}
}

View File

@@ -1,37 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
public class Commandbanip extends EssentialsCommand
{
public Commandbanip()
{
super("banip");
}
@Override
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
final User u = ess.getUser(args[0]);
if (u == null)
{
ess.getServer().banIP(args[0]);
sender.sendMessage(Util.i18n("banIpAddress"));
}
else
{
ess.getServer().banIP(u.getAddress().getAddress().getHostAddress());
sender.sendMessage(Util.i18n("banIpAddress"));
}
}
}

View File

@@ -1,51 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.TargetBlock;
import org.bukkit.Server;
import org.bukkit.TreeType;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Location;
public class Commandbigtree extends EssentialsCommand
{
public Commandbigtree()
{
super("bigtree");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
TreeType tree;
if (args.length > 0 && args[0].equalsIgnoreCase("redwood"))
{
tree = TreeType.TALL_REDWOOD;
}
else if (args.length > 0 && args[0].equalsIgnoreCase("tree"))
{
tree = TreeType.BIG_TREE;
}
else
{
throw new NotEnoughArgumentsException();
}
final int[] ignore =
{
8, 9
};
final Location loc = (new TargetBlock(user, 300, 0.2, ignore)).getTargetBlock().getLocation();
final Location safeLocation = Util.getSafeDestination(loc);
final boolean success = user.getWorld().generateTree(safeLocation, (TreeType)tree);
if (success)
{
user.sendMessage(Util.i18n("bigTreeSuccess"));
}
else
{
throw new Exception(Util.i18n("bigTreeFailure"));
}
}
}

View File

@@ -1,27 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandbroadcast extends EssentialsCommand
{
public Commandbroadcast()
{
super("broadcast");
}
@Override
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
ess.broadcastMessage(null,
Util.format("broadcast", getFinalArg(args, 0)));
}
}

View File

@@ -1,30 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandburn extends EssentialsCommand
{
public Commandburn()
{
super("burn");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 2)
{
throw new NotEnoughArgumentsException();
}
for (Player p : server.matchPlayer(args[0]))
{
p.setFireTicks(Integer.parseInt(args[1]) * 20);
sender.sendMessage(Util.format("burnMsg", p.getDisplayName(), Integer.parseInt(args[1])));
}
}
}

View File

@@ -1,97 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.List;
public class Commandclearinventory extends EssentialsCommand
{
public Commandclearinventory()
{
super("clearinventory");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length > 0 && user.isAuthorized("essentials.clearinventory.others"))
{
//TODO: Fix fringe user match case.
if (args[0].length() >= 3)
{
List<Player> online = server.matchPlayer(args[0]);
if (!online.isEmpty())
{
for (Player p : online)
{
p.getInventory().clear();
user.sendMessage(Util.format("inventoryClearedOthers", p.getDisplayName()));
}
return;
}
throw new Exception(Util.i18n("playerNotFound"));
}
else
{
Player p = server.getPlayer(args[0]);
if (p != null)
{
p.getInventory().clear();
user.sendMessage(Util.format("inventoryClearedOthers", p.getDisplayName()));
}
else
{
throw new Exception(Util.i18n("playerNotFound"));
}
}
}
else
{
user.getInventory().clear();
user.sendMessage(Util.i18n("inventoryCleared"));
}
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
if (args[0].length() >= 3)
{
List<Player> online = server.matchPlayer(args[0]);
if (!online.isEmpty())
{
for (Player p : online)
{
p.getInventory().clear();
sender.sendMessage(Util.format("inventoryClearedOthers", p.getDisplayName()));
}
return;
}
throw new Exception(Util.i18n("playerNotFound"));
}
else
{
Player u = server.getPlayer(args[0]);
if (u != null)
{
u.getInventory().clear();
sender.sendMessage(Util.format("inventoryClearedOthers", u.getDisplayName()));
}
else
{
throw new Exception(Util.i18n("playerNotFound"));
}
}
}
}

View File

@@ -1,31 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
public class Commandcompass extends EssentialsCommand
{
public Commandcompass()
{
super("compass");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
int r = (int)user.getLocation().getYaw();
String dir;
if (r < 23) dir = "N";
else if (r < 68) dir = "NE";
else if (r < 113) dir = "E";
else if (r < 158) dir = "SE";
else if (r < 203) dir = "S";
else if (r < 248) dir = "SW";
else if (r < 293) dir = "W";
else if (r < 338) dir = "NW";
else dir = "N";
user.sendMessage(Util.format("compassBearing", dir, r));
}
}

View File

@@ -1,48 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.Util;
public class Commanddelhome extends EssentialsCommand
{
public Commanddelhome()
{
super("delhome");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
//Allowing both formats /delhome khobbits house | /delhome khobbits:house
final String[] nameParts = args[0].split(":");
if (nameParts[0].length() != args[0].length())
{
args = nameParts;
}
User user = ess.getUser(sender);
String name;
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
else if (args.length > 1 && (user == null || user.isAuthorized("essentials.delhome.others")))
{
user = getPlayer(server, args, 0, true);
name = args[1];
}
else
{
if (user == null)
{
throw new NotEnoughArgumentsException();
}
name = args[0];
}
user.delHome(name.toLowerCase());
sender.sendMessage(Util.format("deleteHome", name));
}
}

View File

@@ -1,22 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
public class Commanddeljail extends EssentialsCommand {
public Commanddeljail() {
super("deljail");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception {
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
ess.getJail().delJail(args[0]);
sender.sendMessage(Util.format("deleteJail", args[0]));
}
}

View File

@@ -1,25 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.Util;
public class Commanddelwarp extends EssentialsCommand
{
public Commanddelwarp()
{
super("delwarp");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
ess.getWarps().delWarp(args[0]);
sender.sendMessage(Util.format("deleteWarp", args[0]));
}
}

View File

@@ -1,32 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
public class Commanddepth extends EssentialsCommand
{
public Commanddepth()
{
super("depth");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
int y = user.getLocation().getBlockY() - 63;
if (y > 0)
{
user.sendMessage(Util.format("depthAboveSea", y));
}
else if (y < 0)
{
user.sendMessage(Util.format("depthBelowSea", (-y)));
}
else
{
user.sendMessage(Util.i18n("depth"));
}
}
}

View File

@@ -1,80 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User;
public class Commandeco extends EssentialsCommand
{
public Commandeco()
{
super("eco");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 2)
{
throw new NotEnoughArgumentsException();
}
EcoCommands cmd;
double amount;
try
{
cmd = EcoCommands.valueOf(args[0].toUpperCase());
amount = Double.parseDouble(args[2].replaceAll("[^0-9\\.]", ""));
}
catch (Exception ex)
{
throw new NotEnoughArgumentsException(ex);
}
if (args[1].contentEquals("*"))
{
for (Player p : server.getOnlinePlayers())
{
User u = ess.getUser(p);
switch (cmd)
{
case GIVE:
u.giveMoney(amount);
break;
case TAKE:
u.takeMoney(amount);
break;
case RESET:
u.setMoney(amount == 0 ? ess.getSettings().getStartingBalance() : amount);
break;
}
}
}
else
{
User u = getPlayer(server, args, 1, true);
switch (cmd)
{
case GIVE:
u.giveMoney(amount, sender);
break;
case TAKE:
u.takeMoney(amount, sender);
break;
case RESET:
u.setMoney(amount == 0 ? ess.getSettings().getStartingBalance() : amount);
break;
}
}
}
private enum EcoCommands
{
GIVE, TAKE, RESET
}
}

View File

@@ -1,119 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.block.Block;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandessentials extends EssentialsCommand
{
public Commandessentials()
{
super("essentials");
}
private transient int taskid;
private final transient Map<Player, Block> noteBlocks = new HashMap<Player, Block>();
@Override
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
final Map<String, Byte> noteMap = new HashMap<String, Byte>();
noteMap.put("1F#", (byte)0x0);
noteMap.put("1G", (byte)0x1);
noteMap.put("1G#", (byte)0x2);
noteMap.put("1A", (byte)0x3);
noteMap.put("1A#", (byte)0x4);
noteMap.put("1B", (byte)0x5);
noteMap.put("1C", (byte)0x6);
noteMap.put("1C#", (byte)0x7);
noteMap.put("1D", (byte)0x8);
noteMap.put("1D#", (byte)0x9);
noteMap.put("1E", (byte)0xA);
noteMap.put("1F", (byte)0xB);
noteMap.put("2F#", (byte)(0x0 + 0xC));
noteMap.put("2G", (byte)(0x1 + 0xC));
noteMap.put("2G#", (byte)(0x2 + 0xC));
noteMap.put("2A", (byte)(0x3 + 0xC));
noteMap.put("2A#", (byte)(0x4 + 0xC));
noteMap.put("2B", (byte)(0x5 + 0xC));
noteMap.put("2C", (byte)(0x6 + 0xC));
noteMap.put("2C#", (byte)(0x7 + 0xC));
noteMap.put("2D", (byte)(0x8 + 0xC));
noteMap.put("2D#", (byte)(0x9 + 0xC));
noteMap.put("2E", (byte)(0xA + 0xC));
noteMap.put("2F", (byte)(0xB + 0xC));
if (args.length > 0 && args[0].equalsIgnoreCase("nya"))
{
if (!noteBlocks.isEmpty())
{
return;
}
final String tuneStr = "1D#,1E,2F#,,2A#,1E,1D#,1E,2F#,2B,2D#,2E,2D#,2A#,2B,,2F#,,1D#,1E,2F#,2B,2C#,2A#,2B,2C#,2E,2D#,2E,2C#,,2F#,,2G#,,1D,1D#,,1C#,1D,1C#,1B,,1B,,1C#,,1D,,1D,1C#,1B,1C#,1D#,2F#,2G#,1D#,2F#,1C#,1D#,1B,1C#,1B,1D#,,2F#,,2G#,1D#,2F#,1C#,1D#,1B,1D,1D#,1D,1C#,1B,1C#,1D,,1B,1C#,1D#,2F#,1C#,1D,1C#,1B,1C#,,1B,,1C#,,2F#,,2G#,,1D,1D#,,1C#,1D,1C#,1B,,1B,,1C#,,1D,,1D,1C#,1B,1C#,1D#,2F#,2G#,1D#,2F#,1C#,1D#,1B,1C#,1B,1D#,,2F#,,2G#,1D#,2F#,1C#,1D#,1B,1D,1D#,1D,1C#,1B,1C#,1D,,1B,1C#,1D#,2F#,1C#,1D,1C#,1B,1C#,,1B,,1B,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1B,,";
final String[] tune = tuneStr.split(",");
for (Player player : server.getOnlinePlayers())
{
final Location loc = player.getLocation();
loc.add(0, 3, 0);
while (loc.getBlockY() < player.getLocation().getBlockY() + 10 && loc.getBlock().getTypeId() != 0)
{
loc.add(0, 1, 0);
}
if (loc.getBlock().getTypeId() == 0)
{
noteBlocks.put(player, loc.getBlock());
loc.getBlock().setType(Material.NOTE_BLOCK);
}
}
taskid = ess.scheduleSyncRepeatingTask(new Runnable()
{
int i = 0;
public void run()
{
final String note = tune[i];
i++;
if (i >= tune.length)
{
Commandessentials.this.stopTune();
}
if (note.isEmpty())
{
return;
}
Map<Player, Block> noteBlocks = Commandessentials.this.noteBlocks;
for (Player player : server.getOnlinePlayers())
{
Block block = noteBlocks.get(player);
if (block == null || block.getType() != Material.NOTE_BLOCK)
{
continue;
}
player.playNote(block.getLocation(), (byte)0, noteMap.get(note));
}
}
}, 20, 2);
return;
}
ess.reload();
sender.sendMessage(Util.format("essentialsReload", ess.getDescription().getVersion()));
}
private void stopTune()
{
ess.getScheduler().cancelTask(taskid);
for (Block block : noteBlocks.values())
{
if (block.getType() == Material.NOTE_BLOCK)
{
block.setType(Material.AIR);
}
}
noteBlocks.clear();
}
}

View File

@@ -1,49 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandext extends EssentialsCommand
{
public Commandext()
{
super("ext");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
extinguishPlayers(server, sender, args[0]);
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
user.setFireTicks(0);
user.sendMessage(Util.i18n("extinguish"));
return;
}
extinguishPlayers(server, user, commandLabel);
}
private void extinguishPlayers(Server server, CommandSender sender, String name) throws Exception
{
for (Player p : server.matchPlayer(name))
{
p.setFireTicks(0);
sender.sendMessage(Util.format("extinguishOthers", p.getDisplayName()));
}
}
}

View File

@@ -1,23 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import org.bukkit.Server;
import org.bukkit.entity.Fireball;
import org.bukkit.util.Vector;
public class Commandfireball extends EssentialsCommand
{
public Commandfireball()
{
super("fireball");
}
@Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{
final Vector direction = user.getEyeLocation().getDirection().multiply(2);
user.getWorld().spawn(user.getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ()), Fireball.class);
}
}

View File

@@ -1,30 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
public class Commandgc extends EssentialsCommand
{
public Commandgc()
{
super("gc");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
sender.sendMessage(Util.format("gcmax", (Runtime.getRuntime().maxMemory() / 1024 / 1024)));
sender.sendMessage(Util.format("gcfree", (Runtime.getRuntime().freeMemory() / 1024 / 1024)));
sender.sendMessage(Util.format("gctotal", (Runtime.getRuntime().totalMemory() / 1024 / 1024)));
for (World w : server.getWorlds())
{
sender.sendMessage(
(w.getEnvironment() == World.Environment.NETHER ? "Nether" : "World") + " \"" + w.getName() + "\": "
+ w.getLoadedChunks().length + Util.i18n("gcchunks")
+ w.getEntities().size() + Util.i18n("gcentities"));
}
}
}

View File

@@ -1,25 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Location;
import org.bukkit.Server;
import com.earth2me.essentials.User;
public class Commandgetpos extends EssentialsCommand
{
public Commandgetpos()
{
super("getpos");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
Location coords = user.getLocation();
user.sendMessage("§7X: " + coords.getBlockX() + " (-North <-> +South)");
user.sendMessage("§7Y: " + coords.getBlockY() + " (+Up <-> -Down)");
user.sendMessage("§7Z: " + coords.getBlockZ() + " (+East <-> -West)");
user.sendMessage("§7Yaw: " + coords.getYaw() + " (Rotation)");
user.sendMessage("§7Pitch: " + coords.getPitch() + " (Head angle)");
}
}

View File

@@ -1,57 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class Commandgive extends EssentialsCommand
{
public Commandgive()
{
super("give");
}
//TODO: move these messages to message file
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 2)
{
throw new NotEnoughArgumentsException();
}
ItemStack stack = ess.getItemDb().get(args[1]);
String itemname = stack.getType().toString().toLowerCase().replace("_", "");
if (sender instanceof Player
&& (ess.getSettings().permissionBasedItemSpawn()
? (!ess.getUser(sender).isAuthorized("essentials.give.item-all")
&& !ess.getUser(sender).isAuthorized("essentials.give.item-" + itemname)
&& !ess.getUser(sender).isAuthorized("essentials.give.item-" + stack.getTypeId()))
: (!ess.getUser(sender).isAuthorized("essentials.itemspawn.exempt")
&& !ess.getUser(sender).canSpawnItem(stack.getTypeId()))))
{
throw new Exception(ChatColor.RED + "You are not allowed to spawn the item " + itemname);
}
if (args.length > 2 && Integer.parseInt(args[2]) > 0)
{
stack.setAmount(Integer.parseInt(args[2]));
}
if (stack.getType() == Material.AIR)
{
throw new Exception(ChatColor.RED + "You can't give air.");
}
User giveTo = getPlayer(server, args, 0);
String itemName = stack.getType().toString().toLowerCase().replace('_', ' ');
sender.sendMessage(ChatColor.BLUE + "Giving " + stack.getAmount() + " of " + itemName + " to " + giveTo.getDisplayName() + ".");
giveTo.getInventory().addItem(stack);
giveTo.updateInventory();
}
}

View File

@@ -1,54 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandgod extends EssentialsCommand
{
public Commandgod()
{
super("god");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
godOtherPlayers(server, sender, args[0]);
}
@Override
protected void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length > 0 && user.isAuthorized("essentials.god.others"))
{
godOtherPlayers(server, user, args[0]);
return;
}
user.sendMessage(Util.format("godMode", (user.toggleGodModeEnabled()? Util.i18n("enabled") : Util.i18n("disabled"))));
}
private void godOtherPlayers(Server server, CommandSender sender, String name)
{
for (Player p : server.matchPlayer(name))
{
User u = ess.getUser(p);
if (u.isHidden())
{
continue;
}
boolean enabled = u.toggleGodModeEnabled();
u.sendMessage(Util.format("godMode", (enabled ? Util.i18n("enabled") : Util.i18n("disabled"))));
sender.sendMessage(Util.format("godMode",Util.format(enabled ? "godEnabledFor": "godDisabledFor", p.getDisplayName())));
}
}
}

View File

@@ -1,70 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.List;
public class Commandheal extends EssentialsCommand
{
public Commandheal()
{
super("heal");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length > 0 && user.isAuthorized("essentials.heal.others"))
{
if (!user.isAuthorized("essentials.heal.cooldown.bypass"))
{
user.healCooldown();
}
healOtherPlayers(server, user, args[0]);
return;
}
if (!user.isAuthorized("essentials.heal.cooldown.bypass"))
{
user.healCooldown();
}
user.setHealth(20);
user.setFoodLevel(20);
user.sendMessage(Util.i18n("heal"));
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
healOtherPlayers(server, sender, args[0]);
}
private void healOtherPlayers(Server server, CommandSender sender, String name)
{
List<Player> players = server.matchPlayer(name);
if (players.isEmpty())
{
sender.sendMessage(Util.i18n("playerNotFound"));
return;
}
for (Player p : players)
{
if (ess.getUser(p).isHidden())
{
continue;
}
p.setHealth(20);
sender.sendMessage(Util.format("healOther", p.getDisplayName()));
}
}
}

View File

@@ -1,230 +0,0 @@
package com.earth2me.essentials.commands;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.Map.Entry;
import java.util.logging.Level;
public class Commandhelp extends EssentialsCommand
{
private static final String DESCRIPTION = "description";
private static final String PERMISSION = "permission";
private static final String PERMISSIONS = "permissions";
public final Yaml yaml = new Yaml(new SafeConstructor());
public Commandhelp()
{
super("help");
}
@Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{
int page = 1;
String match = "";
try
{
if (args.length > 0)
{
match = args[0].toLowerCase();
page = Integer.parseInt(args[args.length - 1]);
if (args.length == 1)
{
match = "";
}
}
}
catch (Exception ex)
{
if (args.length == 1)
{
match = args[0].toLowerCase();
}
}
final List<String> lines = getHelpLines(user, match);
if (lines.isEmpty())
{
throw new Exception(Util.i18n("noHelpFound"));
}
final int start = (page - 1) * 9;
final int pages = lines.size() / 9 + (lines.size() % 9 > 0 ? 1 : 0);
user.sendMessage(Util.format("helpPages", page, pages));
for (int i = start; i < lines.size() && i < start + 9; i++)
{
user.sendMessage(lines.get(i));
}
}
@Override
protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
sender.sendMessage(Util.i18n("helpConsole"));
}
@SuppressWarnings("CallToThreadDumpStack")
private List<String> getHelpLines(final User user, final String match) throws Exception
{
final List<String> retval = new ArrayList<String>();
File helpFile = new File(ess.getDataFolder(), "help_" + Util.sanitizeFileName(user.getName()) + ".txt");
if (!helpFile.exists())
{
helpFile = new File(ess.getDataFolder(), "help_" + Util.sanitizeFileName(user.getGroup()) + ".txt");
}
if (!helpFile.exists())
{
helpFile = new File(ess.getDataFolder(), "help.txt");
}
if (helpFile.exists())
{
final BufferedReader bufferedReader = new BufferedReader(new FileReader(helpFile));
try
{
while (bufferedReader.ready())
{
final String line = bufferedReader.readLine();
retval.add(line.replace('&', '§'));
}
}
finally
{
bufferedReader.close();
}
return retval;
}
boolean reported = false;
String pluginName = "";
for (Plugin p : ess.getServer().getPluginManager().getPlugins())
{
try
{
final PluginDescriptionFile desc = p.getDescription();
final HashMap<String, HashMap<String, Object>> cmds = (HashMap<String, HashMap<String, Object>>)desc.getCommands();
pluginName = p.getDescription().getName().toLowerCase();
for (Entry<String, HashMap<String, Object>> k : cmds.entrySet())
{
try
{
if ((!match.equalsIgnoreCase(""))
&& (!k.getKey().toLowerCase().contains(match))
&& (!(k.getValue().get(DESCRIPTION) instanceof String
&& ((String)k.getValue().get(DESCRIPTION)).toLowerCase().contains(match)))
&& (!pluginName.contains(match)))
{
continue;
}
if (pluginName.contains("essentials"))
{
final String node = "essentials." + k.getKey();
if (!ess.getSettings().isCommandDisabled(k.getKey()) && user.isAuthorized(node))
{
retval.add("§c" + k.getKey() + "§7: " + k.getValue().get(DESCRIPTION));
}
}
else
{
if (ess.getSettings().showNonEssCommandsInHelp())
{
final HashMap<String, Object> value = k.getValue();
if (value.containsKey(PERMISSION) && value.get(PERMISSION) instanceof String && !(value.get(PERMISSION).equals("")))
{
if (user.isAuthorized((String)value.get(PERMISSION)))
{
retval.add("§c" + k.getKey() + "§7: " + value.get(DESCRIPTION));
}
}
else if (value.containsKey(PERMISSION) && value.get(PERMISSION) instanceof List && !((List<Object>)value.get(PERMISSION)).isEmpty())
{
boolean enabled = false;
for (Object o : (List<Object>)value.get(PERMISSION))
{
if (o instanceof String && user.isAuthorized((String)o))
{
enabled = true;
break;
}
}
if (enabled)
{
retval.add("§c" + k.getKey() + "§7: " + value.get(DESCRIPTION));
}
}
else if (value.containsKey(PERMISSIONS) && value.get(PERMISSIONS) instanceof String && !(value.get(PERMISSIONS).equals("")))
{
if (user.isAuthorized((String)value.get(PERMISSIONS)))
{
retval.add("§c" + k.getKey() + "§7: " + value.get(DESCRIPTION));
}
}
else if (value.containsKey(PERMISSIONS) && value.get(PERMISSIONS) instanceof List && !((List<Object>)value.get(PERMISSIONS)).isEmpty())
{
boolean enabled = false;
for (Object o : (List<Object>)value.get(PERMISSIONS))
{
if (o instanceof String && user.isAuthorized((String)o))
{
enabled = true;
break;
}
}
if (enabled)
{
retval.add("§c" + k.getKey() + "§7: " + value.get(DESCRIPTION));
}
}
else if (user.isAuthorized("essentials.help." + pluginName))
{
retval.add("§c" + k.getKey() + "§7: " + value.get(DESCRIPTION));
}
else
{
if (!ess.getSettings().hidePermissionlessHelp())
{
retval.add("§c" + k.getKey() + "§7: " + value.get(DESCRIPTION));
}
}
}
}
}
catch (NullPointerException ex)
{
continue;
}
}
}
catch (NullPointerException ex)
{
continue;
}
catch (Exception ex)
{
if (!reported)
{
logger.log(Level.WARNING, Util.format("commandHelpFailedForPlugin", pluginName), ex);
}
reported = true;
continue;
}
}
return retval;
}
}

View File

@@ -1,37 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.logging.Level;
public class Commandhelpop extends EssentialsCommand
{
public Commandhelpop()
{
super("helpop");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
final String message = Util.format("helpOp", user.getDisplayName(), getFinalArg(args, 0));
logger.log(Level.INFO, message);
for (Player p : server.getOnlinePlayers())
{
User u = ess.getUser(p);
if (!u.isAuthorized("essentials.helpop.receive"))
{
continue;
}
u.sendMessage(message);
}
}
}

View File

@@ -1,67 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Trade;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.List;
public class Commandhome extends EssentialsCommand
{
public Commandhome()
{
super("home");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
Trade charge = new Trade(this.getName(), ess);
charge.isAffordableFor(user);
User u = user;
String homeName = "";
String[] nameParts;
if (args.length > 0)
{
nameParts = args[0].split(":");
if (nameParts[0].length() == args[0].length() || !user.isAuthorized("essentials.home.others"))
{
homeName = nameParts[0];
}
else
{
u = getPlayer(server, nameParts[0].split(" "), 0, true);
if (nameParts.length > 1)
{
homeName = nameParts[1];
}
}
}
try
{
user.getTeleport().home(u, homeName.toLowerCase(), charge);
}
catch (NotEnoughArgumentsException e)
{
List<String> homes = u.getHomes();
if (homes.isEmpty() && u.equals(user) && ess.getSettings().spawnIfNoHome())
{
user.getTeleport().respawn(ess.getSpawn(), charge);
}
else if (homes.isEmpty())
{
throw new Exception(u == user ? Util.i18n("noHomeSet") : Util.i18n("noHomeSetPlayer"));
}
else if (homes.size() == 1 && u.equals(user))
{
user.getTeleport().home(u, homes.get(0), charge);
}
else
{
user.sendMessage(Util.format("homes", Util.joinList(homes)));
}
}
throw new NoChargeException();
}
}

View File

@@ -1,49 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
public class Commandignore extends EssentialsCommand
{
public Commandignore()
{
super("ignore");
}
@Override
protected void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
User u;
try
{
u = getPlayer(server, args, 0);
}
catch(NoSuchFieldException ex)
{
u = ess.getOfflineUser(args[0]);
}
if (u == null)
{
throw new Exception(Util.i18n("playerNotFound"));
}
String name = u.getName();
if (user.isIgnoredPlayer(name)) {
user.setIgnoredPlayer(name, false);
user.sendMessage(Util.format("unignorePlayer", u.getName()));
}
else
{
user.setIgnoredPlayer(name, true);
user.sendMessage(Util.format("ignorePlayer", u.getName()));
}
}
}

View File

@@ -1,188 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandinfo extends EssentialsCommand
{
public Commandinfo()
{
super("info");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
String pageStr = args.length > 0 ? args[0].trim() : null;
List<String> lines = new ArrayList<String>();
List<String> chapters = new ArrayList<String>();
Map<String, Integer> bookmarks = new HashMap<String, Integer>();
File file = null;
if (sender instanceof Player)
{
User user = ess.getUser(sender);
file = new File(ess.getDataFolder(), "info_"+Util.sanitizeFileName(user.getName()) +".txt");
if (!file.exists())
{
file = new File(ess.getDataFolder(), "info_"+Util.sanitizeFileName(user.getGroup()) +".txt");
}
}
if (file == null || !file.exists())
{
file = new File(ess.getDataFolder(), "info.txt");
}
if (file.exists())
{
final BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
try
{
int lineNumber = 0;
while (bufferedReader.ready())
{
final String line = bufferedReader.readLine();
if (line.length() > 0 && line.charAt(0) == '#')
{
bookmarks.put(line.substring(1).toLowerCase().replaceAll("&[0-9a-f]", ""), lineNumber);
chapters.add(line.substring(1).replace('&', '§'));
}
lines.add(line.replace('&', '§'));
lineNumber++;
}
}
finally
{
bufferedReader.close();
}
}
else
{
file.createNewFile();
throw new Exception(Util.i18n("infoFileDoesNotExist"));
}
if (bookmarks.isEmpty())
{
int page = 1;
try
{
page = Integer.parseInt(pageStr);
}
catch (Exception ex)
{
page = 1;
}
int start = (page - 1) * 9;
int pages = lines.size() / 9 + (lines.size() % 9 > 0 ? 1 : 0);
sender.sendMessage(Util.format("infoPages", page, pages ));
for (int i = start; i < lines.size() && i < start + 9; i++)
{
sender.sendMessage(lines.get(i));
}
return;
}
if (pageStr == null || pageStr.isEmpty() || pageStr.matches("[0-9]+"))
{
if (lines.get(0).startsWith("#"))
{
sender.sendMessage(Util.i18n("infoChapter"));
StringBuilder sb = new StringBuilder();
boolean first = true;
for (String string : chapters)
{
if (!first)
{
sb.append(", ");
}
first = false;
sb.append(string);
}
sender.sendMessage(sb.toString());
return;
}
else
{
int page = 1;
try
{
page = Integer.parseInt(pageStr);
}
catch (Exception ex)
{
page = 1;
}
int start = (page - 1) * 9;
int end;
for (end = 0; end < lines.size(); end++)
{
String line = lines.get(end);
if (line.startsWith("#"))
{
break;
}
}
int pages = end / 9 + (end % 9 > 0 ? 1 : 0);
sender.sendMessage(Util.format("infoPages", page, pages ));
for (int i = start; i < end && i < start + 9; i++)
{
sender.sendMessage(lines.get(i));
}
return;
}
}
int chapterpage = 0;
if (args.length >= 2)
{
try
{
chapterpage = Integer.parseInt(args[1]) - 1;
}
catch (Exception ex)
{
chapterpage = 0;
}
}
if (!bookmarks.containsKey(pageStr.toLowerCase()))
{
sender.sendMessage(Util.i18n("infoUnknownChapter"));
return;
}
int chapterstart = bookmarks.get(pageStr.toLowerCase()) + 1;
int chapterend;
for (chapterend = chapterstart; chapterend < lines.size(); chapterend++)
{
String line = lines.get(chapterend);
if (line.startsWith("#"))
{
break;
}
}
int start = chapterstart + chapterpage * 9;
int page = chapterpage + 1;
int pages = (chapterend - chapterstart) / 9 + ((chapterend - chapterstart) % 9 > 0 ? 1 : 0);
sender.sendMessage(Util.format("infoChapterPages", pageStr, page , pages));
for (int i = start; i < chapterend && i < start + 9; i++)
{
sender.sendMessage(lines.get(i));
}
}
}

View File

@@ -1,54 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.Arrays;
import org.bukkit.Server;
import org.bukkit.inventory.ItemStack;
public class Commandinvsee extends EssentialsCommand
{
public Commandinvsee()
{
super("invsee");
}
@Override
protected void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length < 1 && user.getSavedInventory() == null)
{
throw new NotEnoughArgumentsException();
}
User invUser = user;
if (args.length == 1)
{
invUser = getPlayer(server, args, 0);
}
if (invUser == user && user.getSavedInventory() != null)
{
invUser.getInventory().setContents(user.getSavedInventory());
user.setSavedInventory(null);
throw new Exception(Util.i18n("invRestored"));
}
if (user.getSavedInventory() == null)
{
user.setSavedInventory(user.getInventory().getContents());
}
ItemStack[] invUserStack = invUser.getInventory().getContents();
int userStackLength = user.getInventory().getContents().length;
if (invUserStack.length < userStackLength) {
invUserStack = Arrays.copyOf(invUserStack, userStackLength);
}
if (invUserStack.length > userStackLength) {
throw new Exception(Util.i18n("invBigger"));
}
user.getInventory().setContents(invUserStack);
user.sendMessage(Util.format("invSee", invUser.getDisplayName()));
user.sendMessage(Util.i18n("invSeeHelp"));
throw new NoChargeException();
}
}

View File

@@ -1,52 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
public class Commanditem extends EssentialsCommand
{
public Commanditem()
{
super("item");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
ItemStack stack = ess.getItemDb().get(args[0]);
String itemname = stack.getType().toString().toLowerCase().replace("_", "");
if (ess.getSettings().permissionBasedItemSpawn()
? (!user.isAuthorized("essentials.itemspawn.item-all")
&& !user.isAuthorized("essentials.itemspawn.item-" + itemname)
&& !user.isAuthorized("essentials.itemspawn.item-" + stack.getTypeId()))
: (!user.isAuthorized("essentials.itemspawn.exempt")
&& !user.canSpawnItem(stack.getTypeId())))
{
throw new Exception(Util.format("cantSpawnItem", itemname));
}
if (args.length > 1 && Integer.parseInt(args[1]) > 0)
{
stack.setAmount(Integer.parseInt(args[1]));
}
if (stack.getType() == Material.AIR)
{
throw new Exception(Util.format("cantSpawnItem", "Air"));
}
String itemName = stack.getType().toString().toLowerCase().replace('_', ' ');
user.sendMessage(Util.format("itemSpawn", stack.getAmount(), itemName));
user.getInventory().addItem(stack);
user.updateInventory();
}
}

View File

@@ -1,20 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
public class Commandjails extends EssentialsCommand
{
public Commandjails()
{
super("jails");
}
@Override
protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
sender.sendMessage("§7" + Util.joinList(" ", ess.getJail().getJails()));
}
}

View File

@@ -1,43 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Trade;
import org.bukkit.Location;
import org.bukkit.Server;
import com.earth2me.essentials.TargetBlock;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
public class Commandjump extends EssentialsCommand
{
public Commandjump()
{
super("jump");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
Location loc;
Location cloc = user.getLocation();
try
{
loc = new TargetBlock(user, 100, 2.65).getTargetBlock().getLocation();
loc.setYaw(cloc.getYaw());
loc.setPitch(cloc.getPitch());
loc = new TargetBlock(loc).getPreviousBlock().getLocation();
loc.setYaw(cloc.getYaw());
loc.setPitch(cloc.getPitch());
loc.setY(loc.getY() + 1);
}
catch (NullPointerException ex)
{
throw new Exception(Util.i18n("jumpError"), ex);
}
Trade charge = new Trade(this.getName(), ess);
charge.isAffordableFor(user);
user.getTeleport().teleport(loc, charge);
}
}

View File

@@ -1,44 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Console;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.entity.Player;
public class Commandkick extends EssentialsCommand
{
public Commandkick()
{
super("kick");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
User player = getPlayer(server, args, 0);
if (player.isAuthorized("essentials.kick.exempt"))
{
throw new Exception(Util.i18n("kickExempt"));
}
final String kickReason = args.length > 1 ? getFinalArg(args, 1) : Util.i18n("kickDefault");
player.kickPlayer(kickReason);
String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
for(Player p : server.getOnlinePlayers())
{
User u = ess.getUser(p);
if(u.isAuthorized("essentials.kick.notify"))
{
p.sendMessage(Util.format("playerKicked", senderName, player.getName(), kickReason));
}
}
}
}

View File

@@ -1,31 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandkickall extends EssentialsCommand
{
public Commandkickall()
{
super("kickall");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
for (Player p : server.getOnlinePlayers())
{
if (sender instanceof Player && p.getName().equalsIgnoreCase(((Player)sender).getName()))
{
continue;
}
else
{
p.kickPlayer(args.length > 0 ? getFinalArg(args, 0) : Util.i18n("kickDefault"));
}
}
}
}

View File

@@ -1,38 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
public class Commandkill extends EssentialsCommand
{
public Commandkill()
{
super("kill");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
for (Player p : server.matchPlayer(args[0]))
{
final EntityDamageEvent ede = new EntityDamageEvent(p, sender instanceof Player && ((Player)sender).getName().equals(p.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, 1000);
server.getPluginManager().callEvent(ede);
if (ede.isCancelled() && !sender.hasPermission("essentials.kill.force"))
{
continue;
}
p.setHealth(0);
sender.sendMessage(Util.format("kill", p.getDisplayName()));
}
}
}

View File

@@ -1,144 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Trade;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.GregorianCalendar;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
public class Commandkit extends EssentialsCommand
{
public Commandkit()
{
super("kit");
}
@Override
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 1)
{
try
{
final Map<String, Object> kits = ess.getSettings().getKits();
final StringBuilder list = new StringBuilder();
for (String k : kits.keySet())
{
if (user.isAuthorized("essentials.kit." + k.toLowerCase()))
{
list.append(" ").append(k);
}
}
if (list.length() > 0)
{
user.sendMessage(Util.format("kits", list.toString()));
}
else
{
user.sendMessage(Util.i18n("noKits"));
}
}
catch (Exception ex)
{
user.sendMessage(Util.i18n("kitError"));
}
}
else
{
try
{
final String kitName = args[0].toLowerCase();
final Object kit = ess.getSettings().getKit(kitName);
List<String> items;
if (!user.isAuthorized("essentials.kit." + kitName))
{
user.sendMessage(Util.format("noKitPermission", "essentials.kit." + kitName));
return;
}
try
{
//System.out.println("Kit is timed");
final Map<String, Object> els = (Map<String, Object>)kit;
items = (List<String>)els.get("items");
final double delay = els.containsKey("delay") ? ((Number)els.get("delay")).doubleValue() : 0L;
final Calendar c = new GregorianCalendar();
c.add(Calendar.SECOND, -(int)delay);
c.add(Calendar.MILLISECOND, -(int)((delay*1000.0)%1000.0));
final long mintime = c.getTimeInMillis();
final Long lastTime = user.getKitTimestamp(kitName);
if (lastTime == null || lastTime < mintime) {
final Calendar now = new GregorianCalendar();
user.setKitTimestamp(kitName, now.getTimeInMillis());
} else {
final Calendar future = new GregorianCalendar();
future.setTimeInMillis(lastTime);
future.add(Calendar.SECOND, (int)delay);
future.add(Calendar.MILLISECOND, (int)((delay*1000.0)%1000.0));
user.sendMessage(Util.format("kitTimed", Util.formatDateDiff(future.getTimeInMillis())));
return;
}
}
catch (Exception ex)
{
items = (List<String>)kit;
}
final Trade charge = new Trade("kit-" + kitName, ess);
try
{
charge.isAffordableFor(user);
}
catch (Exception ex)
{
user.sendMessage(ex.getMessage());
return;
}
boolean spew = false;
for (String d : items)
{
final String[] parts = d.split("[^0-9]+", 3);
final int id = Material.getMaterial(Integer.parseInt(parts[0])).getId();
final int amount = parts.length > 1 ? Integer.parseInt(parts[parts.length > 2 ? 2 : 1]) : 1;
final short data = parts.length > 2 ? Short.parseShort(parts[1]) : 0;
final HashMap<Integer,ItemStack> overfilled = user.getInventory().addItem(new ItemStack(id, amount, data));
for (ItemStack itemStack : overfilled.values())
{
user.getWorld().dropItemNaturally(user.getLocation(), itemStack);
spew = true;
}
}
if (spew)
{
user.sendMessage(Util.i18n("kitInvFull"));
}
try
{
charge.charge(user);
}
catch (Exception ex)
{
user.sendMessage(ex.getMessage());
}
user.sendMessage(Util.format("kitGive", kitName));
}
catch (Exception ex)
{
user.sendMessage(Util.i18n("kitError2"));
user.sendMessage(Util.i18n("kitErrorHelp"));
}
}
}
}

View File

@@ -1,50 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Commandlightning extends EssentialsCommand
{
public Commandlightning()
{
super("lightning");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
User user = null;
if (sender instanceof Player)
{
user = ess.getUser(((Player)sender));
}
if (args.length < 1 & user != null)
{
user.getWorld().strikeLightning(user.getTargetBlock(null, 600).getLocation());
return;
}
if (server.matchPlayer(args[0]).isEmpty())
{
throw new Exception(Util.i18n("playerNotFound"));
}
for (Player p : server.matchPlayer(args[0]))
{
sender.sendMessage(Util.format("lightningUse", p.getDisplayName()));
p.getWorld().strikeLightning(p.getLocation());
if (!ess.getUser(p).isGodModeEnabled()) {
p.setHealth(p.getHealth() < 5 ? 0 : p.getHealth() - 5);
}
if (ess.getSettings().warnOnSmite())
{
p.sendMessage(Util.i18n("lightningSmited"));
}
}
}
}

View File

@@ -1,151 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.ChatColor;
public class Commandlist extends EssentialsCommand
{
public Commandlist()
{
super("list");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
boolean showhidden = false;
if (sender instanceof Player)
{
if (ess.getUser(sender).isAuthorized("essentials.list.hidden"))
{
showhidden = true;
}
}
else
{
showhidden = true;
}
int playerHidden = 0;
for (Player p : server.getOnlinePlayers())
{
if (ess.getUser(p).isHidden())
{
playerHidden++;
}
}
//TODO: move these to messages file
StringBuilder online = new StringBuilder();
online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length - playerHidden);
if (showhidden && playerHidden > 0)
{
online.append(ChatColor.GRAY).append("/").append(playerHidden);
}
online.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED).append(server.getMaxPlayers());
online.append(ChatColor.BLUE).append(" players online.");
sender.sendMessage(online.toString());
if (ess.getSettings().getSortListByGroups())
{
Map<String, List<User>> sort = new HashMap<String, List<User>>();
for (Player p : server.getOnlinePlayers())
{
User u = ess.getUser(p);
if (u.isHidden() && !showhidden)
{
continue;
}
String group = u.getGroup();
List<User> list = sort.get(group);
if (list == null)
{
list = new ArrayList<User>();
sort.put(group, list);
}
list.add(u);
}
String[] groups = sort.keySet().toArray(new String[0]);
Arrays.sort(groups, String.CASE_INSENSITIVE_ORDER);
for (String group : groups)
{
StringBuilder groupString = new StringBuilder();
groupString.append(group).append(": ");
List<User> users = sort.get(group);
Collections.sort(users);
boolean first = true;
for (User user : users)
{
if (!first)
{
groupString.append(", ");
}
else
{
first = false;
}
if (user.isAfk())
{
groupString.append("§7[AFK]§f");
}
if (user.isHidden())
{
groupString.append("§7[HIDDEN]§f");
}
groupString.append(user.getDisplayName());
groupString.append("§f");
}
sender.sendMessage(groupString.toString());
}
}
else
{
List<User> users = new ArrayList<User>();
for (Player p : server.getOnlinePlayers())
{
final User u = ess.getUser(p);
if (u.isHidden() && !showhidden)
{
continue;
}
users.add(u);
}
Collections.sort(users);
StringBuilder onlineUsers = new StringBuilder();
onlineUsers.append(Util.i18n("connectedPlayers"));
boolean first = true;
for (User user : users)
{
if (!first)
{
onlineUsers.append(", ");
}
else
{
first = false;
}
if (user.isAfk())
{
onlineUsers.append("§7[AFK]§f");
}
if (user.isHidden())
{
onlineUsers.append("§7[HIDDEN]§f");
}
onlineUsers.append(user.getDisplayName());
onlineUsers.append("§f");
}
sender.sendMessage(onlineUsers.toString());
}
}
}

View File

@@ -1,72 +0,0 @@
package com.earth2me.essentials.commands;
import java.util.List;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
public class Commandmail extends EssentialsCommand
{
public Commandmail()
{
super("mail");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (args.length >= 1 && "read".equalsIgnoreCase(args[0]))
{
List<String> mail = user.getMails();
if (mail.isEmpty())
{
user.sendMessage(Util.i18n("noMail"));
throw new NoChargeException();
}
for (String s : mail)
{
user.sendMessage(s);
}
user.sendMessage(Util.i18n("mailClear"));
return;
}
if (args.length >= 3 && "send".equalsIgnoreCase(args[0]))
{
if (!user.isAuthorized("essentials.mail.send"))
{
throw new Exception(Util.i18n("noMailSendPerm"));
}
Player player = server.getPlayer(args[1]);
User u;
if (player != null)
{
u = ess.getUser(player);
}
else
{
u = ess.getOfflineUser(args[1]);
}
if (u == null)
{
throw new Exception(Util.format("playerNeverOnServer", args[1]));
}
if (!u.isIgnoredPlayer(user.getName()))
{
u.addMail(ChatColor.stripColor(user.getDisplayName()) + ": " + getFinalArg(args, 2));
}
user.sendMessage(Util.i18n("mailSent"));
return;
}
if (args.length >= 1 && "clear".equalsIgnoreCase(args[0]))
{
user.setMails(null);
user.sendMessage(Util.i18n("mailCleared"));
return;
}
throw new NotEnoughArgumentsException();
}
}

View File

@@ -1,38 +0,0 @@
package com.earth2me.essentials.commands;
import org.bukkit.Server;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
public class Commandme extends EssentialsCommand
{
public Commandme()
{
super("me");
}
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
if (user.isMuted())
{
throw new Exception(Util.i18n("voiceSilenced"));
}
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
final StringBuilder message = new StringBuilder();
message.append("* ");
message.append(user.getDisplayName());
message.append(' ');
for (int i = 0; i < args.length; i++)
{
message.append(args[i]);
message.append(' ');
}
ess.broadcastMessage(user, message.toString());
}
}

View File

@@ -1,23 +0,0 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.Util;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
public class Commandmotd extends EssentialsCommand
{
public Commandmotd()
{
super("motd");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
for (String m : ess.getMotd(sender, Util.i18n("noMotd")))
{
sender.sendMessage(m);
}
}
}

View File

@@ -1,87 +0,0 @@
package com.earth2me.essentials.commands;
import java.util.List;
import org.bukkit.Server;
import org.bukkit.entity.Player;
import com.earth2me.essentials.Console;
import com.earth2me.essentials.IReplyTo;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.command.CommandSender;
public class Commandmsg extends EssentialsCommand
{
public Commandmsg()
{
super("msg");
}
@Override
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
if (args.length < 2 || args[0].trim().isEmpty() || args[1].trim().isEmpty())
{
throw new NotEnoughArgumentsException();
}
if (sender instanceof Player)
{
User user = ess.getUser(sender);
if (user.isMuted())
{
throw new Exception(Util.i18n("voiceSilenced"));
}
}
String message = getFinalArg(args, 1);
String translatedMe = Util.i18n("me");
IReplyTo replyTo = sender instanceof Player ? ess.getUser((Player)sender) : Console.getConsoleReplyTo();
String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
if (args[0].equalsIgnoreCase(Console.NAME))
{
sender.sendMessage(Util.format("msgFormat", translatedMe, Console.NAME, message));
CommandSender cs = Console.getCommandSender(server);
cs.sendMessage(Util.format("msgFormat", senderName, translatedMe, message));
replyTo.setReplyTo(cs);
Console.getConsoleReplyTo().setReplyTo(sender);
return;
}
List<Player> matches = server.matchPlayer(args[0]);
if (matches.isEmpty())
{
throw new Exception(Util.i18n("playerNotFound"));
}
int i = 0;
for (Player p : matches)
{
final User u = ess.getUser(p);
if (u.isHidden())
{
i++;
}
}
if (i == matches.size())
{
throw new Exception(Util.i18n("playerNotFound"));
}
for (Player p : matches)
{
sender.sendMessage(Util.format("msgFormat", translatedMe, p.getDisplayName(), message));
final User u = ess.getUser(p);
if (sender instanceof Player && (u.isIgnoredPlayer(((Player)sender).getName()) || u.isHidden()))
{
continue;
}
p.sendMessage(Util.format("msgFormat", senderName, translatedMe, message));
replyTo.setReplyTo(ess.getUser(p));
ess.getUser(p).setReplyTo(sender);
}
}
}

Some files were not shown because too many files have changed in this diff Show More