2
0
Эх сурвалжийг харах

Merge pull request #83 from Diskmaster/pullme

Repository reorginzation
nossr50 14 жил өмнө
parent
commit
7f12750a21
100 өөрчлөгдсөн 9546 нэмэгдсэн , 9546 устгасан
  1. 944 944
      Changelog.txt
  2. 0 0
      src/com/gmail/nossr50/Combat.java
  3. 0 0
      src/com/gmail/nossr50/Database.java
  4. 89 89
      src/com/gmail/nossr50/Item.java
  5. 245 245
      src/com/gmail/nossr50/Leaderboard.java
  6. 95 95
      src/com/gmail/nossr50/Users.java
  7. 1587 1587
      src/com/gmail/nossr50/command/Commands.java
  8. 0 0
      src/com/gmail/nossr50/config/LoadProperties.java
  9. 73 73
      src/com/gmail/nossr50/config/Misc.java
  10. 12 12
      src/com/gmail/nossr50/datatypes/FakeBlockBreakEvent.java
  11. 8 8
      src/com/gmail/nossr50/datatypes/HUDType.java
  12. 255 255
      src/com/gmail/nossr50/datatypes/HUDmmo.java
  13. 26 26
      src/com/gmail/nossr50/datatypes/HealthBarMMO.java
  14. 76 76
      src/com/gmail/nossr50/datatypes/Mob.java
  15. 0 0
      src/com/gmail/nossr50/datatypes/PlayerProfile.java
  16. 6 6
      src/com/gmail/nossr50/datatypes/PlayerStat.java
  17. 17 17
      src/com/gmail/nossr50/datatypes/SkillType.java
  18. 39 39
      src/com/gmail/nossr50/datatypes/Tree.java
  19. 49 49
      src/com/gmail/nossr50/datatypes/TreeNode.java
  20. 12 12
      src/com/gmail/nossr50/datatypes/buttons/ButtonEscape.java
  21. 20 20
      src/com/gmail/nossr50/datatypes/buttons/ButtonHUDStyle.java
  22. 49 49
      src/com/gmail/nossr50/datatypes/popups/PopupMMO.java
  23. 435 435
      src/com/gmail/nossr50/listeners/mcBlockListener.java
  24. 223 223
      src/com/gmail/nossr50/listeners/mcEntityListener.java
  25. 0 0
      src/com/gmail/nossr50/listeners/mcPlayerListener.java
  26. 44 44
      src/com/gmail/nossr50/listeners/mcSpoutInputListener.java
  27. 38 38
      src/com/gmail/nossr50/listeners/mcSpoutListener.java
  28. 66 66
      src/com/gmail/nossr50/listeners/mcSpoutScreenListener.java
  29. 356 356
      src/com/gmail/nossr50/locale/locale_de.properties
  30. 350 350
      src/com/gmail/nossr50/locale/locale_en_us.properties
  31. 329 329
      src/com/gmail/nossr50/locale/locale_fi.properties
  32. 350 350
      src/com/gmail/nossr50/locale/locale_fr.properties
  33. 356 356
      src/com/gmail/nossr50/locale/locale_nl.properties
  34. 350 350
      src/com/gmail/nossr50/locale/locale_pl.properties
  35. 365 365
      src/com/gmail/nossr50/locale/locale_pt_br.properties
  36. 342 342
      src/com/gmail/nossr50/locale/locale_ru.properties
  37. 75 75
      src/com/gmail/nossr50/locale/mcLocale.java
  38. 0 0
      src/com/gmail/nossr50/m.java
  39. 0 0
      src/com/gmail/nossr50/mcMMO.java
  40. 315 315
      src/com/gmail/nossr50/mcPermissions.java
  41. 91 91
      src/com/gmail/nossr50/mcTimer.java
  42. 0 0
      src/com/gmail/nossr50/party/Party.java
  43. 0 0
      src/com/gmail/nossr50/skills/Acrobatics.java
  44. 99 99
      src/com/gmail/nossr50/skills/Archery.java
  45. 155 155
      src/com/gmail/nossr50/skills/Axes.java
  46. 0 0
      src/com/gmail/nossr50/skills/Excavation.java
  47. 0 0
      src/com/gmail/nossr50/skills/Herbalism.java
  48. 0 0
      src/com/gmail/nossr50/skills/Mining.java
  49. 0 0
      src/com/gmail/nossr50/skills/Repair.java
  50. 0 0
      src/com/gmail/nossr50/skills/Skills.java
  51. 271 271
      src/com/gmail/nossr50/skills/Swords.java
  52. 53 53
      src/com/gmail/nossr50/skills/Taming.java
  53. 95 95
      src/com/gmail/nossr50/skills/Unarmed.java
  54. 0 0
      src/com/gmail/nossr50/skills/WoodCutting.java
  55. 111 111
      src/com/gmail/nossr50/spout/ArrayListString.java
  56. 58 58
      src/com/gmail/nossr50/spout/GenericFace.java
  57. 226 226
      src/com/gmail/nossr50/spout/GenericLivingEntity.java
  58. 540 540
      src/com/gmail/nossr50/spout/SpoutStuff.java
  59. 250 250
      src/com/gmail/nossr50/spout/mmoHelper.java
  60. 1 1
      src/plugin.yml
  61. 0 0
      src/resources/Acrobatics.png
  62. 0 0
      src/resources/Acrobatics_r.png
  63. 0 0
      src/resources/Archery.png
  64. 0 0
      src/resources/Archery_r.png
  65. 0 0
      src/resources/Axe_r.png
  66. 0 0
      src/resources/Axes.png
  67. 0 0
      src/resources/Axes_r.png
  68. 0 0
      src/resources/Excavation.png
  69. 0 0
      src/resources/Excavation_r.png
  70. 0 0
      src/resources/Herbalism.png
  71. 0 0
      src/resources/Herbalism_r.png
  72. 0 0
      src/resources/Icon.png
  73. 0 0
      src/resources/Icon_old.png
  74. 0 0
      src/resources/Icon_r.png
  75. 0 0
      src/resources/Mining.png
  76. 0 0
      src/resources/Mining_r.png
  77. 0 0
      src/resources/Repair.png
  78. 0 0
      src/resources/Repair_r.png
  79. 0 0
      src/resources/Swords.png
  80. 0 0
      src/resources/Swords_r.png
  81. 0 0
      src/resources/Taming.png
  82. 0 0
      src/resources/Taming_r.png
  83. 0 0
      src/resources/Unarmed.png
  84. 0 0
      src/resources/Unarmed_r.png
  85. 0 0
      src/resources/Woodcutting.png
  86. 0 0
      src/resources/Woodcutting_r.png
  87. 0 0
      src/resources/health_inc00.png
  88. 0 0
      src/resources/health_inc01.png
  89. 0 0
      src/resources/health_inc02.png
  90. 0 0
      src/resources/health_inc03.png
  91. 0 0
      src/resources/health_inc04.png
  92. 0 0
      src/resources/health_inc05.png
  93. 0 0
      src/resources/health_inc06.png
  94. 0 0
      src/resources/health_inc07.png
  95. 0 0
      src/resources/health_inc08.png
  96. 0 0
      src/resources/health_inc09.png
  97. 0 0
      src/resources/health_inc10.png
  98. 0 0
      src/resources/health_inc11.png
  99. 0 0
      src/resources/health_inc12.png
  100. 0 0
      src/resources/health_inc13.png

+ 944 - 944
mcMMO/Changelog.txt → Changelog.txt

@@ -1,944 +1,944 @@
-Changelog:
-#Versions without changelogs probably had very small misc fixes, like tweaks to the source code
-Version 1.1.14
-Due to high demand of mcMMO files, I cannot justify hosting mcMMO content on a webserver, so mcMMO will now behaves like Valve's source games, files are transferred between the Server and client not a webserver. This should be an improvement over the old system.
-The option to change the weburl of mcMMO Images/Sounds has been removed, if you want to customize mcMMO images/sounds you can open mcMMO.jar and replace them there
-Made party/admin chat modes more compatible with chat plugins (vChat)
-
-Version 1.1.13
-Pets are removed from party bars
-
-Version 1.1.12
-mcMMO now downloads files when you join the server to provide the best experience
-mcMMO now uses a brand new Party HUD by Rycochet (from his mmoParty plugin)
-Fixed the xpbar and xpicon settings in config to work properly
-Fixed infinite HP exploit with Herbalism
-Fixed bug where herbalism would heal out of the players normal health range
-Fixed bug where entering ':' into your party name caused stat loss among other things
-Fixed issue with block break listener priority
-
-Version 1.1.11
-mcMMO now properly cancels its Async taks when disabled
-Fixed newly generated configs using 2 instead of 1 for skill multipliers
-
-Version 1.1.10
-Added default hud setting to config
-Fixed bug where newly generated configs used old xp gain numbers
-
-Version 1.1.09
-Fixed mcMMO to run fine without Spout :)
-
-Version 1.1.08
-Fixed repair being 10x slower to level than normal
-
-Version 1.1.07
-Fixed the default HUD being set to RETRO instead of STANDARD
-
-Version 1.1.06
-mcMMO menu implemented! Default is 'M', change this in config
-Retro HUD implemented!
-Retro XP fill color is completely customizable on a per skill basis
-New levelup sound thanks to @Rustydaggers !
-With the help of Randomage the XP Formulas have been vastly changed for flexibility
-Global modifiers and skill modifiers now support decimals
-Global formula modifier dropped from config
-GigaDrillBreaker/Berserk doesn't drop clay blocks anymore
-Fixed bug where Herbalism didn't heal more for bread/stew when right clicking a block
-Fixed bug where Wheat did not use the values form the config file
-Fixed bug where Archery gave xp for inflicting self injury
-Watch added to clay loot tables and maps remove from clay loot tables
-
-Version 1.1.05
-Maps dropped from excavation are created correctly, and represent the area they are found in
-Fixed an exploit with clay and excavation
-Fixed a NPE with locking xp bars
-Fixed the !AdeptDiamond! localization error when repairing diamond with a skill below 50
-
-Version 1.1.04
-Removed URL settings for XPBAR/XPICON/HPBAR
-Added single URL setting for mcMMO
-Changed default host from Dropbox to Rycochet's webserver (with apparently unlimited bandwidth!, thanks Rycochet)
-Fixed Repair noise not getting played
-Fixed a small memory leak with party health bars
-
-Version 1.1.03
-Fixed a few images being hard-coded still rather than configurable
-
-Version 1.1.02
-Fixed bug where toggle for xpicon didn't work
-Fixed bug where Excavation gave gravel drops to grass
-Excavation now uses more enums
-
-Version 1.1.01
-Fixed toggles for hpbar/xpbar not working
-
-Version 1.1.0
-Brand new XP Bars, Health bars, and Skill Icons designed by BrandonXP
-Added /xplock <skillname> to lock the xp bar to a skill
-Repairing metal now has a sound effect
-Shears added to Repair
-MySpawn now works correctly when you are in the nether
-MySpawn message when you right click a bed is now squelched
-Intervals at which players renegerate hp have doubled in length (making it take 100% longer to regenerate than before)
-Rewrote many variables stored per player to be integer instead of long, reducing overall memory usage of mcMMO
-Rewrote the Timer mcMMO relies on to instead use the BukkitScheduler for performance
-Fixed the party member list of /party
-Fixed bug where Swords would counter-attack Projectiles
-Removed a debug message when repairing diamond armor
-Changed chat to use getDisplayName() instead of getName()
-Changed chat priority from lowest to highest
-Added Clay to excavation
-Added new items to Clay's loot tables
-Archery now works with the latest CB
-
-Version 1.0.50
-New /xprate command for those with mcmmo.admin permissions!
-mcMMO now uses Spout instead of BukkitContrib
-BukkitContrib support dropped
-XP Formula is now 100+(skill level value * skill modifier * global modifier) thanks to suggestion
-Fixed bug where /mmoupdate used the old directory instead of the new one to find the flat file
-Fixed bug where Unarmed Mastery damage bonus only did as much as Unarmed Apprentice
-Fixed bug where Pumpkins did not give out XP
-Coordinates removed from /whois as they didn't really fit
-/mcgod and /mmoedit now require permissions to be setup in some shape or form to be used
-Lapus renamed to Lapis in config
-
-Version 1.0.49
-Updated German locale
-Fixed bug where using the party system on a MySQL setup caused errors when writing to non-existent files
-Fixed bug where using /accept caused a NPE (hopefully)
-Fixed a few missing descriptions for commands
-
-Version 1.0.48
-Updated French Translation
-Updated German Translation
-Updated Polish Translation
-Placed Coal Ore and Redstone Ore won't give XP anymore
-Fixed unusually high memory usage at startup
-Added many features to the party system written by NuclearW
-
-Version 1.0.47
-Fixed another BukkitContrib error for servers not running BukkitContrib
-
-Version 1.0.46
-Fixed bug preventing Excavation from gaining skill
-
-Version 1.0.45
-Corrected /stats showing Repair XP as Level for Repair
-Corrected /repair showing Repair XP as Level for Repair
-Corrected /whois showing Repair XP as Level for Repair
-
-Version 1.0.44
-Fixed my 'fix' of BukkitContrib errors with Tree Feller
-
-Version 1.0.43
-Stopped things from being auto-smelt'd
-
-Version 1.0.42
-Corrected 2 more errors involving not running BukkitContrib
-
-Version 1.0.41
-Fixed errors using Tree Feller if your server wasn't running BukkitContrib (sorry!)
-Fixed some more leftover stuff involving the new half-finished mining skill
-Fixed excavation's Giga Drill Breaker not working on placed blocks
-
-Version 1.0.40
-Fixed errors if your server wasn't running BukkitContrib
-
-Version 1.0.39
-mcMMO won't auto-download and auto-run BukkitContrib anymore
-
-Version 1.0.38
-Commented code for the half-finished Infernal Pick subskill (Whoops)
-
-Version 1.0.37
-The donation message in /mcmmo is now toggle-able
-The anvil message now only gets shown the first time you place an anvil (after login)
-Reworked /mcmmo (an improvement I would say)
-Added /mcmmo text to localization file
-Archery fire rate now configurable
-Berserk mode stops items from being collected
-Taming no longer receives xp from wolves being harmed
-Fixed bug where /stats required Tree Feller permission to show Woodcutting skill
-Fixed bug where players with mcgod could be harmed by AoE
-Fixed bug where modifying a skill also modified the xp to the same amount (when it should be zero)
-
-BukkitContrib Stuff
-Added a pop-up when placing an Anvil
-Added pop-ups on levelup
-Added basic sound effects to various abilities (Berserk, Tree Feller, Super Breaker, Leaf Blower, etc...)
-
-Code Stuff
-Added checkXp(SkillType, Player) for plugin devs (use this after modifying XP to check for levels)
-Added getPlayerProfile() which returns a PlayerProfile object for plugin devs (You can do almost everything with this object)
-100% more enums
-Changed how checking skill xp worked to be more efficient
-
-Version 1.0.36
-mcMMO now properly supports Bukkit/PEX/Permissions for Permissions
-Config.yml will no longer generate Performance Debugging nodes
-Registered permission nodes to plugin.yml
-Some more changes to Permissions code
-Fixed bug where Super Breaker activated where it shouldn't
-Fixed bug with enabling/disabling mcgod in config.yml
-Fixed bug with Excavation not kicking in until 1 level higher
-
-Version 1.0.35
-Added a Toggle for Chimaera Wing in config.yml
-Added customization of what item is used for Chimaera Wing in config.yml
-Fixed bug with randomly receiving Taming XP
-mcmmo.users file moved into /plugins/mcMMO/FlatFileStuff/
-Leaderboard files now moved into /plugins/mcMMO/FlatFileStuff/Leaderboards
-Locale files now have the prefix locale_ instead of messages_
-Locale files are now located inside com/gmail/nossr50/locale/ instead of com/gmail/nossr50/
-Updated the code that handles permissions (this may mean 3.1.6 will finally play well!)
-Some more source code organization
-Fixed warnings for compiler
-Removed dependencies on CraftBukkit
-Registered commands to OnCommand
-Removed performance debugging
-Removed some useless settings from the config file
-
-Version 1.0.34
-Fixed the PVP setting determining whether or not you would hurt yourself from AoE Abilities
-Added Dutch (nl) language support
-Super Breaker now gives the correct XP as determined by config.yml
-Sand Stone XP is now configurable and no longer shares the 'stone' node
-/mining now shows mining values instead of taming values
-
-Version 1.0.33
-Fixed the toggle for the Excavation drop 'Cocoa Beans'
-Fixed bug where Unarmed users could disarm without being bare handed
-Cocoa Beans now have an XP modifier in config.yml
-You can now toggle whether or not Mobspawners will give XP (in config.yml)
-MySQL version now makes requests to the MySQL server less frequently (should help performance)
-Fixed bug with Skull Splitter hitting the user
-
-Version 1.0.32
-Added "General.Performance.Print_Reports" node to config.yml to help identify causes of performance issues
-Fixed bug of swords users hurting themselves with serrated strikes
-
-Version 1.0.31
-Fixed bug of trying to cast Animals to non-animals
-
-Version 1.0.30
-Mobs that spawn from spawners no longer give XP (for reals this time)
-
-Version 1.0.29
-Mobs that spawn from spawners no longer give XP (again)
-Fixed bug where Serrated Strikes did not Bleed additional targets
-Identified and solved a potential memory leak in Bleed Simulation
-Renamed the Object Config to Misc and rewrote parts of it
-Rewrote Party/Admin/God toggles
-Added Polish language support (pl)
-
-Version 1.0.28
-Actually fixed /stats showing excavation values for swords
-Made some improvements to how Bleed Simulation was handled for different entity types
-Obsidian now does normal durability damage during Super Breaker
-
-Version 1.0.27
-Fixed /stats showing excavation values for swords
-Hopefully fixed a wide range of NPE errors
-Updated German (de) localization
-
-Version 1.0.26
-Fixed accidentally making power levels go above 9,000
-
-Version 1.0.25
-Compatible with the latest CB
-Beast Lore now functions correctly
-Wolves are no longer invincible to players
-Changed the look of Beast Lore
-Skill info pages now show your stat in that skill (if you have permission)
-/stats and /whois has been alphabetized and divided into three categories (Gathering/Combat/Misc)
-Abilities will not trigger on Trap Doors
-
-Version 1.0.24
-Now compatible with latest RB (928)
-Taming now receives XP from your wolves harming foes
-Taming is now easier to level
-Green Thumb now drops seeds when harvesting Wheat
-
-Version 1.0.23
-Modified Bleed Simulation to fix performance problems
-Rewrote MySpawn to be more efficient when calculating time left
-Rewrote Skills to be more efficient when calculating time left
-
-Version 1.0.22
-Added 'Name' nodes to commands for renaming them
-
-Version 1.0.21
-Fixed Skull Splitter length in /axes displaying incorrectly
-Fire rate limiter now correctly uses the value in the config file
-Stone XP now correctly uses the value in the config file
-Cobble -> Mossy now correctly uses the value in the config file
-Removed setmyspawn from config file as it serves no purpose
-All commands now have an 'Enabled' node in the config file that when set to false disables the command completely
-Fixed color scheme inconsistency for Mining in /whois results
-
-Version 1.0.20
-Fixed Array Index Out of Bounds error
-
-Version 1.0.19
-Removed a failsafe for the Timer that is no longer necessary (should improve performance)
-Fixed /myspawn not working by rewriting it :3
-Fixed exploit where players could break a freshly placed mushroom for XP
-MySQL User Passwords can now be blank (Although you really should have a password...)
-Fixed a few NPE errors
-
-Version 1.0.18
-Fixed MySQL default TablePrefix
-Fixed Wheat not being configurable
-
-Version 1.0.17
-Brand new YAML Configuration file
-Ability to configure XP for all gathering skills in config file
-German Language added to mcMMO
-French Language added to mcMMO
-MySpawn will no longer heal players
-/<skillname> commands now also check for their localized names for displaying help
-Added many more Strings to localization files
-Added more safeguards to MySpawn for NPE
-Fixed bug where Tree Feller Radius depended on WoodCutting XP rather than Skill Level
-Fixed bug where Readying a Hoe returned a missing localization string
-Added some safeguards into Bleed Simulation to prevent possible memory leaks
-Performance improvements to storing/calling Skill/XP Values
-Plugged a potential memory leak with PlayerProfiles not being removed correctly
-Disabled the mob spawner camping anti-exploit in favor of performance
-
-Version 1.0.16
-Fixed bug where localization file failed to load
-Changed en_US to lowercase
-mcMMO now requires locale files to be in lowercase
-Fixed a few strings missing from the localization file
-
-Version 1.0.15
-Removed leftover code that spammed SQL errors
-
-Version 1.0.14
-Added many missed strings into localization
-Finnish Localization updated for the new strings
-Green Thumb should respect Block Protection plugins now
-Fixed Number Format Exception when loading a PlayerProfile
-
-Version 1.0.13
-Fixed bug/NPE where stats would not load and therefore 'reset' for players
-Fixed NPE involving /ptp
-Added "enableMOTD" setting to properties file
-
-Version 1.0.12
-Fixed another NPE error
-Non-Gathering skills should correctly gain XP if PVP is set to false now
-Localization will now support language codes that do not have two parts like "fi"
-Fixed bug where Wiki MOTD message would not be loaded from localization file
-
-Version 1.0.11
-Fixed bug where players could not gain experience in several skills
-Removed PVP flag from mcmmo.properties as its not needed anymore
-Fixed a few NPE errors
-Mushroom XP reduced from 25 to 15
-Fixed an exploit where players who just logged in could be farmed for experience because they were invulnerable
-
-Version 1.0.10
-Added Localization/String Customization
-Mushroom XP reduced from 40 to 25
-Removed "clears inventory" warning in /mcc for /myspawn since this no longer happens
-
-Version 1.0.09
-Fixed the NPE that occurs when players gain experience (Sorry!)
-Fixed bug where /myspawn & /clearmyspawn would work if MySpawn was disabled in the properties file
-Changed strings containing "MMO" to read "mcMMO"
-Removed a lot of unused or unnecessary variables from the PlayerProfiles in mcMMO, this should lower the memory footprint
-Added getXpToLevel() for modders
-
-Version 1.0.08
-Added removeXP() for modders
-Fixed bug where stone swords only repaired by 33% instead of 50%
-Fixed bug where stone/wooden hoes wouldn't repair
-Big overhaul to how skill values and xp values were handled in the code
-Modifying the players skill levels now sets the corresponding skill xp to zero
-Using Serrated Strikes/Skull Splitter on mobs should no longer harm nearby players when PVP is disabled
-Switching to another weapon after firing your bow should no longer trigger procs for that weapon when the arrow hits
-Slimes/Ghasts now give XP for combat skills
-Added "EnableHpRegeneration" property setting
-Added "EnableMySpawn" property setting
-
-Version 1.0.07
-Added more repair customization by solarcloud7
-Leaderboards ignore players with the respective stat at 0
-Reconnecting to MySQL will reload player data
-Fixed a NPE with MySQL's Leaderboards
-Removed "Loop iteration" debug message from mcMMO
-
-Version 1.0.06
-MySQL will attempt to reconnect if the connection is closed
-Breaking the bottom block of Cactus/Reeds will award the correct experience and double drops
-Added support for Minecraft Statistics
-Fixed NPE with /myspawn command
-
-Version 1.0.05
-PVP interactions now check for permissions before handing out any experience
-Many skill abilities now check for permissions correctly
-All interactions with Taming now check for permissions
-mcMMO now checks for its pvp flag being true before handling pvp interactions
-
-Version 1.0.04
-Fixed bug where players would be informed incorrectly when their cooldowns refreshed
-Fixed exploit where players could reconnect to reset their cooldowns
-Added new "cooldowns" table to MySQL
-Berserk now breaks through snow
-Lightning no longer gives Taming XP
-Shortened /mcc to fit the screen
-
-Version 1.0.03
-Bleed will no longer trigger on friendly wolves
-Axes criticals will no longer trigger on friendly wolves
-
-Version 1.0.02
-Fixed bug where the Timer would start before everything else was ready
-Fixed bug where mcrefresh also required mcability permission node
-Fixed bug where Unarmed was not checking for disarm procs
-Green Thumb now checks for herbalism permissions
-Added "enableGreenThumbCobbleToMossy" to config file, this also changes Green Terra
-AoE abilities now harm wolves
-
-Version 1.0.01
-Removed debug message when wolves are struck
-Fixed issue with reloading mcMMO when MySQL was enabled
-Fixed a NPE with MySpawn
-Fixed a NPE with removing users from PlayerProfile
-Unarmed no longer starts with a damage bonus
-Unarmed apprentice DMG bonus changed from 3 to 2
-
-Version 1.0
-Players can now repair Stone/Wood tools
-Fixed duping bug with WG/Block Protection Plugins
-Added Leaf Blower to WoodCutting
-Different Trees give different WoodCutting XP
-Water changing Gravel to Clay removed
-Code Organized/Optimized further
-MySQL Support
-Taming Skill
-Leaderboards
-Players won't hand out XP if they died within the last 5 seconds
-
-Version 0.9.29
-Fixes critical bug involving water turning anything into clay
-
-Version 0.9.28
-Green thumb can now spread grass to dirt using seeds
-Adding XP will check for level ups again
-Acrobatics won't hand out XP on death anymore
-Acrobatics will check plugins for the event being cancelled before handing out XP
-
-Version 0.9.27
-Fixed Herbalism not properly receiving Triple Drops from Green Terra
-Fixed Herbalism not handing out any XP outside of Green Terra
-Fixed Herbalism asking for seeds on things that did not require it
-
-Version 0.9.26
-Fixed Green Terra going off without readiness
-Fixed Hoe trying to ready when tilling Grass
-
-Version 0.9.25
-Fixed issue with anti-exploits and Herbalism
-MySpawn works like a hearthstone now, no inv pentality, 1hr cooldown
-Added Green Terra Ability to Herbalism
-Added Green Thumb ability to Herbalism
-Fixed Repair not working for Iron Tools
-Fixed bug where Axes Ability checked for Unarmed Ability Permission
-Added Cocoa Beans to Excavation XP/Loot Tables, Found in Grass/Dirt
-Using Super Breaker on Obsidian significantly damages it compared to other materials
-Added Obsidian to Mining XP Table/Super Breaker
-Added Pumpkins/Reeds/Cactus to Herbalism XP Tables/Double Drops
-Corrected "mcMMMO" to "mcMMO" in MOTD
-
-Version 0.9.24
-PLAYER_BED_ENTER removed due to its unusual issues
-Added info about the Wiki to the motd
-/mcrefresh will reset if you were recently hurt (Chimaera Wing/HP Regen)
-Fixed Armor Repair not adding XP
-Boosted Repair XP of Armor to match Tools
-Repairing Armor won't trigger Super Repair twice anymore
-Setting your MySpawn now just requires right clicking a bed (still requires the setmyspawn permission node)
-
-Version 0.9.23
-Players will now announce ability usage within a short distance to nearby players
-Chimaera Wing now takes the world into account
-Acrobatics won't give XP on death, and will fail if you would've died after the damage reduction
-Added yet another check to see if a Player is not in the Users system for NPC mod compatibility
-
-
-Version 0.9.22
-Fixed bug where chimaera wing was unusable after being hurt even after the cooldown
-
-Version 0.9.21
-/mcrefresh fixed to work properly with the new ability monitoring system
-Ability lengths are now based on your skill level directly rather than a tiered system
-Chimaera Wings won't trigger on things they shouldn't (Doors, Chests, ETC)
-Chimaera Wings will properly tell you how long you have to wait to use it if you've been recently hurt
-
-Version 0.9.20
-Fixed Tree Feller not checking if their cooldown was refreshed and always activating
-/stats and /whois will now show the powerlevel based on permissions
-Shovels will no longer say you've lowered your axe
-/myspawn will no longer say your inventory has been cleared if the server settings disable this feature
-
-
-Version 0.9.19
-Fixed Anti-Exploit XP stuff not working
-
-Version 0.9.18
-Added failsafe to prevent abilities from going on forever, abilities will check if they should've expired when being used in case the Timer fails
-Archery Spam has been nerf'd, you can only fire once per second now (Toggle-able in config file)
-Fixed bug when just having the Admin Chat permission wouldn't allow you to see Admin Chat
-Fixed bug where Axes ability could be used without permission
-Abilities are monitored with Timestamps rather than a Timer monitored tick rate
-When players were last hurt is now monitored with Timestamps rather than a Timer monitored tick rate
-Made Anti XP-Exploits more Robust
-Repair XP is now based on durability restored
-Acrobatics rolling will now reduce damage if you go over the damage threshold
-Acrobatics rolling damage threshold lowered to 10 from 20
-Added Graceful Roll to Acrobatics, hold Shift when falling to do a Graceful Roll
-mcMMO now checks for the blockBreak and EntityDamage events being canceled before proceeding
-Dodge notification shortened
-Dodge won't negate damage completely anymore
-Added 3 more functions for plugin authors to call, getPartyName(Player player), inParty(Player player), and getParties()
-
-Version 0.9.17
-Players now set their MySpawn by entering a bed, it requires the setmyspawn permission node
-/setmyspawn has been removed
-Compatible with CB 670
-Fixed errors related to Repair
-Abilities will no longer trigger from Bed interactions
-/unarmed will now tell the player when they will receive unarmed master (if they have apprentice)
-
-Version 0.9.16
-Logs placed by the player won't grant XP/Double Drops anymore
-Added more functions plugin authors can call
-Acrobatics roll has a damage threshold of 20, going above this means a failed Roll
-
-
-Version 0.9.15
-Acrobatics will now behave properly
-AoE Abilities ignore wolves (temp fix)
-Added "all" parameter to /mmoedit & /addxp
-After giving XP to a player it will now check for level ups in skills
-
-Version 0.9.14
-mcMMO checks for abilities being active before sending the fake block break event
-
-Version 0.9.13
-Fixed excavation ignoring the xpGainMultiplier
-Now compatible with CB 600+
-Fixed bug where Dodge acted maxed out no matter your skill level
-
-Version 0.9.12
-mcMMO now fakes a block break event for abilities to maximize plugin compatibility
-/herbalism will return the correct values now
-New /addxp command
-
-Version 0.9.11
-PVE Combat Skills experience is now based on damage dealt
-The Timer will no longer break from Bleed Simulation
-Tree feller no longer "damages" saplings
-Bleed+ (Serrated Strikes) lasts 5 ticks down from 12
-Bleed/Bleed+ now do 2 damage instead of 1
-Power Level is now based on permissions
-Counter Attack added to swords
-Parry is now based directly on Swords skill level
-Parry maximum proc chance raised to 30% from 20%
-Serrated Strikes now properly applies Bleed+ to targets
-Players who parry can no longer be disarmed
-Acrobatics now has a Dodge passive skill reducing damage
-Repair skill now effects how much durability is restored
-Super repair now doubles the repair amount on proc
-Unarmed now starts with a bonus to damage to encourage use
-Unarmed now has two steps to damage scaling, Appentice, and Mastery
-Unarmed disarm now caps at 25% for 1000 skill
-Fixed problem where Archery skill procs would ignore other plugins
-Ignition changed to 25% chance
-Ignition length will be based on archery skill level
-/myspawn now has a warning about the inventory loss penalty in /mcc
-mcMMO Timer now runs in 1 second intervals rather than 2
-
-Version 0.9.10
-Party invites now show who they are from
-Mushrooms added to Dirt/Grass excavation loot tables, drops with 500+ skill
-mcMMO configuration files property setting names have been changed for readability
-Fixed bug where Gold and Iron wouldn't drop anything during Super Breaker
-Added /mcability info to /mcc
-Potentially fixed NPE error when checking players for being in same party for PVP XP
-Removed sand specific diamond drop from sand excavation loot table, Diamonds can still drop globally for sand
-Added a global XP gain multiplier, increase it to increase XP gained
-Reduced PVE XP for Unarmed, now identical to Axes/Swords
-Changed Chat priority in mcMMO to be higher, this should help plugin conflicts
-Mushroom XP raised to 40 from 10
-Flower XP raised to 10 from 3
-
-Version 0.9.9
-Fixed problem where entities never got removed from the arrow retrieval list of entities
-
-Version 0.9.8
-EntityLiving shouldn't be cast to entities that are not an instance of EntityLiving
-Added a null check in the timer for players being null before proceeding
-
-Version 0.9.7
-Procs/XP Gain will no longer happen when the Entity is immune to damage (Thanks EdwardHand!)
-Axes critical damage versus players reduced to 150% damage from 200% damage
-Fixed bug where Daze might not proc
-Changed archery Daze to follow smooth transition
-Added archery Daze chance info to /archery
-Cooldown lengths are now customizable, they are in seconds and multiplied by 2 by mcMMO
-
-Version 0.9.6
-Timer checks for player being null before adding them to the mcUsers system
-Cooldowns will now show how much time is remaining when trying to use their respective abilities
-SkullSpliiter will now correctly inform the player when they are too tired to use it
-Acrobatics will no longer give XP if the event was cancelled by another plugin
-Version 0.9.5
-Super Breaker now gives a chance for Triple Drops based on mining skill
-Ability durability loss down from 15 to 2
-Ability durability loss is now toggle-able
-Ability durability loss can be adjusted in the configuration file
-Mining Picks are no longer lowered after activating Super Breaker
-
-Version 0.9.4
-Flowers won't drop wheat anymore
-Signs won't trigger ability readiness anymore
-Version 0.9.3
-Bug stopping abilities from never wearing of may have been fixed
-Changed color of "X Ability has worn off" to RED from GRAY
-Super Breaker, Giga Drill Breaker, and Tree Feller now damage the tool significantly during use
-Netherrack and Glowstone now give Mining XP
-Netherrack and Glowstone are now effected by Super Breaker
-Abilities will no longer be readied when you right click signs or beds
-Chimaera Wings won't activate on blocks you can interact with and signs
-Abilities now adjust their effects depending on tool quality
-Superbreaker won't break things that tool couldn't normally break
-Giga Drill Breaker will only give triple xp and triple drops for diamond tools, with a reduced effect for lesser tools
-Skull Splitter now has a limit of opponents nearby it will strike based on your tool quality
-Serrated Strikes now has a limit of opponents nearby it will strike based on your tool quality
-Modified /mcmmo description to be a little bit more relevant.
-
-Version 0.9.2
-Changed priority of some of the mcMMO listeners
-Now when certain abilities are activated it shouldn't say "You lower your x"
-
-Version 0.9.1
-Fixed "Unknown console command" errors with CB 556
-Added /mcability command to toggle being able to trigger abilities with right click
-Added some more nullchecks for people reporting NPE errors
-Compatibility with NPC mods improved (Mainly for archery!)
-Other plugins can now call inSameParty() from mcMMO to increase compatibility
-
-Version 0.9
---NEW CONTENT--
-Woodcutting now has the "Tree Feller" Ability
-Unarmed now has the "Berserk" Ability
-Swords now has the "Serrated Strikes" Ability
-Mining now has the "Super Breaker" Ability
-Axes now has the "Skull Splitter" Ability
-Excavation now has the "Giga Drill Breaker" Ability
-Added /mcrefresh <playername> - tool for refreshing cooldowns
-Unarmed now has the "Deflect Arrows" passive skill
-Chimaera Wing Item Added
-
---CHANGES--
-HP Regen & Bleed are back
-Woodcutting will drop the appropriate log on double drop procs
-Herbalism now applies double drops to herbs
-/<skillname> now shows much more information to the player regarding their stats
-Axes skill Critical Strikes are now based directly on your skill level
-Swords skill Bleed chance is now based directly on your skill level
-Unarmed disarm chance is now based directly on your skill level
-Acrobatics now gives XP when you roll
-
---BUGFIXES--
-Memory Leak Fixed
-Axes not doing critical strikes
-Gold Armor repair
-Capped skills now have the correct proc chance
-/mmoedit is no longer case sensitive
-More NPE errors fixed
-Many bugs I forgot to write down
-
---PLUGIN COMPATABILITY FIXES--
-If combat interactions are cancelled by other plugins mcMMO should ignore the event
-If block damage interactions are cancelled by other plugins mcMMO should ignore the event
-	
-Version 0.8.22
-	Fixed bug where Axes did less damage than normal
-	Acrobatic rolls now give XP
-	Acrobatics XP increased for non-rolls
-Version 0.8.21
-	Fixed bug where axe criticals would dupe items
-Version 0.8.20
-	99.99% sure I fixed anvils that suddenly stop working
-Version 0.8.19
-	Fixed being able to excavate placed blocks
-	Added toggle option to mining requiring a pickaxe
-	Added toggle option to woodcutting requiring an axe
-	PVP interactions now reward XP based on the damage caused (this is effected by skills)
-	PVP XP gain can be disabled in the configuration file
-	PVP XP has a modifier, increase the modifier for higher XP rewards from PVP combat
-Version 0.8.18
-	Fixed sandstone not being watched for exploitation
-Version 0.8.17
-	mcmmo.users moved to plugins/mcMMO/
-	Snowballs and Eggs will no longer trigger Ignition
-	Loot tables for excavation adjusted
-	Mining benefits now require the player to be holding a mining pick
-	Woodcutting benefits now require the player to be holding an axe
-Version 0.8.16
-	Moved configuration file to /plugins/mcMMO
-	Arrows now have a chance to Ignite enemiesw
-	Fixed arrows not being retrievable from corpses
-	Added info about ignition to /archery
-Version 0.8.14
-	Mining, Woodcutting, Herbalism, and Acrobatics proc rates now are based on your skill level directly rather than tiers you unlock via skill levels
-	Archery's ability to retrieve arrows from corpses now is based on your skill level directly rather than tiers you unlock via skill levels
-	Mining, Woodcutting, Herbalism, Archery, and Acrobatics now show their proc % relative to your skill if you type /<skillname>
-	You can now adjust what level is required to repair diamond in the configuration file
-	Changed mining XP rates to be a tad higher for some things
-	You can now get XP from sandstone
-	XP rates increased for gathering glowstone with excavation
-	XP rates increased a bit for excavation
-	Skill info is now a bit more detailed for certain skills
-	Added info about arrow retrieval to /archery
-Version 0.8.13
-	Enemies no longer look like they have frozen when they die
-	Item duping fix
-Version 0.8.11
-	Performance improvements
-	Memory leak fixed
-	NPE error with MySpawn really fixed
-Version 0.8.9
-	Fixed NPE for My Spawn
-	Fixed NPE for onBlockDamage
-	Bleed proc now correctly checks for Swords permissions
-Version 0.8.8
-	Gold can now be repaired
-	Tweaked Mining XP gains
-	Reorganized code
-	Added /mcgod godmode command
-	Fixed the pvp toggle in the settings file
-Version 0.8.7
-	Removed packet-sending stuff wasn't working anyways
-	Fixed another NPE with the TimerTask
-	Skills now only show up in /stats if you have permissions for them
-Version 0.8.6
-	Added a null check in bleed simulation to prevent a NPE
-Version 0.8.5
-	Players are now added to files when they connect (to fix a NPE)
-	onPlayerCommand stuff moved into onPlayerCommandPreprocess
-Version 0.8.4
-	Fixed another nullpointer error for TimerTask
-	Fixed bug making regeneration take twice as long to kick in after combat
-Version 0.8.3
-	Modified the timer intervals (from 1 second to 2)
-	All skills now have an individual modifier (Set by default to 2)
-	There is now a global XP modifier (Set by default to 1)
-	Herbalism now correctly follows its skill curve
-	Unarmed no longer gives experience for harming other players
-	Players can no longer exploit mob spawners for experience
-Version 0.8.2
-	Fixed Concurrent Modification Exception
-	Fixed some incorrect skill descriptions
-	First tier of HP Regeneration is now available from the start
-	Fixed bleed proc rate for very high skill levels
-	Changed regeneration permissions to 'mcmmo.regeneration'
-Version 0.8
-	Archery skill now lets players recover arrows from downed foes
-	Health regenerates based on power level
-	Added toggle to myspawn clearing player inventory in settings file
-	Swords now have a bleed effect
-	Rewrote Skill descriptions to be more informative/better
-Version 0.7.9
-	XP Curve now follows a new formula
-	Acrobatics XP gains changed
-	Compiled against permissions 2.1
-Version 0.7.8
-	Massive tweaks to XP gain for Archery, Swords, Axes, Unarmed
-Version 0.7.7
-	Minor tweak to how players are added to the flat file
-	Fixed some nullpointer exceptions when players die
-Version 0.7.6
-	Fixed being able to repair diamond armor with below 50 skill
-	Myspawn now supports multiple worlds, clearing myspawn will set it to the first world created by the server
-Version 0.7.5
-	Removed random checks for herbalism XP
-	Herbalism is now called properly (This should fix gaining no xp or double drops)
-Version 0.7.4
-	Work around for a bukkit bug that broke my onBlockDamage event
-	Added /clearmyspawn
-Version 0.7.3
-	Fixed to work with build 424 of CB
-	Lowered the XP of gold due to it not being that rare anymore
-Version 0.7.2
-	Fixed security flaw where players could access /mmoedit if the server was not running permissions
-	Reduced XP gain of woodcutting a bit
-Version 0.7
-	Completely rewrote the XP system
-	Added an XP skillrate modifier to the settings file
-	
-Version 0.6.2
-	Axes now do critical strikes against farm animals
-	Removed the "Stupidly Long Constructor"
-	Now compatible with the latest CB builds
-Version 0.6.1
-	Customizable command names
-	Axes can now be modified with /mmoedit
-	Party members are now correctly informed when you leave the party
-	Fixed incorrect commands in /mcc
-Version 0.5.17
-
-	Changed namespaces to fit bukkits new standard
-	Adjusted excavation proc rates
-	Modified excavation loot tables
-	Added Party Invite System
-
-Version 0.5.16
-
-	Fixed unarmed not checking for permissions when hitting players
-
-Version 0.5.15
-	Fixed stone swords not being recognized as swords
-	Fixed /a not working if you were an op but did not have permissions
-	
-Version 0.5.14
-	Added permissions for skills
-
-Version 0.5.13
-
-	Removed skillgain from succesful parries
-	Repair now refreshed the inventory
-	
-Version 0.5.12
-
-	Fixed being able to hurt party members with the bow and arrow
-	
-Version 0.5.11
-
-	Added /mmoedit command
-	Fixed bug preventing player versus player damage
-	Fixed bug preventing damage from scaling with unarmed & bows
-	Fixed disarm proc making the opponent dupe his/her items
-	Added mcmmo.tools.mmoedit permission
-	Added mcmmo.commands.setmyspawn permission
-	Added totalskill to /stats
-	Changed the look of /stats
-	
-Version 0.5.10
-
-    Fixed trying to set health to an invalid value
-
-Version 0.5.9
-
-    Fixed duping inventories on death
-
-Version 0.5.8
-
-    Fixed bug where players inventories would dupe during combat
-    
-Version 0.5.7
-
-    Fixed monsters instant killing players
-    Misc fixes
-Version 0.5.4
-
-    Changed herbalism skill gain from wheat to be WAAAAY slower
-
-Version 0.5.3
-
-    Players will now correctly drop their inventories when killed by a monster
-
-Version 0.5.2
-
-    Fixed MAJOR bug preventing swords skill from gaining through combat
-
-Version 0.5
-
-    Archery Added
-    Swords Added
-    Acrobatics Added
-    Logging for Party/Admin chat added
-    Fixed whois to show correct values for Excavation
-    Made death messages much much more specific
-
-Version 0.4.4
-
-    Fixed being able to repair full durability iron tools
-    Fixed herbalism benefits not behaving properly
-    Fixed removing 1 diamond from every stack of diamond when repairing diamond
-
-Version 0.4.2
-
-    Removed myspawn from the motd
-
-Version 0.4.1
-
-    Fixed /mcc showing incorrect command for herbalism
-    Changed unarmed skillrate to be much slower than before
-    Modified a few skill descriptions
-    Added permission for /whois
-    Players can now use admin chat without being op as long as they have the correct permission (requires Permissions)
-
-Version 0.4
-
-    Permissions support
-    Removed OPs having different names than normal players
-    Removed /setspawn & /spawn
-    Slowed down excavation skill rate
-    Fixed excavation coal drop being too rare
-
-Version 0.3.4
-
-    Creepers now give double xp for unarmed
-    Iron armor can now be repaired!
-    Fixed bug stopping items from being repaired
-
-Version 0.3.3
-
-    Yet another herbalism skill gain tweak
-
-Version 0.3.2
-
-    Changed excavation loot tables to be more rewarding
-    Changed sand to give normal excavation xp instead of double xp
-    Fixed herbalism skill exploit
-    Mobs killed with unarmed now drop loot properly
-    Unarmed xp rate depends on mob (zombies lowest fyi)
-    Huge player crashing bug fix on disarm!
-
-Version 0.3.1
-
-    Fixed excavation not saving properly
-    Fixed repair using excavation values
-
-Version 0.3
-
-    Unarmed skill
-    Herbalism skill
-    Excavation skill
-    Many bugfixes (thanks for reporting them!)
-    /<skillname> - Detailed information about skills in game
-
-Version 0.2.1
-
-    Misc bugfixes
-
-Version 0.2
-
-    Repair ability added
-    Repair skill added
-    Iron Armor repair temporarily disabled
-    Anvils (Iron Block) added
-    /mcmmo & /mcc added
-    Misc changes to existing commands
-    Misc bug fixes
-
-Version 0.1
-
-    Releasing my awesome plugin
+Changelog:
+#Versions without changelogs probably had very small misc fixes, like tweaks to the source code
+Version 1.1.14
+Due to high demand of mcMMO files, I cannot justify hosting mcMMO content on a webserver, so mcMMO will now behaves like Valve's source games, files are transferred between the Server and client not a webserver. This should be an improvement over the old system.
+The option to change the weburl of mcMMO Images/Sounds has been removed, if you want to customize mcMMO images/sounds you can open mcMMO.jar and replace them there
+Made party/admin chat modes more compatible with chat plugins (vChat)
+
+Version 1.1.13
+Pets are removed from party bars
+
+Version 1.1.12
+mcMMO now downloads files when you join the server to provide the best experience
+mcMMO now uses a brand new Party HUD by Rycochet (from his mmoParty plugin)
+Fixed the xpbar and xpicon settings in config to work properly
+Fixed infinite HP exploit with Herbalism
+Fixed bug where herbalism would heal out of the players normal health range
+Fixed bug where entering ':' into your party name caused stat loss among other things
+Fixed issue with block break listener priority
+
+Version 1.1.11
+mcMMO now properly cancels its Async taks when disabled
+Fixed newly generated configs using 2 instead of 1 for skill multipliers
+
+Version 1.1.10
+Added default hud setting to config
+Fixed bug where newly generated configs used old xp gain numbers
+
+Version 1.1.09
+Fixed mcMMO to run fine without Spout :)
+
+Version 1.1.08
+Fixed repair being 10x slower to level than normal
+
+Version 1.1.07
+Fixed the default HUD being set to RETRO instead of STANDARD
+
+Version 1.1.06
+mcMMO menu implemented! Default is 'M', change this in config
+Retro HUD implemented!
+Retro XP fill color is completely customizable on a per skill basis
+New levelup sound thanks to @Rustydaggers !
+With the help of Randomage the XP Formulas have been vastly changed for flexibility
+Global modifiers and skill modifiers now support decimals
+Global formula modifier dropped from config
+GigaDrillBreaker/Berserk doesn't drop clay blocks anymore
+Fixed bug where Herbalism didn't heal more for bread/stew when right clicking a block
+Fixed bug where Wheat did not use the values form the config file
+Fixed bug where Archery gave xp for inflicting self injury
+Watch added to clay loot tables and maps remove from clay loot tables
+
+Version 1.1.05
+Maps dropped from excavation are created correctly, and represent the area they are found in
+Fixed an exploit with clay and excavation
+Fixed a NPE with locking xp bars
+Fixed the !AdeptDiamond! localization error when repairing diamond with a skill below 50
+
+Version 1.1.04
+Removed URL settings for XPBAR/XPICON/HPBAR
+Added single URL setting for mcMMO
+Changed default host from Dropbox to Rycochet's webserver (with apparently unlimited bandwidth!, thanks Rycochet)
+Fixed Repair noise not getting played
+Fixed a small memory leak with party health bars
+
+Version 1.1.03
+Fixed a few images being hard-coded still rather than configurable
+
+Version 1.1.02
+Fixed bug where toggle for xpicon didn't work
+Fixed bug where Excavation gave gravel drops to grass
+Excavation now uses more enums
+
+Version 1.1.01
+Fixed toggles for hpbar/xpbar not working
+
+Version 1.1.0
+Brand new XP Bars, Health bars, and Skill Icons designed by BrandonXP
+Added /xplock <skillname> to lock the xp bar to a skill
+Repairing metal now has a sound effect
+Shears added to Repair
+MySpawn now works correctly when you are in the nether
+MySpawn message when you right click a bed is now squelched
+Intervals at which players renegerate hp have doubled in length (making it take 100% longer to regenerate than before)
+Rewrote many variables stored per player to be integer instead of long, reducing overall memory usage of mcMMO
+Rewrote the Timer mcMMO relies on to instead use the BukkitScheduler for performance
+Fixed the party member list of /party
+Fixed bug where Swords would counter-attack Projectiles
+Removed a debug message when repairing diamond armor
+Changed chat to use getDisplayName() instead of getName()
+Changed chat priority from lowest to highest
+Added Clay to excavation
+Added new items to Clay's loot tables
+Archery now works with the latest CB
+
+Version 1.0.50
+New /xprate command for those with mcmmo.admin permissions!
+mcMMO now uses Spout instead of BukkitContrib
+BukkitContrib support dropped
+XP Formula is now 100+(skill level value * skill modifier * global modifier) thanks to suggestion
+Fixed bug where /mmoupdate used the old directory instead of the new one to find the flat file
+Fixed bug where Unarmed Mastery damage bonus only did as much as Unarmed Apprentice
+Fixed bug where Pumpkins did not give out XP
+Coordinates removed from /whois as they didn't really fit
+/mcgod and /mmoedit now require permissions to be setup in some shape or form to be used
+Lapus renamed to Lapis in config
+
+Version 1.0.49
+Updated German locale
+Fixed bug where using the party system on a MySQL setup caused errors when writing to non-existent files
+Fixed bug where using /accept caused a NPE (hopefully)
+Fixed a few missing descriptions for commands
+
+Version 1.0.48
+Updated French Translation
+Updated German Translation
+Updated Polish Translation
+Placed Coal Ore and Redstone Ore won't give XP anymore
+Fixed unusually high memory usage at startup
+Added many features to the party system written by NuclearW
+
+Version 1.0.47
+Fixed another BukkitContrib error for servers not running BukkitContrib
+
+Version 1.0.46
+Fixed bug preventing Excavation from gaining skill
+
+Version 1.0.45
+Corrected /stats showing Repair XP as Level for Repair
+Corrected /repair showing Repair XP as Level for Repair
+Corrected /whois showing Repair XP as Level for Repair
+
+Version 1.0.44
+Fixed my 'fix' of BukkitContrib errors with Tree Feller
+
+Version 1.0.43
+Stopped things from being auto-smelt'd
+
+Version 1.0.42
+Corrected 2 more errors involving not running BukkitContrib
+
+Version 1.0.41
+Fixed errors using Tree Feller if your server wasn't running BukkitContrib (sorry!)
+Fixed some more leftover stuff involving the new half-finished mining skill
+Fixed excavation's Giga Drill Breaker not working on placed blocks
+
+Version 1.0.40
+Fixed errors if your server wasn't running BukkitContrib
+
+Version 1.0.39
+mcMMO won't auto-download and auto-run BukkitContrib anymore
+
+Version 1.0.38
+Commented code for the half-finished Infernal Pick subskill (Whoops)
+
+Version 1.0.37
+The donation message in /mcmmo is now toggle-able
+The anvil message now only gets shown the first time you place an anvil (after login)
+Reworked /mcmmo (an improvement I would say)
+Added /mcmmo text to localization file
+Archery fire rate now configurable
+Berserk mode stops items from being collected
+Taming no longer receives xp from wolves being harmed
+Fixed bug where /stats required Tree Feller permission to show Woodcutting skill
+Fixed bug where players with mcgod could be harmed by AoE
+Fixed bug where modifying a skill also modified the xp to the same amount (when it should be zero)
+
+BukkitContrib Stuff
+Added a pop-up when placing an Anvil
+Added pop-ups on levelup
+Added basic sound effects to various abilities (Berserk, Tree Feller, Super Breaker, Leaf Blower, etc...)
+
+Code Stuff
+Added checkXp(SkillType, Player) for plugin devs (use this after modifying XP to check for levels)
+Added getPlayerProfile() which returns a PlayerProfile object for plugin devs (You can do almost everything with this object)
+100% more enums
+Changed how checking skill xp worked to be more efficient
+
+Version 1.0.36
+mcMMO now properly supports Bukkit/PEX/Permissions for Permissions
+Config.yml will no longer generate Performance Debugging nodes
+Registered permission nodes to plugin.yml
+Some more changes to Permissions code
+Fixed bug where Super Breaker activated where it shouldn't
+Fixed bug with enabling/disabling mcgod in config.yml
+Fixed bug with Excavation not kicking in until 1 level higher
+
+Version 1.0.35
+Added a Toggle for Chimaera Wing in config.yml
+Added customization of what item is used for Chimaera Wing in config.yml
+Fixed bug with randomly receiving Taming XP
+mcmmo.users file moved into /plugins/mcMMO/FlatFileStuff/
+Leaderboard files now moved into /plugins/mcMMO/FlatFileStuff/Leaderboards
+Locale files now have the prefix locale_ instead of messages_
+Locale files are now located inside com/gmail/nossr50/locale/ instead of com/gmail/nossr50/
+Updated the code that handles permissions (this may mean 3.1.6 will finally play well!)
+Some more source code organization
+Fixed warnings for compiler
+Removed dependencies on CraftBukkit
+Registered commands to OnCommand
+Removed performance debugging
+Removed some useless settings from the config file
+
+Version 1.0.34
+Fixed the PVP setting determining whether or not you would hurt yourself from AoE Abilities
+Added Dutch (nl) language support
+Super Breaker now gives the correct XP as determined by config.yml
+Sand Stone XP is now configurable and no longer shares the 'stone' node
+/mining now shows mining values instead of taming values
+
+Version 1.0.33
+Fixed the toggle for the Excavation drop 'Cocoa Beans'
+Fixed bug where Unarmed users could disarm without being bare handed
+Cocoa Beans now have an XP modifier in config.yml
+You can now toggle whether or not Mobspawners will give XP (in config.yml)
+MySQL version now makes requests to the MySQL server less frequently (should help performance)
+Fixed bug with Skull Splitter hitting the user
+
+Version 1.0.32
+Added "General.Performance.Print_Reports" node to config.yml to help identify causes of performance issues
+Fixed bug of swords users hurting themselves with serrated strikes
+
+Version 1.0.31
+Fixed bug of trying to cast Animals to non-animals
+
+Version 1.0.30
+Mobs that spawn from spawners no longer give XP (for reals this time)
+
+Version 1.0.29
+Mobs that spawn from spawners no longer give XP (again)
+Fixed bug where Serrated Strikes did not Bleed additional targets
+Identified and solved a potential memory leak in Bleed Simulation
+Renamed the Object Config to Misc and rewrote parts of it
+Rewrote Party/Admin/God toggles
+Added Polish language support (pl)
+
+Version 1.0.28
+Actually fixed /stats showing excavation values for swords
+Made some improvements to how Bleed Simulation was handled for different entity types
+Obsidian now does normal durability damage during Super Breaker
+
+Version 1.0.27
+Fixed /stats showing excavation values for swords
+Hopefully fixed a wide range of NPE errors
+Updated German (de) localization
+
+Version 1.0.26
+Fixed accidentally making power levels go above 9,000
+
+Version 1.0.25
+Compatible with the latest CB
+Beast Lore now functions correctly
+Wolves are no longer invincible to players
+Changed the look of Beast Lore
+Skill info pages now show your stat in that skill (if you have permission)
+/stats and /whois has been alphabetized and divided into three categories (Gathering/Combat/Misc)
+Abilities will not trigger on Trap Doors
+
+Version 1.0.24
+Now compatible with latest RB (928)
+Taming now receives XP from your wolves harming foes
+Taming is now easier to level
+Green Thumb now drops seeds when harvesting Wheat
+
+Version 1.0.23
+Modified Bleed Simulation to fix performance problems
+Rewrote MySpawn to be more efficient when calculating time left
+Rewrote Skills to be more efficient when calculating time left
+
+Version 1.0.22
+Added 'Name' nodes to commands for renaming them
+
+Version 1.0.21
+Fixed Skull Splitter length in /axes displaying incorrectly
+Fire rate limiter now correctly uses the value in the config file
+Stone XP now correctly uses the value in the config file
+Cobble -> Mossy now correctly uses the value in the config file
+Removed setmyspawn from config file as it serves no purpose
+All commands now have an 'Enabled' node in the config file that when set to false disables the command completely
+Fixed color scheme inconsistency for Mining in /whois results
+
+Version 1.0.20
+Fixed Array Index Out of Bounds error
+
+Version 1.0.19
+Removed a failsafe for the Timer that is no longer necessary (should improve performance)
+Fixed /myspawn not working by rewriting it :3
+Fixed exploit where players could break a freshly placed mushroom for XP
+MySQL User Passwords can now be blank (Although you really should have a password...)
+Fixed a few NPE errors
+
+Version 1.0.18
+Fixed MySQL default TablePrefix
+Fixed Wheat not being configurable
+
+Version 1.0.17
+Brand new YAML Configuration file
+Ability to configure XP for all gathering skills in config file
+German Language added to mcMMO
+French Language added to mcMMO
+MySpawn will no longer heal players
+/<skillname> commands now also check for their localized names for displaying help
+Added many more Strings to localization files
+Added more safeguards to MySpawn for NPE
+Fixed bug where Tree Feller Radius depended on WoodCutting XP rather than Skill Level
+Fixed bug where Readying a Hoe returned a missing localization string
+Added some safeguards into Bleed Simulation to prevent possible memory leaks
+Performance improvements to storing/calling Skill/XP Values
+Plugged a potential memory leak with PlayerProfiles not being removed correctly
+Disabled the mob spawner camping anti-exploit in favor of performance
+
+Version 1.0.16
+Fixed bug where localization file failed to load
+Changed en_US to lowercase
+mcMMO now requires locale files to be in lowercase
+Fixed a few strings missing from the localization file
+
+Version 1.0.15
+Removed leftover code that spammed SQL errors
+
+Version 1.0.14
+Added many missed strings into localization
+Finnish Localization updated for the new strings
+Green Thumb should respect Block Protection plugins now
+Fixed Number Format Exception when loading a PlayerProfile
+
+Version 1.0.13
+Fixed bug/NPE where stats would not load and therefore 'reset' for players
+Fixed NPE involving /ptp
+Added "enableMOTD" setting to properties file
+
+Version 1.0.12
+Fixed another NPE error
+Non-Gathering skills should correctly gain XP if PVP is set to false now
+Localization will now support language codes that do not have two parts like "fi"
+Fixed bug where Wiki MOTD message would not be loaded from localization file
+
+Version 1.0.11
+Fixed bug where players could not gain experience in several skills
+Removed PVP flag from mcmmo.properties as its not needed anymore
+Fixed a few NPE errors
+Mushroom XP reduced from 25 to 15
+Fixed an exploit where players who just logged in could be farmed for experience because they were invulnerable
+
+Version 1.0.10
+Added Localization/String Customization
+Mushroom XP reduced from 40 to 25
+Removed "clears inventory" warning in /mcc for /myspawn since this no longer happens
+
+Version 1.0.09
+Fixed the NPE that occurs when players gain experience (Sorry!)
+Fixed bug where /myspawn & /clearmyspawn would work if MySpawn was disabled in the properties file
+Changed strings containing "MMO" to read "mcMMO"
+Removed a lot of unused or unnecessary variables from the PlayerProfiles in mcMMO, this should lower the memory footprint
+Added getXpToLevel() for modders
+
+Version 1.0.08
+Added removeXP() for modders
+Fixed bug where stone swords only repaired by 33% instead of 50%
+Fixed bug where stone/wooden hoes wouldn't repair
+Big overhaul to how skill values and xp values were handled in the code
+Modifying the players skill levels now sets the corresponding skill xp to zero
+Using Serrated Strikes/Skull Splitter on mobs should no longer harm nearby players when PVP is disabled
+Switching to another weapon after firing your bow should no longer trigger procs for that weapon when the arrow hits
+Slimes/Ghasts now give XP for combat skills
+Added "EnableHpRegeneration" property setting
+Added "EnableMySpawn" property setting
+
+Version 1.0.07
+Added more repair customization by solarcloud7
+Leaderboards ignore players with the respective stat at 0
+Reconnecting to MySQL will reload player data
+Fixed a NPE with MySQL's Leaderboards
+Removed "Loop iteration" debug message from mcMMO
+
+Version 1.0.06
+MySQL will attempt to reconnect if the connection is closed
+Breaking the bottom block of Cactus/Reeds will award the correct experience and double drops
+Added support for Minecraft Statistics
+Fixed NPE with /myspawn command
+
+Version 1.0.05
+PVP interactions now check for permissions before handing out any experience
+Many skill abilities now check for permissions correctly
+All interactions with Taming now check for permissions
+mcMMO now checks for its pvp flag being true before handling pvp interactions
+
+Version 1.0.04
+Fixed bug where players would be informed incorrectly when their cooldowns refreshed
+Fixed exploit where players could reconnect to reset their cooldowns
+Added new "cooldowns" table to MySQL
+Berserk now breaks through snow
+Lightning no longer gives Taming XP
+Shortened /mcc to fit the screen
+
+Version 1.0.03
+Bleed will no longer trigger on friendly wolves
+Axes criticals will no longer trigger on friendly wolves
+
+Version 1.0.02
+Fixed bug where the Timer would start before everything else was ready
+Fixed bug where mcrefresh also required mcability permission node
+Fixed bug where Unarmed was not checking for disarm procs
+Green Thumb now checks for herbalism permissions
+Added "enableGreenThumbCobbleToMossy" to config file, this also changes Green Terra
+AoE abilities now harm wolves
+
+Version 1.0.01
+Removed debug message when wolves are struck
+Fixed issue with reloading mcMMO when MySQL was enabled
+Fixed a NPE with MySpawn
+Fixed a NPE with removing users from PlayerProfile
+Unarmed no longer starts with a damage bonus
+Unarmed apprentice DMG bonus changed from 3 to 2
+
+Version 1.0
+Players can now repair Stone/Wood tools
+Fixed duping bug with WG/Block Protection Plugins
+Added Leaf Blower to WoodCutting
+Different Trees give different WoodCutting XP
+Water changing Gravel to Clay removed
+Code Organized/Optimized further
+MySQL Support
+Taming Skill
+Leaderboards
+Players won't hand out XP if they died within the last 5 seconds
+
+Version 0.9.29
+Fixes critical bug involving water turning anything into clay
+
+Version 0.9.28
+Green thumb can now spread grass to dirt using seeds
+Adding XP will check for level ups again
+Acrobatics won't hand out XP on death anymore
+Acrobatics will check plugins for the event being cancelled before handing out XP
+
+Version 0.9.27
+Fixed Herbalism not properly receiving Triple Drops from Green Terra
+Fixed Herbalism not handing out any XP outside of Green Terra
+Fixed Herbalism asking for seeds on things that did not require it
+
+Version 0.9.26
+Fixed Green Terra going off without readiness
+Fixed Hoe trying to ready when tilling Grass
+
+Version 0.9.25
+Fixed issue with anti-exploits and Herbalism
+MySpawn works like a hearthstone now, no inv pentality, 1hr cooldown
+Added Green Terra Ability to Herbalism
+Added Green Thumb ability to Herbalism
+Fixed Repair not working for Iron Tools
+Fixed bug where Axes Ability checked for Unarmed Ability Permission
+Added Cocoa Beans to Excavation XP/Loot Tables, Found in Grass/Dirt
+Using Super Breaker on Obsidian significantly damages it compared to other materials
+Added Obsidian to Mining XP Table/Super Breaker
+Added Pumpkins/Reeds/Cactus to Herbalism XP Tables/Double Drops
+Corrected "mcMMMO" to "mcMMO" in MOTD
+
+Version 0.9.24
+PLAYER_BED_ENTER removed due to its unusual issues
+Added info about the Wiki to the motd
+/mcrefresh will reset if you were recently hurt (Chimaera Wing/HP Regen)
+Fixed Armor Repair not adding XP
+Boosted Repair XP of Armor to match Tools
+Repairing Armor won't trigger Super Repair twice anymore
+Setting your MySpawn now just requires right clicking a bed (still requires the setmyspawn permission node)
+
+Version 0.9.23
+Players will now announce ability usage within a short distance to nearby players
+Chimaera Wing now takes the world into account
+Acrobatics won't give XP on death, and will fail if you would've died after the damage reduction
+Added yet another check to see if a Player is not in the Users system for NPC mod compatibility
+
+
+Version 0.9.22
+Fixed bug where chimaera wing was unusable after being hurt even after the cooldown
+
+Version 0.9.21
+/mcrefresh fixed to work properly with the new ability monitoring system
+Ability lengths are now based on your skill level directly rather than a tiered system
+Chimaera Wings won't trigger on things they shouldn't (Doors, Chests, ETC)
+Chimaera Wings will properly tell you how long you have to wait to use it if you've been recently hurt
+
+Version 0.9.20
+Fixed Tree Feller not checking if their cooldown was refreshed and always activating
+/stats and /whois will now show the powerlevel based on permissions
+Shovels will no longer say you've lowered your axe
+/myspawn will no longer say your inventory has been cleared if the server settings disable this feature
+
+
+Version 0.9.19
+Fixed Anti-Exploit XP stuff not working
+
+Version 0.9.18
+Added failsafe to prevent abilities from going on forever, abilities will check if they should've expired when being used in case the Timer fails
+Archery Spam has been nerf'd, you can only fire once per second now (Toggle-able in config file)
+Fixed bug when just having the Admin Chat permission wouldn't allow you to see Admin Chat
+Fixed bug where Axes ability could be used without permission
+Abilities are monitored with Timestamps rather than a Timer monitored tick rate
+When players were last hurt is now monitored with Timestamps rather than a Timer monitored tick rate
+Made Anti XP-Exploits more Robust
+Repair XP is now based on durability restored
+Acrobatics rolling will now reduce damage if you go over the damage threshold
+Acrobatics rolling damage threshold lowered to 10 from 20
+Added Graceful Roll to Acrobatics, hold Shift when falling to do a Graceful Roll
+mcMMO now checks for the blockBreak and EntityDamage events being canceled before proceeding
+Dodge notification shortened
+Dodge won't negate damage completely anymore
+Added 3 more functions for plugin authors to call, getPartyName(Player player), inParty(Player player), and getParties()
+
+Version 0.9.17
+Players now set their MySpawn by entering a bed, it requires the setmyspawn permission node
+/setmyspawn has been removed
+Compatible with CB 670
+Fixed errors related to Repair
+Abilities will no longer trigger from Bed interactions
+/unarmed will now tell the player when they will receive unarmed master (if they have apprentice)
+
+Version 0.9.16
+Logs placed by the player won't grant XP/Double Drops anymore
+Added more functions plugin authors can call
+Acrobatics roll has a damage threshold of 20, going above this means a failed Roll
+
+
+Version 0.9.15
+Acrobatics will now behave properly
+AoE Abilities ignore wolves (temp fix)
+Added "all" parameter to /mmoedit & /addxp
+After giving XP to a player it will now check for level ups in skills
+
+Version 0.9.14
+mcMMO checks for abilities being active before sending the fake block break event
+
+Version 0.9.13
+Fixed excavation ignoring the xpGainMultiplier
+Now compatible with CB 600+
+Fixed bug where Dodge acted maxed out no matter your skill level
+
+Version 0.9.12
+mcMMO now fakes a block break event for abilities to maximize plugin compatibility
+/herbalism will return the correct values now
+New /addxp command
+
+Version 0.9.11
+PVE Combat Skills experience is now based on damage dealt
+The Timer will no longer break from Bleed Simulation
+Tree feller no longer "damages" saplings
+Bleed+ (Serrated Strikes) lasts 5 ticks down from 12
+Bleed/Bleed+ now do 2 damage instead of 1
+Power Level is now based on permissions
+Counter Attack added to swords
+Parry is now based directly on Swords skill level
+Parry maximum proc chance raised to 30% from 20%
+Serrated Strikes now properly applies Bleed+ to targets
+Players who parry can no longer be disarmed
+Acrobatics now has a Dodge passive skill reducing damage
+Repair skill now effects how much durability is restored
+Super repair now doubles the repair amount on proc
+Unarmed now starts with a bonus to damage to encourage use
+Unarmed now has two steps to damage scaling, Appentice, and Mastery
+Unarmed disarm now caps at 25% for 1000 skill
+Fixed problem where Archery skill procs would ignore other plugins
+Ignition changed to 25% chance
+Ignition length will be based on archery skill level
+/myspawn now has a warning about the inventory loss penalty in /mcc
+mcMMO Timer now runs in 1 second intervals rather than 2
+
+Version 0.9.10
+Party invites now show who they are from
+Mushrooms added to Dirt/Grass excavation loot tables, drops with 500+ skill
+mcMMO configuration files property setting names have been changed for readability
+Fixed bug where Gold and Iron wouldn't drop anything during Super Breaker
+Added /mcability info to /mcc
+Potentially fixed NPE error when checking players for being in same party for PVP XP
+Removed sand specific diamond drop from sand excavation loot table, Diamonds can still drop globally for sand
+Added a global XP gain multiplier, increase it to increase XP gained
+Reduced PVE XP for Unarmed, now identical to Axes/Swords
+Changed Chat priority in mcMMO to be higher, this should help plugin conflicts
+Mushroom XP raised to 40 from 10
+Flower XP raised to 10 from 3
+
+Version 0.9.9
+Fixed problem where entities never got removed from the arrow retrieval list of entities
+
+Version 0.9.8
+EntityLiving shouldn't be cast to entities that are not an instance of EntityLiving
+Added a null check in the timer for players being null before proceeding
+
+Version 0.9.7
+Procs/XP Gain will no longer happen when the Entity is immune to damage (Thanks EdwardHand!)
+Axes critical damage versus players reduced to 150% damage from 200% damage
+Fixed bug where Daze might not proc
+Changed archery Daze to follow smooth transition
+Added archery Daze chance info to /archery
+Cooldown lengths are now customizable, they are in seconds and multiplied by 2 by mcMMO
+
+Version 0.9.6
+Timer checks for player being null before adding them to the mcUsers system
+Cooldowns will now show how much time is remaining when trying to use their respective abilities
+SkullSpliiter will now correctly inform the player when they are too tired to use it
+Acrobatics will no longer give XP if the event was cancelled by another plugin
+Version 0.9.5
+Super Breaker now gives a chance for Triple Drops based on mining skill
+Ability durability loss down from 15 to 2
+Ability durability loss is now toggle-able
+Ability durability loss can be adjusted in the configuration file
+Mining Picks are no longer lowered after activating Super Breaker
+
+Version 0.9.4
+Flowers won't drop wheat anymore
+Signs won't trigger ability readiness anymore
+Version 0.9.3
+Bug stopping abilities from never wearing of may have been fixed
+Changed color of "X Ability has worn off" to RED from GRAY
+Super Breaker, Giga Drill Breaker, and Tree Feller now damage the tool significantly during use
+Netherrack and Glowstone now give Mining XP
+Netherrack and Glowstone are now effected by Super Breaker
+Abilities will no longer be readied when you right click signs or beds
+Chimaera Wings won't activate on blocks you can interact with and signs
+Abilities now adjust their effects depending on tool quality
+Superbreaker won't break things that tool couldn't normally break
+Giga Drill Breaker will only give triple xp and triple drops for diamond tools, with a reduced effect for lesser tools
+Skull Splitter now has a limit of opponents nearby it will strike based on your tool quality
+Serrated Strikes now has a limit of opponents nearby it will strike based on your tool quality
+Modified /mcmmo description to be a little bit more relevant.
+
+Version 0.9.2
+Changed priority of some of the mcMMO listeners
+Now when certain abilities are activated it shouldn't say "You lower your x"
+
+Version 0.9.1
+Fixed "Unknown console command" errors with CB 556
+Added /mcability command to toggle being able to trigger abilities with right click
+Added some more nullchecks for people reporting NPE errors
+Compatibility with NPC mods improved (Mainly for archery!)
+Other plugins can now call inSameParty() from mcMMO to increase compatibility
+
+Version 0.9
+--NEW CONTENT--
+Woodcutting now has the "Tree Feller" Ability
+Unarmed now has the "Berserk" Ability
+Swords now has the "Serrated Strikes" Ability
+Mining now has the "Super Breaker" Ability
+Axes now has the "Skull Splitter" Ability
+Excavation now has the "Giga Drill Breaker" Ability
+Added /mcrefresh <playername> - tool for refreshing cooldowns
+Unarmed now has the "Deflect Arrows" passive skill
+Chimaera Wing Item Added
+
+--CHANGES--
+HP Regen & Bleed are back
+Woodcutting will drop the appropriate log on double drop procs
+Herbalism now applies double drops to herbs
+/<skillname> now shows much more information to the player regarding their stats
+Axes skill Critical Strikes are now based directly on your skill level
+Swords skill Bleed chance is now based directly on your skill level
+Unarmed disarm chance is now based directly on your skill level
+Acrobatics now gives XP when you roll
+
+--BUGFIXES--
+Memory Leak Fixed
+Axes not doing critical strikes
+Gold Armor repair
+Capped skills now have the correct proc chance
+/mmoedit is no longer case sensitive
+More NPE errors fixed
+Many bugs I forgot to write down
+
+--PLUGIN COMPATABILITY FIXES--
+If combat interactions are cancelled by other plugins mcMMO should ignore the event
+If block damage interactions are cancelled by other plugins mcMMO should ignore the event
+	
+Version 0.8.22
+	Fixed bug where Axes did less damage than normal
+	Acrobatic rolls now give XP
+	Acrobatics XP increased for non-rolls
+Version 0.8.21
+	Fixed bug where axe criticals would dupe items
+Version 0.8.20
+	99.99% sure I fixed anvils that suddenly stop working
+Version 0.8.19
+	Fixed being able to excavate placed blocks
+	Added toggle option to mining requiring a pickaxe
+	Added toggle option to woodcutting requiring an axe
+	PVP interactions now reward XP based on the damage caused (this is effected by skills)
+	PVP XP gain can be disabled in the configuration file
+	PVP XP has a modifier, increase the modifier for higher XP rewards from PVP combat
+Version 0.8.18
+	Fixed sandstone not being watched for exploitation
+Version 0.8.17
+	mcmmo.users moved to plugins/mcMMO/
+	Snowballs and Eggs will no longer trigger Ignition
+	Loot tables for excavation adjusted
+	Mining benefits now require the player to be holding a mining pick
+	Woodcutting benefits now require the player to be holding an axe
+Version 0.8.16
+	Moved configuration file to /plugins/mcMMO
+	Arrows now have a chance to Ignite enemiesw
+	Fixed arrows not being retrievable from corpses
+	Added info about ignition to /archery
+Version 0.8.14
+	Mining, Woodcutting, Herbalism, and Acrobatics proc rates now are based on your skill level directly rather than tiers you unlock via skill levels
+	Archery's ability to retrieve arrows from corpses now is based on your skill level directly rather than tiers you unlock via skill levels
+	Mining, Woodcutting, Herbalism, Archery, and Acrobatics now show their proc % relative to your skill if you type /<skillname>
+	You can now adjust what level is required to repair diamond in the configuration file
+	Changed mining XP rates to be a tad higher for some things
+	You can now get XP from sandstone
+	XP rates increased for gathering glowstone with excavation
+	XP rates increased a bit for excavation
+	Skill info is now a bit more detailed for certain skills
+	Added info about arrow retrieval to /archery
+Version 0.8.13
+	Enemies no longer look like they have frozen when they die
+	Item duping fix
+Version 0.8.11
+	Performance improvements
+	Memory leak fixed
+	NPE error with MySpawn really fixed
+Version 0.8.9
+	Fixed NPE for My Spawn
+	Fixed NPE for onBlockDamage
+	Bleed proc now correctly checks for Swords permissions
+Version 0.8.8
+	Gold can now be repaired
+	Tweaked Mining XP gains
+	Reorganized code
+	Added /mcgod godmode command
+	Fixed the pvp toggle in the settings file
+Version 0.8.7
+	Removed packet-sending stuff wasn't working anyways
+	Fixed another NPE with the TimerTask
+	Skills now only show up in /stats if you have permissions for them
+Version 0.8.6
+	Added a null check in bleed simulation to prevent a NPE
+Version 0.8.5
+	Players are now added to files when they connect (to fix a NPE)
+	onPlayerCommand stuff moved into onPlayerCommandPreprocess
+Version 0.8.4
+	Fixed another nullpointer error for TimerTask
+	Fixed bug making regeneration take twice as long to kick in after combat
+Version 0.8.3
+	Modified the timer intervals (from 1 second to 2)
+	All skills now have an individual modifier (Set by default to 2)
+	There is now a global XP modifier (Set by default to 1)
+	Herbalism now correctly follows its skill curve
+	Unarmed no longer gives experience for harming other players
+	Players can no longer exploit mob spawners for experience
+Version 0.8.2
+	Fixed Concurrent Modification Exception
+	Fixed some incorrect skill descriptions
+	First tier of HP Regeneration is now available from the start
+	Fixed bleed proc rate for very high skill levels
+	Changed regeneration permissions to 'mcmmo.regeneration'
+Version 0.8
+	Archery skill now lets players recover arrows from downed foes
+	Health regenerates based on power level
+	Added toggle to myspawn clearing player inventory in settings file
+	Swords now have a bleed effect
+	Rewrote Skill descriptions to be more informative/better
+Version 0.7.9
+	XP Curve now follows a new formula
+	Acrobatics XP gains changed
+	Compiled against permissions 2.1
+Version 0.7.8
+	Massive tweaks to XP gain for Archery, Swords, Axes, Unarmed
+Version 0.7.7
+	Minor tweak to how players are added to the flat file
+	Fixed some nullpointer exceptions when players die
+Version 0.7.6
+	Fixed being able to repair diamond armor with below 50 skill
+	Myspawn now supports multiple worlds, clearing myspawn will set it to the first world created by the server
+Version 0.7.5
+	Removed random checks for herbalism XP
+	Herbalism is now called properly (This should fix gaining no xp or double drops)
+Version 0.7.4
+	Work around for a bukkit bug that broke my onBlockDamage event
+	Added /clearmyspawn
+Version 0.7.3
+	Fixed to work with build 424 of CB
+	Lowered the XP of gold due to it not being that rare anymore
+Version 0.7.2
+	Fixed security flaw where players could access /mmoedit if the server was not running permissions
+	Reduced XP gain of woodcutting a bit
+Version 0.7
+	Completely rewrote the XP system
+	Added an XP skillrate modifier to the settings file
+	
+Version 0.6.2
+	Axes now do critical strikes against farm animals
+	Removed the "Stupidly Long Constructor"
+	Now compatible with the latest CB builds
+Version 0.6.1
+	Customizable command names
+	Axes can now be modified with /mmoedit
+	Party members are now correctly informed when you leave the party
+	Fixed incorrect commands in /mcc
+Version 0.5.17
+
+	Changed namespaces to fit bukkits new standard
+	Adjusted excavation proc rates
+	Modified excavation loot tables
+	Added Party Invite System
+
+Version 0.5.16
+
+	Fixed unarmed not checking for permissions when hitting players
+
+Version 0.5.15
+	Fixed stone swords not being recognized as swords
+	Fixed /a not working if you were an op but did not have permissions
+	
+Version 0.5.14
+	Added permissions for skills
+
+Version 0.5.13
+
+	Removed skillgain from succesful parries
+	Repair now refreshed the inventory
+	
+Version 0.5.12
+
+	Fixed being able to hurt party members with the bow and arrow
+	
+Version 0.5.11
+
+	Added /mmoedit command
+	Fixed bug preventing player versus player damage
+	Fixed bug preventing damage from scaling with unarmed & bows
+	Fixed disarm proc making the opponent dupe his/her items
+	Added mcmmo.tools.mmoedit permission
+	Added mcmmo.commands.setmyspawn permission
+	Added totalskill to /stats
+	Changed the look of /stats
+	
+Version 0.5.10
+
+    Fixed trying to set health to an invalid value
+
+Version 0.5.9
+
+    Fixed duping inventories on death
+
+Version 0.5.8
+
+    Fixed bug where players inventories would dupe during combat
+    
+Version 0.5.7
+
+    Fixed monsters instant killing players
+    Misc fixes
+Version 0.5.4
+
+    Changed herbalism skill gain from wheat to be WAAAAY slower
+
+Version 0.5.3
+
+    Players will now correctly drop their inventories when killed by a monster
+
+Version 0.5.2
+
+    Fixed MAJOR bug preventing swords skill from gaining through combat
+
+Version 0.5
+
+    Archery Added
+    Swords Added
+    Acrobatics Added
+    Logging for Party/Admin chat added
+    Fixed whois to show correct values for Excavation
+    Made death messages much much more specific
+
+Version 0.4.4
+
+    Fixed being able to repair full durability iron tools
+    Fixed herbalism benefits not behaving properly
+    Fixed removing 1 diamond from every stack of diamond when repairing diamond
+
+Version 0.4.2
+
+    Removed myspawn from the motd
+
+Version 0.4.1
+
+    Fixed /mcc showing incorrect command for herbalism
+    Changed unarmed skillrate to be much slower than before
+    Modified a few skill descriptions
+    Added permission for /whois
+    Players can now use admin chat without being op as long as they have the correct permission (requires Permissions)
+
+Version 0.4
+
+    Permissions support
+    Removed OPs having different names than normal players
+    Removed /setspawn & /spawn
+    Slowed down excavation skill rate
+    Fixed excavation coal drop being too rare
+
+Version 0.3.4
+
+    Creepers now give double xp for unarmed
+    Iron armor can now be repaired!
+    Fixed bug stopping items from being repaired
+
+Version 0.3.3
+
+    Yet another herbalism skill gain tweak
+
+Version 0.3.2
+
+    Changed excavation loot tables to be more rewarding
+    Changed sand to give normal excavation xp instead of double xp
+    Fixed herbalism skill exploit
+    Mobs killed with unarmed now drop loot properly
+    Unarmed xp rate depends on mob (zombies lowest fyi)
+    Huge player crashing bug fix on disarm!
+
+Version 0.3.1
+
+    Fixed excavation not saving properly
+    Fixed repair using excavation values
+
+Version 0.3
+
+    Unarmed skill
+    Herbalism skill
+    Excavation skill
+    Many bugfixes (thanks for reporting them!)
+    /<skillname> - Detailed information about skills in game
+
+Version 0.2.1
+
+    Misc bugfixes
+
+Version 0.2
+
+    Repair ability added
+    Repair skill added
+    Iron Armor repair temporarily disabled
+    Anvils (Iron Block) added
+    /mcmmo & /mcc added
+    Misc changes to existing commands
+    Misc bug fixes
+
+Version 0.1
+
+    Releasing my awesome plugin

+ 0 - 0
mcMMO/com/gmail/nossr50/Combat.java → src/com/gmail/nossr50/Combat.java


+ 0 - 0
mcMMO/com/gmail/nossr50/Database.java → src/com/gmail/nossr50/Database.java


+ 89 - 89
mcMMO/com/gmail/nossr50/Item.java → src/com/gmail/nossr50/Item.java

@@ -1,89 +1,89 @@
-package com.gmail.nossr50;
-
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.plugin.Plugin;
-import com.gmail.nossr50.config.*;
-import com.gmail.nossr50.locale.mcLocale;
-import com.gmail.nossr50.skills.*;
-
-import com.gmail.nossr50.datatypes.PlayerProfile;
-
-
-public class Item {
-	
-	public static void itemchecks(Player player, Plugin plugin)
-	{
-		ItemStack inhand = player.getItemInHand();
-		if(LoadProperties.chimaeraWingEnable && inhand.getTypeId() == LoadProperties.chimaeraId)
-		{
-			chimaerawing(player, plugin);
-		}
-	}
-	
-	@SuppressWarnings("deprecation")
-	public static void chimaerawing(Player player, Plugin plugin)
-	{
-		PlayerProfile PP = Users.getProfile(player);
-		ItemStack is = player.getItemInHand();
-		Block block = player.getLocation().getBlock();
-		if(mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == LoadProperties.chimaeraId)
-		{
-    		if(Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing)
-    		{
-    			Block derp = player.getLocation().getBlock();
-    			int y = derp.getY();
-    			ItemStack[] inventory = player.getInventory().getContents();
-    	    	for(ItemStack x : inventory){
-    	    		if(x != null && x.getTypeId() == LoadProperties.chimaeraId){
-    	    			if(x.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing + 1)
-    	    			{
-    	    				x.setAmount(x.getAmount() - LoadProperties.feathersConsumedByChimaeraWing);
-    	    				player.getInventory().setContents(inventory);
-        	    			player.updateInventory();
-        	    			break;
-    	    			} else {
-    	    				x.setAmount(0);
-    	    				x.setTypeId(0);
-    	    				player.getInventory().setContents(inventory);
-        	    			player.updateInventory();
-        	    			break;
-    	    			}
-    	    		}
-    	    	}
-    			while(y < 127)
-    			{
-    				y++;
-    				if(player != null)
-    				{
-    					if(player.getLocation().getWorld().getBlockAt(block.getX(), y, block.getZ()).getType() != Material.AIR)
-    					{
-	    					player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail")); //$NON-NLS-1$
-	    					player.teleport(player.getLocation().getWorld().getBlockAt(block.getX(), (y - 1), block.getZ()).getLocation());
-	    					return;
-    					}
-    				}
-    			}
-    			if(PP.getMySpawn(player) != null)
-    			{
-    				Location mySpawn = PP.getMySpawn(player);
-    				if(mySpawn != null){
-	    				player.teleport(mySpawn); //Do it twice to prevent weird stuff
-	    				player.teleport(mySpawn);
-    				}
-    			} else {
-    				player.teleport(player.getWorld().getSpawnLocation());
-    			}
-    			player.sendMessage(mcLocale.getString("Item.ChimaeraWingPass")); //$NON-NLS-1$
-    		} else if (!Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= 10) 
-    		{
-    			player.sendMessage(mcLocale.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)})); //$NON-NLS-1$
-    		} else if (is.getTypeId() == LoadProperties.chimaeraId && is.getAmount() <= 9){
-    			player.sendMessage(mcLocale.getString("Item.NeedFeathers")); //$NON-NLS-1$
-    		}
-    	}
-	}
-}
+package com.gmail.nossr50;
+
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.plugin.Plugin;
+import com.gmail.nossr50.config.*;
+import com.gmail.nossr50.locale.mcLocale;
+import com.gmail.nossr50.skills.*;
+
+import com.gmail.nossr50.datatypes.PlayerProfile;
+
+
+public class Item {
+	
+	public static void itemchecks(Player player, Plugin plugin)
+	{
+		ItemStack inhand = player.getItemInHand();
+		if(LoadProperties.chimaeraWingEnable && inhand.getTypeId() == LoadProperties.chimaeraId)
+		{
+			chimaerawing(player, plugin);
+		}
+	}
+	
+	@SuppressWarnings("deprecation")
+	public static void chimaerawing(Player player, Plugin plugin)
+	{
+		PlayerProfile PP = Users.getProfile(player);
+		ItemStack is = player.getItemInHand();
+		Block block = player.getLocation().getBlock();
+		if(mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == LoadProperties.chimaeraId)
+		{
+    		if(Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing)
+    		{
+    			Block derp = player.getLocation().getBlock();
+    			int y = derp.getY();
+    			ItemStack[] inventory = player.getInventory().getContents();
+    	    	for(ItemStack x : inventory){
+    	    		if(x != null && x.getTypeId() == LoadProperties.chimaeraId){
+    	    			if(x.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing + 1)
+    	    			{
+    	    				x.setAmount(x.getAmount() - LoadProperties.feathersConsumedByChimaeraWing);
+    	    				player.getInventory().setContents(inventory);
+        	    			player.updateInventory();
+        	    			break;
+    	    			} else {
+    	    				x.setAmount(0);
+    	    				x.setTypeId(0);
+    	    				player.getInventory().setContents(inventory);
+        	    			player.updateInventory();
+        	    			break;
+    	    			}
+    	    		}
+    	    	}
+    			while(y < 127)
+    			{
+    				y++;
+    				if(player != null)
+    				{
+    					if(player.getLocation().getWorld().getBlockAt(block.getX(), y, block.getZ()).getType() != Material.AIR)
+    					{
+	    					player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail")); //$NON-NLS-1$
+	    					player.teleport(player.getLocation().getWorld().getBlockAt(block.getX(), (y - 1), block.getZ()).getLocation());
+	    					return;
+    					}
+    				}
+    			}
+    			if(PP.getMySpawn(player) != null)
+    			{
+    				Location mySpawn = PP.getMySpawn(player);
+    				if(mySpawn != null){
+	    				player.teleport(mySpawn); //Do it twice to prevent weird stuff
+	    				player.teleport(mySpawn);
+    				}
+    			} else {
+    				player.teleport(player.getWorld().getSpawnLocation());
+    			}
+    			player.sendMessage(mcLocale.getString("Item.ChimaeraWingPass")); //$NON-NLS-1$
+    		} else if (!Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= 10) 
+    		{
+    			player.sendMessage(mcLocale.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)})); //$NON-NLS-1$
+    		} else if (is.getTypeId() == LoadProperties.chimaeraId && is.getAmount() <= 9){
+    			player.sendMessage(mcLocale.getString("Item.NeedFeathers")); //$NON-NLS-1$
+    		}
+    	}
+	}
+}

+ 245 - 245
mcMMO/com/gmail/nossr50/Leaderboard.java → src/com/gmail/nossr50/Leaderboard.java

@@ -1,245 +1,245 @@
-package com.gmail.nossr50;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import com.gmail.nossr50.config.LoadProperties;
-import com.gmail.nossr50.datatypes.PlayerStat;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.datatypes.Tree;
-
-public class Leaderboard 
-{
-	static String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; //$NON-NLS-1$
-	protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$
-	
-	/*
-	 * Read from the file
-	 */
-	public static void makeLeaderboards()
-	{
-		//Make Trees
-		Tree Mining = new Tree();
-		Tree WoodCutting = new Tree();
-		Tree Herbalism = new Tree();
-		Tree Excavation = new Tree();
-		Tree Acrobatics = new Tree();
-		Tree Repair = new Tree();
-		Tree Swords = new Tree();
-		Tree Axes = new Tree();
-		Tree Archery = new Tree();
-		Tree Unarmed = new Tree();
-		Tree Taming = new Tree();
-		Tree PowerLevel = new Tree();
-		
-		//Add Data To Trees
-		try {
-        	//Open the user file
-        	FileReader file = new FileReader(location);
-        	BufferedReader in = new BufferedReader(file);
-        	String line = ""; //$NON-NLS-1$
-        	while((line = in.readLine()) != null)
-        	{
-        		String[] character = line.split(":"); //$NON-NLS-1$
-        		String p = character[0];
-
-
-    			int Plvl = 0;
-    			
-    			if(character.length > 1 && m.isInt(character[1]))
-    			{
-    				Mining.add(p, Integer.valueOf(character[1]));
-    				Plvl += Integer.valueOf(character[1]);
-    			}
-    			if(character.length > 5 && m.isInt(character[5])){
-    				WoodCutting.add(p, Integer.valueOf(character[5]));
-    				Plvl += Integer.valueOf(character[5]);
-    			}
-    			if(character.length > 7 && m.isInt(character[7])){
-    				Repair.add(p, Integer.valueOf(character[7]));
-    				Plvl += Integer.valueOf(character[7]);
-    			}
-    			if(character.length > 8 && m.isInt(character[8])){
-    				Unarmed.add(p, Integer.valueOf(character[8]));
-    				Plvl += Integer.valueOf(character[8]);
-    			}
-    			if(character.length > 9 && m.isInt(character[9])){
-    				Herbalism.add(p, Integer.valueOf(character[9]));
-    				Plvl += Integer.valueOf(character[9]);
-    			}
-    			if(character.length > 10 && m.isInt(character[10])){
-    				Excavation.add(p, Integer.valueOf(character[10]));
-    				Plvl += Integer.valueOf(character[10]);
-    			}
-    			if(character.length > 11 && m.isInt(character[11])){
-    				Archery.add(p, Integer.valueOf(character[11]));
-    				Plvl += Integer.valueOf(character[11]);
-    			}
-    			if(character.length > 12 && m.isInt(character[12])){
-    				Swords.add(p, Integer.valueOf(character[12]));
-    				Plvl += Integer.valueOf(character[12]);
-    			}
-    			if(character.length > 13 && m.isInt(character[13])){
-    				Axes.add(p, Integer.valueOf(character[13]));
-    				Plvl += Integer.valueOf(character[13]);
-    			}
-    			if(character.length > 14 && m.isInt(character[14])){
-    				Acrobatics.add(p, Integer.valueOf(character[14]));
-    				Plvl += Integer.valueOf(character[14]);
-    			}
-    			if(character.length > 24 && m.isInt(character[24])){
-    				Taming.add(p, Integer.valueOf(character[24]));
-    				Plvl += Integer.valueOf(character[24]);
-    			}
-    			
-    			PowerLevel.add(p, Plvl);
-        	}
-        	in.close();
-        } catch (Exception e) {
-            log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$
-            		+ location + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$
-        }
-        //Write the leader board files
-        leaderWrite(Mining.inOrder(), SkillType.MINING); //$NON-NLS-1$
-        leaderWrite(WoodCutting.inOrder(), SkillType.WOODCUTTING); //$NON-NLS-1$
-        leaderWrite(Repair.inOrder(), SkillType.REPAIR); //$NON-NLS-1$
-        leaderWrite(Unarmed.inOrder(), SkillType.UNARMED); //$NON-NLS-1$
-        leaderWrite(Herbalism.inOrder(), SkillType.HERBALISM); //$NON-NLS-1$
-        leaderWrite(Excavation.inOrder(), SkillType.EXCAVATION); //$NON-NLS-1$
-        leaderWrite(Archery.inOrder(), SkillType.ARCHERY); //$NON-NLS-1$
-        leaderWrite(Swords.inOrder(), SkillType.SWORDS); //$NON-NLS-1$
-        leaderWrite(Axes.inOrder(), SkillType.AXES); //$NON-NLS-1$
-        leaderWrite(Acrobatics.inOrder(), SkillType.ACROBATICS); //$NON-NLS-1$
-        leaderWrite(Taming.inOrder(), SkillType.TAMING); //$NON-NLS-1$
-        leaderWrite(PowerLevel.inOrder(), SkillType.ALL); //$NON-NLS-1$
-	}
-	public static void leaderWrite(PlayerStat[] ps, SkillType skillType)
-	{
-		String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
-		//CHECK IF THE FILE EXISTS
-		File theDir = new File(theLocation);
-		if(!theDir.exists())
-		{
-			//properties = new PropertiesFile(location);
-			FileWriter writer = null;
-			try {
-				writer = new FileWriter(theLocation);
-			} catch (Exception e) {
-				log.log(Level.SEVERE, "Exception while creating " + theLocation, e); //$NON-NLS-1$
-			} finally {
-				try {
-					if (writer != null) {
-						writer.close();
-					}
-				} catch (IOException e) {
-					log.log(Level.SEVERE, "Exception while closing writer for " + theLocation, e); //$NON-NLS-1$
-				}
-			}
-		} else {
-			try {
-	        	FileReader file = new FileReader(theLocation);
-	
-	    		//HERP
-	            BufferedReader in = new BufferedReader(file);
-	            StringBuilder writer = new StringBuilder();
-	            
-	        	for(PlayerStat p : ps)
-	        	{
-	        		if(p.name.equals("$mcMMO_DummyInfo")) //$NON-NLS-1$
-	        			continue;
-	        		if(p.statVal == 0)
-	        			continue;
-	        		writer.append(p.name + ":" + p.statVal); //$NON-NLS-1$
-	        		writer.append("\r\n");  //$NON-NLS-1$
-	        	}
-	        	
-	        	in.close();
-	        	//Write the new file
-	            FileWriter out = new FileWriter(theLocation);
-	            out.write(writer.toString());
-	            out.close();
-	        } catch (Exception e) {
-	                log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$
-	        }
-		}
-		//Create/open the file
-		//Loop through backward writing each player
-		//Close the file
-	}
-	
-	public static String[] retrieveInfo(String skillName, int pagenumber)
-	{
-		String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
-		try {
-        	FileReader file = new FileReader(theLocation);
-        	BufferedReader in = new BufferedReader(file);
-        	
-        	int destination = (pagenumber - 1) * 10; //How many lines to skip through
-        	int x = 0; //how many lines we've gone through
-        	int y = 0; //going through the lines
-        	String line = ""; //$NON-NLS-1$
-        	String[] info = new String[10]; //what to return
-        	while((line = in.readLine()) != null && y < 10)
-        	{
-        		x++;
-        		if(x >= destination && y < 10){
-        			info[y] = line.toString();
-        			y++;
-        		}
-        	}
-        	in.close();
-        	return info;
-        } catch (Exception e) {
-            log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$
-            		+ theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$
-        }
-        return null; //Shouldn't get here
-	}
-	public static void updateLeaderboard(PlayerStat ps, SkillType skillType)
-	{
-		if(LoadProperties.useMySQL)
-			return;
-		String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
-		try {
-        	//Open the file
-        	FileReader file = new FileReader(theLocation);
-            BufferedReader in = new BufferedReader(file);
-            StringBuilder writer = new StringBuilder();
-        	String line = ""; //$NON-NLS-1$
-        	Boolean inserted = false;
-        	//While not at the end of the file
-        	while((line = in.readLine()) != null)
-        	{
-        		//Insert the player into the line before it finds a smaller one
-        		if(Integer.valueOf(line.split(":")[1]) < ps.statVal && !inserted) //$NON-NLS-1$
-        		{
-        			writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
-        			inserted = true;
-        		}
-        		//Write anything that isn't the player already in the file so we remove the duplicate
-        		if(!line.split(":")[0].equalsIgnoreCase(ps.name)) //$NON-NLS-1$
-        		{
-                    writer.append(line).append("\r\n"); //$NON-NLS-1$
-        		}
-        	}
-        	
-        	if(!inserted)
-        	{
-    			writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
-        	}
-        	
-        	in.close();
-        	//Write the new file
-            FileWriter out = new FileWriter(theLocation);
-            out.write(writer.toString());
-            out.close();
-        } catch (Exception e) {
-                log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-	}
-}
+package com.gmail.nossr50;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import com.gmail.nossr50.config.LoadProperties;
+import com.gmail.nossr50.datatypes.PlayerStat;
+import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.datatypes.Tree;
+
+public class Leaderboard 
+{
+	static String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; //$NON-NLS-1$
+	protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$
+	
+	/*
+	 * Read from the file
+	 */
+	public static void makeLeaderboards()
+	{
+		//Make Trees
+		Tree Mining = new Tree();
+		Tree WoodCutting = new Tree();
+		Tree Herbalism = new Tree();
+		Tree Excavation = new Tree();
+		Tree Acrobatics = new Tree();
+		Tree Repair = new Tree();
+		Tree Swords = new Tree();
+		Tree Axes = new Tree();
+		Tree Archery = new Tree();
+		Tree Unarmed = new Tree();
+		Tree Taming = new Tree();
+		Tree PowerLevel = new Tree();
+		
+		//Add Data To Trees
+		try {
+        	//Open the user file
+        	FileReader file = new FileReader(location);
+        	BufferedReader in = new BufferedReader(file);
+        	String line = ""; //$NON-NLS-1$
+        	while((line = in.readLine()) != null)
+        	{
+        		String[] character = line.split(":"); //$NON-NLS-1$
+        		String p = character[0];
+
+
+    			int Plvl = 0;
+    			
+    			if(character.length > 1 && m.isInt(character[1]))
+    			{
+    				Mining.add(p, Integer.valueOf(character[1]));
+    				Plvl += Integer.valueOf(character[1]);
+    			}
+    			if(character.length > 5 && m.isInt(character[5])){
+    				WoodCutting.add(p, Integer.valueOf(character[5]));
+    				Plvl += Integer.valueOf(character[5]);
+    			}
+    			if(character.length > 7 && m.isInt(character[7])){
+    				Repair.add(p, Integer.valueOf(character[7]));
+    				Plvl += Integer.valueOf(character[7]);
+    			}
+    			if(character.length > 8 && m.isInt(character[8])){
+    				Unarmed.add(p, Integer.valueOf(character[8]));
+    				Plvl += Integer.valueOf(character[8]);
+    			}
+    			if(character.length > 9 && m.isInt(character[9])){
+    				Herbalism.add(p, Integer.valueOf(character[9]));
+    				Plvl += Integer.valueOf(character[9]);
+    			}
+    			if(character.length > 10 && m.isInt(character[10])){
+    				Excavation.add(p, Integer.valueOf(character[10]));
+    				Plvl += Integer.valueOf(character[10]);
+    			}
+    			if(character.length > 11 && m.isInt(character[11])){
+    				Archery.add(p, Integer.valueOf(character[11]));
+    				Plvl += Integer.valueOf(character[11]);
+    			}
+    			if(character.length > 12 && m.isInt(character[12])){
+    				Swords.add(p, Integer.valueOf(character[12]));
+    				Plvl += Integer.valueOf(character[12]);
+    			}
+    			if(character.length > 13 && m.isInt(character[13])){
+    				Axes.add(p, Integer.valueOf(character[13]));
+    				Plvl += Integer.valueOf(character[13]);
+    			}
+    			if(character.length > 14 && m.isInt(character[14])){
+    				Acrobatics.add(p, Integer.valueOf(character[14]));
+    				Plvl += Integer.valueOf(character[14]);
+    			}
+    			if(character.length > 24 && m.isInt(character[24])){
+    				Taming.add(p, Integer.valueOf(character[24]));
+    				Plvl += Integer.valueOf(character[24]);
+    			}
+    			
+    			PowerLevel.add(p, Plvl);
+        	}
+        	in.close();
+        } catch (Exception e) {
+            log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$
+            		+ location + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$
+        }
+        //Write the leader board files
+        leaderWrite(Mining.inOrder(), SkillType.MINING); //$NON-NLS-1$
+        leaderWrite(WoodCutting.inOrder(), SkillType.WOODCUTTING); //$NON-NLS-1$
+        leaderWrite(Repair.inOrder(), SkillType.REPAIR); //$NON-NLS-1$
+        leaderWrite(Unarmed.inOrder(), SkillType.UNARMED); //$NON-NLS-1$
+        leaderWrite(Herbalism.inOrder(), SkillType.HERBALISM); //$NON-NLS-1$
+        leaderWrite(Excavation.inOrder(), SkillType.EXCAVATION); //$NON-NLS-1$
+        leaderWrite(Archery.inOrder(), SkillType.ARCHERY); //$NON-NLS-1$
+        leaderWrite(Swords.inOrder(), SkillType.SWORDS); //$NON-NLS-1$
+        leaderWrite(Axes.inOrder(), SkillType.AXES); //$NON-NLS-1$
+        leaderWrite(Acrobatics.inOrder(), SkillType.ACROBATICS); //$NON-NLS-1$
+        leaderWrite(Taming.inOrder(), SkillType.TAMING); //$NON-NLS-1$
+        leaderWrite(PowerLevel.inOrder(), SkillType.ALL); //$NON-NLS-1$
+	}
+	public static void leaderWrite(PlayerStat[] ps, SkillType skillType)
+	{
+		String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
+		//CHECK IF THE FILE EXISTS
+		File theDir = new File(theLocation);
+		if(!theDir.exists())
+		{
+			//properties = new PropertiesFile(location);
+			FileWriter writer = null;
+			try {
+				writer = new FileWriter(theLocation);
+			} catch (Exception e) {
+				log.log(Level.SEVERE, "Exception while creating " + theLocation, e); //$NON-NLS-1$
+			} finally {
+				try {
+					if (writer != null) {
+						writer.close();
+					}
+				} catch (IOException e) {
+					log.log(Level.SEVERE, "Exception while closing writer for " + theLocation, e); //$NON-NLS-1$
+				}
+			}
+		} else {
+			try {
+	        	FileReader file = new FileReader(theLocation);
+	
+	    		//HERP
+	            BufferedReader in = new BufferedReader(file);
+	            StringBuilder writer = new StringBuilder();
+	            
+	        	for(PlayerStat p : ps)
+	        	{
+	        		if(p.name.equals("$mcMMO_DummyInfo")) //$NON-NLS-1$
+	        			continue;
+	        		if(p.statVal == 0)
+	        			continue;
+	        		writer.append(p.name + ":" + p.statVal); //$NON-NLS-1$
+	        		writer.append("\r\n");  //$NON-NLS-1$
+	        	}
+	        	
+	        	in.close();
+	        	//Write the new file
+	            FileWriter out = new FileWriter(theLocation);
+	            out.write(writer.toString());
+	            out.close();
+	        } catch (Exception e) {
+	                log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$
+	        }
+		}
+		//Create/open the file
+		//Loop through backward writing each player
+		//Close the file
+	}
+	
+	public static String[] retrieveInfo(String skillName, int pagenumber)
+	{
+		String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
+		try {
+        	FileReader file = new FileReader(theLocation);
+        	BufferedReader in = new BufferedReader(file);
+        	
+        	int destination = (pagenumber - 1) * 10; //How many lines to skip through
+        	int x = 0; //how many lines we've gone through
+        	int y = 0; //going through the lines
+        	String line = ""; //$NON-NLS-1$
+        	String[] info = new String[10]; //what to return
+        	while((line = in.readLine()) != null && y < 10)
+        	{
+        		x++;
+        		if(x >= destination && y < 10){
+        			info[y] = line.toString();
+        			y++;
+        		}
+        	}
+        	in.close();
+        	return info;
+        } catch (Exception e) {
+            log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$
+            		+ theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$
+        }
+        return null; //Shouldn't get here
+	}
+	public static void updateLeaderboard(PlayerStat ps, SkillType skillType)
+	{
+		if(LoadProperties.useMySQL)
+			return;
+		String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
+		try {
+        	//Open the file
+        	FileReader file = new FileReader(theLocation);
+            BufferedReader in = new BufferedReader(file);
+            StringBuilder writer = new StringBuilder();
+        	String line = ""; //$NON-NLS-1$
+        	Boolean inserted = false;
+        	//While not at the end of the file
+        	while((line = in.readLine()) != null)
+        	{
+        		//Insert the player into the line before it finds a smaller one
+        		if(Integer.valueOf(line.split(":")[1]) < ps.statVal && !inserted) //$NON-NLS-1$
+        		{
+        			writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
+        			inserted = true;
+        		}
+        		//Write anything that isn't the player already in the file so we remove the duplicate
+        		if(!line.split(":")[0].equalsIgnoreCase(ps.name)) //$NON-NLS-1$
+        		{
+                    writer.append(line).append("\r\n"); //$NON-NLS-1$
+        		}
+        	}
+        	
+        	if(!inserted)
+        	{
+    			writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
+        	}
+        	
+        	in.close();
+        	//Write the new file
+            FileWriter out = new FileWriter(theLocation);
+            out.write(writer.toString());
+            out.close();
+        } catch (Exception e) {
+                log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$
+        }
+	}
+}

+ 95 - 95
mcMMO/com/gmail/nossr50/Users.java → src/com/gmail/nossr50/Users.java

@@ -1,96 +1,96 @@
-package com.gmail.nossr50;
-
-import java.io.*;
-import java.util.Properties;
-import java.util.logging.Logger;
-import java.util.HashMap;
-
-import org.bukkit.entity.*;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-
-
-public class Users {
-    private static volatile Users instance;
-    protected static final Logger log = Logger.getLogger("Minecraft");
-    String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users";
-    String directory = "plugins/mcMMO/FlatFileStuff/";
-    String directoryb = "plugins/mcMMO/FlatFileStuff/Leaderboards/";
-    
-    //public static ArrayList<PlayerProfile> players;
-    public static HashMap<Player, PlayerProfile> players = new HashMap<Player, PlayerProfile>();
-    private Properties properties = new Properties();
-    
-    //To load
-    public void load() throws IOException {
-        properties.load(new FileInputStream(location));
-    }
-    //To save
-    public void save() 
-    {
-        try 
-        {
-	        properties.store(new FileOutputStream(location), null);
-	        }catch(IOException ex) {
-	        }
-    }
-    
-    public void loadUsers()
-    {
-    	new File(directory).mkdir();
-    	new File(directoryb).mkdir();
-        File theDir = new File(location);
-		if(!theDir.exists())
-		{
-			try {
-				FileWriter writer = new FileWriter(theDir);
-				writer.close();
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-    }
-
-	
-    public static void addUser(Player player)
-    {
-    	players.put(player, new PlayerProfile(player));
-    }
-    public static void clearUsers()
-    {
-    	players.clear();
-    }
-    public static HashMap<Player, PlayerProfile> getProfiles(){
-    	return players;
-    }
-    
-    public static void removeUser(Player player)
-    {    	
-    	PlayerProfile PP = Users.getProfile(player);
-    	
-    	if(PP != null)
-    	{
-	    	PP.save();
-	    	if(players.containsKey(player))
-	    		players.remove(player);
-    	}
-    }
-
-    public static PlayerProfile getProfile(Player player){
-    	if(players.get(player) != null)
-    		return players.get(player);
-    	else
-    	{
-    		players.put(player, new PlayerProfile(player));
-    		return players.get(player);
-    	}
-    }
-    
-    public static Users getInstance() {
-		if (instance == null) {
-			instance = new Users();
-		}
-		return instance;
-	}
-
+package com.gmail.nossr50;
+
+import java.io.*;
+import java.util.Properties;
+import java.util.logging.Logger;
+import java.util.HashMap;
+
+import org.bukkit.entity.*;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+
+
+public class Users {
+    private static volatile Users instance;
+    protected static final Logger log = Logger.getLogger("Minecraft");
+    String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users";
+    String directory = "plugins/mcMMO/FlatFileStuff/";
+    String directoryb = "plugins/mcMMO/FlatFileStuff/Leaderboards/";
+    
+    //public static ArrayList<PlayerProfile> players;
+    public static HashMap<Player, PlayerProfile> players = new HashMap<Player, PlayerProfile>();
+    private Properties properties = new Properties();
+    
+    //To load
+    public void load() throws IOException {
+        properties.load(new FileInputStream(location));
+    }
+    //To save
+    public void save() 
+    {
+        try 
+        {
+	        properties.store(new FileOutputStream(location), null);
+	        }catch(IOException ex) {
+	        }
+    }
+    
+    public void loadUsers()
+    {
+    	new File(directory).mkdir();
+    	new File(directoryb).mkdir();
+        File theDir = new File(location);
+		if(!theDir.exists())
+		{
+			try {
+				FileWriter writer = new FileWriter(theDir);
+				writer.close();
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+    }
+
+	
+    public static void addUser(Player player)
+    {
+    	players.put(player, new PlayerProfile(player));
+    }
+    public static void clearUsers()
+    {
+    	players.clear();
+    }
+    public static HashMap<Player, PlayerProfile> getProfiles(){
+    	return players;
+    }
+    
+    public static void removeUser(Player player)
+    {    	
+    	PlayerProfile PP = Users.getProfile(player);
+    	
+    	if(PP != null)
+    	{
+	    	PP.save();
+	    	if(players.containsKey(player))
+	    		players.remove(player);
+    	}
+    }
+
+    public static PlayerProfile getProfile(Player player){
+    	if(players.get(player) != null)
+    		return players.get(player);
+    	else
+    	{
+    		players.put(player, new PlayerProfile(player));
+    		return players.get(player);
+    	}
+    }
+    
+    public static Users getInstance() {
+		if (instance == null) {
+			instance = new Users();
+		}
+		return instance;
+	}
+
 }

+ 1587 - 1587
mcMMO/com/gmail/nossr50/command/Commands.java → src/com/gmail/nossr50/command/Commands.java

@@ -1,1587 +1,1587 @@
-package com.gmail.nossr50.command;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-import org.getspout.spoutapi.player.SpoutPlayer;
-
-import com.gmail.nossr50.Leaderboard;
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.m;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.mcPermissions;
-import com.gmail.nossr50.config.LoadProperties;
-import com.gmail.nossr50.datatypes.HUDType;
-import com.gmail.nossr50.datatypes.HUDmmo;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.locale.mcLocale;
-import com.gmail.nossr50.party.Party;
-import com.gmail.nossr50.skills.Skills;
-import com.gmail.nossr50.spout.SpoutStuff;
-
-public class Commands 
-{
-	//Setup some vars
-	public static final Logger log = Logger.getLogger("Minecraft"); 
-	public static boolean xpevent = false;
-	static int oldrate = LoadProperties.xpGainMultiplier;
-
-	
-	public static boolean isPlayer(String playerName){
-		for(Player herp :  Bukkit.getServer().getOnlinePlayers()){
-			if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	public static Player getPlayer(String playerName){
-		for(Player herp : Bukkit.getServer().getOnlinePlayers()){
-			if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){
-				return herp;
-			}
-		}
-		return null;
-	}
-	
-	public static boolean processCommands(CommandSender sender, Command command, String label, String[] args)
-	{
-		Player player = null;
-		PlayerProfile PP = null;
-		if(sender instanceof Player) 
-		{
-			player = (Player) sender;
-			PP = Users.getProfile(player);
-		}
-
-		String[] split = new String[args.length + 1];
-		split[0] = label;
-		for(int a = 0; a < args.length; a++){
-			split[a + 1] = args[a];
-		}
-		
-		//Check if the command is an MMO related help command
-		if(label.equalsIgnoreCase("taming") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillTaming").toLowerCase())){ 
-			float skillvalue = (float)PP.getSkillLevel(SkillType.TAMING);
-
-			String percentage = String.valueOf((skillvalue / 1000) * 100);
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillTaming")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainTaming")})); 
-			if(mcPermissions.getInstance().taming(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming1_0"), mcLocale.getString("m.EffectsTaming1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming2_0"), mcLocale.getString("m.EffectsTaming2_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming3_0"), mcLocale.getString("m.EffectsTaming3_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming4_0"), mcLocale.getString("m.EffectsTaming4_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming5_0"), mcLocale.getString("m.EffectsTaming5_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming6_0"), mcLocale.getString("m.EffectsTaming6_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			if(PP.getSkillLevel(SkillType.TAMING) < 100)
-				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming1")})); 
-			else
-				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming1_0"), mcLocale.getString("m.AbilBonusTaming1_1")}));  
-			if(PP.getSkillLevel(SkillType.TAMING) < 250)
-				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming2")})); 
-			else
-				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming2_0"), mcLocale.getString("m.AbilBonusTaming2_1")}));  
-			if(PP.getSkillLevel(SkillType.TAMING) < 500)
-				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming3")})); 
-			else
-				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming3_0"), mcLocale.getString("m.AbilBonusTaming3_1")}));  
-			if(PP.getSkillLevel(SkillType.TAMING) < 750)
-				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming4")})); 
-			else
-				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming4_0"), mcLocale.getString("m.AbilBonusTaming4_1")}));  
-			player.sendMessage(mcLocale.getString("m.TamingGoreChance", new Object[] {percentage})); 
-		}
-		else if(label.equalsIgnoreCase("woodcutting") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillWoodCutting").toLowerCase())){ 
-			float skillvalue = (float)PP.getSkillLevel(SkillType.WOODCUTTING);
-			int ticks = 2;
-			int x = PP.getSkillLevel(SkillType.WOODCUTTING);
-			while(x >= 50){
-				x-=50;
-				ticks++;
-			}
-			String percentage = String.valueOf((skillvalue / 1000) * 100);
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillWoodCutting")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainWoodCutting")})); 
-			if(mcPermissions.getInstance().woodcutting(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsWoodCutting1_0"), mcLocale.getString("m.EffectsWoodCutting1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsWoodCutting2_0"), mcLocale.getString("m.EffectsWoodCutting2_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsWoodCutting3_0"), mcLocale.getString("m.EffectsWoodCutting3_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			if(PP.getSkillLevel(SkillType.WOODCUTTING) < 100)
-				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockWoodCutting1")})); 
-			else
-				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusWoodCutting1_0"), mcLocale.getString("m.AbilBonusWoodCutting1_1")}));  
-			player.sendMessage(mcLocale.getString("m.WoodCuttingDoubleDropChance", new Object[] {percentage})); 
-			player.sendMessage(mcLocale.getString("m.WoodCuttingTreeFellerLength", new Object[] {ticks})); 
-		}
-		else if(label.equalsIgnoreCase("archery") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillArchery").toLowerCase())){ 
-			Integer rank = 0;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 50)
-				rank++;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 250)
-				rank++;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 575)
-				rank++;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 725)
-				rank++;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 1000)
-				rank++;
-			float skillvalue = (float)PP.getSkillLevel(SkillType.ARCHERY);
-			String percentage = String.valueOf((skillvalue / 1000) * 100);
-
-			int ignition = 20;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 200)
-				ignition+=20;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 400)
-				ignition+=20;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 600)
-				ignition+=20;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 800)
-				ignition+=20;
-			if(PP.getSkillLevel(SkillType.ARCHERY) >= 1000)
-				ignition+=20;
-
-			String percentagedaze;
-			if(PP.getSkillLevel(SkillType.ARCHERY) < 1000){
-				percentagedaze = String.valueOf((skillvalue / 2000) * 100);
-			} else {
-				percentagedaze = "50"; 
-			}
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillArchery")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainArchery")})); 
-			if(mcPermissions.getInstance().archery(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery1_0"), mcLocale.getString("m.EffectsArchery1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery2_0"), mcLocale.getString("m.EffectsArchery2_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery3_0"), mcLocale.getString("m.EffectsArchery3_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery4_0"), mcLocale.getString("m.EffectsArchery4_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.ArcheryDazeChance", new Object[] {percentagedaze})); 
-			player.sendMessage(mcLocale.getString("m.ArcheryRetrieveChance", new Object[] {percentage})); 
-			player.sendMessage(mcLocale.getString("m.ArcheryIgnitionLength", new Object[] {(ignition / 20)})); 
-			player.sendMessage(mcLocale.getString("m.ArcheryDamagePlus", new Object[] {rank})); 
-		}
-		else if(label.equalsIgnoreCase("axes") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillAxes"))){ 
-			String percentage;
-			float skillvalue = (float)PP.getSkillLevel(SkillType.AXES);
-			if(PP.getSkillLevel(SkillType.AXES) < 750){
-				percentage = String.valueOf((skillvalue / 1000) * 100);
-			} else {
-				percentage = "75"; 
-			}
-			int ticks = 2;
-			int x = PP.getSkillLevel(SkillType.AXES);
-			while(x >= 50){
-				x-=50;
-				ticks++;
-			}
-
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillAxes")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainAxes")})); 
-			if(mcPermissions.getInstance().axes(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAxes1_0"), mcLocale.getString("m.EffectsAxes1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAxes2_0"), mcLocale.getString("m.EffectsAxes2_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAxes3_0"), mcLocale.getString("m.EffectsAxes3_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.AxesCritChance", new Object[] {percentage})); 
-			if(PP.getSkillLevel(SkillType.AXES) < 500){
-				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockAxes1")})); 
-			} else {
-				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusAxes1_0"), mcLocale.getString("m.AbilBonusAxes1_1")}));  
-			}
-			player.sendMessage(mcLocale.getString("m.AxesSkullLength", new Object[] {ticks})); 
-		}
-		else if(label.equalsIgnoreCase("swords") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillSwords").toLowerCase())){ 
-			int bleedrank = 2;
-			String percentage, parrypercentage = null, counterattackpercentage;
-			float skillvalue = (float)PP.getSkillLevel(SkillType.SWORDS);
-			if(PP.getSkillLevel(SkillType.SWORDS) < 750){
-				percentage = String.valueOf((skillvalue / 1000) * 100);
-			} else {
-				percentage = "75"; 
-			}
-			if(skillvalue >= 750)
-				bleedrank+=1;
-
-			if(PP.getSkillLevel(SkillType.SWORDS) <= 900){
-				parrypercentage = String.valueOf((skillvalue / 3000) * 100);
-			} else {
-				parrypercentage = "30"; 
-			}
-
-			if(PP.getSkillLevel(SkillType.SWORDS) <= 600){
-				counterattackpercentage = String.valueOf((skillvalue / 2000) * 100);
-			} else {
-				counterattackpercentage = "30"; 
-			}
-
-			int ticks = 2;
-			int x = PP.getSkillLevel(SkillType.SWORDS);
-			while(x >= 50){
-				x-=50;
-				ticks++;
-			}
-
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillSwords")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainSwords")})); 
-			if(mcPermissions.getInstance().swords(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords1_0"), mcLocale.getString("m.EffectsSwords1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords2_0"), mcLocale.getString("m.EffectsSwords2_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords3_0"), mcLocale.getString("m.EffectsSwords3_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords4_0"), mcLocale.getString("m.EffectsSwords4_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords5_0"), mcLocale.getString("m.EffectsSwords5_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.SwordsCounterAttChance", new Object[] {counterattackpercentage})); 
-			player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] {bleedrank})); 
-			player.sendMessage(mcLocale.getString("m.SwordsTickNote")); 
-			player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] {percentage})); 
-			player.sendMessage(mcLocale.getString("m.SwordsParryChance", new Object[] {parrypercentage})); 
-			player.sendMessage(mcLocale.getString("m.SwordsSSLength", new Object[] {ticks})); 
-
-		}
-		else if(label.equalsIgnoreCase("acrobatics") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillAcrobatics").toLowerCase())){ 
-			String dodgepercentage;
-			float skillvalue = (float)PP.getSkillLevel(SkillType.ACROBATICS);
-			String percentage = String.valueOf((skillvalue / 1000) * 100);
-			String gracepercentage = String.valueOf(((skillvalue / 1000) * 100) * 2);
-			if(PP.getSkillLevel(SkillType.ACROBATICS) <= 800){
-				dodgepercentage = String.valueOf((skillvalue / 4000 * 100));
-			} else {
-				dodgepercentage = "20"; 
-			}
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillAcrobatics")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainAcrobatics")})); 
-			if(mcPermissions.getInstance().acrobatics(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAcrobatics1_0"), mcLocale.getString("m.EffectsAcrobatics1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAcrobatics2_0"), mcLocale.getString("m.EffectsAcrobatics2_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAcrobatics3_0"), mcLocale.getString("m.EffectsAcrobatics3_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.AcrobaticsRollChance", new Object[] {percentage})); 
-			player.sendMessage(mcLocale.getString("m.AcrobaticsGracefulRollChance", new Object[] {gracepercentage})); 
-			player.sendMessage(mcLocale.getString("m.AcrobaticsDodgeChance", new Object[] {dodgepercentage})); 
-		}
-		else if(label.equalsIgnoreCase("mining") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillMining"))){ 
-			float skillvalue = (float)PP.getSkillLevel(SkillType.MINING);
-			String percentage = String.valueOf((skillvalue / 1000) * 100);
-			int ticks = 2;
-			int x = PP.getSkillLevel(SkillType.MINING);
-			while(x >= 50){
-				x-=50;
-				ticks++;
-			}
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillMining")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainMining")})); 
-			if(mcPermissions.getInstance().mining(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsMining1_0"), mcLocale.getString("m.EffectsMining1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsMining2_0"), mcLocale.getString("m.EffectsMining2_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.MiningDoubleDropChance", new Object[] {percentage})); 
-			player.sendMessage(mcLocale.getString("m.MiningSuperBreakerLength", new Object[] {ticks})); 
-		}
-		else if(label.equalsIgnoreCase("repair") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillRepair").toLowerCase())){ 
-			float skillvalue = (float)PP.getSkillLevel(SkillType.REPAIR);
-			String percentage = String.valueOf((skillvalue / 1000) * 100);
-			String repairmastery = String.valueOf((skillvalue / 500) * 100);
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillRepair")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainRepair")})); 
-			if(mcPermissions.getInstance().repair(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair1_0"), mcLocale.getString("m.EffectsRepair1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair2_0"), mcLocale.getString("m.EffectsRepair2_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair3_0"), mcLocale.getString("m.EffectsRepair3_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair4_0", new Object[]{LoadProperties.repairdiamondlevel}), mcLocale.getString("m.EffectsRepair4_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.RepairRepairMastery", new Object[] {repairmastery})); 
-			player.sendMessage(mcLocale.getString("m.RepairSuperRepairChance", new Object[] {percentage})); 
-		}
-		else if(label.equalsIgnoreCase("unarmed")){ 
-			String percentage, arrowpercentage;
-			float skillvalue = (float)PP.getSkillLevel(SkillType.UNARMED);
-
-			if(PP.getSkillLevel(SkillType.UNARMED) < 1000){
-				percentage = String.valueOf((skillvalue / 4000) * 100);
-			} else {
-				percentage = "25"; 
-			}
-
-			if(PP.getSkillLevel(SkillType.UNARMED) < 1000){
-				arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2);
-			} else {
-				arrowpercentage = "50"; 
-			}
-
-
-			int ticks = 2;
-			int x = PP.getSkillLevel(SkillType.UNARMED);
-			while(x >= 50){
-				x-=50;
-				ticks++;
-			}
-
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillUnarmed")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainUnarmed")})); 
-			if(mcPermissions.getInstance().unarmed(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed1_0"), mcLocale.getString("m.EffectsUnarmed1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed2_0"), mcLocale.getString("m.EffectsUnarmed2_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed3_0"), mcLocale.getString("m.EffectsUnarmed3_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed4_0"), mcLocale.getString("m.EffectsUnarmed4_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed5_0"), mcLocale.getString("m.EffectsUnarmed5_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.UnarmedArrowDeflectChance", new Object[] {arrowpercentage})); 
-			player.sendMessage(mcLocale.getString("m.UnarmedDisarmChance", new Object[] {percentage})); 
-			if(PP.getSkillLevel(SkillType.UNARMED) < 250){
-				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockUnarmed1")})); 
-			} else if(PP.getSkillLevel(SkillType.UNARMED) >= 250 && PP.getSkillLevel(SkillType.UNARMED) < 500){
-				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusUnarmed1_0"), mcLocale.getString("m.AbilBonusUnarmed1_1")}));  
-				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockUnarmed2")})); 
-			} else {
-				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusUnarmed2_0"), mcLocale.getString("m.AbilBonusUnarmed2_1")}));  
-			}
-			player.sendMessage(mcLocale.getString("m.UnarmedBerserkLength", new Object[] {ticks})); 
-		}
-		else if(label.equalsIgnoreCase("herbalism") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillHerbalism").toLowerCase())){ 
-			int rank = 0;
-			if(PP.getSkillLevel(SkillType.HERBALISM) >= 50)
-				rank++;
-			if (PP.getSkillLevel(SkillType.HERBALISM) >= 150)
-				rank++;
-			if (PP.getSkillLevel(SkillType.HERBALISM) >= 250)
-				rank++;
-			if (PP.getSkillLevel(SkillType.HERBALISM) >= 350)
-				rank++;
-			if (PP.getSkillLevel(SkillType.HERBALISM) >= 450)
-				rank++;
-			if (PP.getSkillLevel(SkillType.HERBALISM) >= 550)
-				rank++;
-			if (PP.getSkillLevel(SkillType.HERBALISM) >= 650)
-				rank++;
-			if (PP.getSkillLevel(SkillType.HERBALISM) >= 750)
-				rank++;
-			int bonus = 0;
-			if(PP.getSkillLevel(SkillType.HERBALISM) >= 200)
-				bonus++;
-			if(PP.getSkillLevel(SkillType.HERBALISM) >= 400)
-				bonus++;
-			if(PP.getSkillLevel(SkillType.HERBALISM) >= 600)
-				bonus++;
-
-			int ticks = 2;
-			int x = PP.getSkillLevel(SkillType.HERBALISM);
-			while(x >= 50){
-				x-=50;
-				ticks++;
-			}
-
-			float skillvalue = (float)PP.getSkillLevel(SkillType.HERBALISM);
-			String percentage = String.valueOf((skillvalue / 1000) * 100);
-			String gpercentage = String.valueOf((skillvalue / 1500) * 100);
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillHerbalism")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainHerbalism")})); 
-			if(mcPermissions.getInstance().herbalism(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism1_0"), mcLocale.getString("m.EffectsHerbalism1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism2_0"), mcLocale.getString("m.EffectsHerbalism2_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism3_0"), mcLocale.getString("m.EffectsHerbalism3_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism4_0"), mcLocale.getString("m.EffectsHerbalism4_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism5_0"), mcLocale.getString("m.EffectsHerbalism5_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.HerbalismGreenTerraLength", new Object[] {ticks})); 
-			player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbChance", new Object[] {gpercentage})); 
-			player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbStage", new Object[] {bonus})); 
-			player.sendMessage(mcLocale.getString("m.HerbalismDoubleDropChance", new Object[] {percentage})); 
-			player.sendMessage(mcLocale.getString("m.HerbalismFoodPlus", new Object[] {rank})); 
-		}
-
-		else if(label.equalsIgnoreCase("excavation") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillExcavation").toLowerCase())) 
-		{
-			int ticks = 2;
-			int x = PP.getSkillLevel(SkillType.EXCAVATION);
-			while(x >= 50){
-				x-=50;
-				ticks++;
-			}
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillExcavation")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainExcavation")})); 
-			if(mcPermissions.getInstance().excavation(player))
-				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION)}));
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation1_0"), mcLocale.getString("m.EffectsExcavation1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation2_0"), mcLocale.getString("m.EffectsExcavation2_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] {ticks})); 
-		}
-
-		else if(label.equalsIgnoreCase("sorcery") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillSorcery").toLowerCase())) 
-		{
-			/*
-	        player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillExcavation")})); 
-			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainExcavation")})); 
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation1_0"), mcLocale.getString("m.EffectsExcavation1_1")}));  
-			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation2_0"), mcLocale.getString("m.EffectsExcavation2_1")}));  
-			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
-			player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] {ticks})); 
-			 */
-		}
-
-		else if(LoadProperties.mcmmoEnable && label.equalsIgnoreCase(LoadProperties.mcmmo))
-		{ 
-			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"mcMMO"+ChatColor.RED+"[]-----");
-			String description = mcLocale.getString("mcMMO.Description", new Object[] {LoadProperties.mcc});
-			String[] mcSplit = description.split(",");
-			
-			for(String x : mcSplit)
-			{
-				player.sendMessage(x);
-			}
-			if(LoadProperties.spoutEnabled && player instanceof SpoutPlayer)
-			{
-				SpoutPlayer sPlayer = (SpoutPlayer)player;
-				if(LoadProperties.donateMessage)
-					sPlayer.sendNotification("[mcMMO] Donate!", "Paypal nossr50@gmail.com", Material.CAKE);
-			}
-			else
-			{
-				if(LoadProperties.donateMessage)
-					player.sendMessage(ChatColor.GREEN+"If you like my work you can donate via Paypal: nossr50@gmail.com");
-			}
-		}
-		else if(LoadProperties.mccEnable && label.equalsIgnoreCase(LoadProperties.mcc))
-		{ 
-			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.YELLOW+"mcMMO Commands"+ChatColor.RED+"[]---");   
-			if(mcPermissions.getInstance().party(player)){
-				player.sendMessage(mcLocale.getString("m.mccPartyCommands")); 
-				player.sendMessage(LoadProperties.party+" "+mcLocale.getString("m.mccParty"));   
-				player.sendMessage(LoadProperties.party+" q "+mcLocale.getString("m.mccPartyQ"));
-				if(mcPermissions.getInstance().partyChat(player))
-					player.sendMessage("/p "+mcLocale.getString("m.mccPartyToggle"));  
-				player.sendMessage(LoadProperties.invite+" "+mcLocale.getString("m.mccPartyInvite"));   
-				player.sendMessage(LoadProperties.accept+" "+mcLocale.getString("m.mccPartyAccept"));   
-				if(mcPermissions.getInstance().partyTeleport(player))
-					player.sendMessage(LoadProperties.ptp+" "+mcLocale.getString("m.mccPartyTeleport"));   
-			}
-			player.sendMessage(mcLocale.getString("m.mccOtherCommands")); 
-			player.sendMessage(LoadProperties.stats+ChatColor.RED+" "+mcLocale.getString("m.mccStats"));  
-			player.sendMessage("/mctop <skillname> <page> "+ChatColor.RED+mcLocale.getString("m.mccLeaderboards"));  
-			if(mcPermissions.getInstance().mySpawn(player)){
-				player.sendMessage(LoadProperties.myspawn+" "+ChatColor.RED+mcLocale.getString("m.mccMySpawn"));   
-				player.sendMessage(LoadProperties.clearmyspawn+" "+ChatColor.RED+mcLocale.getString("m.mccClearMySpawn"));   
-			}
-			if(mcPermissions.getInstance().mcAbility(player))
-				player.sendMessage(LoadProperties.mcability+ChatColor.RED+" "+mcLocale.getString("m.mccToggleAbility"));  
-			if(mcPermissions.getInstance().adminChat(player)){
-				player.sendMessage("/a "+ChatColor.RED+mcLocale.getString("m.mccAdminToggle"));  
-			}
-			if(mcPermissions.getInstance().whois(player))
-				player.sendMessage(LoadProperties.whois+" "+mcLocale.getString("m.mccWhois"));   
-			if(mcPermissions.getInstance().mmoedit(player)){
-				//player.sendMessage(LoadProperties.mmoedit+" [skill] [newvalue] "+ChatColor.RED+"Modify the designated skill value");
-				player.sendMessage(LoadProperties.mmoedit+mcLocale.getString("m.mccMmoedit"));   
-			}
-			if(mcPermissions.getInstance().mcgod(player))
-				player.sendMessage(LoadProperties.mcgod+ChatColor.RED+" "+mcLocale.getString("m.mccMcGod"));  
-			player.sendMessage(mcLocale.getString("m.mccSkillInfo"));  
-			player.sendMessage(LoadProperties.mcmmo+" "+mcLocale.getString("m.mccModDescription"));   
-		}
-		else if(LoadProperties.mcabilityEnable && mcPermissions.permissionsEnabled && label.equalsIgnoreCase(LoadProperties.mcability)){ 
-			if(PP.getAbilityUse()){
-				player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOff")); 
-				PP.toggleAbilityUse();
-			} else {
-				player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOn")); 
-				PP.toggleAbilityUse();
-			}
-		}
-		else if (LoadProperties.xprateEnable && label.equalsIgnoreCase(LoadProperties.xprate))
-		{
-			if(sender instanceof Player)
-			{
-				if(!mcPermissions.getInstance().admin(player))
-				{
-					player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-					return true;
-				}
-				if(split.length <= 1)
-				{
-					player.sendMessage(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate}));
-					player.sendMessage(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate}));
-				}
-				if(split.length == 2 && split[1].equalsIgnoreCase("reset"))
-				{
-					if(xpevent)
-					{
-						for(Player x : Bukkit.getServer().getOnlinePlayers())
-							x.sendMessage(mcLocale.getString("Commands.xprate.over"));
-						xpevent = !xpevent;
-						LoadProperties.xpGainMultiplier = oldrate;
-					} else
-					{
-						LoadProperties.xpGainMultiplier = oldrate;
-					}
-				}
-				if(split.length >= 2 && m.isInt(split[1]))
-				{
-					oldrate = LoadProperties.xpGainMultiplier;
-					
-					if(split.length >= 3 && (split[2].equalsIgnoreCase("true") || split[2].equalsIgnoreCase("false")))
-					{
-						if(split[2].equalsIgnoreCase("true"))
-							xpevent = true;
-						else
-							xpevent = false;
-					} else
-					{
-						player.sendMessage(mcLocale.getString("Commands.xprate.proper3"));
-						return true;
-					}
-					LoadProperties.xpGainMultiplier = m.getInt(split[1]);
-					if(xpevent = true)
-						for(Player x : Bukkit.getServer().getOnlinePlayers())
-						{
-							x.sendMessage(mcLocale.getString("Commands.xprate.started"));
-							x.sendMessage(mcLocale.getString("Commands.xprate.started2", new Object[] {LoadProperties.xpGainMultiplier}));
-						}
-				}
-			} else
-			{
-				if(split.length <= 1)
-				{
-					System.out.println(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate}));
-					System.out.println(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate}));
-				}
-				
-				if(split.length == 2 && split[1].equalsIgnoreCase("reset"))
-				{
-					if(xpevent)
-					{
-						for(Player x : Bukkit.getServer().getOnlinePlayers())
-							x.sendMessage(mcLocale.getString("Commands.xprate.over"));
-						xpevent = !xpevent;
-						LoadProperties.xpGainMultiplier = oldrate;
-					} else
-					{
-						LoadProperties.xpGainMultiplier = oldrate;
-					}
-				}
-				
-				if(split.length >= 2 && m.isInt(split[1]))
-				{
-					oldrate = LoadProperties.xpGainMultiplier;
-					
-					if(split.length >= 3 && (split[2].equalsIgnoreCase("true") || split[2].equalsIgnoreCase("false")))
-					{
-						if(split[2].equalsIgnoreCase("true"))
-							xpevent = true;
-						else
-							xpevent = false;
-					} else
-					{
-						System.out.println(mcLocale.getString("Commands.xprate.proper3"));
-						return true;
-					}
-					LoadProperties.xpGainMultiplier = m.getInt(split[1]);
-					if(xpevent = true)
-						for(Player x : Bukkit.getServer().getOnlinePlayers())
-						{
-							x.sendMessage(ChatColor.GOLD+"XP EVENT FOR mcMMO HAS STARTED!");
-							x.sendMessage(ChatColor.GOLD+"mcMMO XP RATE IS NOW "+LoadProperties.xpGainMultiplier+"x!!");
-						}
-				}
-			}
-		}
-		/*
-		 * FFS -> MySQL
-		 */
-		else if(label.equalsIgnoreCase("mmoupdate"))
-		{
-			if(!mcPermissions.getInstance().admin(player))
-			{
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-			player.sendMessage(ChatColor.GRAY+"Starting conversion..."); 
-			Users.clearUsers();
-			m.convertToMySQL();
-			for(Player x : Bukkit.getServer().getOnlinePlayers())
-			{
-				Users.addUser(x);
-			}
-			player.sendMessage(ChatColor.GREEN+"Conversion finished!"); 
-		}
-
-		/*
-		 * LEADER BOARD COMMAND
-		 */
-		else if(LoadProperties.mctopEnable && label.equalsIgnoreCase(LoadProperties.mctop)){ 
-
-			if(LoadProperties.useMySQL == false){
-				/*
-				 * POWER LEVEL INFO RETRIEVAL
-				 */
-				if(split.length == 1){
-					int p = 1;
-					String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); 
-					player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard"));
-					int n = 1 * p; //Position
-					for(String x : info){
-						if(x != null){
-							String digit = String.valueOf(n);
-							if(n < 10)
-								digit ="0"+String.valueOf(n); 
-							String[] splitx = x.split(":"); 
-							//Format: 1. Playername - skill value
-							player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);  
-							n++;
-						}
-					}
-				}
-				if(split.length >= 2 && m.isInt(split[1])){
-					int p = 1;
-					//Grab page value if specified
-					if(split.length >= 2){
-						if(m.isInt(split[1])){
-							p = Integer.valueOf(split[1]);
-						}
-					}
-					int pt = p;
-					if(p > 1){
-						pt -= 1;
-						pt += (pt * 10);
-						pt = 10;
-					}
-					String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); 
-					player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); 
-					int n = 1 * pt; //Position
-					for(String x : info){
-						if(x != null){
-							String digit = String.valueOf(n);
-							if(n < 10)
-								digit ="0"+String.valueOf(n); 
-							String[] splitx = x.split(":"); 
-							//Format: 1. Playername - skill value
-							player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);  
-							n++;
-						}
-					}
-				}
-				/*
-				 * SKILL SPECIFIED INFO RETRIEVAL
-				 */
-				if(split.length >= 2 && Skills.isSkill(split[1]))
-				{
-					int p = 1;
-					//Grab page value if specified
-					if(split.length >= 3)
-					{
-						if(m.isInt(split[2])){
-							p = Integer.valueOf(split[2]);
-						}
-					}
-					int pt = p;
-					if(p > 1){
-						pt -= 1;
-						pt += (pt * 10);
-						pt = 10;
-					}
-					String firstLetter = split[1].substring(0,1);  // Get first letter
-					String remainder   = split[1].substring(1);    // Get remainder of word.
-					String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
-
-					String[] info = Leaderboard.retrieveInfo(split[1].toUpperCase(), p);
-					player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] {capitalized}));  
-					int n = 1 * pt; //Position
-					for(String x : info)
-					{
-						if(x != null)
-						{
-							String digit = String.valueOf(n);
-							if(n < 10)
-								digit ="0"+String.valueOf(n); 
-							String[] splitx = x.split(":"); 
-							//Format: 1. Playername - skill value
-							player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);  
-							n++;
-						}
-					}
-				}
-			} else {
-				/*
-				 * MYSQL LEADERBOARDS
-				 */
-				String powerlevel = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics"; 
-				if(split.length >= 2 && Skills.isSkill(split[1])){
-					/*
-					 * Create a nice consistent capitalized leaderboard name
-					 */
-					String lowercase = split[1].toLowerCase(); //For the query
-					String firstLetter = split[1].substring(0,1); //Get first letter
-					String remainder   = split[1].substring(1); //Get remainder of word.
-					String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
-
-					player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] {capitalized}));  
-					if(split.length >= 3 && m.isInt(split[2])){
-						int n = 1; //For the page number
-						int n2 = Integer.valueOf(split[2]);
-						if(n2 > 1){
-							//Figure out the 'page' here
-							n = 10;
-							n = n * (n2-1);
-						}
-						//If a page number is specified
-						HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT "+lowercase+", user_id FROM "  
-								+LoadProperties.MySQLtablePrefix+"skills WHERE "+lowercase+" > 0 ORDER BY `"+LoadProperties.MySQLtablePrefix+"skills`.`"+lowercase+"` DESC ");    
-
-						for(int i=n;i<=n+10;i++){
-							if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)   
-								break;
-							HashMap<Integer, ArrayList<String>> username =  mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");   
-							player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));  
-						}
-						return true;
-					}
-					//If no page number is specified
-					HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT "+lowercase+", user_id FROM "  
-							+LoadProperties.MySQLtablePrefix+"skills WHERE "+lowercase+" > 0 ORDER BY `"+LoadProperties.MySQLtablePrefix+"skills`.`"+lowercase+"` DESC ");    
-					for(int i=1;i<=10;i++){ //i<=userslist.size()
-						if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)   
-							break;
-						HashMap<Integer, ArrayList<String>> username =  mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");   
-						player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));  
-					}
-					return true;
-				}
-				if(split.length >= 1){
-					player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); 
-					if(split.length >= 2 && m.isInt(split[1])){
-						int n = 1; //For the page number
-						int n2 = Integer.valueOf(split[1]);
-						if(n2 > 1){
-							//Figure out the 'page' here
-							n = 10;
-							n = n * (n2-1);
-						}
-						//If a page number is specified
-						HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT "+powerlevel+", user_id FROM "  
-								+LoadProperties.MySQLtablePrefix+"skills WHERE "+powerlevel+" > 0 ORDER BY taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics DESC ");  
-						for(int i=n;i<=n+10;i++){
-							if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)   
-								break;
-							HashMap<Integer, ArrayList<String>> username =  mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");   
-							player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));  
-						}
-						return true;
-					}
-					HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics, user_id FROM " 
-							+LoadProperties.MySQLtablePrefix+"skills WHERE "+powerlevel+" > 0 ORDER BY taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics DESC ");  
-					for(int i=1;i<=10;i++){
-						if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)   
-							break;
-						HashMap<Integer, ArrayList<String>> username =  mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");   
-						player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));  
-						//System.out.println(username.get(1).get(0));
-						//System.out.println("Mining : " + userslist.get(i).get(0) + ", User id : " + userslist.get(i).get(1));
-					}
-				}
-			}
-		}
-
-		else if(LoadProperties.mcrefreshEnable && label.equalsIgnoreCase(LoadProperties.mcrefresh)){ 
-
-			if(!mcPermissions.getInstance().mcrefresh(player)){
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-			if(split.length >= 2 && isPlayer(split[1])){
-				player.sendMessage("You have refreshed "+split[1]+"'s cooldowns!");  
-				player = getPlayer(split[1]);
-			}
-			/*
-			 * PREP MODES
-			 */
-			PP = Users.getProfile(player);
-			PP.setRecentlyHurt((long) 0);
-			PP.setHoePreparationMode(false);
-			PP.setAxePreparationMode(false);
-			PP.setFistsPreparationMode(false);
-			PP.setSwordsPreparationMode(false);
-			PP.setPickaxePreparationMode(false);
-			/*
-			 * GREEN TERRA
-			 */
-			PP.setGreenTerraMode(false);
-			PP.setGreenTerraDeactivatedTimeStamp((long) 0);
-
-			/*
-			 * GIGA DRILL BREAKER
-			 */
-			PP.setGigaDrillBreakerMode(false);
-			PP.setGigaDrillBreakerDeactivatedTimeStamp((long) 0);
-			/*
-			 * SERRATED STRIKE
-			 */
-			PP.setSerratedStrikesMode(false);
-			PP.setSerratedStrikesDeactivatedTimeStamp((long) 0);
-			/*
-			 * SUPER BREAKER
-			 */
-			PP.setSuperBreakerMode(false);
-			PP.setSuperBreakerDeactivatedTimeStamp((long) 0);
-			/*
-			 * TREE FELLER
-			 */
-			PP.setTreeFellerMode(false);
-			PP.setTreeFellerDeactivatedTimeStamp((long) 0);
-			/*
-			 * BERSERK
-			 */
-			PP.setBerserkMode(false);
-			PP.setBerserkDeactivatedTimeStamp((long)0);
-
-			player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesRefreshed")); 
-		}
-		/*
-		 * GODMODE COMMAND
-		 */
-		else if(LoadProperties.mcgodEnable && label.equalsIgnoreCase(LoadProperties.mcgod))
-		{ 
-			if(mcPermissions.permissionsEnabled)
-			{
-				if(!mcPermissions.getInstance().mcgod(player))
-				{
-					player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-					return true;
-				}
-				if(PP.getGodMode())
-				{
-					player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeDisabled")); 
-					PP.toggleGodMode();
-				} else 
-				{
-					player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeEnabled")); 
-					PP.toggleGodMode();
-				}
-			}
-		}
-		else if(LoadProperties.clearmyspawnEnable && LoadProperties.enableMySpawn && label.equalsIgnoreCase(LoadProperties.clearmyspawn) && mcPermissions.getInstance().mySpawn(player))
-		{ 
-			double x = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getX();
-			double y = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getY();
-			double z = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getZ();
-			String worldname = Bukkit.getServer().getWorlds().get(0).getName();
-			PP.setMySpawn(x, y, z, worldname);
-			player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnCleared")); 
-		}
-		else if(LoadProperties.mmoeditEnable && mcPermissions.permissionsEnabled && label.equalsIgnoreCase(""+LoadProperties.mmoedit))
-		{ 
-
-			if(!mcPermissions.getInstance().mmoedit(player))
-			{
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-			if(split.length < 3)
-			{
-				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.mmoedit+" playername skillname newvalue");  
-				return true;
-			}
-			if(split.length == 4)
-			{
-				if(isPlayer(split[1]) && m.isInt(split[3]) && Skills.isSkill(split[2]))
-				{
-					int newvalue = Integer.valueOf(split[3]);
-					Users.getProfile(getPlayer(split[1])).modifyskill(Skills.getSkillType(split[2]), newvalue);
-					player.sendMessage(ChatColor.RED+split[2]+" has been modified."); 
-				}
-			}
-			else if(split.length == 3)
-			{
-				if(m.isInt(split[2]) && Skills.isSkill(split[1]))
-				{
-					int newvalue = Integer.valueOf(split[2]);
-					PP.modifyskill(Skills.getSkillType(split[1]), newvalue);
-					player.sendMessage(ChatColor.RED+split[1]+" has been modified."); 
-				}
-			} else 
-			{
-				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.mmoedit+" playername skillname newvalue");  
-			}
-		}
-		/*
-		 * ADD EXPERIENCE COMMAND
-		 */
-		else if(LoadProperties.addxpEnable && mcPermissions.permissionsEnabled && label.equalsIgnoreCase(LoadProperties.addxp)){ 
-
-			if(!mcPermissions.getInstance().mmoedit(player)){
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-			if(split.length < 3){
-				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.addxp+" playername skillname xp");  
-				return true;
-			}
-			if(split.length == 4){
-				if(isPlayer(split[1]) && m.isInt(split[3]) && Skills.isSkill(split[2]))
-				{
-					int newvalue = Integer.valueOf(split[3]);
-					Users.getProfile(getPlayer(split[1])).addXP(Skills.getSkillType(split[2]), newvalue);
-					getPlayer(split[1]).sendMessage(ChatColor.GREEN+"Experience granted!"); 
-					player.sendMessage(ChatColor.RED+split[2]+" has been modified."); 
-					Skills.XpCheckAll(getPlayer(split[1]));
-				}
-			}
-			else if(split.length == 3 && m.isInt(split[2]) && Skills.isSkill(split[1]))
-			{
-				int newvalue = Integer.valueOf(split[2]);
-				Users.getProfile(player).addXP(Skills.getSkillType(split[1]), newvalue);
-				player.sendMessage(ChatColor.RED+split[1]+" has been modified."); 
-			} else {
-				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.addxp+" playername skillname xp");  
-			}
-		}
-		else if(LoadProperties.ptpEnable && label.equalsIgnoreCase(LoadProperties.ptp) && PP.inParty())
-		{
-			if(!mcPermissions.getInstance().partyTeleport(player))
-			{
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-			if(split.length < 2)
-			{
-				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.ptp+" <playername>");  
-				return true;
-			}
-			if(!isPlayer(split[1]))
-			{
-				player.sendMessage("That is not a valid player"); 
-			}
-			if(isPlayer(split[1]))
-			{
-				Player target = getPlayer(split[1]);
-				PlayerProfile PPt = Users.getProfile(target);
-				if(PP.getParty().equals(PPt.getParty()))
-				{
-					player.teleport(target);
-					player.sendMessage(ChatColor.GREEN+"You have teleported to "+target.getName()); 
-					target.sendMessage(ChatColor.GREEN+player.getName() + " has teleported to you."); 
-				}
-			}
-		}
-		/*
-		 * WHOIS COMMAND
-		 */
-		else if(LoadProperties.whoisEnable && label.equalsIgnoreCase(LoadProperties.whois) && mcPermissions.getInstance().whois(player)){ 
-			if(split.length < 2){
-				player.sendMessage(ChatColor.RED + "Proper usage is /"+LoadProperties.whois+" <playername>");  
-				return true;
-			}
-			//if split[1] is a player
-			if(isPlayer(split[1]))
-			{
-				Player target = getPlayer(split[1]);
-				PlayerProfile PPt = Users.getProfile(target);
-
-				player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~"); 
-				player.sendMessage(target.getName());
-				if(PPt.inParty())
-					player.sendMessage("Party: "+PPt.getParty()); 
-				player.sendMessage("Health: "+target.getHealth()+ChatColor.GRAY+" (20 is full health)");  
-				player.sendMessage("OP: " + target.isOp()); 
-				player.sendMessage(ChatColor.GREEN+"mcMMO Stats for "+ChatColor.YELLOW+target.getName()); 
-
-				player.sendMessage(ChatColor.GOLD+"-=GATHERING SKILLS=-");
-				if(mcPermissions.getInstance().excavation(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PPt.getSkillLevel(SkillType.EXCAVATION), PPt.getSkillXpLevel(SkillType.EXCAVATION), PPt.getXpToLevel(SkillType.EXCAVATION)));
-				if(mcPermissions.getInstance().herbalism(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PPt.getSkillLevel(SkillType.HERBALISM), PPt.getSkillXpLevel(SkillType.HERBALISM), PPt.getXpToLevel(SkillType.HERBALISM)));
-				if(mcPermissions.getInstance().mining(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PPt.getSkillLevel(SkillType.MINING), PPt.getSkillXpLevel(SkillType.MINING), PPt.getXpToLevel(SkillType.MINING)));
-				if(mcPermissions.getInstance().woodcutting(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PPt.getSkillLevel(SkillType.WOODCUTTING), PPt.getSkillXpLevel(SkillType.WOODCUTTING), PPt.getXpToLevel(SkillType.WOODCUTTING)));
-
-				player.sendMessage(ChatColor.GOLD+"-=COMBAT SKILLS=-");
-				if(mcPermissions.getInstance().axes(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PPt.getSkillLevel(SkillType.AXES), PPt.getSkillXpLevel(SkillType.AXES), PPt.getXpToLevel(SkillType.AXES)));
-				if(mcPermissions.getInstance().archery(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PPt.getSkillLevel(SkillType.ARCHERY), PPt.getSkillXpLevel(SkillType.ARCHERY), PPt.getXpToLevel(SkillType.ARCHERY)));
-				//if(mcPermissions.getInstance().sorcery(target))
-				//player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkill("sorcery"), PPt.getSkill("sorceryXP"), PPt.getXpToLevel("excavation")));
-				if(mcPermissions.getInstance().swords(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PPt.getSkillLevel(SkillType.SWORDS), PPt.getSkillXpLevel(SkillType.SWORDS), PPt.getXpToLevel(SkillType.SWORDS)));
-				if(mcPermissions.getInstance().taming(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PPt.getSkillLevel(SkillType.TAMING), PPt.getSkillXpLevel(SkillType.TAMING), PPt.getXpToLevel(SkillType.TAMING)));
-				if(mcPermissions.getInstance().unarmed(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PPt.getSkillLevel(SkillType.UNARMED), PPt.getSkillXpLevel(SkillType.UNARMED), PPt.getXpToLevel(SkillType.UNARMED)));
-
-				player.sendMessage(ChatColor.GOLD+"-=MISC SKILLS=-");
-				if(mcPermissions.getInstance().acrobatics(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PPt.getSkillLevel(SkillType.ACROBATICS), PPt.getSkillXpLevel(SkillType.ACROBATICS), PPt.getXpToLevel(SkillType.ACROBATICS)));
-				if(mcPermissions.getInstance().repair(target))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PPt.getSkillLevel(SkillType.REPAIR), PPt.getSkillXpLevel(SkillType.REPAIR), PPt.getXpToLevel(SkillType.REPAIR)));	
-
-				player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") +ChatColor.GREEN+(m.getPowerLevel(target))); 
-			}
-		}
-		/*
-		 * STATS COMMAND
-		 */
-		else if(LoadProperties.statsEnable && label.equalsIgnoreCase(LoadProperties.stats))
-		{ 
-
-			player.sendMessage(mcLocale.getString("mcPlayerListener.YourStats"));
-
-			if(mcPermissions.getEnabled())
-				player.sendMessage(mcLocale.getString("mcPlayerListener.NoSkillNote")); 
-
-			ChatColor header = ChatColor.GOLD;
-
-			if(Skills.hasGatheringSkills(player)){
-				player.sendMessage(header+"-=GATHERING SKILLS=-");
-				if(mcPermissions.getInstance().excavation(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION)));
-				if(mcPermissions.getInstance().herbalism(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM)));
-				if(mcPermissions.getInstance().mining(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING)));
-				if(mcPermissions.getInstance().woodcutting(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING)));
-			}
-			if(Skills.hasCombatSkills(player)){
-				player.sendMessage(header+"-=COMBAT SKILLS=-");
-				if(mcPermissions.getInstance().axes(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES)));
-				if(mcPermissions.getInstance().archery(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY)));
-				//if(mcPermissions.getInstance().sorcery(player))
-				//player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkill("sorcery"), PP.getSkill("sorceryXP"), PP.getXpToLevel("excavation")));
-				if(mcPermissions.getInstance().swords(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS)));
-				if(mcPermissions.getInstance().taming(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING)));
-				if(mcPermissions.getInstance().unarmed(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED)));
-			}
-
-			if(Skills.hasMiscSkills(player)){
-				player.sendMessage(header+"-=MISC SKILLS=-");
-				if(mcPermissions.getInstance().acrobatics(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS)));
-				if(mcPermissions.getInstance().repair(player))
-					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR)));	
-			}
-			player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel")+ChatColor.GREEN+(m.getPowerLevel(player))); 
-		}
-		//Invite Command
-		else if(LoadProperties.inviteEnable && label.equalsIgnoreCase(LoadProperties.invite) && mcPermissions.getInstance().party(player)){ 
-
-			Party Pinstance = Party.getInstance();
-			
-			if(!PP.inParty())
-			{
-				player.sendMessage(mcLocale.getString("mcPlayerListener.NotInParty")); 
-				return true;
-			}
-			if(split.length < 2)
-			{
-				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.invite+" <playername>");  
-				return true;
-			}
-			if(PP.inParty() && split.length >= 2 && isPlayer(split[1]))
-			{
-				if(Pinstance.canInvite(player, PP)) {
-					Player target = getPlayer(split[1]);
-					PlayerProfile PPt = Users.getProfile(target);
-					PPt.modifyInvite(PP.getParty());
-	
-	
-					player.sendMessage(mcLocale.getString("mcPlayerListener.InviteSuccess")); 
-					//target.sendMessage(ChatColor.RED+"ALERT: "+ChatColor.GREEN+"You have received a party invite for "+PPt.getInvite()+" from "+player.getName());   
-					target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite1", new Object[] {PPt.getInvite(), player.getName()}));
-					//target.sendMessage(ChatColor.YELLOW+"Type "+ChatColor.GREEN+LoadProperties.accept+ChatColor.YELLOW+" to accept the invite");   
-					target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite2", new Object[] {LoadProperties.accept}));
-				} else {
-					player.sendMessage(mcLocale.getString("Party.Locked"));
-					return true;
-				}
-			}
-		}
-		//Accept invite
-		else if(LoadProperties.acceptEnable && label.equalsIgnoreCase(LoadProperties.accept) && mcPermissions.getInstance().party(player))
-		{ 
-			if(PP.hasPartyInvite())
-			{
-				Party Pinstance = Party.getInstance();
-				
-				if(PP.inParty()) 
-				{
-					Pinstance.removeFromParty(player, PP);
-				}
-				PP.acceptInvite();
-				Pinstance.addToParty(player, PP, PP.getParty(), true);
-				
-			} else 
-			{
-				player.sendMessage(mcLocale.getString("mcPlayerListener.NoInvites")); 
-			}
-		}
-		//Party command
-		else if(LoadProperties.partyEnable && label.equalsIgnoreCase(LoadProperties.party))
-		{ 
-			if(!mcPermissions.getInstance().party(player))
-			{
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-			
-			Party Pinstance = Party.getInstance();
-			
-			if(PP.inParty() && (!Pinstance.isParty(PP.getParty()) || !Pinstance.isInParty(player, PP))) 
-			{
-				Pinstance.addToParty(player, PP, PP.getParty(), false);
-			}
-			
-			if(args.length == 0 && !PP.inParty())
-			{
-				player.sendMessage(mcLocale.getString("Party.Help1", new Object[] {LoadProperties.party}));
-				player.sendMessage(mcLocale.getString("Party.Help2", new Object[] {LoadProperties.party}));
-				player.sendMessage(mcLocale.getString("Party.Help3", new Object[] {LoadProperties.party}));
-				return true;
-			} else if(args.length == 0 && PP.inParty())
-			{
-				String tempList = ""; 
-				int x = 0;
-				for(Player p : Bukkit.getServer().getOnlinePlayers())
-				{
-					if(PP.getParty().equals(Users.getProfile(p).getParty()))
-					{
-						if(p != null && x+1 >= Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers()))
-						{
-							if(Pinstance.isPartyLeader(p, PP.getParty()))
-							{
-								tempList+=ChatColor.GOLD+p.getName();
-								x++;
-							}
-							else
-							{
-								tempList+= ChatColor.WHITE+p.getName();
-								x++;
-							}
-						}
-						if(p != null && x < Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers()))
-						{
-							if(Pinstance.isPartyLeader(p, PP.getParty()))
-							{
-								tempList+=ChatColor.GOLD+p.getName()+", ";
-								x++;
-							}
-							else
-							{
-								tempList+= ChatColor.WHITE+p.getName()+", ";
-								x++;
-							}
-						}
-					}
-				}
-				player.sendMessage(mcLocale.getString("mcPlayerListener.YouAreInParty", new Object[] {PP.getParty()}));
-				player.sendMessage(mcLocale.getString("mcPlayerListener.PartyMembers")+" ("+tempList+ChatColor.GREEN+")");
-				return true;
-			} else if(args.length == 1)
-			{
-				if(args[0].equals("q") && PP.inParty()) 
-				{
-					Pinstance.removeFromParty(player, PP);
-
-					player.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty")); 
-					return true;
-				} else if (args[0].equalsIgnoreCase("?")) {
-					player.sendMessage(mcLocale.getString("Party.Help4", new Object[] {LoadProperties.party}));
-					player.sendMessage(mcLocale.getString("Party.Help2", new Object[] {LoadProperties.party}));
-					player.sendMessage(mcLocale.getString("Party.Help5", new Object[] {LoadProperties.party}));
-					player.sendMessage(mcLocale.getString("Party.Help6", new Object[] {LoadProperties.party}));
-					player.sendMessage(mcLocale.getString("Party.Help7", new Object[] {LoadProperties.party}));
-					player.sendMessage(mcLocale.getString("Party.Help8", new Object[] {LoadProperties.party}));
-					player.sendMessage(mcLocale.getString("Party.Help9", new Object[] {LoadProperties.party}));
-				} else if (args[0].equalsIgnoreCase("lock")) 
-				{
-					if(PP.inParty()) 
-					{
-						if(Pinstance.isPartyLeader(player, PP.getParty())) 
-						{
-							Pinstance.lockParty(PP.getParty());
-							player.sendMessage(mcLocale.getString("Party.Locked"));
-						} else 
-						{
-							player.sendMessage(mcLocale.getString("Party.NotOwner"));
-						}
-					} else 
-					{
-						player.sendMessage(mcLocale.getString("Party.InvalidName"));
-					}
-				} else if (args[0].equalsIgnoreCase("unlock")) 
-				{
-					if(PP.inParty()) 
-					{
-						if(Pinstance.isPartyLeader(player, PP.getParty())) 
-						{
-							Pinstance.unlockParty(PP.getParty());
-							player.sendMessage(mcLocale.getString("Party.Unlocked"));
-						} else 
-						{
-							player.sendMessage(mcLocale.getString("Party.NotOwner"));
-						}
-					} else 
-					{
-						player.sendMessage(mcLocale.getString("Party.InvalidName"));
-					}
-				//Party debugging command.
-				//} else if (args[0].equalsIgnoreCase("dump")) {
-				//	Pinstance.dump(player);
-				} else 
-				{
-					if(PP.inParty()) 
-					{
-						Pinstance.removeFromParty(player, PP);
-					}
-					Pinstance.addToParty(player, PP, args[0], false);
-					return true;
-				}
-			} else if(args.length == 2 && PP.inParty()) 
-			{
-				if(args[0].equalsIgnoreCase("password")) 
-				{
-					if(Pinstance.isPartyLeader(player, PP.getParty())) 
-					{
-						if(Pinstance.isPartyLocked(PP.getParty())) 
-						{
-							Pinstance.setPartyPassword(PP.getParty(), args[1]);
-							player.sendMessage(mcLocale.getString("Party.PasswordSet", new Object[] {args[1]}));
-						} else 
-						{
-							player.sendMessage(mcLocale.getString("Party.IsntLocked"));
-						}
-					} else 
-					{
-						player.sendMessage(mcLocale.getString("Party.NotOwner"));
-					}
-				} else if(args[0].equalsIgnoreCase("kick")) 
-				{
-					if(Pinstance.isPartyLeader(player, PP.getParty())) 
-					{
-						if(Pinstance.isPartyLocked(PP.getParty())) 
-						{
-							Player tPlayer = null;
-							if(Bukkit.getServer().getPlayer(args[1]) != null) tPlayer = Bukkit.getServer().getPlayer(args[1]);
-							if(tPlayer == null) 
-							{
-								player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] {args[1]}));
-							}
-							if(!Pinstance.inSameParty(player, tPlayer)) 
-							{
-								player.sendMessage(mcLocale.getString("Party.NotInYourParty", new Object[] {tPlayer.getName()}));
-							} else 
-							{
-								//Not an admin
-								if(!mcPermissions.getInstance().admin(player)) 
-								{
-									//Can't kick an admin
-									if(mcPermissions.getInstance().admin(tPlayer)) 
-									{
-										player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] {tPlayer.getName()}));
-									}
-								}
-								PlayerProfile tPP = Users.getProfile(tPlayer);
-								
-								Pinstance.removeFromParty(tPlayer, tPP);
-								
-								tPlayer.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty"));
-							}
-						} else {
-							player.sendMessage(mcLocale.getString("Party.IsntLocked"));
-						}
-					} else {
-						player.sendMessage(mcLocale.getString("Party.NotOwner"));
-					}
-				} else if(args[0].equalsIgnoreCase("owner")) 
-				{
-					if(Pinstance.isPartyLeader(player, PP.getParty())) 
-					{
-						Player tPlayer = null;
-						if(Bukkit.getServer().getPlayer(args[1]) != null) tPlayer = Bukkit.getServer().getPlayer(args[1]);
-						if(tPlayer == null) 
-						{
-							player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] {args[1]}));
-						}
-						if(!Pinstance.inSameParty(player, tPlayer)) 
-						{
-							player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] {tPlayer.getName()}));
-						} else 
-						{
-							Pinstance.setPartyLeader(PP.getParty(), tPlayer.getName());
-						}
-					} else 
-					{
-						player.sendMessage(mcLocale.getString("Party.NotOwner"));
-					}
-				} else 
-				{
-					Pinstance.removeFromParty(player, PP);
-					Pinstance.addToParty(player, PP, args[0], false, args[1]);
-				}
-			} else if(args.length == 2 && !PP.inParty()) 
-			{
-				Pinstance.addToParty(player, PP, args[0], false, args[1]);
-			}
-		}
-		else if(LoadProperties.partyEnable && label.equalsIgnoreCase("p")){
-
-			// Console message?
-			if(!(sender instanceof Player)) 
-			{
-				if(args.length < 2) return true;
-				String pMessage = args[1];
-				for (int i = 2; i <= args.length - 1; i++) {
-					pMessage = pMessage + " " + args[i];
-				}
-
-				String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE
-				+ "*Console*" + ChatColor.GREEN + ") ";
-
-				log.log(Level.INFO,
-						"[P](" + args[0] + ")" + "<*Console*> "
-						+ pMessage);
-
-				for(Player herp : Bukkit.getServer().getOnlinePlayers()) {
-					if(Users.getProfile(herp).inParty()) {
-						if(Users.getProfile(herp).getParty().equalsIgnoreCase(args[0])) {
-							herp.sendMessage(pPrefix + pMessage);
-						}
-					}
-				}
-				return true;
-			}
-
-			if(!mcPermissions.getInstance().party(player)){
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-
-			// Not a toggle, a message
-
-			if (args.length >= 1) {
-				String pMessage = args[0];
-				for (int i = 1; i <= args.length - 1; i++) {
-					pMessage = pMessage + " " + args[i];
-				}
-				String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE
-				+ player.getDisplayName() + ChatColor.GREEN + ") ";
-
-				log.log(Level.INFO,
-						"[P](" + PP.getParty() + ")" + "<" + player.getDisplayName()
-						+ "> " + pMessage);
-
-				for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
-					if (Users.getProfile(herp).inParty()) {
-						if (Party.getInstance().inSameParty(herp, player))
-							herp.sendMessage(pPrefix + pMessage);
-					}
-				}
-
-				return true;
-			}
-
-			if(PP.getAdminChatMode())
-				PP.toggleAdminChat();
-
-			PP.togglePartyChat();
-
-			if(PP.getPartyChatMode()){
-				//player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On"); 
-				player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOn"));
-			} else {
-				//player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off");  
-				player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOff"));
-			}
-		}
-
-		else if(label.equalsIgnoreCase("a")){
-			// Console message?
-			if(!(sender instanceof Player) && args.length >= 1) 
-			{
-				String aMessage = args[0];
-				for (int i = 1; i <= args.length - 1; i++) {
-					aMessage = aMessage + " " + args[i];
-				}
-
-				String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE
-				+ "*Console*" + ChatColor.AQUA + "} ";
-
-				log.log(Level.INFO, "[A]<*Console*> "
-						+ aMessage);
-
-				for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
-					if (mcPermissions.getInstance().adminChat(herp) || herp.isOp())
-						herp.sendMessage(aPrefix + aMessage);
-				}
-				return true;
-			}
-
-			if(!mcPermissions.getInstance().adminChat(player) && !player.isOp())
-			{
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-
-			// Not a toggle, a message
-
-			if (args.length >= 1) {
-				String aMessage = args[0];
-				for (int i = 1; i <= args.length - 1; i++) {
-					aMessage = aMessage + " " + args[i];
-				}
-
-				String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE
-				+ player.getDisplayName() + ChatColor.AQUA + "} ";
-				log.log(Level.INFO, "[A]<" + player.getDisplayName() + "> "
-						+ aMessage);
-				for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
-					if (mcPermissions.getInstance().adminChat(herp) || herp.isOp())
-						herp.sendMessage(aPrefix + aMessage);
-				}
-				return true;
-			}
-
-			if(PP.getPartyChatMode())
-				PP.togglePartyChat();
-
-			PP.toggleAdminChat();
-
-			if(PP.getAdminChatMode())
-			{
-				player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOn"));
-				//player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On");  
-			} else {
-				player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOff"));
-				//player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off");  
-			}
-		}
-
-		/*
-		 * MYSPAWN
-		 */
-		else if(LoadProperties.myspawnEnable && LoadProperties.enableMySpawn && label.equalsIgnoreCase(LoadProperties.myspawn))
-		{ 
-			if(!mcPermissions.getInstance().mySpawn(player)){
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-			if(System.currentTimeMillis() < (PP.getMySpawnATS()*1000) + 3600000){
-				long x = (((PP.getMySpawnATS()*1000) + 3600000) - System.currentTimeMillis());
-				int y = (int) (x/60000);
-				int z = (int) ((x/1000) - (y*60));
-				player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnTimeNotice", new Object[] {y, z}));    
-				return true;
-			}
-			PP.setMySpawnATS(System.currentTimeMillis());
-			if(PP.getMySpawn(player) != null)
-			{
-				Location mySpawn = PP.getMySpawn(player);
-				
-				if(mySpawn != null){
-					//It's done twice because it acts oddly when you are in another world
-					player.teleport(mySpawn);
-					player.teleport(mySpawn);
-				}
-			} else {
-				player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnNotExist")); 
-			}
-		}
-		else if(LoadProperties.spoutEnabled && LoadProperties.xpbar && LoadProperties.xplockEnable && label.equalsIgnoreCase(LoadProperties.xplock))
-		{
-			if(split.length >= 2 && Skills.isSkill(split[1]) && mcPermissions.permission(player, "mcmmo.skills."+Skills.getSkillType(split[1]).toString().toLowerCase()))
-			{
-				if(PP.getXpBarLocked())
-				{
-					PP.setSkillLock(Skills.getSkillType(split[1]));
-					player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] {m.getCapitalized(PP.getSkillLock().toString())}));
-				}
-				else
-				{
-					PP.setSkillLock(Skills.getSkillType(split[1]));
-					PP.toggleXpBarLocked();
-					player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] {m.getCapitalized(PP.getSkillLock().toString())}));
-				}
-				SpoutStuff.updateXpBar(player);
-			} else if (split.length < 2)
-			{
-				if(PP.getXpBarLocked())
-				{
-					PP.toggleXpBarLocked();
-					player.sendMessage(mcLocale.getString("Commands.xplock.unlocked"));
-				} else if(PP.getLastGained() != null)
-				{
-					PP.toggleXpBarLocked();
-					PP.setSkillLock(PP.getLastGained());
-					player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] {m.getCapitalized(PP.getSkillLock().toString())}));
-				}
-			}
-			else if (split.length >= 2 && !Skills.isSkill(split[1]))
-			{
-				player.sendMessage("Commands.xplock.invalid");
-			}
-			else if(split.length >= 2 && Skills.isSkill(split[1]) && !mcPermissions.permission(player, "mcmmo.skills."+Skills.getSkillType(split[1]).toString().toLowerCase()))
-			{
-				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
-				return true;
-			}
-		}
-		else if (LoadProperties.spoutEnabled && label.equalsIgnoreCase("mchud"))
-		{
-			if(split.length >= 2)
-			{
-				for(HUDType x : HUDType.values())
-				{
-					if(x.toString().toLowerCase().equals(split[1].toLowerCase()))
-					{
-						if(SpoutStuff.playerHUDs.containsKey(player))
-						{
-							SpoutStuff.playerHUDs.get(player).resetHUD();
-							SpoutStuff.playerHUDs.remove(player);
-							PP.setHUDType(x);
-							SpoutStuff.playerHUDs.put(player, new HUDmmo(player));
-						}
-					}
-				}
-			}
-		}
-		return true;
-	}
-}
+package com.gmail.nossr50.command;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import org.getspout.spoutapi.player.SpoutPlayer;
+
+import com.gmail.nossr50.Leaderboard;
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.m;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.mcPermissions;
+import com.gmail.nossr50.config.LoadProperties;
+import com.gmail.nossr50.datatypes.HUDType;
+import com.gmail.nossr50.datatypes.HUDmmo;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.locale.mcLocale;
+import com.gmail.nossr50.party.Party;
+import com.gmail.nossr50.skills.Skills;
+import com.gmail.nossr50.spout.SpoutStuff;
+
+public class Commands 
+{
+	//Setup some vars
+	public static final Logger log = Logger.getLogger("Minecraft"); 
+	public static boolean xpevent = false;
+	static int oldrate = LoadProperties.xpGainMultiplier;
+
+	
+	public static boolean isPlayer(String playerName){
+		for(Player herp :  Bukkit.getServer().getOnlinePlayers()){
+			if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){
+				return true;
+			}
+		}
+		return false;
+	}
+	
+	public static Player getPlayer(String playerName){
+		for(Player herp : Bukkit.getServer().getOnlinePlayers()){
+			if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){
+				return herp;
+			}
+		}
+		return null;
+	}
+	
+	public static boolean processCommands(CommandSender sender, Command command, String label, String[] args)
+	{
+		Player player = null;
+		PlayerProfile PP = null;
+		if(sender instanceof Player) 
+		{
+			player = (Player) sender;
+			PP = Users.getProfile(player);
+		}
+
+		String[] split = new String[args.length + 1];
+		split[0] = label;
+		for(int a = 0; a < args.length; a++){
+			split[a + 1] = args[a];
+		}
+		
+		//Check if the command is an MMO related help command
+		if(label.equalsIgnoreCase("taming") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillTaming").toLowerCase())){ 
+			float skillvalue = (float)PP.getSkillLevel(SkillType.TAMING);
+
+			String percentage = String.valueOf((skillvalue / 1000) * 100);
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillTaming")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainTaming")})); 
+			if(mcPermissions.getInstance().taming(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming1_0"), mcLocale.getString("m.EffectsTaming1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming2_0"), mcLocale.getString("m.EffectsTaming2_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming3_0"), mcLocale.getString("m.EffectsTaming3_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming4_0"), mcLocale.getString("m.EffectsTaming4_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming5_0"), mcLocale.getString("m.EffectsTaming5_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming6_0"), mcLocale.getString("m.EffectsTaming6_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			if(PP.getSkillLevel(SkillType.TAMING) < 100)
+				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming1")})); 
+			else
+				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming1_0"), mcLocale.getString("m.AbilBonusTaming1_1")}));  
+			if(PP.getSkillLevel(SkillType.TAMING) < 250)
+				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming2")})); 
+			else
+				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming2_0"), mcLocale.getString("m.AbilBonusTaming2_1")}));  
+			if(PP.getSkillLevel(SkillType.TAMING) < 500)
+				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming3")})); 
+			else
+				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming3_0"), mcLocale.getString("m.AbilBonusTaming3_1")}));  
+			if(PP.getSkillLevel(SkillType.TAMING) < 750)
+				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming4")})); 
+			else
+				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming4_0"), mcLocale.getString("m.AbilBonusTaming4_1")}));  
+			player.sendMessage(mcLocale.getString("m.TamingGoreChance", new Object[] {percentage})); 
+		}
+		else if(label.equalsIgnoreCase("woodcutting") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillWoodCutting").toLowerCase())){ 
+			float skillvalue = (float)PP.getSkillLevel(SkillType.WOODCUTTING);
+			int ticks = 2;
+			int x = PP.getSkillLevel(SkillType.WOODCUTTING);
+			while(x >= 50){
+				x-=50;
+				ticks++;
+			}
+			String percentage = String.valueOf((skillvalue / 1000) * 100);
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillWoodCutting")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainWoodCutting")})); 
+			if(mcPermissions.getInstance().woodcutting(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsWoodCutting1_0"), mcLocale.getString("m.EffectsWoodCutting1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsWoodCutting2_0"), mcLocale.getString("m.EffectsWoodCutting2_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsWoodCutting3_0"), mcLocale.getString("m.EffectsWoodCutting3_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			if(PP.getSkillLevel(SkillType.WOODCUTTING) < 100)
+				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockWoodCutting1")})); 
+			else
+				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusWoodCutting1_0"), mcLocale.getString("m.AbilBonusWoodCutting1_1")}));  
+			player.sendMessage(mcLocale.getString("m.WoodCuttingDoubleDropChance", new Object[] {percentage})); 
+			player.sendMessage(mcLocale.getString("m.WoodCuttingTreeFellerLength", new Object[] {ticks})); 
+		}
+		else if(label.equalsIgnoreCase("archery") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillArchery").toLowerCase())){ 
+			Integer rank = 0;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 50)
+				rank++;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 250)
+				rank++;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 575)
+				rank++;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 725)
+				rank++;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 1000)
+				rank++;
+			float skillvalue = (float)PP.getSkillLevel(SkillType.ARCHERY);
+			String percentage = String.valueOf((skillvalue / 1000) * 100);
+
+			int ignition = 20;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 200)
+				ignition+=20;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 400)
+				ignition+=20;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 600)
+				ignition+=20;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 800)
+				ignition+=20;
+			if(PP.getSkillLevel(SkillType.ARCHERY) >= 1000)
+				ignition+=20;
+
+			String percentagedaze;
+			if(PP.getSkillLevel(SkillType.ARCHERY) < 1000){
+				percentagedaze = String.valueOf((skillvalue / 2000) * 100);
+			} else {
+				percentagedaze = "50"; 
+			}
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillArchery")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainArchery")})); 
+			if(mcPermissions.getInstance().archery(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery1_0"), mcLocale.getString("m.EffectsArchery1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery2_0"), mcLocale.getString("m.EffectsArchery2_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery3_0"), mcLocale.getString("m.EffectsArchery3_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery4_0"), mcLocale.getString("m.EffectsArchery4_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.ArcheryDazeChance", new Object[] {percentagedaze})); 
+			player.sendMessage(mcLocale.getString("m.ArcheryRetrieveChance", new Object[] {percentage})); 
+			player.sendMessage(mcLocale.getString("m.ArcheryIgnitionLength", new Object[] {(ignition / 20)})); 
+			player.sendMessage(mcLocale.getString("m.ArcheryDamagePlus", new Object[] {rank})); 
+		}
+		else if(label.equalsIgnoreCase("axes") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillAxes"))){ 
+			String percentage;
+			float skillvalue = (float)PP.getSkillLevel(SkillType.AXES);
+			if(PP.getSkillLevel(SkillType.AXES) < 750){
+				percentage = String.valueOf((skillvalue / 1000) * 100);
+			} else {
+				percentage = "75"; 
+			}
+			int ticks = 2;
+			int x = PP.getSkillLevel(SkillType.AXES);
+			while(x >= 50){
+				x-=50;
+				ticks++;
+			}
+
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillAxes")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainAxes")})); 
+			if(mcPermissions.getInstance().axes(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAxes1_0"), mcLocale.getString("m.EffectsAxes1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAxes2_0"), mcLocale.getString("m.EffectsAxes2_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAxes3_0"), mcLocale.getString("m.EffectsAxes3_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.AxesCritChance", new Object[] {percentage})); 
+			if(PP.getSkillLevel(SkillType.AXES) < 500){
+				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockAxes1")})); 
+			} else {
+				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusAxes1_0"), mcLocale.getString("m.AbilBonusAxes1_1")}));  
+			}
+			player.sendMessage(mcLocale.getString("m.AxesSkullLength", new Object[] {ticks})); 
+		}
+		else if(label.equalsIgnoreCase("swords") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillSwords").toLowerCase())){ 
+			int bleedrank = 2;
+			String percentage, parrypercentage = null, counterattackpercentage;
+			float skillvalue = (float)PP.getSkillLevel(SkillType.SWORDS);
+			if(PP.getSkillLevel(SkillType.SWORDS) < 750){
+				percentage = String.valueOf((skillvalue / 1000) * 100);
+			} else {
+				percentage = "75"; 
+			}
+			if(skillvalue >= 750)
+				bleedrank+=1;
+
+			if(PP.getSkillLevel(SkillType.SWORDS) <= 900){
+				parrypercentage = String.valueOf((skillvalue / 3000) * 100);
+			} else {
+				parrypercentage = "30"; 
+			}
+
+			if(PP.getSkillLevel(SkillType.SWORDS) <= 600){
+				counterattackpercentage = String.valueOf((skillvalue / 2000) * 100);
+			} else {
+				counterattackpercentage = "30"; 
+			}
+
+			int ticks = 2;
+			int x = PP.getSkillLevel(SkillType.SWORDS);
+			while(x >= 50){
+				x-=50;
+				ticks++;
+			}
+
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillSwords")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainSwords")})); 
+			if(mcPermissions.getInstance().swords(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords1_0"), mcLocale.getString("m.EffectsSwords1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords2_0"), mcLocale.getString("m.EffectsSwords2_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords3_0"), mcLocale.getString("m.EffectsSwords3_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords4_0"), mcLocale.getString("m.EffectsSwords4_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords5_0"), mcLocale.getString("m.EffectsSwords5_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.SwordsCounterAttChance", new Object[] {counterattackpercentage})); 
+			player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] {bleedrank})); 
+			player.sendMessage(mcLocale.getString("m.SwordsTickNote")); 
+			player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] {percentage})); 
+			player.sendMessage(mcLocale.getString("m.SwordsParryChance", new Object[] {parrypercentage})); 
+			player.sendMessage(mcLocale.getString("m.SwordsSSLength", new Object[] {ticks})); 
+
+		}
+		else if(label.equalsIgnoreCase("acrobatics") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillAcrobatics").toLowerCase())){ 
+			String dodgepercentage;
+			float skillvalue = (float)PP.getSkillLevel(SkillType.ACROBATICS);
+			String percentage = String.valueOf((skillvalue / 1000) * 100);
+			String gracepercentage = String.valueOf(((skillvalue / 1000) * 100) * 2);
+			if(PP.getSkillLevel(SkillType.ACROBATICS) <= 800){
+				dodgepercentage = String.valueOf((skillvalue / 4000 * 100));
+			} else {
+				dodgepercentage = "20"; 
+			}
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillAcrobatics")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainAcrobatics")})); 
+			if(mcPermissions.getInstance().acrobatics(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAcrobatics1_0"), mcLocale.getString("m.EffectsAcrobatics1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAcrobatics2_0"), mcLocale.getString("m.EffectsAcrobatics2_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAcrobatics3_0"), mcLocale.getString("m.EffectsAcrobatics3_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.AcrobaticsRollChance", new Object[] {percentage})); 
+			player.sendMessage(mcLocale.getString("m.AcrobaticsGracefulRollChance", new Object[] {gracepercentage})); 
+			player.sendMessage(mcLocale.getString("m.AcrobaticsDodgeChance", new Object[] {dodgepercentage})); 
+		}
+		else if(label.equalsIgnoreCase("mining") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillMining"))){ 
+			float skillvalue = (float)PP.getSkillLevel(SkillType.MINING);
+			String percentage = String.valueOf((skillvalue / 1000) * 100);
+			int ticks = 2;
+			int x = PP.getSkillLevel(SkillType.MINING);
+			while(x >= 50){
+				x-=50;
+				ticks++;
+			}
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillMining")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainMining")})); 
+			if(mcPermissions.getInstance().mining(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsMining1_0"), mcLocale.getString("m.EffectsMining1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsMining2_0"), mcLocale.getString("m.EffectsMining2_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.MiningDoubleDropChance", new Object[] {percentage})); 
+			player.sendMessage(mcLocale.getString("m.MiningSuperBreakerLength", new Object[] {ticks})); 
+		}
+		else if(label.equalsIgnoreCase("repair") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillRepair").toLowerCase())){ 
+			float skillvalue = (float)PP.getSkillLevel(SkillType.REPAIR);
+			String percentage = String.valueOf((skillvalue / 1000) * 100);
+			String repairmastery = String.valueOf((skillvalue / 500) * 100);
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillRepair")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainRepair")})); 
+			if(mcPermissions.getInstance().repair(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair1_0"), mcLocale.getString("m.EffectsRepair1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair2_0"), mcLocale.getString("m.EffectsRepair2_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair3_0"), mcLocale.getString("m.EffectsRepair3_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair4_0", new Object[]{LoadProperties.repairdiamondlevel}), mcLocale.getString("m.EffectsRepair4_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.RepairRepairMastery", new Object[] {repairmastery})); 
+			player.sendMessage(mcLocale.getString("m.RepairSuperRepairChance", new Object[] {percentage})); 
+		}
+		else if(label.equalsIgnoreCase("unarmed")){ 
+			String percentage, arrowpercentage;
+			float skillvalue = (float)PP.getSkillLevel(SkillType.UNARMED);
+
+			if(PP.getSkillLevel(SkillType.UNARMED) < 1000){
+				percentage = String.valueOf((skillvalue / 4000) * 100);
+			} else {
+				percentage = "25"; 
+			}
+
+			if(PP.getSkillLevel(SkillType.UNARMED) < 1000){
+				arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2);
+			} else {
+				arrowpercentage = "50"; 
+			}
+
+
+			int ticks = 2;
+			int x = PP.getSkillLevel(SkillType.UNARMED);
+			while(x >= 50){
+				x-=50;
+				ticks++;
+			}
+
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillUnarmed")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainUnarmed")})); 
+			if(mcPermissions.getInstance().unarmed(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed1_0"), mcLocale.getString("m.EffectsUnarmed1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed2_0"), mcLocale.getString("m.EffectsUnarmed2_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed3_0"), mcLocale.getString("m.EffectsUnarmed3_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed4_0"), mcLocale.getString("m.EffectsUnarmed4_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed5_0"), mcLocale.getString("m.EffectsUnarmed5_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.UnarmedArrowDeflectChance", new Object[] {arrowpercentage})); 
+			player.sendMessage(mcLocale.getString("m.UnarmedDisarmChance", new Object[] {percentage})); 
+			if(PP.getSkillLevel(SkillType.UNARMED) < 250){
+				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockUnarmed1")})); 
+			} else if(PP.getSkillLevel(SkillType.UNARMED) >= 250 && PP.getSkillLevel(SkillType.UNARMED) < 500){
+				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusUnarmed1_0"), mcLocale.getString("m.AbilBonusUnarmed1_1")}));  
+				player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockUnarmed2")})); 
+			} else {
+				player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusUnarmed2_0"), mcLocale.getString("m.AbilBonusUnarmed2_1")}));  
+			}
+			player.sendMessage(mcLocale.getString("m.UnarmedBerserkLength", new Object[] {ticks})); 
+		}
+		else if(label.equalsIgnoreCase("herbalism") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillHerbalism").toLowerCase())){ 
+			int rank = 0;
+			if(PP.getSkillLevel(SkillType.HERBALISM) >= 50)
+				rank++;
+			if (PP.getSkillLevel(SkillType.HERBALISM) >= 150)
+				rank++;
+			if (PP.getSkillLevel(SkillType.HERBALISM) >= 250)
+				rank++;
+			if (PP.getSkillLevel(SkillType.HERBALISM) >= 350)
+				rank++;
+			if (PP.getSkillLevel(SkillType.HERBALISM) >= 450)
+				rank++;
+			if (PP.getSkillLevel(SkillType.HERBALISM) >= 550)
+				rank++;
+			if (PP.getSkillLevel(SkillType.HERBALISM) >= 650)
+				rank++;
+			if (PP.getSkillLevel(SkillType.HERBALISM) >= 750)
+				rank++;
+			int bonus = 0;
+			if(PP.getSkillLevel(SkillType.HERBALISM) >= 200)
+				bonus++;
+			if(PP.getSkillLevel(SkillType.HERBALISM) >= 400)
+				bonus++;
+			if(PP.getSkillLevel(SkillType.HERBALISM) >= 600)
+				bonus++;
+
+			int ticks = 2;
+			int x = PP.getSkillLevel(SkillType.HERBALISM);
+			while(x >= 50){
+				x-=50;
+				ticks++;
+			}
+
+			float skillvalue = (float)PP.getSkillLevel(SkillType.HERBALISM);
+			String percentage = String.valueOf((skillvalue / 1000) * 100);
+			String gpercentage = String.valueOf((skillvalue / 1500) * 100);
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillHerbalism")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainHerbalism")})); 
+			if(mcPermissions.getInstance().herbalism(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism1_0"), mcLocale.getString("m.EffectsHerbalism1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism2_0"), mcLocale.getString("m.EffectsHerbalism2_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism3_0"), mcLocale.getString("m.EffectsHerbalism3_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism4_0"), mcLocale.getString("m.EffectsHerbalism4_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism5_0"), mcLocale.getString("m.EffectsHerbalism5_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.HerbalismGreenTerraLength", new Object[] {ticks})); 
+			player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbChance", new Object[] {gpercentage})); 
+			player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbStage", new Object[] {bonus})); 
+			player.sendMessage(mcLocale.getString("m.HerbalismDoubleDropChance", new Object[] {percentage})); 
+			player.sendMessage(mcLocale.getString("m.HerbalismFoodPlus", new Object[] {rank})); 
+		}
+
+		else if(label.equalsIgnoreCase("excavation") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillExcavation").toLowerCase())) 
+		{
+			int ticks = 2;
+			int x = PP.getSkillLevel(SkillType.EXCAVATION);
+			while(x >= 50){
+				x-=50;
+				ticks++;
+			}
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillExcavation")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainExcavation")})); 
+			if(mcPermissions.getInstance().excavation(player))
+				player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION)}));
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation1_0"), mcLocale.getString("m.EffectsExcavation1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation2_0"), mcLocale.getString("m.EffectsExcavation2_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] {ticks})); 
+		}
+
+		else if(label.equalsIgnoreCase("sorcery") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillSorcery").toLowerCase())) 
+		{
+			/*
+	        player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillExcavation")})); 
+			player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainExcavation")})); 
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")})); 
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation1_0"), mcLocale.getString("m.EffectsExcavation1_1")}));  
+			player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation2_0"), mcLocale.getString("m.EffectsExcavation2_1")}));  
+			player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")})); 
+			player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] {ticks})); 
+			 */
+		}
+
+		else if(LoadProperties.mcmmoEnable && label.equalsIgnoreCase(LoadProperties.mcmmo))
+		{ 
+			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"mcMMO"+ChatColor.RED+"[]-----");
+			String description = mcLocale.getString("mcMMO.Description", new Object[] {LoadProperties.mcc});
+			String[] mcSplit = description.split(",");
+			
+			for(String x : mcSplit)
+			{
+				player.sendMessage(x);
+			}
+			if(LoadProperties.spoutEnabled && player instanceof SpoutPlayer)
+			{
+				SpoutPlayer sPlayer = (SpoutPlayer)player;
+				if(LoadProperties.donateMessage)
+					sPlayer.sendNotification("[mcMMO] Donate!", "Paypal nossr50@gmail.com", Material.CAKE);
+			}
+			else
+			{
+				if(LoadProperties.donateMessage)
+					player.sendMessage(ChatColor.GREEN+"If you like my work you can donate via Paypal: nossr50@gmail.com");
+			}
+		}
+		else if(LoadProperties.mccEnable && label.equalsIgnoreCase(LoadProperties.mcc))
+		{ 
+			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.YELLOW+"mcMMO Commands"+ChatColor.RED+"[]---");   
+			if(mcPermissions.getInstance().party(player)){
+				player.sendMessage(mcLocale.getString("m.mccPartyCommands")); 
+				player.sendMessage(LoadProperties.party+" "+mcLocale.getString("m.mccParty"));   
+				player.sendMessage(LoadProperties.party+" q "+mcLocale.getString("m.mccPartyQ"));
+				if(mcPermissions.getInstance().partyChat(player))
+					player.sendMessage("/p "+mcLocale.getString("m.mccPartyToggle"));  
+				player.sendMessage(LoadProperties.invite+" "+mcLocale.getString("m.mccPartyInvite"));   
+				player.sendMessage(LoadProperties.accept+" "+mcLocale.getString("m.mccPartyAccept"));   
+				if(mcPermissions.getInstance().partyTeleport(player))
+					player.sendMessage(LoadProperties.ptp+" "+mcLocale.getString("m.mccPartyTeleport"));   
+			}
+			player.sendMessage(mcLocale.getString("m.mccOtherCommands")); 
+			player.sendMessage(LoadProperties.stats+ChatColor.RED+" "+mcLocale.getString("m.mccStats"));  
+			player.sendMessage("/mctop <skillname> <page> "+ChatColor.RED+mcLocale.getString("m.mccLeaderboards"));  
+			if(mcPermissions.getInstance().mySpawn(player)){
+				player.sendMessage(LoadProperties.myspawn+" "+ChatColor.RED+mcLocale.getString("m.mccMySpawn"));   
+				player.sendMessage(LoadProperties.clearmyspawn+" "+ChatColor.RED+mcLocale.getString("m.mccClearMySpawn"));   
+			}
+			if(mcPermissions.getInstance().mcAbility(player))
+				player.sendMessage(LoadProperties.mcability+ChatColor.RED+" "+mcLocale.getString("m.mccToggleAbility"));  
+			if(mcPermissions.getInstance().adminChat(player)){
+				player.sendMessage("/a "+ChatColor.RED+mcLocale.getString("m.mccAdminToggle"));  
+			}
+			if(mcPermissions.getInstance().whois(player))
+				player.sendMessage(LoadProperties.whois+" "+mcLocale.getString("m.mccWhois"));   
+			if(mcPermissions.getInstance().mmoedit(player)){
+				//player.sendMessage(LoadProperties.mmoedit+" [skill] [newvalue] "+ChatColor.RED+"Modify the designated skill value");
+				player.sendMessage(LoadProperties.mmoedit+mcLocale.getString("m.mccMmoedit"));   
+			}
+			if(mcPermissions.getInstance().mcgod(player))
+				player.sendMessage(LoadProperties.mcgod+ChatColor.RED+" "+mcLocale.getString("m.mccMcGod"));  
+			player.sendMessage(mcLocale.getString("m.mccSkillInfo"));  
+			player.sendMessage(LoadProperties.mcmmo+" "+mcLocale.getString("m.mccModDescription"));   
+		}
+		else if(LoadProperties.mcabilityEnable && mcPermissions.permissionsEnabled && label.equalsIgnoreCase(LoadProperties.mcability)){ 
+			if(PP.getAbilityUse()){
+				player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOff")); 
+				PP.toggleAbilityUse();
+			} else {
+				player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOn")); 
+				PP.toggleAbilityUse();
+			}
+		}
+		else if (LoadProperties.xprateEnable && label.equalsIgnoreCase(LoadProperties.xprate))
+		{
+			if(sender instanceof Player)
+			{
+				if(!mcPermissions.getInstance().admin(player))
+				{
+					player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+					return true;
+				}
+				if(split.length <= 1)
+				{
+					player.sendMessage(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate}));
+					player.sendMessage(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate}));
+				}
+				if(split.length == 2 && split[1].equalsIgnoreCase("reset"))
+				{
+					if(xpevent)
+					{
+						for(Player x : Bukkit.getServer().getOnlinePlayers())
+							x.sendMessage(mcLocale.getString("Commands.xprate.over"));
+						xpevent = !xpevent;
+						LoadProperties.xpGainMultiplier = oldrate;
+					} else
+					{
+						LoadProperties.xpGainMultiplier = oldrate;
+					}
+				}
+				if(split.length >= 2 && m.isInt(split[1]))
+				{
+					oldrate = LoadProperties.xpGainMultiplier;
+					
+					if(split.length >= 3 && (split[2].equalsIgnoreCase("true") || split[2].equalsIgnoreCase("false")))
+					{
+						if(split[2].equalsIgnoreCase("true"))
+							xpevent = true;
+						else
+							xpevent = false;
+					} else
+					{
+						player.sendMessage(mcLocale.getString("Commands.xprate.proper3"));
+						return true;
+					}
+					LoadProperties.xpGainMultiplier = m.getInt(split[1]);
+					if(xpevent = true)
+						for(Player x : Bukkit.getServer().getOnlinePlayers())
+						{
+							x.sendMessage(mcLocale.getString("Commands.xprate.started"));
+							x.sendMessage(mcLocale.getString("Commands.xprate.started2", new Object[] {LoadProperties.xpGainMultiplier}));
+						}
+				}
+			} else
+			{
+				if(split.length <= 1)
+				{
+					System.out.println(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate}));
+					System.out.println(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate}));
+				}
+				
+				if(split.length == 2 && split[1].equalsIgnoreCase("reset"))
+				{
+					if(xpevent)
+					{
+						for(Player x : Bukkit.getServer().getOnlinePlayers())
+							x.sendMessage(mcLocale.getString("Commands.xprate.over"));
+						xpevent = !xpevent;
+						LoadProperties.xpGainMultiplier = oldrate;
+					} else
+					{
+						LoadProperties.xpGainMultiplier = oldrate;
+					}
+				}
+				
+				if(split.length >= 2 && m.isInt(split[1]))
+				{
+					oldrate = LoadProperties.xpGainMultiplier;
+					
+					if(split.length >= 3 && (split[2].equalsIgnoreCase("true") || split[2].equalsIgnoreCase("false")))
+					{
+						if(split[2].equalsIgnoreCase("true"))
+							xpevent = true;
+						else
+							xpevent = false;
+					} else
+					{
+						System.out.println(mcLocale.getString("Commands.xprate.proper3"));
+						return true;
+					}
+					LoadProperties.xpGainMultiplier = m.getInt(split[1]);
+					if(xpevent = true)
+						for(Player x : Bukkit.getServer().getOnlinePlayers())
+						{
+							x.sendMessage(ChatColor.GOLD+"XP EVENT FOR mcMMO HAS STARTED!");
+							x.sendMessage(ChatColor.GOLD+"mcMMO XP RATE IS NOW "+LoadProperties.xpGainMultiplier+"x!!");
+						}
+				}
+			}
+		}
+		/*
+		 * FFS -> MySQL
+		 */
+		else if(label.equalsIgnoreCase("mmoupdate"))
+		{
+			if(!mcPermissions.getInstance().admin(player))
+			{
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+			player.sendMessage(ChatColor.GRAY+"Starting conversion..."); 
+			Users.clearUsers();
+			m.convertToMySQL();
+			for(Player x : Bukkit.getServer().getOnlinePlayers())
+			{
+				Users.addUser(x);
+			}
+			player.sendMessage(ChatColor.GREEN+"Conversion finished!"); 
+		}
+
+		/*
+		 * LEADER BOARD COMMAND
+		 */
+		else if(LoadProperties.mctopEnable && label.equalsIgnoreCase(LoadProperties.mctop)){ 
+
+			if(LoadProperties.useMySQL == false){
+				/*
+				 * POWER LEVEL INFO RETRIEVAL
+				 */
+				if(split.length == 1){
+					int p = 1;
+					String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); 
+					player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard"));
+					int n = 1 * p; //Position
+					for(String x : info){
+						if(x != null){
+							String digit = String.valueOf(n);
+							if(n < 10)
+								digit ="0"+String.valueOf(n); 
+							String[] splitx = x.split(":"); 
+							//Format: 1. Playername - skill value
+							player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);  
+							n++;
+						}
+					}
+				}
+				if(split.length >= 2 && m.isInt(split[1])){
+					int p = 1;
+					//Grab page value if specified
+					if(split.length >= 2){
+						if(m.isInt(split[1])){
+							p = Integer.valueOf(split[1]);
+						}
+					}
+					int pt = p;
+					if(p > 1){
+						pt -= 1;
+						pt += (pt * 10);
+						pt = 10;
+					}
+					String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); 
+					player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); 
+					int n = 1 * pt; //Position
+					for(String x : info){
+						if(x != null){
+							String digit = String.valueOf(n);
+							if(n < 10)
+								digit ="0"+String.valueOf(n); 
+							String[] splitx = x.split(":"); 
+							//Format: 1. Playername - skill value
+							player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);  
+							n++;
+						}
+					}
+				}
+				/*
+				 * SKILL SPECIFIED INFO RETRIEVAL
+				 */
+				if(split.length >= 2 && Skills.isSkill(split[1]))
+				{
+					int p = 1;
+					//Grab page value if specified
+					if(split.length >= 3)
+					{
+						if(m.isInt(split[2])){
+							p = Integer.valueOf(split[2]);
+						}
+					}
+					int pt = p;
+					if(p > 1){
+						pt -= 1;
+						pt += (pt * 10);
+						pt = 10;
+					}
+					String firstLetter = split[1].substring(0,1);  // Get first letter
+					String remainder   = split[1].substring(1);    // Get remainder of word.
+					String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
+
+					String[] info = Leaderboard.retrieveInfo(split[1].toUpperCase(), p);
+					player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] {capitalized}));  
+					int n = 1 * pt; //Position
+					for(String x : info)
+					{
+						if(x != null)
+						{
+							String digit = String.valueOf(n);
+							if(n < 10)
+								digit ="0"+String.valueOf(n); 
+							String[] splitx = x.split(":"); 
+							//Format: 1. Playername - skill value
+							player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);  
+							n++;
+						}
+					}
+				}
+			} else {
+				/*
+				 * MYSQL LEADERBOARDS
+				 */
+				String powerlevel = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics"; 
+				if(split.length >= 2 && Skills.isSkill(split[1])){
+					/*
+					 * Create a nice consistent capitalized leaderboard name
+					 */
+					String lowercase = split[1].toLowerCase(); //For the query
+					String firstLetter = split[1].substring(0,1); //Get first letter
+					String remainder   = split[1].substring(1); //Get remainder of word.
+					String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
+
+					player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] {capitalized}));  
+					if(split.length >= 3 && m.isInt(split[2])){
+						int n = 1; //For the page number
+						int n2 = Integer.valueOf(split[2]);
+						if(n2 > 1){
+							//Figure out the 'page' here
+							n = 10;
+							n = n * (n2-1);
+						}
+						//If a page number is specified
+						HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT "+lowercase+", user_id FROM "  
+								+LoadProperties.MySQLtablePrefix+"skills WHERE "+lowercase+" > 0 ORDER BY `"+LoadProperties.MySQLtablePrefix+"skills`.`"+lowercase+"` DESC ");    
+
+						for(int i=n;i<=n+10;i++){
+							if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)   
+								break;
+							HashMap<Integer, ArrayList<String>> username =  mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");   
+							player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));  
+						}
+						return true;
+					}
+					//If no page number is specified
+					HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT "+lowercase+", user_id FROM "  
+							+LoadProperties.MySQLtablePrefix+"skills WHERE "+lowercase+" > 0 ORDER BY `"+LoadProperties.MySQLtablePrefix+"skills`.`"+lowercase+"` DESC ");    
+					for(int i=1;i<=10;i++){ //i<=userslist.size()
+						if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)   
+							break;
+						HashMap<Integer, ArrayList<String>> username =  mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");   
+						player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));  
+					}
+					return true;
+				}
+				if(split.length >= 1){
+					player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); 
+					if(split.length >= 2 && m.isInt(split[1])){
+						int n = 1; //For the page number
+						int n2 = Integer.valueOf(split[1]);
+						if(n2 > 1){
+							//Figure out the 'page' here
+							n = 10;
+							n = n * (n2-1);
+						}
+						//If a page number is specified
+						HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT "+powerlevel+", user_id FROM "  
+								+LoadProperties.MySQLtablePrefix+"skills WHERE "+powerlevel+" > 0 ORDER BY taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics DESC ");  
+						for(int i=n;i<=n+10;i++){
+							if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)   
+								break;
+							HashMap<Integer, ArrayList<String>> username =  mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");   
+							player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));  
+						}
+						return true;
+					}
+					HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics, user_id FROM " 
+							+LoadProperties.MySQLtablePrefix+"skills WHERE "+powerlevel+" > 0 ORDER BY taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics DESC ");  
+					for(int i=1;i<=10;i++){
+						if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)   
+							break;
+						HashMap<Integer, ArrayList<String>> username =  mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");   
+						player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));  
+						//System.out.println(username.get(1).get(0));
+						//System.out.println("Mining : " + userslist.get(i).get(0) + ", User id : " + userslist.get(i).get(1));
+					}
+				}
+			}
+		}
+
+		else if(LoadProperties.mcrefreshEnable && label.equalsIgnoreCase(LoadProperties.mcrefresh)){ 
+
+			if(!mcPermissions.getInstance().mcrefresh(player)){
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+			if(split.length >= 2 && isPlayer(split[1])){
+				player.sendMessage("You have refreshed "+split[1]+"'s cooldowns!");  
+				player = getPlayer(split[1]);
+			}
+			/*
+			 * PREP MODES
+			 */
+			PP = Users.getProfile(player);
+			PP.setRecentlyHurt((long) 0);
+			PP.setHoePreparationMode(false);
+			PP.setAxePreparationMode(false);
+			PP.setFistsPreparationMode(false);
+			PP.setSwordsPreparationMode(false);
+			PP.setPickaxePreparationMode(false);
+			/*
+			 * GREEN TERRA
+			 */
+			PP.setGreenTerraMode(false);
+			PP.setGreenTerraDeactivatedTimeStamp((long) 0);
+
+			/*
+			 * GIGA DRILL BREAKER
+			 */
+			PP.setGigaDrillBreakerMode(false);
+			PP.setGigaDrillBreakerDeactivatedTimeStamp((long) 0);
+			/*
+			 * SERRATED STRIKE
+			 */
+			PP.setSerratedStrikesMode(false);
+			PP.setSerratedStrikesDeactivatedTimeStamp((long) 0);
+			/*
+			 * SUPER BREAKER
+			 */
+			PP.setSuperBreakerMode(false);
+			PP.setSuperBreakerDeactivatedTimeStamp((long) 0);
+			/*
+			 * TREE FELLER
+			 */
+			PP.setTreeFellerMode(false);
+			PP.setTreeFellerDeactivatedTimeStamp((long) 0);
+			/*
+			 * BERSERK
+			 */
+			PP.setBerserkMode(false);
+			PP.setBerserkDeactivatedTimeStamp((long)0);
+
+			player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesRefreshed")); 
+		}
+		/*
+		 * GODMODE COMMAND
+		 */
+		else if(LoadProperties.mcgodEnable && label.equalsIgnoreCase(LoadProperties.mcgod))
+		{ 
+			if(mcPermissions.permissionsEnabled)
+			{
+				if(!mcPermissions.getInstance().mcgod(player))
+				{
+					player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+					return true;
+				}
+				if(PP.getGodMode())
+				{
+					player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeDisabled")); 
+					PP.toggleGodMode();
+				} else 
+				{
+					player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeEnabled")); 
+					PP.toggleGodMode();
+				}
+			}
+		}
+		else if(LoadProperties.clearmyspawnEnable && LoadProperties.enableMySpawn && label.equalsIgnoreCase(LoadProperties.clearmyspawn) && mcPermissions.getInstance().mySpawn(player))
+		{ 
+			double x = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getX();
+			double y = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getY();
+			double z = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getZ();
+			String worldname = Bukkit.getServer().getWorlds().get(0).getName();
+			PP.setMySpawn(x, y, z, worldname);
+			player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnCleared")); 
+		}
+		else if(LoadProperties.mmoeditEnable && mcPermissions.permissionsEnabled && label.equalsIgnoreCase(""+LoadProperties.mmoedit))
+		{ 
+
+			if(!mcPermissions.getInstance().mmoedit(player))
+			{
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+			if(split.length < 3)
+			{
+				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.mmoedit+" playername skillname newvalue");  
+				return true;
+			}
+			if(split.length == 4)
+			{
+				if(isPlayer(split[1]) && m.isInt(split[3]) && Skills.isSkill(split[2]))
+				{
+					int newvalue = Integer.valueOf(split[3]);
+					Users.getProfile(getPlayer(split[1])).modifyskill(Skills.getSkillType(split[2]), newvalue);
+					player.sendMessage(ChatColor.RED+split[2]+" has been modified."); 
+				}
+			}
+			else if(split.length == 3)
+			{
+				if(m.isInt(split[2]) && Skills.isSkill(split[1]))
+				{
+					int newvalue = Integer.valueOf(split[2]);
+					PP.modifyskill(Skills.getSkillType(split[1]), newvalue);
+					player.sendMessage(ChatColor.RED+split[1]+" has been modified."); 
+				}
+			} else 
+			{
+				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.mmoedit+" playername skillname newvalue");  
+			}
+		}
+		/*
+		 * ADD EXPERIENCE COMMAND
+		 */
+		else if(LoadProperties.addxpEnable && mcPermissions.permissionsEnabled && label.equalsIgnoreCase(LoadProperties.addxp)){ 
+
+			if(!mcPermissions.getInstance().mmoedit(player)){
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+			if(split.length < 3){
+				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.addxp+" playername skillname xp");  
+				return true;
+			}
+			if(split.length == 4){
+				if(isPlayer(split[1]) && m.isInt(split[3]) && Skills.isSkill(split[2]))
+				{
+					int newvalue = Integer.valueOf(split[3]);
+					Users.getProfile(getPlayer(split[1])).addXP(Skills.getSkillType(split[2]), newvalue);
+					getPlayer(split[1]).sendMessage(ChatColor.GREEN+"Experience granted!"); 
+					player.sendMessage(ChatColor.RED+split[2]+" has been modified."); 
+					Skills.XpCheckAll(getPlayer(split[1]));
+				}
+			}
+			else if(split.length == 3 && m.isInt(split[2]) && Skills.isSkill(split[1]))
+			{
+				int newvalue = Integer.valueOf(split[2]);
+				Users.getProfile(player).addXP(Skills.getSkillType(split[1]), newvalue);
+				player.sendMessage(ChatColor.RED+split[1]+" has been modified."); 
+			} else {
+				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.addxp+" playername skillname xp");  
+			}
+		}
+		else if(LoadProperties.ptpEnable && label.equalsIgnoreCase(LoadProperties.ptp) && PP.inParty())
+		{
+			if(!mcPermissions.getInstance().partyTeleport(player))
+			{
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+			if(split.length < 2)
+			{
+				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.ptp+" <playername>");  
+				return true;
+			}
+			if(!isPlayer(split[1]))
+			{
+				player.sendMessage("That is not a valid player"); 
+			}
+			if(isPlayer(split[1]))
+			{
+				Player target = getPlayer(split[1]);
+				PlayerProfile PPt = Users.getProfile(target);
+				if(PP.getParty().equals(PPt.getParty()))
+				{
+					player.teleport(target);
+					player.sendMessage(ChatColor.GREEN+"You have teleported to "+target.getName()); 
+					target.sendMessage(ChatColor.GREEN+player.getName() + " has teleported to you."); 
+				}
+			}
+		}
+		/*
+		 * WHOIS COMMAND
+		 */
+		else if(LoadProperties.whoisEnable && label.equalsIgnoreCase(LoadProperties.whois) && mcPermissions.getInstance().whois(player)){ 
+			if(split.length < 2){
+				player.sendMessage(ChatColor.RED + "Proper usage is /"+LoadProperties.whois+" <playername>");  
+				return true;
+			}
+			//if split[1] is a player
+			if(isPlayer(split[1]))
+			{
+				Player target = getPlayer(split[1]);
+				PlayerProfile PPt = Users.getProfile(target);
+
+				player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~"); 
+				player.sendMessage(target.getName());
+				if(PPt.inParty())
+					player.sendMessage("Party: "+PPt.getParty()); 
+				player.sendMessage("Health: "+target.getHealth()+ChatColor.GRAY+" (20 is full health)");  
+				player.sendMessage("OP: " + target.isOp()); 
+				player.sendMessage(ChatColor.GREEN+"mcMMO Stats for "+ChatColor.YELLOW+target.getName()); 
+
+				player.sendMessage(ChatColor.GOLD+"-=GATHERING SKILLS=-");
+				if(mcPermissions.getInstance().excavation(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PPt.getSkillLevel(SkillType.EXCAVATION), PPt.getSkillXpLevel(SkillType.EXCAVATION), PPt.getXpToLevel(SkillType.EXCAVATION)));
+				if(mcPermissions.getInstance().herbalism(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PPt.getSkillLevel(SkillType.HERBALISM), PPt.getSkillXpLevel(SkillType.HERBALISM), PPt.getXpToLevel(SkillType.HERBALISM)));
+				if(mcPermissions.getInstance().mining(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PPt.getSkillLevel(SkillType.MINING), PPt.getSkillXpLevel(SkillType.MINING), PPt.getXpToLevel(SkillType.MINING)));
+				if(mcPermissions.getInstance().woodcutting(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PPt.getSkillLevel(SkillType.WOODCUTTING), PPt.getSkillXpLevel(SkillType.WOODCUTTING), PPt.getXpToLevel(SkillType.WOODCUTTING)));
+
+				player.sendMessage(ChatColor.GOLD+"-=COMBAT SKILLS=-");
+				if(mcPermissions.getInstance().axes(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PPt.getSkillLevel(SkillType.AXES), PPt.getSkillXpLevel(SkillType.AXES), PPt.getXpToLevel(SkillType.AXES)));
+				if(mcPermissions.getInstance().archery(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PPt.getSkillLevel(SkillType.ARCHERY), PPt.getSkillXpLevel(SkillType.ARCHERY), PPt.getXpToLevel(SkillType.ARCHERY)));
+				//if(mcPermissions.getInstance().sorcery(target))
+				//player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkill("sorcery"), PPt.getSkill("sorceryXP"), PPt.getXpToLevel("excavation")));
+				if(mcPermissions.getInstance().swords(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PPt.getSkillLevel(SkillType.SWORDS), PPt.getSkillXpLevel(SkillType.SWORDS), PPt.getXpToLevel(SkillType.SWORDS)));
+				if(mcPermissions.getInstance().taming(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PPt.getSkillLevel(SkillType.TAMING), PPt.getSkillXpLevel(SkillType.TAMING), PPt.getXpToLevel(SkillType.TAMING)));
+				if(mcPermissions.getInstance().unarmed(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PPt.getSkillLevel(SkillType.UNARMED), PPt.getSkillXpLevel(SkillType.UNARMED), PPt.getXpToLevel(SkillType.UNARMED)));
+
+				player.sendMessage(ChatColor.GOLD+"-=MISC SKILLS=-");
+				if(mcPermissions.getInstance().acrobatics(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PPt.getSkillLevel(SkillType.ACROBATICS), PPt.getSkillXpLevel(SkillType.ACROBATICS), PPt.getXpToLevel(SkillType.ACROBATICS)));
+				if(mcPermissions.getInstance().repair(target))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PPt.getSkillLevel(SkillType.REPAIR), PPt.getSkillXpLevel(SkillType.REPAIR), PPt.getXpToLevel(SkillType.REPAIR)));	
+
+				player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") +ChatColor.GREEN+(m.getPowerLevel(target))); 
+			}
+		}
+		/*
+		 * STATS COMMAND
+		 */
+		else if(LoadProperties.statsEnable && label.equalsIgnoreCase(LoadProperties.stats))
+		{ 
+
+			player.sendMessage(mcLocale.getString("mcPlayerListener.YourStats"));
+
+			if(mcPermissions.getEnabled())
+				player.sendMessage(mcLocale.getString("mcPlayerListener.NoSkillNote")); 
+
+			ChatColor header = ChatColor.GOLD;
+
+			if(Skills.hasGatheringSkills(player)){
+				player.sendMessage(header+"-=GATHERING SKILLS=-");
+				if(mcPermissions.getInstance().excavation(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION)));
+				if(mcPermissions.getInstance().herbalism(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM)));
+				if(mcPermissions.getInstance().mining(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING)));
+				if(mcPermissions.getInstance().woodcutting(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING)));
+			}
+			if(Skills.hasCombatSkills(player)){
+				player.sendMessage(header+"-=COMBAT SKILLS=-");
+				if(mcPermissions.getInstance().axes(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES)));
+				if(mcPermissions.getInstance().archery(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY)));
+				//if(mcPermissions.getInstance().sorcery(player))
+				//player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkill("sorcery"), PP.getSkill("sorceryXP"), PP.getXpToLevel("excavation")));
+				if(mcPermissions.getInstance().swords(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS)));
+				if(mcPermissions.getInstance().taming(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING)));
+				if(mcPermissions.getInstance().unarmed(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED)));
+			}
+
+			if(Skills.hasMiscSkills(player)){
+				player.sendMessage(header+"-=MISC SKILLS=-");
+				if(mcPermissions.getInstance().acrobatics(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS)));
+				if(mcPermissions.getInstance().repair(player))
+					player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR)));	
+			}
+			player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel")+ChatColor.GREEN+(m.getPowerLevel(player))); 
+		}
+		//Invite Command
+		else if(LoadProperties.inviteEnable && label.equalsIgnoreCase(LoadProperties.invite) && mcPermissions.getInstance().party(player)){ 
+
+			Party Pinstance = Party.getInstance();
+			
+			if(!PP.inParty())
+			{
+				player.sendMessage(mcLocale.getString("mcPlayerListener.NotInParty")); 
+				return true;
+			}
+			if(split.length < 2)
+			{
+				player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.invite+" <playername>");  
+				return true;
+			}
+			if(PP.inParty() && split.length >= 2 && isPlayer(split[1]))
+			{
+				if(Pinstance.canInvite(player, PP)) {
+					Player target = getPlayer(split[1]);
+					PlayerProfile PPt = Users.getProfile(target);
+					PPt.modifyInvite(PP.getParty());
+	
+	
+					player.sendMessage(mcLocale.getString("mcPlayerListener.InviteSuccess")); 
+					//target.sendMessage(ChatColor.RED+"ALERT: "+ChatColor.GREEN+"You have received a party invite for "+PPt.getInvite()+" from "+player.getName());   
+					target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite1", new Object[] {PPt.getInvite(), player.getName()}));
+					//target.sendMessage(ChatColor.YELLOW+"Type "+ChatColor.GREEN+LoadProperties.accept+ChatColor.YELLOW+" to accept the invite");   
+					target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite2", new Object[] {LoadProperties.accept}));
+				} else {
+					player.sendMessage(mcLocale.getString("Party.Locked"));
+					return true;
+				}
+			}
+		}
+		//Accept invite
+		else if(LoadProperties.acceptEnable && label.equalsIgnoreCase(LoadProperties.accept) && mcPermissions.getInstance().party(player))
+		{ 
+			if(PP.hasPartyInvite())
+			{
+				Party Pinstance = Party.getInstance();
+				
+				if(PP.inParty()) 
+				{
+					Pinstance.removeFromParty(player, PP);
+				}
+				PP.acceptInvite();
+				Pinstance.addToParty(player, PP, PP.getParty(), true);
+				
+			} else 
+			{
+				player.sendMessage(mcLocale.getString("mcPlayerListener.NoInvites")); 
+			}
+		}
+		//Party command
+		else if(LoadProperties.partyEnable && label.equalsIgnoreCase(LoadProperties.party))
+		{ 
+			if(!mcPermissions.getInstance().party(player))
+			{
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+			
+			Party Pinstance = Party.getInstance();
+			
+			if(PP.inParty() && (!Pinstance.isParty(PP.getParty()) || !Pinstance.isInParty(player, PP))) 
+			{
+				Pinstance.addToParty(player, PP, PP.getParty(), false);
+			}
+			
+			if(args.length == 0 && !PP.inParty())
+			{
+				player.sendMessage(mcLocale.getString("Party.Help1", new Object[] {LoadProperties.party}));
+				player.sendMessage(mcLocale.getString("Party.Help2", new Object[] {LoadProperties.party}));
+				player.sendMessage(mcLocale.getString("Party.Help3", new Object[] {LoadProperties.party}));
+				return true;
+			} else if(args.length == 0 && PP.inParty())
+			{
+				String tempList = ""; 
+				int x = 0;
+				for(Player p : Bukkit.getServer().getOnlinePlayers())
+				{
+					if(PP.getParty().equals(Users.getProfile(p).getParty()))
+					{
+						if(p != null && x+1 >= Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers()))
+						{
+							if(Pinstance.isPartyLeader(p, PP.getParty()))
+							{
+								tempList+=ChatColor.GOLD+p.getName();
+								x++;
+							}
+							else
+							{
+								tempList+= ChatColor.WHITE+p.getName();
+								x++;
+							}
+						}
+						if(p != null && x < Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers()))
+						{
+							if(Pinstance.isPartyLeader(p, PP.getParty()))
+							{
+								tempList+=ChatColor.GOLD+p.getName()+", ";
+								x++;
+							}
+							else
+							{
+								tempList+= ChatColor.WHITE+p.getName()+", ";
+								x++;
+							}
+						}
+					}
+				}
+				player.sendMessage(mcLocale.getString("mcPlayerListener.YouAreInParty", new Object[] {PP.getParty()}));
+				player.sendMessage(mcLocale.getString("mcPlayerListener.PartyMembers")+" ("+tempList+ChatColor.GREEN+")");
+				return true;
+			} else if(args.length == 1)
+			{
+				if(args[0].equals("q") && PP.inParty()) 
+				{
+					Pinstance.removeFromParty(player, PP);
+
+					player.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty")); 
+					return true;
+				} else if (args[0].equalsIgnoreCase("?")) {
+					player.sendMessage(mcLocale.getString("Party.Help4", new Object[] {LoadProperties.party}));
+					player.sendMessage(mcLocale.getString("Party.Help2", new Object[] {LoadProperties.party}));
+					player.sendMessage(mcLocale.getString("Party.Help5", new Object[] {LoadProperties.party}));
+					player.sendMessage(mcLocale.getString("Party.Help6", new Object[] {LoadProperties.party}));
+					player.sendMessage(mcLocale.getString("Party.Help7", new Object[] {LoadProperties.party}));
+					player.sendMessage(mcLocale.getString("Party.Help8", new Object[] {LoadProperties.party}));
+					player.sendMessage(mcLocale.getString("Party.Help9", new Object[] {LoadProperties.party}));
+				} else if (args[0].equalsIgnoreCase("lock")) 
+				{
+					if(PP.inParty()) 
+					{
+						if(Pinstance.isPartyLeader(player, PP.getParty())) 
+						{
+							Pinstance.lockParty(PP.getParty());
+							player.sendMessage(mcLocale.getString("Party.Locked"));
+						} else 
+						{
+							player.sendMessage(mcLocale.getString("Party.NotOwner"));
+						}
+					} else 
+					{
+						player.sendMessage(mcLocale.getString("Party.InvalidName"));
+					}
+				} else if (args[0].equalsIgnoreCase("unlock")) 
+				{
+					if(PP.inParty()) 
+					{
+						if(Pinstance.isPartyLeader(player, PP.getParty())) 
+						{
+							Pinstance.unlockParty(PP.getParty());
+							player.sendMessage(mcLocale.getString("Party.Unlocked"));
+						} else 
+						{
+							player.sendMessage(mcLocale.getString("Party.NotOwner"));
+						}
+					} else 
+					{
+						player.sendMessage(mcLocale.getString("Party.InvalidName"));
+					}
+				//Party debugging command.
+				//} else if (args[0].equalsIgnoreCase("dump")) {
+				//	Pinstance.dump(player);
+				} else 
+				{
+					if(PP.inParty()) 
+					{
+						Pinstance.removeFromParty(player, PP);
+					}
+					Pinstance.addToParty(player, PP, args[0], false);
+					return true;
+				}
+			} else if(args.length == 2 && PP.inParty()) 
+			{
+				if(args[0].equalsIgnoreCase("password")) 
+				{
+					if(Pinstance.isPartyLeader(player, PP.getParty())) 
+					{
+						if(Pinstance.isPartyLocked(PP.getParty())) 
+						{
+							Pinstance.setPartyPassword(PP.getParty(), args[1]);
+							player.sendMessage(mcLocale.getString("Party.PasswordSet", new Object[] {args[1]}));
+						} else 
+						{
+							player.sendMessage(mcLocale.getString("Party.IsntLocked"));
+						}
+					} else 
+					{
+						player.sendMessage(mcLocale.getString("Party.NotOwner"));
+					}
+				} else if(args[0].equalsIgnoreCase("kick")) 
+				{
+					if(Pinstance.isPartyLeader(player, PP.getParty())) 
+					{
+						if(Pinstance.isPartyLocked(PP.getParty())) 
+						{
+							Player tPlayer = null;
+							if(Bukkit.getServer().getPlayer(args[1]) != null) tPlayer = Bukkit.getServer().getPlayer(args[1]);
+							if(tPlayer == null) 
+							{
+								player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] {args[1]}));
+							}
+							if(!Pinstance.inSameParty(player, tPlayer)) 
+							{
+								player.sendMessage(mcLocale.getString("Party.NotInYourParty", new Object[] {tPlayer.getName()}));
+							} else 
+							{
+								//Not an admin
+								if(!mcPermissions.getInstance().admin(player)) 
+								{
+									//Can't kick an admin
+									if(mcPermissions.getInstance().admin(tPlayer)) 
+									{
+										player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] {tPlayer.getName()}));
+									}
+								}
+								PlayerProfile tPP = Users.getProfile(tPlayer);
+								
+								Pinstance.removeFromParty(tPlayer, tPP);
+								
+								tPlayer.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty"));
+							}
+						} else {
+							player.sendMessage(mcLocale.getString("Party.IsntLocked"));
+						}
+					} else {
+						player.sendMessage(mcLocale.getString("Party.NotOwner"));
+					}
+				} else if(args[0].equalsIgnoreCase("owner")) 
+				{
+					if(Pinstance.isPartyLeader(player, PP.getParty())) 
+					{
+						Player tPlayer = null;
+						if(Bukkit.getServer().getPlayer(args[1]) != null) tPlayer = Bukkit.getServer().getPlayer(args[1]);
+						if(tPlayer == null) 
+						{
+							player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] {args[1]}));
+						}
+						if(!Pinstance.inSameParty(player, tPlayer)) 
+						{
+							player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] {tPlayer.getName()}));
+						} else 
+						{
+							Pinstance.setPartyLeader(PP.getParty(), tPlayer.getName());
+						}
+					} else 
+					{
+						player.sendMessage(mcLocale.getString("Party.NotOwner"));
+					}
+				} else 
+				{
+					Pinstance.removeFromParty(player, PP);
+					Pinstance.addToParty(player, PP, args[0], false, args[1]);
+				}
+			} else if(args.length == 2 && !PP.inParty()) 
+			{
+				Pinstance.addToParty(player, PP, args[0], false, args[1]);
+			}
+		}
+		else if(LoadProperties.partyEnable && label.equalsIgnoreCase("p")){
+
+			// Console message?
+			if(!(sender instanceof Player)) 
+			{
+				if(args.length < 2) return true;
+				String pMessage = args[1];
+				for (int i = 2; i <= args.length - 1; i++) {
+					pMessage = pMessage + " " + args[i];
+				}
+
+				String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE
+				+ "*Console*" + ChatColor.GREEN + ") ";
+
+				log.log(Level.INFO,
+						"[P](" + args[0] + ")" + "<*Console*> "
+						+ pMessage);
+
+				for(Player herp : Bukkit.getServer().getOnlinePlayers()) {
+					if(Users.getProfile(herp).inParty()) {
+						if(Users.getProfile(herp).getParty().equalsIgnoreCase(args[0])) {
+							herp.sendMessage(pPrefix + pMessage);
+						}
+					}
+				}
+				return true;
+			}
+
+			if(!mcPermissions.getInstance().party(player)){
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+
+			// Not a toggle, a message
+
+			if (args.length >= 1) {
+				String pMessage = args[0];
+				for (int i = 1; i <= args.length - 1; i++) {
+					pMessage = pMessage + " " + args[i];
+				}
+				String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE
+				+ player.getDisplayName() + ChatColor.GREEN + ") ";
+
+				log.log(Level.INFO,
+						"[P](" + PP.getParty() + ")" + "<" + player.getDisplayName()
+						+ "> " + pMessage);
+
+				for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
+					if (Users.getProfile(herp).inParty()) {
+						if (Party.getInstance().inSameParty(herp, player))
+							herp.sendMessage(pPrefix + pMessage);
+					}
+				}
+
+				return true;
+			}
+
+			if(PP.getAdminChatMode())
+				PP.toggleAdminChat();
+
+			PP.togglePartyChat();
+
+			if(PP.getPartyChatMode()){
+				//player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On"); 
+				player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOn"));
+			} else {
+				//player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off");  
+				player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOff"));
+			}
+		}
+
+		else if(label.equalsIgnoreCase("a")){
+			// Console message?
+			if(!(sender instanceof Player) && args.length >= 1) 
+			{
+				String aMessage = args[0];
+				for (int i = 1; i <= args.length - 1; i++) {
+					aMessage = aMessage + " " + args[i];
+				}
+
+				String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE
+				+ "*Console*" + ChatColor.AQUA + "} ";
+
+				log.log(Level.INFO, "[A]<*Console*> "
+						+ aMessage);
+
+				for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
+					if (mcPermissions.getInstance().adminChat(herp) || herp.isOp())
+						herp.sendMessage(aPrefix + aMessage);
+				}
+				return true;
+			}
+
+			if(!mcPermissions.getInstance().adminChat(player) && !player.isOp())
+			{
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+
+			// Not a toggle, a message
+
+			if (args.length >= 1) {
+				String aMessage = args[0];
+				for (int i = 1; i <= args.length - 1; i++) {
+					aMessage = aMessage + " " + args[i];
+				}
+
+				String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE
+				+ player.getDisplayName() + ChatColor.AQUA + "} ";
+				log.log(Level.INFO, "[A]<" + player.getDisplayName() + "> "
+						+ aMessage);
+				for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
+					if (mcPermissions.getInstance().adminChat(herp) || herp.isOp())
+						herp.sendMessage(aPrefix + aMessage);
+				}
+				return true;
+			}
+
+			if(PP.getPartyChatMode())
+				PP.togglePartyChat();
+
+			PP.toggleAdminChat();
+
+			if(PP.getAdminChatMode())
+			{
+				player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOn"));
+				//player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On");  
+			} else {
+				player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOff"));
+				//player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off");  
+			}
+		}
+
+		/*
+		 * MYSPAWN
+		 */
+		else if(LoadProperties.myspawnEnable && LoadProperties.enableMySpawn && label.equalsIgnoreCase(LoadProperties.myspawn))
+		{ 
+			if(!mcPermissions.getInstance().mySpawn(player)){
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+			if(System.currentTimeMillis() < (PP.getMySpawnATS()*1000) + 3600000){
+				long x = (((PP.getMySpawnATS()*1000) + 3600000) - System.currentTimeMillis());
+				int y = (int) (x/60000);
+				int z = (int) ((x/1000) - (y*60));
+				player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnTimeNotice", new Object[] {y, z}));    
+				return true;
+			}
+			PP.setMySpawnATS(System.currentTimeMillis());
+			if(PP.getMySpawn(player) != null)
+			{
+				Location mySpawn = PP.getMySpawn(player);
+				
+				if(mySpawn != null){
+					//It's done twice because it acts oddly when you are in another world
+					player.teleport(mySpawn);
+					player.teleport(mySpawn);
+				}
+			} else {
+				player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnNotExist")); 
+			}
+		}
+		else if(LoadProperties.spoutEnabled && LoadProperties.xpbar && LoadProperties.xplockEnable && label.equalsIgnoreCase(LoadProperties.xplock))
+		{
+			if(split.length >= 2 && Skills.isSkill(split[1]) && mcPermissions.permission(player, "mcmmo.skills."+Skills.getSkillType(split[1]).toString().toLowerCase()))
+			{
+				if(PP.getXpBarLocked())
+				{
+					PP.setSkillLock(Skills.getSkillType(split[1]));
+					player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] {m.getCapitalized(PP.getSkillLock().toString())}));
+				}
+				else
+				{
+					PP.setSkillLock(Skills.getSkillType(split[1]));
+					PP.toggleXpBarLocked();
+					player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] {m.getCapitalized(PP.getSkillLock().toString())}));
+				}
+				SpoutStuff.updateXpBar(player);
+			} else if (split.length < 2)
+			{
+				if(PP.getXpBarLocked())
+				{
+					PP.toggleXpBarLocked();
+					player.sendMessage(mcLocale.getString("Commands.xplock.unlocked"));
+				} else if(PP.getLastGained() != null)
+				{
+					PP.toggleXpBarLocked();
+					PP.setSkillLock(PP.getLastGained());
+					player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] {m.getCapitalized(PP.getSkillLock().toString())}));
+				}
+			}
+			else if (split.length >= 2 && !Skills.isSkill(split[1]))
+			{
+				player.sendMessage("Commands.xplock.invalid");
+			}
+			else if(split.length >= 2 && Skills.isSkill(split[1]) && !mcPermissions.permission(player, "mcmmo.skills."+Skills.getSkillType(split[1]).toString().toLowerCase()))
+			{
+				player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));  
+				return true;
+			}
+		}
+		else if (LoadProperties.spoutEnabled && label.equalsIgnoreCase("mchud"))
+		{
+			if(split.length >= 2)
+			{
+				for(HUDType x : HUDType.values())
+				{
+					if(x.toString().toLowerCase().equals(split[1].toLowerCase()))
+					{
+						if(SpoutStuff.playerHUDs.containsKey(player))
+						{
+							SpoutStuff.playerHUDs.get(player).resetHUD();
+							SpoutStuff.playerHUDs.remove(player);
+							PP.setHUDType(x);
+							SpoutStuff.playerHUDs.put(player, new HUDmmo(player));
+						}
+					}
+				}
+			}
+		}
+		return true;
+	}
+}

+ 0 - 0
mcMMO/com/gmail/nossr50/config/LoadProperties.java → src/com/gmail/nossr50/config/LoadProperties.java


+ 73 - 73
mcMMO/com/gmail/nossr50/config/Misc.java → src/com/gmail/nossr50/config/Misc.java

@@ -1,74 +1,74 @@
-package com.gmail.nossr50.config;
-
-import java.util.*;
-import java.util.logging.Logger;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.LivingEntity;
-
-import com.gmail.nossr50.mcMMO;
-
-public class Misc 
-{
-    String location = "mcmmo.properties";
-    
-    protected static final Logger log = Logger.getLogger("Minecraft");
-    
-    public ArrayList<Entity> mobSpawnerList = new ArrayList<Entity>();
-    public ArrayList<Block> blockWatchList = new ArrayList<Block>();
-    public ArrayList<Block> treeFeller = new ArrayList<Block>();
-    public HashMap<Entity, Integer> arrowTracker = new HashMap<Entity, Integer>();
-    public ArrayList<LivingEntity> bleedTracker = new ArrayList<LivingEntity>();
-    mcMMO plugin = null;
-    
-    //BLEED QUE STUFF
-    public LivingEntity[] bleedQue = new LivingEntity[20];
-    public int bleedQuePos = 0;
-    public LivingEntity[] bleedRemovalQue = new LivingEntity[20];
-    public int bleedRemovalQuePos = 0;
-
-    public Misc(mcMMO mcMMO) 
-    {
-		plugin = mcMMO;
-	}
-    
-    public void addToBleedQue(LivingEntity entity)
-    {
-    	//Assign entity to empty position
-    	bleedQue[bleedQuePos] = entity;
-    	
-    	//Move position up by 1 increment
-    	bleedQuePos++;
-    	
-    	//Check if array is full
-    	if(bleedQuePos >= bleedQue.length)
-    	{
-    		//Create new temporary array
-    		LivingEntity[] temp = new LivingEntity[bleedQue.length*2];
-    		//Copy data from bleedQue to temporary array
-    		System.arraycopy(bleedQue, 0, temp, 0, bleedQue.length);
-    		//Point bleedQue to new array
-    		bleedQue = temp;
-    	}
-    }
-    
-    public void addToBleedRemovalQue(LivingEntity entity)
-    {
-    	//Assign entity to empty position
-    	bleedRemovalQue[bleedRemovalQuePos] = entity;
-    	
-    	//Move position up by 1 increment
-    	bleedRemovalQuePos++;
-    	
-    	//Check if array is full
-    	if(bleedRemovalQuePos >= bleedRemovalQue.length)
-    	{
-    		//Create new temporary array
-    		LivingEntity[] temp = new LivingEntity[bleedRemovalQue.length*2];
-    		//Copy data from bleedRemovalQue to temporary array
-    		System.arraycopy(bleedRemovalQue, 0, temp, 0, bleedRemovalQue.length);
-    		//Point bleedRemovalQue to new array
-    		bleedRemovalQue = temp;
-    	}
-    }
+package com.gmail.nossr50.config;
+
+import java.util.*;
+import java.util.logging.Logger;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.LivingEntity;
+
+import com.gmail.nossr50.mcMMO;
+
+public class Misc 
+{
+    String location = "mcmmo.properties";
+    
+    protected static final Logger log = Logger.getLogger("Minecraft");
+    
+    public ArrayList<Entity> mobSpawnerList = new ArrayList<Entity>();
+    public ArrayList<Block> blockWatchList = new ArrayList<Block>();
+    public ArrayList<Block> treeFeller = new ArrayList<Block>();
+    public HashMap<Entity, Integer> arrowTracker = new HashMap<Entity, Integer>();
+    public ArrayList<LivingEntity> bleedTracker = new ArrayList<LivingEntity>();
+    mcMMO plugin = null;
+    
+    //BLEED QUE STUFF
+    public LivingEntity[] bleedQue = new LivingEntity[20];
+    public int bleedQuePos = 0;
+    public LivingEntity[] bleedRemovalQue = new LivingEntity[20];
+    public int bleedRemovalQuePos = 0;
+
+    public Misc(mcMMO mcMMO) 
+    {
+		plugin = mcMMO;
+	}
+    
+    public void addToBleedQue(LivingEntity entity)
+    {
+    	//Assign entity to empty position
+    	bleedQue[bleedQuePos] = entity;
+    	
+    	//Move position up by 1 increment
+    	bleedQuePos++;
+    	
+    	//Check if array is full
+    	if(bleedQuePos >= bleedQue.length)
+    	{
+    		//Create new temporary array
+    		LivingEntity[] temp = new LivingEntity[bleedQue.length*2];
+    		//Copy data from bleedQue to temporary array
+    		System.arraycopy(bleedQue, 0, temp, 0, bleedQue.length);
+    		//Point bleedQue to new array
+    		bleedQue = temp;
+    	}
+    }
+    
+    public void addToBleedRemovalQue(LivingEntity entity)
+    {
+    	//Assign entity to empty position
+    	bleedRemovalQue[bleedRemovalQuePos] = entity;
+    	
+    	//Move position up by 1 increment
+    	bleedRemovalQuePos++;
+    	
+    	//Check if array is full
+    	if(bleedRemovalQuePos >= bleedRemovalQue.length)
+    	{
+    		//Create new temporary array
+    		LivingEntity[] temp = new LivingEntity[bleedRemovalQue.length*2];
+    		//Copy data from bleedRemovalQue to temporary array
+    		System.arraycopy(bleedRemovalQue, 0, temp, 0, bleedRemovalQue.length);
+    		//Point bleedRemovalQue to new array
+    		bleedRemovalQue = temp;
+    	}
+    }
 }

+ 12 - 12
mcMMO/com/gmail/nossr50/datatypes/FakeBlockBreakEvent.java → src/com/gmail/nossr50/datatypes/FakeBlockBreakEvent.java

@@ -1,13 +1,13 @@
-package com.gmail.nossr50.datatypes;
-
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-
-public class FakeBlockBreakEvent extends BlockBreakEvent {
-	private static final long serialVersionUID = 1L;
-
-	public FakeBlockBreakEvent(Block theBlock, Player player) {
-		super(theBlock, player);
-	}
+package com.gmail.nossr50.datatypes;
+
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.event.block.BlockBreakEvent;
+
+public class FakeBlockBreakEvent extends BlockBreakEvent {
+	private static final long serialVersionUID = 1L;
+
+	public FakeBlockBreakEvent(Block theBlock, Player player) {
+		super(theBlock, player);
+	}
 }

+ 8 - 8
mcMMO/com/gmail/nossr50/datatypes/HUDType.java → src/com/gmail/nossr50/datatypes/HUDType.java

@@ -1,8 +1,8 @@
-package com.gmail.nossr50.datatypes;
-
-public enum HUDType 
-{
-	STANDARD,
-	SMALL,
-	RETRO;
-}
+package com.gmail.nossr50.datatypes;
+
+public enum HUDType 
+{
+	STANDARD,
+	SMALL,
+	RETRO;
+}

+ 255 - 255
mcMMO/com/gmail/nossr50/datatypes/HUDmmo.java → src/com/gmail/nossr50/datatypes/HUDmmo.java

@@ -1,256 +1,256 @@
-package com.gmail.nossr50.datatypes;
-
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.getspout.spoutapi.SpoutManager;
-import org.getspout.spoutapi.gui.Color;
-import org.getspout.spoutapi.gui.GenericGradient;
-import org.getspout.spoutapi.gui.GenericTexture;
-import org.getspout.spoutapi.gui.RenderPriority;
-import org.getspout.spoutapi.gui.Widget;
-import org.getspout.spoutapi.player.SpoutPlayer;
-
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.m;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.config.LoadProperties;
-import com.gmail.nossr50.spout.SpoutStuff;
-import com.gmail.nossr50.spout.mmoHelper;
-
-public class HUDmmo 
-{
-	int center_x = 427/2;
-	int center_y = 240/2;
-	
-	String playerName = null;
-	Widget xpbar = null;
-	GenericGradient xpfill = null;
-	GenericGradient xpbg = null;
-	GenericGradient xpicon_bg = null;
-	GenericGradient xpicon_border = null;
-	GenericTexture xpicon = null;
-	mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO");
-	
-	public HUDmmo(Player player)
-	{
-		playerName = player.getName();
-		initializeHUD(player);
-	}
-	
-	public void initializeHUD(Player player)
-	{
-		HUDType type = Users.getProfile(player).getHUDType();
-		switch(type)
-		{
-			case RETRO:
-			{
-				initializeXpBarDisplayRetro(SpoutManager.getPlayer(player));
-				break;
-			}
-			case STANDARD:
-			{
-				initializeXpBarDisplayStandard(SpoutManager.getPlayer(player));
-				break;
-			}
-			case SMALL:
-			{
-				initializeXpBarDisplaySmall(SpoutManager.getPlayer(player));
-				break;
-			}
-		}
-	}
-	
-	public void updateXpBarDisplay(HUDType type, Player player)
-	{
-		switch(type)
-		{
-		case RETRO:
-		{
-			updateXpBarRetro(player, Users.getProfile(player));
-			break;
-		}
-		case STANDARD:
-		{
-			updateXpBarStandard(player, Users.getProfile(player));
-			break;
-		}
-		case SMALL:
-		{
-			updateXpBarStandard(player, Users.getProfile(player));
-			break;
-		}
-		}
-	}
-	
-	public void resetHUD()
-	{
-		SpoutPlayer sPlayer = SpoutStuff.getSpoutPlayer(playerName);
-		if(sPlayer != null)
-		{
-			sPlayer.getMainScreen().removeWidgets(plugin);
-			
-			//Reset the objects
-			xpbar = null;
-			xpfill = null;
-			xpbg = null;
-			xpicon = null;
-			
-			mmoHelper.initialize(sPlayer, plugin);
-			sPlayer.getMainScreen().setDirty(true);
-		}
-	}
-	
-	private void initializeXpBarDisplayRetro(SpoutPlayer sPlayer)
-	{
-		Color border = new Color((float)LoadProperties.xpborder_r, (float)LoadProperties.xpborder_g, (float)LoadProperties.xpborder_b, 1f);
-		Color green = new Color(0, 1f, 0, 1f);
-		Color background = new Color((float)LoadProperties.xpbackground_r, (float)LoadProperties.xpbackground_g, (float)LoadProperties.xpbackground_b, 1f);
-		Color darkbg = new Color(0.2f, 0.2f, 0.2f, 1f);
-		
-		xpicon = new GenericTexture();
-		xpbar = new GenericGradient();
-		xpfill = new GenericGradient();
-		xpbg = new GenericGradient();
-		
-		xpicon_bg = new GenericGradient();
-		xpicon_border = new GenericGradient();
-		
-		xpicon_bg.setBottomColor(darkbg).setTopColor(darkbg).setWidth(4).setHeight(4).setPriority(RenderPriority.High).setX(142).setY(10).setDirty(true);
-		xpicon_border.setBottomColor(border).setTopColor(border).setWidth(6).setHeight(6).setPriority(RenderPriority.Highest).setX(141).setY(9).setDirty(true);
-		
-		xpicon.setWidth(6).setHeight(6).setX(141).setY(9).setPriority(RenderPriority.Normal).setDirty(true);
-		xpicon.setUrl("Icon_r.png");
-		
-		xpbar.setWidth(128).setHeight(4).setX(149).setY(10);
-		((GenericGradient) xpbar).setBottomColor(border).setTopColor(border).setPriority(RenderPriority.Highest).setDirty(true);
-		
-		xpfill.setWidth(0).setHeight(2).setX(150).setY(11);
-		xpfill.setBottomColor(green).setTopColor(green).setPriority(RenderPriority.Lowest).setDirty(true);
-		
-		xpbg.setWidth(126).setHeight(2).setX(150).setY(11);
-		xpbg.setBottomColor(background).setTopColor(background).setPriority(RenderPriority.Low).setDirty(true);
-		
-		if(LoadProperties.xpbar)
-		{
-			sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbar);
-			sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpfill);
-			sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbg);
-			if(LoadProperties.xpicon)
-			{
-				sPlayer.getMainScreen().attachWidget(plugin, (GenericTexture)xpicon);
-				sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_bg);
-			}
-			sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_border);
-		}
-		
-		sPlayer.getMainScreen().setDirty(true);
-	}
-	
-	private void initializeXpBarDisplayStandard(SpoutPlayer sPlayer)
-	{
-		//Setup xp bar
-		xpbar = new GenericTexture();
-		
-		if(LoadProperties.xpbar && LoadProperties.xpicon)
-		{
-			xpicon = new GenericTexture();
-			
-			xpicon.setUrl("Icon.png");
-			
-			xpicon.setHeight(16).setWidth(32).setX(LoadProperties.xpicon_x).setY(LoadProperties.xpicon_y);
-			
-			xpicon.setDirty(true);
-			
-			sPlayer.getMainScreen().attachWidget(plugin, xpicon);
-		}
-		
-		if(LoadProperties.xpbar)
-		{
-			((GenericTexture)xpbar).setUrl("xpbar_inc000.png");
-			xpbar.setX(LoadProperties.xpbar_x).setY(LoadProperties.xpbar_y).setHeight(8).setWidth(256);
-		
-			sPlayer.getMainScreen().attachWidget(plugin, xpbar);
-		}
-		sPlayer.getMainScreen().setDirty(true);
-	}
-	
-	private void initializeXpBarDisplaySmall(SpoutPlayer sPlayer)
-	{
-		//Setup xp bar
-		xpbar = new GenericTexture();
-		
-		if(LoadProperties.xpbar && LoadProperties.xpicon)
-		{
-			xpicon = new GenericTexture();
-			
-			xpicon.setUrl("Icon.png");
-			
-			xpicon.setHeight(8).setWidth(16).setX(center_x-(8+64)).setY(LoadProperties.xpicon_y+2);
-			
-			xpicon.setDirty(true);
-			
-			sPlayer.getMainScreen().attachWidget(plugin, xpicon);
-		}
-		
-		if(LoadProperties.xpbar)
-		{
-			((GenericTexture)xpbar).setUrl("xpbar_inc000.png");
-			xpbar.setX(center_x-64).setY(LoadProperties.xpbar_y).setHeight(4).setWidth(128);
-		
-			sPlayer.getMainScreen().attachWidget(plugin, xpbar);
-		}
-		
-		sPlayer.getMainScreen().setDirty(true);
-	}
-	
-	private void updateXpBarStandard(Player player, PlayerProfile PP)
-	{
-		if(!LoadProperties.xpbar)
-			return;
-		
-		SkillType theType = null;
-		
-		if(PP.getXpBarLocked())
-			theType=PP.getSkillLock();
-		else
-			theType=PP.getLastGained();
-		
-		if(theType == null)
-			return;
-		
-		((GenericTexture) xpicon).setUrl(m.getCapitalized(theType.toString())+".png");
-		xpicon.setDirty(true);
-
-		((GenericTexture) xpbar).setUrl(SpoutStuff.getUrlBar(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.STANDARD)));
-		xpbar.setDirty(true);
-		
-		SpoutManager.getPlayer(player).getMainScreen().setDirty(true);
-	}
-	
-	private void updateXpBarRetro(Player player, PlayerProfile PP)
-	{
-		if(!LoadProperties.xpbar)
-			return;
-		SkillType theType = null;
-		
-		if(PP.getXpBarLocked() && PP.getSkillLock() != null)
-			theType=PP.getSkillLock();
-		else
-			theType=PP.getLastGained();
-		
-		if(theType == null)
-			return;
-		
-		Color color = SpoutStuff.getRetroColor(theType);
-		
-		if(xpicon != null && theType != null)
-			xpicon.setUrl(m.getCapitalized(theType.toString())+"_r.png");
-		
-		if(theType != null)
-			xpfill.setBottomColor(color).setTopColor(color).setWidth(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.RETRO)).setDirty(true);
-		else
-			System.out.println("theType was null!");
-		
-		SpoutManager.getPlayer(player).getMainScreen().setDirty(true);
-	}
+package com.gmail.nossr50.datatypes;
+
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.getspout.spoutapi.SpoutManager;
+import org.getspout.spoutapi.gui.Color;
+import org.getspout.spoutapi.gui.GenericGradient;
+import org.getspout.spoutapi.gui.GenericTexture;
+import org.getspout.spoutapi.gui.RenderPriority;
+import org.getspout.spoutapi.gui.Widget;
+import org.getspout.spoutapi.player.SpoutPlayer;
+
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.m;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.config.LoadProperties;
+import com.gmail.nossr50.spout.SpoutStuff;
+import com.gmail.nossr50.spout.mmoHelper;
+
+public class HUDmmo 
+{
+	int center_x = 427/2;
+	int center_y = 240/2;
+	
+	String playerName = null;
+	Widget xpbar = null;
+	GenericGradient xpfill = null;
+	GenericGradient xpbg = null;
+	GenericGradient xpicon_bg = null;
+	GenericGradient xpicon_border = null;
+	GenericTexture xpicon = null;
+	mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO");
+	
+	public HUDmmo(Player player)
+	{
+		playerName = player.getName();
+		initializeHUD(player);
+	}
+	
+	public void initializeHUD(Player player)
+	{
+		HUDType type = Users.getProfile(player).getHUDType();
+		switch(type)
+		{
+			case RETRO:
+			{
+				initializeXpBarDisplayRetro(SpoutManager.getPlayer(player));
+				break;
+			}
+			case STANDARD:
+			{
+				initializeXpBarDisplayStandard(SpoutManager.getPlayer(player));
+				break;
+			}
+			case SMALL:
+			{
+				initializeXpBarDisplaySmall(SpoutManager.getPlayer(player));
+				break;
+			}
+		}
+	}
+	
+	public void updateXpBarDisplay(HUDType type, Player player)
+	{
+		switch(type)
+		{
+		case RETRO:
+		{
+			updateXpBarRetro(player, Users.getProfile(player));
+			break;
+		}
+		case STANDARD:
+		{
+			updateXpBarStandard(player, Users.getProfile(player));
+			break;
+		}
+		case SMALL:
+		{
+			updateXpBarStandard(player, Users.getProfile(player));
+			break;
+		}
+		}
+	}
+	
+	public void resetHUD()
+	{
+		SpoutPlayer sPlayer = SpoutStuff.getSpoutPlayer(playerName);
+		if(sPlayer != null)
+		{
+			sPlayer.getMainScreen().removeWidgets(plugin);
+			
+			//Reset the objects
+			xpbar = null;
+			xpfill = null;
+			xpbg = null;
+			xpicon = null;
+			
+			mmoHelper.initialize(sPlayer, plugin);
+			sPlayer.getMainScreen().setDirty(true);
+		}
+	}
+	
+	private void initializeXpBarDisplayRetro(SpoutPlayer sPlayer)
+	{
+		Color border = new Color((float)LoadProperties.xpborder_r, (float)LoadProperties.xpborder_g, (float)LoadProperties.xpborder_b, 1f);
+		Color green = new Color(0, 1f, 0, 1f);
+		Color background = new Color((float)LoadProperties.xpbackground_r, (float)LoadProperties.xpbackground_g, (float)LoadProperties.xpbackground_b, 1f);
+		Color darkbg = new Color(0.2f, 0.2f, 0.2f, 1f);
+		
+		xpicon = new GenericTexture();
+		xpbar = new GenericGradient();
+		xpfill = new GenericGradient();
+		xpbg = new GenericGradient();
+		
+		xpicon_bg = new GenericGradient();
+		xpicon_border = new GenericGradient();
+		
+		xpicon_bg.setBottomColor(darkbg).setTopColor(darkbg).setWidth(4).setHeight(4).setPriority(RenderPriority.High).setX(142).setY(10).setDirty(true);
+		xpicon_border.setBottomColor(border).setTopColor(border).setWidth(6).setHeight(6).setPriority(RenderPriority.Highest).setX(141).setY(9).setDirty(true);
+		
+		xpicon.setWidth(6).setHeight(6).setX(141).setY(9).setPriority(RenderPriority.Normal).setDirty(true);
+		xpicon.setUrl("Icon_r.png");
+		
+		xpbar.setWidth(128).setHeight(4).setX(149).setY(10);
+		((GenericGradient) xpbar).setBottomColor(border).setTopColor(border).setPriority(RenderPriority.Highest).setDirty(true);
+		
+		xpfill.setWidth(0).setHeight(2).setX(150).setY(11);
+		xpfill.setBottomColor(green).setTopColor(green).setPriority(RenderPriority.Lowest).setDirty(true);
+		
+		xpbg.setWidth(126).setHeight(2).setX(150).setY(11);
+		xpbg.setBottomColor(background).setTopColor(background).setPriority(RenderPriority.Low).setDirty(true);
+		
+		if(LoadProperties.xpbar)
+		{
+			sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbar);
+			sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpfill);
+			sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbg);
+			if(LoadProperties.xpicon)
+			{
+				sPlayer.getMainScreen().attachWidget(plugin, (GenericTexture)xpicon);
+				sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_bg);
+			}
+			sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_border);
+		}
+		
+		sPlayer.getMainScreen().setDirty(true);
+	}
+	
+	private void initializeXpBarDisplayStandard(SpoutPlayer sPlayer)
+	{
+		//Setup xp bar
+		xpbar = new GenericTexture();
+		
+		if(LoadProperties.xpbar && LoadProperties.xpicon)
+		{
+			xpicon = new GenericTexture();
+			
+			xpicon.setUrl("Icon.png");
+			
+			xpicon.setHeight(16).setWidth(32).setX(LoadProperties.xpicon_x).setY(LoadProperties.xpicon_y);
+			
+			xpicon.setDirty(true);
+			
+			sPlayer.getMainScreen().attachWidget(plugin, xpicon);
+		}
+		
+		if(LoadProperties.xpbar)
+		{
+			((GenericTexture)xpbar).setUrl("xpbar_inc000.png");
+			xpbar.setX(LoadProperties.xpbar_x).setY(LoadProperties.xpbar_y).setHeight(8).setWidth(256);
+		
+			sPlayer.getMainScreen().attachWidget(plugin, xpbar);
+		}
+		sPlayer.getMainScreen().setDirty(true);
+	}
+	
+	private void initializeXpBarDisplaySmall(SpoutPlayer sPlayer)
+	{
+		//Setup xp bar
+		xpbar = new GenericTexture();
+		
+		if(LoadProperties.xpbar && LoadProperties.xpicon)
+		{
+			xpicon = new GenericTexture();
+			
+			xpicon.setUrl("Icon.png");
+			
+			xpicon.setHeight(8).setWidth(16).setX(center_x-(8+64)).setY(LoadProperties.xpicon_y+2);
+			
+			xpicon.setDirty(true);
+			
+			sPlayer.getMainScreen().attachWidget(plugin, xpicon);
+		}
+		
+		if(LoadProperties.xpbar)
+		{
+			((GenericTexture)xpbar).setUrl("xpbar_inc000.png");
+			xpbar.setX(center_x-64).setY(LoadProperties.xpbar_y).setHeight(4).setWidth(128);
+		
+			sPlayer.getMainScreen().attachWidget(plugin, xpbar);
+		}
+		
+		sPlayer.getMainScreen().setDirty(true);
+	}
+	
+	private void updateXpBarStandard(Player player, PlayerProfile PP)
+	{
+		if(!LoadProperties.xpbar)
+			return;
+		
+		SkillType theType = null;
+		
+		if(PP.getXpBarLocked())
+			theType=PP.getSkillLock();
+		else
+			theType=PP.getLastGained();
+		
+		if(theType == null)
+			return;
+		
+		((GenericTexture) xpicon).setUrl(m.getCapitalized(theType.toString())+".png");
+		xpicon.setDirty(true);
+
+		((GenericTexture) xpbar).setUrl(SpoutStuff.getUrlBar(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.STANDARD)));
+		xpbar.setDirty(true);
+		
+		SpoutManager.getPlayer(player).getMainScreen().setDirty(true);
+	}
+	
+	private void updateXpBarRetro(Player player, PlayerProfile PP)
+	{
+		if(!LoadProperties.xpbar)
+			return;
+		SkillType theType = null;
+		
+		if(PP.getXpBarLocked() && PP.getSkillLock() != null)
+			theType=PP.getSkillLock();
+		else
+			theType=PP.getLastGained();
+		
+		if(theType == null)
+			return;
+		
+		Color color = SpoutStuff.getRetroColor(theType);
+		
+		if(xpicon != null && theType != null)
+			xpicon.setUrl(m.getCapitalized(theType.toString())+"_r.png");
+		
+		if(theType != null)
+			xpfill.setBottomColor(color).setTopColor(color).setWidth(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.RETRO)).setDirty(true);
+		else
+			System.out.println("theType was null!");
+		
+		SpoutManager.getPlayer(player).getMainScreen().setDirty(true);
+	}
 }

+ 26 - 26
mcMMO/com/gmail/nossr50/datatypes/HealthBarMMO.java → src/com/gmail/nossr50/datatypes/HealthBarMMO.java

@@ -1,26 +1,26 @@
-package com.gmail.nossr50.datatypes;
-
-import org.bukkit.ChatColor;
-import org.bukkit.entity.LivingEntity;
-import org.getspout.spoutapi.gui.GenericLabel;
-import org.getspout.spoutapi.gui.GenericTexture;
-
-import com.gmail.nossr50.spout.SpoutStuff;
-
-public class HealthBarMMO
-{
-	public GenericTexture health_bar = null;
-	public GenericLabel health_name = null;
-	public String playerName = null;
-	
-	public HealthBarMMO(LivingEntity entity, String name)
-	{
-		health_name = new GenericLabel();
-		health_name.setText(ChatColor.GREEN+name).setDirty(true);
-		
-		health_bar = new GenericTexture();
-		health_bar.setUrl(SpoutStuff.getHealthBarURL(entity.getHealth())).setHeight(8).setWidth(64).setDirty(true);
-		
-		playerName = name;
-	}
-}
+package com.gmail.nossr50.datatypes;
+
+import org.bukkit.ChatColor;
+import org.bukkit.entity.LivingEntity;
+import org.getspout.spoutapi.gui.GenericLabel;
+import org.getspout.spoutapi.gui.GenericTexture;
+
+import com.gmail.nossr50.spout.SpoutStuff;
+
+public class HealthBarMMO
+{
+	public GenericTexture health_bar = null;
+	public GenericLabel health_name = null;
+	public String playerName = null;
+	
+	public HealthBarMMO(LivingEntity entity, String name)
+	{
+		health_name = new GenericLabel();
+		health_name.setText(ChatColor.GREEN+name).setDirty(true);
+		
+		health_bar = new GenericTexture();
+		health_bar.setUrl(SpoutStuff.getHealthBarURL(entity.getHealth())).setHeight(8).setWidth(64).setDirty(true);
+		
+		playerName = name;
+	}
+}

+ 76 - 76
mcMMO/com/gmail/nossr50/datatypes/Mob.java → src/com/gmail/nossr50/datatypes/Mob.java

@@ -1,76 +1,76 @@
-package com.gmail.nossr50.datatypes;
-
-import java.util.HashMap;
-
-import org.bukkit.entity.*;
-
-public class Mob
-{
-	public HashMap<Integer, Short> mobDiff = new HashMap<Integer, Short>();
-	public HashMap<Integer, Boolean> isAggressive = new HashMap<Integer, Boolean>();
-	
-	public void assignDifficulty(Entity entity)
-	{
-		short x = 0;
-		
-		if(entity.getLocation().getY() >= 45)
-		{
-			//LEVEL 2
-			if(Math.random() * 100 > 50)
-			{
-				x = 0;
-			}
-			//LEVEL 3
-			else
-			{
-				x = 1;
-			}
-		}
-		else
-		{
-			double y = Math.random() * 100;
-			//HIGH CHANCE FOR 5's
-			if(entity.getLocation().getY() < 20)
-			{
-				//ASSIGN INTO THE 5 RANKS
-				if(y >= 0 && y < 50)
-					x = 0;
-				if(y >= 50 && y < 80)
-					x = 1;
-				if(y >= 80 && y < 95)
-					x = 2;
-				if(y >= 95 && y < 98)
-					x = 3;
-				if(y >= 98 && y <= 100)
-					x = 4;
-			}
-			//HIGH CHANCE FOR 4's
-			else
-			{
-				//ASSIGN INTO THE 5 RANKS
-				if(y >= 0 && y < 50)
-					x = 0;
-				if(y >= 50 && y < 74)
-					x = 1;
-				if(y >= 74 && y < 89)
-					x = 2;
-				if(y >= 89 && y < 99)
-					x = 3;
-				if(y >= 99 && y <= 100)
-					x = 4;
-			}
-				if(x > 1)
-				{
-					isAggressive.put(entity.getEntityId(), false);
-				}
-				
-		}
-		
-		if(!mobDiff.containsKey(entity.getEntityId()))
-		{
-			mobDiff.put(entity.getEntityId(), x);
-			//System.out.println("Mob "+entity.getEntityId()+" (DIFFICULTY) "+
-					//(x +1)+"(DEPTH) "+entity.getLocation().getY());
-		}
-	}
-}
+package com.gmail.nossr50.datatypes;
+
+import java.util.HashMap;
+
+import org.bukkit.entity.*;
+
+public class Mob
+{
+	public HashMap<Integer, Short> mobDiff = new HashMap<Integer, Short>();
+	public HashMap<Integer, Boolean> isAggressive = new HashMap<Integer, Boolean>();
+	
+	public void assignDifficulty(Entity entity)
+	{
+		short x = 0;
+		
+		if(entity.getLocation().getY() >= 45)
+		{
+			//LEVEL 2
+			if(Math.random() * 100 > 50)
+			{
+				x = 0;
+			}
+			//LEVEL 3
+			else
+			{
+				x = 1;
+			}
+		}
+		else
+		{
+			double y = Math.random() * 100;
+			//HIGH CHANCE FOR 5's
+			if(entity.getLocation().getY() < 20)
+			{
+				//ASSIGN INTO THE 5 RANKS
+				if(y >= 0 && y < 50)
+					x = 0;
+				if(y >= 50 && y < 80)
+					x = 1;
+				if(y >= 80 && y < 95)
+					x = 2;
+				if(y >= 95 && y < 98)
+					x = 3;
+				if(y >= 98 && y <= 100)
+					x = 4;
+			}
+			//HIGH CHANCE FOR 4's
+			else
+			{
+				//ASSIGN INTO THE 5 RANKS
+				if(y >= 0 && y < 50)
+					x = 0;
+				if(y >= 50 && y < 74)
+					x = 1;
+				if(y >= 74 && y < 89)
+					x = 2;
+				if(y >= 89 && y < 99)
+					x = 3;
+				if(y >= 99 && y <= 100)
+					x = 4;
+			}
+				if(x > 1)
+				{
+					isAggressive.put(entity.getEntityId(), false);
+				}
+				
+		}
+		
+		if(!mobDiff.containsKey(entity.getEntityId()))
+		{
+			mobDiff.put(entity.getEntityId(), x);
+			//System.out.println("Mob "+entity.getEntityId()+" (DIFFICULTY) "+
+					//(x +1)+"(DEPTH) "+entity.getLocation().getY());
+		}
+	}
+}

+ 0 - 0
mcMMO/com/gmail/nossr50/datatypes/PlayerProfile.java → src/com/gmail/nossr50/datatypes/PlayerProfile.java


+ 6 - 6
mcMMO/com/gmail/nossr50/datatypes/PlayerStat.java → src/com/gmail/nossr50/datatypes/PlayerStat.java

@@ -1,7 +1,7 @@
-package com.gmail.nossr50.datatypes;
-
-public class PlayerStat 
-{
-	public String name;
-	public int statVal = 0;
+package com.gmail.nossr50.datatypes;
+
+public class PlayerStat 
+{
+	public String name;
+	public int statVal = 0;
 }

+ 17 - 17
mcMMO/com/gmail/nossr50/datatypes/SkillType.java → src/com/gmail/nossr50/datatypes/SkillType.java

@@ -1,17 +1,17 @@
-package com.gmail.nossr50.datatypes;
-
-public enum SkillType 
-{
-	ACROBATICS,
-	ALL, //This one is just for convenience
-	ARCHERY,
-	AXES,
-	EXCAVATION,
-	HERBALISM,
-	MINING,
-	REPAIR,
-	SWORDS,
-	TAMING,
-	UNARMED,
-	WOODCUTTING;
-}
+package com.gmail.nossr50.datatypes;
+
+public enum SkillType 
+{
+	ACROBATICS,
+	ALL, //This one is just for convenience
+	ARCHERY,
+	AXES,
+	EXCAVATION,
+	HERBALISM,
+	MINING,
+	REPAIR,
+	SWORDS,
+	TAMING,
+	UNARMED,
+	WOODCUTTING;
+}

+ 39 - 39
mcMMO/com/gmail/nossr50/datatypes/Tree.java → src/com/gmail/nossr50/datatypes/Tree.java

@@ -1,39 +1,39 @@
-package com.gmail.nossr50.datatypes;
-
-import java.util.ArrayList;
-
-import com.gmail.nossr50.datatypes.PlayerStat;
-
-public class Tree {
-
-	TreeNode root = null;
-
-	public Tree(){}
-
-	public void add(String p, int in)
-	{
-		if(root == null){
-			root = new TreeNode(p, in);
-		}
-		else
-			root.add(p,in);
-	}
-	
-	public PlayerStat[] inOrder()
-	{
-		if(root != null){
-			ArrayList<PlayerStat> order = root.inOrder(new ArrayList<PlayerStat>());
-			return order.toArray(new PlayerStat[order.size()]);	
-		} else {
-			//Throw some dummy info in case the users file is empty
-			//It's not a good fix but its better than rewriting the whole system
-			ArrayList<PlayerStat> x = new ArrayList<PlayerStat>();
-			PlayerStat y = new PlayerStat();
-			y.name = "$mcMMO_DummyInfo";
-			y.statVal = 0;
-			x.add(y);
-			return x.toArray(new PlayerStat[x.size()]);
-		}
-	}
-
-}
+package com.gmail.nossr50.datatypes;
+
+import java.util.ArrayList;
+
+import com.gmail.nossr50.datatypes.PlayerStat;
+
+public class Tree {
+
+	TreeNode root = null;
+
+	public Tree(){}
+
+	public void add(String p, int in)
+	{
+		if(root == null){
+			root = new TreeNode(p, in);
+		}
+		else
+			root.add(p,in);
+	}
+	
+	public PlayerStat[] inOrder()
+	{
+		if(root != null){
+			ArrayList<PlayerStat> order = root.inOrder(new ArrayList<PlayerStat>());
+			return order.toArray(new PlayerStat[order.size()]);	
+		} else {
+			//Throw some dummy info in case the users file is empty
+			//It's not a good fix but its better than rewriting the whole system
+			ArrayList<PlayerStat> x = new ArrayList<PlayerStat>();
+			PlayerStat y = new PlayerStat();
+			y.name = "$mcMMO_DummyInfo";
+			y.statVal = 0;
+			x.add(y);
+			return x.toArray(new PlayerStat[x.size()]);
+		}
+	}
+
+}

+ 49 - 49
mcMMO/com/gmail/nossr50/datatypes/TreeNode.java → src/com/gmail/nossr50/datatypes/TreeNode.java

@@ -1,49 +1,49 @@
-package com.gmail.nossr50.datatypes;
-
-import java.util.ArrayList;
-
-import com.gmail.nossr50.datatypes.PlayerStat;
-
-public class TreeNode 
-{
-	TreeNode left = null
-	, right = null;
-	PlayerStat ps = new PlayerStat();
-
-	public TreeNode(String p, int in) {ps.statVal = in; ps.name = p;}
-
-	public void add (String p, int in) 
-	{
-		if (in >= ps.statVal)
-		{
-			if (left == null)
-				left = new TreeNode(p,in);
-			else
-				left.add(p, in);
-		}
-		else if(in < ps.statVal)
-		{
-		if (right == null)
-			right = new TreeNode(p,in);
-		else
-			right.add(p, in);
-		}
-	}
-	
-	public ArrayList<PlayerStat> inOrder(ArrayList<PlayerStat> a)
-	{
-		//if left node is not null than assign arrayList(a) to left.inOrder()
-		
-		//GOES THROUGH THE ENTIRE LEFT BRANCH AND GRABS THE GREATEST NUMBER
-		
-		if(left != null)
-			a = left.inOrder(a);
-	
-		a.add(ps);
-	
-		if(right != null)
-			a = right.inOrder(a);
-	
-		return a;
-	}
-}
+package com.gmail.nossr50.datatypes;
+
+import java.util.ArrayList;
+
+import com.gmail.nossr50.datatypes.PlayerStat;
+
+public class TreeNode 
+{
+	TreeNode left = null
+	, right = null;
+	PlayerStat ps = new PlayerStat();
+
+	public TreeNode(String p, int in) {ps.statVal = in; ps.name = p;}
+
+	public void add (String p, int in) 
+	{
+		if (in >= ps.statVal)
+		{
+			if (left == null)
+				left = new TreeNode(p,in);
+			else
+				left.add(p, in);
+		}
+		else if(in < ps.statVal)
+		{
+		if (right == null)
+			right = new TreeNode(p,in);
+		else
+			right.add(p, in);
+		}
+	}
+	
+	public ArrayList<PlayerStat> inOrder(ArrayList<PlayerStat> a)
+	{
+		//if left node is not null than assign arrayList(a) to left.inOrder()
+		
+		//GOES THROUGH THE ENTIRE LEFT BRANCH AND GRABS THE GREATEST NUMBER
+		
+		if(left != null)
+			a = left.inOrder(a);
+	
+		a.add(ps);
+	
+		if(right != null)
+			a = right.inOrder(a);
+	
+		return a;
+	}
+}

+ 12 - 12
mcMMO/com/gmail/nossr50/datatypes/buttons/ButtonEscape.java → src/com/gmail/nossr50/datatypes/buttons/ButtonEscape.java

@@ -1,13 +1,13 @@
-package com.gmail.nossr50.datatypes.buttons;
-
-import org.getspout.spoutapi.gui.GenericButton;
-
-public class ButtonEscape extends GenericButton
-{
-	public ButtonEscape()
-	{
-		this.setText("EXIT");
-		this.setWidth(60).setHeight(20);
-		this.setDirty(true);
-	}
+package com.gmail.nossr50.datatypes.buttons;
+
+import org.getspout.spoutapi.gui.GenericButton;
+
+public class ButtonEscape extends GenericButton
+{
+	public ButtonEscape()
+	{
+		this.setText("EXIT");
+		this.setWidth(60).setHeight(20);
+		this.setDirty(true);
+	}
 }

+ 20 - 20
mcMMO/com/gmail/nossr50/datatypes/buttons/ButtonHUDStyle.java → src/com/gmail/nossr50/datatypes/buttons/ButtonHUDStyle.java

@@ -1,21 +1,21 @@
-package com.gmail.nossr50.datatypes.buttons;
-
-import org.getspout.spoutapi.gui.GenericButton;
-
-import com.gmail.nossr50.datatypes.PlayerProfile;
-
-public class ButtonHUDStyle extends GenericButton
-{
-	public ButtonHUDStyle(PlayerProfile PP)
-	{
-		this.setText("HUD Type: "+PP.getHUDType().toString());
-		this.setTooltip("Change your HUD style!");
-		this.setWidth(120).setHeight(20);
-		this.setDirty(true);
-	}
-	public void updateText(PlayerProfile PP)
-	{
-		this.setText("HUD Type: "+PP.getHUDType().toString());
-		this.setDirty(true);
-	}
+package com.gmail.nossr50.datatypes.buttons;
+
+import org.getspout.spoutapi.gui.GenericButton;
+
+import com.gmail.nossr50.datatypes.PlayerProfile;
+
+public class ButtonHUDStyle extends GenericButton
+{
+	public ButtonHUDStyle(PlayerProfile PP)
+	{
+		this.setText("HUD Type: "+PP.getHUDType().toString());
+		this.setTooltip("Change your HUD style!");
+		this.setWidth(120).setHeight(20);
+		this.setDirty(true);
+	}
+	public void updateText(PlayerProfile PP)
+	{
+		this.setText("HUD Type: "+PP.getHUDType().toString());
+		this.setDirty(true);
+	}
 }

+ 49 - 49
mcMMO/com/gmail/nossr50/datatypes/popups/PopupMMO.java → src/com/gmail/nossr50/datatypes/popups/PopupMMO.java

@@ -1,49 +1,49 @@
-package com.gmail.nossr50.datatypes.popups;
-
-import org.bukkit.ChatColor;
-import org.bukkit.entity.Player;
-import org.getspout.spoutapi.gui.GenericLabel;
-import org.getspout.spoutapi.gui.GenericPopup;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.buttons.ButtonEscape;
-import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle;
-
-public class PopupMMO extends GenericPopup
-{
-	ButtonHUDStyle HUDButton = null;
-	ButtonEscape EscapeButton = null;
-	GenericLabel mcMMO_label = new GenericLabel();
-	GenericLabel tip_escape = new GenericLabel();
-	int center_x = 427/2;
-	int center_y = 240/2;
-	
-	public PopupMMO(Player player, PlayerProfile PP, mcMMO plugin)
-	{
-		//240, 427 are the bottom right
-		mcMMO_label.setText(ChatColor.GOLD+"~mcMMO Menu~");
-		mcMMO_label.setX(center_x-35).setY((center_y/2)-20).setDirty(true);
-		
-		tip_escape.setText(ChatColor.GRAY+"Press ESCAPE to exit!");
-		tip_escape.setX(mcMMO_label.getX()-15).setY(mcMMO_label.getY()+10).setDirty(true);
-		
-		HUDButton = new ButtonHUDStyle(PP);
-		HUDButton.setX(center_x-(HUDButton.getWidth()/2)).setY(center_y/2).setDirty(true);
-		
-		EscapeButton = new ButtonEscape();
-		EscapeButton.setX(center_x-(EscapeButton.getWidth()/2)).setY((center_y/2)+HUDButton.getHeight()+5).setDirty(true);
-		
-		this.attachWidget(plugin, HUDButton);
-		this.attachWidget(plugin, mcMMO_label);
-		this.attachWidget(plugin, tip_escape);
-		this.attachWidget(plugin, EscapeButton);
-		
-		this.setDirty(true);
-	}
-	
-	public void updateButtons(PlayerProfile PP)
-	{
-		HUDButton.updateText(PP);
-		this.setDirty(true);
-	}
-}
+package com.gmail.nossr50.datatypes.popups;
+
+import org.bukkit.ChatColor;
+import org.bukkit.entity.Player;
+import org.getspout.spoutapi.gui.GenericLabel;
+import org.getspout.spoutapi.gui.GenericPopup;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.buttons.ButtonEscape;
+import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle;
+
+public class PopupMMO extends GenericPopup
+{
+	ButtonHUDStyle HUDButton = null;
+	ButtonEscape EscapeButton = null;
+	GenericLabel mcMMO_label = new GenericLabel();
+	GenericLabel tip_escape = new GenericLabel();
+	int center_x = 427/2;
+	int center_y = 240/2;
+	
+	public PopupMMO(Player player, PlayerProfile PP, mcMMO plugin)
+	{
+		//240, 427 are the bottom right
+		mcMMO_label.setText(ChatColor.GOLD+"~mcMMO Menu~");
+		mcMMO_label.setX(center_x-35).setY((center_y/2)-20).setDirty(true);
+		
+		tip_escape.setText(ChatColor.GRAY+"Press ESCAPE to exit!");
+		tip_escape.setX(mcMMO_label.getX()-15).setY(mcMMO_label.getY()+10).setDirty(true);
+		
+		HUDButton = new ButtonHUDStyle(PP);
+		HUDButton.setX(center_x-(HUDButton.getWidth()/2)).setY(center_y/2).setDirty(true);
+		
+		EscapeButton = new ButtonEscape();
+		EscapeButton.setX(center_x-(EscapeButton.getWidth()/2)).setY((center_y/2)+HUDButton.getHeight()+5).setDirty(true);
+		
+		this.attachWidget(plugin, HUDButton);
+		this.attachWidget(plugin, mcMMO_label);
+		this.attachWidget(plugin, tip_escape);
+		this.attachWidget(plugin, EscapeButton);
+		
+		this.setDirty(true);
+	}
+	
+	public void updateButtons(PlayerProfile PP)
+	{
+		HUDButton.updateText(PP);
+		this.setDirty(true);
+	}
+}

+ 435 - 435
mcMMO/com/gmail/nossr50/listeners/mcBlockListener.java → src/com/gmail/nossr50/listeners/mcBlockListener.java

@@ -1,436 +1,436 @@
-package com.gmail.nossr50.listeners;
-
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.m;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.mcPermissions;
-import com.gmail.nossr50.config.LoadProperties;
-import com.gmail.nossr50.spout.SpoutStuff;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import org.bukkit.Material;
-import org.bukkit.Statistic;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.event.block.BlockDamageEvent;
-import org.bukkit.event.block.BlockFromToEvent;
-import org.bukkit.event.block.BlockListener;
-import org.bukkit.event.block.BlockPlaceEvent;
-import org.bukkit.inventory.ItemStack;
-import org.getspout.spoutapi.SpoutManager;
-import org.getspout.spoutapi.player.SpoutPlayer;
-import org.getspout.spoutapi.sound.SoundEffect;
-
-import com.gmail.nossr50.locale.mcLocale;
-import com.gmail.nossr50.skills.*;
-import com.gmail.nossr50.datatypes.FakeBlockBreakEvent;
-
-
-public class mcBlockListener extends BlockListener 
-{
-    private final mcMMO plugin;
-
-    public mcBlockListener(final mcMMO plugin) 
-    {
-        this.plugin = plugin;
-    }
-    
-    public void onBlockPlace(BlockPlaceEvent event) 
-    {
-    	//Setup some basic vars
-    	Block block;
-    	Player player = event.getPlayer();
-    	
-    	//When blocks are placed on snow this event reports the wrong block.
-    	if (event.getBlockReplacedState() != null && event.getBlockReplacedState().getTypeId() == 78) 
-    	{
-    		block = event.getBlockAgainst();
-    	}
-    	else 
-    	{
-    		block = event.getBlock();
-    	}
-    	
-    	//Check if the blocks placed should be monitored so they do not give out XP in the future
-    	if(m.shouldBeWatched(block))
-    	{
-    		if(block.getTypeId() != 17 && block.getTypeId() != 39 && block.getTypeId() != 40 && block.getTypeId() != 91 && block.getTypeId() != 86)
-    			block.setData((byte) 5); //Change the byte
-    		else if(block.getTypeId() == 17 || block.getTypeId() == 39 || block.getTypeId() == 40 || block.getTypeId() == 91 || block.getTypeId() == 86)
-    			plugin.misc.blockWatchList.add(block);
-    	}
-    	
-    	if(block.getTypeId() == 42 && LoadProperties.anvilmessages)
-    	{
-    		PlayerProfile PP = Users.getProfile(player);
-    		if(LoadProperties.spoutEnabled)
-    		{
-    			SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
-	    		if(sPlayer.isSpoutCraftEnabled())
-	    		{
-	    			if(!PP.getPlacedAnvil())
-	    			{
-	    				sPlayer.sendNotification("[mcMMO] Anvil Placed", "Right click to repair!", Material.IRON_BLOCK);
-	    				PP.togglePlacedAnvil();
-	    			}
-	    		}
-	    		else
-	    		{
-	    			if(!PP.getPlacedAnvil())
-	    			{
-	    				event.getPlayer().sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$
-	    				PP.togglePlacedAnvil();
-	    			}
-	    		}
-    		}
-    		else
-    		{
-    			if(!PP.getPlacedAnvil())
-    			{
-    				event.getPlayer().sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$
-    				PP.togglePlacedAnvil();
-    			}
-    		}
-    	}
-    }
-    
-    public void onBlockBreak(BlockBreakEvent event) 
-    {
-    	Player player = event.getPlayer();
-    	PlayerProfile PP = Users.getProfile(player);
-    	Block block = event.getBlock();
-    	ItemStack inhand = player.getItemInHand();
-    	if(event.isCancelled())
-    		return;
-    	if (event instanceof FakeBlockBreakEvent) 
-    		return;
-    	
-   		/*
-   		 * HERBALISM
-   		 */
-    	
-    	//Green Terra
-   		if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalismAbility(player) && block.getTypeId() == 59 && block.getData() == (byte) 0x07)
-   		{
-   			Herbalism.greenTerraCheck(player, block);
-   		}
-   		
-   		//Wheat && Triple drops
-   		if(PP.getGreenTerraMode() && Herbalism.canBeGreenTerra(block))
-   		{
-   			Herbalism.herbalismProcCheck(block, player, event, plugin);
-   			Herbalism.greenTerraWheat(player, block, event, plugin);
-   		}
-   		
-   		
-    	/*
-    	 * MINING
-    	 */
-    	if(mcPermissions.getInstance().mining(player))
-    	{
-    		if(LoadProperties.miningrequirespickaxe)
-    		{
-    			if(m.isMiningPick(inhand))
-    			{
-    				Mining.miningBlockCheck(false, player, block, plugin);
-    			}
-    		} else 
-    		{
-    			Mining.miningBlockCheck(false, player, block, plugin);
-    		}
-    	}
-    	/*
-   		 * WOOD CUTTING
-   		 */
-    	
-   		if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player))
-   		{
-   			if(LoadProperties.woodcuttingrequiresaxe)
-   			{
-				if(m.isAxes(inhand))
-				{
-					if(!plugin.misc.blockWatchList.contains(block))
-					{
-	    				WoodCutting.woodCuttingProcCheck(player, block);
-	    				//Default
-	    				if(block.getData() == (byte)0)
-	    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine);
-	    				//Spruce
-	    				if(block.getData() == (byte)1)
-	    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mspruce);
-	    				//Birch
-	    				if(block.getData() == (byte)2)
-	    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mbirch);
-					}
-    			}
-    		} else 
-    		{
-    			if(!plugin.misc.blockWatchList.contains(block))
-    			{
-	    			WoodCutting.woodCuttingProcCheck(player, block);
-	    			//Default
-    				if(block.getData() == (byte)0)
-    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine);
-    				//Spruce
-    				if(block.getData() == (byte)1)
-    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mspruce);
-    				//Birch
-    				if(block.getData() == (byte)2)
-    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mbirch);
-    			}
-   			}
-    		Skills.XpCheckSkill(SkillType.WOODCUTTING, player);
-    			
-    		/*
-    		 * IF PLAYER IS USING TREEFELLER
-    		 */
-   			if(mcPermissions.getInstance().woodCuttingAbility(player) 
-   					&& PP.getTreeFellerMode() 
-   					&& block.getTypeId() == 17
-   					&& m.blockBreakSimulate(block, player))
-   			{
-   				if(LoadProperties.spoutEnabled)
-   					SpoutStuff.playSoundForPlayer(SoundEffect.EXPLODE, player, block.getLocation());
-   				
-    			WoodCutting.treeFeller(block, player, plugin);
-    			for(Block blockx : plugin.misc.treeFeller)
-    			{
-    				if(blockx != null)
-    				{
-    					Material mat = Material.getMaterial(block.getTypeId());
-    					byte type = 0;
-    					if(block.getTypeId() == 17)
-    						type = block.getData();
-    					ItemStack item = new ItemStack(mat, 1, (byte)0, type);
-    					if(blockx.getTypeId() == 17)
-    					{
-    						blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
-    						//XP WOODCUTTING
-    						if(!plugin.misc.blockWatchList.contains(block))
-    						{
-	    						WoodCutting.woodCuttingProcCheck(player, blockx);
-	    						PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine);
-    						}
-    					}
-    					if(blockx.getTypeId() == 18)
-    					{
-    						mat = Material.SAPLING;
-    						
-    						item = new ItemStack(mat, 1, (short)0, blockx.getData());
-    						
-    						if(Math.random() * 10 > 9)
-    							blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
-    					}
-    					if(blockx.getType() != Material.AIR)
-    						player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType());
-    					blockx.setType(Material.AIR);
-    				}
-    			}
-    			if(LoadProperties.toolsLoseDurabilityFromAbilities)
-    		    	m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss);
-    			plugin.misc.treeFeller.clear();
-    		}
-    	}
-    	/*
-    	 * EXCAVATION
-    	 */
-    	if(Excavation.canBeGigaDrillBroken(block) && mcPermissions.getInstance().excavation(player) && block.getData() != (byte) 5)
-    		Excavation.excavationProcCheck(block.getData(), block.getType(), block.getLocation(), player);
-    	/*
-    	 * HERBALISM
-    	 */
-    	if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalism(player) && Herbalism.canBeGreenTerra(block))
-    	{
-    		Herbalism.greenTerraCheck(player, block);
-    	}
-    	if(mcPermissions.getInstance().herbalism(player) && block.getData() != (byte) 5)
-			Herbalism.herbalismProcCheck(block, player, event, plugin);
-    	
-    	//Change the byte back when broken
-    	if(block.getData() == 5 && m.shouldBeWatched(block))
-    	{
-    		block.setData((byte) 0);
-    		if(plugin.misc.blockWatchList.contains(block))
-    		{
-    			plugin.misc.blockWatchList.remove(block);
-    		}
-    	}
-    }
-    
-    public void onBlockDamage(BlockDamageEvent event) 
-    {
-    	if(event.isCancelled())
-    		return;
-    	Player player = event.getPlayer();
-    	PlayerProfile PP = Users.getProfile(player);
-    	ItemStack inhand = player.getItemInHand();
-    	Block block = event.getBlock();
-    	
-    	Skills.monitorSkills(player);
-
-    	/*
-    	 * ABILITY PREPARATION CHECKS
-    	 */
-   		if(PP.getHoePreparationMode() && Herbalism.canBeGreenTerra(block))
-    		Herbalism.greenTerraCheck(player, block);
-    	if(PP.getAxePreparationMode() && block.getTypeId() == 17)
-    		WoodCutting.treeFellerCheck(player, block);
-    	if(PP.getPickaxePreparationMode() && Mining.canBeSuperBroken(block))
-    		Mining.superBreakerCheck(player, block);
-    	if(PP.getShovelPreparationMode() && Excavation.canBeGigaDrillBroken(block))
-    		Excavation.gigaDrillBreakerActivationCheck(player, block);
-    	if(PP.getFistsPreparationMode() && (Excavation.canBeGigaDrillBroken(block) || block.getTypeId() == 78))
-    		Unarmed.berserkActivationCheck(player);
-    	
-    	/*
-    	 * TREE FELLAN STUFF
-    	 */
-    	if(LoadProperties.spoutEnabled && block.getTypeId() == 17 && Users.getProfile(player).getTreeFellerMode())
-    		SpoutStuff.playSoundForPlayer(SoundEffect.FIZZ, player, block.getLocation());
-    	
-    	/*
-    	 * GREEN TERRA STUFF
-    	 */
-    	if(PP.getGreenTerraMode() && mcPermissions.getInstance().herbalismAbility(player) && PP.getGreenTerraMode())
-    	{
-   			Herbalism.greenTerra(player, block);
-   		}
-    	
-    	/*
-    	 * GIGA DRILL BREAKER CHECKS
-    	 */
-    	if(PP.getGigaDrillBreakerMode() && m.blockBreakSimulate(block, player) 
-    			&& Excavation.canBeGigaDrillBroken(block) && m.isShovel(inhand))
-    	{
-    		int x = 0;
-    		
-    		while(x < 3)
-    		{
-    			if(block.getData() != (byte)5)
-    				Excavation.excavationProcCheck(block.getData(), block.getType(), block.getLocation(), player);
-    			x++;
-    		}
-    		
-    		Material mat = Material.getMaterial(block.getTypeId());
-    		
-    		if(block.getType() == Material.GRASS)
-    			mat = Material.DIRT;
-    		if(block.getType() == Material.CLAY)
-    			mat = Material.CLAY_BALL;
-    		
-			byte type = block.getData();
-			ItemStack item = new ItemStack(mat, 1, (byte)0, type);
-			
-			block.setType(Material.AIR);
-			
-			player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType());
-			
-			if(LoadProperties.toolsLoseDurabilityFromAbilities)
-	    		m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss);
-			
-			if(item.getType() == Material.CLAY_BALL)
-			{
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-			} else
-			{
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-			}
-			
-			//Spout stuff
-			if(LoadProperties.spoutEnabled)
-				SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation());
-    	}
-    	/*
-    	 * BERSERK MODE CHECKS
-    	 */
-    	if(PP.getBerserkMode() 
-    		&& m.blockBreakSimulate(block, player) 
-    		&& player.getItemInHand().getTypeId() == 0 
-    		&& (Excavation.canBeGigaDrillBroken(block) || block.getTypeId() == 78))
-    	{
-		   	Material mat = Material.getMaterial(block.getTypeId());
-		   	
-		   	if(block.getTypeId() == 2)
-		   		mat = Material.DIRT;
-		   	if(block.getTypeId() == 78)
-		   		mat = Material.SNOW_BALL;
-		   	if(block.getTypeId() == 82)
-		   		mat = Material.CLAY_BALL;
-		   	
-			byte type = block.getData();
-			
-			ItemStack item = new ItemStack(mat, 1, (byte)0, type);
-			player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType());
-			
-			block.setType(Material.AIR);
-			
-			if(item.getType() == Material.CLAY_BALL)
-			{
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-			} else
-			{
-				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
-			}
-			
-			if(LoadProperties.spoutEnabled)
-				SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation());
-    	}
-    	
-    	/*
-    	 * SUPER BREAKER CHECKS
-    	 */
-    	if(PP.getSuperBreakerMode() 
-    			&& Mining.canBeSuperBroken(block)
-    			&& m.blockBreakSimulate(block, player))
-    	{
-    		
-    		if(LoadProperties.miningrequirespickaxe)
-    		{
-    			if(m.isMiningPick(inhand))
-    				Mining.SuperBreakerBlockCheck(player, block, plugin);
-    		} else {
-    			Mining.SuperBreakerBlockCheck(player, block, plugin);
-    		}
-    	}
-    	
-    	/*
-    	 * LEAF BLOWER
-    	 */
-    	if(block.getTypeId() == 18 && mcPermissions.getInstance().woodcutting(player) && PP.getSkillLevel(SkillType.WOODCUTTING) >= 100 && m.isAxes(player.getItemInHand()) && m.blockBreakSimulate(block, player))
-    	{
-    		m.damageTool(player, (short)1);
-    		if(Math.random() * 10 > 9)
-    		{
-    			ItemStack x = new ItemStack(Material.SAPLING, 1, (short)0, block.getData());
-    			block.getLocation().getWorld().dropItemNaturally(block.getLocation(), x);
-    		}
-    		block.setType(Material.AIR);
-    		player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType());
-    		if(LoadProperties.spoutEnabled)
-    			SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation());
-    	}
-    	if(block.getType() == Material.AIR && plugin.misc.blockWatchList.contains(block))
-    	{
-    		plugin.misc.blockWatchList.remove(block);
-    	}
-    }
-    
-    public void onBlockFromTo(BlockFromToEvent event) 
-    {
-    	
-    	
-        Block blockFrom = event.getBlock();
-        Block blockTo = event.getToBlock();
-        if(m.shouldBeWatched(blockFrom) && blockFrom.getData() == (byte)5)
-        {
-        	blockTo.setData((byte)5);
-        }
-    }
+package com.gmail.nossr50.listeners;
+
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.m;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.mcPermissions;
+import com.gmail.nossr50.config.LoadProperties;
+import com.gmail.nossr50.spout.SpoutStuff;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.SkillType;
+import org.bukkit.Material;
+import org.bukkit.Statistic;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.event.block.BlockDamageEvent;
+import org.bukkit.event.block.BlockFromToEvent;
+import org.bukkit.event.block.BlockListener;
+import org.bukkit.event.block.BlockPlaceEvent;
+import org.bukkit.inventory.ItemStack;
+import org.getspout.spoutapi.SpoutManager;
+import org.getspout.spoutapi.player.SpoutPlayer;
+import org.getspout.spoutapi.sound.SoundEffect;
+
+import com.gmail.nossr50.locale.mcLocale;
+import com.gmail.nossr50.skills.*;
+import com.gmail.nossr50.datatypes.FakeBlockBreakEvent;
+
+
+public class mcBlockListener extends BlockListener 
+{
+    private final mcMMO plugin;
+
+    public mcBlockListener(final mcMMO plugin) 
+    {
+        this.plugin = plugin;
+    }
+    
+    public void onBlockPlace(BlockPlaceEvent event) 
+    {
+    	//Setup some basic vars
+    	Block block;
+    	Player player = event.getPlayer();
+    	
+    	//When blocks are placed on snow this event reports the wrong block.
+    	if (event.getBlockReplacedState() != null && event.getBlockReplacedState().getTypeId() == 78) 
+    	{
+    		block = event.getBlockAgainst();
+    	}
+    	else 
+    	{
+    		block = event.getBlock();
+    	}
+    	
+    	//Check if the blocks placed should be monitored so they do not give out XP in the future
+    	if(m.shouldBeWatched(block))
+    	{
+    		if(block.getTypeId() != 17 && block.getTypeId() != 39 && block.getTypeId() != 40 && block.getTypeId() != 91 && block.getTypeId() != 86)
+    			block.setData((byte) 5); //Change the byte
+    		else if(block.getTypeId() == 17 || block.getTypeId() == 39 || block.getTypeId() == 40 || block.getTypeId() == 91 || block.getTypeId() == 86)
+    			plugin.misc.blockWatchList.add(block);
+    	}
+    	
+    	if(block.getTypeId() == 42 && LoadProperties.anvilmessages)
+    	{
+    		PlayerProfile PP = Users.getProfile(player);
+    		if(LoadProperties.spoutEnabled)
+    		{
+    			SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
+	    		if(sPlayer.isSpoutCraftEnabled())
+	    		{
+	    			if(!PP.getPlacedAnvil())
+	    			{
+	    				sPlayer.sendNotification("[mcMMO] Anvil Placed", "Right click to repair!", Material.IRON_BLOCK);
+	    				PP.togglePlacedAnvil();
+	    			}
+	    		}
+	    		else
+	    		{
+	    			if(!PP.getPlacedAnvil())
+	    			{
+	    				event.getPlayer().sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$
+	    				PP.togglePlacedAnvil();
+	    			}
+	    		}
+    		}
+    		else
+    		{
+    			if(!PP.getPlacedAnvil())
+    			{
+    				event.getPlayer().sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$
+    				PP.togglePlacedAnvil();
+    			}
+    		}
+    	}
+    }
+    
+    public void onBlockBreak(BlockBreakEvent event) 
+    {
+    	Player player = event.getPlayer();
+    	PlayerProfile PP = Users.getProfile(player);
+    	Block block = event.getBlock();
+    	ItemStack inhand = player.getItemInHand();
+    	if(event.isCancelled())
+    		return;
+    	if (event instanceof FakeBlockBreakEvent) 
+    		return;
+    	
+   		/*
+   		 * HERBALISM
+   		 */
+    	
+    	//Green Terra
+   		if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalismAbility(player) && block.getTypeId() == 59 && block.getData() == (byte) 0x07)
+   		{
+   			Herbalism.greenTerraCheck(player, block);
+   		}
+   		
+   		//Wheat && Triple drops
+   		if(PP.getGreenTerraMode() && Herbalism.canBeGreenTerra(block))
+   		{
+   			Herbalism.herbalismProcCheck(block, player, event, plugin);
+   			Herbalism.greenTerraWheat(player, block, event, plugin);
+   		}
+   		
+   		
+    	/*
+    	 * MINING
+    	 */
+    	if(mcPermissions.getInstance().mining(player))
+    	{
+    		if(LoadProperties.miningrequirespickaxe)
+    		{
+    			if(m.isMiningPick(inhand))
+    			{
+    				Mining.miningBlockCheck(false, player, block, plugin);
+    			}
+    		} else 
+    		{
+    			Mining.miningBlockCheck(false, player, block, plugin);
+    		}
+    	}
+    	/*
+   		 * WOOD CUTTING
+   		 */
+    	
+   		if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player))
+   		{
+   			if(LoadProperties.woodcuttingrequiresaxe)
+   			{
+				if(m.isAxes(inhand))
+				{
+					if(!plugin.misc.blockWatchList.contains(block))
+					{
+	    				WoodCutting.woodCuttingProcCheck(player, block);
+	    				//Default
+	    				if(block.getData() == (byte)0)
+	    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine);
+	    				//Spruce
+	    				if(block.getData() == (byte)1)
+	    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mspruce);
+	    				//Birch
+	    				if(block.getData() == (byte)2)
+	    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mbirch);
+					}
+    			}
+    		} else 
+    		{
+    			if(!plugin.misc.blockWatchList.contains(block))
+    			{
+	    			WoodCutting.woodCuttingProcCheck(player, block);
+	    			//Default
+    				if(block.getData() == (byte)0)
+    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine);
+    				//Spruce
+    				if(block.getData() == (byte)1)
+    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mspruce);
+    				//Birch
+    				if(block.getData() == (byte)2)
+    					PP.addXP(SkillType.WOODCUTTING, LoadProperties.mbirch);
+    			}
+   			}
+    		Skills.XpCheckSkill(SkillType.WOODCUTTING, player);
+    			
+    		/*
+    		 * IF PLAYER IS USING TREEFELLER
+    		 */
+   			if(mcPermissions.getInstance().woodCuttingAbility(player) 
+   					&& PP.getTreeFellerMode() 
+   					&& block.getTypeId() == 17
+   					&& m.blockBreakSimulate(block, player))
+   			{
+   				if(LoadProperties.spoutEnabled)
+   					SpoutStuff.playSoundForPlayer(SoundEffect.EXPLODE, player, block.getLocation());
+   				
+    			WoodCutting.treeFeller(block, player, plugin);
+    			for(Block blockx : plugin.misc.treeFeller)
+    			{
+    				if(blockx != null)
+    				{
+    					Material mat = Material.getMaterial(block.getTypeId());
+    					byte type = 0;
+    					if(block.getTypeId() == 17)
+    						type = block.getData();
+    					ItemStack item = new ItemStack(mat, 1, (byte)0, type);
+    					if(blockx.getTypeId() == 17)
+    					{
+    						blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
+    						//XP WOODCUTTING
+    						if(!plugin.misc.blockWatchList.contains(block))
+    						{
+	    						WoodCutting.woodCuttingProcCheck(player, blockx);
+	    						PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine);
+    						}
+    					}
+    					if(blockx.getTypeId() == 18)
+    					{
+    						mat = Material.SAPLING;
+    						
+    						item = new ItemStack(mat, 1, (short)0, blockx.getData());
+    						
+    						if(Math.random() * 10 > 9)
+    							blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
+    					}
+    					if(blockx.getType() != Material.AIR)
+    						player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType());
+    					blockx.setType(Material.AIR);
+    				}
+    			}
+    			if(LoadProperties.toolsLoseDurabilityFromAbilities)
+    		    	m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss);
+    			plugin.misc.treeFeller.clear();
+    		}
+    	}
+    	/*
+    	 * EXCAVATION
+    	 */
+    	if(Excavation.canBeGigaDrillBroken(block) && mcPermissions.getInstance().excavation(player) && block.getData() != (byte) 5)
+    		Excavation.excavationProcCheck(block.getData(), block.getType(), block.getLocation(), player);
+    	/*
+    	 * HERBALISM
+    	 */
+    	if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalism(player) && Herbalism.canBeGreenTerra(block))
+    	{
+    		Herbalism.greenTerraCheck(player, block);
+    	}
+    	if(mcPermissions.getInstance().herbalism(player) && block.getData() != (byte) 5)
+			Herbalism.herbalismProcCheck(block, player, event, plugin);
+    	
+    	//Change the byte back when broken
+    	if(block.getData() == 5 && m.shouldBeWatched(block))
+    	{
+    		block.setData((byte) 0);
+    		if(plugin.misc.blockWatchList.contains(block))
+    		{
+    			plugin.misc.blockWatchList.remove(block);
+    		}
+    	}
+    }
+    
+    public void onBlockDamage(BlockDamageEvent event) 
+    {
+    	if(event.isCancelled())
+    		return;
+    	Player player = event.getPlayer();
+    	PlayerProfile PP = Users.getProfile(player);
+    	ItemStack inhand = player.getItemInHand();
+    	Block block = event.getBlock();
+    	
+    	Skills.monitorSkills(player);
+
+    	/*
+    	 * ABILITY PREPARATION CHECKS
+    	 */
+   		if(PP.getHoePreparationMode() && Herbalism.canBeGreenTerra(block))
+    		Herbalism.greenTerraCheck(player, block);
+    	if(PP.getAxePreparationMode() && block.getTypeId() == 17)
+    		WoodCutting.treeFellerCheck(player, block);
+    	if(PP.getPickaxePreparationMode() && Mining.canBeSuperBroken(block))
+    		Mining.superBreakerCheck(player, block);
+    	if(PP.getShovelPreparationMode() && Excavation.canBeGigaDrillBroken(block))
+    		Excavation.gigaDrillBreakerActivationCheck(player, block);
+    	if(PP.getFistsPreparationMode() && (Excavation.canBeGigaDrillBroken(block) || block.getTypeId() == 78))
+    		Unarmed.berserkActivationCheck(player);
+    	
+    	/*
+    	 * TREE FELLAN STUFF
+    	 */
+    	if(LoadProperties.spoutEnabled && block.getTypeId() == 17 && Users.getProfile(player).getTreeFellerMode())
+    		SpoutStuff.playSoundForPlayer(SoundEffect.FIZZ, player, block.getLocation());
+    	
+    	/*
+    	 * GREEN TERRA STUFF
+    	 */
+    	if(PP.getGreenTerraMode() && mcPermissions.getInstance().herbalismAbility(player) && PP.getGreenTerraMode())
+    	{
+   			Herbalism.greenTerra(player, block);
+   		}
+    	
+    	/*
+    	 * GIGA DRILL BREAKER CHECKS
+    	 */
+    	if(PP.getGigaDrillBreakerMode() && m.blockBreakSimulate(block, player) 
+    			&& Excavation.canBeGigaDrillBroken(block) && m.isShovel(inhand))
+    	{
+    		int x = 0;
+    		
+    		while(x < 3)
+    		{
+    			if(block.getData() != (byte)5)
+    				Excavation.excavationProcCheck(block.getData(), block.getType(), block.getLocation(), player);
+    			x++;
+    		}
+    		
+    		Material mat = Material.getMaterial(block.getTypeId());
+    		
+    		if(block.getType() == Material.GRASS)
+    			mat = Material.DIRT;
+    		if(block.getType() == Material.CLAY)
+    			mat = Material.CLAY_BALL;
+    		
+			byte type = block.getData();
+			ItemStack item = new ItemStack(mat, 1, (byte)0, type);
+			
+			block.setType(Material.AIR);
+			
+			player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType());
+			
+			if(LoadProperties.toolsLoseDurabilityFromAbilities)
+	    		m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss);
+			
+			if(item.getType() == Material.CLAY_BALL)
+			{
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+			} else
+			{
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+			}
+			
+			//Spout stuff
+			if(LoadProperties.spoutEnabled)
+				SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation());
+    	}
+    	/*
+    	 * BERSERK MODE CHECKS
+    	 */
+    	if(PP.getBerserkMode() 
+    		&& m.blockBreakSimulate(block, player) 
+    		&& player.getItemInHand().getTypeId() == 0 
+    		&& (Excavation.canBeGigaDrillBroken(block) || block.getTypeId() == 78))
+    	{
+		   	Material mat = Material.getMaterial(block.getTypeId());
+		   	
+		   	if(block.getTypeId() == 2)
+		   		mat = Material.DIRT;
+		   	if(block.getTypeId() == 78)
+		   		mat = Material.SNOW_BALL;
+		   	if(block.getTypeId() == 82)
+		   		mat = Material.CLAY_BALL;
+		   	
+			byte type = block.getData();
+			
+			ItemStack item = new ItemStack(mat, 1, (byte)0, type);
+			player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType());
+			
+			block.setType(Material.AIR);
+			
+			if(item.getType() == Material.CLAY_BALL)
+			{
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+			} else
+			{
+				block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
+			}
+			
+			if(LoadProperties.spoutEnabled)
+				SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation());
+    	}
+    	
+    	/*
+    	 * SUPER BREAKER CHECKS
+    	 */
+    	if(PP.getSuperBreakerMode() 
+    			&& Mining.canBeSuperBroken(block)
+    			&& m.blockBreakSimulate(block, player))
+    	{
+    		
+    		if(LoadProperties.miningrequirespickaxe)
+    		{
+    			if(m.isMiningPick(inhand))
+    				Mining.SuperBreakerBlockCheck(player, block, plugin);
+    		} else {
+    			Mining.SuperBreakerBlockCheck(player, block, plugin);
+    		}
+    	}
+    	
+    	/*
+    	 * LEAF BLOWER
+    	 */
+    	if(block.getTypeId() == 18 && mcPermissions.getInstance().woodcutting(player) && PP.getSkillLevel(SkillType.WOODCUTTING) >= 100 && m.isAxes(player.getItemInHand()) && m.blockBreakSimulate(block, player))
+    	{
+    		m.damageTool(player, (short)1);
+    		if(Math.random() * 10 > 9)
+    		{
+    			ItemStack x = new ItemStack(Material.SAPLING, 1, (short)0, block.getData());
+    			block.getLocation().getWorld().dropItemNaturally(block.getLocation(), x);
+    		}
+    		block.setType(Material.AIR);
+    		player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType());
+    		if(LoadProperties.spoutEnabled)
+    			SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation());
+    	}
+    	if(block.getType() == Material.AIR && plugin.misc.blockWatchList.contains(block))
+    	{
+    		plugin.misc.blockWatchList.remove(block);
+    	}
+    }
+    
+    public void onBlockFromTo(BlockFromToEvent event) 
+    {
+    	
+    	
+        Block blockFrom = event.getBlock();
+        Block blockTo = event.getToBlock();
+        if(m.shouldBeWatched(blockFrom) && blockFrom.getData() == (byte)5)
+        {
+        	blockTo.setData((byte)5);
+        }
+    }
 }

+ 223 - 223
mcMMO/com/gmail/nossr50/listeners/mcEntityListener.java → src/com/gmail/nossr50/listeners/mcEntityListener.java

@@ -1,223 +1,223 @@
-package com.gmail.nossr50.listeners;
-
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.LivingEntity;
-import org.bukkit.entity.Monster;
-import org.bukkit.entity.Player;
-import org.bukkit.entity.Wolf;
-import org.bukkit.event.entity.CreatureSpawnEvent;
-import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
-import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import org.bukkit.event.entity.EntityDamageEvent;
-import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
-import org.bukkit.event.entity.EntityDeathEvent;
-import org.bukkit.event.entity.EntityListener;
-import org.bukkit.event.entity.EntityTargetEvent;
-import org.bukkit.inventory.ItemStack;
-
-import com.gmail.nossr50.Combat;
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.config.LoadProperties;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.locale.mcLocale;
-import com.gmail.nossr50.party.Party;
-import com.gmail.nossr50.skills.Acrobatics;
-import com.gmail.nossr50.skills.Skills;
-import com.gmail.nossr50.skills.Taming;
-
-
-public class mcEntityListener extends EntityListener 
-{
-	private final mcMMO plugin;
-
-    public mcEntityListener(final mcMMO plugin) {
-        this.plugin = plugin;
-    }
-    
-    public void onEntityDamage(EntityDamageEvent event) 
-    {
-    	
-    	
-    	if(event.isCancelled())
-    		return;
-    	//Check for world pvp flag
-    	if(event instanceof EntityDamageByEntityEvent)
-    	{
-    		EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent)event;
-    		if(eventb.getEntity() instanceof Player && eventb.getDamager() instanceof Player && !event.getEntity().getWorld().getPVP())
-    			return;
-    	}
-    	/*
-    	 * CHECK FOR INVULNERABILITY
-    	 */
-    	if(event.getEntity() instanceof Player)
-    	{
-    		Player defender = (Player)event.getEntity();
-    		PlayerProfile PPd = Users.getProfile(defender);
-    		if(defender != null && PPd.getGodMode())
-    			event.setCancelled(true);
-    		if(PPd == null)
-    			Users.addUser(defender);
-    	}
-    	
-    	if(event.getEntity() instanceof LivingEntity)
-    	{
-    		//CraftEntity cEntity = (CraftEntity)event.getEntity();
-	    	//if(cEntity.getHandle() instanceof EntityLiving)
-	    	{
-		    	LivingEntity entityliving = (LivingEntity)event.getEntity();
-		    	if(entityliving.getNoDamageTicks() < entityliving.getMaximumNoDamageTicks()/2.0F)
-		    	{
-			    	Entity x = event.getEntity();
-			    	DamageCause type = event.getCause();
-			    	if(event.getEntity() instanceof Wolf && ((Wolf)event.getEntity()).isTamed() && Taming.getOwner(((Wolf)event.getEntity()), plugin) != null)
-			    	{
-			    		Wolf theWolf = (Wolf) event.getEntity();
-				    	Player master = Taming.getOwner(theWolf, plugin);
-				    	PlayerProfile PPo = Users.getProfile(master);
-				    	if(master == null || PPo == null)
-				    		return;
-			    		//Environmentally Aware
-						if((event.getCause() == DamageCause.CONTACT || event.getCause() == DamageCause.LAVA || event.getCause() == DamageCause.FIRE) && PPo.getSkillLevel(SkillType.TAMING) >= 100)
-						{
-							if(event.getDamage() < ((Wolf) event.getEntity()).getHealth())
-							{
-								event.getEntity().teleport(Taming.getOwner(theWolf, plugin).getLocation());
-								master.sendMessage(mcLocale.getString("mcEntityListener.WolfComesBack")); //$NON-NLS-1$
-								event.getEntity().setFireTicks(0);
-							}
-						}
-						if(event.getCause() == DamageCause.FALL && PPo.getSkillLevel(SkillType.TAMING) >= 100)
-						{
-							event.setCancelled(true);
-						}
-						
-						//Thick Fur
-						if(event.getCause() == DamageCause.FIRE_TICK)
-						{
-							event.getEntity().setFireTicks(0);
-						}
-			    	}
-			    	
-			    	/*
-			    	 * ACROBATICS
-			    	 */
-			    	if(x instanceof Player){
-				    	Player player = (Player)x;
-				    	if(type == DamageCause.FALL){
-				    		Acrobatics.acrobaticsCheck(player, event);
-				    	}
-			    	}
-			    	
-			    	/*
-			    	 * Entity Damage by Entity checks
-			    	 */
-			    	if(event instanceof EntityDamageByEntityEvent && !event.isCancelled())
-			    	{
-			    		EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event;
-			    		Entity f = eventb.getDamager();
-			    		Entity e = event.getEntity();
-			    		/*
-			    		 * PARTY CHECKS
-			    		 */
-			    		if(event.getEntity() instanceof Player && f instanceof Player)
-			    		{
-			        		Player defender = (Player)e;
-			        		Player attacker = (Player)f;
-			        		if(Party.getInstance().inSameParty(defender, attacker))
-			        			event.setCancelled(true);
-			    		}
-			    		Combat.combatChecks(event, plugin);	
-			        }
-			    	/*
-			    	 * Check to see if the defender took damage so we can apply recently hurt
-			    	 */
-			    	if(event.getEntity() instanceof Player)
-			    	{
-			    		Player herpderp = (Player)event.getEntity();
-			    		if(!event.isCancelled() && event.getDamage() >= 1)
-			    		{
-			    			Users.getProfile(herpderp).setRecentlyHurt(System.currentTimeMillis());
-			    		}
-			    	}
-		    	}
-	    	}
-    	}
-    }
-    
-    public void onEntityDeath(EntityDeathEvent event) 
-    {
-    	
-    	Entity x = event.getEntity();
-    	x.setFireTicks(0);
-    	
-    	//cleanup mob diff
-    	if(plugin.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
-    			plugin.mob.mobDiff.remove(event.getEntity().getEntityId());
-    	
-    	
-    	//Remove bleed track
-    	if(plugin.misc.bleedTracker.contains((LivingEntity)x))
-    		plugin.misc.addToBleedRemovalQue((LivingEntity)x);
-    	
-		Skills.arrowRetrievalCheck(x, plugin);
-		/*
-		if(Config.getInstance().isMobSpawnTracked(x)){
-			Config.getInstance().removeMobSpawnTrack(x);
-		}
-		*/
-    	if(x instanceof Player){
-    		Player player = (Player)x;
-    		Users.getProfile(player).setBleedTicks(0);
-    	}
-    	
-    }
-    
-    public void onCreatureSpawn(CreatureSpawnEvent event) 
-    {
-    	
-    	SpawnReason reason = event.getSpawnReason();
-    	
-    	if(reason == SpawnReason.SPAWNER && !LoadProperties.xpGainsMobSpawners)
-    	{
-    		plugin.misc.mobSpawnerList.add(event.getEntity());
-    	} else 
-    	{
-    		if(event.getEntity() instanceof Monster && !plugin.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
-        		plugin.mob.assignDifficulty(event.getEntity());
-    	}
-    }
-    
-    public void onEntityTarget(EntityTargetEvent event) 
-	{
-    	
-		int type = event.getEntity().getEntityId();
-		//Make 3+ non-aggressive
-		if(event.getEntity() instanceof Monster 
-				&& plugin.mob.mobDiff.containsKey(type)
-				&& plugin.mob.isAggressive.containsKey(type))
-		{
-			if(plugin.mob.mobDiff.get(type) >= 2 && plugin.mob.isAggressive.get(type) == false)
-			{
-				event.setCancelled(true);
-				event.setTarget(null);
-			}
-		}
-	}
-	public boolean isBow(ItemStack is){
-		if (is.getTypeId() == 261){
-			return true;
-		} else {
-			return false;
-		}
-	}
-	public boolean isPlayer(Entity entity){
-    	if (entity instanceof Player) {
-    	    return true;
-    	} else{
-    		return false;
-    	}
-    }
-}
+package com.gmail.nossr50.listeners;
+
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Monster;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.Wolf;
+import org.bukkit.event.entity.CreatureSpawnEvent;
+import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
+import org.bukkit.event.entity.EntityDeathEvent;
+import org.bukkit.event.entity.EntityListener;
+import org.bukkit.event.entity.EntityTargetEvent;
+import org.bukkit.inventory.ItemStack;
+
+import com.gmail.nossr50.Combat;
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.config.LoadProperties;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.locale.mcLocale;
+import com.gmail.nossr50.party.Party;
+import com.gmail.nossr50.skills.Acrobatics;
+import com.gmail.nossr50.skills.Skills;
+import com.gmail.nossr50.skills.Taming;
+
+
+public class mcEntityListener extends EntityListener 
+{
+	private final mcMMO plugin;
+
+    public mcEntityListener(final mcMMO plugin) {
+        this.plugin = plugin;
+    }
+    
+    public void onEntityDamage(EntityDamageEvent event) 
+    {
+    	
+    	
+    	if(event.isCancelled())
+    		return;
+    	//Check for world pvp flag
+    	if(event instanceof EntityDamageByEntityEvent)
+    	{
+    		EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent)event;
+    		if(eventb.getEntity() instanceof Player && eventb.getDamager() instanceof Player && !event.getEntity().getWorld().getPVP())
+    			return;
+    	}
+    	/*
+    	 * CHECK FOR INVULNERABILITY
+    	 */
+    	if(event.getEntity() instanceof Player)
+    	{
+    		Player defender = (Player)event.getEntity();
+    		PlayerProfile PPd = Users.getProfile(defender);
+    		if(defender != null && PPd.getGodMode())
+    			event.setCancelled(true);
+    		if(PPd == null)
+    			Users.addUser(defender);
+    	}
+    	
+    	if(event.getEntity() instanceof LivingEntity)
+    	{
+    		//CraftEntity cEntity = (CraftEntity)event.getEntity();
+	    	//if(cEntity.getHandle() instanceof EntityLiving)
+	    	{
+		    	LivingEntity entityliving = (LivingEntity)event.getEntity();
+		    	if(entityliving.getNoDamageTicks() < entityliving.getMaximumNoDamageTicks()/2.0F)
+		    	{
+			    	Entity x = event.getEntity();
+			    	DamageCause type = event.getCause();
+			    	if(event.getEntity() instanceof Wolf && ((Wolf)event.getEntity()).isTamed() && Taming.getOwner(((Wolf)event.getEntity()), plugin) != null)
+			    	{
+			    		Wolf theWolf = (Wolf) event.getEntity();
+				    	Player master = Taming.getOwner(theWolf, plugin);
+				    	PlayerProfile PPo = Users.getProfile(master);
+				    	if(master == null || PPo == null)
+				    		return;
+			    		//Environmentally Aware
+						if((event.getCause() == DamageCause.CONTACT || event.getCause() == DamageCause.LAVA || event.getCause() == DamageCause.FIRE) && PPo.getSkillLevel(SkillType.TAMING) >= 100)
+						{
+							if(event.getDamage() < ((Wolf) event.getEntity()).getHealth())
+							{
+								event.getEntity().teleport(Taming.getOwner(theWolf, plugin).getLocation());
+								master.sendMessage(mcLocale.getString("mcEntityListener.WolfComesBack")); //$NON-NLS-1$
+								event.getEntity().setFireTicks(0);
+							}
+						}
+						if(event.getCause() == DamageCause.FALL && PPo.getSkillLevel(SkillType.TAMING) >= 100)
+						{
+							event.setCancelled(true);
+						}
+						
+						//Thick Fur
+						if(event.getCause() == DamageCause.FIRE_TICK)
+						{
+							event.getEntity().setFireTicks(0);
+						}
+			    	}
+			    	
+			    	/*
+			    	 * ACROBATICS
+			    	 */
+			    	if(x instanceof Player){
+				    	Player player = (Player)x;
+				    	if(type == DamageCause.FALL){
+				    		Acrobatics.acrobaticsCheck(player, event);
+				    	}
+			    	}
+			    	
+			    	/*
+			    	 * Entity Damage by Entity checks
+			    	 */
+			    	if(event instanceof EntityDamageByEntityEvent && !event.isCancelled())
+			    	{
+			    		EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event;
+			    		Entity f = eventb.getDamager();
+			    		Entity e = event.getEntity();
+			    		/*
+			    		 * PARTY CHECKS
+			    		 */
+			    		if(event.getEntity() instanceof Player && f instanceof Player)
+			    		{
+			        		Player defender = (Player)e;
+			        		Player attacker = (Player)f;
+			        		if(Party.getInstance().inSameParty(defender, attacker))
+			        			event.setCancelled(true);
+			    		}
+			    		Combat.combatChecks(event, plugin);	
+			        }
+			    	/*
+			    	 * Check to see if the defender took damage so we can apply recently hurt
+			    	 */
+			    	if(event.getEntity() instanceof Player)
+			    	{
+			    		Player herpderp = (Player)event.getEntity();
+			    		if(!event.isCancelled() && event.getDamage() >= 1)
+			    		{
+			    			Users.getProfile(herpderp).setRecentlyHurt(System.currentTimeMillis());
+			    		}
+			    	}
+		    	}
+	    	}
+    	}
+    }
+    
+    public void onEntityDeath(EntityDeathEvent event) 
+    {
+    	
+    	Entity x = event.getEntity();
+    	x.setFireTicks(0);
+    	
+    	//cleanup mob diff
+    	if(plugin.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
+    			plugin.mob.mobDiff.remove(event.getEntity().getEntityId());
+    	
+    	
+    	//Remove bleed track
+    	if(plugin.misc.bleedTracker.contains((LivingEntity)x))
+    		plugin.misc.addToBleedRemovalQue((LivingEntity)x);
+    	
+		Skills.arrowRetrievalCheck(x, plugin);
+		/*
+		if(Config.getInstance().isMobSpawnTracked(x)){
+			Config.getInstance().removeMobSpawnTrack(x);
+		}
+		*/
+    	if(x instanceof Player){
+    		Player player = (Player)x;
+    		Users.getProfile(player).setBleedTicks(0);
+    	}
+    	
+    }
+    
+    public void onCreatureSpawn(CreatureSpawnEvent event) 
+    {
+    	
+    	SpawnReason reason = event.getSpawnReason();
+    	
+    	if(reason == SpawnReason.SPAWNER && !LoadProperties.xpGainsMobSpawners)
+    	{
+    		plugin.misc.mobSpawnerList.add(event.getEntity());
+    	} else 
+    	{
+    		if(event.getEntity() instanceof Monster && !plugin.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
+        		plugin.mob.assignDifficulty(event.getEntity());
+    	}
+    }
+    
+    public void onEntityTarget(EntityTargetEvent event) 
+	{
+    	
+		int type = event.getEntity().getEntityId();
+		//Make 3+ non-aggressive
+		if(event.getEntity() instanceof Monster 
+				&& plugin.mob.mobDiff.containsKey(type)
+				&& plugin.mob.isAggressive.containsKey(type))
+		{
+			if(plugin.mob.mobDiff.get(type) >= 2 && plugin.mob.isAggressive.get(type) == false)
+			{
+				event.setCancelled(true);
+				event.setTarget(null);
+			}
+		}
+	}
+	public boolean isBow(ItemStack is){
+		if (is.getTypeId() == 261){
+			return true;
+		} else {
+			return false;
+		}
+	}
+	public boolean isPlayer(Entity entity){
+    	if (entity instanceof Player) {
+    	    return true;
+    	} else{
+    		return false;
+    	}
+    }
+}

+ 0 - 0
mcMMO/com/gmail/nossr50/listeners/mcPlayerListener.java → src/com/gmail/nossr50/listeners/mcPlayerListener.java


+ 44 - 44
mcMMO/com/gmail/nossr50/listeners/mcSpoutInputListener.java → src/com/gmail/nossr50/listeners/mcSpoutInputListener.java

@@ -1,45 +1,45 @@
-package com.gmail.nossr50.listeners;
-
-import org.getspout.spoutapi.event.input.InputListener;
-import org.getspout.spoutapi.event.input.KeyPressedEvent;
-import org.getspout.spoutapi.gui.ScreenType;
-import org.getspout.spoutapi.player.SpoutPlayer;
-
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.popups.PopupMMO;
-import com.gmail.nossr50.spout.SpoutStuff;
-
-public class mcSpoutInputListener extends InputListener
-{
-	mcMMO plugin = null;
-	
-	public mcSpoutInputListener(mcMMO pluginx)
-	{
-		plugin = pluginx;
-	}
-	
-	public void onKeyPressedEvent(KeyPressedEvent event) 
-	{
-		if(!event.getPlayer().isSpoutCraftEnabled() || event.getPlayer().getMainScreen().getActivePopup() != null)
-			return;
-		if(event.getScreenType() != ScreenType.GAME_SCREEN)
-			return;
-		
-		SpoutPlayer sPlayer = event.getPlayer();
-		
-		if(event.getKey() == SpoutStuff.keypress)
-		{
-			if(!SpoutStuff.playerScreens.containsKey(sPlayer))
-			{
-				PopupMMO mmoPop = new PopupMMO(sPlayer, Users.getProfile(sPlayer), plugin);
-				SpoutStuff.playerScreens.put(sPlayer, mmoPop);
-				sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer));	
-				sPlayer.getMainScreen().setDirty(true);
-			} else {
-				sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer));	
-				sPlayer.getMainScreen().setDirty(true);
-			}
-		}
-	}
+package com.gmail.nossr50.listeners;
+
+import org.getspout.spoutapi.event.input.InputListener;
+import org.getspout.spoutapi.event.input.KeyPressedEvent;
+import org.getspout.spoutapi.gui.ScreenType;
+import org.getspout.spoutapi.player.SpoutPlayer;
+
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.datatypes.popups.PopupMMO;
+import com.gmail.nossr50.spout.SpoutStuff;
+
+public class mcSpoutInputListener extends InputListener
+{
+	mcMMO plugin = null;
+	
+	public mcSpoutInputListener(mcMMO pluginx)
+	{
+		plugin = pluginx;
+	}
+	
+	public void onKeyPressedEvent(KeyPressedEvent event) 
+	{
+		if(!event.getPlayer().isSpoutCraftEnabled() || event.getPlayer().getMainScreen().getActivePopup() != null)
+			return;
+		if(event.getScreenType() != ScreenType.GAME_SCREEN)
+			return;
+		
+		SpoutPlayer sPlayer = event.getPlayer();
+		
+		if(event.getKey() == SpoutStuff.keypress)
+		{
+			if(!SpoutStuff.playerScreens.containsKey(sPlayer))
+			{
+				PopupMMO mmoPop = new PopupMMO(sPlayer, Users.getProfile(sPlayer), plugin);
+				SpoutStuff.playerScreens.put(sPlayer, mmoPop);
+				sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer));	
+				sPlayer.getMainScreen().setDirty(true);
+			} else {
+				sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer));	
+				sPlayer.getMainScreen().setDirty(true);
+			}
+		}
+	}
 }

+ 38 - 38
mcMMO/com/gmail/nossr50/listeners/mcSpoutListener.java → src/com/gmail/nossr50/listeners/mcSpoutListener.java

@@ -1,39 +1,39 @@
-package com.gmail.nossr50.listeners;
-
-import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent;
-import org.getspout.spoutapi.event.spout.SpoutListener;
-import org.getspout.spoutapi.player.SpoutPlayer;
-
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.HUDmmo;
-import com.gmail.nossr50.spout.SpoutStuff;
-import com.gmail.nossr50.spout.mmoHelper;
-
-public class mcSpoutListener extends SpoutListener
-{
-	mcMMO plugin = null;
-	
-	public mcSpoutListener(mcMMO pluginx)
-	{
-		plugin = pluginx;
-	}
-	
-	public void onSpoutCraftEnable(SpoutCraftEnableEvent event) 
-	{
-		SpoutPlayer sPlayer = event.getPlayer();
-		if(sPlayer.isSpoutCraftEnabled())
-		{
-			//Setup Party HUD stuff
-			SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer));
-			
-			//if(LoadProperties.partybar && Users.getProfile(sPlayer).inParty())
-				//SpoutStuff.initializePartyTracking(sPlayer);
-			
-			mmoHelper.initialize(sPlayer, plugin);
-			
-			//Party.update(sPlayer);
-			Users.getProfile(sPlayer).toggleSpoutEnabled();
-		}
-	}
+package com.gmail.nossr50.listeners;
+
+import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent;
+import org.getspout.spoutapi.event.spout.SpoutListener;
+import org.getspout.spoutapi.player.SpoutPlayer;
+
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.datatypes.HUDmmo;
+import com.gmail.nossr50.spout.SpoutStuff;
+import com.gmail.nossr50.spout.mmoHelper;
+
+public class mcSpoutListener extends SpoutListener
+{
+	mcMMO plugin = null;
+	
+	public mcSpoutListener(mcMMO pluginx)
+	{
+		plugin = pluginx;
+	}
+	
+	public void onSpoutCraftEnable(SpoutCraftEnableEvent event) 
+	{
+		SpoutPlayer sPlayer = event.getPlayer();
+		if(sPlayer.isSpoutCraftEnabled())
+		{
+			//Setup Party HUD stuff
+			SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer));
+			
+			//if(LoadProperties.partybar && Users.getProfile(sPlayer).inParty())
+				//SpoutStuff.initializePartyTracking(sPlayer);
+			
+			mmoHelper.initialize(sPlayer, plugin);
+			
+			//Party.update(sPlayer);
+			Users.getProfile(sPlayer).toggleSpoutEnabled();
+		}
+	}
 }

+ 66 - 66
mcMMO/com/gmail/nossr50/listeners/mcSpoutScreenListener.java → src/com/gmail/nossr50/listeners/mcSpoutScreenListener.java

@@ -1,67 +1,67 @@
-package com.gmail.nossr50.listeners;
-
-import org.getspout.spoutapi.event.screen.ButtonClickEvent;
-import org.getspout.spoutapi.event.screen.ScreenCloseEvent;
-import org.getspout.spoutapi.event.screen.ScreenListener;
-import org.getspout.spoutapi.player.SpoutPlayer;
-
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.HUDType;
-import com.gmail.nossr50.datatypes.HUDmmo;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.buttons.ButtonEscape;
-import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle;
-import com.gmail.nossr50.datatypes.popups.PopupMMO;
-import com.gmail.nossr50.spout.SpoutStuff;
-
-public class mcSpoutScreenListener extends ScreenListener
-{
-	mcMMO plugin = null;
-	public mcSpoutScreenListener(mcMMO pluginx)
-	{
-		plugin = pluginx;
-	}
-	public void onButtonClick(ButtonClickEvent event) 
-	{
-		SpoutPlayer sPlayer = event.getPlayer();
-		PlayerProfile PP = Users.getProfile(sPlayer);
-		
-		if(event.getButton() instanceof ButtonHUDStyle)
-		{
-			if(SpoutStuff.playerHUDs.containsKey(sPlayer))
-			{
-				SpoutStuff.playerHUDs.get(sPlayer).resetHUD();
-				SpoutStuff.playerHUDs.remove(sPlayer);
-				
-				switch(PP.getHUDType())
-				{
-				case RETRO:
-					PP.setHUDType(HUDType.STANDARD);
-					break;
-				case STANDARD:
-					PP.setHUDType(HUDType.SMALL);
-					break;
-				case SMALL:
-					PP.setHUDType(HUDType.RETRO);
-					break;
-				}
-				
-				SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer));
-				
-				SpoutStuff.playerScreens.get(sPlayer).updateButtons(PP);
-			}
-		} else if (event.getButton() instanceof ButtonEscape)
-		{
-			sPlayer.getMainScreen().closePopup();
-		}
-	}
-	
-	public void onScreenClose(ScreenCloseEvent event) 
-	{
-		if(event.getScreen() instanceof PopupMMO)
-		{
-			SpoutStuff.playerScreens.remove(event.getPlayer());
-		}
-	}
+package com.gmail.nossr50.listeners;
+
+import org.getspout.spoutapi.event.screen.ButtonClickEvent;
+import org.getspout.spoutapi.event.screen.ScreenCloseEvent;
+import org.getspout.spoutapi.event.screen.ScreenListener;
+import org.getspout.spoutapi.player.SpoutPlayer;
+
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.datatypes.HUDType;
+import com.gmail.nossr50.datatypes.HUDmmo;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.buttons.ButtonEscape;
+import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle;
+import com.gmail.nossr50.datatypes.popups.PopupMMO;
+import com.gmail.nossr50.spout.SpoutStuff;
+
+public class mcSpoutScreenListener extends ScreenListener
+{
+	mcMMO plugin = null;
+	public mcSpoutScreenListener(mcMMO pluginx)
+	{
+		plugin = pluginx;
+	}
+	public void onButtonClick(ButtonClickEvent event) 
+	{
+		SpoutPlayer sPlayer = event.getPlayer();
+		PlayerProfile PP = Users.getProfile(sPlayer);
+		
+		if(event.getButton() instanceof ButtonHUDStyle)
+		{
+			if(SpoutStuff.playerHUDs.containsKey(sPlayer))
+			{
+				SpoutStuff.playerHUDs.get(sPlayer).resetHUD();
+				SpoutStuff.playerHUDs.remove(sPlayer);
+				
+				switch(PP.getHUDType())
+				{
+				case RETRO:
+					PP.setHUDType(HUDType.STANDARD);
+					break;
+				case STANDARD:
+					PP.setHUDType(HUDType.SMALL);
+					break;
+				case SMALL:
+					PP.setHUDType(HUDType.RETRO);
+					break;
+				}
+				
+				SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer));
+				
+				SpoutStuff.playerScreens.get(sPlayer).updateButtons(PP);
+			}
+		} else if (event.getButton() instanceof ButtonEscape)
+		{
+			sPlayer.getMainScreen().closePopup();
+		}
+	}
+	
+	public void onScreenClose(ScreenCloseEvent event) 
+	{
+		if(event.getScreen() instanceof PopupMMO)
+		{
+			SpoutStuff.playerScreens.remove(event.getPlayer());
+		}
+	}
 }

+ 356 - 356
mcMMO/com/gmail/nossr50/locale/locale_de.properties → src/com/gmail/nossr50/locale/locale_de.properties

@@ -1,357 +1,357 @@
-Combat.WolfExamine=[[GREEN]]**du musterst den Wolf mit Bestienkunde**
-Combat.WolfShowMaster=[[DARK_GREEN]]Besitzer \: {0}
-Combat.Ignition=[[RED]]**ENTZUENDET**
-Combat.BurningArrowHit=[[DARK_RED]]von brennendem Pfeil getroffen\!
-Combat.TouchedFuzzy=[[DARK_RED]]Benommen. fuehlt sich schwindelig.
-Combat.TargetDazed=Ziel ist [[DARK_RED]]benommen
-Combat.WolfNoMaster=[[GRAY]]Dieser Wolf hat keinen Besitzer...
-Combat.WolfHealth=[[GREEN]]Der Wolf hat {0} Lebensenergie 
-Combat.StruckByGore=[[RED]]**von Biss getroffen**
-Combat.Gore=[[GREEN]]**BISS**
-Combat.ArrowDeflect=[[WHITE]]**PFEIL ABGEWEHRT**
-Item.ChimaeraWingFail=**CHIMAEREN FLUEGEL fehlgeschlagen\!**
-Item.ChimaeraWingPass=**CHIMAEREN FLUEGEL**
-Item.InjuredWait=du musst mit der Benutzung warten [[YELLOW]]({0}s)
-Item.NeedFeathers=[[GRAY]]mehr Federn nötig...
-m.mccPartyCommands=[[GREEN]]--GRUPPEN BEFEHLE--
-m.mccParty=[party name] [[RED]]- Erstellt/tritt einer Gruppe bei
-m.mccPartyQ=[[RED]]- aktuelle Gruppe verlassen
-m.mccPartyToggle=[[RED]] - aktiviert Gruppenchat
-m.mccPartyInvite=[player name] [[RED]]- Gruppeneinladung senden
-m.mccPartyAccept=[[RED]]- Gruppeneinladung akzeptieren
-m.mccPartyTeleport=[party member name] [[RED]]- Teleport zu Gruppenmitglied
-m.mccOtherCommands=[[GREEN]]--ANDERE BEFEHLE--
-m.mccStats=- zeigt deinen Status
-m.mccLeaderboards=- Ranglisten
-m.mccMySpawn=- Teleport zum Spawnpunkt
-m.mccClearMySpawn=- Spawnpunkt loeschen
-m.mccToggleAbility=- Faehigkeitsaktivierung an/aus schalten
-m.mccAdminToggle=- Adminchat aktivieren
-m.mccWhois=[playername] [[RED]]- Detailierte Spielerinfos zeigen
-m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Ziel modifizieren
-m.mccMcGod=- Gott Modus
-m.mccSkillInfo=[skillname] [[RED]]- Detailierte Skillinfos zeigen
-m.mccModDescription=[[RED]]- MOD-Beschreibung
-m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
-m.XPGain=[[DARK_GRAY]]XP Erhalten: [[WHITE]]{0}
-m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
-m.AbilityLockTemplate=[[GRAY]]{0}
-m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
-m.Effects=EFFEKTE
-m.YourStats=DEINE WERTE
-m.SkillTaming=Bestienkunde (Taming)
-m.XPGainTaming=wenn Woelfe Schaden bekommen/verursachen
-m.EffectsTaming1_0=Bestienkunde
-m.EffectsTaming1_1=Wolf mit Knochen schlagen fuer Informationen
-m.EffectsTaming2_0=Biss
-m.EffectsTaming2_1=Kritischer Schlag mit Blutungseffekt
-m.EffectsTaming3_0=Geschaerfte Krallen
-m.EffectsTaming3_1=Schadens-Bonus
-m.EffectsTaming4_0=Umweltbewusstsein
-m.EffectsTaming4_1=Kaktus/Lava Phobie, Fall Schaden Immun
-m.EffectsTaming5_0=Dichtes Fell
-m.EffectsTaming5_1=Schadens-Reduzierung, Feuer-Resistenz
-m.EffectsTaming6_0=schockfest
-m.EffectsTaming6_1=Explosions-Schaden-Reduzierung
-m.AbilLockTaming1=gesperrt bis 100+ Skilllevel (Umweltbewusstsein)
-m.AbilLockTaming2=gesperrt bis 250+ Skillevel (Dichtes Fell)
-m.AbilLockTaming3=gesperrt bis 500+ Skillevel (Schockfest)
-m.AbilLockTaming4=gesperrt bis 750+ Skillevel (Geschaerfte Krallen)
-m.AbilBonusTaming1_0=Umweltbewusstsein
-m.AbilBonusTaming1_1=Woelfe meiden Gefahr
-m.AbilBonusTaming2_0=Dichtes Fell
-m.AbilBonusTaming2_1=Halber Schaden, Feuer-Resistenz
-m.AbilBonusTaming3_0=Schockfest
-m.AbilBonusTaming3_1=Explosionen verursachen nur 1/6 Schaden
-m.AbilBonusTaming4_0=Geschaerfte Krallen
-m.AbilBonusTaming4_1=+2 Schaden
-m.TamingGoreChance=[[RED]]Biss Chance: [[YELLOW]]{0}%
-m.SkillWoodCutting=Holzfaellen (WoodCutting)
-m.XPGainWoodCutting=Baeume faellen
-m.EffectsWoodCutting1_0=Baumfaeller (Faehigkeit)
-m.EffectsWoodCutting1_1=Bringt Baeume zum explodieren
-m.EffectsWoodCutting2_0=Blaetter-Sturm
-m.EffectsWoodCutting2_1=blaest Blaetter weg
-m.EffectsWoodCutting3_0=Doppelte Drops
-m.EffectsWoodCutting3_1=doppelte Anzahl Items
-m.AbilLockWoodCutting1=gesperrt bis 100+ Skilllevel (Blaetter-Sturm)
-m.AbilBonusWoodCutting1_0=Blaetter-Sturm
-m.AbilBonusWoodCutting1_1=blaest Blaetter weg
-m.WoodCuttingDoubleDropChance=[[RED]]Doppelte Drop Chance: [[YELLOW]]{0}%
-m.WoodCuttingTreeFellerLength=[[RED]]Baumfaeller Dauer: [[YELLOW]]{0}s
-m.SkillArchery=Bogenschiessen (Archery)
-m.XPGainArchery=Monster/Spieler angreifen
-m.EffectsArchery1_0=Entzuenden
-m.EffectsArchery1_1=25% Chance das Feind Feuer faengt
-m.EffectsArchery2_0=Blenden (Spieler)
-m.EffectsArchery2_1=Disorientiert Feinde
-m.EffectsArchery3_0=Schaden+
-m.EffectsArchery3_1=Modifiziert Schaden
-m.EffectsArchery4_0=Pfeile wiederverwenden
-m.EffectsArchery4_1=Chance Pfeile von Leichen zurueckzugewinnen
-m.ArcheryDazeChance=[[RED]]Chance zu blenden: [[YELLOW]]{0}%
-m.ArcheryRetrieveChance=[[RED]]Chance Pfeile zurueckzugewinnen: [[YELLOW]]{0}%
-m.ArcheryIgnitionLength=[[RED]]Dauer von Entzuenden: [[YELLOW]]{0} seconds
-m.ArcheryDamagePlus=[[RED]]Schaden+ (Rank{0}): [[YELLOW]]Bonus {0} damage
-m.SkillAxes=Axt (Axes)
-m.XPGainAxes=Monster/Spieler angreifen
-m.EffectsAxes1_0=Schaedelspalter (Faehigkeit)
-m.EffectsAxes1_1=Verursacht Flaechenschaden
-m.EffectsAxes2_0=Kritischer Schlag
-m.EffectsAxes2_1=doppelter Schaden
-m.EffectsAxes3_0=Axtmeister (500 Skilllevel)
-m.EffectsAxes3_1=Modifiziert Schaden
-m.AbilLockAxes1=gesperrt bis 500+ Skilllevel(Axtmeister)
-m.AbilBonusAxes1_0=Axtmeister
-m.AbilBonusAxes1_1=+4 Schaden
-m.AxesCritChance=[[RED]]Chance fuer kritische Treffer: [[YELLOW]]{0}%
-m.AxesSkullLength=[[RED]]Schaedelspalter Dauer: [[YELLOW]]{0}s
-m.SkillSwords=Schwert (Swords)
-m.XPGainSwords=Monster/Spieler angreifen
-m.EffectsSwords1_0=Konter
-m.EffectsSwords1_1=Reflektiert 50% des erhaltenen Schadens
-m.EffectsSwords2_0=gezackter Schlag (Faehigkeit)
-m.EffectsSwords2_1=25% Flaechenschaden, Blutung+ Flaecheneffekt
-m.EffectsSwords3_0=gezackter Schlag Blutung+
-m.EffectsSwords3_1=Blutung über 5 Ticks
-m.EffectsSwords4_0=parrieren
-m.EffectsSwords4_1=negiert Schaden
-m.EffectsSwords5_0=Blutung
-m.EffectsSwords5_1=hinterlaesst Blutungs-DOT
-m.SwordsCounterAttChance=[[RED]]Konter Chance: [[YELLOW]]{0}%
-m.SwordsBleedLength=[[RED]]Blutung Dauer: [[YELLOW]]{0} ticks
-m.SwordsBleedChance=[[RED]]Blutung Chance: [[YELLOW]]{0} %
-m.SwordsParryChance=[[RED]]Parieren Chance: [[YELLOW]]{0} %
-m.SwordsSSLength=[[RED]]gezackter Schlag Dauer: [[YELLOW]]{0}s
-m.SwordsTickNote=[[GRAY]]NOTIZ: [[YELLOW]]1 Tick erfolgt aller 2 Sekunden
-m.SkillAcrobatics=Akrobatik (Acrobatics)
-m.XPGainAcrobatics=stuerzen
-m.EffectsAcrobatics1_0=Rolle
-m.EffectsAcrobatics1_1=Reduziert oder negiert Schaden
-m.EffectsAcrobatics2_0=elegante Rolle
-m.EffectsAcrobatics2_1=Doppelt so effektiv wie Rolle
-m.EffectsAcrobatics3_0=Ausweichen
-m.EffectsAcrobatics3_1=halbiert Schaden
-m.AcrobaticsRollChance=[[RED]]Rolle Chance: [[YELLOW]]{0}%
-m.AcrobaticsGracefulRollChance=[[RED]]elegante Rolle Chance: [[YELLOW]]{0}%
-m.AcrobaticsDodgeChance=[[RED]]Ausweichen Chance: [[YELLOW]]{0}%
-m.SkillMining=Bergbau (Mining)
-m.XPGainMining=Abbauen von Stein und Erz
-m.EffectsMining1_0=Brecher (Faehigkeit)
-m.EffectsMining1_1=Tempo+, dreifache Drop Chance
-m.EffectsMining2_0=doppelte Drops
-m.EffectsMining2_1=doppelte Anzahl Items
-m.MiningDoubleDropChance=[[RED]]doppelte Drops Chance: [[YELLOW]]{0}%
-m.MiningSuperBreakerLength=[[RED]]Brecher Dauer: [[YELLOW]]{0}s
-m.SkillRepair=Reparieren (Repair)
-m.XPGainRepair=reparieren
-m.EffectsRepair1_0=reparieren
-m.EffectsRepair1_1=reparieren von Werkzeugen und Ruestung
-m.EffectsRepair2_0=reparieren - Meister
-m.EffectsRepair2_1=erhoeht Reparaturwert
-m.EffectsRepair3_0=Super Reparatur
-m.EffectsRepair3_1=doppelte Effektivitaet
-m.EffectsRepair4_0=Diamanten Reparatur ({0}+ SKILL)
-m.EffectsRepair4_1=Reparieren von Diamantwerkzeugen und Ruestung
-m.RepairRepairMastery=[[RED]]reparieren - Meister: [[YELLOW]]Extra {0}% Haltbarkeit
-m.RepairSuperRepairChance=[[RED]]Super Reparatur Chance: [[YELLOW]]{0}%
-m.SkillUnarmed=Faustkampf (Unarmed)
-m.XPGainUnarmed=Monster/Spieler angreifen
-m.EffectsUnarmed1_0=Berserker (Faehigkeit)
-m.EffectsUnarmed1_1=+50% Schaden, bricht weiches Material (Bsp. Erde)
-m.EffectsUnarmed2_0=Entwaffnen (Spieler)
-m.EffectsUnarmed2_1=Entreisst dem Feind das ausgeruestete Item
-m.EffectsUnarmed3_0=Faustkampfmeister
-m.EffectsUnarmed3_1=grosse Schadenssteigerung
-m.EffectsUnarmed4_0=Faustkampflehrling
-m.EffectsUnarmed4_1=Schadens-Bonus
-m.EffectsUnarmed5_0=Pfeil abwehren
-m.EffectsUnarmed5_1=wehrt Pfeile ab
-m.AbilLockUnarmed1=gesperrt bis 250+ Skilllevel (Faustkampflehrling)
-m.AbilLockUnarmed2=gesperrt bis 500+ Skilllevel (Faustkampfmeister)
-m.AbilBonusUnarmed1_0=Faustkampflehrling
-m.AbilBonusUnarmed1_1=+2 Schadens-Bonus
-m.AbilBonusUnarmed2_0=Faustkampfmeister
-m.AbilBonusUnarmed2_1=+4 Schadens-Bonus
-m.UnarmedArrowDeflectChance=[[RED]]Pfeil abwehren Chance: [[YELLOW]]{0}%
-m.UnarmedDisarmChance=[[RED]]Entwaffnen Chance: [[YELLOW]]{0}%
-m.UnarmedBerserkLength=[[RED]]Berserker Dauer: [[YELLOW]]{0}s
-m.SkillHerbalism=Kraeutersammler (Herbalism)
-m.XPGainHerbalism=Kraeuter sammeln
-m.EffectsHerbalism1_0=Gruene Welt (Faehigkeit)
-m.EffectsHerbalism1_1=Pflegt die Natur, dreifache Drops
-m.EffectsHerbalism2_0=Gruener Daumen (Weizen)
-m.EffectsHerbalism2_1=automatisches neupflanzen nach ernten von Weizen
-m.EffectsHerbalism3_0=Gruener Daumen (Pflasterstein)
-m.EffectsHerbalism3_1=verwandelt Pflasterstein mithilfe von Samen zu moosigen Pflasterstein 
-m.EffectsHerbalism4_0=Nahrung+
-m.EffectsHerbalism4_1=Steigert Heilung von Brot/Suppe
-m.EffectsHerbalism5_0=Doppelte Drops (Alle Kraeuter)
-m.EffectsHerbalism5_1=doppelte Anzahl Items
-m.HerbalismGreenTerraLength=[[RED]]Gruene Welt Dauer: [[YELLOW]]{0}s
-m.HerbalismGreenThumbChance=[[RED]]Gruener Daumen Chance: [[YELLOW]]{0}%
-m.HerbalismGreenThumbStage=[[RED]]Gruener Daumen Stufe: [[YELLOW]] Getreide waechst auf Stufe {0}
-m.HerbalismDoubleDropChance=[[RED]]Doppelte Drop Chance: [[YELLOW]]{0}%
-m.HerbalismFoodPlus=[[RED]]Nahrung+ (Rank{0}): [[YELLOW]]Bonus-Heilung {0} 
-m.SkillExcavation=Graben (Excavation)
-m.XPGainExcavation=Graben und finden von Schaetzen
-m.EffectsExcavation1_0=Buddler (Faehigkeit)
-m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Abbautempo
-m.EffectsExcavation2_0=Schatzjaeger
-m.EffectsExcavation2_1=Faehigkeit nach Schaetzen zu graben
-m.ExcavationGreenTerraLength=[[RED]]Buddler Dauer: [[YELLOW]]{0}s
-mcBlockListener.PlacedAnvil=[[DARK_RED]]Amboss platziert, hier kannst du Werkzeuge und Ruestungen reparieren.
-mcEntityListener.WolfComesBack=[[DARK_GRAY]]Dein Wolf hastet zurueck zu dir...
-mcPlayerListener.AbilitiesOff=Faehigkeiten nutzen (rechtsklick) aus
-mcPlayerListener.AbilitiesOn=Faehigkeiten nutzen (rechtsklick) an
-mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**Faehigkeiten aufgefrischt\!**
-mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Akrobatik Skill (Acrobatics): 
-mcPlayerListener.ArcherySkill=[[YELLOW]]Bogenschiessen Skill (Archery): 
-mcPlayerListener.AxesSkill=[[YELLOW]]Axt Skill (Axes): 
-mcPlayerListener.ExcavationSkill=[[YELLOW]]Graben Skill (Excavation): 
-mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Gottmodus deaktiviert
-mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Gottmodus aktiviert
-mcPlayerListener.GreenThumb=[[GREEN]]**GRUENER DAUMEN**
-mcPlayerListener.GreenThumbFail=[[RED]]**GRUENER DAUMEN FEHLGESCHLAGEN**
-mcPlayerListener.HerbalismSkill=[[YELLOW]]Kraeuterkunde Skill (Herbalism): 
-mcPlayerListener.MiningSkill=[[YELLOW]]Bergbau Skill (Mining): 
-mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Spawnpunkt ist freigegeben
-mcPlayerListener.MyspawnNotExist=[[RED]]Lege deinen Spawnpunkt erst mit einem Bett fest
-mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Spawnpunkt wurde an deine aktuelle Position gesetzt
-mcPlayerListener.MyspawnTimeNotice=Du musst {0}m {1}s warten um myspawn zu nutzen
-mcPlayerListener.NoPermission=unzureichende Berechtigungen (Permissions).
-mcPlayerListener.NoSkillNote=[[DARK_GRAY]]wenn du keinen Zugriff auf einen Skill hast wird er nicht hier gezeigt 
-mcPlayerListener.NotInParty=[[RED]]Du bist in keiner Gruppe.
-mcPlayerListener.InviteSuccess=[[GREEN]]Einladung erfolgreich versendet.
-mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]Eine Gruppeneinladung für {0} von {1} erhalten
-mcPlayerListener.ReceivedInvite2=[[YELLOW]]Schreibe[[GREEN]]/{0}[[YELLOW]] um die Einladung zu akzeptieren 
-mcPlayerListener.InviteAccepted=[[GREEN]]Einladung akzeptiert. du bist {0} beigetreten
-mcPlayerListener.NoInvites=[[RED]]Du hast derzeit keine Einladungen
-mcPlayerListener.YouAreInParty=[[GREEN]]Du bist in Gruppe {0}
-mcPlayerListener.PartyMembers=[[GREEN]]Gruppen Mitglieder
-mcPlayerListener.LeftParty=[[RED]]Du hast die Gruppe verlassen
-mcPlayerListener.JoinedParty=beigetrettene Gruppe: {0}
-mcPlayerListener.PartyChatOn=nur Gruppenchat [[RED]]an
-mcPlayerListener.PartyChatOff=nur Gruppenchat [[RED]]aus
-mcPlayerListener.AdminChatOn=nur Adminchat [[GREEN]]an
-mcPlayerListener.AdminChatOff=nur Adminchat [[RED]]aus
-mcPlayerListener.MOTD=[[BLUE]]Auf diesem Server laeuft {0} schreibe[[YELLOW]]/{1}[[BLUE]] fuer Hilfe. <frei Uebersetzt von g3oliver>
-mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
-mcPlayerListener.PowerLevel=[[DARK_RED]]Macht: 
-mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Macht [[YELLOW]]Rangliste--
-mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Rangliste--
-mcPlayerListener.RepairSkill=[[YELLOW]]Reparieren Skill (Repair): 
-mcPlayerListener.SwordsSkill=[[YELLOW]]Schwert Skill (Swords): 
-mcPlayerListener.TamingSkill=[[YELLOW]]Bestienkunde Skill (Taming): 
-mcPlayerListener.UnarmedSkill=[[YELLOW]]Faustkampf Skill (Unarmed): 
-mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Holzfaeller Skill (Woodcutting): 
-mcPlayerListener.YourStats=[[GREEN]]Deine MMO Werte
-Party.InformedOnJoin={0} [[GREEN]] ist deiner Gruppe beigetreten
-Party.InformedOnQuit={0} [[GREEN]] hat deine Gruppe verlassen
-Skills.YourGreenTerra=[[GREEN]]Deine [[YELLOW]]Gruene Welt [[GREEN]]Faehigkeit ist bereit!
-Skills.YourTreeFeller=[[GREEN]]Deine [[YELLOW]]Baumfaeller [[GREEN]]Faehigkeit ist bereit!
-Skills.YourSuperBreaker=[[GREEN]]Deine [[YELLOW]]Brecher [[GREEN]]Faehigkeit ist bereit!
-Skills.YourSerratedStrikes=[[GREEN]]Deine [[YELLOW]]gezackter Schlag [[GREEN]]Faehigkeit ist bereit!
-Skills.YourBerserk=[[GREEN]]Deine [[YELLOW]]Berserker [[GREEN]]Faehigkeit ist bereit!
-Skills.YourSkullSplitter=[[GREEN]]Deine [[YELLOW]]Schaedelspalter[[GREEN]]Faehigkeit ist bereit!
-Skills.YourGigaDrillBreaker=[[GREEN]]Deine [[YELLOW]]Buddler[[GREEN]]Faehigkeit ist bereit!
-Skills.TooTired=[[RED]]Du bist zu muede um diese Faehigkeit erneut zu nutzen.
-Skills.ReadyHoe=[[GREEN]]**DU BEREITEST DEINE HARKE VOR**
-Skills.LowerHoe=[[GRAY]]**DU SENKST DEINE HARKE**
-Skills.ReadyAxe=[[GREEN]]**DU BEREITEST DEINE AXT VOR**
-Skills.LowerAxe=[[GRAY]]**DU SENKST DEINE AXT**
-Skills.ReadyFists=[[GREEN]]**DU BEREITEST DEINE FAEUSTE VOR**
-Skills.LowerFists=[[GRAY]]**DU SENKST DEINE FAUSTE**
-Skills.ReadyPickAxe=[[GREEN]]**DU BEREITEST DEINE SPITZHACKE VOR**
-Skills.LowerPickAxe=[[GRAY]]**DU SENKST DEINE SPITZHACKE**
-Skills.ReadyShovel=[[GREEN]]**DU BEREITEST DEINE SCHAUFEL VOR**
-Skills.LowerShovel=[[GRAY]]**DU SENKST DEINE SCHAUFEL**
-Skills.ReadySword=[[GREEN]]**DU ERHEBST DEIN SCHWERT**
-Skills.LowerSword=[[GRAY]]**DU SENKST DEIN SCHWERT**
-Skills.GreenTerraOn=[[GREEN]]**GRUENE WELT AKTIV**
-Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Gruene Welt[[DARK_GREEN]] benutzt!
-Skills.TreeFellerOn=[[GREEN]]**BAUMFAELLER AKTIV**
-Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Baumfaeller[[DARK_GREEN]] benutzt!
-Skills.SuperBreakerOn=[[GREEN]]**BRECHER AKTIV**
-Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Super Brecher[[DARK_GREEN]] benutzt!
-Skills.SerratedStrikesOn=[[GREEN]]**GEZACKTER SCHLAG AKTIV**
-Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]gezackter Schlag[[DARK_GREEN]] benutzt!
-Skills.SkullSplitterOn=[[GREEN]]**SCHAEDELSPALTER AKTIV**
-Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Schaedelspalter[[DARK_GREEN]] benutzt!
-Skills.GigaDrillBreakerOn=[[GREEN]]**BUDDLER AKTIV**
-Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Buddler[[DARK_GREEN]] benutzt!
-Skills.GreenTerraOff=[[RED]]**Gruene Welt ausgelaufen**
-Skills.TreeFellerOff=[[RED]]**Baumfaeller ausgelaufen**
-Skills.SuperBreakerOff=[[RED]]**Brecher ausgelaufen**
-Skills.SerratedStrikesOff=[[RED]]**gezackter Schlag ausgelaufen**
-Skills.BerserkOff=[[RED]]**Berserker ausgelaufen**
-Skills.SkullSplitterOff=[[RED]]**Schaedelspalter ausgelaufen**
-Skills.GigaDrillBreakerOff=[[RED]]**Buddler ausgelaufen**
-Skills.TamingUp=[[YELLOW]]Bestienkunde um {0} erhoeht. Gesamt ({1})
-Skills.AcrobaticsUp=[[YELLOW]]Akrobatik um {0} erhoeht. Gesamt ({1})
-Skills.ArcheryUp=[[YELLOW]]Bogenschiessen um {0} erhoeht. Gesamt ({1})
-Skills.SwordsUp=[[YELLOW]]Schwert um {0} erhoeht. Gesamt ({1})
-Skills.AxesUp=[[YELLOW]]Axt um {0} erhoeht. Gesamt ({1})
-Skills.UnarmedUp=[[YELLOW]]Faustkampf um {0} erhoeht. Gesamt ({1})
-Skills.HerbalismUp=[[YELLOW]]Krauterkunde um {0} erhoeht. Gesamt ({1})
-Skills.MiningUp=[[YELLOW]]Bergbau um {0} erhoeht. Gesamt ({1})
-Skills.WoodcuttingUp=[[YELLOW]]Holzfaeller um {0} erhoeht. Gesamt ({1})
-Skills.RepairUp=[[YELLOW]]Reparieren um {0} erhoeht. Gesamt ({1})
-Skills.ExcavationUp=[[YELLOW]]Graben um {0} erhoeht. Gesamt ({1})
-Skills.FeltEasy=[[GRAY]]Das fuehlt sich einfach an.
-Skills.StackedItems=[[DARK_RED]]Du kannst keine gestapelten Items reparieren
-Skills.NeedMore=[[DARK_RED]]Du brauchst mehr
-Skills.AdeptDiamond=[[DARK_RED]]nicht talentiert genug um Diamantwerkzeuge zu reparieren
-Skills.FullDurability=[[GRAY]]Dieses Item hat volle Haltbarkeit
-Skills.Disarmed=[[DARK_RED]]Du wurdest entwaffnet!
-mcPlayerListener.SorcerySkill=Zauberkunst Skill (Sorcery): 
-m.SkillSorcery=Zauberkunst (Sorcery)
-Sorcery.HasCast=[[GREEN]]**ZAUBERN**[[GOLD]]
-Sorcery.Current_Mana=[[DARK_AQUA]]MP
-Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
-Sorcery.Cost=[[RED]][COST] {0} MP
-Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Kein Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
-Sorcery.Water.Thunder=GEWITTER
-Sorcery.Curative.Self=HEILEN (SELBST)
-Sorcery.Curative.Other=HEILEN (ANDERE)
-m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
-Combat.BeastLore=[[GREEN]]**BESTIENKUNDE**
-Combat.BeastLoreOwner=[[DARK_AQUA]]Besitzer ([[RED]]{0}[[DARK_AQUA]])
-Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Gesundheit ([[GREEN]]{0}[[DARK_AQUA]]/20)
-Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Gesundheit ([[GREEN]]{0}[[DARK_AQUA]]/8)
-mcMMO.Description=[[DARK_AQUA]]Q: Was ist das?,[[GOLD]]mcMMO ist eine [[RED]]OPEN SOURCE[[GOLD]] RPG Modifikation fuer Bukkit von [[BLUE]]nossr50,[[GOLD]]Durch mcMMO werden viele Skills bei Minecraft hinzugefuegt,[[GOLD]]Tippe [[GREEN]]/SKILLNAME[[GOLD]] um mehr ueber die Skills herauszufinden.,[[DARK_AQUA]]Q: Was tut es?,[[GOLD]]Ein Beispiel... in [[DARK_AQUA]]Mining[[GOLD]] wirst du Belohnungen bekommen wie,[[RED]]Doppelte Drops[[GOLD]] oder die Faehigkeit [[RED]]Brecher[[GOLD]] welche wenn,[[GOLD]]per rechtsklick aktiviert schnellers abbauen ermoeglicht. Leveln von [[BLUE]]Mining,[[GOLD]]erfolgt einfach durch abbauen von verschiedenen Materialien,[[DARK_AQUA]]Q: Was ist damit gemeint?,[[GOLD]]Alle Skills ind[[GREEN]]mcMMO[[GOLD]] fuegen coole neue Dinge hinzu!.,[[GOLD]]Du kannst auch[[GREEN]]/{0}[[GOLD]] tippen um die BEfehle zu sehen,[[GOLD]]Das Ziel von mcMMO ist es ein RPG Erlebnis einzufuehren,[[DARK_AQUA]]Q: Wo finde ich Neuigkeiten!?,[[GOLD]]Im mcMMO thread in dem bukkit forum!,[[DARK_AQUA]]Q: Wie tu ich dies und das?,[[RED]]Bitte [[GOLD]]schau in die Wiki!
-[[DARK_AQUA]]mcmmo.wikia.com
-Party.IsLocked=[[RED]]Gruppe ist gesperrt.
-Party.Locked=[[RED]]Gruppe ist gesperrt, nur Leiter kann einladen.
-Party.IsntLocked=[[GRAY]]Gruppe ist nicht gesperrt
-Party.Unlocked=[[GRAY]]Gruppe entsperrt
-Party.Help1=[[RED]]Korrekte Benutzung ist [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] oder [[WHITE]]'q' [[YELLOW]]zum beenden
-Party.Help2=[[RED]]Um einer gesicherten Gruppe beizutreten nutze [[YELLOW]]/{0} [[WHITE]]<name> <password>
-Party.Help3=[[RED]]Siehe /{0} ? für mehr Informationen
-Party.Help4=[[RED]]Nutze [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]um einer Gruppe beizutreten oder [[WHITE]]'q' [[YELLOW]]zum beenden
-Party.Help5=[[RED]]Um deine Gruppe zu sperren nutze [[YELLOW]]/{0} [[WHITE]]lock
-Party.Help6=[[RED]]Um deine Gruppe zu entsperren nutze [[YELLOW]]/{0} [[WHITE]]unlock
-Party.Help7=[[RED]]Um deine Gruppe mit einem Passwort zu sichern nutze [[YELLOW]]/{0} [[WHITE]]password <password>
-Party.Help8=[[RED]]Um einen SPieler von deiner Gruppe auszuschliessen nutze [[YELLOW]]/{0} [[WHITE]]kick <player>
-Party.Help9=[[RED]]Um Gruppenleiter weiter zu reichen nutze [[YELLOW]]/{0} [[WHITE]]owner <player>
-Party.NotOwner=[[DARK_RED]]Du bist nicht der Gruppenleiter
-Party.InvalidName=[[DARK_RED]]Das ist kein erlaubter Gruppenname
-Party.PasswordSet=[[GREEN]]Gruppenpasswort {0} gesetzt
-Party.CouldNotKick=[[DARK_RED]]Kann Spieler nicht ausschliessen{0}
-Party.NotInYourParty=[[DARK_RED]]{0} ist nicht in deiner Gruppe
-Party.CouldNotSetOwner=[[DARK_RED]]Kann kein Leiter werden {0}
-Party.NewOwner={0} ist der neue Gruppenleiter.
-Party.PasswordWrong=[[DARK_RED]]Gruppenpasswort falsch.
-Party.NowOwner=[[RED]]Du bist nun der Gruppenleiter.
-Party.NowNotOwner=[[RED]]Du bist nicht laenger der Gruppenleiter.
-Party.RequiresPass=[[RED]]Diese Gruppe benoetigt ein Passwort. Nutze [[YELLOW]]/{0}[[WHITE]] <party> <password>[[RED]] zum beitreten.
-Party.PtpDelay=[[RED]]Du kannst dies nicht so zeitig erneut benutzen [[WHITE]]([[YELLOW]]{0}s[[WHITE]])
-Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
-Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
-Commands.xprate.proper3=[[RED]]Enter true or false for the second value
-Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
-Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
-Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
-Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
-Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
+Combat.WolfExamine=[[GREEN]]**du musterst den Wolf mit Bestienkunde**
+Combat.WolfShowMaster=[[DARK_GREEN]]Besitzer \: {0}
+Combat.Ignition=[[RED]]**ENTZUENDET**
+Combat.BurningArrowHit=[[DARK_RED]]von brennendem Pfeil getroffen\!
+Combat.TouchedFuzzy=[[DARK_RED]]Benommen. fuehlt sich schwindelig.
+Combat.TargetDazed=Ziel ist [[DARK_RED]]benommen
+Combat.WolfNoMaster=[[GRAY]]Dieser Wolf hat keinen Besitzer...
+Combat.WolfHealth=[[GREEN]]Der Wolf hat {0} Lebensenergie 
+Combat.StruckByGore=[[RED]]**von Biss getroffen**
+Combat.Gore=[[GREEN]]**BISS**
+Combat.ArrowDeflect=[[WHITE]]**PFEIL ABGEWEHRT**
+Item.ChimaeraWingFail=**CHIMAEREN FLUEGEL fehlgeschlagen\!**
+Item.ChimaeraWingPass=**CHIMAEREN FLUEGEL**
+Item.InjuredWait=du musst mit der Benutzung warten [[YELLOW]]({0}s)
+Item.NeedFeathers=[[GRAY]]mehr Federn nötig...
+m.mccPartyCommands=[[GREEN]]--GRUPPEN BEFEHLE--
+m.mccParty=[party name] [[RED]]- Erstellt/tritt einer Gruppe bei
+m.mccPartyQ=[[RED]]- aktuelle Gruppe verlassen
+m.mccPartyToggle=[[RED]] - aktiviert Gruppenchat
+m.mccPartyInvite=[player name] [[RED]]- Gruppeneinladung senden
+m.mccPartyAccept=[[RED]]- Gruppeneinladung akzeptieren
+m.mccPartyTeleport=[party member name] [[RED]]- Teleport zu Gruppenmitglied
+m.mccOtherCommands=[[GREEN]]--ANDERE BEFEHLE--
+m.mccStats=- zeigt deinen Status
+m.mccLeaderboards=- Ranglisten
+m.mccMySpawn=- Teleport zum Spawnpunkt
+m.mccClearMySpawn=- Spawnpunkt loeschen
+m.mccToggleAbility=- Faehigkeitsaktivierung an/aus schalten
+m.mccAdminToggle=- Adminchat aktivieren
+m.mccWhois=[playername] [[RED]]- Detailierte Spielerinfos zeigen
+m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Ziel modifizieren
+m.mccMcGod=- Gott Modus
+m.mccSkillInfo=[skillname] [[RED]]- Detailierte Skillinfos zeigen
+m.mccModDescription=[[RED]]- MOD-Beschreibung
+m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
+m.XPGain=[[DARK_GRAY]]XP Erhalten: [[WHITE]]{0}
+m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
+m.AbilityLockTemplate=[[GRAY]]{0}
+m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
+m.Effects=EFFEKTE
+m.YourStats=DEINE WERTE
+m.SkillTaming=Bestienkunde (Taming)
+m.XPGainTaming=wenn Woelfe Schaden bekommen/verursachen
+m.EffectsTaming1_0=Bestienkunde
+m.EffectsTaming1_1=Wolf mit Knochen schlagen fuer Informationen
+m.EffectsTaming2_0=Biss
+m.EffectsTaming2_1=Kritischer Schlag mit Blutungseffekt
+m.EffectsTaming3_0=Geschaerfte Krallen
+m.EffectsTaming3_1=Schadens-Bonus
+m.EffectsTaming4_0=Umweltbewusstsein
+m.EffectsTaming4_1=Kaktus/Lava Phobie, Fall Schaden Immun
+m.EffectsTaming5_0=Dichtes Fell
+m.EffectsTaming5_1=Schadens-Reduzierung, Feuer-Resistenz
+m.EffectsTaming6_0=schockfest
+m.EffectsTaming6_1=Explosions-Schaden-Reduzierung
+m.AbilLockTaming1=gesperrt bis 100+ Skilllevel (Umweltbewusstsein)
+m.AbilLockTaming2=gesperrt bis 250+ Skillevel (Dichtes Fell)
+m.AbilLockTaming3=gesperrt bis 500+ Skillevel (Schockfest)
+m.AbilLockTaming4=gesperrt bis 750+ Skillevel (Geschaerfte Krallen)
+m.AbilBonusTaming1_0=Umweltbewusstsein
+m.AbilBonusTaming1_1=Woelfe meiden Gefahr
+m.AbilBonusTaming2_0=Dichtes Fell
+m.AbilBonusTaming2_1=Halber Schaden, Feuer-Resistenz
+m.AbilBonusTaming3_0=Schockfest
+m.AbilBonusTaming3_1=Explosionen verursachen nur 1/6 Schaden
+m.AbilBonusTaming4_0=Geschaerfte Krallen
+m.AbilBonusTaming4_1=+2 Schaden
+m.TamingGoreChance=[[RED]]Biss Chance: [[YELLOW]]{0}%
+m.SkillWoodCutting=Holzfaellen (WoodCutting)
+m.XPGainWoodCutting=Baeume faellen
+m.EffectsWoodCutting1_0=Baumfaeller (Faehigkeit)
+m.EffectsWoodCutting1_1=Bringt Baeume zum explodieren
+m.EffectsWoodCutting2_0=Blaetter-Sturm
+m.EffectsWoodCutting2_1=blaest Blaetter weg
+m.EffectsWoodCutting3_0=Doppelte Drops
+m.EffectsWoodCutting3_1=doppelte Anzahl Items
+m.AbilLockWoodCutting1=gesperrt bis 100+ Skilllevel (Blaetter-Sturm)
+m.AbilBonusWoodCutting1_0=Blaetter-Sturm
+m.AbilBonusWoodCutting1_1=blaest Blaetter weg
+m.WoodCuttingDoubleDropChance=[[RED]]Doppelte Drop Chance: [[YELLOW]]{0}%
+m.WoodCuttingTreeFellerLength=[[RED]]Baumfaeller Dauer: [[YELLOW]]{0}s
+m.SkillArchery=Bogenschiessen (Archery)
+m.XPGainArchery=Monster/Spieler angreifen
+m.EffectsArchery1_0=Entzuenden
+m.EffectsArchery1_1=25% Chance das Feind Feuer faengt
+m.EffectsArchery2_0=Blenden (Spieler)
+m.EffectsArchery2_1=Disorientiert Feinde
+m.EffectsArchery3_0=Schaden+
+m.EffectsArchery3_1=Modifiziert Schaden
+m.EffectsArchery4_0=Pfeile wiederverwenden
+m.EffectsArchery4_1=Chance Pfeile von Leichen zurueckzugewinnen
+m.ArcheryDazeChance=[[RED]]Chance zu blenden: [[YELLOW]]{0}%
+m.ArcheryRetrieveChance=[[RED]]Chance Pfeile zurueckzugewinnen: [[YELLOW]]{0}%
+m.ArcheryIgnitionLength=[[RED]]Dauer von Entzuenden: [[YELLOW]]{0} seconds
+m.ArcheryDamagePlus=[[RED]]Schaden+ (Rank{0}): [[YELLOW]]Bonus {0} damage
+m.SkillAxes=Axt (Axes)
+m.XPGainAxes=Monster/Spieler angreifen
+m.EffectsAxes1_0=Schaedelspalter (Faehigkeit)
+m.EffectsAxes1_1=Verursacht Flaechenschaden
+m.EffectsAxes2_0=Kritischer Schlag
+m.EffectsAxes2_1=doppelter Schaden
+m.EffectsAxes3_0=Axtmeister (500 Skilllevel)
+m.EffectsAxes3_1=Modifiziert Schaden
+m.AbilLockAxes1=gesperrt bis 500+ Skilllevel(Axtmeister)
+m.AbilBonusAxes1_0=Axtmeister
+m.AbilBonusAxes1_1=+4 Schaden
+m.AxesCritChance=[[RED]]Chance fuer kritische Treffer: [[YELLOW]]{0}%
+m.AxesSkullLength=[[RED]]Schaedelspalter Dauer: [[YELLOW]]{0}s
+m.SkillSwords=Schwert (Swords)
+m.XPGainSwords=Monster/Spieler angreifen
+m.EffectsSwords1_0=Konter
+m.EffectsSwords1_1=Reflektiert 50% des erhaltenen Schadens
+m.EffectsSwords2_0=gezackter Schlag (Faehigkeit)
+m.EffectsSwords2_1=25% Flaechenschaden, Blutung+ Flaecheneffekt
+m.EffectsSwords3_0=gezackter Schlag Blutung+
+m.EffectsSwords3_1=Blutung über 5 Ticks
+m.EffectsSwords4_0=parrieren
+m.EffectsSwords4_1=negiert Schaden
+m.EffectsSwords5_0=Blutung
+m.EffectsSwords5_1=hinterlaesst Blutungs-DOT
+m.SwordsCounterAttChance=[[RED]]Konter Chance: [[YELLOW]]{0}%
+m.SwordsBleedLength=[[RED]]Blutung Dauer: [[YELLOW]]{0} ticks
+m.SwordsBleedChance=[[RED]]Blutung Chance: [[YELLOW]]{0} %
+m.SwordsParryChance=[[RED]]Parieren Chance: [[YELLOW]]{0} %
+m.SwordsSSLength=[[RED]]gezackter Schlag Dauer: [[YELLOW]]{0}s
+m.SwordsTickNote=[[GRAY]]NOTIZ: [[YELLOW]]1 Tick erfolgt aller 2 Sekunden
+m.SkillAcrobatics=Akrobatik (Acrobatics)
+m.XPGainAcrobatics=stuerzen
+m.EffectsAcrobatics1_0=Rolle
+m.EffectsAcrobatics1_1=Reduziert oder negiert Schaden
+m.EffectsAcrobatics2_0=elegante Rolle
+m.EffectsAcrobatics2_1=Doppelt so effektiv wie Rolle
+m.EffectsAcrobatics3_0=Ausweichen
+m.EffectsAcrobatics3_1=halbiert Schaden
+m.AcrobaticsRollChance=[[RED]]Rolle Chance: [[YELLOW]]{0}%
+m.AcrobaticsGracefulRollChance=[[RED]]elegante Rolle Chance: [[YELLOW]]{0}%
+m.AcrobaticsDodgeChance=[[RED]]Ausweichen Chance: [[YELLOW]]{0}%
+m.SkillMining=Bergbau (Mining)
+m.XPGainMining=Abbauen von Stein und Erz
+m.EffectsMining1_0=Brecher (Faehigkeit)
+m.EffectsMining1_1=Tempo+, dreifache Drop Chance
+m.EffectsMining2_0=doppelte Drops
+m.EffectsMining2_1=doppelte Anzahl Items
+m.MiningDoubleDropChance=[[RED]]doppelte Drops Chance: [[YELLOW]]{0}%
+m.MiningSuperBreakerLength=[[RED]]Brecher Dauer: [[YELLOW]]{0}s
+m.SkillRepair=Reparieren (Repair)
+m.XPGainRepair=reparieren
+m.EffectsRepair1_0=reparieren
+m.EffectsRepair1_1=reparieren von Werkzeugen und Ruestung
+m.EffectsRepair2_0=reparieren - Meister
+m.EffectsRepair2_1=erhoeht Reparaturwert
+m.EffectsRepair3_0=Super Reparatur
+m.EffectsRepair3_1=doppelte Effektivitaet
+m.EffectsRepair4_0=Diamanten Reparatur ({0}+ SKILL)
+m.EffectsRepair4_1=Reparieren von Diamantwerkzeugen und Ruestung
+m.RepairRepairMastery=[[RED]]reparieren - Meister: [[YELLOW]]Extra {0}% Haltbarkeit
+m.RepairSuperRepairChance=[[RED]]Super Reparatur Chance: [[YELLOW]]{0}%
+m.SkillUnarmed=Faustkampf (Unarmed)
+m.XPGainUnarmed=Monster/Spieler angreifen
+m.EffectsUnarmed1_0=Berserker (Faehigkeit)
+m.EffectsUnarmed1_1=+50% Schaden, bricht weiches Material (Bsp. Erde)
+m.EffectsUnarmed2_0=Entwaffnen (Spieler)
+m.EffectsUnarmed2_1=Entreisst dem Feind das ausgeruestete Item
+m.EffectsUnarmed3_0=Faustkampfmeister
+m.EffectsUnarmed3_1=grosse Schadenssteigerung
+m.EffectsUnarmed4_0=Faustkampflehrling
+m.EffectsUnarmed4_1=Schadens-Bonus
+m.EffectsUnarmed5_0=Pfeil abwehren
+m.EffectsUnarmed5_1=wehrt Pfeile ab
+m.AbilLockUnarmed1=gesperrt bis 250+ Skilllevel (Faustkampflehrling)
+m.AbilLockUnarmed2=gesperrt bis 500+ Skilllevel (Faustkampfmeister)
+m.AbilBonusUnarmed1_0=Faustkampflehrling
+m.AbilBonusUnarmed1_1=+2 Schadens-Bonus
+m.AbilBonusUnarmed2_0=Faustkampfmeister
+m.AbilBonusUnarmed2_1=+4 Schadens-Bonus
+m.UnarmedArrowDeflectChance=[[RED]]Pfeil abwehren Chance: [[YELLOW]]{0}%
+m.UnarmedDisarmChance=[[RED]]Entwaffnen Chance: [[YELLOW]]{0}%
+m.UnarmedBerserkLength=[[RED]]Berserker Dauer: [[YELLOW]]{0}s
+m.SkillHerbalism=Kraeutersammler (Herbalism)
+m.XPGainHerbalism=Kraeuter sammeln
+m.EffectsHerbalism1_0=Gruene Welt (Faehigkeit)
+m.EffectsHerbalism1_1=Pflegt die Natur, dreifache Drops
+m.EffectsHerbalism2_0=Gruener Daumen (Weizen)
+m.EffectsHerbalism2_1=automatisches neupflanzen nach ernten von Weizen
+m.EffectsHerbalism3_0=Gruener Daumen (Pflasterstein)
+m.EffectsHerbalism3_1=verwandelt Pflasterstein mithilfe von Samen zu moosigen Pflasterstein 
+m.EffectsHerbalism4_0=Nahrung+
+m.EffectsHerbalism4_1=Steigert Heilung von Brot/Suppe
+m.EffectsHerbalism5_0=Doppelte Drops (Alle Kraeuter)
+m.EffectsHerbalism5_1=doppelte Anzahl Items
+m.HerbalismGreenTerraLength=[[RED]]Gruene Welt Dauer: [[YELLOW]]{0}s
+m.HerbalismGreenThumbChance=[[RED]]Gruener Daumen Chance: [[YELLOW]]{0}%
+m.HerbalismGreenThumbStage=[[RED]]Gruener Daumen Stufe: [[YELLOW]] Getreide waechst auf Stufe {0}
+m.HerbalismDoubleDropChance=[[RED]]Doppelte Drop Chance: [[YELLOW]]{0}%
+m.HerbalismFoodPlus=[[RED]]Nahrung+ (Rank{0}): [[YELLOW]]Bonus-Heilung {0} 
+m.SkillExcavation=Graben (Excavation)
+m.XPGainExcavation=Graben und finden von Schaetzen
+m.EffectsExcavation1_0=Buddler (Faehigkeit)
+m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Abbautempo
+m.EffectsExcavation2_0=Schatzjaeger
+m.EffectsExcavation2_1=Faehigkeit nach Schaetzen zu graben
+m.ExcavationGreenTerraLength=[[RED]]Buddler Dauer: [[YELLOW]]{0}s
+mcBlockListener.PlacedAnvil=[[DARK_RED]]Amboss platziert, hier kannst du Werkzeuge und Ruestungen reparieren.
+mcEntityListener.WolfComesBack=[[DARK_GRAY]]Dein Wolf hastet zurueck zu dir...
+mcPlayerListener.AbilitiesOff=Faehigkeiten nutzen (rechtsklick) aus
+mcPlayerListener.AbilitiesOn=Faehigkeiten nutzen (rechtsklick) an
+mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**Faehigkeiten aufgefrischt\!**
+mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Akrobatik Skill (Acrobatics): 
+mcPlayerListener.ArcherySkill=[[YELLOW]]Bogenschiessen Skill (Archery): 
+mcPlayerListener.AxesSkill=[[YELLOW]]Axt Skill (Axes): 
+mcPlayerListener.ExcavationSkill=[[YELLOW]]Graben Skill (Excavation): 
+mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Gottmodus deaktiviert
+mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Gottmodus aktiviert
+mcPlayerListener.GreenThumb=[[GREEN]]**GRUENER DAUMEN**
+mcPlayerListener.GreenThumbFail=[[RED]]**GRUENER DAUMEN FEHLGESCHLAGEN**
+mcPlayerListener.HerbalismSkill=[[YELLOW]]Kraeuterkunde Skill (Herbalism): 
+mcPlayerListener.MiningSkill=[[YELLOW]]Bergbau Skill (Mining): 
+mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Spawnpunkt ist freigegeben
+mcPlayerListener.MyspawnNotExist=[[RED]]Lege deinen Spawnpunkt erst mit einem Bett fest
+mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Spawnpunkt wurde an deine aktuelle Position gesetzt
+mcPlayerListener.MyspawnTimeNotice=Du musst {0}m {1}s warten um myspawn zu nutzen
+mcPlayerListener.NoPermission=unzureichende Berechtigungen (Permissions).
+mcPlayerListener.NoSkillNote=[[DARK_GRAY]]wenn du keinen Zugriff auf einen Skill hast wird er nicht hier gezeigt 
+mcPlayerListener.NotInParty=[[RED]]Du bist in keiner Gruppe.
+mcPlayerListener.InviteSuccess=[[GREEN]]Einladung erfolgreich versendet.
+mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]Eine Gruppeneinladung für {0} von {1} erhalten
+mcPlayerListener.ReceivedInvite2=[[YELLOW]]Schreibe[[GREEN]]/{0}[[YELLOW]] um die Einladung zu akzeptieren 
+mcPlayerListener.InviteAccepted=[[GREEN]]Einladung akzeptiert. du bist {0} beigetreten
+mcPlayerListener.NoInvites=[[RED]]Du hast derzeit keine Einladungen
+mcPlayerListener.YouAreInParty=[[GREEN]]Du bist in Gruppe {0}
+mcPlayerListener.PartyMembers=[[GREEN]]Gruppen Mitglieder
+mcPlayerListener.LeftParty=[[RED]]Du hast die Gruppe verlassen
+mcPlayerListener.JoinedParty=beigetrettene Gruppe: {0}
+mcPlayerListener.PartyChatOn=nur Gruppenchat [[RED]]an
+mcPlayerListener.PartyChatOff=nur Gruppenchat [[RED]]aus
+mcPlayerListener.AdminChatOn=nur Adminchat [[GREEN]]an
+mcPlayerListener.AdminChatOff=nur Adminchat [[RED]]aus
+mcPlayerListener.MOTD=[[BLUE]]Auf diesem Server laeuft {0} schreibe[[YELLOW]]/{1}[[BLUE]] fuer Hilfe. <frei Uebersetzt von g3oliver>
+mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
+mcPlayerListener.PowerLevel=[[DARK_RED]]Macht: 
+mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Macht [[YELLOW]]Rangliste--
+mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Rangliste--
+mcPlayerListener.RepairSkill=[[YELLOW]]Reparieren Skill (Repair): 
+mcPlayerListener.SwordsSkill=[[YELLOW]]Schwert Skill (Swords): 
+mcPlayerListener.TamingSkill=[[YELLOW]]Bestienkunde Skill (Taming): 
+mcPlayerListener.UnarmedSkill=[[YELLOW]]Faustkampf Skill (Unarmed): 
+mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Holzfaeller Skill (Woodcutting): 
+mcPlayerListener.YourStats=[[GREEN]]Deine MMO Werte
+Party.InformedOnJoin={0} [[GREEN]] ist deiner Gruppe beigetreten
+Party.InformedOnQuit={0} [[GREEN]] hat deine Gruppe verlassen
+Skills.YourGreenTerra=[[GREEN]]Deine [[YELLOW]]Gruene Welt [[GREEN]]Faehigkeit ist bereit!
+Skills.YourTreeFeller=[[GREEN]]Deine [[YELLOW]]Baumfaeller [[GREEN]]Faehigkeit ist bereit!
+Skills.YourSuperBreaker=[[GREEN]]Deine [[YELLOW]]Brecher [[GREEN]]Faehigkeit ist bereit!
+Skills.YourSerratedStrikes=[[GREEN]]Deine [[YELLOW]]gezackter Schlag [[GREEN]]Faehigkeit ist bereit!
+Skills.YourBerserk=[[GREEN]]Deine [[YELLOW]]Berserker [[GREEN]]Faehigkeit ist bereit!
+Skills.YourSkullSplitter=[[GREEN]]Deine [[YELLOW]]Schaedelspalter[[GREEN]]Faehigkeit ist bereit!
+Skills.YourGigaDrillBreaker=[[GREEN]]Deine [[YELLOW]]Buddler[[GREEN]]Faehigkeit ist bereit!
+Skills.TooTired=[[RED]]Du bist zu muede um diese Faehigkeit erneut zu nutzen.
+Skills.ReadyHoe=[[GREEN]]**DU BEREITEST DEINE HARKE VOR**
+Skills.LowerHoe=[[GRAY]]**DU SENKST DEINE HARKE**
+Skills.ReadyAxe=[[GREEN]]**DU BEREITEST DEINE AXT VOR**
+Skills.LowerAxe=[[GRAY]]**DU SENKST DEINE AXT**
+Skills.ReadyFists=[[GREEN]]**DU BEREITEST DEINE FAEUSTE VOR**
+Skills.LowerFists=[[GRAY]]**DU SENKST DEINE FAUSTE**
+Skills.ReadyPickAxe=[[GREEN]]**DU BEREITEST DEINE SPITZHACKE VOR**
+Skills.LowerPickAxe=[[GRAY]]**DU SENKST DEINE SPITZHACKE**
+Skills.ReadyShovel=[[GREEN]]**DU BEREITEST DEINE SCHAUFEL VOR**
+Skills.LowerShovel=[[GRAY]]**DU SENKST DEINE SCHAUFEL**
+Skills.ReadySword=[[GREEN]]**DU ERHEBST DEIN SCHWERT**
+Skills.LowerSword=[[GRAY]]**DU SENKST DEIN SCHWERT**
+Skills.GreenTerraOn=[[GREEN]]**GRUENE WELT AKTIV**
+Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Gruene Welt[[DARK_GREEN]] benutzt!
+Skills.TreeFellerOn=[[GREEN]]**BAUMFAELLER AKTIV**
+Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Baumfaeller[[DARK_GREEN]] benutzt!
+Skills.SuperBreakerOn=[[GREEN]]**BRECHER AKTIV**
+Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Super Brecher[[DARK_GREEN]] benutzt!
+Skills.SerratedStrikesOn=[[GREEN]]**GEZACKTER SCHLAG AKTIV**
+Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]gezackter Schlag[[DARK_GREEN]] benutzt!
+Skills.SkullSplitterOn=[[GREEN]]**SCHAEDELSPALTER AKTIV**
+Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Schaedelspalter[[DARK_GREEN]] benutzt!
+Skills.GigaDrillBreakerOn=[[GREEN]]**BUDDLER AKTIV**
+Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Buddler[[DARK_GREEN]] benutzt!
+Skills.GreenTerraOff=[[RED]]**Gruene Welt ausgelaufen**
+Skills.TreeFellerOff=[[RED]]**Baumfaeller ausgelaufen**
+Skills.SuperBreakerOff=[[RED]]**Brecher ausgelaufen**
+Skills.SerratedStrikesOff=[[RED]]**gezackter Schlag ausgelaufen**
+Skills.BerserkOff=[[RED]]**Berserker ausgelaufen**
+Skills.SkullSplitterOff=[[RED]]**Schaedelspalter ausgelaufen**
+Skills.GigaDrillBreakerOff=[[RED]]**Buddler ausgelaufen**
+Skills.TamingUp=[[YELLOW]]Bestienkunde um {0} erhoeht. Gesamt ({1})
+Skills.AcrobaticsUp=[[YELLOW]]Akrobatik um {0} erhoeht. Gesamt ({1})
+Skills.ArcheryUp=[[YELLOW]]Bogenschiessen um {0} erhoeht. Gesamt ({1})
+Skills.SwordsUp=[[YELLOW]]Schwert um {0} erhoeht. Gesamt ({1})
+Skills.AxesUp=[[YELLOW]]Axt um {0} erhoeht. Gesamt ({1})
+Skills.UnarmedUp=[[YELLOW]]Faustkampf um {0} erhoeht. Gesamt ({1})
+Skills.HerbalismUp=[[YELLOW]]Krauterkunde um {0} erhoeht. Gesamt ({1})
+Skills.MiningUp=[[YELLOW]]Bergbau um {0} erhoeht. Gesamt ({1})
+Skills.WoodcuttingUp=[[YELLOW]]Holzfaeller um {0} erhoeht. Gesamt ({1})
+Skills.RepairUp=[[YELLOW]]Reparieren um {0} erhoeht. Gesamt ({1})
+Skills.ExcavationUp=[[YELLOW]]Graben um {0} erhoeht. Gesamt ({1})
+Skills.FeltEasy=[[GRAY]]Das fuehlt sich einfach an.
+Skills.StackedItems=[[DARK_RED]]Du kannst keine gestapelten Items reparieren
+Skills.NeedMore=[[DARK_RED]]Du brauchst mehr
+Skills.AdeptDiamond=[[DARK_RED]]nicht talentiert genug um Diamantwerkzeuge zu reparieren
+Skills.FullDurability=[[GRAY]]Dieses Item hat volle Haltbarkeit
+Skills.Disarmed=[[DARK_RED]]Du wurdest entwaffnet!
+mcPlayerListener.SorcerySkill=Zauberkunst Skill (Sorcery): 
+m.SkillSorcery=Zauberkunst (Sorcery)
+Sorcery.HasCast=[[GREEN]]**ZAUBERN**[[GOLD]]
+Sorcery.Current_Mana=[[DARK_AQUA]]MP
+Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
+Sorcery.Cost=[[RED]][COST] {0} MP
+Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Kein Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
+Sorcery.Water.Thunder=GEWITTER
+Sorcery.Curative.Self=HEILEN (SELBST)
+Sorcery.Curative.Other=HEILEN (ANDERE)
+m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
+Combat.BeastLore=[[GREEN]]**BESTIENKUNDE**
+Combat.BeastLoreOwner=[[DARK_AQUA]]Besitzer ([[RED]]{0}[[DARK_AQUA]])
+Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Gesundheit ([[GREEN]]{0}[[DARK_AQUA]]/20)
+Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Gesundheit ([[GREEN]]{0}[[DARK_AQUA]]/8)
+mcMMO.Description=[[DARK_AQUA]]Q: Was ist das?,[[GOLD]]mcMMO ist eine [[RED]]OPEN SOURCE[[GOLD]] RPG Modifikation fuer Bukkit von [[BLUE]]nossr50,[[GOLD]]Durch mcMMO werden viele Skills bei Minecraft hinzugefuegt,[[GOLD]]Tippe [[GREEN]]/SKILLNAME[[GOLD]] um mehr ueber die Skills herauszufinden.,[[DARK_AQUA]]Q: Was tut es?,[[GOLD]]Ein Beispiel... in [[DARK_AQUA]]Mining[[GOLD]] wirst du Belohnungen bekommen wie,[[RED]]Doppelte Drops[[GOLD]] oder die Faehigkeit [[RED]]Brecher[[GOLD]] welche wenn,[[GOLD]]per rechtsklick aktiviert schnellers abbauen ermoeglicht. Leveln von [[BLUE]]Mining,[[GOLD]]erfolgt einfach durch abbauen von verschiedenen Materialien,[[DARK_AQUA]]Q: Was ist damit gemeint?,[[GOLD]]Alle Skills ind[[GREEN]]mcMMO[[GOLD]] fuegen coole neue Dinge hinzu!.,[[GOLD]]Du kannst auch[[GREEN]]/{0}[[GOLD]] tippen um die BEfehle zu sehen,[[GOLD]]Das Ziel von mcMMO ist es ein RPG Erlebnis einzufuehren,[[DARK_AQUA]]Q: Wo finde ich Neuigkeiten!?,[[GOLD]]Im mcMMO thread in dem bukkit forum!,[[DARK_AQUA]]Q: Wie tu ich dies und das?,[[RED]]Bitte [[GOLD]]schau in die Wiki!
+[[DARK_AQUA]]mcmmo.wikia.com
+Party.IsLocked=[[RED]]Gruppe ist gesperrt.
+Party.Locked=[[RED]]Gruppe ist gesperrt, nur Leiter kann einladen.
+Party.IsntLocked=[[GRAY]]Gruppe ist nicht gesperrt
+Party.Unlocked=[[GRAY]]Gruppe entsperrt
+Party.Help1=[[RED]]Korrekte Benutzung ist [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] oder [[WHITE]]'q' [[YELLOW]]zum beenden
+Party.Help2=[[RED]]Um einer gesicherten Gruppe beizutreten nutze [[YELLOW]]/{0} [[WHITE]]<name> <password>
+Party.Help3=[[RED]]Siehe /{0} ? für mehr Informationen
+Party.Help4=[[RED]]Nutze [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]um einer Gruppe beizutreten oder [[WHITE]]'q' [[YELLOW]]zum beenden
+Party.Help5=[[RED]]Um deine Gruppe zu sperren nutze [[YELLOW]]/{0} [[WHITE]]lock
+Party.Help6=[[RED]]Um deine Gruppe zu entsperren nutze [[YELLOW]]/{0} [[WHITE]]unlock
+Party.Help7=[[RED]]Um deine Gruppe mit einem Passwort zu sichern nutze [[YELLOW]]/{0} [[WHITE]]password <password>
+Party.Help8=[[RED]]Um einen SPieler von deiner Gruppe auszuschliessen nutze [[YELLOW]]/{0} [[WHITE]]kick <player>
+Party.Help9=[[RED]]Um Gruppenleiter weiter zu reichen nutze [[YELLOW]]/{0} [[WHITE]]owner <player>
+Party.NotOwner=[[DARK_RED]]Du bist nicht der Gruppenleiter
+Party.InvalidName=[[DARK_RED]]Das ist kein erlaubter Gruppenname
+Party.PasswordSet=[[GREEN]]Gruppenpasswort {0} gesetzt
+Party.CouldNotKick=[[DARK_RED]]Kann Spieler nicht ausschliessen{0}
+Party.NotInYourParty=[[DARK_RED]]{0} ist nicht in deiner Gruppe
+Party.CouldNotSetOwner=[[DARK_RED]]Kann kein Leiter werden {0}
+Party.NewOwner={0} ist der neue Gruppenleiter.
+Party.PasswordWrong=[[DARK_RED]]Gruppenpasswort falsch.
+Party.NowOwner=[[RED]]Du bist nun der Gruppenleiter.
+Party.NowNotOwner=[[RED]]Du bist nicht laenger der Gruppenleiter.
+Party.RequiresPass=[[RED]]Diese Gruppe benoetigt ein Passwort. Nutze [[YELLOW]]/{0}[[WHITE]] <party> <password>[[RED]] zum beitreten.
+Party.PtpDelay=[[RED]]Du kannst dies nicht so zeitig erneut benutzen [[WHITE]]([[YELLOW]]{0}s[[WHITE]])
+Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
+Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
+Commands.xprate.proper3=[[RED]]Enter true or false for the second value
+Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
+Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
+Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
+Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
+Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
 Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining

+ 350 - 350
mcMMO/com/gmail/nossr50/locale/locale_en_us.properties → src/com/gmail/nossr50/locale/locale_en_us.properties

@@ -1,351 +1,351 @@
-Combat.WolfExamine=[[GREEN]]**You examine the Wolf using Beast Lore**
-Combat.WolfShowMaster=[[DARK_GREEN]]The Beast's Master \: {0}
-Combat.Ignition=[[RED]]**IGNITION**
-Combat.BurningArrowHit=[[DARK_RED]]You were struck by a burning arrow\!
-Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy.
-Combat.TargetDazed=Target was [[DARK_RED]]Dazed
-Combat.WolfNoMaster=[[GRAY]]This Beast has no Master...
-Combat.WolfHealth=[[GREEN]]This beast has {0} Health 
-Combat.StruckByGore=[[RED]]**STRUCK BY GORE**
-Combat.Gore=[[GREEN]]**GORE**
-Combat.ArrowDeflect=[[WHITE]]**ARROW DEFLECT**
-Item.ChimaeraWingFail=**CHIMAERA WING FAILED\!**
-Item.ChimaeraWingPass=**CHIMAERA WING**
-Item.InjuredWait=You were injured recently and must wait to use this. [[YELLOW]]({0}s)
-Item.NeedFeathers=[[GRAY]]You need more feathers..
-m.mccPartyCommands=[[GREEN]]--PARTY COMMANDS--
-m.mccParty=[party name] [[RED]]- Create/Join designated party
-m.mccPartyQ=[[RED]]- Leave your current party
-m.mccPartyToggle=[[RED]] - Toggle Party Chat
-m.mccPartyInvite=[player name] [[RED]]- Send party invite
-m.mccPartyAccept=[[RED]]- Accept party invite
-m.mccPartyTeleport=[party member name] [[RED]]- Teleport to party member
-m.mccOtherCommands=[[GREEN]]--OTHER COMMANDS--
-m.mccStats=- View your mcMMO stats
-m.mccLeaderboards=- Leaderboards
-m.mccMySpawn=- Teleports to myspawn
-m.mccClearMySpawn=- Clears your MySpawn
-m.mccToggleAbility=- Toggle ability activation with right click
-m.mccAdminToggle=- Toggle admin chat
-m.mccWhois=[playername] [[RED]]- View detailed player info
-m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modify target
-m.mccMcGod=- God Mode
-m.mccSkillInfo=[skillname] [[RED]]- View detailed information about a skill
-m.mccModDescription=[[RED]]- Read brief mod description
-m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
-m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0}
-m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
-m.AbilityLockTemplate=[[GRAY]]{0}
-m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
-m.Effects=EFFECTS
-m.YourStats=YOUR STATS
-m.SkillTaming=TAMING
-m.XPGainTaming=Wolves getting harmed
-m.EffectsTaming1_0=Beast Lore
-m.EffectsTaming1_1=Bone-whacking inspects wolves
-m.EffectsTaming2_0=Gore
-m.EffectsTaming2_1=Critical Strike that applies Bleed
-m.EffectsTaming3_0=Sharpened Claws
-m.EffectsTaming3_1=Damage Bonus
-m.EffectsTaming4_0=Environmentally Aware
-m.EffectsTaming4_1=Cactus/Lava Phobia, Fall DMG Immune
-m.EffectsTaming5_0=Thick Fur
-m.EffectsTaming5_1=DMG Reduction, Fire Resistance
-m.EffectsTaming6_0=Shock Proof
-m.EffectsTaming6_1=Explosive Damage Reduction
-m.AbilLockTaming1=LOCKED UNTIL 100+ SKILL (ENVIRONMENTALLY AWARE)
-m.AbilLockTaming2=LOCKED UNTIL 250+ SKILL (THICK FUR)
-m.AbilLockTaming3=LOCKED UNTIL 500+ SKILL (SHOCK PROOF)
-m.AbilLockTaming4=LOCKED UNTIL 750+ SKILL (SHARPENED CLAWS)
-m.AbilBonusTaming1_0=Environmentally Aware
-m.AbilBonusTaming1_1=Wolves avoid danger
-m.AbilBonusTaming2_0=Thick Fur
-m.AbilBonusTaming2_1=Halved Damage, Fire Resistance
-m.AbilBonusTaming3_0=Shock Proof
-m.AbilBonusTaming3_1=Explosives do 1/6 normal damage
-m.AbilBonusTaming4_0=Sharpened Claws
-m.AbilBonusTaming4_1=+2 Damage
-m.TamingGoreChance=[[RED]]Gore Chance: [[YELLOW]]{0}%
-m.SkillWoodCutting=WOODCUTTING
-m.XPGainWoodCutting=Chopping down trees
-m.EffectsWoodCutting1_0=Tree Feller (ABILITY)
-m.EffectsWoodCutting1_1=Make trees explode
-m.EffectsWoodCutting2_0=Leaf Blower
-m.EffectsWoodCutting2_1=Blow Away Leaves
-m.EffectsWoodCutting3_0=Double Drops
-m.EffectsWoodCutting3_1=Double the normal loot
-m.AbilLockWoodCutting1=LOCKED UNTIL 100+ SKILL (LEAF BLOWER)
-m.AbilBonusWoodCutting1_0=Leaf Blower
-m.AbilBonusWoodCutting1_1=Blow away leaves
-m.WoodCuttingDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}%
-m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller Length: [[YELLOW]]{0}s
-m.SkillArchery=ARCHERY
-m.XPGainArchery=Attacking Monsters
-m.EffectsArchery1_0=Ignition
-m.EffectsArchery1_1=25% Chance Enemies will ignite
-m.EffectsArchery2_0=Daze (Players)
-m.EffectsArchery2_1=Disorients foes
-m.EffectsArchery3_0=Damage+
-m.EffectsArchery3_1=Modifies Damage
-m.EffectsArchery4_0=Arrow Retrieval
-m.EffectsArchery4_1=Chance to retrieve arrows from corpses
-m.ArcheryDazeChance=[[RED]]Chance to Daze: [[YELLOW]]{0}%
-m.ArcheryRetrieveChance=[[RED]]Chance to Retrieve Arrows: [[YELLOW]]{0}%
-m.ArcheryIgnitionLength=[[RED]]Length of Ignition: [[YELLOW]]{0} seconds
-m.ArcheryDamagePlus=[[RED]]Damage+ (Rank{0}): [[YELLOW]]Bonus {0} damage
-m.SkillAxes=AXES
-m.XPGainAxes=Attacking Monsters
-m.EffectsAxes1_0=Skull Splitter (ABILITY)
-m.EffectsAxes1_1=Deal AoE Damage
-m.EffectsAxes2_0=Critical Strikes
-m.EffectsAxes2_1=Double Damage
-m.EffectsAxes3_0=Axe Mastery
-m.EffectsAxes3_1=Modifies Damage
-m.AbilLockAxes1=LOCKED UNTIL 500+ SKILL (AXEMASTERY)
-m.AbilBonusAxes1_0=Axe Mastery
-m.AbilBonusAxes1_1=Bonus 4 damage
-m.AxesCritChance=[[RED]]Chance to critically strike: [[YELLOW]]{0}%
-m.AxesSkullLength=[[RED]]Skull Splitter Length: [[YELLOW]]{0}s
-m.SkillSwords=SWORDS
-m.XPGainSwords=Attacking Monsters
-m.EffectsSwords1_0=Counter Attack
-m.EffectsSwords1_1=Reflect 50% of damage taken
-m.EffectsSwords2_0=Serrated Strikes (ABILITY)
-m.EffectsSwords2_1=25% DMG AoE, Bleed+ AoE
-m.EffectsSwords3_0=Serrated Strikes Bleed+
-m.EffectsSwords3_1=5 Tick Bleed
-m.EffectsSwords4_0=Parrying
-m.EffectsSwords4_1=Negates Damage
-m.EffectsSwords5_0=Bleed
-m.EffectsSwords5_1=Apply a bleed DoT
-m.SwordsCounterAttChance=[[RED]]Counter Attack Chance: [[YELLOW]]{0}%
-m.SwordsBleedLength=[[RED]]Bleed Length: [[YELLOW]]{0} ticks
-m.SwordsBleedChance=[[RED]]Bleed Chance: [[YELLOW]]{0} %
-m.SwordsParryChance=[[RED]]Parry Chance: [[YELLOW]]{0} %
-m.SwordsSSLength=[[RED]]Serrated Strikes Length: [[YELLOW]]{0}s
-m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 Tick happens every 2 seconds
-m.SkillAcrobatics=ACROBATICS
-m.XPGainAcrobatics=Falling
-m.EffectsAcrobatics1_0=Roll
-m.EffectsAcrobatics1_1=Reduces or Negates damage
-m.EffectsAcrobatics2_0=Graceful Roll
-m.EffectsAcrobatics2_1=Twice as effective as Roll
-m.EffectsAcrobatics3_0=Dodge
-m.EffectsAcrobatics3_1=Reduce damage by half
-m.AcrobaticsRollChance=[[RED]]Roll Chance: [[YELLOW]]{0}%
-m.AcrobaticsGracefulRollChance=[[RED]]Graceful Roll Chance: [[YELLOW]]{0}%
-m.AcrobaticsDodgeChance=[[RED]]Dodge Chance: [[YELLOW]]{0}%
-m.SkillMining=MINING
-m.XPGainMining=Mining Stone & Ore
-m.EffectsMining1_0=Super Breaker (ABILITY)
-m.EffectsMining1_1=Speed+, Triple Drop Chance
-m.EffectsMining2_0=Double Drops
-m.EffectsMining2_1=Double the normal loot
-m.MiningDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}%
-m.MiningSuperBreakerLength=[[RED]]Super Breaker Length: [[YELLOW]]{0}s
-m.SkillRepair=REPAIR
-m.XPGainRepair=Repairing
-m.EffectsRepair1_0=Repair
-m.EffectsRepair1_1=Repair Iron Tools & Armor
-m.EffectsRepair2_0=Repair Mastery
-m.EffectsRepair2_1=Increased repair amount
-m.EffectsRepair3_0=Super Repair
-m.EffectsRepair3_1=Double effectiveness
-m.EffectsRepair4_0=Diamond Repair ({0}+ SKILL)
-m.EffectsRepair4_1=Repair Diamond Tools & Armor
-m.RepairRepairMastery=[[RED]]Repair Mastery: [[YELLOW]]Extra {0}% durability restored
-m.RepairSuperRepairChance=[[RED]]Super Repair Chance: [[YELLOW]]{0}%
-m.SkillUnarmed=UNARMED
-m.XPGainUnarmed=Attacking Monsters
-m.EffectsUnarmed1_0=Berserk (ABILITY)
-m.EffectsUnarmed1_1=+50% DMG, Breaks weak materials
-m.EffectsUnarmed2_0=Disarm (Players)
-m.EffectsUnarmed2_1=Drops the foes item held in hand
-m.EffectsUnarmed3_0=Unarmed Mastery
-m.EffectsUnarmed3_1=Large Damage Upgrade
-m.EffectsUnarmed4_0=Unarmed Apprentice
-m.EffectsUnarmed4_1=Damage Upgrade
-m.EffectsUnarmed5_0=Arrow Deflect
-m.EffectsUnarmed5_1=Deflect arrows
-m.AbilLockUnarmed1=LOCKED UNTIL 250+ SKILL (UNARMED APPRENTICE)
-m.AbilLockUnarmed2=LOCKED UNTIL 500+ SKILL (UNARMED MASTERY)
-m.AbilBonusUnarmed1_0=Unarmed Apprentice
-m.AbilBonusUnarmed1_1=+2 DMG Upgrade
-m.AbilBonusUnarmed2_0=Unarmed Mastery
-m.AbilBonusUnarmed2_1=+4 DMG Upgrade
-m.UnarmedArrowDeflectChance=[[RED]]Arrow Deflect Chance: [[YELLOW]]{0}%
-m.UnarmedDisarmChance=[[RED]]Disarm Chance: [[YELLOW]]{0}%
-m.UnarmedBerserkLength=[[RED]]Berserk Length: [[YELLOW]]{0}s
-m.SkillHerbalism=HERBALISM
-m.XPGainHerbalism=Harvesting Herbs
-m.EffectsHerbalism1_0=Green Terra (ABILITY)
-m.EffectsHerbalism1_1=Spread the Terra, 3x Drops
-m.EffectsHerbalism2_0=Green Thumb (Wheat)
-m.EffectsHerbalism2_1=Auto-Plants wheat when harvesting
-m.EffectsHerbalism3_0=Green Thumb (Cobble)
-m.EffectsHerbalism3_1=Cobblestone -> Mossy w/ Seeds
-m.EffectsHerbalism4_0=Food+
-m.EffectsHerbalism4_1=Modifies health received from bread/stew
-m.EffectsHerbalism5_0=Double Drops (All Herbs)
-m.EffectsHerbalism5_1=Double the normal loot
-m.HerbalismGreenTerraLength=[[RED]]Green Terra Length: [[YELLOW]]{0}s
-m.HerbalismGreenThumbChance=[[RED]]Green Thumb Chance: [[YELLOW]]{0}%
-m.HerbalismGreenThumbStage=[[RED]]Green Thumb Stage: [[YELLOW]] Wheat grows in stage {0}
-m.HerbalismDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}%
-m.HerbalismFoodPlus=[[RED]]Food+ (Rank{0}): [[YELLOW]]Bonus {0} healing
-m.SkillExcavation=EXCAVATION
-m.XPGainExcavation=Digging and finding treasures
-m.EffectsExcavation1_0=Giga Drill Breaker (ABILITY)
-m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Speed
-m.EffectsExcavation2_0=Treasure Hunter
-m.EffectsExcavation2_1=Ability to dig for treasure
-m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker Length: [[YELLOW]]{0}s
-mcBlockListener.PlacedAnvil=[[DARK_RED]]You have placed an anvil, anvils can repair tools and armor.
-mcEntityListener.WolfComesBack=[[DARK_GRAY]]Your wolf scurries back to you...
-mcPlayerListener.AbilitiesOff=Ability use toggled off
-mcPlayerListener.AbilitiesOn=Ability use toggled on
-mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES REFRESHED\!**
-mcPlayerListener.AcrobaticsSkill=Acrobatics: 
-mcPlayerListener.ArcherySkill=Archery: 
-mcPlayerListener.AxesSkill=Axes: 
-mcPlayerListener.ExcavationSkill=Excavation: 
-mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode Disabled
-mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode Enabled
-mcPlayerListener.GreenThumb=[[GREEN]]**GREEN THUMB**
-mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FAIL**
-mcPlayerListener.HerbalismSkill=Herbalism: 
-mcPlayerListener.MiningSkill=Mining: 
-mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn is now cleared.
-mcPlayerListener.MyspawnNotExist=[[RED]]Configure your myspawn first with a bed.
-mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn has been set to your current location.
-mcPlayerListener.MyspawnTimeNotice=You must wait {0}m {1}s to use myspawn
-mcPlayerListener.NoPermission=Insufficient mcPermissions.
-mcPlayerListener.NoSkillNote=[[DARK_GRAY]]If you don't have access to a skill it will not be shown here.
-mcPlayerListener.NotInParty=[[RED]]You are not in a party.
-mcPlayerListener.InviteSuccess=[[GREEN]]Invite sent successfully.
-mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]You have received a party invite for {0} from {1}
-mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] to accept the invite 
-mcPlayerListener.InviteAccepted=[[GREEN]]Invite Accepted. You have joined party {0}
-mcPlayerListener.NoInvites=[[RED]]You have no invites at this time
-mcPlayerListener.YouAreInParty=[[GREEN]]You are in party {0}
-mcPlayerListener.PartyMembers=[[GREEN]]Party Members
-mcPlayerListener.LeftParty=[[RED]]You have left that party
-mcPlayerListener.JoinedParty=Joined Party: {0}
-mcPlayerListener.PartyChatOn=Party Chat only [[GREEN]]On
-mcPlayerListener.PartyChatOff=Party Chat only [[RED]]Off
-mcPlayerListener.AdminChatOn=Admin Chat only [[GREEN]]On
-mcPlayerListener.AdminChatOff=Admin Chat only [[RED]]Off
-mcPlayerListener.MOTD=[[BLUE]]This server is running mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] for help.
-mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
-mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: 
-mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
-mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
-mcPlayerListener.RepairSkill=Repair: 
-mcPlayerListener.SwordsSkill=Swords: 
-mcPlayerListener.TamingSkill=Taming: 
-mcPlayerListener.UnarmedSkill=Unarmed: 
-mcPlayerListener.WoodcuttingSkill=Woodcutting: 
-mcPlayerListener.YourStats=[[GREEN]][mcMMO] Stats
-Party.InformedOnJoin={0} [[GREEN]] has joined your party
-Party.InformedOnQuit={0} [[GREEN]] has left your party
-Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed!
-Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed!
-Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed!
-Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed!
-Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed!
-Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed!
-Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed!
-Skills.TooTired=[[RED]]You are too tired to use that ability again.
-Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE**
-Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE**
-Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE**
-Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE**
-Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS**
-Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS**
-Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE**
-Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE**
-Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL**
-Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL**
-Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD**
-Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD**
-Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
-Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
-Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED**
-Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra!
-Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED**
-Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller!
-Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED**
-Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker!
-Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED**
-Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes!
-Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED**
-Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter!
-Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED**
-Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker!
-Skills.GreenTerraOff=[[RED]]**Green Terra has worn off**
-Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off**
-Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off**
-Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off**
-Skills.BerserkOff=[[RED]]**Berserk has worn off**
-Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off**
-Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off**
-Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1})
-Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1})
-Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1})
-Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1})
-Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1})
-Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1})
-Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1})
-Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1})
-Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1})
-Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1})
-Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1})
-Skills.FeltEasy=[[GRAY]]That felt easy.
-Skills.StackedItems=[[DARK_RED]]You can't repair stacked items
-Skills.NeedMore=[[DARK_RED]]You need more
-Skills.AdeptDiamond=[[DARK_RED]]You're not skilled enough to repair Diamond
-Skills.FullDurability=[[GRAY]]That is at full durability.
-Skills.Disarmed=[[DARK_RED]]You have been disarmed!
-mcPlayerListener.SorcerySkill=Sorcery: 
-m.SkillSorcery=SORCERY
-Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]]
-Sorcery.Current_Mana=[[DARK_AQUA]]MP
-Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
-Sorcery.Cost=[[RED]][COST] {0} MP
-Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
-Sorcery.Water.Thunder=THUNDER
-Sorcery.Curative.Self=CURE SELF
-Sorcery.Curative.Other=CURE OTHER
-m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
-Combat.BeastLore=[[GREEN]]**BEAST LORE**
-Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]])
-Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20)
-Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/8)
-mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com
-Party.Locked=[[RED]]Party is locked, only party leader may invite.
-Party.IsntLocked=[[GRAY]]Party is not locked
-Party.Unlocked=[[GRAY]]Party is unlocked
-Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit
-Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password>
-Party.Help3=[[RED]]Consult /{0} ? for more information
-Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit
-Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock
-Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock
-Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password>
-Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player>
-Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player>
-Party.NotOwner=[[DARK_RED]]You are not the party owner
-Party.InvalidName=[[DARK_RED]]That is not a valid party name
-Party.PasswordSet=[[GREEN]]Party password set to {0}
-Party.CouldNotKick=[[DARK_RED]]Could not kick player {0}
-Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
-Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0}
-Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
-Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
-Commands.xprate.proper3=[[RED]]Enter true or false for the second value
-Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
-Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
-Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
-Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
-Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
+Combat.WolfExamine=[[GREEN]]**You examine the Wolf using Beast Lore**
+Combat.WolfShowMaster=[[DARK_GREEN]]The Beast's Master \: {0}
+Combat.Ignition=[[RED]]**IGNITION**
+Combat.BurningArrowHit=[[DARK_RED]]You were struck by a burning arrow\!
+Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy.
+Combat.TargetDazed=Target was [[DARK_RED]]Dazed
+Combat.WolfNoMaster=[[GRAY]]This Beast has no Master...
+Combat.WolfHealth=[[GREEN]]This beast has {0} Health 
+Combat.StruckByGore=[[RED]]**STRUCK BY GORE**
+Combat.Gore=[[GREEN]]**GORE**
+Combat.ArrowDeflect=[[WHITE]]**ARROW DEFLECT**
+Item.ChimaeraWingFail=**CHIMAERA WING FAILED\!**
+Item.ChimaeraWingPass=**CHIMAERA WING**
+Item.InjuredWait=You were injured recently and must wait to use this. [[YELLOW]]({0}s)
+Item.NeedFeathers=[[GRAY]]You need more feathers..
+m.mccPartyCommands=[[GREEN]]--PARTY COMMANDS--
+m.mccParty=[party name] [[RED]]- Create/Join designated party
+m.mccPartyQ=[[RED]]- Leave your current party
+m.mccPartyToggle=[[RED]] - Toggle Party Chat
+m.mccPartyInvite=[player name] [[RED]]- Send party invite
+m.mccPartyAccept=[[RED]]- Accept party invite
+m.mccPartyTeleport=[party member name] [[RED]]- Teleport to party member
+m.mccOtherCommands=[[GREEN]]--OTHER COMMANDS--
+m.mccStats=- View your mcMMO stats
+m.mccLeaderboards=- Leaderboards
+m.mccMySpawn=- Teleports to myspawn
+m.mccClearMySpawn=- Clears your MySpawn
+m.mccToggleAbility=- Toggle ability activation with right click
+m.mccAdminToggle=- Toggle admin chat
+m.mccWhois=[playername] [[RED]]- View detailed player info
+m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modify target
+m.mccMcGod=- God Mode
+m.mccSkillInfo=[skillname] [[RED]]- View detailed information about a skill
+m.mccModDescription=[[RED]]- Read brief mod description
+m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
+m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0}
+m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
+m.AbilityLockTemplate=[[GRAY]]{0}
+m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
+m.Effects=EFFECTS
+m.YourStats=YOUR STATS
+m.SkillTaming=TAMING
+m.XPGainTaming=Wolves getting harmed
+m.EffectsTaming1_0=Beast Lore
+m.EffectsTaming1_1=Bone-whacking inspects wolves
+m.EffectsTaming2_0=Gore
+m.EffectsTaming2_1=Critical Strike that applies Bleed
+m.EffectsTaming3_0=Sharpened Claws
+m.EffectsTaming3_1=Damage Bonus
+m.EffectsTaming4_0=Environmentally Aware
+m.EffectsTaming4_1=Cactus/Lava Phobia, Fall DMG Immune
+m.EffectsTaming5_0=Thick Fur
+m.EffectsTaming5_1=DMG Reduction, Fire Resistance
+m.EffectsTaming6_0=Shock Proof
+m.EffectsTaming6_1=Explosive Damage Reduction
+m.AbilLockTaming1=LOCKED UNTIL 100+ SKILL (ENVIRONMENTALLY AWARE)
+m.AbilLockTaming2=LOCKED UNTIL 250+ SKILL (THICK FUR)
+m.AbilLockTaming3=LOCKED UNTIL 500+ SKILL (SHOCK PROOF)
+m.AbilLockTaming4=LOCKED UNTIL 750+ SKILL (SHARPENED CLAWS)
+m.AbilBonusTaming1_0=Environmentally Aware
+m.AbilBonusTaming1_1=Wolves avoid danger
+m.AbilBonusTaming2_0=Thick Fur
+m.AbilBonusTaming2_1=Halved Damage, Fire Resistance
+m.AbilBonusTaming3_0=Shock Proof
+m.AbilBonusTaming3_1=Explosives do 1/6 normal damage
+m.AbilBonusTaming4_0=Sharpened Claws
+m.AbilBonusTaming4_1=+2 Damage
+m.TamingGoreChance=[[RED]]Gore Chance: [[YELLOW]]{0}%
+m.SkillWoodCutting=WOODCUTTING
+m.XPGainWoodCutting=Chopping down trees
+m.EffectsWoodCutting1_0=Tree Feller (ABILITY)
+m.EffectsWoodCutting1_1=Make trees explode
+m.EffectsWoodCutting2_0=Leaf Blower
+m.EffectsWoodCutting2_1=Blow Away Leaves
+m.EffectsWoodCutting3_0=Double Drops
+m.EffectsWoodCutting3_1=Double the normal loot
+m.AbilLockWoodCutting1=LOCKED UNTIL 100+ SKILL (LEAF BLOWER)
+m.AbilBonusWoodCutting1_0=Leaf Blower
+m.AbilBonusWoodCutting1_1=Blow away leaves
+m.WoodCuttingDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}%
+m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller Length: [[YELLOW]]{0}s
+m.SkillArchery=ARCHERY
+m.XPGainArchery=Attacking Monsters
+m.EffectsArchery1_0=Ignition
+m.EffectsArchery1_1=25% Chance Enemies will ignite
+m.EffectsArchery2_0=Daze (Players)
+m.EffectsArchery2_1=Disorients foes
+m.EffectsArchery3_0=Damage+
+m.EffectsArchery3_1=Modifies Damage
+m.EffectsArchery4_0=Arrow Retrieval
+m.EffectsArchery4_1=Chance to retrieve arrows from corpses
+m.ArcheryDazeChance=[[RED]]Chance to Daze: [[YELLOW]]{0}%
+m.ArcheryRetrieveChance=[[RED]]Chance to Retrieve Arrows: [[YELLOW]]{0}%
+m.ArcheryIgnitionLength=[[RED]]Length of Ignition: [[YELLOW]]{0} seconds
+m.ArcheryDamagePlus=[[RED]]Damage+ (Rank{0}): [[YELLOW]]Bonus {0} damage
+m.SkillAxes=AXES
+m.XPGainAxes=Attacking Monsters
+m.EffectsAxes1_0=Skull Splitter (ABILITY)
+m.EffectsAxes1_1=Deal AoE Damage
+m.EffectsAxes2_0=Critical Strikes
+m.EffectsAxes2_1=Double Damage
+m.EffectsAxes3_0=Axe Mastery
+m.EffectsAxes3_1=Modifies Damage
+m.AbilLockAxes1=LOCKED UNTIL 500+ SKILL (AXEMASTERY)
+m.AbilBonusAxes1_0=Axe Mastery
+m.AbilBonusAxes1_1=Bonus 4 damage
+m.AxesCritChance=[[RED]]Chance to critically strike: [[YELLOW]]{0}%
+m.AxesSkullLength=[[RED]]Skull Splitter Length: [[YELLOW]]{0}s
+m.SkillSwords=SWORDS
+m.XPGainSwords=Attacking Monsters
+m.EffectsSwords1_0=Counter Attack
+m.EffectsSwords1_1=Reflect 50% of damage taken
+m.EffectsSwords2_0=Serrated Strikes (ABILITY)
+m.EffectsSwords2_1=25% DMG AoE, Bleed+ AoE
+m.EffectsSwords3_0=Serrated Strikes Bleed+
+m.EffectsSwords3_1=5 Tick Bleed
+m.EffectsSwords4_0=Parrying
+m.EffectsSwords4_1=Negates Damage
+m.EffectsSwords5_0=Bleed
+m.EffectsSwords5_1=Apply a bleed DoT
+m.SwordsCounterAttChance=[[RED]]Counter Attack Chance: [[YELLOW]]{0}%
+m.SwordsBleedLength=[[RED]]Bleed Length: [[YELLOW]]{0} ticks
+m.SwordsBleedChance=[[RED]]Bleed Chance: [[YELLOW]]{0} %
+m.SwordsParryChance=[[RED]]Parry Chance: [[YELLOW]]{0} %
+m.SwordsSSLength=[[RED]]Serrated Strikes Length: [[YELLOW]]{0}s
+m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 Tick happens every 2 seconds
+m.SkillAcrobatics=ACROBATICS
+m.XPGainAcrobatics=Falling
+m.EffectsAcrobatics1_0=Roll
+m.EffectsAcrobatics1_1=Reduces or Negates damage
+m.EffectsAcrobatics2_0=Graceful Roll
+m.EffectsAcrobatics2_1=Twice as effective as Roll
+m.EffectsAcrobatics3_0=Dodge
+m.EffectsAcrobatics3_1=Reduce damage by half
+m.AcrobaticsRollChance=[[RED]]Roll Chance: [[YELLOW]]{0}%
+m.AcrobaticsGracefulRollChance=[[RED]]Graceful Roll Chance: [[YELLOW]]{0}%
+m.AcrobaticsDodgeChance=[[RED]]Dodge Chance: [[YELLOW]]{0}%
+m.SkillMining=MINING
+m.XPGainMining=Mining Stone & Ore
+m.EffectsMining1_0=Super Breaker (ABILITY)
+m.EffectsMining1_1=Speed+, Triple Drop Chance
+m.EffectsMining2_0=Double Drops
+m.EffectsMining2_1=Double the normal loot
+m.MiningDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}%
+m.MiningSuperBreakerLength=[[RED]]Super Breaker Length: [[YELLOW]]{0}s
+m.SkillRepair=REPAIR
+m.XPGainRepair=Repairing
+m.EffectsRepair1_0=Repair
+m.EffectsRepair1_1=Repair Iron Tools & Armor
+m.EffectsRepair2_0=Repair Mastery
+m.EffectsRepair2_1=Increased repair amount
+m.EffectsRepair3_0=Super Repair
+m.EffectsRepair3_1=Double effectiveness
+m.EffectsRepair4_0=Diamond Repair ({0}+ SKILL)
+m.EffectsRepair4_1=Repair Diamond Tools & Armor
+m.RepairRepairMastery=[[RED]]Repair Mastery: [[YELLOW]]Extra {0}% durability restored
+m.RepairSuperRepairChance=[[RED]]Super Repair Chance: [[YELLOW]]{0}%
+m.SkillUnarmed=UNARMED
+m.XPGainUnarmed=Attacking Monsters
+m.EffectsUnarmed1_0=Berserk (ABILITY)
+m.EffectsUnarmed1_1=+50% DMG, Breaks weak materials
+m.EffectsUnarmed2_0=Disarm (Players)
+m.EffectsUnarmed2_1=Drops the foes item held in hand
+m.EffectsUnarmed3_0=Unarmed Mastery
+m.EffectsUnarmed3_1=Large Damage Upgrade
+m.EffectsUnarmed4_0=Unarmed Apprentice
+m.EffectsUnarmed4_1=Damage Upgrade
+m.EffectsUnarmed5_0=Arrow Deflect
+m.EffectsUnarmed5_1=Deflect arrows
+m.AbilLockUnarmed1=LOCKED UNTIL 250+ SKILL (UNARMED APPRENTICE)
+m.AbilLockUnarmed2=LOCKED UNTIL 500+ SKILL (UNARMED MASTERY)
+m.AbilBonusUnarmed1_0=Unarmed Apprentice
+m.AbilBonusUnarmed1_1=+2 DMG Upgrade
+m.AbilBonusUnarmed2_0=Unarmed Mastery
+m.AbilBonusUnarmed2_1=+4 DMG Upgrade
+m.UnarmedArrowDeflectChance=[[RED]]Arrow Deflect Chance: [[YELLOW]]{0}%
+m.UnarmedDisarmChance=[[RED]]Disarm Chance: [[YELLOW]]{0}%
+m.UnarmedBerserkLength=[[RED]]Berserk Length: [[YELLOW]]{0}s
+m.SkillHerbalism=HERBALISM
+m.XPGainHerbalism=Harvesting Herbs
+m.EffectsHerbalism1_0=Green Terra (ABILITY)
+m.EffectsHerbalism1_1=Spread the Terra, 3x Drops
+m.EffectsHerbalism2_0=Green Thumb (Wheat)
+m.EffectsHerbalism2_1=Auto-Plants wheat when harvesting
+m.EffectsHerbalism3_0=Green Thumb (Cobble)
+m.EffectsHerbalism3_1=Cobblestone -> Mossy w/ Seeds
+m.EffectsHerbalism4_0=Food+
+m.EffectsHerbalism4_1=Modifies health received from bread/stew
+m.EffectsHerbalism5_0=Double Drops (All Herbs)
+m.EffectsHerbalism5_1=Double the normal loot
+m.HerbalismGreenTerraLength=[[RED]]Green Terra Length: [[YELLOW]]{0}s
+m.HerbalismGreenThumbChance=[[RED]]Green Thumb Chance: [[YELLOW]]{0}%
+m.HerbalismGreenThumbStage=[[RED]]Green Thumb Stage: [[YELLOW]] Wheat grows in stage {0}
+m.HerbalismDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}%
+m.HerbalismFoodPlus=[[RED]]Food+ (Rank{0}): [[YELLOW]]Bonus {0} healing
+m.SkillExcavation=EXCAVATION
+m.XPGainExcavation=Digging and finding treasures
+m.EffectsExcavation1_0=Giga Drill Breaker (ABILITY)
+m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Speed
+m.EffectsExcavation2_0=Treasure Hunter
+m.EffectsExcavation2_1=Ability to dig for treasure
+m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker Length: [[YELLOW]]{0}s
+mcBlockListener.PlacedAnvil=[[DARK_RED]]You have placed an anvil, anvils can repair tools and armor.
+mcEntityListener.WolfComesBack=[[DARK_GRAY]]Your wolf scurries back to you...
+mcPlayerListener.AbilitiesOff=Ability use toggled off
+mcPlayerListener.AbilitiesOn=Ability use toggled on
+mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES REFRESHED\!**
+mcPlayerListener.AcrobaticsSkill=Acrobatics: 
+mcPlayerListener.ArcherySkill=Archery: 
+mcPlayerListener.AxesSkill=Axes: 
+mcPlayerListener.ExcavationSkill=Excavation: 
+mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode Disabled
+mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode Enabled
+mcPlayerListener.GreenThumb=[[GREEN]]**GREEN THUMB**
+mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FAIL**
+mcPlayerListener.HerbalismSkill=Herbalism: 
+mcPlayerListener.MiningSkill=Mining: 
+mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn is now cleared.
+mcPlayerListener.MyspawnNotExist=[[RED]]Configure your myspawn first with a bed.
+mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn has been set to your current location.
+mcPlayerListener.MyspawnTimeNotice=You must wait {0}m {1}s to use myspawn
+mcPlayerListener.NoPermission=Insufficient mcPermissions.
+mcPlayerListener.NoSkillNote=[[DARK_GRAY]]If you don't have access to a skill it will not be shown here.
+mcPlayerListener.NotInParty=[[RED]]You are not in a party.
+mcPlayerListener.InviteSuccess=[[GREEN]]Invite sent successfully.
+mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]You have received a party invite for {0} from {1}
+mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] to accept the invite 
+mcPlayerListener.InviteAccepted=[[GREEN]]Invite Accepted. You have joined party {0}
+mcPlayerListener.NoInvites=[[RED]]You have no invites at this time
+mcPlayerListener.YouAreInParty=[[GREEN]]You are in party {0}
+mcPlayerListener.PartyMembers=[[GREEN]]Party Members
+mcPlayerListener.LeftParty=[[RED]]You have left that party
+mcPlayerListener.JoinedParty=Joined Party: {0}
+mcPlayerListener.PartyChatOn=Party Chat only [[GREEN]]On
+mcPlayerListener.PartyChatOff=Party Chat only [[RED]]Off
+mcPlayerListener.AdminChatOn=Admin Chat only [[GREEN]]On
+mcPlayerListener.AdminChatOff=Admin Chat only [[RED]]Off
+mcPlayerListener.MOTD=[[BLUE]]This server is running mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] for help.
+mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
+mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: 
+mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
+mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
+mcPlayerListener.RepairSkill=Repair: 
+mcPlayerListener.SwordsSkill=Swords: 
+mcPlayerListener.TamingSkill=Taming: 
+mcPlayerListener.UnarmedSkill=Unarmed: 
+mcPlayerListener.WoodcuttingSkill=Woodcutting: 
+mcPlayerListener.YourStats=[[GREEN]][mcMMO] Stats
+Party.InformedOnJoin={0} [[GREEN]] has joined your party
+Party.InformedOnQuit={0} [[GREEN]] has left your party
+Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed!
+Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed!
+Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed!
+Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed!
+Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed!
+Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed!
+Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed!
+Skills.TooTired=[[RED]]You are too tired to use that ability again.
+Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE**
+Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE**
+Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE**
+Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE**
+Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS**
+Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS**
+Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE**
+Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE**
+Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL**
+Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL**
+Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD**
+Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD**
+Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
+Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
+Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED**
+Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra!
+Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED**
+Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller!
+Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED**
+Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker!
+Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED**
+Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes!
+Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED**
+Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter!
+Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED**
+Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker!
+Skills.GreenTerraOff=[[RED]]**Green Terra has worn off**
+Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off**
+Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off**
+Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off**
+Skills.BerserkOff=[[RED]]**Berserk has worn off**
+Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off**
+Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off**
+Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1})
+Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1})
+Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1})
+Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1})
+Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1})
+Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1})
+Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1})
+Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1})
+Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1})
+Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1})
+Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1})
+Skills.FeltEasy=[[GRAY]]That felt easy.
+Skills.StackedItems=[[DARK_RED]]You can't repair stacked items
+Skills.NeedMore=[[DARK_RED]]You need more
+Skills.AdeptDiamond=[[DARK_RED]]You're not skilled enough to repair Diamond
+Skills.FullDurability=[[GRAY]]That is at full durability.
+Skills.Disarmed=[[DARK_RED]]You have been disarmed!
+mcPlayerListener.SorcerySkill=Sorcery: 
+m.SkillSorcery=SORCERY
+Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]]
+Sorcery.Current_Mana=[[DARK_AQUA]]MP
+Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
+Sorcery.Cost=[[RED]][COST] {0} MP
+Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
+Sorcery.Water.Thunder=THUNDER
+Sorcery.Curative.Self=CURE SELF
+Sorcery.Curative.Other=CURE OTHER
+m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
+Combat.BeastLore=[[GREEN]]**BEAST LORE**
+Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]])
+Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20)
+Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/8)
+mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com
+Party.Locked=[[RED]]Party is locked, only party leader may invite.
+Party.IsntLocked=[[GRAY]]Party is not locked
+Party.Unlocked=[[GRAY]]Party is unlocked
+Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit
+Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password>
+Party.Help3=[[RED]]Consult /{0} ? for more information
+Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit
+Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock
+Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock
+Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password>
+Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player>
+Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player>
+Party.NotOwner=[[DARK_RED]]You are not the party owner
+Party.InvalidName=[[DARK_RED]]That is not a valid party name
+Party.PasswordSet=[[GREEN]]Party password set to {0}
+Party.CouldNotKick=[[DARK_RED]]Could not kick player {0}
+Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
+Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0}
+Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
+Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
+Commands.xprate.proper3=[[RED]]Enter true or false for the second value
+Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
+Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
+Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
+Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
+Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
 Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining

+ 329 - 329
mcMMO/com/gmail/nossr50/locale/locale_fi.properties → src/com/gmail/nossr50/locale/locale_fi.properties

@@ -1,330 +1,330 @@
-Combat.WolfExamine=[[GREEN]]**Tutkit sutta käyttämällä Pedon Tarinaa**
-Combat.WolfShowMaster=[[DARK_GREEN]]Pedon isäntä : {0}
-Combat.Ignition=[[RED]]**SYTYTYS**
-Combat.BurningArrowHit=[[DARK_RED]]Palava nuoli osui sinuun\!
-Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy.
-Combat.TargetDazed=Kohde [[DARK_RED]]tyrmätty
-Combat.WolfNoMaster=[[GRAY]]Tällä pedolla ei ole isäntää...
-Combat.WolfHealth=[[GREEN]]Tämän pedon terveys on {0}
-Combat.StruckByGore=[[RED]]**SINUA ON PISTETTY**
-Combat.Gore=[[GREEN]]**PISTO**
-Combat.ArrowDeflect=[[WHITE]]**NUOLI TORJUTTU**
-Item.ChimaeraWingFail=**KHIMAIRAN SIIVEN KÄYTTÖ EPÄONNISTUI\!**
-Item.ChimaeraWingPass=**KHIMAIRAN SIIPI**
-Item.InjuredWait=Sinua on haavoitettu äskettäin joten joudut odottaa tämän käyttöä. [[YELLOW]]({0}s)
-Item.NeedFeathers=[[GRAY]]Tarvitset lisää sulkia..
-m.mccPartyCommands=[[GREEN]]--RYHMÄKOMENNOT--
-m.mccParty=[party name] [[RED]]- Luo/liity nimettyyn ryhmään
-m.mccPartyQ=[[RED]]- Lähde ryhmästä
-m.mccPartyToggle=[[RED]] - Laita ryhmäjuttelu päälle/pois
-m.mccPartyInvite=[player name] [[RED]]- Lähetä ryhmäkutsu
-m.mccPartyAccept=[[RED]]- Hyväksy ryhmäkutsu
-m.mccPartyTeleport=[party member name] [[RED]]- Siirry ryhmän jäsenen luo
-m.mccOtherCommands=[[GREEN]]--MUUT KOMENNOT--
-m.mccStats=- Näytä mcMMO tilastosi
-m.mccLeaderboards=- Tulostaulukko
-m.mccMySpawn=- Siirtää sinut myspawniin
-m.mccClearMySpawn=- Tyhjää myspawnisi
-m.mccToggleAbility=- Laita taitojen aktivointi oikealla näppäimellä päälle/pois
-m.mccAdminToggle=- Laita admin juttelu päälle/pois
-m.mccWhois=[playername] [[RED]]- Näytä yksityiskohtaiset tiedot pelaajasta
-m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Muokkaa kohdetta
-m.mccMcGod=- "God Mode"
-m.mccSkillInfo=[skillname] [[RED]]- Näytä ykistyiskohtaiset tiedot taidosta
-m.mccModDescription=[[RED]]- Lue lyhyt kuvaus modista
-m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
-m.XPGain=[[DARK_GRAY]]KOKEMUSPISTEIDEN MÄÄRÄ: [[WHITE]]{0}
-m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
-m.AbilityLockTemplate=[[GRAY]]{0}
-m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
-m.Effects=EFEKTIT
-m.YourStats=TILASTOSI
-m.SkillTaming=KESYTTÄMINEN
-m.XPGainTaming=Susien satuttaminen
-m.EffectsTaming1_0=Pedon Tarina
-m.EffectsTaming1_1=Luulla lyöminen tutkii susia
-m.EffectsTaming2_0=Pisto
-m.EffectsTaming2_1=Kriittinen Isku joka lisää Verenvuodon
-m.EffectsTaming3_0=Teroitetut Kynnet
-m.EffectsTaming3_1=Tuhoamis Bonus
-m.EffectsTaming4_0=Ympäristötietoinen
-m.EffectsTaming4_1=Kaktus/Laavapelko, immuuni Putousvahingolle
-m.EffectsTaming5_0=Paksu Turkki
-m.EffectsTaming5_1=Vahingon vähennys, Tulenkestävä
-m.EffectsTaming6_0=Räjähdyskestävä
-m.EffectsTaming6_1=Räjähdysvahingon vähennys
-m.AbilLockTaming1=LUKITTU KUNNES 100+ TAITO (YMPÄRISTÖTIETOINEN)
-m.AbilLockTaming2=LUKITTU KUNNES 250+ TAITO (PAKSU TURKKI)
-m.AbilLockTaming3=LUKITTU KUNNES 500+ TAITO (RÄJÄHDYSKESTÄVÄ)
-m.AbilLockTaming4=LUKITTU KUNNES 750+ TAITO (TEROITETUT KYNNET)
-m.AbilBonusTaming1_0=Ympäristötietoinen
-m.AbilBonusTaming1_1=Sudet karttavat vaaraa
-m.AbilBonusTaming2_0=Paksu Turkki
-m.AbilBonusTaming2_1=Puolitettu vahinko, Tulenkestävä
-m.AbilBonusTaming3_0=Räjähdyskestävä
-m.AbilBonusTaming3_1=Räjähteet vahingoittavat 1/6 vähemmän
-m.AbilBonusTaming4_0=Teroitetut Kynnet
-m.AbilBonusTaming4_1=+2 Vahinko
-m.TamingGoreChance=[[RED]]Piston todennäköisyys: [[YELLOW]]{0}%
-m.SkillWoodCutting=PUUN KAATO
-m.XPGainWoodCutting=Puiden pilkkominen
-m.EffectsWoodCutting1_0=Puunkaataja (TAITO)
-m.EffectsWoodCutting1_1=Räjäytä puita
-m.EffectsWoodCutting2_0=Lehdenpuhallin
-m.EffectsWoodCutting2_1=Puhalla lehtiä pois
-m.EffectsWoodCutting3_0=Tuplasaalis
-m.EffectsWoodCutting3_1=Tuplaa normaali saalis
-m.AbilLockWoodCutting1=LUKITTU KUNNES 100+ TAITO (LEHDENPUHALLIN)
-m.AbilBonusWoodCutting1_0=Lehdenpuhallin
-m.AbilBonusWoodCutting1_1=Puhalla lehtiä pois
-m.WoodCuttingDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}%
-m.WoodCuttingTreeFellerLength=[[RED]]Puunkaatajan kesto: [[YELLOW]]{0}s
-m.SkillArchery=JOUSIAMMUNTA
-m.XPGainArchery=Hyökkäämällä hirviöiden kimppuun
-m.EffectsArchery1_0=Sytytys
-m.EffectsArchery1_1=25% Todennäköisyys että vihollinen syttyy tuleen
-m.EffectsArchery2_0=Pökerrys (Pelaajat)
-m.EffectsArchery2_1=Saa viholliset pois tolaltaan
-m.EffectsArchery3_0=Vahinko+
-m.EffectsArchery3_1=Muokkaa vahinkoa
-m.EffectsArchery4_0=Nuolenkeräys
-m.EffectsArchery4_1=Todennäköisyys kerätä nuolia raadoista
-m.ArcheryDazeChance=[[RED]]Todennäköisyys Pökerryttää: [[YELLOW]]{0}%
-m.ArcheryRetrieveChance=[[RED]]Todennäköisyys kerätä nuolia: [[YELLOW]]{0}%
-m.ArcheryIgnitionLength=[[RED]]Sytytyksen kesto: [[YELLOW]]{0} sekuntia
-m.ArcheryDamagePlus=[[RED]]Vahinko+ (Rank{0}): [[YELLOW]]Bonus {0} vahinko
-m.SkillAxes=KIRVEET
-m.XPGainAxes=Hyökkäämällä hirviöiden kimppuun
-m.EffectsAxes1_0=Kallonhalkoja (TAITO)
-m.EffectsAxes1_1=Tee aluevahinkoa
-m.EffectsAxes2_0=Kriittiset Iskut
-m.EffectsAxes2_1=Tuplavahinko
-m.EffectsAxes3_0=Kirveiden Herra (500 TAITO)
-m.EffectsAxes3_1=Muokkaa vahinkoa
-m.AbilLockAxes1=LUKITTU KUNNES 500+ TAITO (KIRVEIDEN HERRA)
-m.AbilBonusAxes1_0=Kirveiden Herra
-m.AbilBonusAxes1_1=+4 Vahinko
-m.AxesCritChance=[[RED]]Todennäköisyys iskeä kriittisesti: [[YELLOW]]{0}%
-m.AxesSkullLength=[[RED]]Kallonhalkojan kesto: [[YELLOW]]{0}s
-m.SkillSwords=MIEKAT
-m.XPGainSwords=Hyökkäämällä hirviöiden kimppuun
-m.EffectsSwords1_0=Vastaisku
-m.EffectsSwords1_1=Kimmota 50% saadusta vahingosta
-m.EffectsSwords2_0=Sahalaitaiset Iskut (TAITO)
-m.EffectsSwords2_1=25% Aluevahinko, Verenvuoto+ Aluevahinko
-m.EffectsSwords3_0=Sahalaitaiset Iskut Verenvuoto+
-m.EffectsSwords3_1=5 Aiheuta Verenvuotoa
-m.EffectsSwords4_0=Torjuminen
-m.EffectsSwords4_1=Estää saadun vahingon
-m.EffectsSwords5_0=Verenvuoto
-m.EffectsSwords5_1=Lisää Verenvuoto
-m.SwordsCounterAttChance=[[RED]]Vastaiskun todennäköisyys: [[YELLOW]]{0}%
-m.SwordsBleedLength=[[RED]]Verenvuodon kesto: [[YELLOW]]{0} vuotoa
-m.SwordsBleedChance=[[RED]]Verenvuodon todennäköisyys: [[YELLOW]]{0} %
-m.SwordsParryChance=[[RED]]Torjumisen todennäköisyys: [[YELLOW]]{0} %
-m.SwordsSSLength=[[RED]]Sahalaitaisten Iskujen kesto: [[YELLOW]]{0}s
-m.SwordsTickNote=[[GRAY]]HUOMAA: [[YELLOW]]1 vuoto tapahtuu joka kahdes sekunti
-m.SkillAcrobatics=AKROBATIA
-m.XPGainAcrobatics=Tippumalla
-m.EffectsAcrobatics1_0=Kieriminen
-m.EffectsAcrobatics1_1=Vähentää tai estää vahinkoa
-m.EffectsAcrobatics2_0=Sulava Kieriminen
-m.EffectsAcrobatics2_1=Tuplasti tehokkaampi kuin Kieriminen
-m.EffectsAcrobatics3_0=Väistö
-m.EffectsAcrobatics3_1=Vähentää vahingon määrän puoleen
-m.AcrobaticsRollChance=[[RED]]Kierimisen todennäköisyys: [[YELLOW]]{0}%
-m.AcrobaticsGracefulRollChance=[[RED]]Sulavan Kierimisen todennäköisyys: [[YELLOW]]{0}%
-m.AcrobaticsDodgeChance=[[RED]]Väistön todennäköisyys: [[YELLOW]]{0}%
-m.SkillMining=LOUHINTA
-m.XPGainMining=Louhimalla kiveä ja malmia
-m.EffectsMining1_0=Supermurskain (TAITO)
-m.EffectsMining1_1=Nopeus+, Triplaa saaliin tippumistodennäköisyys
-m.EffectsMining2_0=Tuplasaalis
-m.EffectsMining2_1=Tuplaa normaali saaliin määrä
-m.MiningDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}%
-m.MiningSuperBreakerLength=[[RED]]Supermurskaimen kesto: [[YELLOW]]{0}s
-m.SkillRepair=KORJAUS
-m.XPGainRepair=Korjaamalla
-m.EffectsRepair1_0=Korjaa
-m.EffectsRepair1_1=Korjaa rautatyökaluja ja haarniskoja
-m.EffectsRepair2_0=Korjausten Herra
-m.EffectsRepair2_1=Lisätty korjausten määrä
-m.EffectsRepair3_0=Superkorjaus
-m.EffectsRepair3_1=Tuplatehokkuus
-m.EffectsRepair4_0=Timanttikorjaus ({0}+ TAITO)
-m.EffectsRepair4_1=Korjaa timanttityökaluja ja haarniskoja
-m.RepairRepairMastery=[[RED]]Korjausten Herra: [[YELLOW]]Extra {0}% kestävyyttä palautettu
-m.RepairSuperRepairChance=[[RED]]Superkorjauksen todennäköisyys: [[YELLOW]]{0}%
-m.SkillUnarmed=ASEISTAMATON
-m.XPGainUnarmed=Hyökkäämällä hirviöiden kimppuun
-m.EffectsUnarmed1_0=Raivopää (TAITO)
-m.EffectsUnarmed1_1=+50% vahinko, rikkoo heikkoja materiaaleja
-m.EffectsUnarmed2_0=Aseista riisuminen (Pelaajat)
-m.EffectsUnarmed2_1=Pudottaa vihollisen esineen kädestä
-m.EffectsUnarmed3_0=Aseistamattomuuden Herra
-m.EffectsUnarmed3_1=Suuri vahingonlisäys
-m.EffectsUnarmed4_0=Aseistamattomuuden Aloittelija
-m.EffectsUnarmed4_1=Vahingonlisäys
-m.EffectsUnarmed5_0=Nuolentorjunta
-m.EffectsUnarmed5_1=Torjuu nuolia
-m.AbilLockUnarmed1=LUKITTU KUNNES 250+ TAITO (ASEISTAMATTOMUUDEN ALOITTELIJA)
-m.AbilLockUnarmed2=LUKITTU KUNNES 500+ TAITO (ASEISTAMATTOMUUDEN HERRA)
-m.AbilBonusUnarmed1_0=Aseistamattomuuden Aloittelija
-m.AbilBonusUnarmed1_1=+2 Vahinko
-m.AbilBonusUnarmed2_0=Aseistamattomuuden Herra
-m.AbilBonusUnarmed2_1=+4 Vahinko
-m.UnarmedArrowDeflectChance=[[RED]]Nuolentorjunnan todennäköisyys: [[YELLOW]]{0}%
-m.UnarmedDisarmChance=[[RED]]Aseista riisumisen todennäköisyys: [[YELLOW]]{0}%
-m.UnarmedBerserkLength=[[RED]]Raivopään kesto: [[YELLOW]]{0}s
-m.SkillHerbalism=YRTTIHOITO
-m.XPGainHerbalism=Keräämällä yrttejä
-m.EffectsHerbalism1_0=Vihermaa (TAITO)
-m.EffectsHerbalism1_1=Levitä vihreyttä, 3x saalis
-m.EffectsHerbalism2_0=Viherpeukalo (Vehnä)
-m.EffectsHerbalism2_1=Istuttaa vehnää automaattisesti kun keräät vehnää
-m.EffectsHerbalism3_0=Viherpeukalo (Mukulakivi)
-m.EffectsHerbalism3_1=Mukulakivi -> Sammaleinen mukulakivi ja siemeniä
-m.EffectsHerbalism4_0=Ruoka+
-m.EffectsHerbalism4_1=Muokkaa terveyttä jota saat leivästä/muhennoksesta
-m.EffectsHerbalism5_0=Tuplasaalis (Kaikki yrtit)
-m.EffectsHerbalism5_1=Tuplaa normaali saaliin määrä
-m.HerbalismGreenTerraLength=[[RED]]Vihermaan kesto: [[YELLOW]]{0}s
-m.HerbalismGreenThumbChance=[[RED]]Viherpeukalon todennäköisyys: [[YELLOW]]{0}%
-m.HerbalismGreenThumbStage=[[RED]]Viherpeukalon vaihe: [[YELLOW]] Vehnä kasvaa {0}:ssa vaiheessa
-m.HerbalismDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}%
-m.HerbalismFoodPlus=[[RED]]Ruoka+ (Rank{0}): [[YELLOW]]Bonus {0} terveyden määrä
-m.SkillExcavation=KAIVANTO
-m.XPGainExcavation=Kaivamalla ja löytämällä aarteita
-m.EffectsExcavation1_0=Giga Drill Breaker (TAITO)
-m.EffectsExcavation1_1=3x saaliin määrä, 3x kokemuspisteiden määrä, +Nopeus
-m.EffectsExcavation2_0=Aarteenmetsästäjä
-m.EffectsExcavation2_1=Taito jonka avulla voit kaivaa aarteita
-m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker kesto: [[YELLOW]]{0}s
-mcBlockListener.PlacedAnvil=[[DARK_RED]]Olet asettanut alasimen maahan, sillä voit korjata työkaluja ja haarniskoja.
-mcEntityListener.WolfComesBack=[[DARK_GRAY]]Sutesi kipittää takaisin luoksesi...
-mcPlayerListener.AbilitiesOff=Taitojen käyttö pois päältä
-mcPlayerListener.AbilitiesOn=Taitojen käyttö päällä
-mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**TAIDOT PÄIVITETTY\!**
-mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Akrobatia: 
-mcPlayerListener.ArcherySkill=[[YELLOW]]Jousiammunta: 
-mcPlayerListener.AxesSkill=[[YELLOW]]Kirveet: 
-mcPlayerListener.ExcavationSkill=[[YELLOW]]Kaivanto: 
-mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode pois päältä
-mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode päällä
-mcPlayerListener.GreenThumb=[[GREEN]]**VIHERPEUKALO**
-mcPlayerListener.GreenThumbFail=[[RED]]**VIHERPEUKALO EPÄONNISTUI**
-mcPlayerListener.HerbalismSkill=[[YELLOW]]Yrttihoito: 
-mcPlayerListener.MiningSkill=[[YELLOW]]Kaivanto: 
-mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn on tyhjätty.
-mcPlayerListener.MyspawnNotExist=[[RED]]Määrää myspawnisi ensin laittamalla sänky maahan.
-mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn on asetettu tämänhetkiseen sijaintiisi.
-mcPlayerListener.MyspawnTimeNotice=Sinun pitää odottaa {0}m {1}s käyttääksesi myspawnia
-mcPlayerListener.NoPermission=Puutteelliset oikeudet (mcPermissions)
-mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Jos sinulla ei ole käyttöoikeutta johonkin taitoon, sitä ei näytetä täällä.
-mcPlayerListener.NotInParty=[[RED]]Et ole ryhmässä.
-mcPlayerListener.InviteSuccess=[[GREEN]]Kutsu lähetetty.
-mcPlayerListener.ReceivedInvite1=[[RED]]HUOMIO: [[GREEN]]Olet saanut ryhmäkutsun ryhmään {0} pelaajalta {1}
-mcPlayerListener.ReceivedInvite2=[[YELLOW]]Kirjoita [[GREEN]]/{0}[[YELLOW]] hyväksyäksesi kutsun 
-mcPlayerListener.InviteAccepted=[[GREEN]]Kutsu hyväksytty. Olet liittynyt ryhmään {0}
-mcPlayerListener.NoInvites=[[RED]]Sinulla ei ole kutsuja
-mcPlayerListener.YouAreInParty=[[GREEN]]Olet ryhmässä {0}
-mcPlayerListener.PartyMembers=[[GREEN]]Ryhmän jäsenet
-mcPlayerListener.LeftParty=[[RED]]Olet lähtenyt ryhmästä
-mcPlayerListener.JoinedParty=Liityit ryhmään: {0}
-mcPlayerListener.PartyChatOn=Vain ryhmäjuttelu [[GREEN]]Päällä
-mcPlayerListener.PartyChatOff=Vain ryhmäjuttelu [[RED]]Pois päältä
-mcPlayerListener.AdminChatOn=Vain admin juttelu [[GREEN]]Päällä
-mcPlayerListener.AdminChatOff=Vain admin juttelu [[RED]]Pois päältä
-mcPlayerListener.MOTD=[[BLUE]]Tällä serverillä on mcMMO {0} kirjoita [[YELLOW]]/{1}[[BLUE]] apua varten.
-mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
-mcPlayerListener.PowerLevel=[[DARK_RED]]VOIMATASO: 
-mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Voimataso [[YELLOW]]Tulostaulukko--
-mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Tulostaulukko--
-mcPlayerListener.RepairSkill=[[YELLOW]]Korjaus: 
-mcPlayerListener.SwordsSkill=[[YELLOW]]Miekat: 
-mcPlayerListener.TamingSkill=[[YELLOW]]Kesytys: 
-mcPlayerListener.UnarmedSkill=[[YELLOW]]Aseistamattomuus: 
-mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Puunkaato: 
-mcPlayerListener.YourStats=[[GREEN]]Sinun MMO tilastosi
-Party.InformedOnJoin={0} [[GREEN]] on liittynyt ryhmään
-Party.InformedOnQuit={0} [[GREEN]] on lähtenyt ryhmästä
-Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed!
-Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed!
-Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed!
-Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed!
-Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed!
-Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed!
-Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed!
-Skills.TooTired=[[RED]]You are too tired to use that ability again.
-Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE**
-Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE**
-Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE**
-Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE**
-Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS**
-Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS**
-Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE**
-Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE**
-Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL**
-Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL**
-Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD**
-Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD**
-Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
-Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
-Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED**
-Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra!
-Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED**
-Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller!
-Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED**
-Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker!
-Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED**
-Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes!
-Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED**
-Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter!
-Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED**
-Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker!
-Skills.GreenTerraOff=[[RED]]**Green Terra has worn off**
-Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off**
-Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off**
-Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off**
-Skills.BerserkOff=[[RED]]**Berserk has worn off**
-Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off**
-Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off**
-Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1})
-Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1})
-Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1})
-Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1})
-Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1})
-Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1})
-Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1})
-Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1})
-Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1})
-Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1})
-Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1})
-mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com
-Party.Locked=[[RED]]Party is locked, only party leader may invite.
-Party.IsntLocked=[[GRAY]]Party is not locked
-Party.Unlocked=[[GRAY]]Party is unlocked
-Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit
-Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password>
-Party.Help3=[[RED]]Consult /{0} ? for more information
-Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit
-Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock
-Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock
-Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password>
-Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player>
-Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player>
-Party.NotOwner=[[DARK_RED]]You are not the party owner
-Party.InvalidName=[[DARK_RED]]That is not a valid party name
-Party.PasswordSet=[[GREEN]]Party password set to {0}
-Party.CouldNotKick=[[DARK_RED]]Could not kick player {0}
-Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
-Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0}
-Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
-Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
-Commands.xprate.proper3=[[RED]]Enter true or false for the second value
-Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
-Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
-Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
-Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
-Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
+Combat.WolfExamine=[[GREEN]]**Tutkit sutta käyttämällä Pedon Tarinaa**
+Combat.WolfShowMaster=[[DARK_GREEN]]Pedon isäntä : {0}
+Combat.Ignition=[[RED]]**SYTYTYS**
+Combat.BurningArrowHit=[[DARK_RED]]Palava nuoli osui sinuun\!
+Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy.
+Combat.TargetDazed=Kohde [[DARK_RED]]tyrmätty
+Combat.WolfNoMaster=[[GRAY]]Tällä pedolla ei ole isäntää...
+Combat.WolfHealth=[[GREEN]]Tämän pedon terveys on {0}
+Combat.StruckByGore=[[RED]]**SINUA ON PISTETTY**
+Combat.Gore=[[GREEN]]**PISTO**
+Combat.ArrowDeflect=[[WHITE]]**NUOLI TORJUTTU**
+Item.ChimaeraWingFail=**KHIMAIRAN SIIVEN KÄYTTÖ EPÄONNISTUI\!**
+Item.ChimaeraWingPass=**KHIMAIRAN SIIPI**
+Item.InjuredWait=Sinua on haavoitettu äskettäin joten joudut odottaa tämän käyttöä. [[YELLOW]]({0}s)
+Item.NeedFeathers=[[GRAY]]Tarvitset lisää sulkia..
+m.mccPartyCommands=[[GREEN]]--RYHMÄKOMENNOT--
+m.mccParty=[party name] [[RED]]- Luo/liity nimettyyn ryhmään
+m.mccPartyQ=[[RED]]- Lähde ryhmästä
+m.mccPartyToggle=[[RED]] - Laita ryhmäjuttelu päälle/pois
+m.mccPartyInvite=[player name] [[RED]]- Lähetä ryhmäkutsu
+m.mccPartyAccept=[[RED]]- Hyväksy ryhmäkutsu
+m.mccPartyTeleport=[party member name] [[RED]]- Siirry ryhmän jäsenen luo
+m.mccOtherCommands=[[GREEN]]--MUUT KOMENNOT--
+m.mccStats=- Näytä mcMMO tilastosi
+m.mccLeaderboards=- Tulostaulukko
+m.mccMySpawn=- Siirtää sinut myspawniin
+m.mccClearMySpawn=- Tyhjää myspawnisi
+m.mccToggleAbility=- Laita taitojen aktivointi oikealla näppäimellä päälle/pois
+m.mccAdminToggle=- Laita admin juttelu päälle/pois
+m.mccWhois=[playername] [[RED]]- Näytä yksityiskohtaiset tiedot pelaajasta
+m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Muokkaa kohdetta
+m.mccMcGod=- "God Mode"
+m.mccSkillInfo=[skillname] [[RED]]- Näytä ykistyiskohtaiset tiedot taidosta
+m.mccModDescription=[[RED]]- Lue lyhyt kuvaus modista
+m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
+m.XPGain=[[DARK_GRAY]]KOKEMUSPISTEIDEN MÄÄRÄ: [[WHITE]]{0}
+m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
+m.AbilityLockTemplate=[[GRAY]]{0}
+m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
+m.Effects=EFEKTIT
+m.YourStats=TILASTOSI
+m.SkillTaming=KESYTTÄMINEN
+m.XPGainTaming=Susien satuttaminen
+m.EffectsTaming1_0=Pedon Tarina
+m.EffectsTaming1_1=Luulla lyöminen tutkii susia
+m.EffectsTaming2_0=Pisto
+m.EffectsTaming2_1=Kriittinen Isku joka lisää Verenvuodon
+m.EffectsTaming3_0=Teroitetut Kynnet
+m.EffectsTaming3_1=Tuhoamis Bonus
+m.EffectsTaming4_0=Ympäristötietoinen
+m.EffectsTaming4_1=Kaktus/Laavapelko, immuuni Putousvahingolle
+m.EffectsTaming5_0=Paksu Turkki
+m.EffectsTaming5_1=Vahingon vähennys, Tulenkestävä
+m.EffectsTaming6_0=Räjähdyskestävä
+m.EffectsTaming6_1=Räjähdysvahingon vähennys
+m.AbilLockTaming1=LUKITTU KUNNES 100+ TAITO (YMPÄRISTÖTIETOINEN)
+m.AbilLockTaming2=LUKITTU KUNNES 250+ TAITO (PAKSU TURKKI)
+m.AbilLockTaming3=LUKITTU KUNNES 500+ TAITO (RÄJÄHDYSKESTÄVÄ)
+m.AbilLockTaming4=LUKITTU KUNNES 750+ TAITO (TEROITETUT KYNNET)
+m.AbilBonusTaming1_0=Ympäristötietoinen
+m.AbilBonusTaming1_1=Sudet karttavat vaaraa
+m.AbilBonusTaming2_0=Paksu Turkki
+m.AbilBonusTaming2_1=Puolitettu vahinko, Tulenkestävä
+m.AbilBonusTaming3_0=Räjähdyskestävä
+m.AbilBonusTaming3_1=Räjähteet vahingoittavat 1/6 vähemmän
+m.AbilBonusTaming4_0=Teroitetut Kynnet
+m.AbilBonusTaming4_1=+2 Vahinko
+m.TamingGoreChance=[[RED]]Piston todennäköisyys: [[YELLOW]]{0}%
+m.SkillWoodCutting=PUUN KAATO
+m.XPGainWoodCutting=Puiden pilkkominen
+m.EffectsWoodCutting1_0=Puunkaataja (TAITO)
+m.EffectsWoodCutting1_1=Räjäytä puita
+m.EffectsWoodCutting2_0=Lehdenpuhallin
+m.EffectsWoodCutting2_1=Puhalla lehtiä pois
+m.EffectsWoodCutting3_0=Tuplasaalis
+m.EffectsWoodCutting3_1=Tuplaa normaali saalis
+m.AbilLockWoodCutting1=LUKITTU KUNNES 100+ TAITO (LEHDENPUHALLIN)
+m.AbilBonusWoodCutting1_0=Lehdenpuhallin
+m.AbilBonusWoodCutting1_1=Puhalla lehtiä pois
+m.WoodCuttingDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}%
+m.WoodCuttingTreeFellerLength=[[RED]]Puunkaatajan kesto: [[YELLOW]]{0}s
+m.SkillArchery=JOUSIAMMUNTA
+m.XPGainArchery=Hyökkäämällä hirviöiden kimppuun
+m.EffectsArchery1_0=Sytytys
+m.EffectsArchery1_1=25% Todennäköisyys että vihollinen syttyy tuleen
+m.EffectsArchery2_0=Pökerrys (Pelaajat)
+m.EffectsArchery2_1=Saa viholliset pois tolaltaan
+m.EffectsArchery3_0=Vahinko+
+m.EffectsArchery3_1=Muokkaa vahinkoa
+m.EffectsArchery4_0=Nuolenkeräys
+m.EffectsArchery4_1=Todennäköisyys kerätä nuolia raadoista
+m.ArcheryDazeChance=[[RED]]Todennäköisyys Pökerryttää: [[YELLOW]]{0}%
+m.ArcheryRetrieveChance=[[RED]]Todennäköisyys kerätä nuolia: [[YELLOW]]{0}%
+m.ArcheryIgnitionLength=[[RED]]Sytytyksen kesto: [[YELLOW]]{0} sekuntia
+m.ArcheryDamagePlus=[[RED]]Vahinko+ (Rank{0}): [[YELLOW]]Bonus {0} vahinko
+m.SkillAxes=KIRVEET
+m.XPGainAxes=Hyökkäämällä hirviöiden kimppuun
+m.EffectsAxes1_0=Kallonhalkoja (TAITO)
+m.EffectsAxes1_1=Tee aluevahinkoa
+m.EffectsAxes2_0=Kriittiset Iskut
+m.EffectsAxes2_1=Tuplavahinko
+m.EffectsAxes3_0=Kirveiden Herra (500 TAITO)
+m.EffectsAxes3_1=Muokkaa vahinkoa
+m.AbilLockAxes1=LUKITTU KUNNES 500+ TAITO (KIRVEIDEN HERRA)
+m.AbilBonusAxes1_0=Kirveiden Herra
+m.AbilBonusAxes1_1=+4 Vahinko
+m.AxesCritChance=[[RED]]Todennäköisyys iskeä kriittisesti: [[YELLOW]]{0}%
+m.AxesSkullLength=[[RED]]Kallonhalkojan kesto: [[YELLOW]]{0}s
+m.SkillSwords=MIEKAT
+m.XPGainSwords=Hyökkäämällä hirviöiden kimppuun
+m.EffectsSwords1_0=Vastaisku
+m.EffectsSwords1_1=Kimmota 50% saadusta vahingosta
+m.EffectsSwords2_0=Sahalaitaiset Iskut (TAITO)
+m.EffectsSwords2_1=25% Aluevahinko, Verenvuoto+ Aluevahinko
+m.EffectsSwords3_0=Sahalaitaiset Iskut Verenvuoto+
+m.EffectsSwords3_1=5 Aiheuta Verenvuotoa
+m.EffectsSwords4_0=Torjuminen
+m.EffectsSwords4_1=Estää saadun vahingon
+m.EffectsSwords5_0=Verenvuoto
+m.EffectsSwords5_1=Lisää Verenvuoto
+m.SwordsCounterAttChance=[[RED]]Vastaiskun todennäköisyys: [[YELLOW]]{0}%
+m.SwordsBleedLength=[[RED]]Verenvuodon kesto: [[YELLOW]]{0} vuotoa
+m.SwordsBleedChance=[[RED]]Verenvuodon todennäköisyys: [[YELLOW]]{0} %
+m.SwordsParryChance=[[RED]]Torjumisen todennäköisyys: [[YELLOW]]{0} %
+m.SwordsSSLength=[[RED]]Sahalaitaisten Iskujen kesto: [[YELLOW]]{0}s
+m.SwordsTickNote=[[GRAY]]HUOMAA: [[YELLOW]]1 vuoto tapahtuu joka kahdes sekunti
+m.SkillAcrobatics=AKROBATIA
+m.XPGainAcrobatics=Tippumalla
+m.EffectsAcrobatics1_0=Kieriminen
+m.EffectsAcrobatics1_1=Vähentää tai estää vahinkoa
+m.EffectsAcrobatics2_0=Sulava Kieriminen
+m.EffectsAcrobatics2_1=Tuplasti tehokkaampi kuin Kieriminen
+m.EffectsAcrobatics3_0=Väistö
+m.EffectsAcrobatics3_1=Vähentää vahingon määrän puoleen
+m.AcrobaticsRollChance=[[RED]]Kierimisen todennäköisyys: [[YELLOW]]{0}%
+m.AcrobaticsGracefulRollChance=[[RED]]Sulavan Kierimisen todennäköisyys: [[YELLOW]]{0}%
+m.AcrobaticsDodgeChance=[[RED]]Väistön todennäköisyys: [[YELLOW]]{0}%
+m.SkillMining=LOUHINTA
+m.XPGainMining=Louhimalla kiveä ja malmia
+m.EffectsMining1_0=Supermurskain (TAITO)
+m.EffectsMining1_1=Nopeus+, Triplaa saaliin tippumistodennäköisyys
+m.EffectsMining2_0=Tuplasaalis
+m.EffectsMining2_1=Tuplaa normaali saaliin määrä
+m.MiningDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}%
+m.MiningSuperBreakerLength=[[RED]]Supermurskaimen kesto: [[YELLOW]]{0}s
+m.SkillRepair=KORJAUS
+m.XPGainRepair=Korjaamalla
+m.EffectsRepair1_0=Korjaa
+m.EffectsRepair1_1=Korjaa rautatyökaluja ja haarniskoja
+m.EffectsRepair2_0=Korjausten Herra
+m.EffectsRepair2_1=Lisätty korjausten määrä
+m.EffectsRepair3_0=Superkorjaus
+m.EffectsRepair3_1=Tuplatehokkuus
+m.EffectsRepair4_0=Timanttikorjaus ({0}+ TAITO)
+m.EffectsRepair4_1=Korjaa timanttityökaluja ja haarniskoja
+m.RepairRepairMastery=[[RED]]Korjausten Herra: [[YELLOW]]Extra {0}% kestävyyttä palautettu
+m.RepairSuperRepairChance=[[RED]]Superkorjauksen todennäköisyys: [[YELLOW]]{0}%
+m.SkillUnarmed=ASEISTAMATON
+m.XPGainUnarmed=Hyökkäämällä hirviöiden kimppuun
+m.EffectsUnarmed1_0=Raivopää (TAITO)
+m.EffectsUnarmed1_1=+50% vahinko, rikkoo heikkoja materiaaleja
+m.EffectsUnarmed2_0=Aseista riisuminen (Pelaajat)
+m.EffectsUnarmed2_1=Pudottaa vihollisen esineen kädestä
+m.EffectsUnarmed3_0=Aseistamattomuuden Herra
+m.EffectsUnarmed3_1=Suuri vahingonlisäys
+m.EffectsUnarmed4_0=Aseistamattomuuden Aloittelija
+m.EffectsUnarmed4_1=Vahingonlisäys
+m.EffectsUnarmed5_0=Nuolentorjunta
+m.EffectsUnarmed5_1=Torjuu nuolia
+m.AbilLockUnarmed1=LUKITTU KUNNES 250+ TAITO (ASEISTAMATTOMUUDEN ALOITTELIJA)
+m.AbilLockUnarmed2=LUKITTU KUNNES 500+ TAITO (ASEISTAMATTOMUUDEN HERRA)
+m.AbilBonusUnarmed1_0=Aseistamattomuuden Aloittelija
+m.AbilBonusUnarmed1_1=+2 Vahinko
+m.AbilBonusUnarmed2_0=Aseistamattomuuden Herra
+m.AbilBonusUnarmed2_1=+4 Vahinko
+m.UnarmedArrowDeflectChance=[[RED]]Nuolentorjunnan todennäköisyys: [[YELLOW]]{0}%
+m.UnarmedDisarmChance=[[RED]]Aseista riisumisen todennäköisyys: [[YELLOW]]{0}%
+m.UnarmedBerserkLength=[[RED]]Raivopään kesto: [[YELLOW]]{0}s
+m.SkillHerbalism=YRTTIHOITO
+m.XPGainHerbalism=Keräämällä yrttejä
+m.EffectsHerbalism1_0=Vihermaa (TAITO)
+m.EffectsHerbalism1_1=Levitä vihreyttä, 3x saalis
+m.EffectsHerbalism2_0=Viherpeukalo (Vehnä)
+m.EffectsHerbalism2_1=Istuttaa vehnää automaattisesti kun keräät vehnää
+m.EffectsHerbalism3_0=Viherpeukalo (Mukulakivi)
+m.EffectsHerbalism3_1=Mukulakivi -> Sammaleinen mukulakivi ja siemeniä
+m.EffectsHerbalism4_0=Ruoka+
+m.EffectsHerbalism4_1=Muokkaa terveyttä jota saat leivästä/muhennoksesta
+m.EffectsHerbalism5_0=Tuplasaalis (Kaikki yrtit)
+m.EffectsHerbalism5_1=Tuplaa normaali saaliin määrä
+m.HerbalismGreenTerraLength=[[RED]]Vihermaan kesto: [[YELLOW]]{0}s
+m.HerbalismGreenThumbChance=[[RED]]Viherpeukalon todennäköisyys: [[YELLOW]]{0}%
+m.HerbalismGreenThumbStage=[[RED]]Viherpeukalon vaihe: [[YELLOW]] Vehnä kasvaa {0}:ssa vaiheessa
+m.HerbalismDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}%
+m.HerbalismFoodPlus=[[RED]]Ruoka+ (Rank{0}): [[YELLOW]]Bonus {0} terveyden määrä
+m.SkillExcavation=KAIVANTO
+m.XPGainExcavation=Kaivamalla ja löytämällä aarteita
+m.EffectsExcavation1_0=Giga Drill Breaker (TAITO)
+m.EffectsExcavation1_1=3x saaliin määrä, 3x kokemuspisteiden määrä, +Nopeus
+m.EffectsExcavation2_0=Aarteenmetsästäjä
+m.EffectsExcavation2_1=Taito jonka avulla voit kaivaa aarteita
+m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker kesto: [[YELLOW]]{0}s
+mcBlockListener.PlacedAnvil=[[DARK_RED]]Olet asettanut alasimen maahan, sillä voit korjata työkaluja ja haarniskoja.
+mcEntityListener.WolfComesBack=[[DARK_GRAY]]Sutesi kipittää takaisin luoksesi...
+mcPlayerListener.AbilitiesOff=Taitojen käyttö pois päältä
+mcPlayerListener.AbilitiesOn=Taitojen käyttö päällä
+mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**TAIDOT PÄIVITETTY\!**
+mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Akrobatia: 
+mcPlayerListener.ArcherySkill=[[YELLOW]]Jousiammunta: 
+mcPlayerListener.AxesSkill=[[YELLOW]]Kirveet: 
+mcPlayerListener.ExcavationSkill=[[YELLOW]]Kaivanto: 
+mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode pois päältä
+mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode päällä
+mcPlayerListener.GreenThumb=[[GREEN]]**VIHERPEUKALO**
+mcPlayerListener.GreenThumbFail=[[RED]]**VIHERPEUKALO EPÄONNISTUI**
+mcPlayerListener.HerbalismSkill=[[YELLOW]]Yrttihoito: 
+mcPlayerListener.MiningSkill=[[YELLOW]]Kaivanto: 
+mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn on tyhjätty.
+mcPlayerListener.MyspawnNotExist=[[RED]]Määrää myspawnisi ensin laittamalla sänky maahan.
+mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn on asetettu tämänhetkiseen sijaintiisi.
+mcPlayerListener.MyspawnTimeNotice=Sinun pitää odottaa {0}m {1}s käyttääksesi myspawnia
+mcPlayerListener.NoPermission=Puutteelliset oikeudet (mcPermissions)
+mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Jos sinulla ei ole käyttöoikeutta johonkin taitoon, sitä ei näytetä täällä.
+mcPlayerListener.NotInParty=[[RED]]Et ole ryhmässä.
+mcPlayerListener.InviteSuccess=[[GREEN]]Kutsu lähetetty.
+mcPlayerListener.ReceivedInvite1=[[RED]]HUOMIO: [[GREEN]]Olet saanut ryhmäkutsun ryhmään {0} pelaajalta {1}
+mcPlayerListener.ReceivedInvite2=[[YELLOW]]Kirjoita [[GREEN]]/{0}[[YELLOW]] hyväksyäksesi kutsun 
+mcPlayerListener.InviteAccepted=[[GREEN]]Kutsu hyväksytty. Olet liittynyt ryhmään {0}
+mcPlayerListener.NoInvites=[[RED]]Sinulla ei ole kutsuja
+mcPlayerListener.YouAreInParty=[[GREEN]]Olet ryhmässä {0}
+mcPlayerListener.PartyMembers=[[GREEN]]Ryhmän jäsenet
+mcPlayerListener.LeftParty=[[RED]]Olet lähtenyt ryhmästä
+mcPlayerListener.JoinedParty=Liityit ryhmään: {0}
+mcPlayerListener.PartyChatOn=Vain ryhmäjuttelu [[GREEN]]Päällä
+mcPlayerListener.PartyChatOff=Vain ryhmäjuttelu [[RED]]Pois päältä
+mcPlayerListener.AdminChatOn=Vain admin juttelu [[GREEN]]Päällä
+mcPlayerListener.AdminChatOff=Vain admin juttelu [[RED]]Pois päältä
+mcPlayerListener.MOTD=[[BLUE]]Tällä serverillä on mcMMO {0} kirjoita [[YELLOW]]/{1}[[BLUE]] apua varten.
+mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
+mcPlayerListener.PowerLevel=[[DARK_RED]]VOIMATASO: 
+mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Voimataso [[YELLOW]]Tulostaulukko--
+mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Tulostaulukko--
+mcPlayerListener.RepairSkill=[[YELLOW]]Korjaus: 
+mcPlayerListener.SwordsSkill=[[YELLOW]]Miekat: 
+mcPlayerListener.TamingSkill=[[YELLOW]]Kesytys: 
+mcPlayerListener.UnarmedSkill=[[YELLOW]]Aseistamattomuus: 
+mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Puunkaato: 
+mcPlayerListener.YourStats=[[GREEN]]Sinun MMO tilastosi
+Party.InformedOnJoin={0} [[GREEN]] on liittynyt ryhmään
+Party.InformedOnQuit={0} [[GREEN]] on lähtenyt ryhmästä
+Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed!
+Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed!
+Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed!
+Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed!
+Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed!
+Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed!
+Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed!
+Skills.TooTired=[[RED]]You are too tired to use that ability again.
+Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE**
+Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE**
+Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE**
+Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE**
+Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS**
+Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS**
+Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE**
+Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE**
+Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL**
+Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL**
+Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD**
+Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD**
+Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
+Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
+Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED**
+Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra!
+Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED**
+Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller!
+Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED**
+Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker!
+Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED**
+Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes!
+Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED**
+Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter!
+Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED**
+Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker!
+Skills.GreenTerraOff=[[RED]]**Green Terra has worn off**
+Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off**
+Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off**
+Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off**
+Skills.BerserkOff=[[RED]]**Berserk has worn off**
+Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off**
+Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off**
+Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1})
+Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1})
+Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1})
+Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1})
+Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1})
+Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1})
+Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1})
+Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1})
+Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1})
+Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1})
+Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1})
+mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com
+Party.Locked=[[RED]]Party is locked, only party leader may invite.
+Party.IsntLocked=[[GRAY]]Party is not locked
+Party.Unlocked=[[GRAY]]Party is unlocked
+Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit
+Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password>
+Party.Help3=[[RED]]Consult /{0} ? for more information
+Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit
+Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock
+Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock
+Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password>
+Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player>
+Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player>
+Party.NotOwner=[[DARK_RED]]You are not the party owner
+Party.InvalidName=[[DARK_RED]]That is not a valid party name
+Party.PasswordSet=[[GREEN]]Party password set to {0}
+Party.CouldNotKick=[[DARK_RED]]Could not kick player {0}
+Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
+Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0}
+Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
+Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
+Commands.xprate.proper3=[[RED]]Enter true or false for the second value
+Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
+Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
+Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
+Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
+Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
 Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining

+ 350 - 350
mcMMO/com/gmail/nossr50/locale/locale_fr.properties → src/com/gmail/nossr50/locale/locale_fr.properties

@@ -1,351 +1,351 @@
-Combat.WolfExamine=[[GREEN]]**Vous examinez le loup avec le Beast Lore**
-Combat.WolfShowMaster=[[DARK_GREEN]]Le Maître des bêtes \: {0}
-Combat.Ignition=[[RED]]**ALLUMAGE**
-Combat.BurningArrowHit=[[DARK_RED]]Vous avez été frappé par une flèche brûlante\!
-Combat.TouchedFuzzy=[[DARK_RED]]Vous voyez flou. Vous vous sentez étourdi.
-Combat.TargetDazed=La cible a été [[DARK_RED]]Étourdi
-Combat.WolfNoMaster=[[GRAY]]Cette bête n'a pas de maître...
-Combat.WolfHealth=[[GREEN]]Cette bête a {0} points de vie 
-Combat.StruckByGore=[[RED]]**FRAPPÉ JUSQU'AU SANG**
-Combat.Gore=[[GREEN]]**SANG**
-Combat.ArrowDeflect=[[WHITE]]**FLÈCHE DEVIÉE**
-Item.ChimaeraWingFail=**CHIMAERA WING a échoué \!**
-Item.ChimaeraWingPass=**CHIMAERA WING**
-Item.InjuredWait=Vous avez été blessé récemment et vous devez attendre pour utiliser ça. [[YELLOW]]({0}s)
-Item.NeedFeathers=[[GRAY]]Vous avez besoin de plus de plumes..
-m.mccPartyCommands=[[GREEN]]--COMMANDES GROUPE--
-m.mccParty=[party name] [[RED]]- Créer / Rejoindre un groupe
-m.mccPartyQ=[[RED]]- Vous quitter la partie en cours
-m.mccPartyToggle=[[RED]] - Active le Chat de groupe
-m.mccPartyInvite=[player name] [[RED]]- Envoyer une invitation
-m.mccPartyAccept=[[RED]]- Accepter l'invitation
-m.mccPartyTeleport=[party member name] [[RED]]- Vous téléporte à un membre du groupe
-m.mccOtherCommands=[[GREEN]]--AUTRES COMMANDES--
-m.mccStats=- Voir vos statistiques
-m.mccLeaderboards=- Classements
-m.mccMySpawn=- Vous téléporte à votre spawn
-m.mccClearMySpawn=- Éfface votre point de spawn
-m.mccToggleAbility=- Active les capacités spéciales avec clic droit
-m.mccAdminToggle=- Active le chat admin
-m.mccWhois=[playername] [[RED]]- Voir les infos détaillées du joueur
-m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifier 
-m.mccMcGod=- Mode dieu
-m.mccSkillInfo=[skillname] [[RED]]- Afficher des informations détaillées d'une compétence
-m.mccModDescription=[[RED]]- Affiche la description de mcMMO
-m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
-m.XPGain=[[DARK_GRAY]]POUR GAGNER DE l'XP: [[WHITE]]{0}
-m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
-m.AbilityLockTemplate=[[GRAY]]{0}
-m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
-m.Effects=EFFETS
-m.YourStats=VOS STATS
-m.SkillTaming=DRESSAGE
-m.XPGainTaming=Attaquer avec un loup
-m.EffectsTaming1_0=Connaissance des bêtes
-m.EffectsTaming1_1=Inspecte un loup avec un os
-m.EffectsTaming2_0=Morsures
-m.EffectsTaming2_1=Des coups critiques lors d'une morsure
-m.EffectsTaming3_0=Griffes aiguisées
-m.EffectsTaming3_1=Bonus de dégâts
-m.EffectsTaming4_0=Conscient de l'environnement
-m.EffectsTaming4_1=Resistance aux Cactus, à la lave et aux chutes.
-m.EffectsTaming5_0=Epaisse fourrure
-m.EffectsTaming5_1=Réduction dégâts, Résistance au feu
-m.EffectsTaming6_0=Résistance aux chocs
-m.EffectsTaming6_1=Réduction des dommages explosifs
-m.AbilLockTaming1=Débloqué au niveau 100 (Conscient de l'environnement)
-m.AbilLockTaming2=Débloqué au niveau 250 (Épaisse fourrure)
-m.AbilLockTaming3=Débloqué au niveau 500 (Résistance aux chocs)
-m.AbilLockTaming4=Débloqué au niveau 750 (Griffes aiguisées)
-m.AbilBonusTaming1_0=Conscient de l'environnement
-m.AbilBonusTaming1_1=Le loup évite le danger
-m.AbilBonusTaming2_0=Epaisse fourrure
-m.AbilBonusTaming2_1=Réduit de moitié les dommages \+ résistance au feu
-m.AbilBonusTaming3_0=Résistance aux chocs
-m.AbilBonusTaming3_1=divise par 6 les dégats d'explosions
-m.AbilBonusTaming4_0=Griffes aiguisées
-m.AbilBonusTaming4_1=+2 Dommages
-m.TamingGoreChance=[[RED]]Chances de Morsure: [[YELLOW]]{0}%
-m.SkillWoodCutting=BÛCHERONNAGE
-m.XPGainWoodCutting=Abattre des arbres
-m.EffectsWoodCutting1_0=L'abatteur d'arbres (capacité spéciale)
-m.EffectsWoodCutting1_1=Faire exploser les arbres
-m.EffectsWoodCutting2_0=Souffleur de feuilles
-m.EffectsWoodCutting2_1=Détruire plus de feuilles
-m.EffectsWoodCutting3_0=Double Butin
-m.EffectsWoodCutting3_1=Double le butin normal
-m.AbilLockWoodCutting1=Débloqué au niveau 100 (Souffleur de feuilles)
-m.AbilBonusWoodCutting1_0=Soufler les feuilles
-m.AbilBonusWoodCutting1_1=Détruire plus de feuilles
-m.WoodCuttingDoubleDropChance=[[RED]]Chance de double butin: [[YELLOW]]{0}%
-m.WoodCuttingTreeFellerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
-m.SkillArchery=TIR À L'ARC
-m.XPGainArchery=Attaquer les monstres
-m.EffectsArchery1_0=Allumage
-m.EffectsArchery1_1=25% de chances que l'ennemi s'enflamme
-m.EffectsArchery2_0=Étourdir (les joueurs)
-m.EffectsArchery2_1=Étourdi les joueurs
-m.EffectsArchery3_0=Dégâts+
-m.EffectsArchery3_1=Augmente les dégâts
-m.EffectsArchery4_0=Récupération de flèches
-m.EffectsArchery4_1=Chances de récupérer vos flèches sur un cadavre
-m.ArcheryDazeChance=[[RED]]Chances d'étourdir : [[YELLOW]]{0}%
-m.ArcheryRetrieveChance=[[RED]]Chances de récupération des flèches : [[YELLOW]]{0}%
-m.ArcheryIgnitionLength=[[RED]]Durée du feu : [[YELLOW]]{0} secondes
-m.ArcheryDamagePlus=[[RED]]Dégâts+ (Rang {0}): [[YELLOW]]Bonus de {0} dommages
-m.SkillAxes=HACHE
-m.XPGainAxes=Attaquer des monstres
-m.EffectsAxes1_0=Fendeur de crânes (capacité spéciale)
-m.EffectsAxes1_1=provoque des dégâts de zone 
-m.EffectsAxes2_0=Coup critiques
-m.EffectsAxes2_1=double les dégâts
-m.EffectsAxes3_0=Maîtrise de la hache (niveau 500)
-m.EffectsAxes3_1=Augmente les dégâts
-m.AbilLockAxes1=Débloqué au niveau 500 (Maîtrise de la hache)
-m.AbilBonusAxes1_0=Maîtrise de la hache
-m.AbilBonusAxes1_1=4 Blessures en bonus
-m.AxesCritChance=[[RED]]Chances de coup critique : [[YELLOW]]{0}%
-m.AxesSkullLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
-m.SkillSwords=ÉPÉE
-m.XPGainSwords=Attaque des monstres
-m.EffectsSwords1_0=Contre-Attaque
-m.EffectsSwords1_1=Renvoie 50% des degats subis
-m.EffectsSwords2_0=Lame crantée (capacité spéciale)
-m.EffectsSwords2_1=25% de dégâts et saignements succesifs.
-m.EffectsSwords3_0=Lame crantée avec saignement+
-m.EffectsSwords3_1=5 saignements
-m.EffectsSwords4_0=Parer
-m.EffectsSwords4_1=Annule les dommages
-m.EffectsSwords5_0=Saignement
-m.EffectsSwords5_1=provoque un saignement répété
-m.SwordsCounterAttChance=[[RED]]Chances de Contre-Attaque : [[YELLOW]]{0}%
-m.SwordsBleedLength=[[RED]]Nombre de saignements : [[YELLOW]]{0}
-m.SwordsBleedChance=[[RED]]Chances de provoquer des saignements : [[YELLOW]]{0} %
-m.SwordsParryChance=[[RED]]Chances de parer : [[YELLOW]]{0} %
-m.SwordsSSLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
-m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 saignement va durer 2 secondes
-m.SkillAcrobatics=ACROBATIE
-m.XPGainAcrobatics=Chuter
-m.EffectsAcrobatics1_0=Roulade
-m.EffectsAcrobatics1_1=Réduit ou annule les dommages
-m.EffectsAcrobatics2_0=Super roulade
-m.EffectsAcrobatics2_1=Roulade deux fois plus efficace
-m.EffectsAcrobatics3_0=Esquive
-m.EffectsAcrobatics3_1=Dommages reduits de moitié
-m.AcrobaticsRollChance=[[RED]]Chances de roulade : [[YELLOW]]{0}%
-m.AcrobaticsGracefulRollChance=[[RED]]Chances de super roulade: [[YELLOW]]{0}%
-m.AcrobaticsDodgeChance=[[RED]]Chances d'esquiver : [[YELLOW]]{0}%
-m.SkillMining=MINAGE
-m.XPGainMining=Miner de la roche et des minerais
-m.EffectsMining1_0=Super Breaker (capacité spéciale)
-m.EffectsMining1_1=Augmente la vitesse et triple les chances de trouver un butin
-m.EffectsMining2_0=Double Butin
-m.EffectsMining2_1=Double le butin normal
-m.MiningDoubleDropChance=[[RED]]Chances de Double Butin: [[YELLOW]]{0}%
-m.MiningSuperBreakerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
-m.SkillRepair=RÉPARATION
-m.XPGainRepair=Réparer des objets
-m.EffectsRepair1_0=Réparer
-m.EffectsRepair1_1=Réparation d'outils & Armures en Fer
-m.EffectsRepair2_0=Maître en réparation
-m.EffectsRepair2_1=Augmente le nombre de réparations possibles
-m.EffectsRepair3_0=Super Réparation
-m.EffectsRepair3_1=Double l'efficacité
-m.EffectsRepair4_0=Réparation du Diamant (requiert niveau {0})
-m.EffectsRepair4_1=Réparation des outils & armures en diamant
-m.RepairRepairMastery=[[RED]]Maître en réparation : [[YELLOW]]{0}% de durabilité restaurée
-m.RepairSuperRepairChance=[[RED]]Chances de Super Réparation : [[YELLOW]]{0}%
-m.SkillUnarmed=MAINS NUES
-m.XPGainUnarmed=Attaquer des monstres sans armes
-m.EffectsUnarmed1_0=Berserk (capacité spéciale)
-m.EffectsUnarmed1_1=+50% de dégâts, brise les matériaux faibles
-m.EffectsUnarmed2_0=Désarmer (les joueurs)
-m.EffectsUnarmed2_1=Vole l'objet que l'ennemi a dans la main
-m.EffectsUnarmed3_0=Apprenti du désarmement
-m.EffectsUnarmed3_1=Plus de dégâts
-m.EffectsUnarmed4_0=Maîtrise du désarmement
-m.EffectsUnarmed4_1=Beaucoup plus de dégâts
-m.EffectsUnarmed5_0=Déviation des flèches
-m.EffectsUnarmed5_1=Dévie les flèches qui vous foncent dessus
-m.AbilLockUnarmed1=Débloqué au niveau 250 (Apprenti du désarmement)
-m.AbilLockUnarmed2=Débloqué au niveau 500 (Maîtrise du désarmement)
-m.AbilBonusUnarmed1_0=Apprenti du désarmement
-m.AbilBonusUnarmed1_1=+2 dégâts
-m.AbilBonusUnarmed2_0=Maîtrise du désarmement
-m.AbilBonusUnarmed2_1=+4 dégâts
-m.UnarmedArrowDeflectChance=[[RED]]Chances dévier les flèches : [[YELLOW]]{0}%
-m.UnarmedDisarmChance=[[RED]]Chances de Désarmer : [[YELLOW]]{0}%
-m.UnarmedBerserkLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
-m.SkillHerbalism=Herboristerie
-m.XPGainHerbalism=Récoler des herbes
-m.EffectsHerbalism1_0=Main verte (capacité spéciale)
-m.EffectsHerbalism1_1=répand la main verte, 3x Butin
-m.EffectsHerbalism2_0=Main verte (Blé)
-m.EffectsHerbalism2_1=Auto-plantes du blé lors de la récolte
-m.EffectsHerbalism3_0=Main verte (Cobblestone)
-m.EffectsHerbalism3_1=Transforme la Cobble en Mossy avec des graines
-m.EffectsHerbalism4_0=Nouriture+
-m.EffectsHerbalism4_1=Modifie la santé reçue via le pain / ragoût
-m.EffectsHerbalism5_0=Double butin (Toutes cultures)
-m.EffectsHerbalism5_1=Double les récoltes
-m.HerbalismGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s
-m.HerbalismGreenThumbChance=[[RED]]Cances d'obtenir la main verte : [[YELLOW]]{0}%
-m.HerbalismGreenThumbStage=[[RED]]Main verte par niveaux : [[YELLOW]] Wheat grows in stage {0}
-m.HerbalismDoubleDropChance=[[RED]]Chances du Double Butin : [[YELLOW]]{0}%
-m.HerbalismFoodPlus=[[RED]]Nourriture+ (Rang {0}): [[YELLOW]]{0} plus nourissant
-m.SkillExcavation=EXCAVATION
-m.XPGainExcavation=Creuser et trouver des trésors
-m.EffectsExcavation1_0=Super broyeur (capacité spéciale)
-m.EffectsExcavation1_1=3x Butin, 3x XP, +Vitesse
-m.EffectsExcavation2_0=Chercheur de trésors
-m.EffectsExcavation2_1=Capacité de trouver un trésor
-m.ExcavationGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s
-mcBlockListener.PlacedAnvil=[[DARK_RED]]Vous avez placé une enclume, Les enclumes peuvent réparer les outils et l'armure.
-mcEntityListener.WolfComesBack=[[DARK_GRAY]]Votre loup revient vers vous...
-mcPlayerListener.AbilitiesOff=Capacité spéciale désactivée
-mcPlayerListener.AbilitiesOn=Capacité spéciale activée
-mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**CAPACITÉ RECHARGÉE**
-mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Acrobatie (/Acrobatics) : 
-mcPlayerListener.ArcherySkill=[[YELLOW]]Tir a l'arc (/Archery) : 
-mcPlayerListener.AxesSkill=[[YELLOW]]Hache (/Axes) : 
-mcPlayerListener.ExcavationSkill=[[YELLOW]]Excavation (/Excavation): 
-mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO godMode désactivé
-mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO godMode activé
-mcPlayerListener.GreenThumb=[[GREEN]]**MAIN VERTE**
-mcPlayerListener.GreenThumbFail=[[RED]]**MAIN VERTE A ECHOUÉ**
-mcPlayerListener.HerbalismSkill=[[YELLOW]]Herboriste (/Herbalism) : 
-mcPlayerListener.MiningSkill=[[YELLOW]]Minage (/Mining): 
-mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Votre point de spawn a été éffacé.
-mcPlayerListener.MyspawnNotExist=[[RED]]Dormez dans un lit pour définir votre point de spawn.
-mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Votre point de spawn a été enregistré ici.
-mcPlayerListener.MyspawnTimeNotice=Vous devez attendre {0}m {1}s avant d'utiliser votre spawn
-mcPlayerListener.NoPermission=Vous n'avez pas les permissions nécessaires.
-mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Si vous n'avez pas accès à une compé, elle ne sera pas affichée ici.
-mcPlayerListener.NotInParty=[[RED]]Vous n'êtes pas dans un groupe.
-mcPlayerListener.InviteSuccess=[[GREEN]]L'invitation a été envoyée avec succès.
-mcPlayerListener.ReceivedInvite1=[[RED]]ALERTE: [[GREEN]]Vous avez reçu une invitation pour le groupe {0} de la part de {1}
-mcPlayerListener.ReceivedInvite2=[[YELLOW]]Tapez [[GREEN]]/{0}[[YELLOW]] pour accepter l'invitation
-mcPlayerListener.InviteAccepted=[[GREEN]]Invite acceptée. Vous avez rejoint le groupe {0}
-mcPlayerListener.NoInvites=[[RED]]Vous n'avez pas d'invitation pour le moment 
-mcPlayerListener.YouAreInParty=[[GREEN]]Vous êtes dans le groupe {0}
-mcPlayerListener.PartyMembers=[[GREEN]]Membres du groupe
-mcPlayerListener.LeftParty=[[RED]]Vous avez quitté le groupe
-mcPlayerListener.JoinedParty=Votre groupe: {0}
-mcPlayerListener.PartyChatOn=Chat de Groupe uniquement [[GREEN]]On
-mcPlayerListener.PartyChatOff=Chat de Groupe uniquement [[RED]]Off
-mcPlayerListener.AdminChatOn=Admin Chat uniquement [[GREEN]]On
-mcPlayerListener.AdminChatOff=Admin Chat uniquement [[RED]]Off
-mcPlayerListener.MOTD=[[BLUE]]Ce serveur fonctionne avec mcMMO {0} [[YELLOW]]/{1}[[BLUE]] pour voir l'aide.
-mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki - [[YELLOW]]Traduit par avalondrey & Misa
-mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: 
-mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
-mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
-mcPlayerListener.RepairSkill=[[YELLOW]]Réparation (/Repair) : 
-mcPlayerListener.SwordsSkill=[[YELLOW]]Epee (/Swords) : 
-mcPlayerListener.TamingSkill=[[YELLOW]]Dressage (/Taming) : 
-mcPlayerListener.UnarmedSkill=[[YELLOW]]Mains nues (/Unarmed) : 
-mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Bucheron (/Woodcutting): 
-mcPlayerListener.YourStats=[[GREEN]]Vos statistiques
-Party.InformedOnJoin={0} [[GREEN]] a rejoint votre groupe
-Party.InformedOnQuit={0} [[GREEN]] a quitté votre groupe
-Skills.YourGreenTerra=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Main verte [[GREEN]]est rechargée
-Skills.YourTreeFeller=[[GREEN]]Votre capacitée spéciale [[YELLOW]]L'abatteur d'arbres [[GREEN]]est rechargée
-Skills.YourSuperBreaker=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Super Breaker[[GREEN]]est rechargée
-Skills.YourSerratedStrikes=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Epee cranté [[GREEN]]est rechargée
-Skills.YourBerserk=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Berserk [[GREEN]]est rechargée
-Skills.YourSkullSplitter=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Fendeur de crânes [[GREEN]]est rechargée
-Skills.YourGigaDrillBreaker=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Super broyeur [[GREEN]]est rechargée
-Skills.TooTired=[[RED]]Vous êtes trop fatigué pour utiliser cette capacité pour l'instant.
-Skills.ReadyHoe=[[GREEN]]**Votre bêche est chargée**
-Skills.LowerHoe=[[GRAY]]Votre bêche s'est déchargée..
-Skills.ReadyAxe=[[GREEN]]**Votre hache est chargée**
-Skills.LowerAxe=[[GRAY]]Votre hache s'est déchargée..
-Skills.ReadyFists=[[GREEN]]**Vos poings sont chargés**
-Skills.LowerFists=[[GRAY]]Vos poings se sont déchargés..
-Skills.ReadyPickAxe=[[GREEN]]**Votre pioche est chargée**
-Skills.LowerPickAxe=[[GRAY]]Votre pioche s'est déchargée..
-Skills.ReadyShovel=[[GREEN]]**Votre pelle est chargée**
-Skills.LowerShovel=[[GRAY]]Votre pelle s'est déchargée..
-Skills.ReadySword=[[GREEN]]**Votre épée est chargée**
-Skills.LowerSword=[[GRAY]]Votre épée s'est déchargée..
-Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
-Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
-Skills.GreenTerraOn=[[GREEN]]**Compétence [[YELLOW]]Main Verte [[GREEN]]activée**
-Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Main verte !
-Skills.TreeFellerOn=[[GREEN]]**Compétence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]activée**
-Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Abatteur d'Arbres !
-Skills.SuperBreakerOn=[[GREEN]]**Compétence [[YELLOW]]Super Breaker [[GREEN]]activée**
-Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Super Breaker !
-Skills.SerratedStrikesOn=[[GREEN]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]activée**
-Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Lame crantée !
-Skills.SkullSplitterOn=[[GREEN]]**Compétence [[YELLOW]]Fendeur de crânes [[GREEN]]activée**
-Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Fendeur de crânes !
-Skills.GigaDrillBreakerOn=[[GREEN]]**Compétence [[YELLOW]]Super Broyeur [[GREEN]]activée**
-Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Super broyeur !
-Skills.GreenTerraOff=[[RED]]**Compétence [[YELLOW]]Main Verte [[GREEN]]terminée**
-Skills.TreeFellerOff=[[RED]]**Compétence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]terminée**
-Skills.SuperBreakerOff=[[RED]]**Compétence [[YELLOW]]Super Breaker [[GREEN]]terminée**
-Skills.SerratedStrikesOff=[[RED]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]terminée**
-Skills.BerserkOff=[[RED]]**Berserk est fini**
-Skills.SkullSplitterOff=[[RED]]**Casseur de tete est fini**
-Skills.GigaDrillBreakerOff=[[RED]]**Super broyeur est fini**
-Skills.TamingUp=[[YELLOW]]La competence du dressage a augmenté de {0}. Total ({1})
-Skills.AcrobaticsUp=[[YELLOW]]La competence acrobatie a augmenté de {0}. Total ({1})
-Skills.ArcheryUp=[[YELLOW]]La competence tir a l'arc a augmenté de {0}. Total ({1})
-Skills.SwordsUp=[[YELLOW]]La competence épée a augmenté de {0}. Total ({1})
-Skills.AxesUp=[[YELLOW]]La competence hache a augmenté de {0}. Total ({1})
-Skills.UnarmedUp=[[YELLOW]]La compétence de combat à mains nues a augmenté de {0}. Total ({1})
-Skills.HerbalismUp=[[YELLOW]]La competence herboriste a augmenté de {0}. Total ({1})
-Skills.MiningUp=[[YELLOW]]La competence minage a augmenté de {0}. Total ({1})
-Skills.WoodcuttingUp=[[YELLOW]]La competence bucherônage a augmenté de {0}. Total ({1})
-Skills.RepairUp=[[YELLOW]]La competence réparation a augmenté de {0}. Total ({1})
-Skills.ExcavationUp=[[YELLOW]]La competence excavation a augmenté de {0}. Total ({1})
-Skills.FeltEasy=[[GRAY]]That felt easy.
-Skills.StackedItems=[[DARK_RED]]Vous ne pouvez pas réparer les objets empilés
-Skills.NeedMore=[[DARK_RED]]Vous devez en avoir plus
-Skills.AdeptDiamond=[[DARK_RED]]Vous n'avez pas encore le niveau nécessaire pour réparer du diamant
-Skills.FullDurability=[[GRAY]]Cet objet est déjà en bonne état.
-Skills.Disarmed=[[DARK_RED]]Vous avez été désarmé !
-mcPlayerListener.SorcerySkill=Sorcery: 
-m.SkillSorcery=SORCERY
-Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]]
-Sorcery.Current_Mana=[[DARK_AQUA]]MP
-Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
-Sorcery.Cost=[[RED]][COST] {0} MP
-Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
-Sorcery.Water.Thunder=THUNDER
-Sorcery.Curative.Self=CURE SELF
-Sorcery.Curative.Other=CURE OTHER
-m.LVL=NIVEAU [[GREEN]]{0} - [[DARK_AQUA]]XP : [[YELLOW]][[[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]]
-Combat.BeastLore=[[GREEN]]**Connaissances des bêtes**
-Combat.BeastLoreOwner=[[DARK_AQUA]]Propriétaire ([[RED]]{0}[[DARK_AQUA]])
-Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/20)
-Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/8)
-mcMMO.Description=[[DARK_AQUA]]Q: QU'EST-CE QUE C'EST ?,[[GOLD]]mcMMO est un plugin RPG [[RED]]OPEN SOURCE[[GOLD]] pour Bukkit créé par [[BLUE]]nossr50,[[GOLD]]mcMMO ajoute beaucoup de compétences dans Minecraft,[[GOLD]]Vous pouvez gagner de l'expérience de différentes façons,[[GOLD]]Vous devriez taper [[GREEN]]/NOM_COMPETENCE[[GOLD]] pour en savoir plus.,[[DARK_AQUA]]Q: QU'EST-CE QUE ÇA FAIT?,[[GOLD]]Par exemple... en [[DARK_AQUA]]Minant[[GOLD]] Vous allez recevoir des bénéfices comme,[[RED]]le Double Butin[[GOLD]] ou la compétence [[RED]]Super Breaker[[GOLD]] qui lorsqu'elle est,[[GOLD]]activée avec clique droit permet de miner vite, sa durée,[[GOLD]]dépend du niveau de votre compétence. Améliorer [[BLUE]]Le Minage,[[GOLD]]Est aussi simple que de mine des ressources précieuses !,[[DARK_AQUA]]Q: QU'EST-CE QUE ÇA VEUT DIRE ?,[[GOLD]]Presque toutes les compétences dans [[GREEN]]mcMMO[[GOLD]] Sont des nouveaux trucs cools!.,[[GOLD]]Tapez [[GREEN]]/{0}[[GOLD]] pour trouver les commandes,[[GOLD]]Le but de mcMMO est de créer une expérience RPG de qualité.,[[DARK_AQUA]]Q: OÙ JE PEUX SUGGÉRER DES IDÉES !?,[[DARK_AQUA]]bit.ly/MCmmoIDEA,[[DARK_AQUA]]Q: COMMENT JE FAIS CI ET ÇA?,[[RED]]MERCI [[GOLD]]d'aller voir le wiki ! [[DARK_AQUA]]mcmmo.wikia.com
-Party.Locked=[[RED]]Party is locked, only party leader may invite.
-Party.IsntLocked=[[GRAY]]Party is not locked
-Party.Unlocked=[[GRAY]]Party is unlocked
-Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit
-Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password>
-Party.Help3=[[RED]]Consult /{0} ? for more information
-Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit
-Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock
-Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock
-Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password>
-Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player>
-Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player>
-Party.NotOwner=[[DARK_RED]]You are not the party owner
-Party.InvalidName=[[DARK_RED]]That is not a valid party name
-Party.PasswordSet=[[GREEN]]Party password set to {0}
-Party.CouldNotKick=[[DARK_RED]]Could not kick player {0}
-Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
-Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0}
-Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
-Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
-Commands.xprate.proper3=[[RED]]Enter true or false for the second value
-Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
-Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
-Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
-Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
-Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
+Combat.WolfExamine=[[GREEN]]**Vous examinez le loup avec le Beast Lore**
+Combat.WolfShowMaster=[[DARK_GREEN]]Le Maître des bêtes \: {0}
+Combat.Ignition=[[RED]]**ALLUMAGE**
+Combat.BurningArrowHit=[[DARK_RED]]Vous avez été frappé par une flèche brûlante\!
+Combat.TouchedFuzzy=[[DARK_RED]]Vous voyez flou. Vous vous sentez étourdi.
+Combat.TargetDazed=La cible a été [[DARK_RED]]Étourdi
+Combat.WolfNoMaster=[[GRAY]]Cette bête n'a pas de maître...
+Combat.WolfHealth=[[GREEN]]Cette bête a {0} points de vie 
+Combat.StruckByGore=[[RED]]**FRAPPÉ JUSQU'AU SANG**
+Combat.Gore=[[GREEN]]**SANG**
+Combat.ArrowDeflect=[[WHITE]]**FLÈCHE DEVIÉE**
+Item.ChimaeraWingFail=**CHIMAERA WING a échoué \!**
+Item.ChimaeraWingPass=**CHIMAERA WING**
+Item.InjuredWait=Vous avez été blessé récemment et vous devez attendre pour utiliser ça. [[YELLOW]]({0}s)
+Item.NeedFeathers=[[GRAY]]Vous avez besoin de plus de plumes..
+m.mccPartyCommands=[[GREEN]]--COMMANDES GROUPE--
+m.mccParty=[party name] [[RED]]- Créer / Rejoindre un groupe
+m.mccPartyQ=[[RED]]- Vous quitter la partie en cours
+m.mccPartyToggle=[[RED]] - Active le Chat de groupe
+m.mccPartyInvite=[player name] [[RED]]- Envoyer une invitation
+m.mccPartyAccept=[[RED]]- Accepter l'invitation
+m.mccPartyTeleport=[party member name] [[RED]]- Vous téléporte à un membre du groupe
+m.mccOtherCommands=[[GREEN]]--AUTRES COMMANDES--
+m.mccStats=- Voir vos statistiques
+m.mccLeaderboards=- Classements
+m.mccMySpawn=- Vous téléporte à votre spawn
+m.mccClearMySpawn=- Éfface votre point de spawn
+m.mccToggleAbility=- Active les capacités spéciales avec clic droit
+m.mccAdminToggle=- Active le chat admin
+m.mccWhois=[playername] [[RED]]- Voir les infos détaillées du joueur
+m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifier 
+m.mccMcGod=- Mode dieu
+m.mccSkillInfo=[skillname] [[RED]]- Afficher des informations détaillées d'une compétence
+m.mccModDescription=[[RED]]- Affiche la description de mcMMO
+m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
+m.XPGain=[[DARK_GRAY]]POUR GAGNER DE l'XP: [[WHITE]]{0}
+m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
+m.AbilityLockTemplate=[[GRAY]]{0}
+m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
+m.Effects=EFFETS
+m.YourStats=VOS STATS
+m.SkillTaming=DRESSAGE
+m.XPGainTaming=Attaquer avec un loup
+m.EffectsTaming1_0=Connaissance des bêtes
+m.EffectsTaming1_1=Inspecte un loup avec un os
+m.EffectsTaming2_0=Morsures
+m.EffectsTaming2_1=Des coups critiques lors d'une morsure
+m.EffectsTaming3_0=Griffes aiguisées
+m.EffectsTaming3_1=Bonus de dégâts
+m.EffectsTaming4_0=Conscient de l'environnement
+m.EffectsTaming4_1=Resistance aux Cactus, à la lave et aux chutes.
+m.EffectsTaming5_0=Epaisse fourrure
+m.EffectsTaming5_1=Réduction dégâts, Résistance au feu
+m.EffectsTaming6_0=Résistance aux chocs
+m.EffectsTaming6_1=Réduction des dommages explosifs
+m.AbilLockTaming1=Débloqué au niveau 100 (Conscient de l'environnement)
+m.AbilLockTaming2=Débloqué au niveau 250 (Épaisse fourrure)
+m.AbilLockTaming3=Débloqué au niveau 500 (Résistance aux chocs)
+m.AbilLockTaming4=Débloqué au niveau 750 (Griffes aiguisées)
+m.AbilBonusTaming1_0=Conscient de l'environnement
+m.AbilBonusTaming1_1=Le loup évite le danger
+m.AbilBonusTaming2_0=Epaisse fourrure
+m.AbilBonusTaming2_1=Réduit de moitié les dommages \+ résistance au feu
+m.AbilBonusTaming3_0=Résistance aux chocs
+m.AbilBonusTaming3_1=divise par 6 les dégats d'explosions
+m.AbilBonusTaming4_0=Griffes aiguisées
+m.AbilBonusTaming4_1=+2 Dommages
+m.TamingGoreChance=[[RED]]Chances de Morsure: [[YELLOW]]{0}%
+m.SkillWoodCutting=BÛCHERONNAGE
+m.XPGainWoodCutting=Abattre des arbres
+m.EffectsWoodCutting1_0=L'abatteur d'arbres (capacité spéciale)
+m.EffectsWoodCutting1_1=Faire exploser les arbres
+m.EffectsWoodCutting2_0=Souffleur de feuilles
+m.EffectsWoodCutting2_1=Détruire plus de feuilles
+m.EffectsWoodCutting3_0=Double Butin
+m.EffectsWoodCutting3_1=Double le butin normal
+m.AbilLockWoodCutting1=Débloqué au niveau 100 (Souffleur de feuilles)
+m.AbilBonusWoodCutting1_0=Soufler les feuilles
+m.AbilBonusWoodCutting1_1=Détruire plus de feuilles
+m.WoodCuttingDoubleDropChance=[[RED]]Chance de double butin: [[YELLOW]]{0}%
+m.WoodCuttingTreeFellerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
+m.SkillArchery=TIR À L'ARC
+m.XPGainArchery=Attaquer les monstres
+m.EffectsArchery1_0=Allumage
+m.EffectsArchery1_1=25% de chances que l'ennemi s'enflamme
+m.EffectsArchery2_0=Étourdir (les joueurs)
+m.EffectsArchery2_1=Étourdi les joueurs
+m.EffectsArchery3_0=Dégâts+
+m.EffectsArchery3_1=Augmente les dégâts
+m.EffectsArchery4_0=Récupération de flèches
+m.EffectsArchery4_1=Chances de récupérer vos flèches sur un cadavre
+m.ArcheryDazeChance=[[RED]]Chances d'étourdir : [[YELLOW]]{0}%
+m.ArcheryRetrieveChance=[[RED]]Chances de récupération des flèches : [[YELLOW]]{0}%
+m.ArcheryIgnitionLength=[[RED]]Durée du feu : [[YELLOW]]{0} secondes
+m.ArcheryDamagePlus=[[RED]]Dégâts+ (Rang {0}): [[YELLOW]]Bonus de {0} dommages
+m.SkillAxes=HACHE
+m.XPGainAxes=Attaquer des monstres
+m.EffectsAxes1_0=Fendeur de crânes (capacité spéciale)
+m.EffectsAxes1_1=provoque des dégâts de zone 
+m.EffectsAxes2_0=Coup critiques
+m.EffectsAxes2_1=double les dégâts
+m.EffectsAxes3_0=Maîtrise de la hache (niveau 500)
+m.EffectsAxes3_1=Augmente les dégâts
+m.AbilLockAxes1=Débloqué au niveau 500 (Maîtrise de la hache)
+m.AbilBonusAxes1_0=Maîtrise de la hache
+m.AbilBonusAxes1_1=4 Blessures en bonus
+m.AxesCritChance=[[RED]]Chances de coup critique : [[YELLOW]]{0}%
+m.AxesSkullLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
+m.SkillSwords=ÉPÉE
+m.XPGainSwords=Attaque des monstres
+m.EffectsSwords1_0=Contre-Attaque
+m.EffectsSwords1_1=Renvoie 50% des degats subis
+m.EffectsSwords2_0=Lame crantée (capacité spéciale)
+m.EffectsSwords2_1=25% de dégâts et saignements succesifs.
+m.EffectsSwords3_0=Lame crantée avec saignement+
+m.EffectsSwords3_1=5 saignements
+m.EffectsSwords4_0=Parer
+m.EffectsSwords4_1=Annule les dommages
+m.EffectsSwords5_0=Saignement
+m.EffectsSwords5_1=provoque un saignement répété
+m.SwordsCounterAttChance=[[RED]]Chances de Contre-Attaque : [[YELLOW]]{0}%
+m.SwordsBleedLength=[[RED]]Nombre de saignements : [[YELLOW]]{0}
+m.SwordsBleedChance=[[RED]]Chances de provoquer des saignements : [[YELLOW]]{0} %
+m.SwordsParryChance=[[RED]]Chances de parer : [[YELLOW]]{0} %
+m.SwordsSSLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
+m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 saignement va durer 2 secondes
+m.SkillAcrobatics=ACROBATIE
+m.XPGainAcrobatics=Chuter
+m.EffectsAcrobatics1_0=Roulade
+m.EffectsAcrobatics1_1=Réduit ou annule les dommages
+m.EffectsAcrobatics2_0=Super roulade
+m.EffectsAcrobatics2_1=Roulade deux fois plus efficace
+m.EffectsAcrobatics3_0=Esquive
+m.EffectsAcrobatics3_1=Dommages reduits de moitié
+m.AcrobaticsRollChance=[[RED]]Chances de roulade : [[YELLOW]]{0}%
+m.AcrobaticsGracefulRollChance=[[RED]]Chances de super roulade: [[YELLOW]]{0}%
+m.AcrobaticsDodgeChance=[[RED]]Chances d'esquiver : [[YELLOW]]{0}%
+m.SkillMining=MINAGE
+m.XPGainMining=Miner de la roche et des minerais
+m.EffectsMining1_0=Super Breaker (capacité spéciale)
+m.EffectsMining1_1=Augmente la vitesse et triple les chances de trouver un butin
+m.EffectsMining2_0=Double Butin
+m.EffectsMining2_1=Double le butin normal
+m.MiningDoubleDropChance=[[RED]]Chances de Double Butin: [[YELLOW]]{0}%
+m.MiningSuperBreakerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
+m.SkillRepair=RÉPARATION
+m.XPGainRepair=Réparer des objets
+m.EffectsRepair1_0=Réparer
+m.EffectsRepair1_1=Réparation d'outils & Armures en Fer
+m.EffectsRepair2_0=Maître en réparation
+m.EffectsRepair2_1=Augmente le nombre de réparations possibles
+m.EffectsRepair3_0=Super Réparation
+m.EffectsRepair3_1=Double l'efficacité
+m.EffectsRepair4_0=Réparation du Diamant (requiert niveau {0})
+m.EffectsRepair4_1=Réparation des outils & armures en diamant
+m.RepairRepairMastery=[[RED]]Maître en réparation : [[YELLOW]]{0}% de durabilité restaurée
+m.RepairSuperRepairChance=[[RED]]Chances de Super Réparation : [[YELLOW]]{0}%
+m.SkillUnarmed=MAINS NUES
+m.XPGainUnarmed=Attaquer des monstres sans armes
+m.EffectsUnarmed1_0=Berserk (capacité spéciale)
+m.EffectsUnarmed1_1=+50% de dégâts, brise les matériaux faibles
+m.EffectsUnarmed2_0=Désarmer (les joueurs)
+m.EffectsUnarmed2_1=Vole l'objet que l'ennemi a dans la main
+m.EffectsUnarmed3_0=Apprenti du désarmement
+m.EffectsUnarmed3_1=Plus de dégâts
+m.EffectsUnarmed4_0=Maîtrise du désarmement
+m.EffectsUnarmed4_1=Beaucoup plus de dégâts
+m.EffectsUnarmed5_0=Déviation des flèches
+m.EffectsUnarmed5_1=Dévie les flèches qui vous foncent dessus
+m.AbilLockUnarmed1=Débloqué au niveau 250 (Apprenti du désarmement)
+m.AbilLockUnarmed2=Débloqué au niveau 500 (Maîtrise du désarmement)
+m.AbilBonusUnarmed1_0=Apprenti du désarmement
+m.AbilBonusUnarmed1_1=+2 dégâts
+m.AbilBonusUnarmed2_0=Maîtrise du désarmement
+m.AbilBonusUnarmed2_1=+4 dégâts
+m.UnarmedArrowDeflectChance=[[RED]]Chances dévier les flèches : [[YELLOW]]{0}%
+m.UnarmedDisarmChance=[[RED]]Chances de Désarmer : [[YELLOW]]{0}%
+m.UnarmedBerserkLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
+m.SkillHerbalism=Herboristerie
+m.XPGainHerbalism=Récoler des herbes
+m.EffectsHerbalism1_0=Main verte (capacité spéciale)
+m.EffectsHerbalism1_1=répand la main verte, 3x Butin
+m.EffectsHerbalism2_0=Main verte (Blé)
+m.EffectsHerbalism2_1=Auto-plantes du blé lors de la récolte
+m.EffectsHerbalism3_0=Main verte (Cobblestone)
+m.EffectsHerbalism3_1=Transforme la Cobble en Mossy avec des graines
+m.EffectsHerbalism4_0=Nouriture+
+m.EffectsHerbalism4_1=Modifie la santé reçue via le pain / ragoût
+m.EffectsHerbalism5_0=Double butin (Toutes cultures)
+m.EffectsHerbalism5_1=Double les récoltes
+m.HerbalismGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s
+m.HerbalismGreenThumbChance=[[RED]]Cances d'obtenir la main verte : [[YELLOW]]{0}%
+m.HerbalismGreenThumbStage=[[RED]]Main verte par niveaux : [[YELLOW]] Wheat grows in stage {0}
+m.HerbalismDoubleDropChance=[[RED]]Chances du Double Butin : [[YELLOW]]{0}%
+m.HerbalismFoodPlus=[[RED]]Nourriture+ (Rang {0}): [[YELLOW]]{0} plus nourissant
+m.SkillExcavation=EXCAVATION
+m.XPGainExcavation=Creuser et trouver des trésors
+m.EffectsExcavation1_0=Super broyeur (capacité spéciale)
+m.EffectsExcavation1_1=3x Butin, 3x XP, +Vitesse
+m.EffectsExcavation2_0=Chercheur de trésors
+m.EffectsExcavation2_1=Capacité de trouver un trésor
+m.ExcavationGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s
+mcBlockListener.PlacedAnvil=[[DARK_RED]]Vous avez placé une enclume, Les enclumes peuvent réparer les outils et l'armure.
+mcEntityListener.WolfComesBack=[[DARK_GRAY]]Votre loup revient vers vous...
+mcPlayerListener.AbilitiesOff=Capacité spéciale désactivée
+mcPlayerListener.AbilitiesOn=Capacité spéciale activée
+mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**CAPACITÉ RECHARGÉE**
+mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Acrobatie (/Acrobatics) : 
+mcPlayerListener.ArcherySkill=[[YELLOW]]Tir a l'arc (/Archery) : 
+mcPlayerListener.AxesSkill=[[YELLOW]]Hache (/Axes) : 
+mcPlayerListener.ExcavationSkill=[[YELLOW]]Excavation (/Excavation): 
+mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO godMode désactivé
+mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO godMode activé
+mcPlayerListener.GreenThumb=[[GREEN]]**MAIN VERTE**
+mcPlayerListener.GreenThumbFail=[[RED]]**MAIN VERTE A ECHOUÉ**
+mcPlayerListener.HerbalismSkill=[[YELLOW]]Herboriste (/Herbalism) : 
+mcPlayerListener.MiningSkill=[[YELLOW]]Minage (/Mining): 
+mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Votre point de spawn a été éffacé.
+mcPlayerListener.MyspawnNotExist=[[RED]]Dormez dans un lit pour définir votre point de spawn.
+mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Votre point de spawn a été enregistré ici.
+mcPlayerListener.MyspawnTimeNotice=Vous devez attendre {0}m {1}s avant d'utiliser votre spawn
+mcPlayerListener.NoPermission=Vous n'avez pas les permissions nécessaires.
+mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Si vous n'avez pas accès à une compé, elle ne sera pas affichée ici.
+mcPlayerListener.NotInParty=[[RED]]Vous n'êtes pas dans un groupe.
+mcPlayerListener.InviteSuccess=[[GREEN]]L'invitation a été envoyée avec succès.
+mcPlayerListener.ReceivedInvite1=[[RED]]ALERTE: [[GREEN]]Vous avez reçu une invitation pour le groupe {0} de la part de {1}
+mcPlayerListener.ReceivedInvite2=[[YELLOW]]Tapez [[GREEN]]/{0}[[YELLOW]] pour accepter l'invitation
+mcPlayerListener.InviteAccepted=[[GREEN]]Invite acceptée. Vous avez rejoint le groupe {0}
+mcPlayerListener.NoInvites=[[RED]]Vous n'avez pas d'invitation pour le moment 
+mcPlayerListener.YouAreInParty=[[GREEN]]Vous êtes dans le groupe {0}
+mcPlayerListener.PartyMembers=[[GREEN]]Membres du groupe
+mcPlayerListener.LeftParty=[[RED]]Vous avez quitté le groupe
+mcPlayerListener.JoinedParty=Votre groupe: {0}
+mcPlayerListener.PartyChatOn=Chat de Groupe uniquement [[GREEN]]On
+mcPlayerListener.PartyChatOff=Chat de Groupe uniquement [[RED]]Off
+mcPlayerListener.AdminChatOn=Admin Chat uniquement [[GREEN]]On
+mcPlayerListener.AdminChatOff=Admin Chat uniquement [[RED]]Off
+mcPlayerListener.MOTD=[[BLUE]]Ce serveur fonctionne avec mcMMO {0} [[YELLOW]]/{1}[[BLUE]] pour voir l'aide.
+mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki - [[YELLOW]]Traduit par avalondrey & Misa
+mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: 
+mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
+mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
+mcPlayerListener.RepairSkill=[[YELLOW]]Réparation (/Repair) : 
+mcPlayerListener.SwordsSkill=[[YELLOW]]Epee (/Swords) : 
+mcPlayerListener.TamingSkill=[[YELLOW]]Dressage (/Taming) : 
+mcPlayerListener.UnarmedSkill=[[YELLOW]]Mains nues (/Unarmed) : 
+mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Bucheron (/Woodcutting): 
+mcPlayerListener.YourStats=[[GREEN]]Vos statistiques
+Party.InformedOnJoin={0} [[GREEN]] a rejoint votre groupe
+Party.InformedOnQuit={0} [[GREEN]] a quitté votre groupe
+Skills.YourGreenTerra=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Main verte [[GREEN]]est rechargée
+Skills.YourTreeFeller=[[GREEN]]Votre capacitée spéciale [[YELLOW]]L'abatteur d'arbres [[GREEN]]est rechargée
+Skills.YourSuperBreaker=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Super Breaker[[GREEN]]est rechargée
+Skills.YourSerratedStrikes=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Epee cranté [[GREEN]]est rechargée
+Skills.YourBerserk=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Berserk [[GREEN]]est rechargée
+Skills.YourSkullSplitter=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Fendeur de crânes [[GREEN]]est rechargée
+Skills.YourGigaDrillBreaker=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Super broyeur [[GREEN]]est rechargée
+Skills.TooTired=[[RED]]Vous êtes trop fatigué pour utiliser cette capacité pour l'instant.
+Skills.ReadyHoe=[[GREEN]]**Votre bêche est chargée**
+Skills.LowerHoe=[[GRAY]]Votre bêche s'est déchargée..
+Skills.ReadyAxe=[[GREEN]]**Votre hache est chargée**
+Skills.LowerAxe=[[GRAY]]Votre hache s'est déchargée..
+Skills.ReadyFists=[[GREEN]]**Vos poings sont chargés**
+Skills.LowerFists=[[GRAY]]Vos poings se sont déchargés..
+Skills.ReadyPickAxe=[[GREEN]]**Votre pioche est chargée**
+Skills.LowerPickAxe=[[GRAY]]Votre pioche s'est déchargée..
+Skills.ReadyShovel=[[GREEN]]**Votre pelle est chargée**
+Skills.LowerShovel=[[GRAY]]Votre pelle s'est déchargée..
+Skills.ReadySword=[[GREEN]]**Votre épée est chargée**
+Skills.LowerSword=[[GRAY]]Votre épée s'est déchargée..
+Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
+Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
+Skills.GreenTerraOn=[[GREEN]]**Compétence [[YELLOW]]Main Verte [[GREEN]]activée**
+Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Main verte !
+Skills.TreeFellerOn=[[GREEN]]**Compétence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]activée**
+Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Abatteur d'Arbres !
+Skills.SuperBreakerOn=[[GREEN]]**Compétence [[YELLOW]]Super Breaker [[GREEN]]activée**
+Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Super Breaker !
+Skills.SerratedStrikesOn=[[GREEN]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]activée**
+Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Lame crantée !
+Skills.SkullSplitterOn=[[GREEN]]**Compétence [[YELLOW]]Fendeur de crânes [[GREEN]]activée**
+Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Fendeur de crânes !
+Skills.GigaDrillBreakerOn=[[GREEN]]**Compétence [[YELLOW]]Super Broyeur [[GREEN]]activée**
+Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Super broyeur !
+Skills.GreenTerraOff=[[RED]]**Compétence [[YELLOW]]Main Verte [[GREEN]]terminée**
+Skills.TreeFellerOff=[[RED]]**Compétence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]terminée**
+Skills.SuperBreakerOff=[[RED]]**Compétence [[YELLOW]]Super Breaker [[GREEN]]terminée**
+Skills.SerratedStrikesOff=[[RED]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]terminée**
+Skills.BerserkOff=[[RED]]**Berserk est fini**
+Skills.SkullSplitterOff=[[RED]]**Casseur de tete est fini**
+Skills.GigaDrillBreakerOff=[[RED]]**Super broyeur est fini**
+Skills.TamingUp=[[YELLOW]]La competence du dressage a augmenté de {0}. Total ({1})
+Skills.AcrobaticsUp=[[YELLOW]]La competence acrobatie a augmenté de {0}. Total ({1})
+Skills.ArcheryUp=[[YELLOW]]La competence tir a l'arc a augmenté de {0}. Total ({1})
+Skills.SwordsUp=[[YELLOW]]La competence épée a augmenté de {0}. Total ({1})
+Skills.AxesUp=[[YELLOW]]La competence hache a augmenté de {0}. Total ({1})
+Skills.UnarmedUp=[[YELLOW]]La compétence de combat à mains nues a augmenté de {0}. Total ({1})
+Skills.HerbalismUp=[[YELLOW]]La competence herboriste a augmenté de {0}. Total ({1})
+Skills.MiningUp=[[YELLOW]]La competence minage a augmenté de {0}. Total ({1})
+Skills.WoodcuttingUp=[[YELLOW]]La competence bucherônage a augmenté de {0}. Total ({1})
+Skills.RepairUp=[[YELLOW]]La competence réparation a augmenté de {0}. Total ({1})
+Skills.ExcavationUp=[[YELLOW]]La competence excavation a augmenté de {0}. Total ({1})
+Skills.FeltEasy=[[GRAY]]That felt easy.
+Skills.StackedItems=[[DARK_RED]]Vous ne pouvez pas réparer les objets empilés
+Skills.NeedMore=[[DARK_RED]]Vous devez en avoir plus
+Skills.AdeptDiamond=[[DARK_RED]]Vous n'avez pas encore le niveau nécessaire pour réparer du diamant
+Skills.FullDurability=[[GRAY]]Cet objet est déjà en bonne état.
+Skills.Disarmed=[[DARK_RED]]Vous avez été désarmé !
+mcPlayerListener.SorcerySkill=Sorcery: 
+m.SkillSorcery=SORCERY
+Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]]
+Sorcery.Current_Mana=[[DARK_AQUA]]MP
+Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
+Sorcery.Cost=[[RED]][COST] {0} MP
+Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
+Sorcery.Water.Thunder=THUNDER
+Sorcery.Curative.Self=CURE SELF
+Sorcery.Curative.Other=CURE OTHER
+m.LVL=NIVEAU [[GREEN]]{0} - [[DARK_AQUA]]XP : [[YELLOW]][[[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]]
+Combat.BeastLore=[[GREEN]]**Connaissances des bêtes**
+Combat.BeastLoreOwner=[[DARK_AQUA]]Propriétaire ([[RED]]{0}[[DARK_AQUA]])
+Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/20)
+Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/8)
+mcMMO.Description=[[DARK_AQUA]]Q: QU'EST-CE QUE C'EST ?,[[GOLD]]mcMMO est un plugin RPG [[RED]]OPEN SOURCE[[GOLD]] pour Bukkit créé par [[BLUE]]nossr50,[[GOLD]]mcMMO ajoute beaucoup de compétences dans Minecraft,[[GOLD]]Vous pouvez gagner de l'expérience de différentes façons,[[GOLD]]Vous devriez taper [[GREEN]]/NOM_COMPETENCE[[GOLD]] pour en savoir plus.,[[DARK_AQUA]]Q: QU'EST-CE QUE ÇA FAIT?,[[GOLD]]Par exemple... en [[DARK_AQUA]]Minant[[GOLD]] Vous allez recevoir des bénéfices comme,[[RED]]le Double Butin[[GOLD]] ou la compétence [[RED]]Super Breaker[[GOLD]] qui lorsqu'elle est,[[GOLD]]activée avec clique droit permet de miner vite, sa durée,[[GOLD]]dépend du niveau de votre compétence. Améliorer [[BLUE]]Le Minage,[[GOLD]]Est aussi simple que de mine des ressources précieuses !,[[DARK_AQUA]]Q: QU'EST-CE QUE ÇA VEUT DIRE ?,[[GOLD]]Presque toutes les compétences dans [[GREEN]]mcMMO[[GOLD]] Sont des nouveaux trucs cools!.,[[GOLD]]Tapez [[GREEN]]/{0}[[GOLD]] pour trouver les commandes,[[GOLD]]Le but de mcMMO est de créer une expérience RPG de qualité.,[[DARK_AQUA]]Q: OÙ JE PEUX SUGGÉRER DES IDÉES !?,[[DARK_AQUA]]bit.ly/MCmmoIDEA,[[DARK_AQUA]]Q: COMMENT JE FAIS CI ET ÇA?,[[RED]]MERCI [[GOLD]]d'aller voir le wiki ! [[DARK_AQUA]]mcmmo.wikia.com
+Party.Locked=[[RED]]Party is locked, only party leader may invite.
+Party.IsntLocked=[[GRAY]]Party is not locked
+Party.Unlocked=[[GRAY]]Party is unlocked
+Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit
+Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password>
+Party.Help3=[[RED]]Consult /{0} ? for more information
+Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit
+Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock
+Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock
+Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password>
+Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player>
+Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player>
+Party.NotOwner=[[DARK_RED]]You are not the party owner
+Party.InvalidName=[[DARK_RED]]That is not a valid party name
+Party.PasswordSet=[[GREEN]]Party password set to {0}
+Party.CouldNotKick=[[DARK_RED]]Could not kick player {0}
+Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
+Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0}
+Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
+Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
+Commands.xprate.proper3=[[RED]]Enter true or false for the second value
+Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
+Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
+Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
+Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
+Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
 Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining

+ 356 - 356
mcMMO/com/gmail/nossr50/locale/locale_nl.properties → src/com/gmail/nossr50/locale/locale_nl.properties

@@ -1,357 +1,357 @@
-# Dutch translation by Pluis65 v1.1
-# To use: Set locale to nl
-# DO NOT EDIT THIS FILE WITH NORMAL NOTEPAD, use Notepad++
-# Verander deze file alleen met Notepad++
-# Geef fouten door aan pluis65@hotmail.com
-# Last official edit: 8-7-2011
-Combat.WolfExamine=[[GREEN]]**Je bekijkt de wolf met Wolfinspectie**
-Combat.WolfShowMaster=[[DARK_GREEN]]Eigenaar van de wolf \: {0}
-Combat.Ignition=[[RED]]**IGNITION**
-Combat.BurningArrowHit=[[DARK_RED]]Je bent geraakt door een brandende pijl\!
-Combat.TouchedFuzzy=[[DARK_RED]]Je raakte Fuzzy aan. Je voelt je duizelig.
-Combat.TargetDazed=Doelwit was [[DARK_RED]]versuft
-Combat.WolfNoMaster=[[GRAY]]Deze wolf heeft geen eigenaar...
-Combat.WolfHealth=[[GREEN]]Deze wolf heeft {0} levens 
-Combat.StruckByGore=[[RED]]**VAST DOOR GESTOLD BLOED**
-Combat.Gore=[[GREEN]]**GESTOLD BLOED**
-Combat.ArrowDeflect=[[WHITE]]**PIJL AFWIJKING**
-Item.ChimaeraWingFail=**CHIMAERA WING MISLUKT\!**
-Item.ChimaeraWingPass=**CHIMAERA WING**
-Item.InjuredWait=Je bent gewond en moet wachten. [[YELLOW]]({0}s)
-Item.NeedFeathers=[[GRAY]]Je hebt meer veren nodig..
-m.mccPartyCommands=[[GREEN]]--PARTY COMMANDOS--
-m.mccParty=[party name] [[RED]]- Maak/Join getypte party
-m.mccPartyQ=[[RED]]- Verlaat je huidige party
-m.mccPartyToggle=[[RED]] - Doe party chat aan/uit
-m.mccPartyInvite=[player name] [[RED]]- Stuur een uitnodiging voor je party
-m.mccPartyAccept=[[RED]]- Accepteer party uitnodiging
-m.mccPartyTeleport=[party member name] [[RED]]- Teleporteer naar je party medelid
-m.mccOtherCommands=[[GREEN]]--ANDERE COMMANDOS--
-m.mccStats=- Laat je levels zien
-m.mccLeaderboards=- Topscores
-m.mccMySpawn=- Teleporteer naar MySpawn
-m.mccClearMySpawn=- Verwijder je MySpawn
-m.mccToggleAbility=- Doe ability activatie aan/uit
-m.mccAdminToggle=- Doe admin chat aan/uit
-m.mccWhois=[playername] [[RED]]- Laat informatie zien over speler
-m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Verander levels
-m.mccMcGod=- God Modus
-m.mccSkillInfo=[skillname] [[RED]]- Laat informatie zien over een skill
-m.mccModDescription=[[RED]]- Lees MOD beschrijving
-m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
-m.XPGain=[[DARK_GRAY]]XP: [[WHITE]]{0}
-m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
-m.AbilityLockTemplate=[[GRAY]]{0}
-m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
-m.Effects=EFFECTEN
-m.YourStats=JOUW STATUS
-m.SkillTaming=TEMMEN
-m.XPGainTaming=Wolven krijgen schade
-m.EffectsTaming1_0=Wolfinspectie
-m.EffectsTaming1_1=Bone-meal inspecteert wolven
-m.EffectsTaming2_0=Gestold bloed
-m.EffectsTaming2_1=Critical Strike zorgt voor bloedingen
-m.EffectsTaming3_0=Scherpere klauwen
-m.EffectsTaming3_1=Geeft meer schade
-m.EffectsTaming4_0=Mileukennis
-m.EffectsTaming4_1=Geen cactus/lava schade, geen falldamage
-m.EffectsTaming5_0=Dikke huis
-m.EffectsTaming5_1=Minder schade, kan tegen vuur
-m.EffectsTaming6_0=Explosieschild
-m.EffectsTaming6_1=Minder explosie schade
-m.AbilLockTaming1=GEBLOKEERD TOT 100+ SKILL (MILIEUKENNIS)
-m.AbilLockTaming2=GEBLOKEERD TOT 250+ SKILL (DIKKE HUIS)
-m.AbilLockTaming3=GEBLOKEERD TOT 500+ SKILL (EXPLOSIESCHILD)
-m.AbilLockTaming4=GEBLOKEERD TOT 750+ SKILL (SCHERPERE KLAUWEN)
-m.AbilBonusTaming1_0=Milieukennis
-m.AbilBonusTaming1_1=Wolven ontwijken gevaar (cactus, lava)
-m.AbilBonusTaming2_0=Dikkere huid
-m.AbilBonusTaming2_1=Halve schade, kan tegen vuur
-m.AbilBonusTaming3_0=Explosieschild
-m.AbilBonusTaming3_1=Explosies geven 1/6 van de normale schade
-m.AbilBonusTaming4_0=Scherpere klauwen
-m.AbilBonusTaming4_1=+2 Schade
-m.TamingGoreChance=[[RED]]Kans op gestold bloed: [[YELLOW]]{0}%
-m.SkillWoodCutting=HOUTHAKKEN
-m.XPGainWoodCutting=Bomen omhakken
-m.EffectsWoodCutting1_0=Tree Feller (ABILITY)
-m.EffectsWoodCutting1_1=Laat bomen deels exploderen
-m.EffectsWoodCutting2_0=Leaf Blower
-m.EffectsWoodCutting2_1=Laat leaves verdwijnen
-m.EffectsWoodCutting3_0=Dubbele Drop
-m.EffectsWoodCutting3_1=Geeft een dubbele drop
-m.AbilLockWoodCutting1=GEBLOKEERD TOT 100+ SKILL (LEAF BLOWER)
-m.AbilBonusWoodCutting1_0=Leaf Blower
-m.AbilBonusWoodCutting1_1=Laat leaves verdwijnen
-m.WoodCuttingDoubleDropChance=[[RED]]Dubbele Drop kans: [[YELLOW]]{0}%
-m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller lengte: [[YELLOW]]{0}s
-m.SkillArchery=BOOGSCHIETEN
-m.XPGainArchery=Schiet op vijanden
-m.EffectsArchery1_0=Brandende pijl
-m.EffectsArchery1_1=25% kans dat een vijand verbrand
-m.EffectsArchery2_0=Verdoof (Players)
-m.EffectsArchery2_1=Gedesorienteerde vijanden
-m.EffectsArchery3_0=Schade+
-m.EffectsArchery3_1=Verhoogt schade
-m.EffectsArchery4_0=Pijlen terugkrijgen
-m.EffectsArchery4_1=Kans dat dode vijanden pijlen droppen
-m.ArcheryDazeChance=[[RED]]Kans op verdoving: [[YELLOW]]{0}%
-m.ArcheryRetrieveChance=[[RED]]Kans om pijlen terug te krijgen: [[YELLOW]]{0}%
-m.ArcheryIgnitionLength=[[RED]]Lengte van Brandende pijl: [[YELLOW]]{0} seconds
-m.ArcheryDamagePlus=[[RED]]Schade+ (Rank{0}): [[YELLOW]]Bonus {0} schade
-m.SkillAxes=BIJLEN
-m.XPGainAxes=Val monsters aan met een bijl
-m.EffectsAxes1_0=Schedelsplijter (ABILITY)
-m.EffectsAxes1_1=Geef schade rond om je heen
-m.EffectsAxes2_0=Critical Strikes
-m.EffectsAxes2_1=Dubbele schade
-m.EffectsAxes3_0=Bijl Master (500 SKILL)
-m.EffectsAxes3_1=Verhoogt schade
-m.AbilLockAxes1=GEBLOKEERD TOT 500+ SKILL (BIJL MASTER)
-m.AbilBonusAxes1_0=Bijl Master
-m.AbilBonusAxes1_1=4 schade extra
-m.AxesCritChance=[[RED]]Kans op Critical Strikes: [[YELLOW]]{0}%
-m.AxesSkullLength=[[RED]]Schedelsplijter lengte: [[YELLOW]]{0}s
-m.SkillSwords=ZWAARDEN
-m.XPGainSwords=Val monsters aan met een zwaard
-m.EffectsSwords1_0=Terugkaats Aanval
-m.EffectsSwords1_1=Kaats 50% van de schade terug
-m.EffectsSwords2_0=Serrated Strikes (ABILITY)
-m.EffectsSwords2_1=25% meer schade, kans op Bloeding+ om je heen
-m.EffectsSwords3_0=Serrated Strikes Bloeding+
-m.EffectsSwords3_1=Kans op extra bloeding bij vijanden
-m.EffectsSwords4_0=Pareren
-m.EffectsSwords4_1=Blokkeer vijandelijke aanval
-m.EffectsSwords5_0=5 Tikken van Bloeding
-m.EffectsSwords5_1=Laat anderen bloeden
-m.SwordsCounterAttChance=[[RED]]Kans op Terugkeer Aanval: [[YELLOW]]{0}%
-m.SwordsBleedLength=[[RED]]Bloeding lengte: [[YELLOW]]{0} ticks
-m.SwordsBleedChance=[[RED]]Kans op Bloeding: [[YELLOW]]{0} %
-m.SwordsParryChance=[[RED]]Kans op Pareren: [[YELLOW]]{0} %
-m.SwordsSSLength=[[RED]]Serrated Strikes lengte: [[YELLOW]]{0}s
-m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 tik per 2 seconden
-m.SkillAcrobatics=ACROBATIEK
-m.XPGainAcrobatics=Vallen
-m.EffectsAcrobatics1_0=Rollen
-m.EffectsAcrobatics1_1=Verminderd of voorkomt schade
-m.EffectsAcrobatics2_0=Perfecte Rol
-m.EffectsAcrobatics2_1=Twee keer zo effectief als Rollen
-m.EffectsAcrobatics3_0=Ontwijken
-m.EffectsAcrobatics3_1=50% minder schade
-m.AcrobaticsRollChance=[[RED]]Kans om te rollen: [[YELLOW]]{0}%
-m.AcrobaticsGracefulRollChance=[[RED]]Kans op Perfecte Rol: [[YELLOW]]{0}%
-m.AcrobaticsDodgeChance=[[RED]]Kans om te ontwijken: [[YELLOW]]{0}%
-m.SkillMining=MIJNBOUW
-m.XPGainMining=Hak steen & erts met een pickaxe
-m.EffectsMining1_0=Super Breeker (ABILITY)
-m.EffectsMining1_1=Hogere snelheid, Kans op 3x drop
-m.EffectsMining2_0=Dubbele Drops
-m.EffectsMining2_1=Dubbele van normale drop
-m.MiningDoubleDropChance=[[RED]]Kans op Dubbele Drop: [[YELLOW]]{0}%
-m.MiningSuperBreakerLength=[[RED]]Super Breeker lengte: [[YELLOW]]{0}s
-m.SkillRepair=REPAREREN
-m.XPGainRepair=Repareer tools en armor
-m.EffectsRepair1_0=Repareer
-m.EffectsRepair1_1=Repareer Iron Tools & Armor
-m.EffectsRepair2_0=Repareer Master
-m.EffectsRepair2_1=Vergroot de reparatiehoeveelheid
-m.EffectsRepair3_0=Super Repareren
-m.EffectsRepair3_1=Dubbel effectief
-m.EffectsRepair4_0=Diamond Repareren ({0}+ SKILL)
-m.EffectsRepair4_1=Repareer Diamond Tools & Armor
-m.RepairRepairMastery=[[RED]]Repareer Master: [[YELLOW]]Extra {0}% durability restored
-m.RepairSuperRepairChance=[[RED]]Kans op Super Repareren: [[YELLOW]]{0}%
-m.SkillUnarmed=ONBEWAPEND
-m.XPGainUnarmed=Val monsters aan met hand
-m.EffectsUnarmed1_0=Onbewapende gek (ABILITY)
-m.EffectsUnarmed1_1=+50% schade, hak zachte materialen weg
-m.EffectsUnarmed2_0=Ontwapen (Players)
-m.EffectsUnarmed2_1=Dropt het wapen van de vijand
-m.EffectsUnarmed3_0=Onbewapende held
-m.EffectsUnarmed3_1=Nog meer schade
-m.EffectsUnarmed4_0=Onbewapende leerling
-m.EffectsUnarmed4_1=Meer schade
-m.EffectsUnarmed5_0=Pijlafwijking
-m.EffectsUnarmed5_1=Laat pijlen afwijken
-m.AbilLockUnarmed1=GEBLOKEERD TOT 250+ SKILL (Onbewapende leerling)
-m.AbilLockUnarmed2=GEBLOKEERD TOT 500+ SKILL (Onbewapende held)
-m.AbilBonusUnarmed1_0=Onbewapende leerling
-m.AbilBonusUnarmed1_1=+2 meer schade
-m.AbilBonusUnarmed2_0=Onbewapende held
-m.AbilBonusUnarmed2_1=+4 meer schade
-m.UnarmedArrowDeflectChance=[[RED]]Kans op Pijlafwijking: [[YELLOW]]{0}%
-m.UnarmedDisarmChance=[[RED]]Kans op Ontwapening: [[YELLOW]]{0}%
-m.UnarmedBerserkLength=[[RED]]Lengte van Onbewapende gek: [[YELLOW]]{0}s
-m.SkillHerbalism=LANDBOUW
-m.XPGainHerbalism=Verzamel kruiden en planten
-m.EffectsHerbalism1_0=Groene Aarde (ABILITY)
-m.EffectsHerbalism1_1=3x meer XP en kans op 3x drop
-m.EffectsHerbalism2_0=Groene vingers (Wheat)
-m.EffectsHerbalism2_1=Plant wheat bij het oogsten
-m.EffectsHerbalism3_0=Groene vingers (Cobble)
-m.EffectsHerbalism3_1=Maakt van cobblestone moss-stone met seeds
-m.EffectsHerbalism4_0=Voedsel+
-m.EffectsHerbalism4_1=Verhoogt de heling van brood en stews
-m.EffectsHerbalism5_0=Dubbele Drop (Alle planten)
-m.EffectsHerbalism5_1=Dubbele drop van planten
-m.HerbalismGreenTerraLength=[[RED]]Groene Aarde lengte: [[YELLOW]]{0}s
-m.HerbalismGreenThumbChance=[[RED]]Kans op Groene vingers: [[YELLOW]]{0}%
-m.HerbalismGreenThumbStage=[[RED]]Groene vingers periode: [[YELLOW]] Wheat groeit in periode {0}
-m.HerbalismDoubleDropChance=[[RED]]Kans op Dubbele Drop: [[YELLOW]]{0}%
-m.HerbalismFoodPlus=[[RED]]Voedsel+ (Rank{0}): [[YELLOW]]Bonus {0} heling
-m.SkillExcavation=UITGRAVING
-m.XPGainExcavation=Graven
-m.EffectsExcavation1_0=Giga Drilboor (ABILITY)
-m.EffectsExcavation1_1=3x drop, 3x XP, hogere snelheid
-m.EffectsExcavation2_0=Schatzoeker
-m.EffectsExcavation2_1=Mogelijkheid om schatten te zoeken
-m.ExcavationGreenTerraLength=[[RED]]Giga Drilboor lengte: [[YELLOW]]{0}s
-mcBlockListener.PlacedAnvil=[[DARK_RED]]Je hebt een aambeeld geplaatst. Hierop kun je tools en armor repareren.
-mcEntityListener.WolfComesBack=[[DARK_GRAY]]Je wolf dribbelt terug naar je...
-mcPlayerListener.AbilitiesOff=Ability activatie is uit
-mcPlayerListener.AbilitiesOn=Ability activatie is aan
-mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES HERLADEN\!**
-mcPlayerListener.AcrobaticsSkill=Acrobatiek: 
-mcPlayerListener.ArcherySkill=Boogschieten:
-mcPlayerListener.AxesSkill=Bijlen: 
-mcPlayerListener.ExcavationSkill=Uitgraving: 
-mcPlayerListener.GodModeDisabled=[[YELLOW]]Godmodus uitgeschakeld
-mcPlayerListener.GodModeEnabled=[[YELLOW]]Godmodus ingeschakeld
-mcPlayerListener.GreenThumb=[[GREEN]]**GROENE VINGERS**
-mcPlayerListener.GreenThumbFail=[[RED]]**GROENE VINNGERS MISLUKT**
-mcPlayerListener.HerbalismSkill=Landbouw: 
-mcPlayerListener.MiningSkill=Mijnbouw: 
-mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn is verwijderd.
-mcPlayerListener.MyspawnNotExist=[[RED]]Plaats Myspawn eerst door op een bed te drukken.
-mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn is geplaatst op je huidige locatie.
-mcPlayerListener.MyspawnTimeNotice=Je moet {0}m {1}s wachten voordat je myspawn kan gebruiken.
-mcPlayerListener.NoPermission=Je hebt geen permissie.
-mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Als je geen toegang hebt tot een skill wordt hij hier niet weergegeven.
-mcPlayerListener.NotInParty=[[RED]]Je zit niet in een party.
-mcPlayerListener.InviteSuccess=[[GREEN]]Uitnodiging succesvol verzonden.
-mcPlayerListener.ReceivedInvite1=[[RED]]BERICHT: [[GREEN]]Je bent uitgenodigd voor de party {0} door {1}
-mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] om de uitnodiging te accepteren.
-mcPlayerListener.InviteAccepted=[[GREEN]]Uitnodiging geaccepteerd. Je bent nu lid van {0}
-mcPlayerListener.NoInvites=[[RED]]Je hebt geen uitnodigingen
-mcPlayerListener.YouAreInParty=[[GREEN]]Je zit in de party {0}
-mcPlayerListener.PartyMembers=[[GREEN]]Party Leden
-mcPlayerListener.LeftParty=[[RED]]Je hebt de party verlaten
-mcPlayerListener.JoinedParty=Lid geworden van: {0}
-mcPlayerListener.PartyChatOn=Alleen Party Chat [[GREEN]]aan
-mcPlayerListener.PartyChatOff=Alleen Party Chat [[RED]]uit
-mcPlayerListener.AdminChatOn=Alleen Admin Chat [[GREEN]]aan
-mcPlayerListener.AdminChatOff=Alleen Admin Chat [[RED]]uit
-mcPlayerListener.MOTD=[[BLUE]]Deze server werkt op mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] voor hulp.
-mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
-mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: 
-mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Highscore--
-mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Highscore--
-mcPlayerListener.RepairSkill=Repareren: 
-mcPlayerListener.SwordsSkill=Zwaarden: 
-mcPlayerListener.TamingSkill=Temmen: 
-mcPlayerListener.UnarmedSkill=Onbewapend: 
-mcPlayerListener.WoodcuttingSkill=Houthakken: 
-mcPlayerListener.YourStats=[[GREEN]][mcMMO] Status
-Party.InformedOnJoin={0} [[GREEN]] heeft je party gejoined
-Party.InformedOnQuit={0} [[GREEN]] heeft je party verlaten
-Skills.YourGreenTerra=[[GREEN]]Je [[YELLOW]]Groene Aarde [[GREEN]]ability is opgeladen!
-Skills.YourTreeFeller=[[GREEN]]Je [[YELLOW]]Tree Feller [[GREEN]]ability is opgeladen!
-Skills.YourSuperBreaker=[[GREEN]]Je [[YELLOW]]Super Breeker [[GREEN]]ability is opgeladen!
-Skills.YourSerratedStrikes=[[GREEN]]Je [[YELLOW]]Serrated Strikes [[GREEN]]ability is opgeladen!
-Skills.YourBerserk=[[GREEN]]Je [[YELLOW]]Onbewapende gek [[GREEN]]ability is opgeladen!
-Skills.YourSkullSplitter=[[GREEN]]Je [[YELLOW]]Schedelsplijter [[GREEN]]ability is opgeladen!
-Skills.YourGigaDrillBreaker=[[GREEN]]Je [[YELLOW]]Giga Drilboor [[GREEN]]ability is opgeladen!
-Skills.TooTired=[[RED]]Je bent te moe om die ability te gebruiken.
-Skills.ReadyHoe=[[GREEN]]**JE TILT JE SCHOFFEL OP**
-Skills.LowerHoe=[[GRAY]]**JE LAAT JE SCHOFFEL ZAKKEN**
-Skills.ReadyAxe=[[GREEN]]**JE TILT JE BIJL OP**
-Skills.LowerAxe=[[GRAY]]**JE LAAT JE BIJL ZAKKEN**
-Skills.ReadyFists=[[GREEN]]**JE BALT JE VUISTEN**
-Skills.LowerFists=[[GRAY]]**JE LAAT JE VUISTEN ZAKKEN**
-Skills.ReadyPickAxe=[[GREEN]]**JE TILT JE PICKAXE OP**
-Skills.LowerPickAxe=[[GRAY]]**JE LAAT JE PICKAXE ZAKKEN**
-Skills.ReadyShovel=[[GREEN]]**JE TILT JE SCHEP OP**
-Skills.LowerShovel=[[GRAY]]**JE LAAT JE SCHEP ZAKKEN**
-Skills.ReadySword=[[GREEN]]**JE TILT JE ZWAARD OP**
-Skills.LowerSword=[[GRAY]]**JE LAAT JE ZWAARD ZAKKEN**
-Skills.BerserkOn=[[GREEN]]**ONBEWAPENDE GEK GEACTIVEERD**
-Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Onbewapende gek!
-Skills.GreenTerraOn=[[GREEN]]**GROENE AARDE GEACTIVEERD**
-Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Groene Aarde!
-Skills.TreeFellerOn=[[GREEN]]**TREE FELLER GEACTIVEERD**
-Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Tree Feller!
-Skills.SuperBreakerOn=[[GREEN]]**SUPER BREEKER GEACTIVEERD**
-Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Super Breeker!
-Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES GEACTIVEERD**
-Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Serrated Strikes!
-Skills.SkullSplitterOn=[[GREEN]]**SCHEDELSPLIJTER GEACTIVEERD**
-Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Schedelsplijter!
-Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILBOOR GEACTIVEERD**
-Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Giga Drilboor!
-Skills.GreenTerraOff=[[RED]]**Groene Aarde is uitgewerkt**
-Skills.TreeFellerOff=[[RED]]**Tree Feller is uitgewerkt**
-Skills.SuperBreakerOff=[[RED]]**Super Breeker is uitgewerkt**
-Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes is uitgewerkt**
-Skills.BerserkOff=[[RED]]**Onbewapende gek is uitgewerkt**
-Skills.SkullSplitterOff=[[RED]]**Schedelsplijter is uitgewerkt**
-Skills.GigaDrillBreakerOff=[[RED]]**Giga Drilboor is uitgewerkt**
-Skills.TamingUp=[[YELLOW]]Temmen skill verhoogt met {0}. Totaal ({1})
-Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill verhoogt met {0}. Total ({1})
-Skills.ArcheryUp=[[YELLOW]]Boogschieten skill verhoogt met {0}. Totaal ({1})
-Skills.SwordsUp=[[YELLOW]]Zwaarden skill verhoogt met {0}. Totaal ({1})
-Skills.AxesUp=[[YELLOW]]Bijlen skill verhoogt met {0}. Totaal ({1})
-Skills.UnarmedUp=[[YELLOW]]Onbewapend skill verhoogt met {0}. Totaal ({1})
-Skills.HerbalismUp=[[YELLOW]]Landbouw skill verhoogt met {0}. Totaal ({1})
-Skills.MiningUp=[[YELLOW]]Mijnbouw skill verhoogt met {0}. Totaal ({1})
-Skills.WoodcuttingUp=[[YELLOW]]Houthakken skill verhoogt met {0}. Totaal ({1})
-Skills.RepairUp=[[YELLOW]]Repareren skill verhoogt met {0}. Totaal ({1})
-Skills.ExcavationUp=[[YELLOW]]Uitgraven skill verhoogt met {0}. Totaal ({1})
-Skills.FeltEasy=[[GRAY]]Dat was makkelijk.
-Skills.StackedItems=[[DARK_RED]]Je kan geen gestackte items repareren
-Skills.NeedMore=[[DARK_RED]]Je hebt te weinig
-Skills.AdeptDiamond=[[DARK_RED]]Je bent niet goed genoeg om diamond te repareren.
-Skills.FullDurability=[[GRAY]]Dat is nog helemaal heel.
-Skills.Disarmed=[[DARK_RED]]Je bent ontwapend!
-mcPlayerListener.SorcerySkill=Tovenarij: 
-m.SkillSorcery=TOVERNARIJ
-Sorcery.HasCast=[[GREEN]]**UITROEPEN VAN**[[GOLD]]
-Sorcery.Current_Mana=[[DARK_AQUA]]MP
-Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
-Sorcery.Cost=[[RED]][COST] {0} MP
-Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Geen Mana meer [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
-Sorcery.Water.Thunder=DONDER
-Sorcery.Curative.Self=HEEL JEZELF
-Sorcery.Curative.Other=HEEL EEN ANDER
-m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
-Combat.BeastLore=[[GREEN]]**WOLFINSPECTIE**
-Combat.BeastLoreOwner=[[DARK_AQUA]]Eigenaar ([[RED]]{0}[[DARK_AQUA]])
-Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Levens ([[GREEN]]{0}[[DARK_AQUA]]/20)
-Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Levens ([[GREEN]]{0}[[DARK_AQUA]]/8)
-mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com
-Party.Locked=[[RED]]Party is locked, only party leader may invite.
-Party.IsntLocked=[[GRAY]]Party is not locked
-Party.Unlocked=[[GRAY]]Party is unlocked
-Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit
-Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password>
-Party.Help3=[[RED]]Consult /{0} ? for more information
-Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit
-Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock
-Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock
-Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password>
-Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player>
-Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player>
-Party.NotOwner=[[DARK_RED]]You are not the party owner
-Party.InvalidName=[[DARK_RED]]That is not a valid party name
-Party.PasswordSet=[[GREEN]]Party password set to {0}
-Party.CouldNotKick=[[DARK_RED]]Could not kick player {0}
-Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
-Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0}
-Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
-Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
-Commands.xprate.proper3=[[RED]]Enter true or false for the second value
-Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
-Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
-Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
-Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
-Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
+# Dutch translation by Pluis65 v1.1
+# To use: Set locale to nl
+# DO NOT EDIT THIS FILE WITH NORMAL NOTEPAD, use Notepad++
+# Verander deze file alleen met Notepad++
+# Geef fouten door aan pluis65@hotmail.com
+# Last official edit: 8-7-2011
+Combat.WolfExamine=[[GREEN]]**Je bekijkt de wolf met Wolfinspectie**
+Combat.WolfShowMaster=[[DARK_GREEN]]Eigenaar van de wolf \: {0}
+Combat.Ignition=[[RED]]**IGNITION**
+Combat.BurningArrowHit=[[DARK_RED]]Je bent geraakt door een brandende pijl\!
+Combat.TouchedFuzzy=[[DARK_RED]]Je raakte Fuzzy aan. Je voelt je duizelig.
+Combat.TargetDazed=Doelwit was [[DARK_RED]]versuft
+Combat.WolfNoMaster=[[GRAY]]Deze wolf heeft geen eigenaar...
+Combat.WolfHealth=[[GREEN]]Deze wolf heeft {0} levens 
+Combat.StruckByGore=[[RED]]**VAST DOOR GESTOLD BLOED**
+Combat.Gore=[[GREEN]]**GESTOLD BLOED**
+Combat.ArrowDeflect=[[WHITE]]**PIJL AFWIJKING**
+Item.ChimaeraWingFail=**CHIMAERA WING MISLUKT\!**
+Item.ChimaeraWingPass=**CHIMAERA WING**
+Item.InjuredWait=Je bent gewond en moet wachten. [[YELLOW]]({0}s)
+Item.NeedFeathers=[[GRAY]]Je hebt meer veren nodig..
+m.mccPartyCommands=[[GREEN]]--PARTY COMMANDOS--
+m.mccParty=[party name] [[RED]]- Maak/Join getypte party
+m.mccPartyQ=[[RED]]- Verlaat je huidige party
+m.mccPartyToggle=[[RED]] - Doe party chat aan/uit
+m.mccPartyInvite=[player name] [[RED]]- Stuur een uitnodiging voor je party
+m.mccPartyAccept=[[RED]]- Accepteer party uitnodiging
+m.mccPartyTeleport=[party member name] [[RED]]- Teleporteer naar je party medelid
+m.mccOtherCommands=[[GREEN]]--ANDERE COMMANDOS--
+m.mccStats=- Laat je levels zien
+m.mccLeaderboards=- Topscores
+m.mccMySpawn=- Teleporteer naar MySpawn
+m.mccClearMySpawn=- Verwijder je MySpawn
+m.mccToggleAbility=- Doe ability activatie aan/uit
+m.mccAdminToggle=- Doe admin chat aan/uit
+m.mccWhois=[playername] [[RED]]- Laat informatie zien over speler
+m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Verander levels
+m.mccMcGod=- God Modus
+m.mccSkillInfo=[skillname] [[RED]]- Laat informatie zien over een skill
+m.mccModDescription=[[RED]]- Lees MOD beschrijving
+m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
+m.XPGain=[[DARK_GRAY]]XP: [[WHITE]]{0}
+m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
+m.AbilityLockTemplate=[[GRAY]]{0}
+m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
+m.Effects=EFFECTEN
+m.YourStats=JOUW STATUS
+m.SkillTaming=TEMMEN
+m.XPGainTaming=Wolven krijgen schade
+m.EffectsTaming1_0=Wolfinspectie
+m.EffectsTaming1_1=Bone-meal inspecteert wolven
+m.EffectsTaming2_0=Gestold bloed
+m.EffectsTaming2_1=Critical Strike zorgt voor bloedingen
+m.EffectsTaming3_0=Scherpere klauwen
+m.EffectsTaming3_1=Geeft meer schade
+m.EffectsTaming4_0=Mileukennis
+m.EffectsTaming4_1=Geen cactus/lava schade, geen falldamage
+m.EffectsTaming5_0=Dikke huis
+m.EffectsTaming5_1=Minder schade, kan tegen vuur
+m.EffectsTaming6_0=Explosieschild
+m.EffectsTaming6_1=Minder explosie schade
+m.AbilLockTaming1=GEBLOKEERD TOT 100+ SKILL (MILIEUKENNIS)
+m.AbilLockTaming2=GEBLOKEERD TOT 250+ SKILL (DIKKE HUIS)
+m.AbilLockTaming3=GEBLOKEERD TOT 500+ SKILL (EXPLOSIESCHILD)
+m.AbilLockTaming4=GEBLOKEERD TOT 750+ SKILL (SCHERPERE KLAUWEN)
+m.AbilBonusTaming1_0=Milieukennis
+m.AbilBonusTaming1_1=Wolven ontwijken gevaar (cactus, lava)
+m.AbilBonusTaming2_0=Dikkere huid
+m.AbilBonusTaming2_1=Halve schade, kan tegen vuur
+m.AbilBonusTaming3_0=Explosieschild
+m.AbilBonusTaming3_1=Explosies geven 1/6 van de normale schade
+m.AbilBonusTaming4_0=Scherpere klauwen
+m.AbilBonusTaming4_1=+2 Schade
+m.TamingGoreChance=[[RED]]Kans op gestold bloed: [[YELLOW]]{0}%
+m.SkillWoodCutting=HOUTHAKKEN
+m.XPGainWoodCutting=Bomen omhakken
+m.EffectsWoodCutting1_0=Tree Feller (ABILITY)
+m.EffectsWoodCutting1_1=Laat bomen deels exploderen
+m.EffectsWoodCutting2_0=Leaf Blower
+m.EffectsWoodCutting2_1=Laat leaves verdwijnen
+m.EffectsWoodCutting3_0=Dubbele Drop
+m.EffectsWoodCutting3_1=Geeft een dubbele drop
+m.AbilLockWoodCutting1=GEBLOKEERD TOT 100+ SKILL (LEAF BLOWER)
+m.AbilBonusWoodCutting1_0=Leaf Blower
+m.AbilBonusWoodCutting1_1=Laat leaves verdwijnen
+m.WoodCuttingDoubleDropChance=[[RED]]Dubbele Drop kans: [[YELLOW]]{0}%
+m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller lengte: [[YELLOW]]{0}s
+m.SkillArchery=BOOGSCHIETEN
+m.XPGainArchery=Schiet op vijanden
+m.EffectsArchery1_0=Brandende pijl
+m.EffectsArchery1_1=25% kans dat een vijand verbrand
+m.EffectsArchery2_0=Verdoof (Players)
+m.EffectsArchery2_1=Gedesorienteerde vijanden
+m.EffectsArchery3_0=Schade+
+m.EffectsArchery3_1=Verhoogt schade
+m.EffectsArchery4_0=Pijlen terugkrijgen
+m.EffectsArchery4_1=Kans dat dode vijanden pijlen droppen
+m.ArcheryDazeChance=[[RED]]Kans op verdoving: [[YELLOW]]{0}%
+m.ArcheryRetrieveChance=[[RED]]Kans om pijlen terug te krijgen: [[YELLOW]]{0}%
+m.ArcheryIgnitionLength=[[RED]]Lengte van Brandende pijl: [[YELLOW]]{0} seconds
+m.ArcheryDamagePlus=[[RED]]Schade+ (Rank{0}): [[YELLOW]]Bonus {0} schade
+m.SkillAxes=BIJLEN
+m.XPGainAxes=Val monsters aan met een bijl
+m.EffectsAxes1_0=Schedelsplijter (ABILITY)
+m.EffectsAxes1_1=Geef schade rond om je heen
+m.EffectsAxes2_0=Critical Strikes
+m.EffectsAxes2_1=Dubbele schade
+m.EffectsAxes3_0=Bijl Master (500 SKILL)
+m.EffectsAxes3_1=Verhoogt schade
+m.AbilLockAxes1=GEBLOKEERD TOT 500+ SKILL (BIJL MASTER)
+m.AbilBonusAxes1_0=Bijl Master
+m.AbilBonusAxes1_1=4 schade extra
+m.AxesCritChance=[[RED]]Kans op Critical Strikes: [[YELLOW]]{0}%
+m.AxesSkullLength=[[RED]]Schedelsplijter lengte: [[YELLOW]]{0}s
+m.SkillSwords=ZWAARDEN
+m.XPGainSwords=Val monsters aan met een zwaard
+m.EffectsSwords1_0=Terugkaats Aanval
+m.EffectsSwords1_1=Kaats 50% van de schade terug
+m.EffectsSwords2_0=Serrated Strikes (ABILITY)
+m.EffectsSwords2_1=25% meer schade, kans op Bloeding+ om je heen
+m.EffectsSwords3_0=Serrated Strikes Bloeding+
+m.EffectsSwords3_1=Kans op extra bloeding bij vijanden
+m.EffectsSwords4_0=Pareren
+m.EffectsSwords4_1=Blokkeer vijandelijke aanval
+m.EffectsSwords5_0=5 Tikken van Bloeding
+m.EffectsSwords5_1=Laat anderen bloeden
+m.SwordsCounterAttChance=[[RED]]Kans op Terugkeer Aanval: [[YELLOW]]{0}%
+m.SwordsBleedLength=[[RED]]Bloeding lengte: [[YELLOW]]{0} ticks
+m.SwordsBleedChance=[[RED]]Kans op Bloeding: [[YELLOW]]{0} %
+m.SwordsParryChance=[[RED]]Kans op Pareren: [[YELLOW]]{0} %
+m.SwordsSSLength=[[RED]]Serrated Strikes lengte: [[YELLOW]]{0}s
+m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 tik per 2 seconden
+m.SkillAcrobatics=ACROBATIEK
+m.XPGainAcrobatics=Vallen
+m.EffectsAcrobatics1_0=Rollen
+m.EffectsAcrobatics1_1=Verminderd of voorkomt schade
+m.EffectsAcrobatics2_0=Perfecte Rol
+m.EffectsAcrobatics2_1=Twee keer zo effectief als Rollen
+m.EffectsAcrobatics3_0=Ontwijken
+m.EffectsAcrobatics3_1=50% minder schade
+m.AcrobaticsRollChance=[[RED]]Kans om te rollen: [[YELLOW]]{0}%
+m.AcrobaticsGracefulRollChance=[[RED]]Kans op Perfecte Rol: [[YELLOW]]{0}%
+m.AcrobaticsDodgeChance=[[RED]]Kans om te ontwijken: [[YELLOW]]{0}%
+m.SkillMining=MIJNBOUW
+m.XPGainMining=Hak steen & erts met een pickaxe
+m.EffectsMining1_0=Super Breeker (ABILITY)
+m.EffectsMining1_1=Hogere snelheid, Kans op 3x drop
+m.EffectsMining2_0=Dubbele Drops
+m.EffectsMining2_1=Dubbele van normale drop
+m.MiningDoubleDropChance=[[RED]]Kans op Dubbele Drop: [[YELLOW]]{0}%
+m.MiningSuperBreakerLength=[[RED]]Super Breeker lengte: [[YELLOW]]{0}s
+m.SkillRepair=REPAREREN
+m.XPGainRepair=Repareer tools en armor
+m.EffectsRepair1_0=Repareer
+m.EffectsRepair1_1=Repareer Iron Tools & Armor
+m.EffectsRepair2_0=Repareer Master
+m.EffectsRepair2_1=Vergroot de reparatiehoeveelheid
+m.EffectsRepair3_0=Super Repareren
+m.EffectsRepair3_1=Dubbel effectief
+m.EffectsRepair4_0=Diamond Repareren ({0}+ SKILL)
+m.EffectsRepair4_1=Repareer Diamond Tools & Armor
+m.RepairRepairMastery=[[RED]]Repareer Master: [[YELLOW]]Extra {0}% durability restored
+m.RepairSuperRepairChance=[[RED]]Kans op Super Repareren: [[YELLOW]]{0}%
+m.SkillUnarmed=ONBEWAPEND
+m.XPGainUnarmed=Val monsters aan met hand
+m.EffectsUnarmed1_0=Onbewapende gek (ABILITY)
+m.EffectsUnarmed1_1=+50% schade, hak zachte materialen weg
+m.EffectsUnarmed2_0=Ontwapen (Players)
+m.EffectsUnarmed2_1=Dropt het wapen van de vijand
+m.EffectsUnarmed3_0=Onbewapende held
+m.EffectsUnarmed3_1=Nog meer schade
+m.EffectsUnarmed4_0=Onbewapende leerling
+m.EffectsUnarmed4_1=Meer schade
+m.EffectsUnarmed5_0=Pijlafwijking
+m.EffectsUnarmed5_1=Laat pijlen afwijken
+m.AbilLockUnarmed1=GEBLOKEERD TOT 250+ SKILL (Onbewapende leerling)
+m.AbilLockUnarmed2=GEBLOKEERD TOT 500+ SKILL (Onbewapende held)
+m.AbilBonusUnarmed1_0=Onbewapende leerling
+m.AbilBonusUnarmed1_1=+2 meer schade
+m.AbilBonusUnarmed2_0=Onbewapende held
+m.AbilBonusUnarmed2_1=+4 meer schade
+m.UnarmedArrowDeflectChance=[[RED]]Kans op Pijlafwijking: [[YELLOW]]{0}%
+m.UnarmedDisarmChance=[[RED]]Kans op Ontwapening: [[YELLOW]]{0}%
+m.UnarmedBerserkLength=[[RED]]Lengte van Onbewapende gek: [[YELLOW]]{0}s
+m.SkillHerbalism=LANDBOUW
+m.XPGainHerbalism=Verzamel kruiden en planten
+m.EffectsHerbalism1_0=Groene Aarde (ABILITY)
+m.EffectsHerbalism1_1=3x meer XP en kans op 3x drop
+m.EffectsHerbalism2_0=Groene vingers (Wheat)
+m.EffectsHerbalism2_1=Plant wheat bij het oogsten
+m.EffectsHerbalism3_0=Groene vingers (Cobble)
+m.EffectsHerbalism3_1=Maakt van cobblestone moss-stone met seeds
+m.EffectsHerbalism4_0=Voedsel+
+m.EffectsHerbalism4_1=Verhoogt de heling van brood en stews
+m.EffectsHerbalism5_0=Dubbele Drop (Alle planten)
+m.EffectsHerbalism5_1=Dubbele drop van planten
+m.HerbalismGreenTerraLength=[[RED]]Groene Aarde lengte: [[YELLOW]]{0}s
+m.HerbalismGreenThumbChance=[[RED]]Kans op Groene vingers: [[YELLOW]]{0}%
+m.HerbalismGreenThumbStage=[[RED]]Groene vingers periode: [[YELLOW]] Wheat groeit in periode {0}
+m.HerbalismDoubleDropChance=[[RED]]Kans op Dubbele Drop: [[YELLOW]]{0}%
+m.HerbalismFoodPlus=[[RED]]Voedsel+ (Rank{0}): [[YELLOW]]Bonus {0} heling
+m.SkillExcavation=UITGRAVING
+m.XPGainExcavation=Graven
+m.EffectsExcavation1_0=Giga Drilboor (ABILITY)
+m.EffectsExcavation1_1=3x drop, 3x XP, hogere snelheid
+m.EffectsExcavation2_0=Schatzoeker
+m.EffectsExcavation2_1=Mogelijkheid om schatten te zoeken
+m.ExcavationGreenTerraLength=[[RED]]Giga Drilboor lengte: [[YELLOW]]{0}s
+mcBlockListener.PlacedAnvil=[[DARK_RED]]Je hebt een aambeeld geplaatst. Hierop kun je tools en armor repareren.
+mcEntityListener.WolfComesBack=[[DARK_GRAY]]Je wolf dribbelt terug naar je...
+mcPlayerListener.AbilitiesOff=Ability activatie is uit
+mcPlayerListener.AbilitiesOn=Ability activatie is aan
+mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES HERLADEN\!**
+mcPlayerListener.AcrobaticsSkill=Acrobatiek: 
+mcPlayerListener.ArcherySkill=Boogschieten:
+mcPlayerListener.AxesSkill=Bijlen: 
+mcPlayerListener.ExcavationSkill=Uitgraving: 
+mcPlayerListener.GodModeDisabled=[[YELLOW]]Godmodus uitgeschakeld
+mcPlayerListener.GodModeEnabled=[[YELLOW]]Godmodus ingeschakeld
+mcPlayerListener.GreenThumb=[[GREEN]]**GROENE VINGERS**
+mcPlayerListener.GreenThumbFail=[[RED]]**GROENE VINNGERS MISLUKT**
+mcPlayerListener.HerbalismSkill=Landbouw: 
+mcPlayerListener.MiningSkill=Mijnbouw: 
+mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn is verwijderd.
+mcPlayerListener.MyspawnNotExist=[[RED]]Plaats Myspawn eerst door op een bed te drukken.
+mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn is geplaatst op je huidige locatie.
+mcPlayerListener.MyspawnTimeNotice=Je moet {0}m {1}s wachten voordat je myspawn kan gebruiken.
+mcPlayerListener.NoPermission=Je hebt geen permissie.
+mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Als je geen toegang hebt tot een skill wordt hij hier niet weergegeven.
+mcPlayerListener.NotInParty=[[RED]]Je zit niet in een party.
+mcPlayerListener.InviteSuccess=[[GREEN]]Uitnodiging succesvol verzonden.
+mcPlayerListener.ReceivedInvite1=[[RED]]BERICHT: [[GREEN]]Je bent uitgenodigd voor de party {0} door {1}
+mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] om de uitnodiging te accepteren.
+mcPlayerListener.InviteAccepted=[[GREEN]]Uitnodiging geaccepteerd. Je bent nu lid van {0}
+mcPlayerListener.NoInvites=[[RED]]Je hebt geen uitnodigingen
+mcPlayerListener.YouAreInParty=[[GREEN]]Je zit in de party {0}
+mcPlayerListener.PartyMembers=[[GREEN]]Party Leden
+mcPlayerListener.LeftParty=[[RED]]Je hebt de party verlaten
+mcPlayerListener.JoinedParty=Lid geworden van: {0}
+mcPlayerListener.PartyChatOn=Alleen Party Chat [[GREEN]]aan
+mcPlayerListener.PartyChatOff=Alleen Party Chat [[RED]]uit
+mcPlayerListener.AdminChatOn=Alleen Admin Chat [[GREEN]]aan
+mcPlayerListener.AdminChatOff=Alleen Admin Chat [[RED]]uit
+mcPlayerListener.MOTD=[[BLUE]]Deze server werkt op mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] voor hulp.
+mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
+mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: 
+mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Highscore--
+mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Highscore--
+mcPlayerListener.RepairSkill=Repareren: 
+mcPlayerListener.SwordsSkill=Zwaarden: 
+mcPlayerListener.TamingSkill=Temmen: 
+mcPlayerListener.UnarmedSkill=Onbewapend: 
+mcPlayerListener.WoodcuttingSkill=Houthakken: 
+mcPlayerListener.YourStats=[[GREEN]][mcMMO] Status
+Party.InformedOnJoin={0} [[GREEN]] heeft je party gejoined
+Party.InformedOnQuit={0} [[GREEN]] heeft je party verlaten
+Skills.YourGreenTerra=[[GREEN]]Je [[YELLOW]]Groene Aarde [[GREEN]]ability is opgeladen!
+Skills.YourTreeFeller=[[GREEN]]Je [[YELLOW]]Tree Feller [[GREEN]]ability is opgeladen!
+Skills.YourSuperBreaker=[[GREEN]]Je [[YELLOW]]Super Breeker [[GREEN]]ability is opgeladen!
+Skills.YourSerratedStrikes=[[GREEN]]Je [[YELLOW]]Serrated Strikes [[GREEN]]ability is opgeladen!
+Skills.YourBerserk=[[GREEN]]Je [[YELLOW]]Onbewapende gek [[GREEN]]ability is opgeladen!
+Skills.YourSkullSplitter=[[GREEN]]Je [[YELLOW]]Schedelsplijter [[GREEN]]ability is opgeladen!
+Skills.YourGigaDrillBreaker=[[GREEN]]Je [[YELLOW]]Giga Drilboor [[GREEN]]ability is opgeladen!
+Skills.TooTired=[[RED]]Je bent te moe om die ability te gebruiken.
+Skills.ReadyHoe=[[GREEN]]**JE TILT JE SCHOFFEL OP**
+Skills.LowerHoe=[[GRAY]]**JE LAAT JE SCHOFFEL ZAKKEN**
+Skills.ReadyAxe=[[GREEN]]**JE TILT JE BIJL OP**
+Skills.LowerAxe=[[GRAY]]**JE LAAT JE BIJL ZAKKEN**
+Skills.ReadyFists=[[GREEN]]**JE BALT JE VUISTEN**
+Skills.LowerFists=[[GRAY]]**JE LAAT JE VUISTEN ZAKKEN**
+Skills.ReadyPickAxe=[[GREEN]]**JE TILT JE PICKAXE OP**
+Skills.LowerPickAxe=[[GRAY]]**JE LAAT JE PICKAXE ZAKKEN**
+Skills.ReadyShovel=[[GREEN]]**JE TILT JE SCHEP OP**
+Skills.LowerShovel=[[GRAY]]**JE LAAT JE SCHEP ZAKKEN**
+Skills.ReadySword=[[GREEN]]**JE TILT JE ZWAARD OP**
+Skills.LowerSword=[[GRAY]]**JE LAAT JE ZWAARD ZAKKEN**
+Skills.BerserkOn=[[GREEN]]**ONBEWAPENDE GEK GEACTIVEERD**
+Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Onbewapende gek!
+Skills.GreenTerraOn=[[GREEN]]**GROENE AARDE GEACTIVEERD**
+Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Groene Aarde!
+Skills.TreeFellerOn=[[GREEN]]**TREE FELLER GEACTIVEERD**
+Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Tree Feller!
+Skills.SuperBreakerOn=[[GREEN]]**SUPER BREEKER GEACTIVEERD**
+Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Super Breeker!
+Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES GEACTIVEERD**
+Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Serrated Strikes!
+Skills.SkullSplitterOn=[[GREEN]]**SCHEDELSPLIJTER GEACTIVEERD**
+Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Schedelsplijter!
+Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILBOOR GEACTIVEERD**
+Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Giga Drilboor!
+Skills.GreenTerraOff=[[RED]]**Groene Aarde is uitgewerkt**
+Skills.TreeFellerOff=[[RED]]**Tree Feller is uitgewerkt**
+Skills.SuperBreakerOff=[[RED]]**Super Breeker is uitgewerkt**
+Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes is uitgewerkt**
+Skills.BerserkOff=[[RED]]**Onbewapende gek is uitgewerkt**
+Skills.SkullSplitterOff=[[RED]]**Schedelsplijter is uitgewerkt**
+Skills.GigaDrillBreakerOff=[[RED]]**Giga Drilboor is uitgewerkt**
+Skills.TamingUp=[[YELLOW]]Temmen skill verhoogt met {0}. Totaal ({1})
+Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill verhoogt met {0}. Total ({1})
+Skills.ArcheryUp=[[YELLOW]]Boogschieten skill verhoogt met {0}. Totaal ({1})
+Skills.SwordsUp=[[YELLOW]]Zwaarden skill verhoogt met {0}. Totaal ({1})
+Skills.AxesUp=[[YELLOW]]Bijlen skill verhoogt met {0}. Totaal ({1})
+Skills.UnarmedUp=[[YELLOW]]Onbewapend skill verhoogt met {0}. Totaal ({1})
+Skills.HerbalismUp=[[YELLOW]]Landbouw skill verhoogt met {0}. Totaal ({1})
+Skills.MiningUp=[[YELLOW]]Mijnbouw skill verhoogt met {0}. Totaal ({1})
+Skills.WoodcuttingUp=[[YELLOW]]Houthakken skill verhoogt met {0}. Totaal ({1})
+Skills.RepairUp=[[YELLOW]]Repareren skill verhoogt met {0}. Totaal ({1})
+Skills.ExcavationUp=[[YELLOW]]Uitgraven skill verhoogt met {0}. Totaal ({1})
+Skills.FeltEasy=[[GRAY]]Dat was makkelijk.
+Skills.StackedItems=[[DARK_RED]]Je kan geen gestackte items repareren
+Skills.NeedMore=[[DARK_RED]]Je hebt te weinig
+Skills.AdeptDiamond=[[DARK_RED]]Je bent niet goed genoeg om diamond te repareren.
+Skills.FullDurability=[[GRAY]]Dat is nog helemaal heel.
+Skills.Disarmed=[[DARK_RED]]Je bent ontwapend!
+mcPlayerListener.SorcerySkill=Tovenarij: 
+m.SkillSorcery=TOVERNARIJ
+Sorcery.HasCast=[[GREEN]]**UITROEPEN VAN**[[GOLD]]
+Sorcery.Current_Mana=[[DARK_AQUA]]MP
+Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
+Sorcery.Cost=[[RED]][COST] {0} MP
+Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Geen Mana meer [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
+Sorcery.Water.Thunder=DONDER
+Sorcery.Curative.Self=HEEL JEZELF
+Sorcery.Curative.Other=HEEL EEN ANDER
+m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
+Combat.BeastLore=[[GREEN]]**WOLFINSPECTIE**
+Combat.BeastLoreOwner=[[DARK_AQUA]]Eigenaar ([[RED]]{0}[[DARK_AQUA]])
+Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Levens ([[GREEN]]{0}[[DARK_AQUA]]/20)
+Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Levens ([[GREEN]]{0}[[DARK_AQUA]]/8)
+mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com
+Party.Locked=[[RED]]Party is locked, only party leader may invite.
+Party.IsntLocked=[[GRAY]]Party is not locked
+Party.Unlocked=[[GRAY]]Party is unlocked
+Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit
+Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password>
+Party.Help3=[[RED]]Consult /{0} ? for more information
+Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit
+Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock
+Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock
+Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password>
+Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player>
+Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player>
+Party.NotOwner=[[DARK_RED]]You are not the party owner
+Party.InvalidName=[[DARK_RED]]That is not a valid party name
+Party.PasswordSet=[[GREEN]]Party password set to {0}
+Party.CouldNotKick=[[DARK_RED]]Could not kick player {0}
+Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
+Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0}
+Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
+Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
+Commands.xprate.proper3=[[RED]]Enter true or false for the second value
+Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
+Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
+Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
+Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
+Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
 Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining

+ 350 - 350
mcMMO/com/gmail/nossr50/locale/locale_pl.properties → src/com/gmail/nossr50/locale/locale_pl.properties

@@ -1,351 +1,351 @@
-Combat.WolfExamine=[[GREEN]]**Zbadales wilka uzywajac wiedzy o zwierzetach**
-Combat.WolfShowMaster=[[DARK_GREEN]]Wlascicielem wilka jest \: {0}
-Combat.Ignition=[[RED]]**PODPALENIE**
-Combat.BurningArrowHit=[[DARK_RED]]Zostales trafiony plonaca strzala\!
-Combat.TouchedFuzzy=[[DARK_RED]]Zostales oszolomiony.
-Combat.TargetDazed=Cel zostal [[DARK_RED]]oszolomiony.
-Combat.WolfNoMaster=[[GRAY]]Ten wilk nie ma wlasciciela...
-Combat.WolfHealth=[[GREEN]]Ten wilk ma {0} zycia.
-Combat.StruckByGore=[[RED]]**WYKRWAWIENIE**
-Combat.Gore=[[GREEN]]**KRWOTOK**
-Combat.ArrowDeflect=[[WHITE]]**ODBICIE STRZALY**
-Item.ChimaeraWingFail=**UZYCIE SKRZYDLA CHIMERY NIE POWIODLO SIE\!**
-Item.ChimaeraWingPass=**UZYLES SKRZYDLA CHIMERY**
-Item.InjuredWait=Zostales ranny. Musisz poczekac [[YELLOW]]{0}[[WHITE]] sekund przed uzyciem.
-Item.NeedFeathers=[[GRAY]]Potrzebujesz wiecej pior.
-m.mccPartyCommands=[[GREEN]]--KOMENDY DRUZYNOWE--
-m.mccParty=[party name] [[RED]]- Tworzy lub dolacza do danej druzyny.
-m.mccPartyQ=[[RED]]- Pozwala opuscic druzyne.
-m.mccPartyToggle=[[RED]] - Wlacza chat druzynowy.
-m.mccPartyInvite=[player name] [[RED]]- Wysyla zaproszenie do druzyny.
-m.mccPartyAccept=[[RED]]- Akceptuje zaproszenie do druzyny.
-m.mccPartyTeleport=[imie czlonka druzyny] [[RED]]- Teleportuje cie do czlonka druzyny.
-m.mccOtherCommands=[[GREEN]]--INNE KOMENDY--
-m.mccStats=- Pokazuje twoje statystyki.
-m.mccLeaderboards=- Pokazuje najlepszych graczy.
-m.mccMySpawn=- Teleportuje do twojego spawna.
-m.mccClearMySpawn=- Kasuje twoj spawn i zmienia na domyslny.
-m.mccToggleAbility=- Wlacza specjalna umiejetnosc prawym przyciskiem myszy.
-m.mccAdminToggle=- Wlacza chat adminow.
-m.mccWhois=[nazwa gracza] [[RED]]- Zobacz szczegolowe informacje o graczu.
-m.mccMmoedit=[nazwa gracza] [umiejetnosc] [nowa wartosc] [[RED]]- Modyfikuje cel.
-m.mccMcGod=- Niesmiertelnosc.
-m.mccSkillInfo=/[nazwa umiejetnosci (np. Mining)] [[RED]]- Wyswietla informacje na temat umiejetnosci.
-m.mccModDescription=[[RED]]- Wyswietla opis moda.
-m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
-m.XPGain=[[DARK_GRAY]]Dostajesz doswiadczenie za: [[WHITE]]{0}
-m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
-m.AbilityLockTemplate=[[GRAY]]{0}
-m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
-m.Effects=EFEKTY
-m.YourStats=TWOJE STATYSTYKI
-m.SkillTaming=OSWAJANIE
-m.XPGainTaming=Utrate zdrowia wilkow.
-m.EffectsTaming1_0=Wiedza o zwierzetach
-m.EffectsTaming1_1=Uderz koscia aby sprawdzic wilka.
-m.EffectsTaming2_0=Krwotok
-m.EffectsTaming2_1=Atak krytyczny powodujacy silny krwotok.
-m.EffectsTaming3_0=Ostre pazury
-m.EffectsTaming3_1=Zwiekszenie obrazen.
-m.EffectsTaming4_0=Sztuka przetrwania
-m.EffectsTaming4_1=Unikanie kaktusow i lawy. Zawsze spada na 4 lapy.
-m.EffectsTaming5_0=Grube futro
-m.EffectsTaming5_1=Wieksza odpornosc na obrazenia i ogien.
-m.EffectsTaming6_0=Odpornosc na eksplozje
-m.EffectsTaming6_1=Wieksza odpornosc na obrazenia od wybuchow.
-m.AbilLockTaming1=Aby odblokowac sztuke przetrwania, zdobadz 100 poziom.
-m.AbilLockTaming2=Aby odblokowac grube futro, zdobadz 250 poziom.
-m.AbilLockTaming3=Aby odblokowac odpornosc na eksplozje, zdobadz 500 poziom.
-m.AbilLockTaming4=Aby odblokowac ostre pazury, zdobadz 750 poziom.
-m.AbilBonusTaming1_0=Sztuka przetrwania
-m.AbilBonusTaming1_1=Wilki unikaja zagrozen.
-m.AbilBonusTaming2_0=Grube futro
-m.AbilBonusTaming2_1=Obrazenia ogolne i od ognia zmniejszone do polowy.
-m.AbilBonusTaming3_0=Odpornosc na eksplozje
-m.AbilBonusTaming3_1=Wybuchy zadaja 1/6 obrazen.
-m.AbilBonusTaming4_0=Ostre pazury
-m.AbilBonusTaming4_1=+2 do obrazen
-m.TamingGoreChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0}%
-m.SkillWoodCutting=DRWALNICTWO
-m.XPGainWoodCutting=Scinanie drzew
-m.EffectsWoodCutting1_0=Powalacz drzew (UMIEJETNOSC)
-m.EffectsWoodCutting1_1=Blyskawicznie scina drzewa.
-m.EffectsWoodCutting2_0=Zdmuchiwacz lisci
-m.EffectsWoodCutting2_1=Zdmuchuje wszystkie liscie.
-m.EffectsWoodCutting3_0=Fachowa wycinka
-m.EffectsWoodCutting3_1=Pozyskujesz dwa razy wiecej drewna z jednego drzewa. Nic sie nie zmarnuje.
-m.AbilLockWoodCutting1=Aby odblokowac zdmuchiwacza lisci, zdobadz 100 poziom.
-m.AbilBonusWoodCutting1_0=Zdmuchiwacz lisci
-m.AbilBonusWoodCutting1_1=Zdmuchuje wszystkie liscie.
-m.WoodCuttingDoubleDropChance=[[RED]]Szansa na fachowa wycinke: [[YELLOW]]{0}%
-m.WoodCuttingTreeFellerLength=[[RED]]Czas trwania powalacza drzew: [[YELLOW]]{0} sekund
-m.SkillArchery=LUCZNICTWO
-m.XPGainArchery=Atakowanie potworow przy uzyciu luku.
-m.EffectsArchery1_0=Podpalenie
-m.EffectsArchery1_1=25% szansa na podpalenie wroga.
-m.EffectsArchery2_0=Oszolomienie(Tylko na graczy)
-m.EffectsArchery2_1=Dezorientuje przeciwnika.
-m.EffectsArchery3_0=Wieksze obrazenia
-m.EffectsArchery3_1=Zwieksza obrazenia zadawane lukiem.
-m.EffectsArchery4_0=Odzyskiwanie strzal
-m.EffectsArchery4_1=Szansa na odzyskanie strzal z cial wrogow.
-m.ArcheryDazeChance=[[RED]]Szansa na oszolomienie: [[YELLOW]]{0}%
-m.ArcheryRetrieveChance=[[RED]]Szansa na odzyskanie strzal: [[YELLOW]]{0}%
-m.ArcheryIgnitionLength=[[RED]]Dlugosc podpalenia: [[YELLOW]]{0} sekund
-m.ArcheryDamagePlus=[[RED]]Wieksze obrazenia (Rank{0}): [[YELLOW]]Obrazenia zwiekszone o {0}
-m.SkillAxes=TOPORY
-m.XPGainAxes=Atakowanie potworow przy uzyciu toporow.
-m.EffectsAxes1_0=Berserk (UMIEJETNOSC)
-m.EffectsAxes1_1=Zadaje obrazenia wszystkiemu dookola.
-m.EffectsAxes2_0=Krytyczne uderzenie
-m.EffectsAxes2_1=Potrafisz trafic wroga tam gdzie boli, zadajac podwojne obrazenia.
-m.EffectsAxes3_0=Doswiadczony wojownik
-m.EffectsAxes3_1=Mordowanie setek potworow zwiekszylo twoja sile i celnosc. Zadajesz wiecej obrazen.
-m.AbilLockAxes1=Aby odblokowac doswiadczonego wojownika, zdobadz 500 poziom.
-m.AbilBonusAxes1_0=Doswiadczony wojownik
-m.AbilBonusAxes1_1=Zadajesz dodatkowe 4 punkty obrazen.
-m.AxesCritChance=[[RED]]Szansa na krytyczne uderzenie: [[YELLOW]]{0}%
-m.AxesSkullLength=[[RED]]Dlugosc berserku: [[YELLOW]]{0} sekund
-m.SkillSwords=MIECZE
-m.XPGainSwords=Atakowanie potworow przy uzyciu mieczy.
-m.EffectsSwords1_0=Kontratak
-m.EffectsSwords1_1=Nikt bezkarnie cie nie zrani. Oddajesz przeciwnikowi 50% otrzymanych obrazen.
-m.EffectsSwords2_0=Furia ostrzy (UMIEJETNOSC)
-m.EffectsSwords2_1=25% obrazen obszarowych powodujacych krwotok.
-m.EffectsSwords3_0=Krwawa furia ostrzy
-m.EffectsSwords3_1=Celujesz w zyly i tetnice, pododujac jak najwiecej ran.
-m.EffectsSwords4_0=Blok
-m.EffectsSwords4_1=Calkowicie blokujesz cios.
-m.EffectsSwords5_0=Krwotok
-m.EffectsSwords5_1=Powoduje krwawiace otwarte rany.
-m.SwordsCounterAttChance=[[RED]]Szansa na kontratak: [[YELLOW]]{0}%
-m.SwordsBleedLength=[[RED]]Rany zadawane krwotokiem: [[YELLOW]]{0} ran.
-m.SwordsBleedChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0} %
-m.SwordsParryChance=[[RED]]Szansa na blok: [[YELLOW]]{0} %
-m.SwordsSSLength=[[RED]]Dlugosc furii ostrzy: [[YELLOW]]{0} sekund
-m.SwordsTickNote=[[GRAY]]UWAGA: [[YELLOW]]1 rana goi sie co 2 sekundy.
-m.SkillAcrobatics=AKROBATYKA
-m.XPGainAcrobatics=Spadanie
-m.EffectsAcrobatics1_0=Przewrot
-m.EffectsAcrobatics1_1=Zmniejsza badz niweluje obrazenia.
-m.EffectsAcrobatics2_0=Idealny przewrot
-m.EffectsAcrobatics2_1=Dwa razy skuteczniejszy od normalnego.
-m.EffectsAcrobatics3_0=Unik
-m.EffectsAcrobatics3_1=Redukuje obrazenia o polowe.
-m.AcrobaticsRollChance=[[RED]]Szansa na przewrot: [[YELLOW]]{0}%
-m.AcrobaticsGracefulRollChance=[[RED]]Szansa na idealny przewrot: [[YELLOW]]{0}%
-m.AcrobaticsDodgeChance=[[RED]]Szansa na unik: [[YELLOW]]{0}%
-m.SkillMining=GORNICTWO
-m.XPGainMining=Wykopywanie kamienia i roznych rud.
-m.EffectsMining1_0=Super kopacz (UMIEJETNOSC)
-m.EffectsMining1_1=Kopiesz sybciej i marnujesz trzy razy mniej rudy.
-m.EffectsMining2_0=Fachowy wykop
-m.EffectsMining2_1=Pozyskujesz dwa razy wiecej rudy. Nic sie nie marnuje.
-m.MiningDoubleDropChance=[[RED]]Szansa na fachowy wykop: [[YELLOW]]{0}%
-m.MiningSuperBreakerLength=[[RED]]Dlugosc super kopania: [[YELLOW]]{0} sekund
-m.SkillRepair=NAPRAWA
-m.XPGainRepair=Naprawianie przedmiotow.
-m.EffectsRepair1_0=Naprawa
-m.EffectsRepair1_1=Naprawianie zelaznych przedmiotow.
-m.EffectsRepair2_0=Mistrz naprawy
-m.EffectsRepair2_1=Zwiekszona liczba napraw.
-m.EffectsRepair3_0=Fachowa naprawa
-m.EffectsRepair3_1=Naprawiles przedmiot dwa razy lepiej niz zwykle.
-m.EffectsRepair4_0=Diamentowa odnowa ({0}+ UMIEJETNOSC)
-m.EffectsRepair4_1=Naprawia diamentowe przedmioty.
-m.RepairRepairMastery=[[RED]]Mistrz naprawy: [[YELLOW]]Dodatkowe {0}% wytrzymalosci odzyskane.
-m.RepairSuperRepairChance=[[RED]]Szansa na fachowa naprawe: [[YELLOW]]{0}%
-m.SkillUnarmed=KUNG-FU
-m.XPGainUnarmed=Atakowanie potworow bez broni.
-m.EffectsUnarmed1_0=Wejscie Smoka (UMIEJETNOSC)
-m.EffectsUnarmed1_1=Polowe wieksze obrazenia, niszczy slabe przedmioty.
-m.EffectsUnarmed2_0=Rozbrojenie (Tylko graczy)
-m.EffectsUnarmed2_1=Przeciwnik upuszcza trzymany w reku przedmiot.
-m.EffectsUnarmed3_0=Wsciekle Piesci
-m.EffectsUnarmed3_1=Znaczne zwiekszenie zadawanych obrazen.
-m.EffectsUnarmed4_0=Droga Smoka
-m.EffectsUnarmed4_1=Zwiekszenie zadawanych obrazen.
-m.EffectsUnarmed5_0=Odbicie strzaly
-m.EffectsUnarmed5_1=Golymi rekoma potrafisz odbic nadlatujaca strzale.
-m.AbilLockUnarmed1=Aby odblokowac Droge Smoka, zdobadz 250 poziom.
-m.AbilLockUnarmed2=Aby odblokowac Wsciekle Piesci, zdobadz 500 poziom.
-m.AbilBonusUnarmed1_0=Droga Smoka
-m.AbilBonusUnarmed1_1=Zadawane obrazenia zwiekszone o 2.
-m.AbilBonusUnarmed2_0=Wsciekle Piesci
-m.AbilBonusUnarmed2_1=Zadawane obrazenia zwiekszone o 4.
-m.UnarmedArrowDeflectChance=[[RED]]Szansa na odbicie strzaly: [[YELLOW]]{0}%
-m.UnarmedDisarmChance=[[RED]]Szansa na rozbrojenie: [[YELLOW]]{0}%
-m.UnarmedBerserkLength=[[RED]]Dlugosc Wejscia Smoka: [[YELLOW]]{0} sekund.
-m.SkillHerbalism=ZIELARSTWO
-m.XPGainHerbalism=Zbieranie ziol.
-m.EffectsHerbalism1_0=Zielona ziemia (UMIEJETNOSC)
-m.EffectsHerbalism1_1=Rozprzestrzenia ziemie, potraja plony.
-m.EffectsHerbalism2_0=Wprawne rece (zboze)
-m.EffectsHerbalism2_1=Zbierajac zboze, od razu sadzisz nasiona.
-m.EffectsHerbalism3_0=Wprawne rece (bruk)
-m.EffectsHerbalism3_1=Zamienia bruk w porosniety mchem kamien z nasionami.
-m.EffectsHerbalism4_0=Lepsze jedzenie
-m.EffectsHerbalism4_1=Modyfikowana genetycznie zywnosc jest zdrowsza. Chleb i zupa chlebowa regeneruja wiecej zdrowia.
-m.EffectsHerbalism5_0=Udane zbiory
-m.EffectsHerbalism5_1=Dwa razy wieksze plony wszystkich roslin.
-m.HerbalismGreenTerraLength=[[RED]]Czas trwania zielonej ziemi: [[YELLOW]]{0} sekund
-m.HerbalismGreenThumbChance=[[RED]]Szansa na wprawne rece: [[YELLOW]]{0}%
-m.HerbalismGreenThumbStage=[[RED]]Poziom wprawnych rak: [[YELLOW]] Zboze rosnie na poziomie {0}
-m.HerbalismDoubleDropChance=[[RED]]Szansa na udane zbiory: [[YELLOW]]{0}%
-m.HerbalismFoodPlus=[[RED]]Lepsze jedzenie (Ranga{0}): [[YELLOW]]Dodatkowe {0} zdrowia
-m.SkillExcavation=WYKOPALISKA
-m.XPGainExcavation=Kopanie i odnajdywanie skarbow.
-m.EffectsExcavation1_0=Super Szybka Saperka (UMIEJETNOSC)
-m.EffectsExcavation1_1=Zwiekszona szybkosc kopania i trzykrotnie wiekszy urobek i zdobyte doswiadczenie.
-m.EffectsExcavation2_0=Lowca Skarbow
-m.EffectsExcavation2_1=Umiejetnosc znajdywania skarbow
-m.ExcavationGreenTerraLength=[[RED]]Czas trwania Super Szybkiej Saperki: [[YELLOW]]{0} sekund.
-mcBlockListener.PlacedAnvil=[[DARK_RED]]Polozyles kowadlo, ktore pozwala na naprawe przedmiotow.
-mcEntityListener.WolfComesBack=[[DARK_GRAY]]Twoj wilk przybiega z powrotem.
-mcPlayerListener.AbilitiesOff=Uzywanie umiejetnosci wylaczone
-mcPlayerListener.AbilitiesOn=Uzywanie umiejetnosci wlaczone
-mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**UMIEJETNOSCI ODSWIEZONE\!**
-mcPlayerListener.AcrobaticsSkill=Akrobatyka: 
-mcPlayerListener.ArcherySkill=Lucznictwo: 
-mcPlayerListener.AxesSkill=Topory: 
-mcPlayerListener.ExcavationSkill=Wykopaliska: 
-mcPlayerListener.GodModeDisabled=[[YELLOW]]Niesmiertelnosc wylaczona
-mcPlayerListener.GodModeEnabled=[[YELLOW]]Niesmiertelnosc wlaczona
-mcPlayerListener.GreenThumb=[[GREEN]]**UZYLES ZIELONEJ ZIEMI**
-mcPlayerListener.GreenThumbFail=[[RED]]**UZYWANIE ZIELONEJ ZIEMI NIE POWIODLO SIE**
-mcPlayerListener.HerbalismSkill=Zielarstwo: 
-mcPlayerListener.MiningSkill=Gornictwo: 
-mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Twoj spawn zostal usuniety.
-mcPlayerListener.MyspawnNotExist=[[RED]]Musisz ustawic swoj spawn za pomoca lozka.
-mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Twoj spawn zostal ustawiony na twoje aktualne polozenie.
-mcPlayerListener.MyspawnTimeNotice=Musisz zaczekac {0} minut i {1} sekund aby przeteleportowac sie na spawn.
-mcPlayerListener.NoPermission=Brak mcPermissions.
-mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Umiejetnosci, ktorych nie mozesz uzyc nie sa wyswietlane.
-mcPlayerListener.NotInParty=[[RED]]Nie jestes w grupie.
-mcPlayerListener.InviteSuccess=[[GREEN]]Zaproszenie wyslane.
-mcPlayerListener.ReceivedInvite1=[[RED]]UWAGA: [[GREEN]]Dostales zaproszenie do grupy {0} od {1}.
-mcPlayerListener.ReceivedInvite2=[[YELLOW]Wpisz [[GREEN]]/{0}[[YELLOW]] aby zaakceptowac zaproszenie.
-mcPlayerListener.InviteAccepted=[[GREEN]]Zaproszenie akceptowane. Doszles do grupy {0}.
-mcPlayerListener.NoInvites=[[RED]]Nie masz zaproszen do zadnej grupy.
-mcPlayerListener.YouAreInParty=[[GREEN]]Jestes w grupie {0}.
-mcPlayerListener.PartyMembers=[[GREEN]]Czlonkowie grupy
-mcPlayerListener.LeftParty=[[RED]]Wyszles z tej grupy.
-mcPlayerListener.JoinedParty=Doszedles do grupy: {0}
-mcPlayerListener.PartyChatOn=Chat tylko dla grupy [[GREEN]]WLACZONY
-mcPlayerListener.PartyChatOff=Chat tylko dla grupy [[RED]]WYLACZONY
-mcPlayerListener.AdminChatOn=Chat tylko dla adminow [[GREEN]]WLACZONY
-mcPlayerListener.AdminChatOff=Chat tylko dla adminow [[RED]]WYLACZONY
-mcPlayerListener.MOTD=[[BLUE]]Ten server uzywa plugina mcMMO {0} wpisz [[YELLOW]]/{1}[[BLUE]] aby uzyskac pomoc.
-mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
-mcPlayerListener.PowerLevel=[[DARK_RED]]POZIOM MOCY: 
-mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--Ranking [[BLUE]]poziomu mocy [[YELLOW]]mcMMO--
-mcPlayerListener.SkillLeaderboard=[[YELLOW]]--Ranking [[BLUE]]{0}[[YELLOW]] mcMMO--
-mcPlayerListener.RepairSkill=Naprawa: 
-mcPlayerListener.SwordsSkill=Miecze: 
-mcPlayerListener.TamingSkill=Oswajanie: 
-mcPlayerListener.UnarmedSkill=Kung-fu: 
-mcPlayerListener.WoodcuttingSkill=Drwalnictwo: 
-mcPlayerListener.YourStats=[[GREEN]][mcMMO] Statystyki
-Party.InformedOnJoin={0} [[GREEN]] dolaczyl do twojej grupy.
-Party.InformedOnQuit={0} [[GREEN]] wyszedl z twojej grupy.
-Skills.YourGreenTerra=[[GREEN]]Twoja umiejetnosc [[YELLOW]]zielona ziemia [[GREEN]]zostala naladowana!
-Skills.YourTreeFeller=[[GREEN]]Twoja umiejetnosc [[YELLOW]]powalacz drzew [[GREEN]]zostala naladowana!
-Skills.YourSuperBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Super kopacz [[GREEN]]zostala naladowana!
-Skills.YourSerratedStrikes=[[GREEN]]Twoja umiejetnosc [[YELLOW]]furia ostrzy [[GREEN]]zostala naladowana!
-Skills.YourBerserk=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Wejscie Smoka [[GREEN]]zostala naladowana!
-Skills.YourSkullSplitter=[[GREEN]]Twoja umiejetnosc [[YELLOW]]berserk [[GREEN]]zostala naladowana!
-Skills.YourGigaDrillBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Super Szybka Saperka [[GREEN]]zostala naladowana!
-Skills.TooTired=[[RED]]Musisz odpoczac zanim ponownie uzyjesz tej umiejetnosci.
-Skills.ReadyHoe=[[GREEN]]**PODNOSISZ SWOJA MOTYKE**
-Skills.LowerHoe=[[GRAY]]**OPUSZCZASZ SWOJA MOTYKE**
-Skills.ReadyAxe=[[GREEN]]**PODNOSISZ SWOJ TOPOR**
-Skills.LowerAxe=[[GRAY]]**OPUSZCZASZ SWOJ TOPOR**
-Skills.ReadyFists=[[GREEN]]**PODNOSISZ SWOJE PIESCI**
-Skills.LowerFists=[[GRAY]]**OPUSZCZASZ SWOJE PIESCI**
-Skills.ReadyPickAxe=[[GREEN]]**PODNOSISZ SWOJ KILOF**
-Skills.LowerPickAxe=[[GRAY]]**OPUSZCZASZ SWOJ KILOF**
-Skills.ReadyShovel=[[GREEN]]**PODNOSISZ SWOJA LOPATE**
-Skills.LowerShovel=[[GRAY]]**OPUSZCZASZ SWOJA LOPATE**
-Skills.ReadySword=[[GREEN]]**PODNOSISZ SWOJ MIECZ**
-Skills.LowerSword=[[GRAY]]**OPUSZCZASZ SWOJ MIECZ**
-Skills.BerserkOn=[[GREEN]]**ROBISZ WEJSCIE SMOKA**
-Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] zrobil [[RED]]Wejscie Smoka!
-Skills.GreenTerraOn=[[GREEN]]**ZIELONA ZIEMIA**
-Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]zielonej ziemi!
-Skills.TreeFellerOn=[[GREEN]]**POWALACZ DRZEW**
-Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]powalacza drzew!
-Skills.SuperBreakerOn=[[GREEN]]**SUPER KOPACZ**
-Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Kopacza!
-Skills.SerratedStrikesOn=[[GREEN]]**FURIA OSTRZY**
-Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]furii ostrzy!
-Skills.SkullSplitterOn=[[GREEN]]**BERSERK**
-Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] wpadl w [[RED]]berserk!
-Skills.GigaDrillBreakerOn=[[GREEN]]**SUPER SZYBKA SAPERKA**
-Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Szybkiej Saperki!
-Skills.GreenTerraOff=[[RED]]**Zielona ziemia zostala zuzyta**
-Skills.TreeFellerOff=[[RED]]**Powalacz drzew zostal zuzyty**
-Skills.SuperBreakerOff=[[RED]]**Super Kopacz zostal zuzyty**
-Skills.SerratedStrikesOff=[[RED]]**Furia ostrzy zostala zuzyta**
-Skills.BerserkOff=[[RED]]**Wejscie Smoka zostalo zuzyte**
-Skills.SkullSplitterOff=[[RED]]**Berserk zostal zuzyty**
-Skills.GigaDrillBreakerOff=[[RED]]**Super Szybka Saperka zostala zuzyta**
-Skills.TamingUp=[[YELLOW]]Umiejetnosc oswajania wzrosla o {0}. Razem ({1})
-Skills.AcrobaticsUp=[[YELLOW]]Umiejetnosci akrobatyczne wzrosly o {0}. Razem ({1})
-Skills.ArcheryUp=[[YELLOW]]Umiejetnosci lucznicze wzrosly o {0}. Razem ({1})
-Skills.SwordsUp=[[YELLOW]]Umiejetnosc uzywania mieczy wzrosla o {0}. Razem ({1})
-Skills.AxesUp=[[YELLOW]]Umiejetnosc uzywania toporow wzrosla o {0}. Razem ({1})
-Skills.UnarmedUp=[[YELLOW]]Znajomosc Kung-Fu wzrosla o {0}. Razem ({1})
-Skills.HerbalismUp=[[YELLOW]]Znajomosc zielarstwa wzrosla o {0}. Razem ({1})
-Skills.MiningUp=[[YELLOW]]Umiejetnosci gornicze wzrosly o {0}. Razem ({1})
-Skills.WoodcuttingUp=[[YELLOW]]Umiejetnosci drwalnicze wzrosly o {0}. Razem ({1})
-Skills.RepairUp=[[YELLOW]]Umiejetnosc naprawy wzrosla o {0}. Razem ({1})
-Skills.ExcavationUp=[[YELLOW]]Umiejetnosci wykopaliskowe wzrosly o {0}. Razem ({1})
-Skills.FeltEasy=[[GRAY]]To bylo proste.
-Skills.StackedItems=[[DARK_RED]]Nie mozesz naprawiac grup przedmiotow.
-Skills.NeedMore=[[DARK_RED]]Potrzebujesz wiecej
-Skills.AdeptDiamond=[[DARK_RED]]Nie potrafisz jeszcze naprawiac diamentow
-Skills.FullDurability=[[GRAY]]Ten przedmiot nie wymaga naprawy.
-Skills.Disarmed=[[DARK_RED]]Zostales rozbrojony!
-mcPlayerListener.SorcerySkill=Magia: 
-m.SkillSorcery=MAGIA
-Sorcery.HasCast=[[GREEN]]**RZUCANIE ZAKLECIA**[[GOLD]]
-Sorcery.Current_Mana=[[DARK_AQUA]]Mana
-Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
-Sorcery.Cost=[[RED]][COST] {0} Many
-Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Brak Many [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
-Sorcery.Water.Thunder=PIORUN
-Sorcery.Curative.Self=ULECZ SIEBIE
-Sorcery.Curative.Other=ULECZ INNYCH
-m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]Doswiadczenia[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
-Combat.BeastLore=[[GREEN]]**WIEDZA O ZWIERZETACH**
-Combat.BeastLoreOwner=[[DARK_AQUA]]Wlasciciel ([[RED]]{0}[[DARK_AQUA]])
-Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/20)
-Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/8)
-mcMMO.Description=[[DARK_AQUA]]P: Czym jest mcMMO?,[[GOLD]]mcMMO jest [[RED]]open source'owym[[GOLD]] RPG modem korzystajacym z Bukkita, autorstwa [[BLUE]]nossr50,[[GOLD]]mcMMO dodaje wiele umiejetnosci do Minecrafta.,[[GOLD]]Mozna rowniez zbierac doswiadczenie na rozne sposoby,[[GOLD]]Najlepiej wpisac [[GREEN]]/nazwaumiejetnosci[[GOLD]] aby dowiedziec sie wiecej o niej.,[[DARK_AQUA]]P: A co robi mcMMO?,[[GOLD]]Dla przykladu, [[DARK_AQUA]]gornictwo[[GOLD]] pozwala na [[RED]]zwiekszone zyski[[GOLD]] oraz daje mozliwosc [[RED]]szybszego kopania[[GOLD]], ktore mozna [[GOLD]]aktywowac prawym przyciskiem myszy i trwa dluzej [[GOLD]]im wyzszy masz poziom. Zdobywanie poziomow w [[BLUE]]gornictwie[[GOLD]] odbywa sie przez zwyczajne wykopywanie roznych mineralow.,[[DARK_AQUA]]P: Co to wszystko daje?,[[GOLD]]Prawie wszystkie umiejetnosci w [[GREEN]]mcMMO[[GOLD]] dodaja nowe fajne rzeczy!.,[[GOLD]]Wpisujac [[GREEN]]/{0}[[GOLD]] poznasz wszystkie dostepne polecenia,[[GOLD]]Celem mcMMO jest sprawienie aby Minecraft stal sie prawie eRPeGiem.,[[DARK_AQUA]]P: Mam genialny pomysl, dodasz to!?,[[GOLD]]Napisz w temacie mcMMO na forum bukkit i zobaczymy!,[[DARK_AQUA]]Q: A jak zrobic to albo tamto?,[[RED]]CZYTAJ [[GOLD]]strone wiki moda! [[DARK_AQUA]]mcmmo.wikia.com
-Party.Locked=[[RED]]Grupa jest zamknieta, tylko wlasciciel moze dodac graczy.
-Party.IsntLocked=[[GRAY]]Grupa jest otwarta dla wszystkich.
-Party.Unlocked=[[GRAY]]Grupa jest otwarta dla wszystkich.
-Party.Help1=[[RED]]Prawidlowe polecenie to [[YELLOW]]/{0} [[WHITE]]<nazwa>[[YELLOW]] lub [[WHITE]]'q' [[YELLOW]]aby wyjsc.
-Party.Help2=[[RED]]Aby dolaczyc do grupy zabezpieczonej haslem wpisz[[YELLOW]]/{0} [[WHITE]]<nazwa> <haslo>
-Party.Help3=[[RED]]Sprawdz /{0} ? aby dowiedziec sie wiecej.
-Party.Help4=[[RED]]Wpisz [[YELLOW]]/{0} [[WHITE]]<nazwa> [[YELLOW]]aby dolaczyc do grupy lub [[WHITE]]'q' [[YELLOW]]aby z niej wyjsc.
-Party.Help5=[[RED]]Aby zamknac grupe wpisz [[YELLOW]]/{0} [[WHITE]]lock
-Party.Help6=[[RED]]Aby otworzyc zamknieta grupe wpisz [[YELLOW]]/{0} [[WHITE]]unlock
-Party.Help7=[[RED]]Aby zabezpieczyc grupe haslem wpisz [[YELLOW]]/{0} [[WHITE]]password <haslo>
-Party.Help8=[[RED]]Aby wyrzucic gracza z grupy wpisz [[YELLOW]]/{0} [[WHITE]]kick <imiegracza>
-Party.Help9=[[RED]]Aby przekazac wladze w grupie innej osobie wpisz [[YELLOW]]/{0} [[WHITE]]owner <imiegracza>
-Party.NotOwner=[[DARK_RED]]Nie jestes wlascicielem tej grupy.
-Party.InvalidName=[[DARK_RED]]To nie jest dozwolona nazwa grupy.
-Party.PasswordSet=[[GREEN]]Haslo grupy zmienione na: {0}
-Party.CouldNotKick=[[DARK_RED]]Nie mozna wyrzucic gracza {0}
-Party.NotInYourParty=[[DARK_RED]]{0} nie jest czlonkiem twojej grupy.
-Party.CouldNotSetOwner=[[DARK_RED]]Nie mozna przekazac grupy do {0}
-Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
-Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
-Commands.xprate.proper3=[[RED]]Enter true or false for the second value
-Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
-Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
-Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
-Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
-Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
+Combat.WolfExamine=[[GREEN]]**Zbadales wilka uzywajac wiedzy o zwierzetach**
+Combat.WolfShowMaster=[[DARK_GREEN]]Wlascicielem wilka jest \: {0}
+Combat.Ignition=[[RED]]**PODPALENIE**
+Combat.BurningArrowHit=[[DARK_RED]]Zostales trafiony plonaca strzala\!
+Combat.TouchedFuzzy=[[DARK_RED]]Zostales oszolomiony.
+Combat.TargetDazed=Cel zostal [[DARK_RED]]oszolomiony.
+Combat.WolfNoMaster=[[GRAY]]Ten wilk nie ma wlasciciela...
+Combat.WolfHealth=[[GREEN]]Ten wilk ma {0} zycia.
+Combat.StruckByGore=[[RED]]**WYKRWAWIENIE**
+Combat.Gore=[[GREEN]]**KRWOTOK**
+Combat.ArrowDeflect=[[WHITE]]**ODBICIE STRZALY**
+Item.ChimaeraWingFail=**UZYCIE SKRZYDLA CHIMERY NIE POWIODLO SIE\!**
+Item.ChimaeraWingPass=**UZYLES SKRZYDLA CHIMERY**
+Item.InjuredWait=Zostales ranny. Musisz poczekac [[YELLOW]]{0}[[WHITE]] sekund przed uzyciem.
+Item.NeedFeathers=[[GRAY]]Potrzebujesz wiecej pior.
+m.mccPartyCommands=[[GREEN]]--KOMENDY DRUZYNOWE--
+m.mccParty=[party name] [[RED]]- Tworzy lub dolacza do danej druzyny.
+m.mccPartyQ=[[RED]]- Pozwala opuscic druzyne.
+m.mccPartyToggle=[[RED]] - Wlacza chat druzynowy.
+m.mccPartyInvite=[player name] [[RED]]- Wysyla zaproszenie do druzyny.
+m.mccPartyAccept=[[RED]]- Akceptuje zaproszenie do druzyny.
+m.mccPartyTeleport=[imie czlonka druzyny] [[RED]]- Teleportuje cie do czlonka druzyny.
+m.mccOtherCommands=[[GREEN]]--INNE KOMENDY--
+m.mccStats=- Pokazuje twoje statystyki.
+m.mccLeaderboards=- Pokazuje najlepszych graczy.
+m.mccMySpawn=- Teleportuje do twojego spawna.
+m.mccClearMySpawn=- Kasuje twoj spawn i zmienia na domyslny.
+m.mccToggleAbility=- Wlacza specjalna umiejetnosc prawym przyciskiem myszy.
+m.mccAdminToggle=- Wlacza chat adminow.
+m.mccWhois=[nazwa gracza] [[RED]]- Zobacz szczegolowe informacje o graczu.
+m.mccMmoedit=[nazwa gracza] [umiejetnosc] [nowa wartosc] [[RED]]- Modyfikuje cel.
+m.mccMcGod=- Niesmiertelnosc.
+m.mccSkillInfo=/[nazwa umiejetnosci (np. Mining)] [[RED]]- Wyswietla informacje na temat umiejetnosci.
+m.mccModDescription=[[RED]]- Wyswietla opis moda.
+m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
+m.XPGain=[[DARK_GRAY]]Dostajesz doswiadczenie za: [[WHITE]]{0}
+m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
+m.AbilityLockTemplate=[[GRAY]]{0}
+m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
+m.Effects=EFEKTY
+m.YourStats=TWOJE STATYSTYKI
+m.SkillTaming=OSWAJANIE
+m.XPGainTaming=Utrate zdrowia wilkow.
+m.EffectsTaming1_0=Wiedza o zwierzetach
+m.EffectsTaming1_1=Uderz koscia aby sprawdzic wilka.
+m.EffectsTaming2_0=Krwotok
+m.EffectsTaming2_1=Atak krytyczny powodujacy silny krwotok.
+m.EffectsTaming3_0=Ostre pazury
+m.EffectsTaming3_1=Zwiekszenie obrazen.
+m.EffectsTaming4_0=Sztuka przetrwania
+m.EffectsTaming4_1=Unikanie kaktusow i lawy. Zawsze spada na 4 lapy.
+m.EffectsTaming5_0=Grube futro
+m.EffectsTaming5_1=Wieksza odpornosc na obrazenia i ogien.
+m.EffectsTaming6_0=Odpornosc na eksplozje
+m.EffectsTaming6_1=Wieksza odpornosc na obrazenia od wybuchow.
+m.AbilLockTaming1=Aby odblokowac sztuke przetrwania, zdobadz 100 poziom.
+m.AbilLockTaming2=Aby odblokowac grube futro, zdobadz 250 poziom.
+m.AbilLockTaming3=Aby odblokowac odpornosc na eksplozje, zdobadz 500 poziom.
+m.AbilLockTaming4=Aby odblokowac ostre pazury, zdobadz 750 poziom.
+m.AbilBonusTaming1_0=Sztuka przetrwania
+m.AbilBonusTaming1_1=Wilki unikaja zagrozen.
+m.AbilBonusTaming2_0=Grube futro
+m.AbilBonusTaming2_1=Obrazenia ogolne i od ognia zmniejszone do polowy.
+m.AbilBonusTaming3_0=Odpornosc na eksplozje
+m.AbilBonusTaming3_1=Wybuchy zadaja 1/6 obrazen.
+m.AbilBonusTaming4_0=Ostre pazury
+m.AbilBonusTaming4_1=+2 do obrazen
+m.TamingGoreChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0}%
+m.SkillWoodCutting=DRWALNICTWO
+m.XPGainWoodCutting=Scinanie drzew
+m.EffectsWoodCutting1_0=Powalacz drzew (UMIEJETNOSC)
+m.EffectsWoodCutting1_1=Blyskawicznie scina drzewa.
+m.EffectsWoodCutting2_0=Zdmuchiwacz lisci
+m.EffectsWoodCutting2_1=Zdmuchuje wszystkie liscie.
+m.EffectsWoodCutting3_0=Fachowa wycinka
+m.EffectsWoodCutting3_1=Pozyskujesz dwa razy wiecej drewna z jednego drzewa. Nic sie nie zmarnuje.
+m.AbilLockWoodCutting1=Aby odblokowac zdmuchiwacza lisci, zdobadz 100 poziom.
+m.AbilBonusWoodCutting1_0=Zdmuchiwacz lisci
+m.AbilBonusWoodCutting1_1=Zdmuchuje wszystkie liscie.
+m.WoodCuttingDoubleDropChance=[[RED]]Szansa na fachowa wycinke: [[YELLOW]]{0}%
+m.WoodCuttingTreeFellerLength=[[RED]]Czas trwania powalacza drzew: [[YELLOW]]{0} sekund
+m.SkillArchery=LUCZNICTWO
+m.XPGainArchery=Atakowanie potworow przy uzyciu luku.
+m.EffectsArchery1_0=Podpalenie
+m.EffectsArchery1_1=25% szansa na podpalenie wroga.
+m.EffectsArchery2_0=Oszolomienie(Tylko na graczy)
+m.EffectsArchery2_1=Dezorientuje przeciwnika.
+m.EffectsArchery3_0=Wieksze obrazenia
+m.EffectsArchery3_1=Zwieksza obrazenia zadawane lukiem.
+m.EffectsArchery4_0=Odzyskiwanie strzal
+m.EffectsArchery4_1=Szansa na odzyskanie strzal z cial wrogow.
+m.ArcheryDazeChance=[[RED]]Szansa na oszolomienie: [[YELLOW]]{0}%
+m.ArcheryRetrieveChance=[[RED]]Szansa na odzyskanie strzal: [[YELLOW]]{0}%
+m.ArcheryIgnitionLength=[[RED]]Dlugosc podpalenia: [[YELLOW]]{0} sekund
+m.ArcheryDamagePlus=[[RED]]Wieksze obrazenia (Rank{0}): [[YELLOW]]Obrazenia zwiekszone o {0}
+m.SkillAxes=TOPORY
+m.XPGainAxes=Atakowanie potworow przy uzyciu toporow.
+m.EffectsAxes1_0=Berserk (UMIEJETNOSC)
+m.EffectsAxes1_1=Zadaje obrazenia wszystkiemu dookola.
+m.EffectsAxes2_0=Krytyczne uderzenie
+m.EffectsAxes2_1=Potrafisz trafic wroga tam gdzie boli, zadajac podwojne obrazenia.
+m.EffectsAxes3_0=Doswiadczony wojownik
+m.EffectsAxes3_1=Mordowanie setek potworow zwiekszylo twoja sile i celnosc. Zadajesz wiecej obrazen.
+m.AbilLockAxes1=Aby odblokowac doswiadczonego wojownika, zdobadz 500 poziom.
+m.AbilBonusAxes1_0=Doswiadczony wojownik
+m.AbilBonusAxes1_1=Zadajesz dodatkowe 4 punkty obrazen.
+m.AxesCritChance=[[RED]]Szansa na krytyczne uderzenie: [[YELLOW]]{0}%
+m.AxesSkullLength=[[RED]]Dlugosc berserku: [[YELLOW]]{0} sekund
+m.SkillSwords=MIECZE
+m.XPGainSwords=Atakowanie potworow przy uzyciu mieczy.
+m.EffectsSwords1_0=Kontratak
+m.EffectsSwords1_1=Nikt bezkarnie cie nie zrani. Oddajesz przeciwnikowi 50% otrzymanych obrazen.
+m.EffectsSwords2_0=Furia ostrzy (UMIEJETNOSC)
+m.EffectsSwords2_1=25% obrazen obszarowych powodujacych krwotok.
+m.EffectsSwords3_0=Krwawa furia ostrzy
+m.EffectsSwords3_1=Celujesz w zyly i tetnice, pododujac jak najwiecej ran.
+m.EffectsSwords4_0=Blok
+m.EffectsSwords4_1=Calkowicie blokujesz cios.
+m.EffectsSwords5_0=Krwotok
+m.EffectsSwords5_1=Powoduje krwawiace otwarte rany.
+m.SwordsCounterAttChance=[[RED]]Szansa na kontratak: [[YELLOW]]{0}%
+m.SwordsBleedLength=[[RED]]Rany zadawane krwotokiem: [[YELLOW]]{0} ran.
+m.SwordsBleedChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0} %
+m.SwordsParryChance=[[RED]]Szansa na blok: [[YELLOW]]{0} %
+m.SwordsSSLength=[[RED]]Dlugosc furii ostrzy: [[YELLOW]]{0} sekund
+m.SwordsTickNote=[[GRAY]]UWAGA: [[YELLOW]]1 rana goi sie co 2 sekundy.
+m.SkillAcrobatics=AKROBATYKA
+m.XPGainAcrobatics=Spadanie
+m.EffectsAcrobatics1_0=Przewrot
+m.EffectsAcrobatics1_1=Zmniejsza badz niweluje obrazenia.
+m.EffectsAcrobatics2_0=Idealny przewrot
+m.EffectsAcrobatics2_1=Dwa razy skuteczniejszy od normalnego.
+m.EffectsAcrobatics3_0=Unik
+m.EffectsAcrobatics3_1=Redukuje obrazenia o polowe.
+m.AcrobaticsRollChance=[[RED]]Szansa na przewrot: [[YELLOW]]{0}%
+m.AcrobaticsGracefulRollChance=[[RED]]Szansa na idealny przewrot: [[YELLOW]]{0}%
+m.AcrobaticsDodgeChance=[[RED]]Szansa na unik: [[YELLOW]]{0}%
+m.SkillMining=GORNICTWO
+m.XPGainMining=Wykopywanie kamienia i roznych rud.
+m.EffectsMining1_0=Super kopacz (UMIEJETNOSC)
+m.EffectsMining1_1=Kopiesz sybciej i marnujesz trzy razy mniej rudy.
+m.EffectsMining2_0=Fachowy wykop
+m.EffectsMining2_1=Pozyskujesz dwa razy wiecej rudy. Nic sie nie marnuje.
+m.MiningDoubleDropChance=[[RED]]Szansa na fachowy wykop: [[YELLOW]]{0}%
+m.MiningSuperBreakerLength=[[RED]]Dlugosc super kopania: [[YELLOW]]{0} sekund
+m.SkillRepair=NAPRAWA
+m.XPGainRepair=Naprawianie przedmiotow.
+m.EffectsRepair1_0=Naprawa
+m.EffectsRepair1_1=Naprawianie zelaznych przedmiotow.
+m.EffectsRepair2_0=Mistrz naprawy
+m.EffectsRepair2_1=Zwiekszona liczba napraw.
+m.EffectsRepair3_0=Fachowa naprawa
+m.EffectsRepair3_1=Naprawiles przedmiot dwa razy lepiej niz zwykle.
+m.EffectsRepair4_0=Diamentowa odnowa ({0}+ UMIEJETNOSC)
+m.EffectsRepair4_1=Naprawia diamentowe przedmioty.
+m.RepairRepairMastery=[[RED]]Mistrz naprawy: [[YELLOW]]Dodatkowe {0}% wytrzymalosci odzyskane.
+m.RepairSuperRepairChance=[[RED]]Szansa na fachowa naprawe: [[YELLOW]]{0}%
+m.SkillUnarmed=KUNG-FU
+m.XPGainUnarmed=Atakowanie potworow bez broni.
+m.EffectsUnarmed1_0=Wejscie Smoka (UMIEJETNOSC)
+m.EffectsUnarmed1_1=Polowe wieksze obrazenia, niszczy slabe przedmioty.
+m.EffectsUnarmed2_0=Rozbrojenie (Tylko graczy)
+m.EffectsUnarmed2_1=Przeciwnik upuszcza trzymany w reku przedmiot.
+m.EffectsUnarmed3_0=Wsciekle Piesci
+m.EffectsUnarmed3_1=Znaczne zwiekszenie zadawanych obrazen.
+m.EffectsUnarmed4_0=Droga Smoka
+m.EffectsUnarmed4_1=Zwiekszenie zadawanych obrazen.
+m.EffectsUnarmed5_0=Odbicie strzaly
+m.EffectsUnarmed5_1=Golymi rekoma potrafisz odbic nadlatujaca strzale.
+m.AbilLockUnarmed1=Aby odblokowac Droge Smoka, zdobadz 250 poziom.
+m.AbilLockUnarmed2=Aby odblokowac Wsciekle Piesci, zdobadz 500 poziom.
+m.AbilBonusUnarmed1_0=Droga Smoka
+m.AbilBonusUnarmed1_1=Zadawane obrazenia zwiekszone o 2.
+m.AbilBonusUnarmed2_0=Wsciekle Piesci
+m.AbilBonusUnarmed2_1=Zadawane obrazenia zwiekszone o 4.
+m.UnarmedArrowDeflectChance=[[RED]]Szansa na odbicie strzaly: [[YELLOW]]{0}%
+m.UnarmedDisarmChance=[[RED]]Szansa na rozbrojenie: [[YELLOW]]{0}%
+m.UnarmedBerserkLength=[[RED]]Dlugosc Wejscia Smoka: [[YELLOW]]{0} sekund.
+m.SkillHerbalism=ZIELARSTWO
+m.XPGainHerbalism=Zbieranie ziol.
+m.EffectsHerbalism1_0=Zielona ziemia (UMIEJETNOSC)
+m.EffectsHerbalism1_1=Rozprzestrzenia ziemie, potraja plony.
+m.EffectsHerbalism2_0=Wprawne rece (zboze)
+m.EffectsHerbalism2_1=Zbierajac zboze, od razu sadzisz nasiona.
+m.EffectsHerbalism3_0=Wprawne rece (bruk)
+m.EffectsHerbalism3_1=Zamienia bruk w porosniety mchem kamien z nasionami.
+m.EffectsHerbalism4_0=Lepsze jedzenie
+m.EffectsHerbalism4_1=Modyfikowana genetycznie zywnosc jest zdrowsza. Chleb i zupa chlebowa regeneruja wiecej zdrowia.
+m.EffectsHerbalism5_0=Udane zbiory
+m.EffectsHerbalism5_1=Dwa razy wieksze plony wszystkich roslin.
+m.HerbalismGreenTerraLength=[[RED]]Czas trwania zielonej ziemi: [[YELLOW]]{0} sekund
+m.HerbalismGreenThumbChance=[[RED]]Szansa na wprawne rece: [[YELLOW]]{0}%
+m.HerbalismGreenThumbStage=[[RED]]Poziom wprawnych rak: [[YELLOW]] Zboze rosnie na poziomie {0}
+m.HerbalismDoubleDropChance=[[RED]]Szansa na udane zbiory: [[YELLOW]]{0}%
+m.HerbalismFoodPlus=[[RED]]Lepsze jedzenie (Ranga{0}): [[YELLOW]]Dodatkowe {0} zdrowia
+m.SkillExcavation=WYKOPALISKA
+m.XPGainExcavation=Kopanie i odnajdywanie skarbow.
+m.EffectsExcavation1_0=Super Szybka Saperka (UMIEJETNOSC)
+m.EffectsExcavation1_1=Zwiekszona szybkosc kopania i trzykrotnie wiekszy urobek i zdobyte doswiadczenie.
+m.EffectsExcavation2_0=Lowca Skarbow
+m.EffectsExcavation2_1=Umiejetnosc znajdywania skarbow
+m.ExcavationGreenTerraLength=[[RED]]Czas trwania Super Szybkiej Saperki: [[YELLOW]]{0} sekund.
+mcBlockListener.PlacedAnvil=[[DARK_RED]]Polozyles kowadlo, ktore pozwala na naprawe przedmiotow.
+mcEntityListener.WolfComesBack=[[DARK_GRAY]]Twoj wilk przybiega z powrotem.
+mcPlayerListener.AbilitiesOff=Uzywanie umiejetnosci wylaczone
+mcPlayerListener.AbilitiesOn=Uzywanie umiejetnosci wlaczone
+mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**UMIEJETNOSCI ODSWIEZONE\!**
+mcPlayerListener.AcrobaticsSkill=Akrobatyka: 
+mcPlayerListener.ArcherySkill=Lucznictwo: 
+mcPlayerListener.AxesSkill=Topory: 
+mcPlayerListener.ExcavationSkill=Wykopaliska: 
+mcPlayerListener.GodModeDisabled=[[YELLOW]]Niesmiertelnosc wylaczona
+mcPlayerListener.GodModeEnabled=[[YELLOW]]Niesmiertelnosc wlaczona
+mcPlayerListener.GreenThumb=[[GREEN]]**UZYLES ZIELONEJ ZIEMI**
+mcPlayerListener.GreenThumbFail=[[RED]]**UZYWANIE ZIELONEJ ZIEMI NIE POWIODLO SIE**
+mcPlayerListener.HerbalismSkill=Zielarstwo: 
+mcPlayerListener.MiningSkill=Gornictwo: 
+mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Twoj spawn zostal usuniety.
+mcPlayerListener.MyspawnNotExist=[[RED]]Musisz ustawic swoj spawn za pomoca lozka.
+mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Twoj spawn zostal ustawiony na twoje aktualne polozenie.
+mcPlayerListener.MyspawnTimeNotice=Musisz zaczekac {0} minut i {1} sekund aby przeteleportowac sie na spawn.
+mcPlayerListener.NoPermission=Brak mcPermissions.
+mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Umiejetnosci, ktorych nie mozesz uzyc nie sa wyswietlane.
+mcPlayerListener.NotInParty=[[RED]]Nie jestes w grupie.
+mcPlayerListener.InviteSuccess=[[GREEN]]Zaproszenie wyslane.
+mcPlayerListener.ReceivedInvite1=[[RED]]UWAGA: [[GREEN]]Dostales zaproszenie do grupy {0} od {1}.
+mcPlayerListener.ReceivedInvite2=[[YELLOW]Wpisz [[GREEN]]/{0}[[YELLOW]] aby zaakceptowac zaproszenie.
+mcPlayerListener.InviteAccepted=[[GREEN]]Zaproszenie akceptowane. Doszles do grupy {0}.
+mcPlayerListener.NoInvites=[[RED]]Nie masz zaproszen do zadnej grupy.
+mcPlayerListener.YouAreInParty=[[GREEN]]Jestes w grupie {0}.
+mcPlayerListener.PartyMembers=[[GREEN]]Czlonkowie grupy
+mcPlayerListener.LeftParty=[[RED]]Wyszles z tej grupy.
+mcPlayerListener.JoinedParty=Doszedles do grupy: {0}
+mcPlayerListener.PartyChatOn=Chat tylko dla grupy [[GREEN]]WLACZONY
+mcPlayerListener.PartyChatOff=Chat tylko dla grupy [[RED]]WYLACZONY
+mcPlayerListener.AdminChatOn=Chat tylko dla adminow [[GREEN]]WLACZONY
+mcPlayerListener.AdminChatOff=Chat tylko dla adminow [[RED]]WYLACZONY
+mcPlayerListener.MOTD=[[BLUE]]Ten server uzywa plugina mcMMO {0} wpisz [[YELLOW]]/{1}[[BLUE]] aby uzyskac pomoc.
+mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
+mcPlayerListener.PowerLevel=[[DARK_RED]]POZIOM MOCY: 
+mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--Ranking [[BLUE]]poziomu mocy [[YELLOW]]mcMMO--
+mcPlayerListener.SkillLeaderboard=[[YELLOW]]--Ranking [[BLUE]]{0}[[YELLOW]] mcMMO--
+mcPlayerListener.RepairSkill=Naprawa: 
+mcPlayerListener.SwordsSkill=Miecze: 
+mcPlayerListener.TamingSkill=Oswajanie: 
+mcPlayerListener.UnarmedSkill=Kung-fu: 
+mcPlayerListener.WoodcuttingSkill=Drwalnictwo: 
+mcPlayerListener.YourStats=[[GREEN]][mcMMO] Statystyki
+Party.InformedOnJoin={0} [[GREEN]] dolaczyl do twojej grupy.
+Party.InformedOnQuit={0} [[GREEN]] wyszedl z twojej grupy.
+Skills.YourGreenTerra=[[GREEN]]Twoja umiejetnosc [[YELLOW]]zielona ziemia [[GREEN]]zostala naladowana!
+Skills.YourTreeFeller=[[GREEN]]Twoja umiejetnosc [[YELLOW]]powalacz drzew [[GREEN]]zostala naladowana!
+Skills.YourSuperBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Super kopacz [[GREEN]]zostala naladowana!
+Skills.YourSerratedStrikes=[[GREEN]]Twoja umiejetnosc [[YELLOW]]furia ostrzy [[GREEN]]zostala naladowana!
+Skills.YourBerserk=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Wejscie Smoka [[GREEN]]zostala naladowana!
+Skills.YourSkullSplitter=[[GREEN]]Twoja umiejetnosc [[YELLOW]]berserk [[GREEN]]zostala naladowana!
+Skills.YourGigaDrillBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Super Szybka Saperka [[GREEN]]zostala naladowana!
+Skills.TooTired=[[RED]]Musisz odpoczac zanim ponownie uzyjesz tej umiejetnosci.
+Skills.ReadyHoe=[[GREEN]]**PODNOSISZ SWOJA MOTYKE**
+Skills.LowerHoe=[[GRAY]]**OPUSZCZASZ SWOJA MOTYKE**
+Skills.ReadyAxe=[[GREEN]]**PODNOSISZ SWOJ TOPOR**
+Skills.LowerAxe=[[GRAY]]**OPUSZCZASZ SWOJ TOPOR**
+Skills.ReadyFists=[[GREEN]]**PODNOSISZ SWOJE PIESCI**
+Skills.LowerFists=[[GRAY]]**OPUSZCZASZ SWOJE PIESCI**
+Skills.ReadyPickAxe=[[GREEN]]**PODNOSISZ SWOJ KILOF**
+Skills.LowerPickAxe=[[GRAY]]**OPUSZCZASZ SWOJ KILOF**
+Skills.ReadyShovel=[[GREEN]]**PODNOSISZ SWOJA LOPATE**
+Skills.LowerShovel=[[GRAY]]**OPUSZCZASZ SWOJA LOPATE**
+Skills.ReadySword=[[GREEN]]**PODNOSISZ SWOJ MIECZ**
+Skills.LowerSword=[[GRAY]]**OPUSZCZASZ SWOJ MIECZ**
+Skills.BerserkOn=[[GREEN]]**ROBISZ WEJSCIE SMOKA**
+Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] zrobil [[RED]]Wejscie Smoka!
+Skills.GreenTerraOn=[[GREEN]]**ZIELONA ZIEMIA**
+Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]zielonej ziemi!
+Skills.TreeFellerOn=[[GREEN]]**POWALACZ DRZEW**
+Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]powalacza drzew!
+Skills.SuperBreakerOn=[[GREEN]]**SUPER KOPACZ**
+Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Kopacza!
+Skills.SerratedStrikesOn=[[GREEN]]**FURIA OSTRZY**
+Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]furii ostrzy!
+Skills.SkullSplitterOn=[[GREEN]]**BERSERK**
+Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] wpadl w [[RED]]berserk!
+Skills.GigaDrillBreakerOn=[[GREEN]]**SUPER SZYBKA SAPERKA**
+Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Szybkiej Saperki!
+Skills.GreenTerraOff=[[RED]]**Zielona ziemia zostala zuzyta**
+Skills.TreeFellerOff=[[RED]]**Powalacz drzew zostal zuzyty**
+Skills.SuperBreakerOff=[[RED]]**Super Kopacz zostal zuzyty**
+Skills.SerratedStrikesOff=[[RED]]**Furia ostrzy zostala zuzyta**
+Skills.BerserkOff=[[RED]]**Wejscie Smoka zostalo zuzyte**
+Skills.SkullSplitterOff=[[RED]]**Berserk zostal zuzyty**
+Skills.GigaDrillBreakerOff=[[RED]]**Super Szybka Saperka zostala zuzyta**
+Skills.TamingUp=[[YELLOW]]Umiejetnosc oswajania wzrosla o {0}. Razem ({1})
+Skills.AcrobaticsUp=[[YELLOW]]Umiejetnosci akrobatyczne wzrosly o {0}. Razem ({1})
+Skills.ArcheryUp=[[YELLOW]]Umiejetnosci lucznicze wzrosly o {0}. Razem ({1})
+Skills.SwordsUp=[[YELLOW]]Umiejetnosc uzywania mieczy wzrosla o {0}. Razem ({1})
+Skills.AxesUp=[[YELLOW]]Umiejetnosc uzywania toporow wzrosla o {0}. Razem ({1})
+Skills.UnarmedUp=[[YELLOW]]Znajomosc Kung-Fu wzrosla o {0}. Razem ({1})
+Skills.HerbalismUp=[[YELLOW]]Znajomosc zielarstwa wzrosla o {0}. Razem ({1})
+Skills.MiningUp=[[YELLOW]]Umiejetnosci gornicze wzrosly o {0}. Razem ({1})
+Skills.WoodcuttingUp=[[YELLOW]]Umiejetnosci drwalnicze wzrosly o {0}. Razem ({1})
+Skills.RepairUp=[[YELLOW]]Umiejetnosc naprawy wzrosla o {0}. Razem ({1})
+Skills.ExcavationUp=[[YELLOW]]Umiejetnosci wykopaliskowe wzrosly o {0}. Razem ({1})
+Skills.FeltEasy=[[GRAY]]To bylo proste.
+Skills.StackedItems=[[DARK_RED]]Nie mozesz naprawiac grup przedmiotow.
+Skills.NeedMore=[[DARK_RED]]Potrzebujesz wiecej
+Skills.AdeptDiamond=[[DARK_RED]]Nie potrafisz jeszcze naprawiac diamentow
+Skills.FullDurability=[[GRAY]]Ten przedmiot nie wymaga naprawy.
+Skills.Disarmed=[[DARK_RED]]Zostales rozbrojony!
+mcPlayerListener.SorcerySkill=Magia: 
+m.SkillSorcery=MAGIA
+Sorcery.HasCast=[[GREEN]]**RZUCANIE ZAKLECIA**[[GOLD]]
+Sorcery.Current_Mana=[[DARK_AQUA]]Mana
+Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
+Sorcery.Cost=[[RED]][COST] {0} Many
+Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Brak Many [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
+Sorcery.Water.Thunder=PIORUN
+Sorcery.Curative.Self=ULECZ SIEBIE
+Sorcery.Curative.Other=ULECZ INNYCH
+m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]Doswiadczenia[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
+Combat.BeastLore=[[GREEN]]**WIEDZA O ZWIERZETACH**
+Combat.BeastLoreOwner=[[DARK_AQUA]]Wlasciciel ([[RED]]{0}[[DARK_AQUA]])
+Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/20)
+Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/8)
+mcMMO.Description=[[DARK_AQUA]]P: Czym jest mcMMO?,[[GOLD]]mcMMO jest [[RED]]open source'owym[[GOLD]] RPG modem korzystajacym z Bukkita, autorstwa [[BLUE]]nossr50,[[GOLD]]mcMMO dodaje wiele umiejetnosci do Minecrafta.,[[GOLD]]Mozna rowniez zbierac doswiadczenie na rozne sposoby,[[GOLD]]Najlepiej wpisac [[GREEN]]/nazwaumiejetnosci[[GOLD]] aby dowiedziec sie wiecej o niej.,[[DARK_AQUA]]P: A co robi mcMMO?,[[GOLD]]Dla przykladu, [[DARK_AQUA]]gornictwo[[GOLD]] pozwala na [[RED]]zwiekszone zyski[[GOLD]] oraz daje mozliwosc [[RED]]szybszego kopania[[GOLD]], ktore mozna [[GOLD]]aktywowac prawym przyciskiem myszy i trwa dluzej [[GOLD]]im wyzszy masz poziom. Zdobywanie poziomow w [[BLUE]]gornictwie[[GOLD]] odbywa sie przez zwyczajne wykopywanie roznych mineralow.,[[DARK_AQUA]]P: Co to wszystko daje?,[[GOLD]]Prawie wszystkie umiejetnosci w [[GREEN]]mcMMO[[GOLD]] dodaja nowe fajne rzeczy!.,[[GOLD]]Wpisujac [[GREEN]]/{0}[[GOLD]] poznasz wszystkie dostepne polecenia,[[GOLD]]Celem mcMMO jest sprawienie aby Minecraft stal sie prawie eRPeGiem.,[[DARK_AQUA]]P: Mam genialny pomysl, dodasz to!?,[[GOLD]]Napisz w temacie mcMMO na forum bukkit i zobaczymy!,[[DARK_AQUA]]Q: A jak zrobic to albo tamto?,[[RED]]CZYTAJ [[GOLD]]strone wiki moda! [[DARK_AQUA]]mcmmo.wikia.com
+Party.Locked=[[RED]]Grupa jest zamknieta, tylko wlasciciel moze dodac graczy.
+Party.IsntLocked=[[GRAY]]Grupa jest otwarta dla wszystkich.
+Party.Unlocked=[[GRAY]]Grupa jest otwarta dla wszystkich.
+Party.Help1=[[RED]]Prawidlowe polecenie to [[YELLOW]]/{0} [[WHITE]]<nazwa>[[YELLOW]] lub [[WHITE]]'q' [[YELLOW]]aby wyjsc.
+Party.Help2=[[RED]]Aby dolaczyc do grupy zabezpieczonej haslem wpisz[[YELLOW]]/{0} [[WHITE]]<nazwa> <haslo>
+Party.Help3=[[RED]]Sprawdz /{0} ? aby dowiedziec sie wiecej.
+Party.Help4=[[RED]]Wpisz [[YELLOW]]/{0} [[WHITE]]<nazwa> [[YELLOW]]aby dolaczyc do grupy lub [[WHITE]]'q' [[YELLOW]]aby z niej wyjsc.
+Party.Help5=[[RED]]Aby zamknac grupe wpisz [[YELLOW]]/{0} [[WHITE]]lock
+Party.Help6=[[RED]]Aby otworzyc zamknieta grupe wpisz [[YELLOW]]/{0} [[WHITE]]unlock
+Party.Help7=[[RED]]Aby zabezpieczyc grupe haslem wpisz [[YELLOW]]/{0} [[WHITE]]password <haslo>
+Party.Help8=[[RED]]Aby wyrzucic gracza z grupy wpisz [[YELLOW]]/{0} [[WHITE]]kick <imiegracza>
+Party.Help9=[[RED]]Aby przekazac wladze w grupie innej osobie wpisz [[YELLOW]]/{0} [[WHITE]]owner <imiegracza>
+Party.NotOwner=[[DARK_RED]]Nie jestes wlascicielem tej grupy.
+Party.InvalidName=[[DARK_RED]]To nie jest dozwolona nazwa grupy.
+Party.PasswordSet=[[GREEN]]Haslo grupy zmienione na: {0}
+Party.CouldNotKick=[[DARK_RED]]Nie mozna wyrzucic gracza {0}
+Party.NotInYourParty=[[DARK_RED]]{0} nie jest czlonkiem twojej grupy.
+Party.CouldNotSetOwner=[[DARK_RED]]Nie mozna przekazac grupy do {0}
+Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false]
+Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal
+Commands.xprate.proper3=[[RED]]Enter true or false for the second value
+Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
+Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
+Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!!
+Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}!
+Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]!
 Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining

+ 365 - 365
mcMMO/com/gmail/nossr50/locale/locale_pt_br.properties → src/com/gmail/nossr50/locale/locale_pt_br.properties

@@ -1,366 +1,366 @@
-Combat.WolfExamine=[[GREEN]]*Você examinou um lobo usando Conhecimento de Feras*
-Combat.WolfShowMaster=[[DARK_GREEN]]O Mestre das Feras \: {0}
-Combat.Ignition=[[RED]]*IGNIÇAO*
-Combat.BurningArrowHit=[[DARK_RED]]Você foi atingido por uma flecha flamejante\!
-Combat.TouchedFuzzy=[[DARK_RED]]Visao turva. Sente Tonturas.
-Combat.TargetDazed=Alvo foi [[DARK_RED]]Atordoado
-Combat.WolfNoMaster=[[GRAY]]Esse Animal nao tem um mestre...
-Combat.WolfHealth=[[GREEN]]Esse animal tem {0} de vida 
-Combat.StruckByGore=[[RED]]*ATINGIDO POR MORDIDA*
-Combat.Gore=[[GREEN]]*MORDIDA*
-Combat.ArrowDeflect=[[WHITE]]*DESVIOU A FLECHA*
-Item.ChimaeraWingFail=*ASA QUIMERA FALHOU\!*
-Item.ChimaeraWingPass=*ASA QUIMERA*
-Item.InjuredWait=Você foi ferido recentemente e tem que esperar para usar isto. [[YELLOW]]({0}s)
-Item.NeedFeathers=[[GRAY]]Você precisa de mais penas...
-m.mccPartyCommands=[[GREEN]]--COMANDOS DE EQUIPES--
-m.mccParty=[party name] [[RED]]- Criar/Juntar-se a uma equipe
-m.mccPartyQ=[[RED]]- Sair da equipe atual
-m.mccPartyToggle=[[RED]] - Ligar/Desligar chat da equipe
-m.mccPartyInvite=[player name] [[RED]]- Enviar um convite
-m.mccPartyAccept=[[RED]]- Aceitar convite
-m.mccPartyTeleport=[party member name] [[RED]]- Teleportar para um membro de equipe
-m.mccOtherCommands=[[GREEN]]--OUTROS COMANDOS--
-m.mccStats=- Ver seus status
-m.mccLeaderboards=- Classificaçao
-m.mccMySpawn=- Teleportar para o spawn
-m.mccClearMySpawn=- Remove o Ponto de Spawn
-m.mccToggleAbility=- Ativa habilidades especiais com botao direito
-m.mccAdminToggle=- Ativa o chat dos admin
-m.mccWhois=[playername] [[RED]]- Ver informaçoes do jogador
-m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modificar atributos do jogador
-m.mccMcGod=- Modo Deus
-m.mccSkillInfo=[skillname] [[RED]]- Ver informaçoes sobre a habilidade
-m.mccModDescription=[[RED]]- Breve descriçao do Mod
-m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
-m.XPGain=[[DARK_GRAY]]COMO GANHA XP: [[WHITE]]{0}
-m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
-m.AbilityLockTemplate=[[GRAY]]{0}
-m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
-m.Effects=EFEITOS
-m.YourStats=SUAS ESTATISTICAS
-
-m.SkillTaming=DOMESTICAR
-m.XPGainTaming=Ataque com um lobo
-m.EffectsTaming1_0=Conhecimento de Feras
-m.EffectsTaming1_1=Inspeciona um lobo com um osso
-m.EffectsTaming2_0=Mordida
-m.EffectsTaming2_1=Ataque crítico que causa hemorragia
-m.EffectsTaming3_0=Garras afiadas
-m.EffectsTaming3_1=Bônus de Dano
-m.EffectsTaming4_0=Consciência do Ambiente
-m.EffectsTaming4_1=Medo de Cactos e Lava, Imune a Dano por queda
-m.EffectsTaming5_0=Pele Grossa
-m.EffectsTaming5_1=Reduçao nos Danos, Resistência ao fogo
-m.EffectsTaming6_0=A Prova de Choque
-m.EffectsTaming6_1=Reduz danos tomados com explosivos
-m.AbilLockTaming1=DESBLOQUEIE NO NIVEL 100 (Conciência do ambiente)
-m.AbilLockTaming2=DESBLOQUEIE NO NIVEL 250 (Pele grossa)
-m.AbilLockTaming3=DESBLOQUEIE NO NIVEL 500 (A prova de choque)
-m.AbilLockTaming4=DESBLOQUEIE NO NIVEL 750 (Garras afiadas)
-m.AbilBonusTaming1_0=Conciência do ambiente
-m.AbilBonusTaming1_1=Lobos evitam perigo
-m.AbilBonusTaming2_0=Pele grossa
-m.AbilBonusTaming2_1=Danos pela metade, Resistência ao fogo
-m.AbilBonusTaming3_0=A prova de choque
-m.AbilBonusTaming3_1=Explosivos causam 1/6 do dano normal
-m.AbilBonusTaming4_0=Garras afiadas
-m.AbilBonusTaming4_1=+2 Dano
-m.TamingGoreChance=[[RED]]Chance de Mordida: [[YELLOW]]{0}%
-
-m.SkillWoodCutting=LENHADOR
-m.XPGainWoodCutting=Cortando árvores
-m.EffectsWoodCutting1_0=Derrubador de árvores (HABILIDADE ESPECIAL)
-m.EffectsWoodCutting1_1=Explode árvores 
-m.EffectsWoodCutting2_0=Soprador de Folhas
-m.EffectsWoodCutting2_1=Destrói folhas rapidamente
-m.EffectsWoodCutting3_0=Drop x2
-m.EffectsWoodCutting3_1=Dobra a quantidade de item dropados
-m.AbilLockWoodCutting1=DESBLOQUEIE NO NIVEL 100 (SOPRADOR DE FOLHAS)
-m.AbilBonusWoodCutting1_0=Soprador de Folhas
-m.AbilBonusWoodCutting1_1=Destrói folhas rapidamente
-m.WoodCuttingDoubleDropChance=[[RED]]Chance de Drop x2: [[YELLOW]]{0}%
-m.WoodCuttingTreeFellerLength=[[RED]]Duraçao do Derrubador de árvores: [[YELLOW]]{0}s
-
-m.SkillArchery=ARCO E FLECHA
-m.XPGainArchery=Atacando monstros/
-m.EffectsArchery1_0=Igniçao
-m.EffectsArchery1_1=25% de chance dos inimigos pegarem fogo
-m.EffectsArchery2_0=Atordoar (Jogadores)
-m.EffectsArchery2_1=Desorienta os adversários
-m.EffectsArchery3_0=+Dano
-m.EffectsArchery3_1=Aumenta o Dano
-m.EffectsArchery4_0=Recuperar Flechas
-m.EffectsArchery4_1=Chance de recuperar flechas de corpos
-m.ArcheryDazeChance=[[RED]]Chance de atordoar: [[YELLOW]]{0}%
-m.ArcheryRetrieveChance=[[RED]]Chance de recuperar flechas: [[YELLOW]]{0}%
-m.ArcheryIgnitionLength=[[RED]]Duraçao da Igniçao: [[YELLOW]]{0}s
-m.ArcheryDamagePlus=[[RED]]+Dano (Rank{0}): [[YELLOW]]Bonus de {0} dano
-
-m.SkillAxes=MACHADOS
-m.XPGainAxes=Atacando monstros
-m.EffectsAxes1_0=Rachador de Crânios (HABILIDADE ESPECIAL)
-m.EffectsAxes1_1=Causa Danos em Area
-m.EffectsAxes2_0=Ataques Críticos
-m.EffectsAxes2_1=Dobra o Dano
-m.EffectsAxes3_0=Mestre com Machados (NIVEL 500)
-m.EffectsAxes3_1=Aumenta o Dano
-m.AbilLockAxes1=DESBLOQUEIE NO NIVEL 500 (Mestre com Machados)
-m.AbilBonusAxes1_0=Mestre com Machados/
-m.AbilBonusAxes1_1=Bônus de 4 de dano
-m.AxesCritChance=[[RED]]Chance ataque crítico: [[YELLOW]]{0}%
-m.AxesSkullLength=[[RED]]Duraçao do Rachador de Crânios: [[YELLOW]]{0}s
-
-m.SkillSwords=ESPADAS
-m.XPGainSwords=Atacando monstros
-m.EffectsSwords1_0=Contra-Ataque
-m.EffectsSwords1_1=Retorna 50% do dano tomado
-m.EffectsSwords2_0=Ataques Cortantes (HABILIDADE ESPECIAL)
-m.EffectsSwords2_1=25% de Danos em Area, e Efeito de Hemorraria
-m.EffectsSwords3_0=Ataque Cortante com Hemorragia
-m.EffectsSwords3_1=5 Sangramentos
-m.EffectsSwords4_0=Desviar
-m.EffectsSwords4_1=Anula o Dano
-m.EffectsSwords5_0=Hemorragia
-m.EffectsSwords5_1=Causa sangramentos repetidos ao longo do tempo
-m.SwordsCounterAttChance=[[RED]]Chance de Contra-Ataque: [[YELLOW]]{0}%
-m.SwordsBleedLength=[[RED]]Duraçao da Hemorragia: [[YELLOW]]{0} ticks
-m.SwordsBleedChance=[[RED]]Chance de Hemorragia: [[YELLOW]]{0} %
-m.SwordsParryChance=[[RED]]Chance de Desviar: [[YELLOW]]{0} %
-m.SwordsSSLength=[[RED]]Duraçao do Ataques Cortantes: [[YELLOW]]{0}s
-m.SwordsTickNote=[[GRAY]]NOTA: [[YELLOW]]1 sangramento a cada 2 segundos
-
-m.SkillAcrobatics=ACROBACIA
-m.XPGainAcrobatics=Caindo
-m.EffectsAcrobatics1_0=Rolar
-m.EffectsAcrobatics1_1=Reduz ou anula o dano
-m.EffectsAcrobatics2_0=Rolar com estilo
-m.EffectsAcrobatics2_1=2 vezes mais efetivo de que "Rolar"
-m.EffectsAcrobatics3_0=Esquivar
-m.EffectsAcrobatics3_1=Reduz o dano pela metade
-m.AcrobaticsRollChance=[[RED]]Chance de Rolar: [[YELLOW]]{0}%
-m.AcrobaticsGracefulRollChance=[[RED]]Chance de Rolar com estilo: [[YELLOW]]{0}%
-m.AcrobaticsDodgeChance=[[RED]]Chance de Esquivar: [[YELLOW]]{0}%
-
-m.SkillMining=MINERAÇAO
-m.XPGainMining=Minerando Pedras e Minérios
-m.EffectsMining1_0=Super Britadeira (HABILIDADE ESPECIAL)
-m.EffectsMining1_1=+ Velocidade, Chance de Drop x3
-m.EffectsMining2_0=Drop x2
-m.EffectsMining2_1=Dobra a quantia de itens obtidos minerando
-m.MiningDoubleDropChance=[[RED]]Chance de D/rop x2: [[YELLOW]]{0}%
-m.MiningSuperBreakerLength=[[RED]]Duraçao da Super Britadeira: [[YELLOW]]{0}s
-
-m.SkillRepair=REPARAÇAO
-m.XPGainRepair=Reparando itens
-m.EffectsRepair1_0=Reparar
-m.EffectsRepair1_1=Reparando Ferramentas e Armaduras de Ferro
-m.EffectsRepair2_0=Mestre em Raparaçao
-m.EffectsRepair2_1=Aumenta a quantia reparada
-m.EffectsRepair3_0=Super Reparaçao
-m.EffectsRepair3_1=Dobra a efetividade da Reparaçao
-m.EffectsRepair4_0=Reparaçao de diamantes (Nível {0})
-m.EffectsRepair4_1=Rapara Ferramentas e Armaduras de Diamante
-m.RepairRepairMastery=[[RED]]Mestre em Raparaçao: [[YELLOW]]{0}% extra restaurado
-m.RepairSuperRepairChance=[[RED]]Chance de Super Reparaçao: [[YELLOW]]{0}%
-
-m.SkillUnarmed=DESARMADO
-m.XPGainUnarmed=Atacando monstros
-m.EffectsUnarmed1_0=Fúria (HABILIDADE ESPECIAL)
-m.EffectsUnarmed1_1=+50% de Dano, Quebra materiais frágeis
-m.EffectsUnarmed2_0=Desarmar (Jogadores)
-m.EffectsUnarmed2_1=Derruba a arma que o adversário está segurando
-m.EffectsUnarmed3_0=Mestre do Desarmamento
-m.EffectsUnarmed3_1=Aumenta muito o Dano
-m.EffectsUnarmed4_0=Aprendiz do Desarmamento
-m.EffectsUnarmed4_1=Aumenta o Dano
-m.EffectsUnarmed5_0=Desviar Flechas
-m.EffectsUnarmed5_1=Desvia Flechas jogadas em você
-m.AbilLockUnarmed1=DESBLOQUEIE NO NIVEL 250 (APRENDIZ DE DESARMAMENTO)
-m.AbilLockUnarmed2=DESBLOQUEIE NO NIVEL 500 (MESTRE DE DESARMAMENTO)
-m.AbilBonusUnarmed1_0=Aprendiz do Desarmamento
-m.AbilBonusUnarmed1_1=+2 de Danos
-m.AbilBonusUnarmed2_0=Mestre do Desarmamento
-m.AbilBonusUnarmed2_1=+4 de Danos
-m.UnarmedArrowDeflectChance=[[RED]]Chance de Desviar Flechas: [[YELLOW]]{0}%
-m.UnarmedDisarmChance=[[RED]]Chance de Desarmar: [[YELLOW]]{0}%
-m.UnarmedBerserkLength=[[RED]]Duraçao da Fúria: [[YELLOW]]{0}s
-
-m.SkillHerbalism=HERBALISMO
-m.XPGainHerbalism=Colhendo Ervas
-m.EffectsHerbalism1_0=Green Terra (HABILIDADE ESPECIAL)
-m.EffectsHerbalism1_1=EXP x3, Drop x3
-m.EffectsHerbalism2_0=Dedos Verdes (Trigo)
-m.EffectsHerbalism2_1=Planta automaticamente, ao colher trigo
-m.EffectsHerbalism3_0=Dedos Verdes (Pedras)
-m.EffectsHerbalism3_1=Transforma Cobblestone em Moss Stone (usa sementes)
-m.EffectsHerbalism4_0=Comida+
-m.EffectsHerbalism4_1=Aumenta a vida recebida comendo pao ou sopa
-m.EffectsHerbalism5_0=Drop x2 (Todas Ervas)
-m.EffectsHerbalism5_1=Dobra a quantia de itens obtidos colhendo
-m.HerbalismGreenTerraLength=[[RED]]Duraçao do Green Terra: [[YELLOW]]{0}s
-m.HerbalismGreenThumbChance=[[RED]]Chance do Dedos Verdes: [[YELLOW]]{0}%
-m.HerbalismGreenThumbStage=[[RED]]Nível do Dedos Verdes: [[YELLOW]] Trigo Cresce no Nível {0}
-m.HerbalismDoubleDropChance=[[RED]]Chance de Drop x2: [[YELLOW]]{0}%
-m.HerbalismFoodPlus=[[RED]]Comida+ (Rank{0}): [[YELLOW]]Bônus de {0} de vida
-
-m.SkillExcavation=ESCAVAÇAO
-m.XPGainExcavation=Cavando e encontrando tesouros
-m.EffectsExcavation1_0=Super Broca (HABILIDADE ESPECIAL)
-m.EffectsExcavation1_1=Drop x3, EXP x3, mais velocidade
-m.EffectsExcavation2_0=Caçad/or de Tesouros
-m.EffectsExcavation2_1=Encontra itens raros enquanto cava
-m.ExcavationGreenTerraLength=[[RED]]Duraçao da Super Broca: [[YELLOW]]{0}s
-
-mcBlockListener.PlacedAnvil=[[DARK_RED]] Você colocou uma bigorna, a bigorna pode reparar ferramentas e armaduras.
-mcEntityListener.WolfComesBack=[[DARK_GRAY]]Seu lobo voltou para você...
-mcPlayerListener.AbilitiesOff=Habilidade especial desabilitada
-mcPlayerListener.AbilitiesOn=Habilidade especial ativada
-mcPlayerListener.AbilitiesRefreshed=[[GREEN]]*HABILIDAE DISPONIVEL\!*
-mcPlayerListener.AcrobaticsSkill=Acrobacia (Acrobatics): 
-mcPlayerListener.ArcherySkill=Arqueiro (Archery): 
-mcPlayerListener.AxesSkill=Machado (Axes): 
-mcPlayerListener.ExcavationSkill=Escavaçao (Excavation): 
-mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Modo Deus Desabilitado
-mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Modo Deus Ativo
-mcPlayerListener.GreenThumb=[[GREEN]]*DEDOS VERDES*
-mcPlayerListener.GreenThumbFail=[[RED]]*DEDOS VERDES FALHOU*
-mcPlayerListener.HerbalismSkill=Herbalismo (Herbalism): 
-mcPlayerListener.MiningSkill=Mineraçao (Mining): 
-mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Ponto de Spawn foi apagado.
-mcPlayerListener.MyspawnNotExist=[[RED]]Primeiro crie um spawn durmindo na cama.
-mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Spawn foi gravado neste local.
-mcPlayerListener.MyspawnTimeNotice=Você precisa esperar {0}m {1}s para usar "myspawn"
-mcPlayerListener.NoPermission=Nao tem permissao para realizar esta açao.
-mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Se você nao tem acesso a uma habilidade, ela nao será exibida aqui.
-mcPlayerListener.NotInParty=[[RED]]Você nao está em nenhuma equipe.
-mcPlayerListener.InviteSuccess=[[GREEN]]Convite enviado.
-mcPlayerListener.ReceivedInvite1=[[RED]]ALERTA: [[GREEN]]Você recebeu um convite do {1} para a equipe {0}.
-mcPlayerListener.ReceivedInvite2=[[YELLOW]]Digite [[GREEN]]/{0}[[YELLOW]] para aceitar o convite 
-mcPlayerListener.InviteAccepted=[[GREEN]]Convite aceito. Você se juntou a equipe {0}
-mcPlayerListener.NoInvites=[[RED]]Você nao tem convites pendentes.
-mcPlayerListener.YouAreInParty=[[GREEN]]Você está na equipe {0}
-mcPlayerListener.PartyMembers=[[GREEN]]Membros da Equipe
-mcPlayerListener.LeftParty=[[RED]]Você saiu da equipe
-mcPlayerListener.JoinedParty=Sua Equipe: {0}
-mcPlayerListener.PartyChatOn=Chat da Equipe [[GREEN]]On
-mcPlayerListener.PartyChatOff=Chat da Equipe [[RED]]Off
-mcPlayerListener.AdminChatOn=Chat do Admin [[GREEN]]On
-mcPlayerListener.AdminChatOff=Chat do Admin [[RED]]Off
-mcPlayerListener.MOTD=[[BLUE]]Esse Server está rodando o mcMMO {0} digite [[YELLOW]]/{1}[[BLUE]] para obter ajuda.
-mcPlayerListener.WIKI=[[BLUE]]Para mais informaçoes - [[GREEN]]http://mcmmo.wikia.com
-mcPlayerListener.PowerLevel=[[RED]]NIVEL TOTAL: 
-mcPlayerListener.PowerLevelLeaderboard=[[BLUE]]-Classificaçao - [[GREEN]]Nível - [[WHITE]]Jogador-
-mcPlayerListener.SkillLeaderboard=[[BLUE]]-Classificaçao em [[GREEN]]{0}
-mcPlayerListener.RepairSkill=Reparaçao (Repair): 
-mcPlayerListener.SwordsSkill=Espadas (Swords): 
-mcPlayerListener.TamingSkill=Domar (Taming): 
-mcPlayerListener.UnarmedSkill=Desarmado (Unarmed): 
-mcPlayerListener.WoodcuttingSkill=Lenhador (Woodcutting): 
-mcPlayerListener.YourStats=[[GREEN]][mcMMO] Estatísticas
-Party.InformedOnJoin={0} [[GREEN]] entrou na equipe
-Party.InformedOnQuit={0} [[GREEN]] saiu da equipe
-
-Skills.YourGreenTerra=[[GREEN]]Sua habilidade [[YELLOW]]Green Terra [[GREEN]]está disponível!
-Skills.YourTreeFeller=[[GREEN]]Sua habilidade [[YELLOW]]Derrubador de Arvores [[GREEN]]está disponível!
-Skills.YourSuperBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Britadeira [[GREEN]]está disponível!
-Skills.YourSerratedStrikes=[[GREEN]]Sua habilidade [[YELLOW]]Ataques Cortantes [[GREEN]]está disponível!
-Skills.YourBerserk=[[GREEN]]Sua habilidade [[YELLOW]]Fúria [[GREEN]]está disponível!
-Skills.YourSkullSplitter=[[GREEN]]Sua habilidade [[YELLOW]]Rachador de Crânios [[GREEN]]está disponível!
-Skills.YourGigaDrillBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Broca [[GREEN]]está disponível!
-Skills.TooTired=[[RED]]Você está cansado pra usar essa habilidade.
-Skills.ReadyHoe=[[GREEN]]*ENXADA PRONTA PARA USAR GREEN TERRA*
-Skills.LowerHoe=[[GRAY]]*DESCARREGOU A ENXADA*
-Skills.ReadyAxe=[[GREEN]]*MACHADO PRONTO PARA USAR DERRUBADOR DE ARVORES*
-Skills.LowerAxe=[[GRAY]]*DESCARREGOU O MACHADO*
-Skills.ReadyFists=[[GREEN]]*PUNHO PRONTO PARA USAR FURIA*
-Skills.LowerFists=[[GRAY]]*DESCARREGOU O PUNHO*
-Skills.ReadyPickAxe=[[GREEN]]*PICARETA PRONTA PARA USAR SUPER BRITADEIRA*
-Skills.LowerPickAxe=[[GRAY]]*DESCARREGOU A PICARETA*
-Skills.ReadyShovel=[[GREEN]]*PA PRONTA PARA USAR SUPER BROCA*
-Skills.LowerShovel=[[GRAY]]*DESCARREGOU A PA*
-Skills.ReadySword=[[GREEN]]*ESPADA PRONTA PARA USAR ATAQUES CORTANTES*
-Skills.LowerSword=[[GRAY]]*DESCARREGOU A ESPADA*
-Skills.BerserkOn=[[GREEN]]*FURIA ATIVADA*
-Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] Usou a [[RED]]Fúria!
-Skills.GreenTerraOn=[[GREEN]]*GREEN TERRA ATIVADO*
-Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Green Terra!
-Skills.TreeFellerOn=[[GREEN]]*DERRUBADOR E ARVORES ATIVADO*
-Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Tree Feller!
-Skills.SuperBreakerOn=[[GREEN]]*SUPER BRITADEIRA ATIVADA*
-Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Super Britadeira!
-Skills.SerratedStrikesOn=[[GREEN]]*ATAQUES CORTANTES ATIVADO*
-Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Ataques Cortantes!
-Skills.SkullSplitterOn=[[GREEN]]*RACHADOR DE CRANIOS ATIVADO*
-Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Rachador de Crânios!
-Skills.GigaDrillBreakerOn=[[GREEN]]*SUPER BROCA ATIVADO*
-Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Super Broca!
-Skills.GreenTerraOff=[[RED]]*Green Terra acabou*
-Skills.TreeFellerOff=[[RED]]*Derrubador de Arvores acabou*
-Skills.SuperBreakerOff=[[RED]]*Super Britadeira acabou*
-Skills.SerratedStrikesOff=[[RED]]*Ataques Cortantes acabou*
-Skills.BerserkOff=[[RED]]*Fúria acabou*
-Skills.SkullSplitterOff=[[RED]]*Rachador de Crânios acabou*
-Skills.GigaDrillBreakerOff=[[RED]]*Super Broca acabou*
-Skills.TamingUp=[[YELLOW]]Habilidade de Domar aumentada em {0}. Total ({1})
-Skills.AcrobaticsUp=[[YELLOW]]Habilidade Acrobacia aumentada em {0}. Total ({1})
-Skills.ArcheryUp=[[YELLOW]]Habilidade de Arqueiro aumentada em {0}. Total ({1})
-Skills.SwordsUp=[[YELLOW]]Habilidade com Espadas aumentada em {0}. Total ({1})
-Skills.AxesUp=[[YELLOW]]Habilidade com Machados aumentada em {0}. Total ({1})
-Skills.UnarmedUp=[[YELLOW]]Habilidade Desarmado aumentada em {0}. Total ({1})
-Skills.HerbalismUp=[[YELLOW]]Habilidade Herbalismo aumentada em {0}. Total ({1})
-Skills.MiningUp=[[YELLOW]]Habilidade de Mineraçao aumentada em {0}. Total ({1})
-Skills.WoodcuttingUp=[[YELLOW]]Habilidade de Lenhador aumentada em {0}. Total ({1})
-Skills.RepairUp=[[YELLOW]]Habilidade de Reparaçao aumentada em {0}. Total ({1})
-Skills.ExcavationUp=[[YELLOW]]Habilidade de Escavaçao aumentada em {0}. Total ({1})
-Skills.FeltEasy=[[GRAY]]Essa foi fácil.
-Skills.StackedItems=[[DARK_RED]]Nao pode reparar itens empilhados juntos.
-Skills.NeedMore=[[DARK_RED]]Você precisa de mais
-Skills.AdeptDiamond=[[DARK_RED]]Você nao tem o nível necessário para reparar Diamante
-Skills.FullDurability=[[GRAY]]Já está com Durabilidade cheia.
-Skills.Disarmed=[[DARK_RED]]Você foi Desarmado!
-mcPlayerListener.SorcerySkill=Feitiçaria (Sorcery): 
-
-m.SkillSorcery=FEITIÇARIA
-Sorcery.HasCast=[[GREEN]]*CASTING*[[GOLD]]
-Sorcery.Current_Mana=[[DARK_AQUA]]MP
-Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
-Sorcery.Cost=[[RED]][COST] {0} MP
-Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Sem Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
-Sorcery.Water.Thunder=TROVAO
-Sorcery.Curative.Self=CURAR-SE
-Sorcery.Curative.Other=CURAR AMIGOS
-
-m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
-Combat.BeastLore=[[GREEN]]*CONHECIMENTO DE FERAS*
-Combat.BeastLoreOwner=[[DARK_AQUA]]Dono ([[RED]]{0}[[DARK_AQUA]])
-Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20)
-Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Vida ([[GREEN]]{0}[[DARK_AQUA]]/8)
-mcMMO.Description=[[DARK_AQUA]]Q: O QUE E? [[GOLD]]mcMMO é um mod [[RED]]OPEN SOURCE[[GOLD]] de RPG para a plataforma "Bukkit" feito por [[BLUE]]nossr50.[[GOLD]] Ele acresenta uma série de habilidades ao Minecraft. [[GOLD]]Você pode ganhar experiência de muitas maneiras.,[[GOLD]]Digite [[GREEN]]/NOME_DA_HABILIDADE[[GOLD]] para obter informaçoes sobre a habilidade.,[[DARK_AQUA]]Q: O QUE ELE FAZ? [[GOLD]]Por exemplo... em [[DARK_AQUA]]Mineraçao[[GOLD]] você receberá benefícios tais como [[RED]]Drop x2[[GOLD]] ou a habilidade [[RED]]Super Esmagador.[[GOLD]] que quando ativada com o clique direito permite minerar rapidamente durante sua duraçao. [[GOLD]]que depende do nível da sua habilidade. Aumentar o nível de [[BLUE]]Mineraçao[[GOLD]] é simples. basta minerar pedras ou minérios!,[[GOLD]]O objetivo do mcMMO é criar uma experiência de RPG de qualidade.,[[GOLD]]Digite [[GREEN]]/{0}[[GOLD]] para uma lista de comandos possíveis.,[[DARK_AQUA]]Q: ONDE POSSO SUGERIR IDEIAS!?,[[GOLD]]No tópico do mcMMO no fórum bukkit! (www.bit.ly/MCmmoIDEA),[[DARK_AQUA]]Q: Para mais informaçoes. leia a wiki do McMMO: [[RED]]mcmmo.wikia.com
-Party.Locked=[[RED]]Equipe está trancada, só o líder pode convidar.
-Party.IsntLocked=[[GRAY]]Equipe nao está trancada
-Party.Unlocked=[[GRAY]]Equipe foi Destrancada
-Party.Help1=[[RED]]O uso certo é [[YELLOW]]/{0} [[WHITE]]<nome>[[YELLOW]] ou [[WHITE]]'q' [[YELLOW]]para sair
-Party.Help2=[[RED]]Para entrar em uma equipe com senha use [[YELLOW]]/{0} [[WHITE]]<nome> <senha>
-Party.Help3=[[RED]]Consulte /{0} ? para mais informaçoes
-Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<nome> [[YELLOW]]para entrar em uma equipe ou [[WHITE]]'q' [[YELLOW]]para sair
-Party.Help5=[[RED]]Para trancar sua equipe use [[YELLOW]]/{0} [[WHITE]]lock
-Party.Help6=[[RED]]Para destrancar sua equipe use [[YELLOW]]/{0} [[WHITE]]unlock
-Party.Help7=[[RED]]Para colocar senha na sua equipe use [[YELLOW]]/{0} [[WHITE]]password <password>
-Party.Help8=[[RED]]Para excluir um jogador da equipe use [[YELLOW]]/{0} [[WHITE]]kick <player>
-Party.Help9=[[RED]]Para transferir a liderança da equipe use [[YELLOW]]/{0} [[WHITE]]owner <player>
-Party.NotOwner=[[DARK_RED]]Você nao é o líder da equipe
-Party.InvalidName=[[DARK_RED]]Este nome nao é valido
-Party.PasswordSet=[[GREEN]]Senha da equipe: {0}
-Party.CouldNotKick=[[DARK_RED]]Nao foi possível excluir o jogador {0}
-Party.NotInYourParty=[[DARK_RED]]{0} nao está na sua equipe
-Party.CouldNotSetOwner=[[DARK_RED]]Nao foi possível passar a liderança para {0}
-Commands.xprate.proper=[[DARK_AQUA]]Uso certo é /{0} [integer] [true:false]
-Commands.xprate.proper2=[[DARK_AQUA]]Também pode digitar /{0} reset para voltar tudo ao padrao
-Commands.xprate.proper3=[[RED]]Enter true or false for the second value
-Commands.xprate.over=[[RED]]Evento de XP Rate acabou!!
-Commands.xprate.started=[[GOLD]]EVENTO DE XP COMEÇOU!
-Commands.xprate.started2=[[GOLD]]XP RATE AGORA é {0}x!!
-Commands.xplock.locked=[[GOLD]]Sua barra de XP BAR está travada em {0}!
-Commands.xplock.unlocked=[[GOLD]]Sua barra de XP foi [[GREEN]]DESTRAVADA[[GOLD]]!
+Combat.WolfExamine=[[GREEN]]*Você examinou um lobo usando Conhecimento de Feras*
+Combat.WolfShowMaster=[[DARK_GREEN]]O Mestre das Feras \: {0}
+Combat.Ignition=[[RED]]*IGNIÇAO*
+Combat.BurningArrowHit=[[DARK_RED]]Você foi atingido por uma flecha flamejante\!
+Combat.TouchedFuzzy=[[DARK_RED]]Visao turva. Sente Tonturas.
+Combat.TargetDazed=Alvo foi [[DARK_RED]]Atordoado
+Combat.WolfNoMaster=[[GRAY]]Esse Animal nao tem um mestre...
+Combat.WolfHealth=[[GREEN]]Esse animal tem {0} de vida 
+Combat.StruckByGore=[[RED]]*ATINGIDO POR MORDIDA*
+Combat.Gore=[[GREEN]]*MORDIDA*
+Combat.ArrowDeflect=[[WHITE]]*DESVIOU A FLECHA*
+Item.ChimaeraWingFail=*ASA QUIMERA FALHOU\!*
+Item.ChimaeraWingPass=*ASA QUIMERA*
+Item.InjuredWait=Você foi ferido recentemente e tem que esperar para usar isto. [[YELLOW]]({0}s)
+Item.NeedFeathers=[[GRAY]]Você precisa de mais penas...
+m.mccPartyCommands=[[GREEN]]--COMANDOS DE EQUIPES--
+m.mccParty=[party name] [[RED]]- Criar/Juntar-se a uma equipe
+m.mccPartyQ=[[RED]]- Sair da equipe atual
+m.mccPartyToggle=[[RED]] - Ligar/Desligar chat da equipe
+m.mccPartyInvite=[player name] [[RED]]- Enviar um convite
+m.mccPartyAccept=[[RED]]- Aceitar convite
+m.mccPartyTeleport=[party member name] [[RED]]- Teleportar para um membro de equipe
+m.mccOtherCommands=[[GREEN]]--OUTROS COMANDOS--
+m.mccStats=- Ver seus status
+m.mccLeaderboards=- Classificaçao
+m.mccMySpawn=- Teleportar para o spawn
+m.mccClearMySpawn=- Remove o Ponto de Spawn
+m.mccToggleAbility=- Ativa habilidades especiais com botao direito
+m.mccAdminToggle=- Ativa o chat dos admin
+m.mccWhois=[playername] [[RED]]- Ver informaçoes do jogador
+m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modificar atributos do jogador
+m.mccMcGod=- Modo Deus
+m.mccSkillInfo=[skillname] [[RED]]- Ver informaçoes sobre a habilidade
+m.mccModDescription=[[RED]]- Breve descriçao do Mod
+m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
+m.XPGain=[[DARK_GRAY]]COMO GANHA XP: [[WHITE]]{0}
+m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
+m.AbilityLockTemplate=[[GRAY]]{0}
+m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
+m.Effects=EFEITOS
+m.YourStats=SUAS ESTATISTICAS
+
+m.SkillTaming=DOMESTICAR
+m.XPGainTaming=Ataque com um lobo
+m.EffectsTaming1_0=Conhecimento de Feras
+m.EffectsTaming1_1=Inspeciona um lobo com um osso
+m.EffectsTaming2_0=Mordida
+m.EffectsTaming2_1=Ataque crítico que causa hemorragia
+m.EffectsTaming3_0=Garras afiadas
+m.EffectsTaming3_1=Bônus de Dano
+m.EffectsTaming4_0=Consciência do Ambiente
+m.EffectsTaming4_1=Medo de Cactos e Lava, Imune a Dano por queda
+m.EffectsTaming5_0=Pele Grossa
+m.EffectsTaming5_1=Reduçao nos Danos, Resistência ao fogo
+m.EffectsTaming6_0=A Prova de Choque
+m.EffectsTaming6_1=Reduz danos tomados com explosivos
+m.AbilLockTaming1=DESBLOQUEIE NO NIVEL 100 (Conciência do ambiente)
+m.AbilLockTaming2=DESBLOQUEIE NO NIVEL 250 (Pele grossa)
+m.AbilLockTaming3=DESBLOQUEIE NO NIVEL 500 (A prova de choque)
+m.AbilLockTaming4=DESBLOQUEIE NO NIVEL 750 (Garras afiadas)
+m.AbilBonusTaming1_0=Conciência do ambiente
+m.AbilBonusTaming1_1=Lobos evitam perigo
+m.AbilBonusTaming2_0=Pele grossa
+m.AbilBonusTaming2_1=Danos pela metade, Resistência ao fogo
+m.AbilBonusTaming3_0=A prova de choque
+m.AbilBonusTaming3_1=Explosivos causam 1/6 do dano normal
+m.AbilBonusTaming4_0=Garras afiadas
+m.AbilBonusTaming4_1=+2 Dano
+m.TamingGoreChance=[[RED]]Chance de Mordida: [[YELLOW]]{0}%
+
+m.SkillWoodCutting=LENHADOR
+m.XPGainWoodCutting=Cortando árvores
+m.EffectsWoodCutting1_0=Derrubador de árvores (HABILIDADE ESPECIAL)
+m.EffectsWoodCutting1_1=Explode árvores 
+m.EffectsWoodCutting2_0=Soprador de Folhas
+m.EffectsWoodCutting2_1=Destrói folhas rapidamente
+m.EffectsWoodCutting3_0=Drop x2
+m.EffectsWoodCutting3_1=Dobra a quantidade de item dropados
+m.AbilLockWoodCutting1=DESBLOQUEIE NO NIVEL 100 (SOPRADOR DE FOLHAS)
+m.AbilBonusWoodCutting1_0=Soprador de Folhas
+m.AbilBonusWoodCutting1_1=Destrói folhas rapidamente
+m.WoodCuttingDoubleDropChance=[[RED]]Chance de Drop x2: [[YELLOW]]{0}%
+m.WoodCuttingTreeFellerLength=[[RED]]Duraçao do Derrubador de árvores: [[YELLOW]]{0}s
+
+m.SkillArchery=ARCO E FLECHA
+m.XPGainArchery=Atacando monstros/
+m.EffectsArchery1_0=Igniçao
+m.EffectsArchery1_1=25% de chance dos inimigos pegarem fogo
+m.EffectsArchery2_0=Atordoar (Jogadores)
+m.EffectsArchery2_1=Desorienta os adversários
+m.EffectsArchery3_0=+Dano
+m.EffectsArchery3_1=Aumenta o Dano
+m.EffectsArchery4_0=Recuperar Flechas
+m.EffectsArchery4_1=Chance de recuperar flechas de corpos
+m.ArcheryDazeChance=[[RED]]Chance de atordoar: [[YELLOW]]{0}%
+m.ArcheryRetrieveChance=[[RED]]Chance de recuperar flechas: [[YELLOW]]{0}%
+m.ArcheryIgnitionLength=[[RED]]Duraçao da Igniçao: [[YELLOW]]{0}s
+m.ArcheryDamagePlus=[[RED]]+Dano (Rank{0}): [[YELLOW]]Bonus de {0} dano
+
+m.SkillAxes=MACHADOS
+m.XPGainAxes=Atacando monstros
+m.EffectsAxes1_0=Rachador de Crânios (HABILIDADE ESPECIAL)
+m.EffectsAxes1_1=Causa Danos em Area
+m.EffectsAxes2_0=Ataques Críticos
+m.EffectsAxes2_1=Dobra o Dano
+m.EffectsAxes3_0=Mestre com Machados (NIVEL 500)
+m.EffectsAxes3_1=Aumenta o Dano
+m.AbilLockAxes1=DESBLOQUEIE NO NIVEL 500 (Mestre com Machados)
+m.AbilBonusAxes1_0=Mestre com Machados/
+m.AbilBonusAxes1_1=Bônus de 4 de dano
+m.AxesCritChance=[[RED]]Chance ataque crítico: [[YELLOW]]{0}%
+m.AxesSkullLength=[[RED]]Duraçao do Rachador de Crânios: [[YELLOW]]{0}s
+
+m.SkillSwords=ESPADAS
+m.XPGainSwords=Atacando monstros
+m.EffectsSwords1_0=Contra-Ataque
+m.EffectsSwords1_1=Retorna 50% do dano tomado
+m.EffectsSwords2_0=Ataques Cortantes (HABILIDADE ESPECIAL)
+m.EffectsSwords2_1=25% de Danos em Area, e Efeito de Hemorraria
+m.EffectsSwords3_0=Ataque Cortante com Hemorragia
+m.EffectsSwords3_1=5 Sangramentos
+m.EffectsSwords4_0=Desviar
+m.EffectsSwords4_1=Anula o Dano
+m.EffectsSwords5_0=Hemorragia
+m.EffectsSwords5_1=Causa sangramentos repetidos ao longo do tempo
+m.SwordsCounterAttChance=[[RED]]Chance de Contra-Ataque: [[YELLOW]]{0}%
+m.SwordsBleedLength=[[RED]]Duraçao da Hemorragia: [[YELLOW]]{0} ticks
+m.SwordsBleedChance=[[RED]]Chance de Hemorragia: [[YELLOW]]{0} %
+m.SwordsParryChance=[[RED]]Chance de Desviar: [[YELLOW]]{0} %
+m.SwordsSSLength=[[RED]]Duraçao do Ataques Cortantes: [[YELLOW]]{0}s
+m.SwordsTickNote=[[GRAY]]NOTA: [[YELLOW]]1 sangramento a cada 2 segundos
+
+m.SkillAcrobatics=ACROBACIA
+m.XPGainAcrobatics=Caindo
+m.EffectsAcrobatics1_0=Rolar
+m.EffectsAcrobatics1_1=Reduz ou anula o dano
+m.EffectsAcrobatics2_0=Rolar com estilo
+m.EffectsAcrobatics2_1=2 vezes mais efetivo de que "Rolar"
+m.EffectsAcrobatics3_0=Esquivar
+m.EffectsAcrobatics3_1=Reduz o dano pela metade
+m.AcrobaticsRollChance=[[RED]]Chance de Rolar: [[YELLOW]]{0}%
+m.AcrobaticsGracefulRollChance=[[RED]]Chance de Rolar com estilo: [[YELLOW]]{0}%
+m.AcrobaticsDodgeChance=[[RED]]Chance de Esquivar: [[YELLOW]]{0}%
+
+m.SkillMining=MINERAÇAO
+m.XPGainMining=Minerando Pedras e Minérios
+m.EffectsMining1_0=Super Britadeira (HABILIDADE ESPECIAL)
+m.EffectsMining1_1=+ Velocidade, Chance de Drop x3
+m.EffectsMining2_0=Drop x2
+m.EffectsMining2_1=Dobra a quantia de itens obtidos minerando
+m.MiningDoubleDropChance=[[RED]]Chance de D/rop x2: [[YELLOW]]{0}%
+m.MiningSuperBreakerLength=[[RED]]Duraçao da Super Britadeira: [[YELLOW]]{0}s
+
+m.SkillRepair=REPARAÇAO
+m.XPGainRepair=Reparando itens
+m.EffectsRepair1_0=Reparar
+m.EffectsRepair1_1=Reparando Ferramentas e Armaduras de Ferro
+m.EffectsRepair2_0=Mestre em Raparaçao
+m.EffectsRepair2_1=Aumenta a quantia reparada
+m.EffectsRepair3_0=Super Reparaçao
+m.EffectsRepair3_1=Dobra a efetividade da Reparaçao
+m.EffectsRepair4_0=Reparaçao de diamantes (Nível {0})
+m.EffectsRepair4_1=Rapara Ferramentas e Armaduras de Diamante
+m.RepairRepairMastery=[[RED]]Mestre em Raparaçao: [[YELLOW]]{0}% extra restaurado
+m.RepairSuperRepairChance=[[RED]]Chance de Super Reparaçao: [[YELLOW]]{0}%
+
+m.SkillUnarmed=DESARMADO
+m.XPGainUnarmed=Atacando monstros
+m.EffectsUnarmed1_0=Fúria (HABILIDADE ESPECIAL)
+m.EffectsUnarmed1_1=+50% de Dano, Quebra materiais frágeis
+m.EffectsUnarmed2_0=Desarmar (Jogadores)
+m.EffectsUnarmed2_1=Derruba a arma que o adversário está segurando
+m.EffectsUnarmed3_0=Mestre do Desarmamento
+m.EffectsUnarmed3_1=Aumenta muito o Dano
+m.EffectsUnarmed4_0=Aprendiz do Desarmamento
+m.EffectsUnarmed4_1=Aumenta o Dano
+m.EffectsUnarmed5_0=Desviar Flechas
+m.EffectsUnarmed5_1=Desvia Flechas jogadas em você
+m.AbilLockUnarmed1=DESBLOQUEIE NO NIVEL 250 (APRENDIZ DE DESARMAMENTO)
+m.AbilLockUnarmed2=DESBLOQUEIE NO NIVEL 500 (MESTRE DE DESARMAMENTO)
+m.AbilBonusUnarmed1_0=Aprendiz do Desarmamento
+m.AbilBonusUnarmed1_1=+2 de Danos
+m.AbilBonusUnarmed2_0=Mestre do Desarmamento
+m.AbilBonusUnarmed2_1=+4 de Danos
+m.UnarmedArrowDeflectChance=[[RED]]Chance de Desviar Flechas: [[YELLOW]]{0}%
+m.UnarmedDisarmChance=[[RED]]Chance de Desarmar: [[YELLOW]]{0}%
+m.UnarmedBerserkLength=[[RED]]Duraçao da Fúria: [[YELLOW]]{0}s
+
+m.SkillHerbalism=HERBALISMO
+m.XPGainHerbalism=Colhendo Ervas
+m.EffectsHerbalism1_0=Green Terra (HABILIDADE ESPECIAL)
+m.EffectsHerbalism1_1=EXP x3, Drop x3
+m.EffectsHerbalism2_0=Dedos Verdes (Trigo)
+m.EffectsHerbalism2_1=Planta automaticamente, ao colher trigo
+m.EffectsHerbalism3_0=Dedos Verdes (Pedras)
+m.EffectsHerbalism3_1=Transforma Cobblestone em Moss Stone (usa sementes)
+m.EffectsHerbalism4_0=Comida+
+m.EffectsHerbalism4_1=Aumenta a vida recebida comendo pao ou sopa
+m.EffectsHerbalism5_0=Drop x2 (Todas Ervas)
+m.EffectsHerbalism5_1=Dobra a quantia de itens obtidos colhendo
+m.HerbalismGreenTerraLength=[[RED]]Duraçao do Green Terra: [[YELLOW]]{0}s
+m.HerbalismGreenThumbChance=[[RED]]Chance do Dedos Verdes: [[YELLOW]]{0}%
+m.HerbalismGreenThumbStage=[[RED]]Nível do Dedos Verdes: [[YELLOW]] Trigo Cresce no Nível {0}
+m.HerbalismDoubleDropChance=[[RED]]Chance de Drop x2: [[YELLOW]]{0}%
+m.HerbalismFoodPlus=[[RED]]Comida+ (Rank{0}): [[YELLOW]]Bônus de {0} de vida
+
+m.SkillExcavation=ESCAVAÇAO
+m.XPGainExcavation=Cavando e encontrando tesouros
+m.EffectsExcavation1_0=Super Broca (HABILIDADE ESPECIAL)
+m.EffectsExcavation1_1=Drop x3, EXP x3, mais velocidade
+m.EffectsExcavation2_0=Caçad/or de Tesouros
+m.EffectsExcavation2_1=Encontra itens raros enquanto cava
+m.ExcavationGreenTerraLength=[[RED]]Duraçao da Super Broca: [[YELLOW]]{0}s
+
+mcBlockListener.PlacedAnvil=[[DARK_RED]] Você colocou uma bigorna, a bigorna pode reparar ferramentas e armaduras.
+mcEntityListener.WolfComesBack=[[DARK_GRAY]]Seu lobo voltou para você...
+mcPlayerListener.AbilitiesOff=Habilidade especial desabilitada
+mcPlayerListener.AbilitiesOn=Habilidade especial ativada
+mcPlayerListener.AbilitiesRefreshed=[[GREEN]]*HABILIDAE DISPONIVEL\!*
+mcPlayerListener.AcrobaticsSkill=Acrobacia (Acrobatics): 
+mcPlayerListener.ArcherySkill=Arqueiro (Archery): 
+mcPlayerListener.AxesSkill=Machado (Axes): 
+mcPlayerListener.ExcavationSkill=Escavaçao (Excavation): 
+mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Modo Deus Desabilitado
+mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Modo Deus Ativo
+mcPlayerListener.GreenThumb=[[GREEN]]*DEDOS VERDES*
+mcPlayerListener.GreenThumbFail=[[RED]]*DEDOS VERDES FALHOU*
+mcPlayerListener.HerbalismSkill=Herbalismo (Herbalism): 
+mcPlayerListener.MiningSkill=Mineraçao (Mining): 
+mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Ponto de Spawn foi apagado.
+mcPlayerListener.MyspawnNotExist=[[RED]]Primeiro crie um spawn durmindo na cama.
+mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Spawn foi gravado neste local.
+mcPlayerListener.MyspawnTimeNotice=Você precisa esperar {0}m {1}s para usar "myspawn"
+mcPlayerListener.NoPermission=Nao tem permissao para realizar esta açao.
+mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Se você nao tem acesso a uma habilidade, ela nao será exibida aqui.
+mcPlayerListener.NotInParty=[[RED]]Você nao está em nenhuma equipe.
+mcPlayerListener.InviteSuccess=[[GREEN]]Convite enviado.
+mcPlayerListener.ReceivedInvite1=[[RED]]ALERTA: [[GREEN]]Você recebeu um convite do {1} para a equipe {0}.
+mcPlayerListener.ReceivedInvite2=[[YELLOW]]Digite [[GREEN]]/{0}[[YELLOW]] para aceitar o convite 
+mcPlayerListener.InviteAccepted=[[GREEN]]Convite aceito. Você se juntou a equipe {0}
+mcPlayerListener.NoInvites=[[RED]]Você nao tem convites pendentes.
+mcPlayerListener.YouAreInParty=[[GREEN]]Você está na equipe {0}
+mcPlayerListener.PartyMembers=[[GREEN]]Membros da Equipe
+mcPlayerListener.LeftParty=[[RED]]Você saiu da equipe
+mcPlayerListener.JoinedParty=Sua Equipe: {0}
+mcPlayerListener.PartyChatOn=Chat da Equipe [[GREEN]]On
+mcPlayerListener.PartyChatOff=Chat da Equipe [[RED]]Off
+mcPlayerListener.AdminChatOn=Chat do Admin [[GREEN]]On
+mcPlayerListener.AdminChatOff=Chat do Admin [[RED]]Off
+mcPlayerListener.MOTD=[[BLUE]]Esse Server está rodando o mcMMO {0} digite [[YELLOW]]/{1}[[BLUE]] para obter ajuda.
+mcPlayerListener.WIKI=[[BLUE]]Para mais informaçoes - [[GREEN]]http://mcmmo.wikia.com
+mcPlayerListener.PowerLevel=[[RED]]NIVEL TOTAL: 
+mcPlayerListener.PowerLevelLeaderboard=[[BLUE]]-Classificaçao - [[GREEN]]Nível - [[WHITE]]Jogador-
+mcPlayerListener.SkillLeaderboard=[[BLUE]]-Classificaçao em [[GREEN]]{0}
+mcPlayerListener.RepairSkill=Reparaçao (Repair): 
+mcPlayerListener.SwordsSkill=Espadas (Swords): 
+mcPlayerListener.TamingSkill=Domar (Taming): 
+mcPlayerListener.UnarmedSkill=Desarmado (Unarmed): 
+mcPlayerListener.WoodcuttingSkill=Lenhador (Woodcutting): 
+mcPlayerListener.YourStats=[[GREEN]][mcMMO] Estatísticas
+Party.InformedOnJoin={0} [[GREEN]] entrou na equipe
+Party.InformedOnQuit={0} [[GREEN]] saiu da equipe
+
+Skills.YourGreenTerra=[[GREEN]]Sua habilidade [[YELLOW]]Green Terra [[GREEN]]está disponível!
+Skills.YourTreeFeller=[[GREEN]]Sua habilidade [[YELLOW]]Derrubador de Arvores [[GREEN]]está disponível!
+Skills.YourSuperBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Britadeira [[GREEN]]está disponível!
+Skills.YourSerratedStrikes=[[GREEN]]Sua habilidade [[YELLOW]]Ataques Cortantes [[GREEN]]está disponível!
+Skills.YourBerserk=[[GREEN]]Sua habilidade [[YELLOW]]Fúria [[GREEN]]está disponível!
+Skills.YourSkullSplitter=[[GREEN]]Sua habilidade [[YELLOW]]Rachador de Crânios [[GREEN]]está disponível!
+Skills.YourGigaDrillBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Broca [[GREEN]]está disponível!
+Skills.TooTired=[[RED]]Você está cansado pra usar essa habilidade.
+Skills.ReadyHoe=[[GREEN]]*ENXADA PRONTA PARA USAR GREEN TERRA*
+Skills.LowerHoe=[[GRAY]]*DESCARREGOU A ENXADA*
+Skills.ReadyAxe=[[GREEN]]*MACHADO PRONTO PARA USAR DERRUBADOR DE ARVORES*
+Skills.LowerAxe=[[GRAY]]*DESCARREGOU O MACHADO*
+Skills.ReadyFists=[[GREEN]]*PUNHO PRONTO PARA USAR FURIA*
+Skills.LowerFists=[[GRAY]]*DESCARREGOU O PUNHO*
+Skills.ReadyPickAxe=[[GREEN]]*PICARETA PRONTA PARA USAR SUPER BRITADEIRA*
+Skills.LowerPickAxe=[[GRAY]]*DESCARREGOU A PICARETA*
+Skills.ReadyShovel=[[GREEN]]*PA PRONTA PARA USAR SUPER BROCA*
+Skills.LowerShovel=[[GRAY]]*DESCARREGOU A PA*
+Skills.ReadySword=[[GREEN]]*ESPADA PRONTA PARA USAR ATAQUES CORTANTES*
+Skills.LowerSword=[[GRAY]]*DESCARREGOU A ESPADA*
+Skills.BerserkOn=[[GREEN]]*FURIA ATIVADA*
+Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] Usou a [[RED]]Fúria!
+Skills.GreenTerraOn=[[GREEN]]*GREEN TERRA ATIVADO*
+Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Green Terra!
+Skills.TreeFellerOn=[[GREEN]]*DERRUBADOR E ARVORES ATIVADO*
+Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Tree Feller!
+Skills.SuperBreakerOn=[[GREEN]]*SUPER BRITADEIRA ATIVADA*
+Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Super Britadeira!
+Skills.SerratedStrikesOn=[[GREEN]]*ATAQUES CORTANTES ATIVADO*
+Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Ataques Cortantes!
+Skills.SkullSplitterOn=[[GREEN]]*RACHADOR DE CRANIOS ATIVADO*
+Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Rachador de Crânios!
+Skills.GigaDrillBreakerOn=[[GREEN]]*SUPER BROCA ATIVADO*
+Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Super Broca!
+Skills.GreenTerraOff=[[RED]]*Green Terra acabou*
+Skills.TreeFellerOff=[[RED]]*Derrubador de Arvores acabou*
+Skills.SuperBreakerOff=[[RED]]*Super Britadeira acabou*
+Skills.SerratedStrikesOff=[[RED]]*Ataques Cortantes acabou*
+Skills.BerserkOff=[[RED]]*Fúria acabou*
+Skills.SkullSplitterOff=[[RED]]*Rachador de Crânios acabou*
+Skills.GigaDrillBreakerOff=[[RED]]*Super Broca acabou*
+Skills.TamingUp=[[YELLOW]]Habilidade de Domar aumentada em {0}. Total ({1})
+Skills.AcrobaticsUp=[[YELLOW]]Habilidade Acrobacia aumentada em {0}. Total ({1})
+Skills.ArcheryUp=[[YELLOW]]Habilidade de Arqueiro aumentada em {0}. Total ({1})
+Skills.SwordsUp=[[YELLOW]]Habilidade com Espadas aumentada em {0}. Total ({1})
+Skills.AxesUp=[[YELLOW]]Habilidade com Machados aumentada em {0}. Total ({1})
+Skills.UnarmedUp=[[YELLOW]]Habilidade Desarmado aumentada em {0}. Total ({1})
+Skills.HerbalismUp=[[YELLOW]]Habilidade Herbalismo aumentada em {0}. Total ({1})
+Skills.MiningUp=[[YELLOW]]Habilidade de Mineraçao aumentada em {0}. Total ({1})
+Skills.WoodcuttingUp=[[YELLOW]]Habilidade de Lenhador aumentada em {0}. Total ({1})
+Skills.RepairUp=[[YELLOW]]Habilidade de Reparaçao aumentada em {0}. Total ({1})
+Skills.ExcavationUp=[[YELLOW]]Habilidade de Escavaçao aumentada em {0}. Total ({1})
+Skills.FeltEasy=[[GRAY]]Essa foi fácil.
+Skills.StackedItems=[[DARK_RED]]Nao pode reparar itens empilhados juntos.
+Skills.NeedMore=[[DARK_RED]]Você precisa de mais
+Skills.AdeptDiamond=[[DARK_RED]]Você nao tem o nível necessário para reparar Diamante
+Skills.FullDurability=[[GRAY]]Já está com Durabilidade cheia.
+Skills.Disarmed=[[DARK_RED]]Você foi Desarmado!
+mcPlayerListener.SorcerySkill=Feitiçaria (Sorcery): 
+
+m.SkillSorcery=FEITIÇARIA
+Sorcery.HasCast=[[GREEN]]*CASTING*[[GOLD]]
+Sorcery.Current_Mana=[[DARK_AQUA]]MP
+Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
+Sorcery.Cost=[[RED]][COST] {0} MP
+Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Sem Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
+Sorcery.Water.Thunder=TROVAO
+Sorcery.Curative.Self=CURAR-SE
+Sorcery.Curative.Other=CURAR AMIGOS
+
+m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
+Combat.BeastLore=[[GREEN]]*CONHECIMENTO DE FERAS*
+Combat.BeastLoreOwner=[[DARK_AQUA]]Dono ([[RED]]{0}[[DARK_AQUA]])
+Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20)
+Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Vida ([[GREEN]]{0}[[DARK_AQUA]]/8)
+mcMMO.Description=[[DARK_AQUA]]Q: O QUE E? [[GOLD]]mcMMO é um mod [[RED]]OPEN SOURCE[[GOLD]] de RPG para a plataforma "Bukkit" feito por [[BLUE]]nossr50.[[GOLD]] Ele acresenta uma série de habilidades ao Minecraft. [[GOLD]]Você pode ganhar experiência de muitas maneiras.,[[GOLD]]Digite [[GREEN]]/NOME_DA_HABILIDADE[[GOLD]] para obter informaçoes sobre a habilidade.,[[DARK_AQUA]]Q: O QUE ELE FAZ? [[GOLD]]Por exemplo... em [[DARK_AQUA]]Mineraçao[[GOLD]] você receberá benefícios tais como [[RED]]Drop x2[[GOLD]] ou a habilidade [[RED]]Super Esmagador.[[GOLD]] que quando ativada com o clique direito permite minerar rapidamente durante sua duraçao. [[GOLD]]que depende do nível da sua habilidade. Aumentar o nível de [[BLUE]]Mineraçao[[GOLD]] é simples. basta minerar pedras ou minérios!,[[GOLD]]O objetivo do mcMMO é criar uma experiência de RPG de qualidade.,[[GOLD]]Digite [[GREEN]]/{0}[[GOLD]] para uma lista de comandos possíveis.,[[DARK_AQUA]]Q: ONDE POSSO SUGERIR IDEIAS!?,[[GOLD]]No tópico do mcMMO no fórum bukkit! (www.bit.ly/MCmmoIDEA),[[DARK_AQUA]]Q: Para mais informaçoes. leia a wiki do McMMO: [[RED]]mcmmo.wikia.com
+Party.Locked=[[RED]]Equipe está trancada, só o líder pode convidar.
+Party.IsntLocked=[[GRAY]]Equipe nao está trancada
+Party.Unlocked=[[GRAY]]Equipe foi Destrancada
+Party.Help1=[[RED]]O uso certo é [[YELLOW]]/{0} [[WHITE]]<nome>[[YELLOW]] ou [[WHITE]]'q' [[YELLOW]]para sair
+Party.Help2=[[RED]]Para entrar em uma equipe com senha use [[YELLOW]]/{0} [[WHITE]]<nome> <senha>
+Party.Help3=[[RED]]Consulte /{0} ? para mais informaçoes
+Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<nome> [[YELLOW]]para entrar em uma equipe ou [[WHITE]]'q' [[YELLOW]]para sair
+Party.Help5=[[RED]]Para trancar sua equipe use [[YELLOW]]/{0} [[WHITE]]lock
+Party.Help6=[[RED]]Para destrancar sua equipe use [[YELLOW]]/{0} [[WHITE]]unlock
+Party.Help7=[[RED]]Para colocar senha na sua equipe use [[YELLOW]]/{0} [[WHITE]]password <password>
+Party.Help8=[[RED]]Para excluir um jogador da equipe use [[YELLOW]]/{0} [[WHITE]]kick <player>
+Party.Help9=[[RED]]Para transferir a liderança da equipe use [[YELLOW]]/{0} [[WHITE]]owner <player>
+Party.NotOwner=[[DARK_RED]]Você nao é o líder da equipe
+Party.InvalidName=[[DARK_RED]]Este nome nao é valido
+Party.PasswordSet=[[GREEN]]Senha da equipe: {0}
+Party.CouldNotKick=[[DARK_RED]]Nao foi possível excluir o jogador {0}
+Party.NotInYourParty=[[DARK_RED]]{0} nao está na sua equipe
+Party.CouldNotSetOwner=[[DARK_RED]]Nao foi possível passar a liderança para {0}
+Commands.xprate.proper=[[DARK_AQUA]]Uso certo é /{0} [integer] [true:false]
+Commands.xprate.proper2=[[DARK_AQUA]]Também pode digitar /{0} reset para voltar tudo ao padrao
+Commands.xprate.proper3=[[RED]]Enter true or false for the second value
+Commands.xprate.over=[[RED]]Evento de XP Rate acabou!!
+Commands.xprate.started=[[GOLD]]EVENTO DE XP COMEÇOU!
+Commands.xprate.started2=[[GOLD]]XP RATE AGORA é {0}x!!
+Commands.xplock.locked=[[GOLD]]Sua barra de XP BAR está travada em {0}!
+Commands.xplock.unlocked=[[GOLD]]Sua barra de XP foi [[GREEN]]DESTRAVADA[[GOLD]]!
 Commands.xplock.invalid=[[RED]]Nao existe habilidade com esse nome! Tente /xplock mining

+ 342 - 342
mcMMO/com/gmail/nossr50/locale/locale_ru.properties → src/com/gmail/nossr50/locale/locale_ru.properties

@@ -1,343 +1,343 @@
-Combat.WolfExamine=[[GREEN]]**Вы научили Волка использованию "Удара волка"**
-Combat.WolfExamine=[[GREEN]]**Вы научили Волка использованию "Удара волка"**
-Combat.WolfShowMaster=[[DARK_GREEN]]Мастер по приручению Волков \: {0}
-Combat.Ignition=[[RED]]**Вы подожгли противника стрелой!!**
-Combat.BurningArrowHit=[[DARK_RED]]Вы были поражены горящей стрелой\!
-Combat.TouchedFuzzy=[[DARK_RED]]Вы истекаете кровью. Кружится голова.
-Combat.TargetDazed=Ваша цель [[DARK_RED]]Шокирована
-Combat.WolfNoMaster=[[GRAY]]У этого Волка нет хозяина
-Combat.WolfHealth=[[GREEN]]У этого Волка {0} Здоровья 
-Combat.StruckByGore=[[RED]]**Окравление неудачно**
-Combat.Gore=[[GREEN]]**Окравление**
-Combat.ArrowDeflect=[[WHITE]]**Стрела отскочила**
-Item.ChimaeraWingFail=**Крылья Химеры не смогли вас унести\!**
-Item.ChimaeraWingPass=**Крылья Химеры уносят вас...**
-Item.InjuredWait=Вы ранены и не сможете пока использовать это. [[YELLOW]]({0}s)
-Item.NeedFeathers=[[GRAY]]Вам нужно больше перьев..
-m.mccPartyCommands=[[GREEN]]--Групповые команды--
-m.mccParty=[party name] [[RED]]- Создание группы
-m.mccPartyQ=[[RED]]- Покиньте текущую группу
-m.mccPartyToggle=[[RED]] - Включить групповой чат
-m.mccPartyInvite=[player name] [[RED]]- Прислать приглашение в группу
-m.mccPartyAccept=[[RED]]- Подтвердить приглашение в группу
-m.mccPartyTeleport=[party member name] [[RED]]- Телепортироваться к члену группы
-m.mccOtherCommands=[[GREEN]]--Другие команды--
-m.mccStats=- Посмотреть ваши McMMo характеристики
-m.mccLeaderboards=- Доска Лидеров
-m.mccMySpawn=- Телепортирует к вашей кровати
-m.mccClearMySpawn=- Убирает вашу кровать
-m.mccToggleAbility=- Активировать возможность правым кликом мыши
-m.mccAdminToggle=- Включить админский чат
-m.mccWhois=[playername] [[RED]]- Посмотреть детальную информацию
-m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Изменить цель
-m.mccMcGod=- Режим Бога
-m.mccSkillInfo=[skillname] [[RED]]- Посмотреть детальную информацию о умении
-m.mccModDescription=[[RED]]- Прочитать информацию о моде McMMo
-m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
-m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0}
-m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
-m.AbilityLockTemplate=[[GRAY]]{0}
-m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
-m.Effects=ЭФФЕКТЫ
-m.YourStats=ВАШИ ХАРАКТЕРИСТИКИ
-m.SkillTaming=Приручение
-m.XPGainTaming=Волки причиняют ущерб
-m.EffectsTaming1_0=Удар Волка
-m.EffectsTaming1_1=Уменьшение количества костей
-m.EffectsTaming2_0=Окравление
-m.EffectsTaming2_1=Критический удар во время истекания кровью
-m.EffectsTaming3_0=Острые Когти
-m.EffectsTaming3_1=Бонус к урону
-m.EffectsTaming4_0=Независимость от экологии
-m.EffectsTaming4_1=Имунитет к падению, боязнь лавы/кактусов
-m.EffectsTaming5_0=Густой мех
-m.EffectsTaming5_1=Сокращение урона, огнеустойчивость
-m.EffectsTaming6_0=Надежная защита от повреждений
-m.EffectsTaming6_1=Снижение урона от взрывов
-m.AbilLockTaming1=Блокируется до 100+ уровня(Независимость от экологии)
-m.AbilLockTaming2=Блокируется до 250+ уровня (Густой мех)
-m.AbilLockTaming3=Блокируется до 500+ уровня (Надежная защита от повреждений)
-m.AbilLockTaming4=Блокируется до 700+ уровня (Острые Когти)
-m.AbilBonusTaming1_0=Независимость от экологии
-m.AbilBonusTaming1_1=Волки избегают опасностей
-m.AbilBonusTaming2_0=Густой мех
-m.AbilBonusTaming2_1=Урон наполовину, Огнеустойчивость
-m.AbilBonusTaming3_0=Надежная защита от повреждений
-m.AbilBonusTaming3_1=Взрывы причиняют 1/6 нормального урона
-m.AbilBonusTaming4_0=Острые Когти
-m.AbilBonusTaming4_1=+2 Урона
-m.TamingGoreChance=[[RED]]Шанс окравления: [[YELLOW]]{0}%
-m.SkillWoodCutting=Деревообработка
-m.XPGainWoodCutting=Рубить деревья
-m.EffectsWoodCutting1_0=Любитель деревьев(способность)
-m.EffectsWoodCutting1_1=Делать взрывы деревьев
-m.EffectsWoodCutting2_0=Быстрое срезание листьев
-m.EffectsWoodCutting2_1=Сдувать листья
-m.EffectsWoodCutting3_0=Двойной дроп
-m.EffectsWoodCutting3_1=Нормальный двойной дроп
-m.AbilLockWoodCutting1=Блокируется до 100+ уровня(Быстрое срезание листьев)
-m.AbilBonusWoodCutting1_0=Быстрое срезание листьев
-m.AbilBonusWoodCutting1_1=Сдувать листья
-m.WoodCuttingDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}%
-m.WoodCuttingTreeFellerLength=[[RED]]Продолжительность Любителя деревьев: [[YELLOW]]{0}s
-m.SkillArchery=Стрельба из лука
-m.XPGainArchery=Атаковать монстров из лука
-m.EffectsArchery1_0=Поджёг
-m.EffectsArchery1_1=25% шанс, что цель подожгётся
-m.EffectsArchery2_0=Шокирование(Игроков)
-m.EffectsArchery2_1=Дезориентирует врагов
-m.EffectsArchery3_0=Урон+
-m.EffectsArchery3_1=Улучшает Урон
-m.EffectsArchery4_0=Получение стрел
-m.EffectsArchery4_1=Шанс получить стрелы из трупов
-m.ArcheryDazeChance=[[RED]]Шанс шокировать: [[YELLOW]]{0}%
-m.ArcheryRetrieveChance=[[RED]]Шанс получить стрелы: [[YELLOW]]{0}%
-m.ArcheryIgnitionLength=[[RED]]Длительность поджёга: [[YELLOW]]{0} секунд
-m.ArcheryDamagePlus=[[RED]]Урон+ (Rank{0}): [[YELLOW]]Bonus {0} damage
-m.SkillAxes=Топоры
-m.XPGainAxes=Атаковать монстров топором
-m.EffectsAxes1_0=Разрушитель черепов(способность)
-m.EffectsAxes1_1=Увеличение урона от топора
-m.EffectsAxes2_0=Критические удары
-m.EffectsAxes2_1=Двойной урон
-m.EffectsAxes3_0=Мастерство топора(500 уровень)
-m.EffectsAxes3_1=Улучшение урона
-m.AbilLockAxes1=Блокируется до 500+ уровня(Мастерство топора)
-m.AbilBonusAxes1_0=Мастерство топора
-m.AbilBonusAxes1_1=Дает бонус в 4 урона
-m.AxesCritChance=[[RED]]Шанс критического удара: [[YELLOW]]{0}%
-m.AxesSkullLength=[[RED]]Продолжительность Разрушителя Черепов: [[YELLOW]]{0}s
-m.SkillSwords=Мечи
-m.XPGainSwords=Атаковать монстров мечом
-m.EffectsSwords1_0=Контр-Атака
-m.EffectsSwords1_1=Отражает 50% полученного урона
-m.EffectsSwords2_0=Зазубренные мечи(способность)
-m.EffectsSwords2_1=25% Урона+ и кровотечение от удара
-m.EffectsSwords3_0=Увелечение длительности способности "Зазубренные мечи"
-m.EffectsSwords3_1=Кровотечение 5 раз
-m.EffectsSwords4_0=Парирование
-m.EffectsSwords4_1=Отрицательный урон
-m.EffectsSwords5_0=Кровотечение
-m.EffectsSwords5_1=Заставляет врага кровоточить
-m.SwordsCounterAttChance=[[RED]]Шанс Контр-Атаки: [[YELLOW]]{0}%
-m.SwordsBleedLength=[[RED]]Длительность кровотечения: [[YELLOW]]{0} раз
-m.SwordsBleedChance=[[RED]]Шанс кровотечения: [[YELLOW]]{0} %
-m.SwordsParryChance=[[RED]]Шанс парирования: [[YELLOW]]{0} %
-m.SwordsSSLength=[[RED]]Длительность "Зазубренныx мечей": [[YELLOW]]{0}s
-m.SwordsTickNote=[[GRAY]]Заметка: [[YELLOW]]1 раз длиться 2 секунды
-m.SkillAcrobatics=Акробатика
-m.XPGainAcrobatics=Нужно Падать с гор
-m.EffectsAcrobatics1_0=Переворот
-m.EffectsAcrobatics1_1=Поглощает или уменьшает урон
-m.EffectsAcrobatics2_0=Превосходный переворот
-m.EffectsAcrobatics2_1=Дважды эффективнее переворота
-m.EffectsAcrobatics3_0=Уворот
-m.EffectsAcrobatics3_1=Уменьшает урон наполовину от стрелы
-m.AcrobaticsRollChance=[[RED]]Шанс переворота: [[YELLOW]]{0}%
-m.AcrobaticsGracefulRollChance=[[RED]]Шанс превосходного переворота: [[YELLOW]]{0}%
-m.AcrobaticsDodgeChance=[[RED]]Шанс уворота: [[YELLOW]]{0}%
-m.SkillMining=Шахтёрство
-m.XPGainMining=Добывать руду и камни в шахтах
-m.EffectsMining1_0=Супер разрушитель(способность)
-m.EffectsMining1_1=Увеличение скорости, Шанс тройного дропа
-m.EffectsMining2_0=Двойной дроп
-m.EffectsMining2_1=Двойной дроп становится нормальным
-m.MiningDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}%
-m.MiningSuperBreakerLength=[[RED]]Длительность способности "Супер Разрушитель": [[YELLOW]]{0}s
-m.SkillRepair=Починка
-m.XPGainRepair=Чинить вещи
-m.EffectsRepair1_0=Починка
-m.EffectsRepair1_1=Чинит Железные инструменты и броню
-m.EffectsRepair2_0=Мастерство починки
-m.EffectsRepair2_1=Увеличивает качество ремонта
-m.EffectsRepair3_0=Супер починка
-m.EffectsRepair3_1=Двойная эффективность вещей
-m.EffectsRepair4_0=Починка Алмазных вещей ({0}+ уровень)
-m.EffectsRepair4_1=Чинить Алмазные инструменты и броню
-m.RepairRepairMastery=[[RED]]Мастерство починки: [[YELLOW]]Дополнительно {0}% долговечности восстановлено
-m.RepairSuperRepairChance=[[RED]]Шанс Супер починки: [[YELLOW]]{0}%
-m.SkillUnarmed=Рукопашный бой
-m.XPGainUnarmed=Атаковать монстров голыми руками
-m.EffectsUnarmed1_0=Берсерк(способность)
-m.EffectsUnarmed1_1=+50% Урона, Ломать слабые материалы
-m.EffectsUnarmed2_0=Обезоружение(Игроки)
-m.EffectsUnarmed2_1=Падает оружие противника на землю, которое находится в руках у него.
-m.EffectsUnarmed3_0=Мастер Рукопашного боя
-m.EffectsUnarmed3_1=Улучшение урона от кулаков
-m.EffectsUnarmed4_0=Ученик рукопашного боя
-m.EffectsUnarmed4_1=Увеличение урона от кулаков
-m.EffectsUnarmed5_0=Отражение стрел
-m.EffectsUnarmed5_1=Стрелы отражаются
-m.AbilLockUnarmed1=Блокируется до 250+ уровня(Ученик рукопашного боя)
-m.AbilLockUnarmed2=Блокируется до 500+ уровня(Мастер Рукопашного боя)
-m.AbilBonusUnarmed1_0=Ученик рукопашного боя
-m.AbilBonusUnarmed1_1=+2 бонус к урону
-m.AbilBonusUnarmed2_0=Мастер Рукопашного боя
-m.AbilBonusUnarmed2_1=+4 бонус к урону
-m.UnarmedArrowDeflectChance=[[RED]]Шанс отразить стрелы: [[YELLOW]]{0}%
-m.UnarmedDisarmChance=[[RED]]Шанс обезоружить: [[YELLOW]]{0}%
-m.UnarmedBerserkLength=[[RED]]Длительность "Берсерка": [[YELLOW]]{0}s
-m.SkillHerbalism=Травоведение
-m.XPGainHerbalism=Выращивать растения
-m.EffectsHerbalism1_0=Озеленитель(способность)
-m.EffectsHerbalism1_1=Распростронение озеленений, 3-ой дроп
-m.EffectsHerbalism2_0="Зеленый фермер"(Пщеница)
-m.EffectsHerbalism2_1=Авто выращивание пщеницы после посадки
-m.EffectsHerbalism3_0="Зеленый фермер"(Мох)
-m.EffectsHerbalism3_1=Камень -> Замшелый камень + семена
-m.EffectsHerbalism4_0=Улучшение еды
-m.EffectsHerbalism4_1=Улучшает количество здоровья от хлеба и грибного супа
-m.EffectsHerbalism5_0=Дройной дроп(Все растения)
-m.EffectsHerbalism5_1=Двойной дроп становится нормальным
-m.HerbalismGreenTerraLength=[[RED]]Продолжительность "Озеленителя": [[YELLOW]]{0}s
-m.HerbalismGreenThumbChance=[[RED]]Шанс "Зеленого фермера": [[YELLOW]]{0}%
-m.HerbalismGreenThumbStage=[[RED]]Уровень "Зеленого фермера": [[YELLOW]] Пщеница растет по-уровнево {0}
-m.HerbalismDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}%
-m.HerbalismFoodPlus=[[RED]]Еда+ (Rank{0}): [[YELLOW]]Бонус {0} лечения
-m.SkillExcavation=Раскопка
-m.XPGainExcavation=Раскапывать и искать сокровища
-m.EffectsExcavation1_0=Мега дрель(способность)
-m.EffectsExcavation1_1=3-ой дроп, 3-ой опыт, Увеличение скорости
-m.EffectsExcavation2_0=Охотник за сокровищами
-m.EffectsExcavation2_1=Способность копать сокровища
-m.ExcavationGreenTerraLength=[[RED]]Продолжительность "Мега дрели": [[YELLOW]]{0}s
-mcBlockListener.PlacedAnvil=[[DARK_RED]]Вы разместили наковальни и теперь можете чинить вещи.
-mcEntityListener.WolfComesBack=[[DARK_GRAY]]Ваш волк хочет вернуться к вам
-mcPlayerListener.AbilitiesOff=Использование способностей выключено
-mcPlayerListener.AbilitiesOn=Использование способностей включено
-mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**Способности восстановлены\!**
-mcPlayerListener.AcrobaticsSkill=Акробатика: 
-mcPlayerListener.ArcherySkill=Стрельба из лука: 
-mcPlayerListener.AxesSkill=Топоры: 
-mcPlayerListener.ExcavationSkill=Раскопка: 
-mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO режим бога выключен
-mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO режим бога включён
-mcPlayerListener.GreenThumb=[[GREEN]]**"Зеленый фермер"**
-mcPlayerListener.GreenThumbFail=[[RED]]**"Зеленый фермер" неудался**
-mcPlayerListener.HerbalismSkill=Травоведение: 
-mcPlayerListener.MiningSkill=Шахтёрство: 
-mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Ваша кровать убрана.
-mcPlayerListener.MyspawnNotExist=[[RED]]Сделайте вашу точку появления возле кровати, поспав на кровати.
-mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Моя точка появления сохранена в этой локации.
-mcPlayerListener.MyspawnTimeNotice=Вы должны подождать {0}m {1}s чтобы использовать появление около кровати
-mcPlayerListener.NoPermission=Недостаточные права.
-mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Если у вас нет доступа к умению, то оно здесь не отобразится.
-mcPlayerListener.NotInParty=[[RED]]Вы не в группе!
-mcPlayerListener.InviteSuccess=[[GREEN]]Приглашение успешно послано.
-mcPlayerListener.ReceivedInvite1=[[RED]]ТРЕВОГА: [[GREEN]]Вы получили приглашение на вступление в группу {0} от {1}
-mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] чтобы одобрить вступление
-mcPlayerListener.InviteAccepted=[[GREEN]]Приглашение одобрено. Вы вступили в группу {0}
-mcPlayerListener.NoInvites=[[RED]]У вас нет приглашений в группу сейчас
-mcPlayerListener.YouAreInParty=[[GREEN]]Вы уже в группе {0}
-mcPlayerListener.PartyMembers=[[GREEN]]Члены группы
-mcPlayerListener.LeftParty=[[RED]]Вы вышли из группы
-mcPlayerListener.JoinedParty=Присоединные группы: {0}
-mcPlayerListener.PartyChatOn=Только чат группы [[GREEN]]Включено
-mcPlayerListener.PartyChatOff=Только чат группы [[RED]]Выключено
-mcPlayerListener.AdminChatOn=Только админ чат [[GREEN]]Включено
-mcPlayerListener.AdminChatOff=Только админ чат [[RED]]Выключено
-mcPlayerListener.MOTD=[[BLUE]]На этом сервере установлен плагин McMMO {0} type [[YELLOW]]/{1}[[BLUE]] для помощи.
-mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Википедия
-mcPlayerListener.PowerLevel=[[DARK_RED]]Уровень умений: 
-mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Уровень умений [[YELLOW]]Доска Лидеров--
-mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Доска Лидеров--
-mcPlayerListener.RepairSkill=Починка: 
-mcPlayerListener.SwordsSkill=Мечи: 
-mcPlayerListener.TamingSkill=Приручение волков: 
-mcPlayerListener.UnarmedSkill=Рукопашный бой: 
-mcPlayerListener.WoodcuttingSkill=Деревообработка: 
-mcPlayerListener.YourStats=[[GREEN]][mcMMO] Характеристики
-Party.InformedOnJoin={0} [[GREEN]] присоединился к группе
-Party.InformedOnQuit={0} [[GREEN]] ушёл из группы
-Skills.YourGreenTerra=[[GREEN]]Ваша способность[[YELLOW]]"Озеленение" [[GREEN]]восстановлена!
-Skills.YourTreeFeller=[[GREEN]]Ваша способность [[YELLOW]]"Любитель деревьев" [[GREEN]]восстановлена!
-Skills.YourSuperBreaker=[[GREEN]]Ваша способность [[YELLOW]]"Супер разрушитель" [[GREEN]]восстановлена!
-Skills.YourSerratedStrikes=[[GREEN]]Ваша способность [[YELLOW]]"Зазубренные мечи" [[GREEN]]восстановлена!
-Skills.YourBerserk=[[GREEN]]Ваша способность [[YELLOW]]"Берсерк" [[GREEN]]восстановлена!
-Skills.YourSkullSplitter=[[GREEN]]Ваша способность [[YELLOW]]"Разрушитель черепов" [[GREEN]]восстановлена!
-Skills.YourGigaDrillBreaker=[[GREEN]]Ваша способность [[YELLOW]]"Мега дрель" [[GREEN]]восстановлена!
-Skills.TooTired=[[RED]]Вы слишком устали, чтобы использовать способность ещё раз.
-Skills.ReadyHoe=[[GREEN]]**Приготовьте вашу Мотыгу**
-Skills.LowerHoe=[[GRAY]]**Опустите вашу Мотыгу**
-Skills.ReadyAxe=[[GREEN]]**Приготовьте ваш Топор**
-Skills.LowerAxe=[[GRAY]]**Опустите ваш Топор**
-Skills.ReadyFists=[[GREEN]]**Приготовьте ваши Кулаки**
-Skills.LowerFists=[[GRAY]]**Опустите ваши Кулаки**
-Skills.ReadyPickAxe=[[GREEN]]**Приготовьте вашу Кирку**
-Skills.LowerPickAxe=[[GRAY]]**Опустите вашу Кирку**
-Skills.ReadyShovel=[[GREEN]]**Приготовьте вашу Лопату**
-Skills.LowerShovel=[[GRAY]]**Опустите вашу Лопату**
-Skills.ReadySword=[[GREEN]]**Приготовьте ваш Меч**
-Skills.LowerSword=[[GRAY]]**Опустите ваш Меч**
-Skills.BerserkOn=[[GREEN]]**Способность "Берсерк" активирована**
-Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Берсерк"!
-Skills.GreenTerraOn=[[GREEN]]**Способность "Озеленение" активирована**
-Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Озеленение"!
-Skills.TreeFellerOn=[[GREEN]]**Способность "Любитель Деревьев" активирована**
-Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Любитель Деревьев"!
-Skills.SuperBreakerOn=[[GREEN]]**Способность "Супер Разрушитель" активирована**
-Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Супер Разрушитель"!
-Skills.SerratedStrikesOn=[[GREEN]]**Способность "Зазубренные мечи" активирована**
-Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Зазубренные мечи"!
-Skills.SkullSplitterOn=[[GREEN]]**Способность "Разрешитель черепов" активирована**
-Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Разрушитель черепов"!
-Skills.GigaDrillBreakerOn=[[GREEN]]**Способность "Мега дрель" активирована**
-Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Мега дрель"!
-Skills.GreenTerraOff=[[RED]]**Способность "Озеленение" деактивирована**
-Skills.TreeFellerOff=[[RED]]**Способность "Любитель Деревьев" деактивирована**
-Skills.SuperBreakerOff=[[RED]]**Способность "Супер Разрушитель" деактивирована**
-Skills.SerratedStrikesOff=[[RED]]**Способность "Зазубренные мечи" деактивирована**
-Skills.BerserkOff=[[RED]]**Способность "Берсерк" деактивирована**
-Skills.SkullSplitterOff=[[RED]]**Способность "Разрешитель черепов" деактивирована**
-Skills.GigaDrillBreakerOff=[[RED]]**Способность "Мега дрель" деактивирована**
-Skills.TamingUp=[[YELLOW]]Умение "Приручение волков" повышено на {0}. Всего ({1})
-Skills.AcrobaticsUp=[[YELLOW]]Умение "Акробатика" повышено на {0}. Всего ({1})
-Skills.ArcheryUp=[[YELLOW]]Умение "Стрельба из лука" повышено на {0}. Всего ({1})
-Skills.SwordsUp=[[YELLOW]]Умение "Мечи" повышено на {0}. Всего ({1})
-Skills.AxesUp=[[YELLOW]]Умение "Топоры" повышено на {0}. Всего ({1})
-Skills.UnarmedUp=[[YELLOW]]Умение "Рукопашный бой" повышено на {0}. Всего ({1})
-Skills.HerbalismUp=[[YELLOW]]Умение "Травоведение" повышено на {0}. Всего ({1})
-Skills.MiningUp=[[YELLOW]]Умение "Шахтёрство" повышено на {0}. Всего ({1})
-Skills.WoodcuttingUp=[[YELLOW]]Умение "Деревообработка" повышено на {0}. Всего ({1})
-Skills.RepairUp=[[YELLOW]]Умение "Починка" повышено на {0}. Всего ({1})
-Skills.ExcavationUp=[[YELLOW]]Умение "Раскопка" повышено на {0}. Всего ({1})
-Skills.FeltEasy=[[GRAY]]Это было легко.
-Skills.StackedItems=[[DARK_RED]]Вы не можете чинить стакующиеся предметы
-Skills.NeedMore=[[DARK_RED]]Нужно больше материала
-Skills.AdeptDiamond=[[DARK_RED]]Вы не обучены чинить алмазные инструменты и броню
-Skills.FullDurability=[[GRAY]]Вещь не нуждается в починке.
-Skills.Disarmed=[[DARK_RED]]Вы обезоружены!
-mcPlayerListener.SorcerySkill=Колдовство: 
-m.SkillSorcery=Колдовство
-Sorcery.HasCast=[[GREEN]]**Использую "Колдовство"**[[GOLD]]
-Sorcery.Current_Mana=[[DARK_AQUA]] Маны
-Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
-Sorcery.Cost=[[RED]][COST] {0} Маны
-Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Не хватает маны [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
-Sorcery.Water.Thunder=Гром
-Sorcery.Curative.Self=Вылечить себя
-Sorcery.Curative.Other=Вылечить других
-m.LVL=[[DARK_GRAY]]Уровень: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
-Combat.BeastLore=[[GREEN]]**Умение "Удар волка" активировано**
-Combat.BeastLoreOwner=[[DARK_AQUA]]Владелец ([[RED]]{0}[[DARK_AQUA]])
-Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Здоровья ([[GREEN]]{0}[[DARK_AQUA]]/20)
-Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Здоровья ([[GREEN]]{0}[[DARK_AQUA]]/8)
-Party.Locked=[[RED]]Группа запаролена, только лидер группы может приглашать.
-Party.IsntLocked=[[GRAY]]Группа разблокирована
-Party.Unlocked=[[GRAY]]Группа разблокирована
-Party.Help1=[[RED]]Использование [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] или [[WHITE]]'q' [[YELLOW]]для выхода
-Party.Help2=[[RED]]Чтобы присоединится к запароленной группе введите [[YELLOW]]/{0} [[WHITE]]<имя> <пароль>
-Party.Help3=[[RED]]Введите /{0} ? для большей информации
-Party.Help4=[[RED]]Используйте [[YELLOW]]/{0} [[WHITE]]<имя> [[YELLOW]]чтобы присоединится к группе или [[WHITE]]'q' [[YELLOW]]для выхода
-Party.Help5=[[RED]]Чтобы заблокировать группу введите [[YELLOW]]/{0} [[WHITE]]lock
-Party.Help6=[[RED]]Чтобы разблокировать группу введите [[YELLOW]]/{0} [[WHITE]]unlock
-Party.Help7=[[RED]]Чтобы запаролить группу введите [[YELLOW]]/{0} [[WHITE]]password <пароль>
-Party.Help8=[[RED]]Чтобы выкинуть игрока из группы введите [[YELLOW]]/{0} [[WHITE]]kick <игрок>
-Party.Help9=[[RED]]Чтобы отдать лидерство группы введите [[YELLOW]]/{0} [[WHITE]]owner <игрок>
-Party.NotOwner=[[DARK_RED]]Вы теперь не лидер группы
-Party.InvalidName=[[DARK_RED]]Некорректное имя группы
-Party.PasswordSet=[[GREEN]]Пароль группы назначен {0}
-Party.CouldNotKick=[[DARK_RED]]Вы не можете убрать игрока из группы {0}
-Party.NotInYourParty=[[DARK_RED]]{0} не в группе
-Party.CouldNotSetOwner=[[DARK_RED]]Вы не можете отдать лидерство игроку {0}
+Combat.WolfExamine=[[GREEN]]**Вы научили Волка использованию "Удара волка"**
+Combat.WolfExamine=[[GREEN]]**Вы научили Волка использованию "Удара волка"**
+Combat.WolfShowMaster=[[DARK_GREEN]]Мастер по приручению Волков \: {0}
+Combat.Ignition=[[RED]]**Вы подожгли противника стрелой!!**
+Combat.BurningArrowHit=[[DARK_RED]]Вы были поражены горящей стрелой\!
+Combat.TouchedFuzzy=[[DARK_RED]]Вы истекаете кровью. Кружится голова.
+Combat.TargetDazed=Ваша цель [[DARK_RED]]Шокирована
+Combat.WolfNoMaster=[[GRAY]]У этого Волка нет хозяина
+Combat.WolfHealth=[[GREEN]]У этого Волка {0} Здоровья 
+Combat.StruckByGore=[[RED]]**Окравление неудачно**
+Combat.Gore=[[GREEN]]**Окравление**
+Combat.ArrowDeflect=[[WHITE]]**Стрела отскочила**
+Item.ChimaeraWingFail=**Крылья Химеры не смогли вас унести\!**
+Item.ChimaeraWingPass=**Крылья Химеры уносят вас...**
+Item.InjuredWait=Вы ранены и не сможете пока использовать это. [[YELLOW]]({0}s)
+Item.NeedFeathers=[[GRAY]]Вам нужно больше перьев..
+m.mccPartyCommands=[[GREEN]]--Групповые команды--
+m.mccParty=[party name] [[RED]]- Создание группы
+m.mccPartyQ=[[RED]]- Покиньте текущую группу
+m.mccPartyToggle=[[RED]] - Включить групповой чат
+m.mccPartyInvite=[player name] [[RED]]- Прислать приглашение в группу
+m.mccPartyAccept=[[RED]]- Подтвердить приглашение в группу
+m.mccPartyTeleport=[party member name] [[RED]]- Телепортироваться к члену группы
+m.mccOtherCommands=[[GREEN]]--Другие команды--
+m.mccStats=- Посмотреть ваши McMMo характеристики
+m.mccLeaderboards=- Доска Лидеров
+m.mccMySpawn=- Телепортирует к вашей кровати
+m.mccClearMySpawn=- Убирает вашу кровать
+m.mccToggleAbility=- Активировать возможность правым кликом мыши
+m.mccAdminToggle=- Включить админский чат
+m.mccWhois=[playername] [[RED]]- Посмотреть детальную информацию
+m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Изменить цель
+m.mccMcGod=- Режим Бога
+m.mccSkillInfo=[skillname] [[RED]]- Посмотреть детальную информацию о умении
+m.mccModDescription=[[RED]]- Прочитать информацию о моде McMMo
+m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
+m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0}
+m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
+m.AbilityLockTemplate=[[GRAY]]{0}
+m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
+m.Effects=ЭФФЕКТЫ
+m.YourStats=ВАШИ ХАРАКТЕРИСТИКИ
+m.SkillTaming=Приручение
+m.XPGainTaming=Волки причиняют ущерб
+m.EffectsTaming1_0=Удар Волка
+m.EffectsTaming1_1=Уменьшение количества костей
+m.EffectsTaming2_0=Окравление
+m.EffectsTaming2_1=Критический удар во время истекания кровью
+m.EffectsTaming3_0=Острые Когти
+m.EffectsTaming3_1=Бонус к урону
+m.EffectsTaming4_0=Независимость от экологии
+m.EffectsTaming4_1=Имунитет к падению, боязнь лавы/кактусов
+m.EffectsTaming5_0=Густой мех
+m.EffectsTaming5_1=Сокращение урона, огнеустойчивость
+m.EffectsTaming6_0=Надежная защита от повреждений
+m.EffectsTaming6_1=Снижение урона от взрывов
+m.AbilLockTaming1=Блокируется до 100+ уровня(Независимость от экологии)
+m.AbilLockTaming2=Блокируется до 250+ уровня (Густой мех)
+m.AbilLockTaming3=Блокируется до 500+ уровня (Надежная защита от повреждений)
+m.AbilLockTaming4=Блокируется до 700+ уровня (Острые Когти)
+m.AbilBonusTaming1_0=Независимость от экологии
+m.AbilBonusTaming1_1=Волки избегают опасностей
+m.AbilBonusTaming2_0=Густой мех
+m.AbilBonusTaming2_1=Урон наполовину, Огнеустойчивость
+m.AbilBonusTaming3_0=Надежная защита от повреждений
+m.AbilBonusTaming3_1=Взрывы причиняют 1/6 нормального урона
+m.AbilBonusTaming4_0=Острые Когти
+m.AbilBonusTaming4_1=+2 Урона
+m.TamingGoreChance=[[RED]]Шанс окравления: [[YELLOW]]{0}%
+m.SkillWoodCutting=Деревообработка
+m.XPGainWoodCutting=Рубить деревья
+m.EffectsWoodCutting1_0=Любитель деревьев(способность)
+m.EffectsWoodCutting1_1=Делать взрывы деревьев
+m.EffectsWoodCutting2_0=Быстрое срезание листьев
+m.EffectsWoodCutting2_1=Сдувать листья
+m.EffectsWoodCutting3_0=Двойной дроп
+m.EffectsWoodCutting3_1=Нормальный двойной дроп
+m.AbilLockWoodCutting1=Блокируется до 100+ уровня(Быстрое срезание листьев)
+m.AbilBonusWoodCutting1_0=Быстрое срезание листьев
+m.AbilBonusWoodCutting1_1=Сдувать листья
+m.WoodCuttingDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}%
+m.WoodCuttingTreeFellerLength=[[RED]]Продолжительность Любителя деревьев: [[YELLOW]]{0}s
+m.SkillArchery=Стрельба из лука
+m.XPGainArchery=Атаковать монстров из лука
+m.EffectsArchery1_0=Поджёг
+m.EffectsArchery1_1=25% шанс, что цель подожгётся
+m.EffectsArchery2_0=Шокирование(Игроков)
+m.EffectsArchery2_1=Дезориентирует врагов
+m.EffectsArchery3_0=Урон+
+m.EffectsArchery3_1=Улучшает Урон
+m.EffectsArchery4_0=Получение стрел
+m.EffectsArchery4_1=Шанс получить стрелы из трупов
+m.ArcheryDazeChance=[[RED]]Шанс шокировать: [[YELLOW]]{0}%
+m.ArcheryRetrieveChance=[[RED]]Шанс получить стрелы: [[YELLOW]]{0}%
+m.ArcheryIgnitionLength=[[RED]]Длительность поджёга: [[YELLOW]]{0} секунд
+m.ArcheryDamagePlus=[[RED]]Урон+ (Rank{0}): [[YELLOW]]Bonus {0} damage
+m.SkillAxes=Топоры
+m.XPGainAxes=Атаковать монстров топором
+m.EffectsAxes1_0=Разрушитель черепов(способность)
+m.EffectsAxes1_1=Увеличение урона от топора
+m.EffectsAxes2_0=Критические удары
+m.EffectsAxes2_1=Двойной урон
+m.EffectsAxes3_0=Мастерство топора(500 уровень)
+m.EffectsAxes3_1=Улучшение урона
+m.AbilLockAxes1=Блокируется до 500+ уровня(Мастерство топора)
+m.AbilBonusAxes1_0=Мастерство топора
+m.AbilBonusAxes1_1=Дает бонус в 4 урона
+m.AxesCritChance=[[RED]]Шанс критического удара: [[YELLOW]]{0}%
+m.AxesSkullLength=[[RED]]Продолжительность Разрушителя Черепов: [[YELLOW]]{0}s
+m.SkillSwords=Мечи
+m.XPGainSwords=Атаковать монстров мечом
+m.EffectsSwords1_0=Контр-Атака
+m.EffectsSwords1_1=Отражает 50% полученного урона
+m.EffectsSwords2_0=Зазубренные мечи(способность)
+m.EffectsSwords2_1=25% Урона+ и кровотечение от удара
+m.EffectsSwords3_0=Увелечение длительности способности "Зазубренные мечи"
+m.EffectsSwords3_1=Кровотечение 5 раз
+m.EffectsSwords4_0=Парирование
+m.EffectsSwords4_1=Отрицательный урон
+m.EffectsSwords5_0=Кровотечение
+m.EffectsSwords5_1=Заставляет врага кровоточить
+m.SwordsCounterAttChance=[[RED]]Шанс Контр-Атаки: [[YELLOW]]{0}%
+m.SwordsBleedLength=[[RED]]Длительность кровотечения: [[YELLOW]]{0} раз
+m.SwordsBleedChance=[[RED]]Шанс кровотечения: [[YELLOW]]{0} %
+m.SwordsParryChance=[[RED]]Шанс парирования: [[YELLOW]]{0} %
+m.SwordsSSLength=[[RED]]Длительность "Зазубренныx мечей": [[YELLOW]]{0}s
+m.SwordsTickNote=[[GRAY]]Заметка: [[YELLOW]]1 раз длиться 2 секунды
+m.SkillAcrobatics=Акробатика
+m.XPGainAcrobatics=Нужно Падать с гор
+m.EffectsAcrobatics1_0=Переворот
+m.EffectsAcrobatics1_1=Поглощает или уменьшает урон
+m.EffectsAcrobatics2_0=Превосходный переворот
+m.EffectsAcrobatics2_1=Дважды эффективнее переворота
+m.EffectsAcrobatics3_0=Уворот
+m.EffectsAcrobatics3_1=Уменьшает урон наполовину от стрелы
+m.AcrobaticsRollChance=[[RED]]Шанс переворота: [[YELLOW]]{0}%
+m.AcrobaticsGracefulRollChance=[[RED]]Шанс превосходного переворота: [[YELLOW]]{0}%
+m.AcrobaticsDodgeChance=[[RED]]Шанс уворота: [[YELLOW]]{0}%
+m.SkillMining=Шахтёрство
+m.XPGainMining=Добывать руду и камни в шахтах
+m.EffectsMining1_0=Супер разрушитель(способность)
+m.EffectsMining1_1=Увеличение скорости, Шанс тройного дропа
+m.EffectsMining2_0=Двойной дроп
+m.EffectsMining2_1=Двойной дроп становится нормальным
+m.MiningDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}%
+m.MiningSuperBreakerLength=[[RED]]Длительность способности "Супер Разрушитель": [[YELLOW]]{0}s
+m.SkillRepair=Починка
+m.XPGainRepair=Чинить вещи
+m.EffectsRepair1_0=Починка
+m.EffectsRepair1_1=Чинит Железные инструменты и броню
+m.EffectsRepair2_0=Мастерство починки
+m.EffectsRepair2_1=Увеличивает качество ремонта
+m.EffectsRepair3_0=Супер починка
+m.EffectsRepair3_1=Двойная эффективность вещей
+m.EffectsRepair4_0=Починка Алмазных вещей ({0}+ уровень)
+m.EffectsRepair4_1=Чинить Алмазные инструменты и броню
+m.RepairRepairMastery=[[RED]]Мастерство починки: [[YELLOW]]Дополнительно {0}% долговечности восстановлено
+m.RepairSuperRepairChance=[[RED]]Шанс Супер починки: [[YELLOW]]{0}%
+m.SkillUnarmed=Рукопашный бой
+m.XPGainUnarmed=Атаковать монстров голыми руками
+m.EffectsUnarmed1_0=Берсерк(способность)
+m.EffectsUnarmed1_1=+50% Урона, Ломать слабые материалы
+m.EffectsUnarmed2_0=Обезоружение(Игроки)
+m.EffectsUnarmed2_1=Падает оружие противника на землю, которое находится в руках у него.
+m.EffectsUnarmed3_0=Мастер Рукопашного боя
+m.EffectsUnarmed3_1=Улучшение урона от кулаков
+m.EffectsUnarmed4_0=Ученик рукопашного боя
+m.EffectsUnarmed4_1=Увеличение урона от кулаков
+m.EffectsUnarmed5_0=Отражение стрел
+m.EffectsUnarmed5_1=Стрелы отражаются
+m.AbilLockUnarmed1=Блокируется до 250+ уровня(Ученик рукопашного боя)
+m.AbilLockUnarmed2=Блокируется до 500+ уровня(Мастер Рукопашного боя)
+m.AbilBonusUnarmed1_0=Ученик рукопашного боя
+m.AbilBonusUnarmed1_1=+2 бонус к урону
+m.AbilBonusUnarmed2_0=Мастер Рукопашного боя
+m.AbilBonusUnarmed2_1=+4 бонус к урону
+m.UnarmedArrowDeflectChance=[[RED]]Шанс отразить стрелы: [[YELLOW]]{0}%
+m.UnarmedDisarmChance=[[RED]]Шанс обезоружить: [[YELLOW]]{0}%
+m.UnarmedBerserkLength=[[RED]]Длительность "Берсерка": [[YELLOW]]{0}s
+m.SkillHerbalism=Травоведение
+m.XPGainHerbalism=Выращивать растения
+m.EffectsHerbalism1_0=Озеленитель(способность)
+m.EffectsHerbalism1_1=Распростронение озеленений, 3-ой дроп
+m.EffectsHerbalism2_0="Зеленый фермер"(Пщеница)
+m.EffectsHerbalism2_1=Авто выращивание пщеницы после посадки
+m.EffectsHerbalism3_0="Зеленый фермер"(Мох)
+m.EffectsHerbalism3_1=Камень -> Замшелый камень + семена
+m.EffectsHerbalism4_0=Улучшение еды
+m.EffectsHerbalism4_1=Улучшает количество здоровья от хлеба и грибного супа
+m.EffectsHerbalism5_0=Дройной дроп(Все растения)
+m.EffectsHerbalism5_1=Двойной дроп становится нормальным
+m.HerbalismGreenTerraLength=[[RED]]Продолжительность "Озеленителя": [[YELLOW]]{0}s
+m.HerbalismGreenThumbChance=[[RED]]Шанс "Зеленого фермера": [[YELLOW]]{0}%
+m.HerbalismGreenThumbStage=[[RED]]Уровень "Зеленого фермера": [[YELLOW]] Пщеница растет по-уровнево {0}
+m.HerbalismDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}%
+m.HerbalismFoodPlus=[[RED]]Еда+ (Rank{0}): [[YELLOW]]Бонус {0} лечения
+m.SkillExcavation=Раскопка
+m.XPGainExcavation=Раскапывать и искать сокровища
+m.EffectsExcavation1_0=Мега дрель(способность)
+m.EffectsExcavation1_1=3-ой дроп, 3-ой опыт, Увеличение скорости
+m.EffectsExcavation2_0=Охотник за сокровищами
+m.EffectsExcavation2_1=Способность копать сокровища
+m.ExcavationGreenTerraLength=[[RED]]Продолжительность "Мега дрели": [[YELLOW]]{0}s
+mcBlockListener.PlacedAnvil=[[DARK_RED]]Вы разместили наковальни и теперь можете чинить вещи.
+mcEntityListener.WolfComesBack=[[DARK_GRAY]]Ваш волк хочет вернуться к вам
+mcPlayerListener.AbilitiesOff=Использование способностей выключено
+mcPlayerListener.AbilitiesOn=Использование способностей включено
+mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**Способности восстановлены\!**
+mcPlayerListener.AcrobaticsSkill=Акробатика: 
+mcPlayerListener.ArcherySkill=Стрельба из лука: 
+mcPlayerListener.AxesSkill=Топоры: 
+mcPlayerListener.ExcavationSkill=Раскопка: 
+mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO режим бога выключен
+mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO режим бога включён
+mcPlayerListener.GreenThumb=[[GREEN]]**"Зеленый фермер"**
+mcPlayerListener.GreenThumbFail=[[RED]]**"Зеленый фермер" неудался**
+mcPlayerListener.HerbalismSkill=Травоведение: 
+mcPlayerListener.MiningSkill=Шахтёрство: 
+mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Ваша кровать убрана.
+mcPlayerListener.MyspawnNotExist=[[RED]]Сделайте вашу точку появления возле кровати, поспав на кровати.
+mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Моя точка появления сохранена в этой локации.
+mcPlayerListener.MyspawnTimeNotice=Вы должны подождать {0}m {1}s чтобы использовать появление около кровати
+mcPlayerListener.NoPermission=Недостаточные права.
+mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Если у вас нет доступа к умению, то оно здесь не отобразится.
+mcPlayerListener.NotInParty=[[RED]]Вы не в группе!
+mcPlayerListener.InviteSuccess=[[GREEN]]Приглашение успешно послано.
+mcPlayerListener.ReceivedInvite1=[[RED]]ТРЕВОГА: [[GREEN]]Вы получили приглашение на вступление в группу {0} от {1}
+mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] чтобы одобрить вступление
+mcPlayerListener.InviteAccepted=[[GREEN]]Приглашение одобрено. Вы вступили в группу {0}
+mcPlayerListener.NoInvites=[[RED]]У вас нет приглашений в группу сейчас
+mcPlayerListener.YouAreInParty=[[GREEN]]Вы уже в группе {0}
+mcPlayerListener.PartyMembers=[[GREEN]]Члены группы
+mcPlayerListener.LeftParty=[[RED]]Вы вышли из группы
+mcPlayerListener.JoinedParty=Присоединные группы: {0}
+mcPlayerListener.PartyChatOn=Только чат группы [[GREEN]]Включено
+mcPlayerListener.PartyChatOff=Только чат группы [[RED]]Выключено
+mcPlayerListener.AdminChatOn=Только админ чат [[GREEN]]Включено
+mcPlayerListener.AdminChatOff=Только админ чат [[RED]]Выключено
+mcPlayerListener.MOTD=[[BLUE]]На этом сервере установлен плагин McMMO {0} type [[YELLOW]]/{1}[[BLUE]] для помощи.
+mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Википедия
+mcPlayerListener.PowerLevel=[[DARK_RED]]Уровень умений: 
+mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Уровень умений [[YELLOW]]Доска Лидеров--
+mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Доска Лидеров--
+mcPlayerListener.RepairSkill=Починка: 
+mcPlayerListener.SwordsSkill=Мечи: 
+mcPlayerListener.TamingSkill=Приручение волков: 
+mcPlayerListener.UnarmedSkill=Рукопашный бой: 
+mcPlayerListener.WoodcuttingSkill=Деревообработка: 
+mcPlayerListener.YourStats=[[GREEN]][mcMMO] Характеристики
+Party.InformedOnJoin={0} [[GREEN]] присоединился к группе
+Party.InformedOnQuit={0} [[GREEN]] ушёл из группы
+Skills.YourGreenTerra=[[GREEN]]Ваша способность[[YELLOW]]"Озеленение" [[GREEN]]восстановлена!
+Skills.YourTreeFeller=[[GREEN]]Ваша способность [[YELLOW]]"Любитель деревьев" [[GREEN]]восстановлена!
+Skills.YourSuperBreaker=[[GREEN]]Ваша способность [[YELLOW]]"Супер разрушитель" [[GREEN]]восстановлена!
+Skills.YourSerratedStrikes=[[GREEN]]Ваша способность [[YELLOW]]"Зазубренные мечи" [[GREEN]]восстановлена!
+Skills.YourBerserk=[[GREEN]]Ваша способность [[YELLOW]]"Берсерк" [[GREEN]]восстановлена!
+Skills.YourSkullSplitter=[[GREEN]]Ваша способность [[YELLOW]]"Разрушитель черепов" [[GREEN]]восстановлена!
+Skills.YourGigaDrillBreaker=[[GREEN]]Ваша способность [[YELLOW]]"Мега дрель" [[GREEN]]восстановлена!
+Skills.TooTired=[[RED]]Вы слишком устали, чтобы использовать способность ещё раз.
+Skills.ReadyHoe=[[GREEN]]**Приготовьте вашу Мотыгу**
+Skills.LowerHoe=[[GRAY]]**Опустите вашу Мотыгу**
+Skills.ReadyAxe=[[GREEN]]**Приготовьте ваш Топор**
+Skills.LowerAxe=[[GRAY]]**Опустите ваш Топор**
+Skills.ReadyFists=[[GREEN]]**Приготовьте ваши Кулаки**
+Skills.LowerFists=[[GRAY]]**Опустите ваши Кулаки**
+Skills.ReadyPickAxe=[[GREEN]]**Приготовьте вашу Кирку**
+Skills.LowerPickAxe=[[GRAY]]**Опустите вашу Кирку**
+Skills.ReadyShovel=[[GREEN]]**Приготовьте вашу Лопату**
+Skills.LowerShovel=[[GRAY]]**Опустите вашу Лопату**
+Skills.ReadySword=[[GREEN]]**Приготовьте ваш Меч**
+Skills.LowerSword=[[GRAY]]**Опустите ваш Меч**
+Skills.BerserkOn=[[GREEN]]**Способность "Берсерк" активирована**
+Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Берсерк"!
+Skills.GreenTerraOn=[[GREEN]]**Способность "Озеленение" активирована**
+Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Озеленение"!
+Skills.TreeFellerOn=[[GREEN]]**Способность "Любитель Деревьев" активирована**
+Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Любитель Деревьев"!
+Skills.SuperBreakerOn=[[GREEN]]**Способность "Супер Разрушитель" активирована**
+Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Супер Разрушитель"!
+Skills.SerratedStrikesOn=[[GREEN]]**Способность "Зазубренные мечи" активирована**
+Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Зазубренные мечи"!
+Skills.SkullSplitterOn=[[GREEN]]**Способность "Разрешитель черепов" активирована**
+Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Разрушитель черепов"!
+Skills.GigaDrillBreakerOn=[[GREEN]]**Способность "Мега дрель" активирована**
+Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Мега дрель"!
+Skills.GreenTerraOff=[[RED]]**Способность "Озеленение" деактивирована**
+Skills.TreeFellerOff=[[RED]]**Способность "Любитель Деревьев" деактивирована**
+Skills.SuperBreakerOff=[[RED]]**Способность "Супер Разрушитель" деактивирована**
+Skills.SerratedStrikesOff=[[RED]]**Способность "Зазубренные мечи" деактивирована**
+Skills.BerserkOff=[[RED]]**Способность "Берсерк" деактивирована**
+Skills.SkullSplitterOff=[[RED]]**Способность "Разрешитель черепов" деактивирована**
+Skills.GigaDrillBreakerOff=[[RED]]**Способность "Мега дрель" деактивирована**
+Skills.TamingUp=[[YELLOW]]Умение "Приручение волков" повышено на {0}. Всего ({1})
+Skills.AcrobaticsUp=[[YELLOW]]Умение "Акробатика" повышено на {0}. Всего ({1})
+Skills.ArcheryUp=[[YELLOW]]Умение "Стрельба из лука" повышено на {0}. Всего ({1})
+Skills.SwordsUp=[[YELLOW]]Умение "Мечи" повышено на {0}. Всего ({1})
+Skills.AxesUp=[[YELLOW]]Умение "Топоры" повышено на {0}. Всего ({1})
+Skills.UnarmedUp=[[YELLOW]]Умение "Рукопашный бой" повышено на {0}. Всего ({1})
+Skills.HerbalismUp=[[YELLOW]]Умение "Травоведение" повышено на {0}. Всего ({1})
+Skills.MiningUp=[[YELLOW]]Умение "Шахтёрство" повышено на {0}. Всего ({1})
+Skills.WoodcuttingUp=[[YELLOW]]Умение "Деревообработка" повышено на {0}. Всего ({1})
+Skills.RepairUp=[[YELLOW]]Умение "Починка" повышено на {0}. Всего ({1})
+Skills.ExcavationUp=[[YELLOW]]Умение "Раскопка" повышено на {0}. Всего ({1})
+Skills.FeltEasy=[[GRAY]]Это было легко.
+Skills.StackedItems=[[DARK_RED]]Вы не можете чинить стакующиеся предметы
+Skills.NeedMore=[[DARK_RED]]Нужно больше материала
+Skills.AdeptDiamond=[[DARK_RED]]Вы не обучены чинить алмазные инструменты и броню
+Skills.FullDurability=[[GRAY]]Вещь не нуждается в починке.
+Skills.Disarmed=[[DARK_RED]]Вы обезоружены!
+mcPlayerListener.SorcerySkill=Колдовство: 
+m.SkillSorcery=Колдовство
+Sorcery.HasCast=[[GREEN]]**Использую "Колдовство"**[[GOLD]]
+Sorcery.Current_Mana=[[DARK_AQUA]] Маны
+Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
+Sorcery.Cost=[[RED]][COST] {0} Маны
+Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Не хватает маны [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
+Sorcery.Water.Thunder=Гром
+Sorcery.Curative.Self=Вылечить себя
+Sorcery.Curative.Other=Вылечить других
+m.LVL=[[DARK_GRAY]]Уровень: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
+Combat.BeastLore=[[GREEN]]**Умение "Удар волка" активировано**
+Combat.BeastLoreOwner=[[DARK_AQUA]]Владелец ([[RED]]{0}[[DARK_AQUA]])
+Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Здоровья ([[GREEN]]{0}[[DARK_AQUA]]/20)
+Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Здоровья ([[GREEN]]{0}[[DARK_AQUA]]/8)
+Party.Locked=[[RED]]Группа запаролена, только лидер группы может приглашать.
+Party.IsntLocked=[[GRAY]]Группа разблокирована
+Party.Unlocked=[[GRAY]]Группа разблокирована
+Party.Help1=[[RED]]Использование [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] или [[WHITE]]'q' [[YELLOW]]для выхода
+Party.Help2=[[RED]]Чтобы присоединится к запароленной группе введите [[YELLOW]]/{0} [[WHITE]]<имя> <пароль>
+Party.Help3=[[RED]]Введите /{0} ? для большей информации
+Party.Help4=[[RED]]Используйте [[YELLOW]]/{0} [[WHITE]]<имя> [[YELLOW]]чтобы присоединится к группе или [[WHITE]]'q' [[YELLOW]]для выхода
+Party.Help5=[[RED]]Чтобы заблокировать группу введите [[YELLOW]]/{0} [[WHITE]]lock
+Party.Help6=[[RED]]Чтобы разблокировать группу введите [[YELLOW]]/{0} [[WHITE]]unlock
+Party.Help7=[[RED]]Чтобы запаролить группу введите [[YELLOW]]/{0} [[WHITE]]password <пароль>
+Party.Help8=[[RED]]Чтобы выкинуть игрока из группы введите [[YELLOW]]/{0} [[WHITE]]kick <игрок>
+Party.Help9=[[RED]]Чтобы отдать лидерство группы введите [[YELLOW]]/{0} [[WHITE]]owner <игрок>
+Party.NotOwner=[[DARK_RED]]Вы теперь не лидер группы
+Party.InvalidName=[[DARK_RED]]Некорректное имя группы
+Party.PasswordSet=[[GREEN]]Пароль группы назначен {0}
+Party.CouldNotKick=[[DARK_RED]]Вы не можете убрать игрока из группы {0}
+Party.NotInYourParty=[[DARK_RED]]{0} не в группе
+Party.CouldNotSetOwner=[[DARK_RED]]Вы не можете отдать лидерство игроку {0}
 mcMMO.Description=[[DARK_AQUA]]Q: Что это?,[[GOLD]]mcMMO это [[RED]]ОПЕН СУРС[[GOLD]] RPG мод для сервера Bukkit от пользователя [[BLUE]]nossr50,[[GOLD]]Здесь было добавлено много умений для Minecraft сервера.,[[GOLD]]Вы можете прокачать их разными способами,[[GOLD]]Вы хотите найти больше информации о умении [[GREEN]]/SKILLNAME[[GOLD]] ?,[[DARK_AQUA]]Q: Что я должен сделать?,[[GOLD]]Для примера... in [[DARK_AQUA]]Шахтёрство[[GOLD]] вы получите [[RED]]2-ой дроп[[GOLD]] или способность [[RED]]"Супер разрушитель"[[GOLD]] ,которая активируется [[GOLD]]нажатием правой кнопки мыши на некоторое время,[[GOLD]]связанное с вашим уровнем умения. Поднять уровень [[BLUE]]Шахтёрства,[[GOLD]]легко просто копайте руды и камни!

+ 75 - 75
mcMMO/com/gmail/nossr50/locale/mcLocale.java → src/com/gmail/nossr50/locale/mcLocale.java

@@ -1,75 +1,75 @@
-package com.gmail.nossr50.locale;
-
-import java.text.MessageFormat;
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.bukkit.ChatColor;
-
-import com.gmail.nossr50.config.LoadProperties;
-
-public class mcLocale 
-{
-	private static final String BUNDLE_NAME = "com.gmail.nossr50.locale.locale"; //$NON-NLS-1$
-
-	private static ResourceBundle RESOURCE_BUNDLE = null;
-
-	public static String getString(String key) 
-	{
-		return getString(key, null);
-	}
-
-	public static String getString(String key, Object[] messageArguments) 
-	{
-		try {
-			if (RESOURCE_BUNDLE == null) 
-			{
-				String myLocale = LoadProperties.locale.toLowerCase();
-				try {
-					//attempt to get the locale denoted
-					RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, new Locale(myLocale));
-				} catch (MissingResourceException e) {
-					//System.out.println("Failed to load locale specified by mcmmo.properties '"+myLocale+"', defaulting to en_us");
-					RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, new Locale("en_us"));
-				}
-			}
-			
-			String output = RESOURCE_BUNDLE.getString(key);
-
-			if (messageArguments != null) 
-			{
-				MessageFormat formatter = new MessageFormat("");
-				formatter.applyPattern(output);
-				output = formatter.format(messageArguments);
-			}
-			
-			output = addColors(output);
-			
-			return output;
-		} catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-	
-	private static String addColors(String input) {
-		input = input.replaceAll("\\Q[[BLACK]]\\E", ChatColor.BLACK.toString());
-		input = input.replaceAll("\\Q[[DARK_BLUE]]\\E", ChatColor.DARK_BLUE.toString());
-		input = input.replaceAll("\\Q[[DARK_GREEN]]\\E", ChatColor.DARK_GREEN.toString());
-		input = input.replaceAll("\\Q[[DARK_AQUA]]\\E", ChatColor.DARK_AQUA.toString());
-		input = input.replaceAll("\\Q[[DARK_RED]]\\E", ChatColor.DARK_RED.toString());
-		input = input.replaceAll("\\Q[[DARK_PURPLE]]\\E", ChatColor.DARK_PURPLE.toString());
-		input = input.replaceAll("\\Q[[GOLD]]\\E", ChatColor.GOLD.toString());
-		input = input.replaceAll("\\Q[[GRAY]]\\E", ChatColor.GRAY.toString());
-		input = input.replaceAll("\\Q[[DARK_GRAY]]\\E", ChatColor.DARK_GRAY.toString());
-		input = input.replaceAll("\\Q[[BLUE]]\\E", ChatColor.BLUE.toString());
-		input = input.replaceAll("\\Q[[GREEN]]\\E", ChatColor.GREEN.toString());
-		input = input.replaceAll("\\Q[[AQUA]]\\E", ChatColor.AQUA.toString());
-		input = input.replaceAll("\\Q[[RED]]\\E", ChatColor.RED.toString());
-		input = input.replaceAll("\\Q[[LIGHT_PURPLE]]\\E", ChatColor.LIGHT_PURPLE.toString());
-		input = input.replaceAll("\\Q[[YELLOW]]\\E", ChatColor.YELLOW.toString());
-		input = input.replaceAll("\\Q[[WHITE]]\\E", ChatColor.WHITE.toString());
-		
-		return input;
-	}
-}
+package com.gmail.nossr50.locale;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.bukkit.ChatColor;
+
+import com.gmail.nossr50.config.LoadProperties;
+
+public class mcLocale 
+{
+	private static final String BUNDLE_NAME = "com.gmail.nossr50.locale.locale"; //$NON-NLS-1$
+
+	private static ResourceBundle RESOURCE_BUNDLE = null;
+
+	public static String getString(String key) 
+	{
+		return getString(key, null);
+	}
+
+	public static String getString(String key, Object[] messageArguments) 
+	{
+		try {
+			if (RESOURCE_BUNDLE == null) 
+			{
+				String myLocale = LoadProperties.locale.toLowerCase();
+				try {
+					//attempt to get the locale denoted
+					RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, new Locale(myLocale));
+				} catch (MissingResourceException e) {
+					//System.out.println("Failed to load locale specified by mcmmo.properties '"+myLocale+"', defaulting to en_us");
+					RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, new Locale("en_us"));
+				}
+			}
+			
+			String output = RESOURCE_BUNDLE.getString(key);
+
+			if (messageArguments != null) 
+			{
+				MessageFormat formatter = new MessageFormat("");
+				formatter.applyPattern(output);
+				output = formatter.format(messageArguments);
+			}
+			
+			output = addColors(output);
+			
+			return output;
+		} catch (MissingResourceException e) {
+			return '!' + key + '!';
+		}
+	}
+	
+	private static String addColors(String input) {
+		input = input.replaceAll("\\Q[[BLACK]]\\E", ChatColor.BLACK.toString());
+		input = input.replaceAll("\\Q[[DARK_BLUE]]\\E", ChatColor.DARK_BLUE.toString());
+		input = input.replaceAll("\\Q[[DARK_GREEN]]\\E", ChatColor.DARK_GREEN.toString());
+		input = input.replaceAll("\\Q[[DARK_AQUA]]\\E", ChatColor.DARK_AQUA.toString());
+		input = input.replaceAll("\\Q[[DARK_RED]]\\E", ChatColor.DARK_RED.toString());
+		input = input.replaceAll("\\Q[[DARK_PURPLE]]\\E", ChatColor.DARK_PURPLE.toString());
+		input = input.replaceAll("\\Q[[GOLD]]\\E", ChatColor.GOLD.toString());
+		input = input.replaceAll("\\Q[[GRAY]]\\E", ChatColor.GRAY.toString());
+		input = input.replaceAll("\\Q[[DARK_GRAY]]\\E", ChatColor.DARK_GRAY.toString());
+		input = input.replaceAll("\\Q[[BLUE]]\\E", ChatColor.BLUE.toString());
+		input = input.replaceAll("\\Q[[GREEN]]\\E", ChatColor.GREEN.toString());
+		input = input.replaceAll("\\Q[[AQUA]]\\E", ChatColor.AQUA.toString());
+		input = input.replaceAll("\\Q[[RED]]\\E", ChatColor.RED.toString());
+		input = input.replaceAll("\\Q[[LIGHT_PURPLE]]\\E", ChatColor.LIGHT_PURPLE.toString());
+		input = input.replaceAll("\\Q[[YELLOW]]\\E", ChatColor.YELLOW.toString());
+		input = input.replaceAll("\\Q[[WHITE]]\\E", ChatColor.WHITE.toString());
+		
+		return input;
+	}
+}

+ 0 - 0
mcMMO/com/gmail/nossr50/m.java → src/com/gmail/nossr50/m.java


+ 0 - 0
mcMMO/com/gmail/nossr50/mcMMO.java → src/com/gmail/nossr50/mcMMO.java


+ 315 - 315
mcMMO/com/gmail/nossr50/mcPermissions.java → src/com/gmail/nossr50/mcPermissions.java

@@ -1,315 +1,315 @@
-package com.gmail.nossr50;
-
-import java.util.logging.Logger;
-
-import org.bukkit.Server;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-
-import ru.tehkode.permissions.PermissionManager;
-import ru.tehkode.permissions.bukkit.PermissionsEx;
-
-import com.nijiko.permissions.PermissionHandler;
-import com.nijikokun.bukkit.Permissions.Permissions;
-
-public class mcPermissions 
-{
-    private static volatile mcPermissions instance;
-    
-	private enum PermissionType {
-		PEX, PERMISSIONS, BUKKIT
-	}
-	
-	private static PermissionType permissionType;
-	private static Object PHandle;
-	public static boolean permissionsEnabled = false;
-
-    public static void initialize(Server server) 
-    {
-        Logger log = Logger.getLogger("Minecraft");
-        
-		if(permissionsEnabled && permissionType != PermissionType.PERMISSIONS) return;
-		
-		Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx");
-		Plugin test = server.getPluginManager().getPlugin("Permissions");
-		if(PEXtest != null) {
-			PHandle = (PermissionManager) PermissionsEx.getPermissionManager();
-			permissionType = PermissionType.PEX;
-			permissionsEnabled = true;
-			log.info("[mcMMO] PermissionsEx found, using PermissionsEx.");
-		} else if(test != null) {
-			PHandle = (PermissionHandler) ((Permissions) test).getHandler();
-			permissionType = PermissionType.PERMISSIONS;
-			permissionsEnabled = true;
-			log.info("[mcMMO] Permissions version "+test.getDescription().getVersion()+" found, using Permissions.");
-		} else {
-			permissionType = PermissionType.BUKKIT;
-			permissionsEnabled = true;
-			log.info("[mcMMO] Using Bukkit Permissions.");
-		}
-    }
-    
-    public static boolean getEnabled()
-    {
-    	return permissionsEnabled;
-    }
-  
-    public static boolean permission(Player player, String permission) 
-    {
-		if(!permissionsEnabled) return player.isOp();
-		switch(permissionType) {
-			case PEX:
-				return ((PermissionManager) PHandle).has(player, permission);
-			case PERMISSIONS:
-				return ((PermissionHandler) PHandle).has(player, permission);
-			case BUKKIT:
-				return player.hasPermission(permission);
-			default:
-				return true;
-		}
-	}
-    public boolean admin(Player player){
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.admin");
-        } else {
-            return true;
-        }
-    }
-    public boolean mcrefresh(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.tools.mcrefresh");
-        } else {
-            return true;
-        }
-    }
-    public boolean mmoedit(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.tools.mmoedit");
-        } else {
-            return true;
-        }
-    }
-    public boolean herbalismAbility(Player player){
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.ability.herbalism");
-        } else {
-            return true;
-        }
-    }
-    public boolean excavationAbility(Player player){
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.ability.excavation");
-        } else {
-            return true;
-        }
-    }
-    public boolean unarmedAbility(Player player){
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.ability.unarmed");
-        } else {
-            return true;
-        }
-    }
-    public boolean chimaeraWing(Player player){
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.item.chimaerawing");
-        } else {
-            return true;
-        }
-    }
-    public boolean miningAbility(Player player){
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.ability.mining");
-        } else {
-            return true;
-        }
-    }
-    public boolean axesAbility(Player player){
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.ability.axes");
-        } else {
-            return true;
-        }
-    }
-    public boolean swordsAbility(Player player){
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.ability.swords");
-        } else {
-            return true;
-        }
-    }
-    public boolean woodCuttingAbility(Player player) {
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.ability.woodcutting");
-        } else {
-            return true;
-        }
-    }
-    public boolean mcgod(Player player) {
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.tools.mcgod");
-        } else {
-            return true;
-        }
-    }
-    public boolean regeneration(Player player){
-    	if (permissionsEnabled) {
-            return permission(player, "mcmmo.regeneration");
-        } else {
-            return true;
-        }
-    }
-    public boolean motd(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.motd");
-        } else {
-            return true;
-        }
-    }
-    public boolean mcAbility(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.commands.ability");
-        } else {
-            return true;
-        }
-    }
-    public boolean mySpawn(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.commands.myspawn");
-        } else {
-            return true;
-        }
-    }
-    public boolean setMySpawn(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.commands.setmyspawn");
-        } else {
-            return true;
-        }
-    }
-    public boolean partyChat(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.chat.partychat");
-        } else {
-            return true;
-        }
-    }
-    public boolean partyLock(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.chat.partylock");
-        } else {
-            return true;
-        }
-    }
-    public boolean partyTeleport(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.commands.ptp");
-        } else {
-            return true;
-        }
-    }
-    public boolean whois(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.commands.whois");
-        } else {
-            return true;
-        }
-    }
-    public boolean party(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.commands.party");
-        } else {
-            return true;
-        }
-    }
-    public boolean adminChat(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.chat.adminchat");
-        } else {
-            return true;
-        }
-    }
-    public static mcPermissions getInstance() {
-    	if (instance == null) {
-    	instance = new mcPermissions();
-    	}
-    	return instance;
-    	}
-    public boolean taming(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.taming");
-        } else {
-            return true;
-        }
-    }
-    public boolean mining(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.mining");
-        } else {
-            return true;
-        }
-    }
-    public boolean woodcutting(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.woodcutting");
-        } else {
-            return true;
-        }
-    }
-    public boolean repair(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.repair");
-        } else {
-            return true;
-        }
-    }
-    public boolean unarmed(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.unarmed");
-        } else {
-            return true;
-        }
-    }
-    public boolean archery(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.archery");
-        } else {
-            return true;
-        }
-    }
-    public boolean herbalism(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.herbalism");
-        } else {
-            return true;
-        }
-    }
-    public boolean excavation(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.excavation");
-        } else {
-            return true;
-        }
-    }
-    public boolean swords(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.swords");
-        } else {
-            return true;
-        }
-    }
-    public boolean axes(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.axes");
-        } else {
-            return true;
-        }
-    }
-    public boolean acrobatics(Player player) {
-        if (permissionsEnabled) {
-            return permission(player, "mcmmo.skills.acrobatics");
-        } else {
-            return true;
-        }
-    }
-}
+package com.gmail.nossr50;
+
+import java.util.logging.Logger;
+
+import org.bukkit.Server;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.Plugin;
+
+import ru.tehkode.permissions.PermissionManager;
+import ru.tehkode.permissions.bukkit.PermissionsEx;
+
+import com.nijiko.permissions.PermissionHandler;
+import com.nijikokun.bukkit.Permissions.Permissions;
+
+public class mcPermissions 
+{
+    private static volatile mcPermissions instance;
+    
+	private enum PermissionType {
+		PEX, PERMISSIONS, BUKKIT
+	}
+	
+	private static PermissionType permissionType;
+	private static Object PHandle;
+	public static boolean permissionsEnabled = false;
+
+    public static void initialize(Server server) 
+    {
+        Logger log = Logger.getLogger("Minecraft");
+        
+		if(permissionsEnabled && permissionType != PermissionType.PERMISSIONS) return;
+		
+		Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx");
+		Plugin test = server.getPluginManager().getPlugin("Permissions");
+		if(PEXtest != null) {
+			PHandle = (PermissionManager) PermissionsEx.getPermissionManager();
+			permissionType = PermissionType.PEX;
+			permissionsEnabled = true;
+			log.info("[mcMMO] PermissionsEx found, using PermissionsEx.");
+		} else if(test != null) {
+			PHandle = (PermissionHandler) ((Permissions) test).getHandler();
+			permissionType = PermissionType.PERMISSIONS;
+			permissionsEnabled = true;
+			log.info("[mcMMO] Permissions version "+test.getDescription().getVersion()+" found, using Permissions.");
+		} else {
+			permissionType = PermissionType.BUKKIT;
+			permissionsEnabled = true;
+			log.info("[mcMMO] Using Bukkit Permissions.");
+		}
+    }
+    
+    public static boolean getEnabled()
+    {
+    	return permissionsEnabled;
+    }
+  
+    public static boolean permission(Player player, String permission) 
+    {
+		if(!permissionsEnabled) return player.isOp();
+		switch(permissionType) {
+			case PEX:
+				return ((PermissionManager) PHandle).has(player, permission);
+			case PERMISSIONS:
+				return ((PermissionHandler) PHandle).has(player, permission);
+			case BUKKIT:
+				return player.hasPermission(permission);
+			default:
+				return true;
+		}
+	}
+    public boolean admin(Player player){
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.admin");
+        } else {
+            return true;
+        }
+    }
+    public boolean mcrefresh(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.tools.mcrefresh");
+        } else {
+            return true;
+        }
+    }
+    public boolean mmoedit(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.tools.mmoedit");
+        } else {
+            return true;
+        }
+    }
+    public boolean herbalismAbility(Player player){
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.ability.herbalism");
+        } else {
+            return true;
+        }
+    }
+    public boolean excavationAbility(Player player){
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.ability.excavation");
+        } else {
+            return true;
+        }
+    }
+    public boolean unarmedAbility(Player player){
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.ability.unarmed");
+        } else {
+            return true;
+        }
+    }
+    public boolean chimaeraWing(Player player){
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.item.chimaerawing");
+        } else {
+            return true;
+        }
+    }
+    public boolean miningAbility(Player player){
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.ability.mining");
+        } else {
+            return true;
+        }
+    }
+    public boolean axesAbility(Player player){
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.ability.axes");
+        } else {
+            return true;
+        }
+    }
+    public boolean swordsAbility(Player player){
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.ability.swords");
+        } else {
+            return true;
+        }
+    }
+    public boolean woodCuttingAbility(Player player) {
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.ability.woodcutting");
+        } else {
+            return true;
+        }
+    }
+    public boolean mcgod(Player player) {
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.tools.mcgod");
+        } else {
+            return true;
+        }
+    }
+    public boolean regeneration(Player player){
+    	if (permissionsEnabled) {
+            return permission(player, "mcmmo.regeneration");
+        } else {
+            return true;
+        }
+    }
+    public boolean motd(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.motd");
+        } else {
+            return true;
+        }
+    }
+    public boolean mcAbility(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.commands.ability");
+        } else {
+            return true;
+        }
+    }
+    public boolean mySpawn(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.commands.myspawn");
+        } else {
+            return true;
+        }
+    }
+    public boolean setMySpawn(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.commands.setmyspawn");
+        } else {
+            return true;
+        }
+    }
+    public boolean partyChat(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.chat.partychat");
+        } else {
+            return true;
+        }
+    }
+    public boolean partyLock(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.chat.partylock");
+        } else {
+            return true;
+        }
+    }
+    public boolean partyTeleport(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.commands.ptp");
+        } else {
+            return true;
+        }
+    }
+    public boolean whois(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.commands.whois");
+        } else {
+            return true;
+        }
+    }
+    public boolean party(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.commands.party");
+        } else {
+            return true;
+        }
+    }
+    public boolean adminChat(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.chat.adminchat");
+        } else {
+            return true;
+        }
+    }
+    public static mcPermissions getInstance() {
+    	if (instance == null) {
+    	instance = new mcPermissions();
+    	}
+    	return instance;
+    	}
+    public boolean taming(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.taming");
+        } else {
+            return true;
+        }
+    }
+    public boolean mining(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.mining");
+        } else {
+            return true;
+        }
+    }
+    public boolean woodcutting(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.woodcutting");
+        } else {
+            return true;
+        }
+    }
+    public boolean repair(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.repair");
+        } else {
+            return true;
+        }
+    }
+    public boolean unarmed(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.unarmed");
+        } else {
+            return true;
+        }
+    }
+    public boolean archery(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.archery");
+        } else {
+            return true;
+        }
+    }
+    public boolean herbalism(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.herbalism");
+        } else {
+            return true;
+        }
+    }
+    public boolean excavation(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.excavation");
+        } else {
+            return true;
+        }
+    }
+    public boolean swords(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.swords");
+        } else {
+            return true;
+        }
+    }
+    public boolean axes(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.axes");
+        } else {
+            return true;
+        }
+    }
+    public boolean acrobatics(Player player) {
+        if (permissionsEnabled) {
+            return permission(player, "mcmmo.skills.acrobatics");
+        } else {
+            return true;
+        }
+    }
+}

+ 91 - 91
mcMMO/com/gmail/nossr50/mcTimer.java → src/com/gmail/nossr50/mcTimer.java

@@ -1,91 +1,91 @@
-package com.gmail.nossr50;
-import org.bukkit.entity.*;
-
-import com.gmail.nossr50.config.LoadProperties;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.skills.Skills;
-import com.gmail.nossr50.skills.Swords;
-
-
-public class mcTimer implements Runnable
-{
-	private final mcMMO plugin;
-	int thecount = 1;
-
-    public mcTimer(final mcMMO plugin) 
-    {
-        this.plugin = plugin;
-    }
-    
-	public void run() 
-	{
-		for(Player player : plugin.getServer().getOnlinePlayers())
-		{
-			if(player == null)
-				continue;
-			PlayerProfile PP = Users.getProfile(player);
-			
-			if(PP == null)
-				continue;
-			
-			/*
-			 * MONITOR SKILLS
-			 */
-			Skills.monitorSkills(player);
-			
-			/*
-			 * COOLDOWN MONITORING
-			 */
-			Skills.watchCooldowns(player);
-			
-			/*
-			 * PLAYER BLEED MONITORING
-			 */
-			if(thecount % 2 == 0 && PP.getBleedTicks() >= 1)
-			{
-        		player.damage(2);
-        		PP.decreaseBleedTicks();
-        	}
-			
-			if(LoadProperties.enableRegen && mcPermissions.getInstance().regeneration(player) && System.currentTimeMillis() >= PP.getRecentlyHurt() + 60000)
-			{
-				if(thecount == 20 || thecount == 40 || thecount == 60 || thecount == 80){
-				    if(player != null &&
-				    	player.getHealth() > 0 && player.getHealth() < 20 
-				    	&& m.getPowerLevel(player) >= 1000){
-				    	player.setHealth(m.calculateHealth(player.getHealth(), 1));
-				    }
-				}
-				if(thecount == 40 || thecount == 80){
-			   		if(player != null &&
-			   			player.getHealth() > 0 && player.getHealth() < 20 
-			    		&& m.getPowerLevel(player) >= 500 
-			    		&& m.getPowerLevel(player) < 1000){
-			    		player.setHealth(m.calculateHealth(player.getHealth(), 1));
-			    	}
-				}
-				if(thecount == 80)
-				{
-			    	if(player != null &&
-			    		player.getHealth() > 0 && player.getHealth() < 20  
-			    		&& m.getPowerLevel(player) < 500){
-			    		player.setHealth(m.calculateHealth(player.getHealth(), 1));
-			    	}
-				}
-			}
-		}
-		
-		
-		/*
-		 * NON-PLAYER BLEED MONITORING
-		 */
-		
-		if(thecount % 2 == 0)
-			Swords.bleedSimulate(plugin);
-		
-		//SETUP FOR HP REGEN/BLEED
-		thecount++;
-		if(thecount >= 81)
-			thecount = 1;
-	}
-}
+package com.gmail.nossr50;
+import org.bukkit.entity.*;
+
+import com.gmail.nossr50.config.LoadProperties;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.skills.Skills;
+import com.gmail.nossr50.skills.Swords;
+
+
+public class mcTimer implements Runnable
+{
+	private final mcMMO plugin;
+	int thecount = 1;
+
+    public mcTimer(final mcMMO plugin) 
+    {
+        this.plugin = plugin;
+    }
+    
+	public void run() 
+	{
+		for(Player player : plugin.getServer().getOnlinePlayers())
+		{
+			if(player == null)
+				continue;
+			PlayerProfile PP = Users.getProfile(player);
+			
+			if(PP == null)
+				continue;
+			
+			/*
+			 * MONITOR SKILLS
+			 */
+			Skills.monitorSkills(player);
+			
+			/*
+			 * COOLDOWN MONITORING
+			 */
+			Skills.watchCooldowns(player);
+			
+			/*
+			 * PLAYER BLEED MONITORING
+			 */
+			if(thecount % 2 == 0 && PP.getBleedTicks() >= 1)
+			{
+        		player.damage(2);
+        		PP.decreaseBleedTicks();
+        	}
+			
+			if(LoadProperties.enableRegen && mcPermissions.getInstance().regeneration(player) && System.currentTimeMillis() >= PP.getRecentlyHurt() + 60000)
+			{
+				if(thecount == 20 || thecount == 40 || thecount == 60 || thecount == 80){
+				    if(player != null &&
+				    	player.getHealth() > 0 && player.getHealth() < 20 
+				    	&& m.getPowerLevel(player) >= 1000){
+				    	player.setHealth(m.calculateHealth(player.getHealth(), 1));
+				    }
+				}
+				if(thecount == 40 || thecount == 80){
+			   		if(player != null &&
+			   			player.getHealth() > 0 && player.getHealth() < 20 
+			    		&& m.getPowerLevel(player) >= 500 
+			    		&& m.getPowerLevel(player) < 1000){
+			    		player.setHealth(m.calculateHealth(player.getHealth(), 1));
+			    	}
+				}
+				if(thecount == 80)
+				{
+			    	if(player != null &&
+			    		player.getHealth() > 0 && player.getHealth() < 20  
+			    		&& m.getPowerLevel(player) < 500){
+			    		player.setHealth(m.calculateHealth(player.getHealth(), 1));
+			    	}
+				}
+			}
+		}
+		
+		
+		/*
+		 * NON-PLAYER BLEED MONITORING
+		 */
+		
+		if(thecount % 2 == 0)
+			Swords.bleedSimulate(plugin);
+		
+		//SETUP FOR HP REGEN/BLEED
+		thecount++;
+		if(thecount >= 81)
+			thecount = 1;
+	}
+}

+ 0 - 0
mcMMO/com/gmail/nossr50/party/Party.java → src/com/gmail/nossr50/party/Party.java


+ 0 - 0
mcMMO/com/gmail/nossr50/skills/Acrobatics.java → src/com/gmail/nossr50/skills/Acrobatics.java


+ 99 - 99
mcMMO/com/gmail/nossr50/skills/Archery.java → src/com/gmail/nossr50/skills/Archery.java

@@ -1,99 +1,99 @@
-package com.gmail.nossr50.skills;
-
-import org.bukkit.Location;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.Player;
-import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.locale.mcLocale;
-import com.gmail.nossr50.party.Party;
-
-public class Archery 
-{
-	public static void trackArrows(mcMMO pluginx, Entity x, EntityDamageByEntityEvent event, Player attacker)
-	{
-		PlayerProfile PPa = Users.getProfile(attacker);
-		if(!pluginx.misc.arrowTracker.containsKey(x) && event.getDamage() > 0)
-		{
-			pluginx.misc.arrowTracker.put(x, 0);
-			if(attacker != null)
-			{
-				if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY))
-				{
-					pluginx.misc.arrowTracker.put(x, 1);
-				}
-			}
-		} else 
-		{
-			if(event.getDamage() > 0)
-			{
-				if(attacker != null)
-				{
-					if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY))
-					{
-						pluginx.misc.arrowTracker.put(x, 1);
-					}
-				}
-			}
-		}
-	}
-	public static void ignitionCheck(Entity x, EntityDamageByEntityEvent event, Player attacker)
-	{
-		PlayerProfile PPa = Users.getProfile(attacker);
-		if(Math.random() * 100 >= 75)
-		{
-			
-			int ignition = 20;	
-			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 200)
-				ignition+=20;
-			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 400)
-				ignition+=20;
-			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 600)
-				ignition+=20;
-			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 800)
-				ignition+=20;
-			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000)
-				ignition+=20;
-			
-			if(x instanceof Player)
-			{
-				Player Defender = (Player)x;
-				if(!Party.getInstance().inSameParty(attacker, Defender))
-				{
-					event.getEntity().setFireTicks(ignition);
-					attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$
-					Defender.sendMessage(mcLocale.getString("Combat.BurningArrowHit")); //$NON-NLS-1$
-				}
-			} else {
-			event.getEntity().setFireTicks(ignition);
-			attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$
-			}
-		}
-	}
-	public static void dazeCheck(Player defender, Player attacker)
-	{
-		PlayerProfile PPa = Users.getProfile(attacker);
-		
-		Location loc = defender.getLocation();
-		if(Math.random() * 10 > 5)
-		{
-		loc.setPitch(90);
-		} else {
-			loc.setPitch(-90);
-		}
-		if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000){
-			if(Math.random() * 1000 <= 500){
-				defender.teleport(loc);
-				defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$
-				attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		} else if(Math.random() * 2000 <= PPa.getSkillLevel(SkillType.ARCHERY)){
-			defender.teleport(loc);
-			defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$
-			attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-}
+package com.gmail.nossr50.skills;
+
+import org.bukkit.Location;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Player;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.locale.mcLocale;
+import com.gmail.nossr50.party.Party;
+
+public class Archery 
+{
+	public static void trackArrows(mcMMO pluginx, Entity x, EntityDamageByEntityEvent event, Player attacker)
+	{
+		PlayerProfile PPa = Users.getProfile(attacker);
+		if(!pluginx.misc.arrowTracker.containsKey(x) && event.getDamage() > 0)
+		{
+			pluginx.misc.arrowTracker.put(x, 0);
+			if(attacker != null)
+			{
+				if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY))
+				{
+					pluginx.misc.arrowTracker.put(x, 1);
+				}
+			}
+		} else 
+		{
+			if(event.getDamage() > 0)
+			{
+				if(attacker != null)
+				{
+					if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY))
+					{
+						pluginx.misc.arrowTracker.put(x, 1);
+					}
+				}
+			}
+		}
+	}
+	public static void ignitionCheck(Entity x, EntityDamageByEntityEvent event, Player attacker)
+	{
+		PlayerProfile PPa = Users.getProfile(attacker);
+		if(Math.random() * 100 >= 75)
+		{
+			
+			int ignition = 20;	
+			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 200)
+				ignition+=20;
+			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 400)
+				ignition+=20;
+			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 600)
+				ignition+=20;
+			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 800)
+				ignition+=20;
+			if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000)
+				ignition+=20;
+			
+			if(x instanceof Player)
+			{
+				Player Defender = (Player)x;
+				if(!Party.getInstance().inSameParty(attacker, Defender))
+				{
+					event.getEntity().setFireTicks(ignition);
+					attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$
+					Defender.sendMessage(mcLocale.getString("Combat.BurningArrowHit")); //$NON-NLS-1$
+				}
+			} else {
+			event.getEntity().setFireTicks(ignition);
+			attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$
+			}
+		}
+	}
+	public static void dazeCheck(Player defender, Player attacker)
+	{
+		PlayerProfile PPa = Users.getProfile(attacker);
+		
+		Location loc = defender.getLocation();
+		if(Math.random() * 10 > 5)
+		{
+		loc.setPitch(90);
+		} else {
+			loc.setPitch(-90);
+		}
+		if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000){
+			if(Math.random() * 1000 <= 500){
+				defender.teleport(loc);
+				defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$
+				attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$
+			}
+		} else if(Math.random() * 2000 <= PPa.getSkillLevel(SkillType.ARCHERY)){
+			defender.teleport(loc);
+			defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$
+			attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+}

+ 155 - 155
mcMMO/com/gmail/nossr50/skills/Axes.java → src/com/gmail/nossr50/skills/Axes.java

@@ -1,155 +1,155 @@
-package com.gmail.nossr50.skills;
-
-import org.bukkit.ChatColor;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.LivingEntity;
-import org.bukkit.entity.Player;
-import org.bukkit.entity.Wolf;
-import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import org.bukkit.plugin.Plugin;
-
-import com.gmail.nossr50.locale.mcLocale;
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.m;
-import com.gmail.nossr50.mcPermissions;
-import com.gmail.nossr50.config.LoadProperties;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.party.Party;
-
-public class Axes {
-	public static void skullSplitterCheck(Player player){
-    	PlayerProfile PP = Users.getProfile(player);
-    	if(m.isAxes(player.getItemInHand()) && mcPermissions.getInstance().axesAbility(player)){
-    		/*
-    		 * CHECK FOR AXE PREP MODE
-    		 */
-    		if(PP.getAxePreparationMode())
-    		{
-    			PP.setAxePreparationMode(false);
-    		}
-    		int ticks = 2;
-    		int x = PP.getSkillLevel(SkillType.AXES);
-    		while(x >= 50){
-    			x-=50;
-    			ticks++;
-    		}
-
-    		if(!PP.getSkullSplitterMode() && Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown))
-    		{
-    			player.sendMessage(mcLocale.getString("Skills.SkullSplitterOn"));
-    			for(Player y : player.getWorld().getPlayers()){
-	    			if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
-	    				y.sendMessage(mcLocale.getString("Skills.SkullSplitterPlayer", new Object[] {player.getName()}));
-	    		}
-    			PP.setSkullSplitterActivatedTimeStamp(System.currentTimeMillis());
-    			PP.setSkullSplitterDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
-    			PP.setSkullSplitterMode(true);
-    		}
-    		if(!PP.getSkullSplitterMode() && !Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)){
-    			player.sendMessage(mcLocale.getString("Skills.TooTired")
-    					+ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)+"s)");
-    		}
-    	}
-    }
-	public static void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx){
-    	Entity x = event.getEntity();
-    	if(x instanceof Wolf){
-    		Wolf wolf = (Wolf)x;
-    		if(Taming.getOwner(wolf, pluginx) != null)
-    		{
-	    		if(Taming.getOwner(wolf, pluginx) == attacker)
-	    			return;
-	    		if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx)))
-	    			return;
-    		}
-    	}
-    	PlayerProfile PPa = Users.getProfile(attacker);
-    	if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
-    		if(PPa.getSkillLevel(SkillType.AXES) >= 750){
-    			if(Math.random() * 1000 <= 750){
-    				if(x instanceof Player){
-    					Player player = (Player)x;
-    					player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
-    				}
-    				if(x instanceof Player){
-        				event.setDamage(event.getDamage() * 2 - event.getDamage() / 2);
-        			} else {
-        				event.setDamage(event.getDamage() * 2);
-        			}
-    				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
-    			}
-    		} else if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.AXES)){
-    			if(x instanceof Player){
-    				Player player = (Player)x;
-    				player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
-    			}
-    			if(x instanceof Player){
-    				event.setDamage(event.getDamage() * 2 - event.getDamage() / 2);
-    			} else {
-    				event.setDamage(event.getDamage() * 2);
-    			}
-				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
-    		}
-    	}
-    }
-	
-	public static void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx)
-	{
-		int targets = 0;
-    	
-    	if(event.getEntity() instanceof LivingEntity)
-    	{
-    		LivingEntity x = (LivingEntity) event.getEntity();
-	    	targets = m.getTier(attacker);
-	    	
-	    	for(Entity derp : x.getWorld().getEntities())
-	    	{
-	    		if(m.getDistance(x.getLocation(), derp.getLocation()) < 5)
-	    		{
-	    			
-	    			
-	    			//Make sure the Wolf is not friendly
-	    			if(derp instanceof Wolf)
-	    			{
-						Wolf hurrDurr = (Wolf)derp;
-						if(Taming.getOwner(hurrDurr, pluginx) == attacker)
-							continue;
-						if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx)))
-							continue;
-					}
-	    			//Damage nearby LivingEntities
-	    			if(derp instanceof LivingEntity && targets >= 1)
-	    			{
-	    				if(derp instanceof Player)
-		    			{
-		    				Player target = (Player)derp;
-		    				
-		    				if(Users.getProfile(target).getGodMode())
-		    					continue;
-
-		    				if(target.getName().equals(attacker.getName()))
-		    					continue;
-		    				
-		    				if(Party.getInstance().inSameParty(attacker, target))
-		    					continue;
-		    				if(targets >= 1 && derp.getWorld().getPVP())
-		    				{
-		    					target.damage(event.getDamage() / 2);
-		    					target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!");
-		    					targets--;
-		    					continue;
-		    				}
-		    			} 
-	    				else
-		    			{			
-		    				LivingEntity target = (LivingEntity)derp;
-		    				target.damage(event.getDamage() / 2);
-		    				targets--;
-		    			}
-	    			}
-	    		}
-	    	}
-    	}
-    }
-}
+package com.gmail.nossr50.skills;
+
+import org.bukkit.ChatColor;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.Wolf;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import org.bukkit.plugin.Plugin;
+
+import com.gmail.nossr50.locale.mcLocale;
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.m;
+import com.gmail.nossr50.mcPermissions;
+import com.gmail.nossr50.config.LoadProperties;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.party.Party;
+
+public class Axes {
+	public static void skullSplitterCheck(Player player){
+    	PlayerProfile PP = Users.getProfile(player);
+    	if(m.isAxes(player.getItemInHand()) && mcPermissions.getInstance().axesAbility(player)){
+    		/*
+    		 * CHECK FOR AXE PREP MODE
+    		 */
+    		if(PP.getAxePreparationMode())
+    		{
+    			PP.setAxePreparationMode(false);
+    		}
+    		int ticks = 2;
+    		int x = PP.getSkillLevel(SkillType.AXES);
+    		while(x >= 50){
+    			x-=50;
+    			ticks++;
+    		}
+
+    		if(!PP.getSkullSplitterMode() && Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown))
+    		{
+    			player.sendMessage(mcLocale.getString("Skills.SkullSplitterOn"));
+    			for(Player y : player.getWorld().getPlayers()){
+	    			if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
+	    				y.sendMessage(mcLocale.getString("Skills.SkullSplitterPlayer", new Object[] {player.getName()}));
+	    		}
+    			PP.setSkullSplitterActivatedTimeStamp(System.currentTimeMillis());
+    			PP.setSkullSplitterDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
+    			PP.setSkullSplitterMode(true);
+    		}
+    		if(!PP.getSkullSplitterMode() && !Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)){
+    			player.sendMessage(mcLocale.getString("Skills.TooTired")
+    					+ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)+"s)");
+    		}
+    	}
+    }
+	public static void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx){
+    	Entity x = event.getEntity();
+    	if(x instanceof Wolf){
+    		Wolf wolf = (Wolf)x;
+    		if(Taming.getOwner(wolf, pluginx) != null)
+    		{
+	    		if(Taming.getOwner(wolf, pluginx) == attacker)
+	    			return;
+	    		if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx)))
+	    			return;
+    		}
+    	}
+    	PlayerProfile PPa = Users.getProfile(attacker);
+    	if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
+    		if(PPa.getSkillLevel(SkillType.AXES) >= 750){
+    			if(Math.random() * 1000 <= 750){
+    				if(x instanceof Player){
+    					Player player = (Player)x;
+    					player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
+    				}
+    				if(x instanceof Player){
+        				event.setDamage(event.getDamage() * 2 - event.getDamage() / 2);
+        			} else {
+        				event.setDamage(event.getDamage() * 2);
+        			}
+    				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
+    			}
+    		} else if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.AXES)){
+    			if(x instanceof Player){
+    				Player player = (Player)x;
+    				player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
+    			}
+    			if(x instanceof Player){
+    				event.setDamage(event.getDamage() * 2 - event.getDamage() / 2);
+    			} else {
+    				event.setDamage(event.getDamage() * 2);
+    			}
+				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
+    		}
+    	}
+    }
+	
+	public static void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx)
+	{
+		int targets = 0;
+    	
+    	if(event.getEntity() instanceof LivingEntity)
+    	{
+    		LivingEntity x = (LivingEntity) event.getEntity();
+	    	targets = m.getTier(attacker);
+	    	
+	    	for(Entity derp : x.getWorld().getEntities())
+	    	{
+	    		if(m.getDistance(x.getLocation(), derp.getLocation()) < 5)
+	    		{
+	    			
+	    			
+	    			//Make sure the Wolf is not friendly
+	    			if(derp instanceof Wolf)
+	    			{
+						Wolf hurrDurr = (Wolf)derp;
+						if(Taming.getOwner(hurrDurr, pluginx) == attacker)
+							continue;
+						if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx)))
+							continue;
+					}
+	    			//Damage nearby LivingEntities
+	    			if(derp instanceof LivingEntity && targets >= 1)
+	    			{
+	    				if(derp instanceof Player)
+		    			{
+		    				Player target = (Player)derp;
+		    				
+		    				if(Users.getProfile(target).getGodMode())
+		    					continue;
+
+		    				if(target.getName().equals(attacker.getName()))
+		    					continue;
+		    				
+		    				if(Party.getInstance().inSameParty(attacker, target))
+		    					continue;
+		    				if(targets >= 1 && derp.getWorld().getPVP())
+		    				{
+		    					target.damage(event.getDamage() / 2);
+		    					target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!");
+		    					targets--;
+		    					continue;
+		    				}
+		    			} 
+	    				else
+		    			{			
+		    				LivingEntity target = (LivingEntity)derp;
+		    				target.damage(event.getDamage() / 2);
+		    				targets--;
+		    			}
+	    			}
+	    		}
+	    	}
+    	}
+    }
+}

+ 0 - 0
mcMMO/com/gmail/nossr50/skills/Excavation.java → src/com/gmail/nossr50/skills/Excavation.java


+ 0 - 0
mcMMO/com/gmail/nossr50/skills/Herbalism.java → src/com/gmail/nossr50/skills/Herbalism.java


+ 0 - 0
mcMMO/com/gmail/nossr50/skills/Mining.java → src/com/gmail/nossr50/skills/Mining.java


+ 0 - 0
mcMMO/com/gmail/nossr50/skills/Repair.java → src/com/gmail/nossr50/skills/Repair.java


+ 0 - 0
mcMMO/com/gmail/nossr50/skills/Skills.java → src/com/gmail/nossr50/skills/Skills.java


+ 271 - 271
mcMMO/com/gmail/nossr50/skills/Swords.java → src/com/gmail/nossr50/skills/Swords.java

@@ -1,271 +1,271 @@
-package com.gmail.nossr50.skills;
-
-import org.bukkit.ChatColor;
-import org.bukkit.entity.Arrow;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.LivingEntity;
-import org.bukkit.entity.Player;
-import org.bukkit.entity.Wolf;
-import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import com.gmail.nossr50.Combat;
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.m;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.mcPermissions;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.locale.mcLocale;
-import com.gmail.nossr50.party.Party;
-
-public class Swords 
-{
-	public static void serratedStrikesActivationCheck(Player player){
-    	PlayerProfile PP = Users.getProfile(player);
-		if(m.isSwords(player.getItemInHand()))
-		{
-			if(PP.getSwordsPreparationMode())
-			{
-    			PP.setSwordsPreparationMode(false);
-    		}
-	    	int ticks = 2;
-	    	int x = PP.getSkillLevel(SkillType.SWORDS);
-    		while(x >= 50)
-    		{
-    			x-=50;
-    			ticks++;
-    		}
-    		
-	    	if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() < System.currentTimeMillis())
-	    	{
-	    		player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOn"));
-	    		for(Player y : player.getWorld().getPlayers())
-	    		{
-	    			if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
-	    				y.sendMessage(mcLocale.getString("Skills.SerratedStrikesPlayer", new Object[] {player.getName()}));
-	    		}
-	    		PP.setSerratedStrikesActivatedTimeStamp(System.currentTimeMillis());
-	    		PP.setSerratedStrikesDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
-	    		PP.setSerratedStrikesMode(true);
-	    	}
-	    	
-	    }
-	}
-
-	public static void bleedCheck(Player attacker, LivingEntity x, mcMMO pluginx)
-	{
-    	PlayerProfile PPa = Users.getProfile(attacker);
-    	
-    	if(x instanceof Wolf)
-    	{
-    		Wolf wolf = (Wolf)x;
-    		if(Taming.getOwner(wolf, pluginx) != null)
-    		{
-	    		if(Taming.getOwner(wolf, pluginx) == attacker)
-	    			return;
-	    		if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx)))
-	    			return;
-    		}
-    	}
-    	if(mcPermissions.getInstance().swords(attacker) && m.isSwords(attacker.getItemInHand())){
-			if(PPa.getSkillLevel(SkillType.SWORDS) >= 750)
-			{
-				if(Math.random() * 1000 >= 750)
-				{
-					if(!(x instanceof Player))
-						pluginx.misc.addToBleedQue(x);
-					if(x instanceof Player)
-					{
-						Player target = (Player)x;
-						Users.getProfile(target).addBleedTicks(3);
-					}
-					attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**");
-				}
-			} 
-			else if (Math.random() * 1000 <= PPa.getSkillLevel(SkillType.SWORDS))
-			{
-				if(!(x instanceof Player))
-					pluginx.misc.addToBleedQue(x);
-				if(x instanceof Player)
-				{
-					Player target = (Player)x;
-					Users.getProfile(target).addBleedTicks(2);
-				}
-				attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**");
-			}
-		}
-    }
-    public static void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, mcMMO pluginx)
-    {
-    	int targets = 0;
-    	
-    	if(event.getEntity() instanceof LivingEntity)
-    	{
-    		LivingEntity x = (LivingEntity) event.getEntity();
-	    	targets = m.getTier(attacker);
-	    	
-	    	for(Entity derp : x.getWorld().getEntities())
-	    	{
-	    		if(m.getDistance(x.getLocation(), derp.getLocation()) < 5)
-	    		{
-	    			
-	    			
-	    			//Make sure the Wolf is not friendly
-	    			if(derp instanceof Wolf)
-	    			{
-						Wolf hurrDurr = (Wolf)derp;
-						if(Taming.getOwner(hurrDurr, pluginx) == attacker)
-							continue;
-						if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx)))
-							continue;
-					}
-	    			//Damage nearby LivingEntities
-	    			if(derp instanceof LivingEntity && targets >= 1)
-	    			{
-	    				if(derp instanceof Player)
-		    			{
-		    				Player target = (Player)derp;
-		    				
-		    				if(target.getName().equals(attacker.getName()))
-		    					continue;
-		    				
-		    				if(Users.getProfile(target).getGodMode())
-		    					continue;
-		    				
-		    				if(Party.getInstance().inSameParty(attacker, target))
-		    					continue;
-		    				if(targets >= 1 && derp.getWorld().getPVP())
-		    				{
-		    					target.damage(event.getDamage() / 4);
-		    					target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!");
-		        				Users.getProfile(target).addBleedTicks(5);
-		    					targets--;
-		    					continue;
-		    				}
-		    			} 
-	    				else
-		    			{
-		    				if(!pluginx.misc.bleedTracker.contains(derp))
-		    					pluginx.misc.addToBleedQue((LivingEntity)derp);
-		    				
-		    				LivingEntity target = (LivingEntity)derp;
-		    				target.damage(event.getDamage() / 4);
-		    				targets--;
-		    			}
-	    			}
-	    		}
-	    	}
-    	}
-    }
-    
-    public static void parryCheck(EntityDamageByEntityEvent event, Player defender)
-    {
-    	Entity y = event.getDamager();
-    	PlayerProfile PPd = Users.getProfile(defender);
-    	if(defender != null && m.isSwords(defender.getItemInHand()) 
-    			&& mcPermissions.getInstance().swords(defender)){
-			if(PPd.getSkillLevel(SkillType.SWORDS) >= 900)
-			{
-				if(Math.random() * 3000 <= 900)
-				{
-					event.setCancelled(true);
-					defender.sendMessage(ChatColor.GREEN+"**PARRIED**");
-					defender.getItemInHand().setDurability((short) (defender.getItemInHand().getDurability() + 1));
-					if(y instanceof Player)
-					{
-						Player attacker = (Player)y;
-						attacker.sendMessage(ChatColor.GREEN+"**PARRIED**");
-					}
-				}
-			} else 
-			{
-				if(Math.random() * 3000 <= PPd.getSkillLevel(SkillType.SWORDS))
-				{
-					event.setCancelled(true);
-					defender.sendMessage(ChatColor.YELLOW+"*CLANG* SUCCESSFUL PARRY *CLANG*");
-					defender.getItemInHand().setDurability((short) (defender.getItemInHand().getDurability() + 1));
-					if(y instanceof Player)
-					{
-						Player attacker = (Player)y;
-						attacker.sendMessage(ChatColor.DARK_RED+"**TARGET HAS PARRIED THAT ATTACK**");
-					}
-				}
-			}
-		}
-    }
-    public static void counterAttackChecks(EntityDamageByEntityEvent event)
-    {
-    	//Don't want to counter attack arrows
-    	
-    	if(event.getDamager() instanceof Arrow)
-    		return;
-    	
-	    if(event instanceof EntityDamageByEntityEvent)
-	    {
-	    	Entity f = ((EntityDamageByEntityEvent) event).getDamager();
-		   	if(event.getEntity() instanceof Player)
-		   	{
-		   		Player defender = (Player)event.getEntity();
-		   		PlayerProfile PPd = Users.getProfile(defender);
-		   		if(m.isSwords(defender.getItemInHand()) && mcPermissions.getInstance().swords(defender))
-		   		{
-		    		if(PPd.getSkillLevel(SkillType.SWORDS) >= 600)
-		    		{
-		    			if(Math.random() * 2000 <= 600)
-		    			{
-			    			Combat.dealDamage(f, event.getDamage() / 2);
-		    				defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
-			    			if(f instanceof Player)
-		    				((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
-		    			}
-		    		}
-		    		else if (Math.random() * 2000 <= PPd.getSkillLevel(SkillType.SWORDS))
-		    		{
-			    		Combat.dealDamage(f, event.getDamage() / 2);
-			    		defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
-		    			if(f instanceof Player)
-		    				((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
-		    		}
-		   		}
-		    }
-    	}
-    }
-    public static void bleedSimulate(mcMMO plugin)
-    {
-    	//Add items from Que list to BleedTrack list
-    	
-    	for(LivingEntity x : plugin.misc.bleedQue)
-    	{
-    		plugin.misc.bleedTracker.add(x);
-    	}
-    	
-    	//Clear list
-    	plugin.misc.bleedQue = new LivingEntity[plugin.misc.bleedQue.length];
-    	plugin.misc.bleedQuePos = 0;
-    	
-    	//Cleanup any dead entities from the list
-    	for(LivingEntity x : plugin.misc.bleedRemovalQue)
-    	{
-    		plugin.misc.bleedTracker.remove(x);
-    	}
-    	
-    	//Clear bleed removal list
-    	plugin.misc.bleedRemovalQue = new LivingEntity[plugin.misc.bleedRemovalQue.length];
-    	plugin.misc.bleedRemovalQuePos = 0;
-    	
-    	//Bleed monsters/animals
-        for(LivingEntity x : plugin.misc.bleedTracker)
-        {
-        	if(x == null){continue;}
-        	
-        	if(x.getHealth() <= 0)
-        	{
-        		plugin.misc.addToBleedRemovalQue(x);
-        		continue;
-        	}
-        	else
-        	{
-        		x.damage(2);
-        	}
-        }
-    }
-}
+package com.gmail.nossr50.skills;
+
+import org.bukkit.ChatColor;
+import org.bukkit.entity.Arrow;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.Wolf;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import com.gmail.nossr50.Combat;
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.m;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.mcPermissions;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.locale.mcLocale;
+import com.gmail.nossr50.party.Party;
+
+public class Swords 
+{
+	public static void serratedStrikesActivationCheck(Player player){
+    	PlayerProfile PP = Users.getProfile(player);
+		if(m.isSwords(player.getItemInHand()))
+		{
+			if(PP.getSwordsPreparationMode())
+			{
+    			PP.setSwordsPreparationMode(false);
+    		}
+	    	int ticks = 2;
+	    	int x = PP.getSkillLevel(SkillType.SWORDS);
+    		while(x >= 50)
+    		{
+    			x-=50;
+    			ticks++;
+    		}
+    		
+	    	if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() < System.currentTimeMillis())
+	    	{
+	    		player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOn"));
+	    		for(Player y : player.getWorld().getPlayers())
+	    		{
+	    			if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
+	    				y.sendMessage(mcLocale.getString("Skills.SerratedStrikesPlayer", new Object[] {player.getName()}));
+	    		}
+	    		PP.setSerratedStrikesActivatedTimeStamp(System.currentTimeMillis());
+	    		PP.setSerratedStrikesDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
+	    		PP.setSerratedStrikesMode(true);
+	    	}
+	    	
+	    }
+	}
+
+	public static void bleedCheck(Player attacker, LivingEntity x, mcMMO pluginx)
+	{
+    	PlayerProfile PPa = Users.getProfile(attacker);
+    	
+    	if(x instanceof Wolf)
+    	{
+    		Wolf wolf = (Wolf)x;
+    		if(Taming.getOwner(wolf, pluginx) != null)
+    		{
+	    		if(Taming.getOwner(wolf, pluginx) == attacker)
+	    			return;
+	    		if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx)))
+	    			return;
+    		}
+    	}
+    	if(mcPermissions.getInstance().swords(attacker) && m.isSwords(attacker.getItemInHand())){
+			if(PPa.getSkillLevel(SkillType.SWORDS) >= 750)
+			{
+				if(Math.random() * 1000 >= 750)
+				{
+					if(!(x instanceof Player))
+						pluginx.misc.addToBleedQue(x);
+					if(x instanceof Player)
+					{
+						Player target = (Player)x;
+						Users.getProfile(target).addBleedTicks(3);
+					}
+					attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**");
+				}
+			} 
+			else if (Math.random() * 1000 <= PPa.getSkillLevel(SkillType.SWORDS))
+			{
+				if(!(x instanceof Player))
+					pluginx.misc.addToBleedQue(x);
+				if(x instanceof Player)
+				{
+					Player target = (Player)x;
+					Users.getProfile(target).addBleedTicks(2);
+				}
+				attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**");
+			}
+		}
+    }
+    public static void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, mcMMO pluginx)
+    {
+    	int targets = 0;
+    	
+    	if(event.getEntity() instanceof LivingEntity)
+    	{
+    		LivingEntity x = (LivingEntity) event.getEntity();
+	    	targets = m.getTier(attacker);
+	    	
+	    	for(Entity derp : x.getWorld().getEntities())
+	    	{
+	    		if(m.getDistance(x.getLocation(), derp.getLocation()) < 5)
+	    		{
+	    			
+	    			
+	    			//Make sure the Wolf is not friendly
+	    			if(derp instanceof Wolf)
+	    			{
+						Wolf hurrDurr = (Wolf)derp;
+						if(Taming.getOwner(hurrDurr, pluginx) == attacker)
+							continue;
+						if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx)))
+							continue;
+					}
+	    			//Damage nearby LivingEntities
+	    			if(derp instanceof LivingEntity && targets >= 1)
+	    			{
+	    				if(derp instanceof Player)
+		    			{
+		    				Player target = (Player)derp;
+		    				
+		    				if(target.getName().equals(attacker.getName()))
+		    					continue;
+		    				
+		    				if(Users.getProfile(target).getGodMode())
+		    					continue;
+		    				
+		    				if(Party.getInstance().inSameParty(attacker, target))
+		    					continue;
+		    				if(targets >= 1 && derp.getWorld().getPVP())
+		    				{
+		    					target.damage(event.getDamage() / 4);
+		    					target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!");
+		        				Users.getProfile(target).addBleedTicks(5);
+		    					targets--;
+		    					continue;
+		    				}
+		    			} 
+	    				else
+		    			{
+		    				if(!pluginx.misc.bleedTracker.contains(derp))
+		    					pluginx.misc.addToBleedQue((LivingEntity)derp);
+		    				
+		    				LivingEntity target = (LivingEntity)derp;
+		    				target.damage(event.getDamage() / 4);
+		    				targets--;
+		    			}
+	    			}
+	    		}
+	    	}
+    	}
+    }
+    
+    public static void parryCheck(EntityDamageByEntityEvent event, Player defender)
+    {
+    	Entity y = event.getDamager();
+    	PlayerProfile PPd = Users.getProfile(defender);
+    	if(defender != null && m.isSwords(defender.getItemInHand()) 
+    			&& mcPermissions.getInstance().swords(defender)){
+			if(PPd.getSkillLevel(SkillType.SWORDS) >= 900)
+			{
+				if(Math.random() * 3000 <= 900)
+				{
+					event.setCancelled(true);
+					defender.sendMessage(ChatColor.GREEN+"**PARRIED**");
+					defender.getItemInHand().setDurability((short) (defender.getItemInHand().getDurability() + 1));
+					if(y instanceof Player)
+					{
+						Player attacker = (Player)y;
+						attacker.sendMessage(ChatColor.GREEN+"**PARRIED**");
+					}
+				}
+			} else 
+			{
+				if(Math.random() * 3000 <= PPd.getSkillLevel(SkillType.SWORDS))
+				{
+					event.setCancelled(true);
+					defender.sendMessage(ChatColor.YELLOW+"*CLANG* SUCCESSFUL PARRY *CLANG*");
+					defender.getItemInHand().setDurability((short) (defender.getItemInHand().getDurability() + 1));
+					if(y instanceof Player)
+					{
+						Player attacker = (Player)y;
+						attacker.sendMessage(ChatColor.DARK_RED+"**TARGET HAS PARRIED THAT ATTACK**");
+					}
+				}
+			}
+		}
+    }
+    public static void counterAttackChecks(EntityDamageByEntityEvent event)
+    {
+    	//Don't want to counter attack arrows
+    	
+    	if(event.getDamager() instanceof Arrow)
+    		return;
+    	
+	    if(event instanceof EntityDamageByEntityEvent)
+	    {
+	    	Entity f = ((EntityDamageByEntityEvent) event).getDamager();
+		   	if(event.getEntity() instanceof Player)
+		   	{
+		   		Player defender = (Player)event.getEntity();
+		   		PlayerProfile PPd = Users.getProfile(defender);
+		   		if(m.isSwords(defender.getItemInHand()) && mcPermissions.getInstance().swords(defender))
+		   		{
+		    		if(PPd.getSkillLevel(SkillType.SWORDS) >= 600)
+		    		{
+		    			if(Math.random() * 2000 <= 600)
+		    			{
+			    			Combat.dealDamage(f, event.getDamage() / 2);
+		    				defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
+			    			if(f instanceof Player)
+		    				((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
+		    			}
+		    		}
+		    		else if (Math.random() * 2000 <= PPd.getSkillLevel(SkillType.SWORDS))
+		    		{
+			    		Combat.dealDamage(f, event.getDamage() / 2);
+			    		defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
+		    			if(f instanceof Player)
+		    				((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
+		    		}
+		   		}
+		    }
+    	}
+    }
+    public static void bleedSimulate(mcMMO plugin)
+    {
+    	//Add items from Que list to BleedTrack list
+    	
+    	for(LivingEntity x : plugin.misc.bleedQue)
+    	{
+    		plugin.misc.bleedTracker.add(x);
+    	}
+    	
+    	//Clear list
+    	plugin.misc.bleedQue = new LivingEntity[plugin.misc.bleedQue.length];
+    	plugin.misc.bleedQuePos = 0;
+    	
+    	//Cleanup any dead entities from the list
+    	for(LivingEntity x : plugin.misc.bleedRemovalQue)
+    	{
+    		plugin.misc.bleedTracker.remove(x);
+    	}
+    	
+    	//Clear bleed removal list
+    	plugin.misc.bleedRemovalQue = new LivingEntity[plugin.misc.bleedRemovalQue.length];
+    	plugin.misc.bleedRemovalQuePos = 0;
+    	
+    	//Bleed monsters/animals
+        for(LivingEntity x : plugin.misc.bleedTracker)
+        {
+        	if(x == null){continue;}
+        	
+        	if(x.getHealth() <= 0)
+        	{
+        		plugin.misc.addToBleedRemovalQue(x);
+        		continue;
+        	}
+        	else
+        	{
+        		x.damage(2);
+        	}
+        }
+    }
+}

+ 53 - 53
mcMMO/com/gmail/nossr50/skills/Taming.java → src/com/gmail/nossr50/skills/Taming.java

@@ -1,53 +1,53 @@
-package com.gmail.nossr50.skills;
-
-import org.bukkit.entity.AnimalTamer;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.Player;
-import org.bukkit.entity.Wolf;
-import org.bukkit.plugin.Plugin;
-
-public class Taming 
-{
-	public static boolean ownerOnline(Wolf theWolf, Plugin pluginx)
-	{
-		for(Player x : pluginx.getServer().getOnlinePlayers())
-		{
-			if(x instanceof AnimalTamer)
-			{
-				AnimalTamer tamer = (AnimalTamer)x;
-				if(theWolf.getOwner() == tamer)
-					return true;
-			}
-		}
-		return false;
-	}
-	
-	public static Player getOwner(Entity wolf, Plugin pluginx)
-	{
-		if(wolf instanceof Wolf)
-		{
-			Wolf theWolf = (Wolf)wolf;
-			for(Player x : pluginx.getServer().getOnlinePlayers())
-			{
-				if(x instanceof AnimalTamer)
-				{
-					AnimalTamer tamer = (AnimalTamer)x;
-					if(theWolf.getOwner() == tamer)
-						return x;
-				}
-			}
-		}
-		return null;
-	}
-	
-	public static String getOwnerName(Wolf theWolf)
-	{
-		Player owner = (Player)theWolf.getOwner();
-		if(owner != null)
-		{
-		return owner.getName();
-		}
-		else
-			return "Offline Master";
-	}
-}
+package com.gmail.nossr50.skills;
+
+import org.bukkit.entity.AnimalTamer;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.Wolf;
+import org.bukkit.plugin.Plugin;
+
+public class Taming 
+{
+	public static boolean ownerOnline(Wolf theWolf, Plugin pluginx)
+	{
+		for(Player x : pluginx.getServer().getOnlinePlayers())
+		{
+			if(x instanceof AnimalTamer)
+			{
+				AnimalTamer tamer = (AnimalTamer)x;
+				if(theWolf.getOwner() == tamer)
+					return true;
+			}
+		}
+		return false;
+	}
+	
+	public static Player getOwner(Entity wolf, Plugin pluginx)
+	{
+		if(wolf instanceof Wolf)
+		{
+			Wolf theWolf = (Wolf)wolf;
+			for(Player x : pluginx.getServer().getOnlinePlayers())
+			{
+				if(x instanceof AnimalTamer)
+				{
+					AnimalTamer tamer = (AnimalTamer)x;
+					if(theWolf.getOwner() == tamer)
+						return x;
+				}
+			}
+		}
+		return null;
+	}
+	
+	public static String getOwnerName(Wolf theWolf)
+	{
+		Player owner = (Player)theWolf.getOwner();
+		if(owner != null)
+		{
+		return owner.getName();
+		}
+		else
+			return "Offline Master";
+	}
+}

+ 95 - 95
mcMMO/com/gmail/nossr50/skills/Unarmed.java → src/com/gmail/nossr50/skills/Unarmed.java

@@ -1,95 +1,95 @@
-package com.gmail.nossr50.skills;
-
-import org.bukkit.Location;
-import org.bukkit.entity.Player;
-import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import org.bukkit.inventory.ItemStack;
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.m;
-import com.gmail.nossr50.config.LoadProperties;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.locale.mcLocale;
-
-public class Unarmed {
-	public static void berserkActivationCheck(Player player)
-	{
-    	PlayerProfile PP = Users.getProfile(player);
-		if(player.getItemInHand().getTypeId() == 0)
-		{
-			if(PP.getFistsPreparationMode())
-			{
-    			PP.setFistsPreparationMode(false);
-    		}
-	    	int ticks = 2;
-	    	int x = PP.getSkillLevel(SkillType.UNARMED);
-    		while(x >= 50){
-    			x-=50;
-    			ticks++;
-    		}
-    		
-	    	if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown))
-	    	{
-	    		player.sendMessage(mcLocale.getString("Skills.BerserkOn"));
-	    		for(Player y : player.getWorld().getPlayers())
-	    		{
-	    			if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
-	    				y.sendMessage(mcLocale.getString("Skills.BerserkPlayer", new Object[] {player.getName()}));
-	    		}
-	    		PP.setBerserkActivatedTimeStamp(System.currentTimeMillis());
-	    		PP.setBerserkDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
-	    		PP.setBerserkMode(true);
-	    	}
-	    }
-	}
-	public static void unarmedBonus(Player attacker, EntityDamageByEntityEvent event)
-	{
-		PlayerProfile PPa = Users.getProfile(attacker);
-		int bonus = 0;
-		if (PPa.getSkillLevel(SkillType.UNARMED) >= 250)
-			bonus+=2;
-		if (PPa.getSkillLevel(SkillType.UNARMED) >= 500)
-			bonus+=4;
-		event.setDamage(event.getDamage()+bonus);
-	}
-	public static void disarmProcCheck(Player attacker, Player defender)
-	{
-		PlayerProfile PP = Users.getProfile(attacker);
-		if(attacker.getItemInHand().getTypeId() == 0)
-		{
-			if(PP.getSkillLevel(SkillType.UNARMED) >= 1000)
-			{
-	    		if(Math.random() * 4000 <= 1000)
-	    		{
-	    			Location loc = defender.getLocation();
-	    			if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
-	    			{
-	    				defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
-	    				ItemStack item = defender.getItemInHand();
-		    			if(item != null)
-		    			{
-		    				loc.getWorld().dropItemNaturally(loc, item);
-		    				ItemStack itemx = null;
-		    				defender.setItemInHand(itemx);
-		    			}
-	    			}
-	    		}
-	    	} else {
-	    		if(Math.random() * 4000 <= PP.getSkillLevel(SkillType.UNARMED)){
-	    			Location loc = defender.getLocation();
-	    			if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
-	    			{
-	    				defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
-	    				ItemStack item = defender.getItemInHand();
-		    			if(item != null)
-		    			{
-		    				loc.getWorld().dropItemNaturally(loc, item);
-		    				ItemStack itemx = null;
-		    				defender.setItemInHand(itemx);
-	    				}
-	    			}
-	    		}
-	    	}
-		}
-	}
-}
+package com.gmail.nossr50.skills;
+
+import org.bukkit.Location;
+import org.bukkit.entity.Player;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import org.bukkit.inventory.ItemStack;
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.m;
+import com.gmail.nossr50.config.LoadProperties;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.locale.mcLocale;
+
+public class Unarmed {
+	public static void berserkActivationCheck(Player player)
+	{
+    	PlayerProfile PP = Users.getProfile(player);
+		if(player.getItemInHand().getTypeId() == 0)
+		{
+			if(PP.getFistsPreparationMode())
+			{
+    			PP.setFistsPreparationMode(false);
+    		}
+	    	int ticks = 2;
+	    	int x = PP.getSkillLevel(SkillType.UNARMED);
+    		while(x >= 50){
+    			x-=50;
+    			ticks++;
+    		}
+    		
+	    	if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown))
+	    	{
+	    		player.sendMessage(mcLocale.getString("Skills.BerserkOn"));
+	    		for(Player y : player.getWorld().getPlayers())
+	    		{
+	    			if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
+	    				y.sendMessage(mcLocale.getString("Skills.BerserkPlayer", new Object[] {player.getName()}));
+	    		}
+	    		PP.setBerserkActivatedTimeStamp(System.currentTimeMillis());
+	    		PP.setBerserkDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
+	    		PP.setBerserkMode(true);
+	    	}
+	    }
+	}
+	public static void unarmedBonus(Player attacker, EntityDamageByEntityEvent event)
+	{
+		PlayerProfile PPa = Users.getProfile(attacker);
+		int bonus = 0;
+		if (PPa.getSkillLevel(SkillType.UNARMED) >= 250)
+			bonus+=2;
+		if (PPa.getSkillLevel(SkillType.UNARMED) >= 500)
+			bonus+=4;
+		event.setDamage(event.getDamage()+bonus);
+	}
+	public static void disarmProcCheck(Player attacker, Player defender)
+	{
+		PlayerProfile PP = Users.getProfile(attacker);
+		if(attacker.getItemInHand().getTypeId() == 0)
+		{
+			if(PP.getSkillLevel(SkillType.UNARMED) >= 1000)
+			{
+	    		if(Math.random() * 4000 <= 1000)
+	    		{
+	    			Location loc = defender.getLocation();
+	    			if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
+	    			{
+	    				defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
+	    				ItemStack item = defender.getItemInHand();
+		    			if(item != null)
+		    			{
+		    				loc.getWorld().dropItemNaturally(loc, item);
+		    				ItemStack itemx = null;
+		    				defender.setItemInHand(itemx);
+		    			}
+	    			}
+	    		}
+	    	} else {
+	    		if(Math.random() * 4000 <= PP.getSkillLevel(SkillType.UNARMED)){
+	    			Location loc = defender.getLocation();
+	    			if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
+	    			{
+	    				defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
+	    				ItemStack item = defender.getItemInHand();
+		    			if(item != null)
+		    			{
+		    				loc.getWorld().dropItemNaturally(loc, item);
+		    				ItemStack itemx = null;
+		    				defender.setItemInHand(itemx);
+	    				}
+	    			}
+	    		}
+	    	}
+		}
+	}
+}

+ 0 - 0
mcMMO/com/gmail/nossr50/skills/WoodCutting.java → src/com/gmail/nossr50/skills/WoodCutting.java


+ 111 - 111
mcMMO/com/gmail/nossr50/spout/ArrayListString.java → src/com/gmail/nossr50/spout/ArrayListString.java

@@ -1,112 +1,112 @@
-/*
- * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
- * 
- * mmoMinecraft 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.gmail.nossr50.spout;
-
-import java.util.ArrayList;
-
-/**
- * Case insensitive ArrayList<String>.
- * Overrides the .contains(), .indexOf(), .lastIndexOf() and .remove() methods.
- */
-public class ArrayListString extends ArrayList<String> {
-	
-	private static final long serialVersionUID = -8111006526598412404L;
-
-	/**
-	 * Returns true if this list contains the specified string.
-	 * @param o String whose presence in this list is to be tested
-	 * @return true if this list contains the specified string
-	 */
-	public boolean contains(String o) {
-		for (String e : this) {
-			if (o == null ? e == null : o.equalsIgnoreCase(e)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the index of the first occurrence of the specified string in this list, or -1 if this list does not contain the string.
-	 * @param o String to search for
-	 * @return The index of the first occurrence of the specified string in this list, or -1 if this list does not contain the string
-	 */
-	public int indexOf(String o) {
-		for (int i = 0; i < this.size(); i++) {
-			if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Returns the index of the last occurrence of the specified string in this list, or -1 if this list does not contain the string.
-	 * @param o String to search for
-	 * @return The index of the last occurrence of the specified string in this list, or -1 if this list does not contain the string
-	 */
-	public int lastIndexOf(String o) {
-		for (int i = size() - 1; i >= 0; i--) {
-			if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Removes the first occurrence of the specified string from this list, if it is present. If the list does not contain the string, it is unchanged.
-	 * @param o String to be removed from this list, if present
-	 * @return true if this list contained the specified string
-	 */
-	public boolean remove(String o) {
-		int i = indexOf(o);
-		if (i != -1) {
-			remove(i);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the element at the specified position in this list.
-	 * This is for finding the correct capitalisation of an element.
-	 * @param index String to search for
-	 * @return the correctly capitalised element
-	 */
-	public String get(String index) {
-		int i = this.indexOf(index);
-		if (i != -1) {
-			return this.get(i);
-		}
-		return null;
-	}
-
-	public ArrayListString meFirst(String name) {
-		ArrayListString copy = new ArrayListString();
-		if (this.contains(name)) {
-			copy.add(name);
-		}
-		for (String next : this) {
-			if (!next.equalsIgnoreCase(name)) {
-				copy.add(next);
-			}
-		}
-		return copy;
-	}
+/*
+ * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
+ * 
+ * mmoMinecraft 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.gmail.nossr50.spout;
+
+import java.util.ArrayList;
+
+/**
+ * Case insensitive ArrayList<String>.
+ * Overrides the .contains(), .indexOf(), .lastIndexOf() and .remove() methods.
+ */
+public class ArrayListString extends ArrayList<String> {
+	
+	private static final long serialVersionUID = -8111006526598412404L;
+
+	/**
+	 * Returns true if this list contains the specified string.
+	 * @param o String whose presence in this list is to be tested
+	 * @return true if this list contains the specified string
+	 */
+	public boolean contains(String o) {
+		for (String e : this) {
+			if (o == null ? e == null : o.equalsIgnoreCase(e)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Returns the index of the first occurrence of the specified string in this list, or -1 if this list does not contain the string.
+	 * @param o String to search for
+	 * @return The index of the first occurrence of the specified string in this list, or -1 if this list does not contain the string
+	 */
+	public int indexOf(String o) {
+		for (int i = 0; i < this.size(); i++) {
+			if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) {
+				return i;
+			}
+		}
+		return -1;
+	}
+
+	/**
+	 * Returns the index of the last occurrence of the specified string in this list, or -1 if this list does not contain the string.
+	 * @param o String to search for
+	 * @return The index of the last occurrence of the specified string in this list, or -1 if this list does not contain the string
+	 */
+	public int lastIndexOf(String o) {
+		for (int i = size() - 1; i >= 0; i--) {
+			if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) {
+				return i;
+			}
+		}
+		return -1;
+	}
+
+	/**
+	 * Removes the first occurrence of the specified string from this list, if it is present. If the list does not contain the string, it is unchanged.
+	 * @param o String to be removed from this list, if present
+	 * @return true if this list contained the specified string
+	 */
+	public boolean remove(String o) {
+		int i = indexOf(o);
+		if (i != -1) {
+			remove(i);
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * Returns the element at the specified position in this list.
+	 * This is for finding the correct capitalisation of an element.
+	 * @param index String to search for
+	 * @return the correctly capitalised element
+	 */
+	public String get(String index) {
+		int i = this.indexOf(index);
+		if (i != -1) {
+			return this.get(i);
+		}
+		return null;
+	}
+
+	public ArrayListString meFirst(String name) {
+		ArrayListString copy = new ArrayListString();
+		if (this.contains(name)) {
+			copy.add(name);
+		}
+		for (String next : this) {
+			if (!next.equalsIgnoreCase(name)) {
+				copy.add(next);
+			}
+		}
+		return copy;
+	}
 }

+ 58 - 58
mcMMO/com/gmail/nossr50/spout/GenericFace.java → src/com/gmail/nossr50/spout/GenericFace.java

@@ -1,58 +1,58 @@
-/*
- * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
- * 
- * mmoMinecraft 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.gmail.nossr50.spout;
-
-import org.getspout.spoutapi.gui.GenericTexture;
-
-public final class GenericFace extends GenericTexture {
-
-	private static String facePath = "http://face.rycochet.net/";
-	private static int defaultSize = 8;
-	private String name;
-
-	public GenericFace() {
-		this.setWidth(defaultSize).setHeight(defaultSize).setFixed(true);
-		setName("");
-	}
-
-	public GenericFace(String name) {
-		this.setWidth(defaultSize).setHeight(defaultSize).setFixed(true);
-		setName(name);
-	}
-
-	public GenericFace(String name, int size) {
-		this.setWidth(size).setHeight(size).setFixed(true);
-		setName(name);
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public GenericFace setName(String name) {
-		this.name = name == null ? "" : name;
-		super.setUrl(facePath + this.name + ".png");
-		super.setDirty(true);
-		return this;
-	}
-
-	public GenericFace setSize(int size) {
-		super.setWidth(size).setHeight(size);
-		return this;
-	}
-}
+/*
+ * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
+ * 
+ * mmoMinecraft 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.gmail.nossr50.spout;
+
+import org.getspout.spoutapi.gui.GenericTexture;
+
+public final class GenericFace extends GenericTexture {
+
+	private static String facePath = "http://face.rycochet.net/";
+	private static int defaultSize = 8;
+	private String name;
+
+	public GenericFace() {
+		this.setWidth(defaultSize).setHeight(defaultSize).setFixed(true);
+		setName("");
+	}
+
+	public GenericFace(String name) {
+		this.setWidth(defaultSize).setHeight(defaultSize).setFixed(true);
+		setName(name);
+	}
+
+	public GenericFace(String name, int size) {
+		this.setWidth(size).setHeight(size).setFixed(true);
+		setName(name);
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public GenericFace setName(String name) {
+		this.name = name == null ? "" : name;
+		super.setUrl(facePath + this.name + ".png");
+		super.setDirty(true);
+		return this;
+	}
+
+	public GenericFace setSize(int size) {
+		super.setWidth(size).setHeight(size);
+		return this;
+	}
+}

+ 226 - 226
mcMMO/com/gmail/nossr50/spout/GenericLivingEntity.java → src/com/gmail/nossr50/spout/GenericLivingEntity.java

@@ -1,227 +1,227 @@
-/*
- * This file is from mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
- * 
- * mmoMinecraft 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.gmail.nossr50.spout;
-
-import org.bukkit.Bukkit;
-import org.bukkit.entity.LivingEntity;
-import org.bukkit.entity.Player;
-import org.getspout.spoutapi.gui.*;
-
-public class GenericLivingEntity extends GenericContainer {
-
-	private Container _bars;
-	private Container _space;
-	private Label _label;
-	private Gradient _health;
-	private Gradient _armor;
-	private GenericFace _face;
-	private int health = 100;
-	private int armor = 100;
-	private int def_width = 80;
-	private int def_height = 14;
-	private boolean target = false;
-	String face = "~";
-	String label = "";
-
-	public GenericLivingEntity() {
-		super();
-		Color black = new Color(0, 0, 0, 0.75f);
-
-		this.addChildren( 
-			new GenericContainer(	// Used for the bar, this.children with an index 1+ are targets
-				_space = (Container) new GenericContainer()
-					  .setMinWidth(def_width / 4)
-					  .setMaxWidth(def_width / 4)
-					  .setVisible(target),
-				new GenericContainer(
-					new GenericGradient()
-							.setTopColor(black)
-							.setBottomColor(black)
-							.setPriority(RenderPriority.Highest),
-					_bars = (Container) new GenericContainer(
-						_health = (Gradient) new GenericGradient(),
-						_armor = (Gradient) new GenericGradient()
-					)		.setMargin(1)
-							.setPriority(RenderPriority.High),
-					new GenericContainer(
-						_face = (GenericFace) new GenericFace()
-								.setMargin(3, 0, 3, 3),
-						_label = (Label) new GenericLabel()
-								.setMargin(3)
-					)		.setLayout(ContainerType.HORIZONTAL)
-				)		.setLayout(ContainerType.OVERLAY)
-			)		.setLayout(ContainerType.HORIZONTAL)
-					.setMargin(0, 0, 1, 0)
-					.setFixed(true)
-					.setWidth(def_width)
-					.setHeight(def_height)
-		)		.setAlign(WidgetAnchor.TOP_LEFT)
-				.setFixed(true)
-				.setWidth(def_width)
-				.setHeight(def_height + 1);
-
-		this.setHealthColor(new Color(1f, 0, 0, 0.75f));
-		this.setArmorColor(new Color(0.75f, 0.75f, 0.75f, 0.75f));
-	}
-
-	/**
-	 * Set the display from a possibly offline player
-	 * @param name
-	 * @return 
-	 */
-	public GenericLivingEntity setEntity(String name) {
-		return setEntity(name, "");
-	}
-
-	/**
-	 * Set the display from a possibly offline player
-	 * @param name
-	 * @param prefix Place before the name
-	 * @return 
-	 */
-	public GenericLivingEntity setEntity(String name, String prefix) {
-		Player player = Bukkit.getServer().getPlayer(name);
-		if (player != null && player.isOnline()) {
-			return setEntity(player, prefix);
-		}
-		setHealth(0);
-		setArmor(0);
-		setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, null) + name);
-		setFace("~" + name);
-		return this;
-	}
-
-	/**
-	 * Set the display from a player or living entity
-	 * @param entity
-	 * @return 
-	 */
-	public GenericLivingEntity setEntity(LivingEntity entity) {
-		return setEntity(entity, "");
-	}
-
-	/**
-	 * Set the display from a player or living entity
-	 * @param entity
-	 * @param prefix Place before the name
-	 * @return 
-	 */
-	public GenericLivingEntity setEntity(LivingEntity entity, String prefix) {
-		if (entity != null && entity instanceof LivingEntity) {
-			setHealth(mmoHelper.getHealth(entity)); // Needs a maxHealth() check
-			setArmor(mmoHelper.getArmor(entity));
-			setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, entity) + mmoHelper.getSimpleName(entity, !target));
-			setFace(entity instanceof Player ? ((Player)entity).getName() : "");
-		} else {
-			setHealth(0);
-			setArmor(0);
-			setLabel("");
-			setFace("");
-		}
-		return this;
-	}
-
-	/**
-	 * Set the targets of this entity - either actual targets, or pets etc
-	 * @param targets
-	 * @return 
-	 */
-	public GenericLivingEntity setTargets(LivingEntity... targets) {
-		Widget[] widgets = this.getChildren();
-		if (targets == null) {
-			targets = new LivingEntity[0]; // zero-length array is easier to handle
-		}
-		for (int i=targets.length + 1; i<widgets.length; i++) {
-			this.removeChild(widgets[i]);
-		}
-		for (int i=0; i<targets.length; i++) {
-			GenericLivingEntity child;
-			if (widgets.length > i + 1) {
-				child = (GenericLivingEntity) widgets[i+1];
-			} else {
-				this.addChild(child = new GenericLivingEntity());
-			}
-			child.setTarget(true);
-			child.setEntity(targets[i]);
-		}
-		setHeight((targets.length + 1) * (def_height + 1));
-		updateLayout();
-		return this;
-	}
-
-	public GenericLivingEntity setTarget(boolean target) {
-		if (this.target != target) {
-			this.target = target;
-			_space.setVisible(target);
-			updateLayout();
-		}
-		return this;
-	}
-
-	public GenericLivingEntity setHealth(int health) {
-		if (this.health != health) {
-			this.health = health;
-			updateLayout();
-		}
-		return this;
-	}
-
-	public GenericLivingEntity setHealthColor(Color color) {
-		_health.setTopColor(color).setBottomColor(color);
-		return this;
-	}
-
-	public GenericLivingEntity setArmor(int armor) {
-		if (this.armor != armor) {
-			this.armor = armor;
-			updateLayout();
-		}
-		return this;
-	}
-
-	public GenericLivingEntity setArmorColor(Color color) {
-		_armor.setTopColor(color).setBottomColor(color);
-		return this;
-	}
-
-	public GenericLivingEntity setLabel(String label) {
-		if (!this.label.equals(label)) {
-			this.label = label;
-			_label.setText(label).setDirty(true);
-			updateLayout();
-		}
-		return this;
-	}
-
-	public GenericLivingEntity setFace(String name) {
-		if (!this.face.equals(name)) {
-			this.face = name;
-			_face.setVisible(!name.isEmpty());
-			_face.setName(name);
-			updateLayout();
-		}
-		return this;
-	}
-
-	@Override
-	public Container updateLayout() {
-		super.updateLayout();
-		_armor.setWidth((_bars.getWidth() * armor) / 100).setDirty(true);
-		_health.setWidth((_bars.getWidth() * health) / 100).setDirty(true);
-		return this;
-	}
+/*
+ * This file is from mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
+ * 
+ * mmoMinecraft 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.gmail.nossr50.spout;
+
+import org.bukkit.Bukkit;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Player;
+import org.getspout.spoutapi.gui.*;
+
+public class GenericLivingEntity extends GenericContainer {
+
+	private Container _bars;
+	private Container _space;
+	private Label _label;
+	private Gradient _health;
+	private Gradient _armor;
+	private GenericFace _face;
+	private int health = 100;
+	private int armor = 100;
+	private int def_width = 80;
+	private int def_height = 14;
+	private boolean target = false;
+	String face = "~";
+	String label = "";
+
+	public GenericLivingEntity() {
+		super();
+		Color black = new Color(0, 0, 0, 0.75f);
+
+		this.addChildren( 
+			new GenericContainer(	// Used for the bar, this.children with an index 1+ are targets
+				_space = (Container) new GenericContainer()
+					  .setMinWidth(def_width / 4)
+					  .setMaxWidth(def_width / 4)
+					  .setVisible(target),
+				new GenericContainer(
+					new GenericGradient()
+							.setTopColor(black)
+							.setBottomColor(black)
+							.setPriority(RenderPriority.Highest),
+					_bars = (Container) new GenericContainer(
+						_health = (Gradient) new GenericGradient(),
+						_armor = (Gradient) new GenericGradient()
+					)		.setMargin(1)
+							.setPriority(RenderPriority.High),
+					new GenericContainer(
+						_face = (GenericFace) new GenericFace()
+								.setMargin(3, 0, 3, 3),
+						_label = (Label) new GenericLabel()
+								.setMargin(3)
+					)		.setLayout(ContainerType.HORIZONTAL)
+				)		.setLayout(ContainerType.OVERLAY)
+			)		.setLayout(ContainerType.HORIZONTAL)
+					.setMargin(0, 0, 1, 0)
+					.setFixed(true)
+					.setWidth(def_width)
+					.setHeight(def_height)
+		)		.setAlign(WidgetAnchor.TOP_LEFT)
+				.setFixed(true)
+				.setWidth(def_width)
+				.setHeight(def_height + 1);
+
+		this.setHealthColor(new Color(1f, 0, 0, 0.75f));
+		this.setArmorColor(new Color(0.75f, 0.75f, 0.75f, 0.75f));
+	}
+
+	/**
+	 * Set the display from a possibly offline player
+	 * @param name
+	 * @return 
+	 */
+	public GenericLivingEntity setEntity(String name) {
+		return setEntity(name, "");
+	}
+
+	/**
+	 * Set the display from a possibly offline player
+	 * @param name
+	 * @param prefix Place before the name
+	 * @return 
+	 */
+	public GenericLivingEntity setEntity(String name, String prefix) {
+		Player player = Bukkit.getServer().getPlayer(name);
+		if (player != null && player.isOnline()) {
+			return setEntity(player, prefix);
+		}
+		setHealth(0);
+		setArmor(0);
+		setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, null) + name);
+		setFace("~" + name);
+		return this;
+	}
+
+	/**
+	 * Set the display from a player or living entity
+	 * @param entity
+	 * @return 
+	 */
+	public GenericLivingEntity setEntity(LivingEntity entity) {
+		return setEntity(entity, "");
+	}
+
+	/**
+	 * Set the display from a player or living entity
+	 * @param entity
+	 * @param prefix Place before the name
+	 * @return 
+	 */
+	public GenericLivingEntity setEntity(LivingEntity entity, String prefix) {
+		if (entity != null && entity instanceof LivingEntity) {
+			setHealth(mmoHelper.getHealth(entity)); // Needs a maxHealth() check
+			setArmor(mmoHelper.getArmor(entity));
+			setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, entity) + mmoHelper.getSimpleName(entity, !target));
+			setFace(entity instanceof Player ? ((Player)entity).getName() : "");
+		} else {
+			setHealth(0);
+			setArmor(0);
+			setLabel("");
+			setFace("");
+		}
+		return this;
+	}
+
+	/**
+	 * Set the targets of this entity - either actual targets, or pets etc
+	 * @param targets
+	 * @return 
+	 */
+	public GenericLivingEntity setTargets(LivingEntity... targets) {
+		Widget[] widgets = this.getChildren();
+		if (targets == null) {
+			targets = new LivingEntity[0]; // zero-length array is easier to handle
+		}
+		for (int i=targets.length + 1; i<widgets.length; i++) {
+			this.removeChild(widgets[i]);
+		}
+		for (int i=0; i<targets.length; i++) {
+			GenericLivingEntity child;
+			if (widgets.length > i + 1) {
+				child = (GenericLivingEntity) widgets[i+1];
+			} else {
+				this.addChild(child = new GenericLivingEntity());
+			}
+			child.setTarget(true);
+			child.setEntity(targets[i]);
+		}
+		setHeight((targets.length + 1) * (def_height + 1));
+		updateLayout();
+		return this;
+	}
+
+	public GenericLivingEntity setTarget(boolean target) {
+		if (this.target != target) {
+			this.target = target;
+			_space.setVisible(target);
+			updateLayout();
+		}
+		return this;
+	}
+
+	public GenericLivingEntity setHealth(int health) {
+		if (this.health != health) {
+			this.health = health;
+			updateLayout();
+		}
+		return this;
+	}
+
+	public GenericLivingEntity setHealthColor(Color color) {
+		_health.setTopColor(color).setBottomColor(color);
+		return this;
+	}
+
+	public GenericLivingEntity setArmor(int armor) {
+		if (this.armor != armor) {
+			this.armor = armor;
+			updateLayout();
+		}
+		return this;
+	}
+
+	public GenericLivingEntity setArmorColor(Color color) {
+		_armor.setTopColor(color).setBottomColor(color);
+		return this;
+	}
+
+	public GenericLivingEntity setLabel(String label) {
+		if (!this.label.equals(label)) {
+			this.label = label;
+			_label.setText(label).setDirty(true);
+			updateLayout();
+		}
+		return this;
+	}
+
+	public GenericLivingEntity setFace(String name) {
+		if (!this.face.equals(name)) {
+			this.face = name;
+			_face.setVisible(!name.isEmpty());
+			_face.setName(name);
+			updateLayout();
+		}
+		return this;
+	}
+
+	@Override
+	public Container updateLayout() {
+		super.updateLayout();
+		_armor.setWidth((_bars.getWidth() * armor) / 100).setDirty(true);
+		_health.setWidth((_bars.getWidth() * health) / 100).setDirty(true);
+		return this;
+	}
 }

+ 540 - 540
mcMMO/com/gmail/nossr50/spout/SpoutStuff.java → src/com/gmail/nossr50/spout/SpoutStuff.java

@@ -1,540 +1,540 @@
-package com.gmail.nossr50.spout;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.entity.Player;
-import org.bukkit.event.Event;
-import org.bukkit.event.Event.Priority;
-import org.getspout.spoutapi.SpoutManager;
-import org.getspout.spoutapi.gui.Color;
-import org.getspout.spoutapi.keyboard.Keyboard;
-import org.getspout.spoutapi.player.SpoutPlayer;
-import org.getspout.spoutapi.sound.SoundEffect;
-import org.getspout.spoutapi.sound.SoundManager;
-
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.m;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.config.LoadProperties;
-import com.gmail.nossr50.datatypes.HUDType;
-import com.gmail.nossr50.datatypes.HUDmmo;
-import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.popups.PopupMMO;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.listeners.mcSpoutInputListener;
-import com.gmail.nossr50.listeners.mcSpoutListener;
-import com.gmail.nossr50.listeners.mcSpoutScreenListener;
-
-public class SpoutStuff 
-{
-	static mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO");
-	
-	private final static mcSpoutListener spoutListener = new mcSpoutListener(plugin);
-	private final static mcSpoutInputListener spoutInputListener = new mcSpoutInputListener(plugin);
-	private final static mcSpoutScreenListener spoutScreenListener = new mcSpoutScreenListener(plugin);
-	
-	public static HashMap<Player, HUDmmo> playerHUDs = new HashMap<Player, HUDmmo>();
-	//public static HashMap<Player, ArrayList<HealthBarMMO>> partyHealthBars = new HashMap<Player, ArrayList<HealthBarMMO>>();
-	public static HashMap<SpoutPlayer, PopupMMO> playerScreens = new HashMap<SpoutPlayer, PopupMMO>();
-	
-	public static Keyboard keypress;
-	
-	public static void writeFile(String theFileName, String theFilePath)
-	{
-		try {
-			File currentFile = new File("plugins/mcMMO/Resources/"+theFilePath+theFileName);
-			//System.out.println(theFileName);
-			@SuppressWarnings("static-access")
-			JarFile jar = new JarFile(plugin.mcmmo);
-			JarEntry entry = jar.getJarEntry(theFileName);
-			InputStream is = jar.getInputStream(entry);
-			FileOutputStream os = new FileOutputStream(currentFile);
-			byte[] buf = new byte[(int)entry.getSize()];
-			is.read(buf, 0, (int)entry.getSize());
-			os.write(buf);
-			os.close();
-		} catch (FileNotFoundException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-	
-	public static void extractFiles()
-	{
-		//Setup directories
-		new File("plugins/mcMMO/Resources/").mkdir();
-		new File("plugins/mcMMO/Resources/HUD/").mkdir();
-		new File("plugins/mcMMO/Resources/HUD/Standard/").mkdir();
-		new File("plugins/mcMMO/Resources/HUD/Retro/").mkdir();
-		new File("plugins/mcMMO/Resources/Sound/").mkdir();
-		
-		//Xp Bar images
-		for(int x =0; x < 255; x++)
-		{
-			//String s = File.separator;
-			String theFilePath = "HUD/Standard/";
-			if(x < 10)
-			{
-				String theFileName = "xpbar_inc00"+x+".png";
-				writeFile(theFileName, theFilePath);
-			} else if (x < 100)
-			{
-				String theFileName = "xpbar_inc0"+x+".png";
-				writeFile(theFileName, theFilePath);
-			} else 
-			{
-				String theFileName = "xpbar_inc"+x+".png";
-				writeFile(theFileName, theFilePath);
-			}
-		}
-		
-		//Standard XP Icons
-		
-		String theFilePathA = "HUD/Standard/";
-		String theFilePathB = "HUD/Retro/";
-		
-		for(SkillType y : SkillType.values())
-		{
-			if(y == SkillType.ALL)
-				continue;
-			
-			
-			String theFileNameA = m.getCapitalized(y.toString())+".png";
-			String theFileNameB = m.getCapitalized(y.toString())+"_r.png";
-			
-			writeFile(theFileNameA, theFilePathA);
-			writeFile(theFileNameB, theFilePathB);
-		}
-		
-		//Blank icons
-		
-		writeFile("Icon.png", theFilePathA);
-		writeFile("Icon_r.png", theFilePathB);
-		
-		String theSoundFilePath = "Sound/";
-		//Repair SFX
-		writeFile("repair.wav", theSoundFilePath);
-		writeFile("level.wav", theSoundFilePath);
-	}
-	
-	public static void setupSpoutConfigs()
-	{
-		 String temp = LoadProperties.readString("Spout.Menu.Key", "KEY_M");
-	        
-	        for(Keyboard x : Keyboard.values())
-	        {
-	        	if(x.toString().equalsIgnoreCase(temp))
-	        	{
-	        		keypress = x;
-	        	}
-	        }
-	        
-     	if(keypress == null)
-     	{
-     		System.out.println("Invalid KEY for Spout.Menu.Key, using KEY_M");
-     		keypress = Keyboard.KEY_M;
-     	}
-	}
-	public static ArrayList<File> getFiles()
-	{
-		ArrayList<File> files = new ArrayList<File>();
-		String dir = "plugins/mcMMO/Resources/";
-		int x = 0;
-		
-		//XP BAR
-		while(x < 255)
-		{
-			if(x < 10)
-			{
-				files.add(new File(dir+"HUD/Standard/xpbar_inc00"+x+".png"));
-			} else if (x < 100)
-			{
-				files.add(new File(dir+"HUD/Standard/xpbar_inc0"+x+".png"));
-			} else 
-			{
-				files.add(new File(dir+"HUD/Standard/xpbar_inc"+x+".png"));
-			}
-			x++;
-		}
-		
-		//Standard XP Icons
-		for(SkillType y : SkillType.values())
-		{
-			if(y == SkillType.ALL)
-				continue;
-			files.add(new File(dir+"HUD/Standard/"+m.getCapitalized(y.toString())+".png"));
-			files.add(new File(dir+"HUD/Retro/"+m.getCapitalized(y.toString())+"_r.png"));
-		}
-		
-		//Blank icons
-		files.add(new File(dir+"HUD/Standard/Icon.png"));
-		files.add(new File(dir+"HUD/Retro/Icon_r.png"));
-		//Repair SFX
-		files.add(new File(dir+"/Sound/repair.wav"));
-		//Level SFX
-		files.add(new File(dir+"/Sound/level.wav"));
-		
-		return files;
-	}
-	public static void registerCustomEvent()
-	{
-		Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutListener, Priority.Normal, plugin);
-		Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutInputListener, Priority.Normal, plugin);
-		Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutScreenListener, Priority.Normal, plugin);
-	}
-	
-	public static Color getRetroColor(SkillType type)
-	{
-		switch(type)
-		{
-			case ACROBATICS:
-				return new Color((float) LoadProperties.acrobatics_r, (float) LoadProperties.acrobatics_g, (float) LoadProperties.acrobatics_b, 1);
-			case ARCHERY:
-				return new Color((float) LoadProperties.archery_r, (float)LoadProperties.archery_g, (float)LoadProperties.archery_b, 1f);
-			case AXES:
-				return new Color((float) LoadProperties.axes_r, (float)LoadProperties.axes_g, (float)LoadProperties.axes_b, 1f);
-			case EXCAVATION:
-				return new Color((float)LoadProperties.excavation_r, (float)LoadProperties.excavation_g, (float)LoadProperties.excavation_b, 1f);
-			case HERBALISM:
-				return new Color((float)LoadProperties.herbalism_r, (float)LoadProperties.herbalism_g, (float)LoadProperties.herbalism_b, 1f);
-			case MINING:
-				return new Color((float)LoadProperties.mining_r, (float)LoadProperties.mining_g, (float)LoadProperties.mining_b, 1f);
-			case REPAIR:
-				return new Color((float)LoadProperties.repair_r, (float)LoadProperties.repair_g, (float)LoadProperties.repair_b, 1f);
-			case SWORDS:
-				return new Color((float)LoadProperties.swords_r, (float)LoadProperties.swords_g, (float)LoadProperties.swords_b, 1f);
-			case TAMING:
-				return new Color((float)LoadProperties.taming_r, (float)LoadProperties.taming_g, (float)LoadProperties.taming_b, 1f);
-			case UNARMED:
-				return new Color((float)LoadProperties.unarmed_r, (float)LoadProperties.unarmed_g, (float)LoadProperties.unarmed_b, 1f);
-			case WOODCUTTING:
-				return new Color((float)LoadProperties.woodcutting_r, (float)LoadProperties.woodcutting_g, (float)LoadProperties.woodcutting_b, 1f);
-			default:
-				return new Color(0.3f, 0.3f, 0.75f, 1f);
-		}
-	}
-	public static SpoutPlayer getSpoutPlayer(String playerName)
-	{
-		for(Player x : Bukkit.getServer().getOnlinePlayers())
-		{
-			if(x.getName().equalsIgnoreCase(playerName))
-			{
-				return SpoutManager.getPlayer(x);
-			}
-		}
-		return null;
-	}
-	
-	public static void playSoundForPlayer(SoundEffect effect, Player player, Location location)
-	{
-		//Contrib stuff
-		SoundManager SM = SpoutManager.getSoundManager();
-		SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
-		SM.playSoundEffect(sPlayer, effect, location);
-	}
-	
-	public static void playRepairNoise(Player player)
-	{
-		SoundManager SM = SpoutManager.getSoundManager();
-		SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
-		SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "repair.wav", false);
-	}
-	
-	public static void playLevelUpNoise(Player player)
-	{
-		SoundManager SM = SpoutManager.getSoundManager();
-		SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
-		SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "level.wav", false);
-	}
-	
-	public static void levelUpNotification(SkillType skillType, SpoutPlayer sPlayer)
-	{
-		PlayerProfile PP = Users.getProfile(sPlayer);
-		
-		Material mat = null;
-		switch(skillType)
-		{
-		case TAMING:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.PORK;
-				break;
-			case 2:
-				mat = Material.PORK;
-				break;
-			case 3:
-				mat = Material.GRILLED_PORK;
-				break;
-			case 4:
-				mat = Material.GRILLED_PORK;
-				break;
-			case 5:
-				mat = Material.BONE;
-				break;
-			}
-			break;
-		case MINING:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.COAL_ORE;
-				break;
-			case 2:
-				mat = Material.IRON_ORE;
-				break;
-			case 3:
-				mat = Material.GOLD_ORE;
-				break;
-			case 4:
-				mat = Material.LAPIS_ORE;
-				break;
-			case 5:
-				mat = Material.DIAMOND_ORE;
-				break;
-			}
-			break;
-		case WOODCUTTING:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.WOOD;
-				break;
-			case 2:
-				mat = Material.WOOD;
-				break;
-			case 3:
-				mat = Material.WOOD;
-				break;
-			case 4:
-				mat = Material.LOG;
-				break;
-			case 5:
-				mat = Material.LOG;
-				break;
-			}
-			break;
-		case REPAIR:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.COBBLESTONE;
-				break;
-			case 2:
-				mat = Material.IRON_BLOCK;
-				break;
-			case 3:
-				mat = Material.GOLD_BLOCK;
-				break;
-			case 4:
-				mat = Material.LAPIS_BLOCK;
-				break;
-			case 5:
-				mat = Material.DIAMOND_BLOCK;
-				break;
-			}
-			break;
-		case HERBALISM:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.YELLOW_FLOWER;
-				break;
-			case 2:
-				mat = Material.RED_ROSE;
-				break;
-			case 3:
-				mat = Material.BROWN_MUSHROOM;
-				break;
-			case 4:
-				mat = Material.RED_MUSHROOM;
-				break;
-			case 5:
-				mat = Material.PUMPKIN;
-				break;
-			}
-			break;
-		case ACROBATICS:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.LEATHER_BOOTS;
-				break;
-			case 2:
-				mat = Material.CHAINMAIL_BOOTS;
-				break;
-			case 3:
-				mat = Material.IRON_BOOTS;
-				break;
-			case 4:
-				mat = Material.GOLD_BOOTS;
-				break;
-			case 5:
-				mat = Material.DIAMOND_BOOTS;
-				break;
-			}
-			break;
-		case SWORDS:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.WOOD_SWORD;
-				break;
-			case 2:
-				mat = Material.STONE_SWORD;
-				break;
-			case 3:
-				mat = Material.IRON_SWORD;
-				break;
-			case 4:
-				mat = Material.GOLD_SWORD;
-				break;
-			case 5:
-				mat = Material.DIAMOND_SWORD;
-				break;
-			}
-			break;
-		case ARCHERY:
-			mat = Material.ARROW;
-			break;
-		case UNARMED:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.LEATHER_HELMET;
-				break;
-			case 2:
-				mat = Material.CHAINMAIL_HELMET;
-				break;
-			case 3:
-				mat = Material.IRON_HELMET;
-				break;
-			case 4:
-				mat = Material.GOLD_HELMET;
-				break;
-			case 5:
-				mat = Material.DIAMOND_HELMET;
-				break;
-			}
-			break;
-		case EXCAVATION:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.WOOD_SPADE;
-				break;
-			case 2:
-				mat = Material.STONE_SPADE;
-				break;
-			case 3:
-				mat = Material.IRON_SPADE;
-				break;
-			case 4:
-				mat = Material.GOLD_SPADE;
-				break;
-			case 5:
-				mat = Material.DIAMOND_SPADE;
-				break;
-			}
-			break;
-		case AXES:
-			switch(getNotificationTier(PP.getSkillLevel(skillType)))
-			{
-			case 1:
-				mat = Material.WOOD_AXE;
-				break;
-			case 2:
-				mat = Material.STONE_AXE;
-				break;
-			case 3:
-				mat = Material.IRON_AXE;
-				break;
-			case 4:
-				mat = Material.GOLD_AXE;
-				break;
-			case 5:
-				mat = Material.DIAMOND_AXE;
-				break;
-			}
-			break;
-		default:
-			mat = Material.WATCH;
-			break;
-		}
-			sPlayer.sendNotification(ChatColor.GREEN+"Level Up!", ChatColor.YELLOW+m.getCapitalized(skillType.toString())+ChatColor.DARK_AQUA+" ("+ChatColor.GREEN+PP.getSkillLevel(skillType)+ChatColor.DARK_AQUA+")", mat);
-			playLevelUpNoise(sPlayer);
-	}
-	
-	public static Integer getNotificationTier(Integer level)
-	{
-		if(level < 200)
-			return 1;
-		else if (level >= 200 && level < 400)
-			return 2;
-		else if (level >= 400 && level < 600)
-			return 3;
-		else if (level >= 600 && level < 800)
-			return 4;
-		else
-			return 5;
-	}
-	
-	public static Integer getXpInc(int skillxp, int xptolevel, HUDType hud)
-	{
-		if(hud == HUDType.STANDARD)
-		{
-			double percentage = (double) skillxp/xptolevel;
-			double inc = 0.0039370078740157;
-			return (int) (percentage/inc);
-		} else if (hud == HUDType.RETRO)
-		{
-			double percentage = (double) skillxp/xptolevel;
-			double inc = 0.0079365079365079;
-			return (int) (percentage/inc);
-		} else {
-			return 1;
-		}
-	}
-	
-	public static void updateXpBar(Player player)
-	{
-		playerHUDs.get(player).updateXpBarDisplay(Users.getProfile(player).getHUDType(), player);
-	}
-	
-	public static String getUrlBar(Integer number)
-	{
-		if(number.toString().toCharArray().length == 1)
-		{
-			return "xpbar_inc00"+number+".png";
-		} else if (number.toString().toCharArray().length == 2)
-		{
-			return "xpbar_inc0"+number+".png";
-		} else {
-			return "xpbar_inc"+number+".png";
-		}
-	}
-	
-	public static String getUrlIcon(SkillType skillType)
-	{
-		return m.getCapitalized(skillType.toString())+".png";
-	}
-	public static boolean shouldBeFilled(PlayerProfile PP)
-	{
-		return PP.getXpBarInc() < getXpInc(PP.getSkillXpLevel(PP.getLastGained()), PP.getXpToLevel(PP.getLastGained()), HUDType.STANDARD);
-	}
-}
+package com.gmail.nossr50.spout;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.event.Event;
+import org.bukkit.event.Event.Priority;
+import org.getspout.spoutapi.SpoutManager;
+import org.getspout.spoutapi.gui.Color;
+import org.getspout.spoutapi.keyboard.Keyboard;
+import org.getspout.spoutapi.player.SpoutPlayer;
+import org.getspout.spoutapi.sound.SoundEffect;
+import org.getspout.spoutapi.sound.SoundManager;
+
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.m;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.config.LoadProperties;
+import com.gmail.nossr50.datatypes.HUDType;
+import com.gmail.nossr50.datatypes.HUDmmo;
+import com.gmail.nossr50.datatypes.PlayerProfile;
+import com.gmail.nossr50.datatypes.popups.PopupMMO;
+import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.listeners.mcSpoutInputListener;
+import com.gmail.nossr50.listeners.mcSpoutListener;
+import com.gmail.nossr50.listeners.mcSpoutScreenListener;
+
+public class SpoutStuff 
+{
+	static mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO");
+	
+	private final static mcSpoutListener spoutListener = new mcSpoutListener(plugin);
+	private final static mcSpoutInputListener spoutInputListener = new mcSpoutInputListener(plugin);
+	private final static mcSpoutScreenListener spoutScreenListener = new mcSpoutScreenListener(plugin);
+	
+	public static HashMap<Player, HUDmmo> playerHUDs = new HashMap<Player, HUDmmo>();
+	//public static HashMap<Player, ArrayList<HealthBarMMO>> partyHealthBars = new HashMap<Player, ArrayList<HealthBarMMO>>();
+	public static HashMap<SpoutPlayer, PopupMMO> playerScreens = new HashMap<SpoutPlayer, PopupMMO>();
+	
+	public static Keyboard keypress;
+	
+	public static void writeFile(String theFileName, String theFilePath)
+	{
+		try {
+			File currentFile = new File("plugins/mcMMO/Resources/"+theFilePath+theFileName);
+			//System.out.println(theFileName);
+			@SuppressWarnings("static-access")
+			JarFile jar = new JarFile(plugin.mcmmo);
+			JarEntry entry = jar.getJarEntry("resources/"+theFileName);
+			InputStream is = jar.getInputStream(entry);
+			FileOutputStream os = new FileOutputStream(currentFile);
+			byte[] buf = new byte[(int)entry.getSize()];
+			is.read(buf, 0, (int)entry.getSize());
+			os.write(buf);
+			os.close();
+		} catch (FileNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+	public static void extractFiles()
+	{
+		//Setup directories
+		new File("plugins/mcMMO/Resources/").mkdir();
+		new File("plugins/mcMMO/Resources/HUD/").mkdir();
+		new File("plugins/mcMMO/Resources/HUD/Standard/").mkdir();
+		new File("plugins/mcMMO/Resources/HUD/Retro/").mkdir();
+		new File("plugins/mcMMO/Resources/Sound/").mkdir();
+		
+		//Xp Bar images
+		for(int x =0; x < 255; x++)
+		{
+			//String s = File.separator;
+			String theFilePath = "HUD/Standard/";
+			if(x < 10)
+			{
+				String theFileName = "xpbar_inc00"+x+".png";
+				writeFile(theFileName, theFilePath);
+			} else if (x < 100)
+			{
+				String theFileName = "xpbar_inc0"+x+".png";
+				writeFile(theFileName, theFilePath);
+			} else 
+			{
+				String theFileName = "xpbar_inc"+x+".png";
+				writeFile(theFileName, theFilePath);
+			}
+		}
+		
+		//Standard XP Icons
+		
+		String theFilePathA = "HUD/Standard/";
+		String theFilePathB = "HUD/Retro/";
+		
+		for(SkillType y : SkillType.values())
+		{
+			if(y == SkillType.ALL)
+				continue;
+			
+			
+			String theFileNameA = m.getCapitalized(y.toString())+".png";
+			String theFileNameB = m.getCapitalized(y.toString())+"_r.png";
+			
+			writeFile(theFileNameA, theFilePathA);
+			writeFile(theFileNameB, theFilePathB);
+		}
+		
+		//Blank icons
+		
+		writeFile("Icon.png", theFilePathA);
+		writeFile("Icon_r.png", theFilePathB);
+		
+		String theSoundFilePath = "Sound/";
+		//Repair SFX
+		writeFile("repair.wav", theSoundFilePath);
+		writeFile("level.wav", theSoundFilePath);
+	}
+	
+	public static void setupSpoutConfigs()
+	{
+		 String temp = LoadProperties.readString("Spout.Menu.Key", "KEY_M");
+	        
+	        for(Keyboard x : Keyboard.values())
+	        {
+	        	if(x.toString().equalsIgnoreCase(temp))
+	        	{
+	        		keypress = x;
+	        	}
+	        }
+	        
+     	if(keypress == null)
+     	{
+     		System.out.println("Invalid KEY for Spout.Menu.Key, using KEY_M");
+     		keypress = Keyboard.KEY_M;
+     	}
+	}
+	public static ArrayList<File> getFiles()
+	{
+		ArrayList<File> files = new ArrayList<File>();
+		String dir = "plugins/mcMMO/Resources/";
+		int x = 0;
+		
+		//XP BAR
+		while(x < 255)
+		{
+			if(x < 10)
+			{
+				files.add(new File(dir+"HUD/Standard/xpbar_inc00"+x+".png"));
+			} else if (x < 100)
+			{
+				files.add(new File(dir+"HUD/Standard/xpbar_inc0"+x+".png"));
+			} else 
+			{
+				files.add(new File(dir+"HUD/Standard/xpbar_inc"+x+".png"));
+			}
+			x++;
+		}
+		
+		//Standard XP Icons
+		for(SkillType y : SkillType.values())
+		{
+			if(y == SkillType.ALL)
+				continue;
+			files.add(new File(dir+"HUD/Standard/"+m.getCapitalized(y.toString())+".png"));
+			files.add(new File(dir+"HUD/Retro/"+m.getCapitalized(y.toString())+"_r.png"));
+		}
+		
+		//Blank icons
+		files.add(new File(dir+"HUD/Standard/Icon.png"));
+		files.add(new File(dir+"HUD/Retro/Icon_r.png"));
+		//Repair SFX
+		files.add(new File(dir+"/Sound/repair.wav"));
+		//Level SFX
+		files.add(new File(dir+"/Sound/level.wav"));
+		
+		return files;
+	}
+	public static void registerCustomEvent()
+	{
+		Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutListener, Priority.Normal, plugin);
+		Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutInputListener, Priority.Normal, plugin);
+		Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutScreenListener, Priority.Normal, plugin);
+	}
+	
+	public static Color getRetroColor(SkillType type)
+	{
+		switch(type)
+		{
+			case ACROBATICS:
+				return new Color((float) LoadProperties.acrobatics_r, (float) LoadProperties.acrobatics_g, (float) LoadProperties.acrobatics_b, 1);
+			case ARCHERY:
+				return new Color((float) LoadProperties.archery_r, (float)LoadProperties.archery_g, (float)LoadProperties.archery_b, 1f);
+			case AXES:
+				return new Color((float) LoadProperties.axes_r, (float)LoadProperties.axes_g, (float)LoadProperties.axes_b, 1f);
+			case EXCAVATION:
+				return new Color((float)LoadProperties.excavation_r, (float)LoadProperties.excavation_g, (float)LoadProperties.excavation_b, 1f);
+			case HERBALISM:
+				return new Color((float)LoadProperties.herbalism_r, (float)LoadProperties.herbalism_g, (float)LoadProperties.herbalism_b, 1f);
+			case MINING:
+				return new Color((float)LoadProperties.mining_r, (float)LoadProperties.mining_g, (float)LoadProperties.mining_b, 1f);
+			case REPAIR:
+				return new Color((float)LoadProperties.repair_r, (float)LoadProperties.repair_g, (float)LoadProperties.repair_b, 1f);
+			case SWORDS:
+				return new Color((float)LoadProperties.swords_r, (float)LoadProperties.swords_g, (float)LoadProperties.swords_b, 1f);
+			case TAMING:
+				return new Color((float)LoadProperties.taming_r, (float)LoadProperties.taming_g, (float)LoadProperties.taming_b, 1f);
+			case UNARMED:
+				return new Color((float)LoadProperties.unarmed_r, (float)LoadProperties.unarmed_g, (float)LoadProperties.unarmed_b, 1f);
+			case WOODCUTTING:
+				return new Color((float)LoadProperties.woodcutting_r, (float)LoadProperties.woodcutting_g, (float)LoadProperties.woodcutting_b, 1f);
+			default:
+				return new Color(0.3f, 0.3f, 0.75f, 1f);
+		}
+	}
+	public static SpoutPlayer getSpoutPlayer(String playerName)
+	{
+		for(Player x : Bukkit.getServer().getOnlinePlayers())
+		{
+			if(x.getName().equalsIgnoreCase(playerName))
+			{
+				return SpoutManager.getPlayer(x);
+			}
+		}
+		return null;
+	}
+	
+	public static void playSoundForPlayer(SoundEffect effect, Player player, Location location)
+	{
+		//Contrib stuff
+		SoundManager SM = SpoutManager.getSoundManager();
+		SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
+		SM.playSoundEffect(sPlayer, effect, location);
+	}
+	
+	public static void playRepairNoise(Player player)
+	{
+		SoundManager SM = SpoutManager.getSoundManager();
+		SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
+		SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "repair.wav", false);
+	}
+	
+	public static void playLevelUpNoise(Player player)
+	{
+		SoundManager SM = SpoutManager.getSoundManager();
+		SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
+		SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "level.wav", false);
+	}
+	
+	public static void levelUpNotification(SkillType skillType, SpoutPlayer sPlayer)
+	{
+		PlayerProfile PP = Users.getProfile(sPlayer);
+		
+		Material mat = null;
+		switch(skillType)
+		{
+		case TAMING:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.PORK;
+				break;
+			case 2:
+				mat = Material.PORK;
+				break;
+			case 3:
+				mat = Material.GRILLED_PORK;
+				break;
+			case 4:
+				mat = Material.GRILLED_PORK;
+				break;
+			case 5:
+				mat = Material.BONE;
+				break;
+			}
+			break;
+		case MINING:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.COAL_ORE;
+				break;
+			case 2:
+				mat = Material.IRON_ORE;
+				break;
+			case 3:
+				mat = Material.GOLD_ORE;
+				break;
+			case 4:
+				mat = Material.LAPIS_ORE;
+				break;
+			case 5:
+				mat = Material.DIAMOND_ORE;
+				break;
+			}
+			break;
+		case WOODCUTTING:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.WOOD;
+				break;
+			case 2:
+				mat = Material.WOOD;
+				break;
+			case 3:
+				mat = Material.WOOD;
+				break;
+			case 4:
+				mat = Material.LOG;
+				break;
+			case 5:
+				mat = Material.LOG;
+				break;
+			}
+			break;
+		case REPAIR:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.COBBLESTONE;
+				break;
+			case 2:
+				mat = Material.IRON_BLOCK;
+				break;
+			case 3:
+				mat = Material.GOLD_BLOCK;
+				break;
+			case 4:
+				mat = Material.LAPIS_BLOCK;
+				break;
+			case 5:
+				mat = Material.DIAMOND_BLOCK;
+				break;
+			}
+			break;
+		case HERBALISM:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.YELLOW_FLOWER;
+				break;
+			case 2:
+				mat = Material.RED_ROSE;
+				break;
+			case 3:
+				mat = Material.BROWN_MUSHROOM;
+				break;
+			case 4:
+				mat = Material.RED_MUSHROOM;
+				break;
+			case 5:
+				mat = Material.PUMPKIN;
+				break;
+			}
+			break;
+		case ACROBATICS:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.LEATHER_BOOTS;
+				break;
+			case 2:
+				mat = Material.CHAINMAIL_BOOTS;
+				break;
+			case 3:
+				mat = Material.IRON_BOOTS;
+				break;
+			case 4:
+				mat = Material.GOLD_BOOTS;
+				break;
+			case 5:
+				mat = Material.DIAMOND_BOOTS;
+				break;
+			}
+			break;
+		case SWORDS:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.WOOD_SWORD;
+				break;
+			case 2:
+				mat = Material.STONE_SWORD;
+				break;
+			case 3:
+				mat = Material.IRON_SWORD;
+				break;
+			case 4:
+				mat = Material.GOLD_SWORD;
+				break;
+			case 5:
+				mat = Material.DIAMOND_SWORD;
+				break;
+			}
+			break;
+		case ARCHERY:
+			mat = Material.ARROW;
+			break;
+		case UNARMED:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.LEATHER_HELMET;
+				break;
+			case 2:
+				mat = Material.CHAINMAIL_HELMET;
+				break;
+			case 3:
+				mat = Material.IRON_HELMET;
+				break;
+			case 4:
+				mat = Material.GOLD_HELMET;
+				break;
+			case 5:
+				mat = Material.DIAMOND_HELMET;
+				break;
+			}
+			break;
+		case EXCAVATION:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.WOOD_SPADE;
+				break;
+			case 2:
+				mat = Material.STONE_SPADE;
+				break;
+			case 3:
+				mat = Material.IRON_SPADE;
+				break;
+			case 4:
+				mat = Material.GOLD_SPADE;
+				break;
+			case 5:
+				mat = Material.DIAMOND_SPADE;
+				break;
+			}
+			break;
+		case AXES:
+			switch(getNotificationTier(PP.getSkillLevel(skillType)))
+			{
+			case 1:
+				mat = Material.WOOD_AXE;
+				break;
+			case 2:
+				mat = Material.STONE_AXE;
+				break;
+			case 3:
+				mat = Material.IRON_AXE;
+				break;
+			case 4:
+				mat = Material.GOLD_AXE;
+				break;
+			case 5:
+				mat = Material.DIAMOND_AXE;
+				break;
+			}
+			break;
+		default:
+			mat = Material.WATCH;
+			break;
+		}
+			sPlayer.sendNotification(ChatColor.GREEN+"Level Up!", ChatColor.YELLOW+m.getCapitalized(skillType.toString())+ChatColor.DARK_AQUA+" ("+ChatColor.GREEN+PP.getSkillLevel(skillType)+ChatColor.DARK_AQUA+")", mat);
+			playLevelUpNoise(sPlayer);
+	}
+	
+	public static Integer getNotificationTier(Integer level)
+	{
+		if(level < 200)
+			return 1;
+		else if (level >= 200 && level < 400)
+			return 2;
+		else if (level >= 400 && level < 600)
+			return 3;
+		else if (level >= 600 && level < 800)
+			return 4;
+		else
+			return 5;
+	}
+	
+	public static Integer getXpInc(int skillxp, int xptolevel, HUDType hud)
+	{
+		if(hud == HUDType.STANDARD)
+		{
+			double percentage = (double) skillxp/xptolevel;
+			double inc = 0.0039370078740157;
+			return (int) (percentage/inc);
+		} else if (hud == HUDType.RETRO)
+		{
+			double percentage = (double) skillxp/xptolevel;
+			double inc = 0.0079365079365079;
+			return (int) (percentage/inc);
+		} else {
+			return 1;
+		}
+	}
+	
+	public static void updateXpBar(Player player)
+	{
+		playerHUDs.get(player).updateXpBarDisplay(Users.getProfile(player).getHUDType(), player);
+	}
+	
+	public static String getUrlBar(Integer number)
+	{
+		if(number.toString().toCharArray().length == 1)
+		{
+			return "xpbar_inc00"+number+".png";
+		} else if (number.toString().toCharArray().length == 2)
+		{
+			return "xpbar_inc0"+number+".png";
+		} else {
+			return "xpbar_inc"+number+".png";
+		}
+	}
+	
+	public static String getUrlIcon(SkillType skillType)
+	{
+		return m.getCapitalized(skillType.toString())+".png";
+	}
+	public static boolean shouldBeFilled(PlayerProfile PP)
+	{
+		return PP.getXpBarInc() < getXpInc(PP.getSkillXpLevel(PP.getLastGained()), PP.getXpToLevel(PP.getLastGained()), HUDType.STANDARD);
+	}
+}

+ 250 - 250
mcMMO/com/gmail/nossr50/spout/mmoHelper.java → src/com/gmail/nossr50/spout/mmoHelper.java

@@ -1,250 +1,250 @@
-/*
- * This file is from mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
- * 
- * mmoMinecraft 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.gmail.nossr50.spout;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.World;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.LivingEntity;
-import org.bukkit.entity.Player;
-import org.bukkit.entity.Tameable;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.plugin.Plugin;
-import org.bukkit.entity.*;
-import org.getspout.spoutapi.gui.Container;
-import org.getspout.spoutapi.gui.GenericContainer;
-import org.getspout.spoutapi.gui.Widget;
-import org.getspout.spoutapi.gui.WidgetAnchor;
-import org.getspout.spoutapi.player.SpoutPlayer;
-
-import com.gmail.nossr50.Users;
-import com.gmail.nossr50.party.Party;
-
-public class mmoHelper 
-{
-	
-	/**
-	 * A map of player containers, each container is their party bar
-	 */
-	public static HashMap<Player, GenericContainer> containers = new HashMap<Player, GenericContainer>();
-	
-	/**
-	 * Get the percentage health of a Player.
-	 * @param player The Player we're interested in
-	 * @return The percentage of max health
-	 */
-	public static int getHealth(Entity player) {
-		if (player != null && player instanceof LivingEntity) {
-			try {
-				return Math.min(((LivingEntity) player).getHealth() * 5, 100);
-			} catch (Exception e) {
-			}
-		}
-		return 0;
-	}
-	
-	/**
-	 * Get the colour of a LivingEntity target from a player's point of view.
-	 * @param player The player viewing the target
-	 * @param target The target to name
-	 * @return The name to use
-	 */
-	public static String getColor(Player player, LivingEntity target) {
-		if (target instanceof Player) {
-			return ChatColor.YELLOW.toString();
-		} else {
-			if (target instanceof Monster) {
-				if (player != null && player.equals(((Creature) target).getTarget())) {
-					return ChatColor.RED.toString();
-				} else {
-					return ChatColor.YELLOW.toString();
-				}
-			} else if (target instanceof WaterMob) {
-				return ChatColor.GREEN.toString();
-			} else if (target instanceof Flying) {
-				return ChatColor.YELLOW.toString();
-			} else if (target instanceof Animals) {
-				if (player != null && player.equals(((Creature) target).getTarget())) {
-					return ChatColor.RED.toString();
-				} else if (target instanceof Tameable) {
-					Tameable pet = (Tameable) target;
-					if (pet.isTamed()) {
-						return ChatColor.GREEN.toString();
-					} else {
-						return ChatColor.YELLOW.toString();
-					}
-				} else {
-					return ChatColor.GRAY.toString();
-				}
-			} else {
-				return ChatColor.GRAY.toString();
-			}
-		}
-	}
-
-	/**
-	 * Get the percentage armour of a Player.
-	 * @param player The Player we're interested in
-	 * @return The percentage of max armour
-	 */
-	public static int getArmor(Entity player) {
-		if (player != null && player instanceof Player) {
-			int armor = 0, max, multi[] = {15, 30, 40, 15};
-			ItemStack inv[] = ((Player) player).getInventory().getArmorContents();
-			for (int i = 0; i < inv.length; i++) {
-				max = inv[i].getType().getMaxDurability();
-				if (max >= 0) {
-					armor += multi[i] * (max - inv[i].getDurability()) / max;
-				}
-			}
-			return armor;
-		}
-		return 0;
-	}
-	
-	public static String getSimpleName(LivingEntity target, boolean showOwner) {
-		String name = "";
-		if (target instanceof Player) {
-			name += ((Player)target).getName();
-		} else {
-			if (target instanceof Tameable) {
-				if (((Tameable)target).isTamed()) {
-					if (showOwner && ((Tameable)target).getOwner() instanceof Player) {
-						name += ((Player)((Tameable)target).getOwner()).getName() + "'s ";
-					} else {
-						name += "Pet ";
-					}
-				}
-			}
-			if (target instanceof Chicken) {
-				name += "Chicken";
-			} else if (target instanceof Cow) {
-				name += "Cow";
-			} else if (target instanceof Creeper) {
-				name += "Creeper";
-			} else if (target instanceof Giant) {
-				name += "Giant";
-			} else if (target instanceof Pig) {
-				name += "Pig";
-			} else if (target instanceof PigZombie) {
-				name += "PigZombie";
-			} else if (target instanceof Sheep) {
-				name += "Sheep";
-			} else if (target instanceof Skeleton) {
-				name += "Skeleton";
-			} else if (target instanceof Spider) {
-				name += "Spider";
-			} else if (target instanceof Squid) {
-				name += "Squid";
-			} else if (target instanceof Wolf) {
-				name += "Wolf";
-			} else if (target instanceof Zombie) {
-				name += "Zombie";
-			} else if (target instanceof Monster) {
-				name += "Monster";
-			} else if (target instanceof Creature) {
-				name += "Creature";
-			} else {
-				name += "Unknown";
-			}
-		}
-		return name;
-	}
-	
-	public static LivingEntity[] getPets(HumanEntity player) {
-		ArrayList<LivingEntity> pets = new ArrayList<LivingEntity>();
-		if (player != null && (!(player instanceof Player) || ((Player)player).isOnline())) {
-			String name = player.getName();
-			for (World world : Bukkit.getServer().getWorlds()) {
-				for (LivingEntity entity : world.getLivingEntities()) {
-					if (entity instanceof Tameable && ((Tameable) entity).isTamed() && ((Tameable) entity).getOwner() instanceof Player) {
-						if (name.equals(((Player) ((Tameable) entity).getOwner()).getName())) {
-							pets.add(entity);
-						}
-					}
-				}
-			}
-		}
-		LivingEntity[] list = new LivingEntity[pets.size()];
-		pets.toArray(list);
-		return list;
-	}
-	
-	public static void update(Player player) 
-	{
-		//boolean show_pets = true;
-		Container container = containers.get(player);
-		
-		if (container != null) 
-		{
-			int index = 0;
-			Widget[] bars = container.getChildren();
-			for (String name : Party.getInstance().getPartyMembersByName(player).meFirst(player.getName())) 
-			{
-				GenericLivingEntity bar;
-				if (index >= bars.length) 
-				{
-					container.addChild(bar = new GenericLivingEntity());
-				} else {
-					bar = (GenericLivingEntity)bars[index];
-				}
-				bar.setEntity(name, Party.getInstance().isPartyLeader(Bukkit.getServer().getPlayer(name), Users.getProfile(Bukkit.getServer().getPlayer(name)).getParty()) ? ChatColor.GREEN + "@" : "");
-				//bar.setTargets(show_pets ? getPets(Bukkit.getServer().getPlayer(name)) : null);
-				index++;
-			}
-			while (index < bars.length) {
-				container.removeChild(bars[index++]);
-			}
-			container.updateLayout();
-		}
-	}
-	
-	public static void initialize(SpoutPlayer sPlayer, Plugin plugin)
-	{
-		GenericContainer container = new GenericContainer();
-		
-		container.setAlign(WidgetAnchor.TOP_LEFT)
-			.setAnchor(WidgetAnchor.TOP_LEFT)
-			.setX(3)
-			.setY(3)
-			.setWidth(427)
-			.setHeight(240)
-			.setFixed(true);
-		
-		mmoHelper.containers.put(sPlayer, container);
-		
-		sPlayer.getMainScreen().attachWidget(plugin, container);
-	}
-	/**
-	 * Update all parties.
-	 */
-	public static void updateAll() {
-		for(Player x : Bukkit.getServer().getOnlinePlayers())
-		{
-			if(Users.getProfile(x).inParty())
-			{
-				update(x);
-			}
-		}
-	}
-	
-}
+/*
+ * This file is from mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
+ * 
+ * mmoMinecraft 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.gmail.nossr50.spout;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.World;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.Tameable;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.entity.*;
+import org.getspout.spoutapi.gui.Container;
+import org.getspout.spoutapi.gui.GenericContainer;
+import org.getspout.spoutapi.gui.Widget;
+import org.getspout.spoutapi.gui.WidgetAnchor;
+import org.getspout.spoutapi.player.SpoutPlayer;
+
+import com.gmail.nossr50.Users;
+import com.gmail.nossr50.party.Party;
+
+public class mmoHelper 
+{
+	
+	/**
+	 * A map of player containers, each container is their party bar
+	 */
+	public static HashMap<Player, GenericContainer> containers = new HashMap<Player, GenericContainer>();
+	
+	/**
+	 * Get the percentage health of a Player.
+	 * @param player The Player we're interested in
+	 * @return The percentage of max health
+	 */
+	public static int getHealth(Entity player) {
+		if (player != null && player instanceof LivingEntity) {
+			try {
+				return Math.min(((LivingEntity) player).getHealth() * 5, 100);
+			} catch (Exception e) {
+			}
+		}
+		return 0;
+	}
+	
+	/**
+	 * Get the colour of a LivingEntity target from a player's point of view.
+	 * @param player The player viewing the target
+	 * @param target The target to name
+	 * @return The name to use
+	 */
+	public static String getColor(Player player, LivingEntity target) {
+		if (target instanceof Player) {
+			return ChatColor.YELLOW.toString();
+		} else {
+			if (target instanceof Monster) {
+				if (player != null && player.equals(((Creature) target).getTarget())) {
+					return ChatColor.RED.toString();
+				} else {
+					return ChatColor.YELLOW.toString();
+				}
+			} else if (target instanceof WaterMob) {
+				return ChatColor.GREEN.toString();
+			} else if (target instanceof Flying) {
+				return ChatColor.YELLOW.toString();
+			} else if (target instanceof Animals) {
+				if (player != null && player.equals(((Creature) target).getTarget())) {
+					return ChatColor.RED.toString();
+				} else if (target instanceof Tameable) {
+					Tameable pet = (Tameable) target;
+					if (pet.isTamed()) {
+						return ChatColor.GREEN.toString();
+					} else {
+						return ChatColor.YELLOW.toString();
+					}
+				} else {
+					return ChatColor.GRAY.toString();
+				}
+			} else {
+				return ChatColor.GRAY.toString();
+			}
+		}
+	}
+
+	/**
+	 * Get the percentage armour of a Player.
+	 * @param player The Player we're interested in
+	 * @return The percentage of max armour
+	 */
+	public static int getArmor(Entity player) {
+		if (player != null && player instanceof Player) {
+			int armor = 0, max, multi[] = {15, 30, 40, 15};
+			ItemStack inv[] = ((Player) player).getInventory().getArmorContents();
+			for (int i = 0; i < inv.length; i++) {
+				max = inv[i].getType().getMaxDurability();
+				if (max >= 0) {
+					armor += multi[i] * (max - inv[i].getDurability()) / max;
+				}
+			}
+			return armor;
+		}
+		return 0;
+	}
+	
+	public static String getSimpleName(LivingEntity target, boolean showOwner) {
+		String name = "";
+		if (target instanceof Player) {
+			name += ((Player)target).getName();
+		} else {
+			if (target instanceof Tameable) {
+				if (((Tameable)target).isTamed()) {
+					if (showOwner && ((Tameable)target).getOwner() instanceof Player) {
+						name += ((Player)((Tameable)target).getOwner()).getName() + "'s ";
+					} else {
+						name += "Pet ";
+					}
+				}
+			}
+			if (target instanceof Chicken) {
+				name += "Chicken";
+			} else if (target instanceof Cow) {
+				name += "Cow";
+			} else if (target instanceof Creeper) {
+				name += "Creeper";
+			} else if (target instanceof Giant) {
+				name += "Giant";
+			} else if (target instanceof Pig) {
+				name += "Pig";
+			} else if (target instanceof PigZombie) {
+				name += "PigZombie";
+			} else if (target instanceof Sheep) {
+				name += "Sheep";
+			} else if (target instanceof Skeleton) {
+				name += "Skeleton";
+			} else if (target instanceof Spider) {
+				name += "Spider";
+			} else if (target instanceof Squid) {
+				name += "Squid";
+			} else if (target instanceof Wolf) {
+				name += "Wolf";
+			} else if (target instanceof Zombie) {
+				name += "Zombie";
+			} else if (target instanceof Monster) {
+				name += "Monster";
+			} else if (target instanceof Creature) {
+				name += "Creature";
+			} else {
+				name += "Unknown";
+			}
+		}
+		return name;
+	}
+	
+	public static LivingEntity[] getPets(HumanEntity player) {
+		ArrayList<LivingEntity> pets = new ArrayList<LivingEntity>();
+		if (player != null && (!(player instanceof Player) || ((Player)player).isOnline())) {
+			String name = player.getName();
+			for (World world : Bukkit.getServer().getWorlds()) {
+				for (LivingEntity entity : world.getLivingEntities()) {
+					if (entity instanceof Tameable && ((Tameable) entity).isTamed() && ((Tameable) entity).getOwner() instanceof Player) {
+						if (name.equals(((Player) ((Tameable) entity).getOwner()).getName())) {
+							pets.add(entity);
+						}
+					}
+				}
+			}
+		}
+		LivingEntity[] list = new LivingEntity[pets.size()];
+		pets.toArray(list);
+		return list;
+	}
+	
+	public static void update(Player player) 
+	{
+		//boolean show_pets = true;
+		Container container = containers.get(player);
+		
+		if (container != null) 
+		{
+			int index = 0;
+			Widget[] bars = container.getChildren();
+			for (String name : Party.getInstance().getPartyMembersByName(player).meFirst(player.getName())) 
+			{
+				GenericLivingEntity bar;
+				if (index >= bars.length) 
+				{
+					container.addChild(bar = new GenericLivingEntity());
+				} else {
+					bar = (GenericLivingEntity)bars[index];
+				}
+				bar.setEntity(name, Party.getInstance().isPartyLeader(Bukkit.getServer().getPlayer(name), Users.getProfile(Bukkit.getServer().getPlayer(name)).getParty()) ? ChatColor.GREEN + "@" : "");
+				//bar.setTargets(show_pets ? getPets(Bukkit.getServer().getPlayer(name)) : null);
+				index++;
+			}
+			while (index < bars.length) {
+				container.removeChild(bars[index++]);
+			}
+			container.updateLayout();
+		}
+	}
+	
+	public static void initialize(SpoutPlayer sPlayer, Plugin plugin)
+	{
+		GenericContainer container = new GenericContainer();
+		
+		container.setAlign(WidgetAnchor.TOP_LEFT)
+			.setAnchor(WidgetAnchor.TOP_LEFT)
+			.setX(3)
+			.setY(3)
+			.setWidth(427)
+			.setHeight(240)
+			.setFixed(true);
+		
+		mmoHelper.containers.put(sPlayer, container);
+		
+		sPlayer.getMainScreen().attachWidget(plugin, container);
+	}
+	/**
+	 * Update all parties.
+	 */
+	public static void updateAll() {
+		for(Player x : Bukkit.getServer().getOnlinePlayers())
+		{
+			if(Users.getProfile(x).inParty())
+			{
+				update(x);
+			}
+		}
+	}
+	
+}

+ 1 - 1
mcMMO/plugin.yml → src/plugin.yml

@@ -1,6 +1,6 @@
 name: mcMMO
 main: com.gmail.nossr50.mcMMO
-version: 1.1.14
+version: 1.1.14-Disk-GIT
 softdepend: [Spout]
 commands:
     mchud:

+ 0 - 0
mcMMO/Acrobatics.png → src/resources/Acrobatics.png


+ 0 - 0
mcMMO/Acrobatics_r.png → src/resources/Acrobatics_r.png


+ 0 - 0
mcMMO/Archery.png → src/resources/Archery.png


+ 0 - 0
mcMMO/Archery_r.png → src/resources/Archery_r.png


+ 0 - 0
mcMMO/Axe_r.png → src/resources/Axe_r.png


+ 0 - 0
mcMMO/Axes.png → src/resources/Axes.png


+ 0 - 0
mcMMO/Axes_r.png → src/resources/Axes_r.png


+ 0 - 0
mcMMO/Excavation.png → src/resources/Excavation.png


+ 0 - 0
mcMMO/Excavation_r.png → src/resources/Excavation_r.png


+ 0 - 0
mcMMO/Herbalism.png → src/resources/Herbalism.png


+ 0 - 0
mcMMO/Herbalism_r.png → src/resources/Herbalism_r.png


+ 0 - 0
mcMMO/Icon.png → src/resources/Icon.png


+ 0 - 0
mcMMO/Icon_old.png → src/resources/Icon_old.png


+ 0 - 0
mcMMO/Icon_r.png → src/resources/Icon_r.png


+ 0 - 0
mcMMO/Mining.png → src/resources/Mining.png


+ 0 - 0
mcMMO/Mining_r.png → src/resources/Mining_r.png


+ 0 - 0
mcMMO/Repair.png → src/resources/Repair.png


+ 0 - 0
mcMMO/Repair_r.png → src/resources/Repair_r.png


+ 0 - 0
mcMMO/Swords.png → src/resources/Swords.png


+ 0 - 0
mcMMO/Swords_r.png → src/resources/Swords_r.png


+ 0 - 0
mcMMO/Taming.png → src/resources/Taming.png


+ 0 - 0
mcMMO/Taming_r.png → src/resources/Taming_r.png


+ 0 - 0
mcMMO/Unarmed.png → src/resources/Unarmed.png


+ 0 - 0
mcMMO/Unarmed_r.png → src/resources/Unarmed_r.png


+ 0 - 0
mcMMO/Woodcutting.png → src/resources/Woodcutting.png


+ 0 - 0
mcMMO/Woodcutting_r.png → src/resources/Woodcutting_r.png


+ 0 - 0
mcMMO/health_inc00.png → src/resources/health_inc00.png


+ 0 - 0
mcMMO/health_inc01.png → src/resources/health_inc01.png


+ 0 - 0
mcMMO/health_inc02.png → src/resources/health_inc02.png


+ 0 - 0
mcMMO/health_inc03.png → src/resources/health_inc03.png


+ 0 - 0
mcMMO/health_inc04.png → src/resources/health_inc04.png


+ 0 - 0
mcMMO/health_inc05.png → src/resources/health_inc05.png


+ 0 - 0
mcMMO/health_inc06.png → src/resources/health_inc06.png


+ 0 - 0
mcMMO/health_inc07.png → src/resources/health_inc07.png


+ 0 - 0
mcMMO/health_inc08.png → src/resources/health_inc08.png


+ 0 - 0
mcMMO/health_inc09.png → src/resources/health_inc09.png


+ 0 - 0
mcMMO/health_inc10.png → src/resources/health_inc10.png


+ 0 - 0
mcMMO/health_inc11.png → src/resources/health_inc11.png


+ 0 - 0
mcMMO/health_inc12.png → src/resources/health_inc12.png


+ 0 - 0
mcMMO/health_inc13.png → src/resources/health_inc13.png


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно