Commands.java 77 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600
  1. package com.gmail.nossr50.command;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.logging.Level;
  5. import java.util.logging.Logger;
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.Location;
  9. import org.bukkit.Material;
  10. import org.bukkit.command.Command;
  11. import org.bukkit.command.CommandSender;
  12. import org.bukkit.entity.Player;
  13. import org.getspout.spoutapi.player.SpoutPlayer;
  14. import com.gmail.nossr50.Leaderboard;
  15. import com.gmail.nossr50.Users;
  16. import com.gmail.nossr50.m;
  17. import com.gmail.nossr50.mcMMO;
  18. import com.gmail.nossr50.mcPermissions;
  19. import com.gmail.nossr50.config.LoadProperties;
  20. import com.gmail.nossr50.datatypes.PlayerProfile;
  21. import com.gmail.nossr50.datatypes.SkillType;
  22. import com.gmail.nossr50.locale.mcLocale;
  23. import com.gmail.nossr50.party.Party;
  24. import com.gmail.nossr50.skills.Skills;
  25. import com.gmail.nossr50.spout.SpoutStuff;
  26. public class Commands
  27. {
  28. //Setup some vars
  29. public static final Logger log = Logger.getLogger("Minecraft");
  30. public static boolean xpevent = false;
  31. static int oldrate = LoadProperties.xpGainMultiplier;
  32. public static boolean isPlayer(String playerName){
  33. for(Player herp : Bukkit.getServer().getOnlinePlayers()){
  34. if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){
  35. return true;
  36. }
  37. }
  38. return false;
  39. }
  40. public static Player getPlayer(String playerName){
  41. for(Player herp : Bukkit.getServer().getOnlinePlayers()){
  42. if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){
  43. return herp;
  44. }
  45. }
  46. return null;
  47. }
  48. public static boolean processCommands(CommandSender sender, Command command, String label, String[] args)
  49. {
  50. Player player = null;
  51. PlayerProfile PP = null;
  52. if(sender instanceof Player)
  53. {
  54. player = (Player) sender;
  55. PP = Users.getProfile(player);
  56. }
  57. String[] split = new String[args.length + 1];
  58. split[0] = label;
  59. for(int a = 0; a < args.length; a++){
  60. split[a + 1] = args[a];
  61. }
  62. //Check if the command is an MMO related help command
  63. if(label.equalsIgnoreCase("taming") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillTaming").toLowerCase())){
  64. float skillvalue = (float)PP.getSkillLevel(SkillType.TAMING);
  65. String percentage = String.valueOf((skillvalue / 1000) * 100);
  66. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillTaming")}));
  67. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainTaming")}));
  68. if(mcPermissions.getInstance().taming(player))
  69. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING)}));
  70. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  71. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming1_0"), mcLocale.getString("m.EffectsTaming1_1")}));
  72. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming2_0"), mcLocale.getString("m.EffectsTaming2_1")}));
  73. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming3_0"), mcLocale.getString("m.EffectsTaming3_1")}));
  74. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming4_0"), mcLocale.getString("m.EffectsTaming4_1")}));
  75. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming5_0"), mcLocale.getString("m.EffectsTaming5_1")}));
  76. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsTaming6_0"), mcLocale.getString("m.EffectsTaming6_1")}));
  77. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  78. if(PP.getSkillLevel(SkillType.TAMING) < 100)
  79. player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming1")}));
  80. else
  81. player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming1_0"), mcLocale.getString("m.AbilBonusTaming1_1")}));
  82. if(PP.getSkillLevel(SkillType.TAMING) < 250)
  83. player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming2")}));
  84. else
  85. player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming2_0"), mcLocale.getString("m.AbilBonusTaming2_1")}));
  86. if(PP.getSkillLevel(SkillType.TAMING) < 500)
  87. player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming3")}));
  88. else
  89. player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming3_0"), mcLocale.getString("m.AbilBonusTaming3_1")}));
  90. if(PP.getSkillLevel(SkillType.TAMING) < 750)
  91. player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockTaming4")}));
  92. else
  93. player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusTaming4_0"), mcLocale.getString("m.AbilBonusTaming4_1")}));
  94. player.sendMessage(mcLocale.getString("m.TamingGoreChance", new Object[] {percentage}));
  95. }
  96. else if(label.equalsIgnoreCase("woodcutting") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillWoodCutting").toLowerCase())){
  97. float skillvalue = (float)PP.getSkillLevel(SkillType.WOODCUTTING);
  98. int ticks = 2;
  99. int x = PP.getSkillLevel(SkillType.WOODCUTTING);
  100. while(x >= 50){
  101. x-=50;
  102. ticks++;
  103. }
  104. String percentage = String.valueOf((skillvalue / 1000) * 100);
  105. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillWoodCutting")}));
  106. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainWoodCutting")}));
  107. if(mcPermissions.getInstance().woodcutting(player))
  108. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING)}));
  109. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  110. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsWoodCutting1_0"), mcLocale.getString("m.EffectsWoodCutting1_1")}));
  111. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsWoodCutting2_0"), mcLocale.getString("m.EffectsWoodCutting2_1")}));
  112. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsWoodCutting3_0"), mcLocale.getString("m.EffectsWoodCutting3_1")}));
  113. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  114. if(PP.getSkillLevel(SkillType.WOODCUTTING) < 100)
  115. player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockWoodCutting1")}));
  116. else
  117. player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusWoodCutting1_0"), mcLocale.getString("m.AbilBonusWoodCutting1_1")}));
  118. player.sendMessage(mcLocale.getString("m.WoodCuttingDoubleDropChance", new Object[] {percentage}));
  119. player.sendMessage(mcLocale.getString("m.WoodCuttingTreeFellerLength", new Object[] {ticks}));
  120. }
  121. else if(label.equalsIgnoreCase("archery") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillArchery").toLowerCase())){
  122. Integer rank = 0;
  123. if(PP.getSkillLevel(SkillType.ARCHERY) >= 50)
  124. rank++;
  125. if(PP.getSkillLevel(SkillType.ARCHERY) >= 250)
  126. rank++;
  127. if(PP.getSkillLevel(SkillType.ARCHERY) >= 575)
  128. rank++;
  129. if(PP.getSkillLevel(SkillType.ARCHERY) >= 725)
  130. rank++;
  131. if(PP.getSkillLevel(SkillType.ARCHERY) >= 1000)
  132. rank++;
  133. float skillvalue = (float)PP.getSkillLevel(SkillType.ARCHERY);
  134. String percentage = String.valueOf((skillvalue / 1000) * 100);
  135. int ignition = 20;
  136. if(PP.getSkillLevel(SkillType.ARCHERY) >= 200)
  137. ignition+=20;
  138. if(PP.getSkillLevel(SkillType.ARCHERY) >= 400)
  139. ignition+=20;
  140. if(PP.getSkillLevel(SkillType.ARCHERY) >= 600)
  141. ignition+=20;
  142. if(PP.getSkillLevel(SkillType.ARCHERY) >= 800)
  143. ignition+=20;
  144. if(PP.getSkillLevel(SkillType.ARCHERY) >= 1000)
  145. ignition+=20;
  146. String percentagedaze;
  147. if(PP.getSkillLevel(SkillType.ARCHERY) < 1000){
  148. percentagedaze = String.valueOf((skillvalue / 2000) * 100);
  149. } else {
  150. percentagedaze = "50";
  151. }
  152. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillArchery")}));
  153. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainArchery")}));
  154. if(mcPermissions.getInstance().archery(player))
  155. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY)}));
  156. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  157. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery1_0"), mcLocale.getString("m.EffectsArchery1_1")}));
  158. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery2_0"), mcLocale.getString("m.EffectsArchery2_1")}));
  159. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery3_0"), mcLocale.getString("m.EffectsArchery3_1")}));
  160. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsArchery4_0"), mcLocale.getString("m.EffectsArchery4_1")}));
  161. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  162. player.sendMessage(mcLocale.getString("m.ArcheryDazeChance", new Object[] {percentagedaze}));
  163. player.sendMessage(mcLocale.getString("m.ArcheryRetrieveChance", new Object[] {percentage}));
  164. player.sendMessage(mcLocale.getString("m.ArcheryIgnitionLength", new Object[] {(ignition / 20)}));
  165. player.sendMessage(mcLocale.getString("m.ArcheryDamagePlus", new Object[] {rank}));
  166. }
  167. else if(label.equalsIgnoreCase("axes") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillAxes"))){
  168. String percentage;
  169. float skillvalue = (float)PP.getSkillLevel(SkillType.AXES);
  170. if(PP.getSkillLevel(SkillType.AXES) < 750){
  171. percentage = String.valueOf((skillvalue / 1000) * 100);
  172. } else {
  173. percentage = "75";
  174. }
  175. int ticks = 2;
  176. int x = PP.getSkillLevel(SkillType.AXES);
  177. while(x >= 50){
  178. x-=50;
  179. ticks++;
  180. }
  181. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillAxes")}));
  182. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainAxes")}));
  183. if(mcPermissions.getInstance().axes(player))
  184. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES)}));
  185. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  186. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAxes1_0"), mcLocale.getString("m.EffectsAxes1_1")}));
  187. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAxes2_0"), mcLocale.getString("m.EffectsAxes2_1")}));
  188. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAxes3_0"), mcLocale.getString("m.EffectsAxes3_1")}));
  189. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  190. player.sendMessage(mcLocale.getString("m.AxesCritChance", new Object[] {percentage}));
  191. if(PP.getSkillLevel(SkillType.AXES) < 500){
  192. player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockAxes1")}));
  193. } else {
  194. player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusAxes1_0"), mcLocale.getString("m.AbilBonusAxes1_1")}));
  195. }
  196. player.sendMessage(mcLocale.getString("m.AxesSkullLength", new Object[] {ticks}));
  197. }
  198. else if(label.equalsIgnoreCase("swords") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillSwords").toLowerCase())){
  199. int bleedrank = 2;
  200. String percentage, parrypercentage = null, counterattackpercentage;
  201. float skillvalue = (float)PP.getSkillLevel(SkillType.SWORDS);
  202. if(PP.getSkillLevel(SkillType.SWORDS) < 750){
  203. percentage = String.valueOf((skillvalue / 1000) * 100);
  204. } else {
  205. percentage = "75";
  206. }
  207. if(skillvalue >= 750)
  208. bleedrank+=1;
  209. if(PP.getSkillLevel(SkillType.SWORDS) <= 900){
  210. parrypercentage = String.valueOf((skillvalue / 3000) * 100);
  211. } else {
  212. parrypercentage = "30";
  213. }
  214. if(PP.getSkillLevel(SkillType.SWORDS) <= 600){
  215. counterattackpercentage = String.valueOf((skillvalue / 2000) * 100);
  216. } else {
  217. counterattackpercentage = "30";
  218. }
  219. int ticks = 2;
  220. int x = PP.getSkillLevel(SkillType.SWORDS);
  221. while(x >= 50){
  222. x-=50;
  223. ticks++;
  224. }
  225. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillSwords")}));
  226. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainSwords")}));
  227. if(mcPermissions.getInstance().swords(player))
  228. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS)}));
  229. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  230. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords1_0"), mcLocale.getString("m.EffectsSwords1_1")}));
  231. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords2_0"), mcLocale.getString("m.EffectsSwords2_1")}));
  232. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords3_0"), mcLocale.getString("m.EffectsSwords3_1")}));
  233. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords4_0"), mcLocale.getString("m.EffectsSwords4_1")}));
  234. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsSwords5_0"), mcLocale.getString("m.EffectsSwords5_1")}));
  235. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  236. player.sendMessage(mcLocale.getString("m.SwordsCounterAttChance", new Object[] {counterattackpercentage}));
  237. player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] {bleedrank}));
  238. player.sendMessage(mcLocale.getString("m.SwordsTickNote"));
  239. player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] {percentage}));
  240. player.sendMessage(mcLocale.getString("m.SwordsParryChance", new Object[] {parrypercentage}));
  241. player.sendMessage(mcLocale.getString("m.SwordsSSLength", new Object[] {ticks}));
  242. }
  243. else if(label.equalsIgnoreCase("acrobatics") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillAcrobatics").toLowerCase())){
  244. String dodgepercentage;
  245. float skillvalue = (float)PP.getSkillLevel(SkillType.ACROBATICS);
  246. String percentage = String.valueOf((skillvalue / 1000) * 100);
  247. String gracepercentage = String.valueOf(((skillvalue / 1000) * 100) * 2);
  248. if(PP.getSkillLevel(SkillType.ACROBATICS) <= 800){
  249. dodgepercentage = String.valueOf((skillvalue / 4000 * 100));
  250. } else {
  251. dodgepercentage = "20";
  252. }
  253. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillAcrobatics")}));
  254. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainAcrobatics")}));
  255. if(mcPermissions.getInstance().acrobatics(player))
  256. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS)}));
  257. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  258. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAcrobatics1_0"), mcLocale.getString("m.EffectsAcrobatics1_1")}));
  259. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAcrobatics2_0"), mcLocale.getString("m.EffectsAcrobatics2_1")}));
  260. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsAcrobatics3_0"), mcLocale.getString("m.EffectsAcrobatics3_1")}));
  261. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  262. player.sendMessage(mcLocale.getString("m.AcrobaticsRollChance", new Object[] {percentage}));
  263. player.sendMessage(mcLocale.getString("m.AcrobaticsGracefulRollChance", new Object[] {gracepercentage}));
  264. player.sendMessage(mcLocale.getString("m.AcrobaticsDodgeChance", new Object[] {dodgepercentage}));
  265. }
  266. else if(label.equalsIgnoreCase("mining") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillMining"))){
  267. float skillvalue = (float)PP.getSkillLevel(SkillType.MINING);
  268. String percentage = String.valueOf((skillvalue / 1000) * 100);
  269. int ticks = 2;
  270. int x = PP.getSkillLevel(SkillType.MINING);
  271. while(x >= 50){
  272. x-=50;
  273. ticks++;
  274. }
  275. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillMining")}));
  276. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainMining")}));
  277. if(mcPermissions.getInstance().mining(player))
  278. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING)}));
  279. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  280. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsMining1_0"), mcLocale.getString("m.EffectsMining1_1")}));
  281. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsMining2_0"), mcLocale.getString("m.EffectsMining2_1")}));
  282. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  283. player.sendMessage(mcLocale.getString("m.MiningDoubleDropChance", new Object[] {percentage}));
  284. player.sendMessage(mcLocale.getString("m.MiningSuperBreakerLength", new Object[] {ticks}));
  285. }
  286. else if(label.equalsIgnoreCase("repair") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillRepair").toLowerCase())){
  287. float skillvalue = (float)PP.getSkillLevel(SkillType.REPAIR);
  288. String percentage = String.valueOf((skillvalue / 1000) * 100);
  289. String repairmastery = String.valueOf((skillvalue / 500) * 100);
  290. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillRepair")}));
  291. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainRepair")}));
  292. if(mcPermissions.getInstance().repair(player))
  293. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR)}));
  294. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  295. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair1_0"), mcLocale.getString("m.EffectsRepair1_1")}));
  296. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair2_0"), mcLocale.getString("m.EffectsRepair2_1")}));
  297. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair3_0"), mcLocale.getString("m.EffectsRepair3_1")}));
  298. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsRepair4_0", new Object[]{LoadProperties.repairdiamondlevel}), mcLocale.getString("m.EffectsRepair4_1")}));
  299. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  300. player.sendMessage(mcLocale.getString("m.RepairRepairMastery", new Object[] {repairmastery}));
  301. player.sendMessage(mcLocale.getString("m.RepairSuperRepairChance", new Object[] {percentage}));
  302. }
  303. else if(label.equalsIgnoreCase("unarmed")){
  304. String percentage, arrowpercentage;
  305. float skillvalue = (float)PP.getSkillLevel(SkillType.UNARMED);
  306. if(PP.getSkillLevel(SkillType.UNARMED) < 1000){
  307. percentage = String.valueOf((skillvalue / 4000) * 100);
  308. } else {
  309. percentage = "25";
  310. }
  311. if(PP.getSkillLevel(SkillType.UNARMED) < 1000){
  312. arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2);
  313. } else {
  314. arrowpercentage = "50";
  315. }
  316. int ticks = 2;
  317. int x = PP.getSkillLevel(SkillType.UNARMED);
  318. while(x >= 50){
  319. x-=50;
  320. ticks++;
  321. }
  322. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillUnarmed")}));
  323. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainUnarmed")}));
  324. if(mcPermissions.getInstance().unarmed(player))
  325. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED)}));
  326. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  327. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed1_0"), mcLocale.getString("m.EffectsUnarmed1_1")}));
  328. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed2_0"), mcLocale.getString("m.EffectsUnarmed2_1")}));
  329. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed3_0"), mcLocale.getString("m.EffectsUnarmed3_1")}));
  330. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed4_0"), mcLocale.getString("m.EffectsUnarmed4_1")}));
  331. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsUnarmed5_0"), mcLocale.getString("m.EffectsUnarmed5_1")}));
  332. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  333. player.sendMessage(mcLocale.getString("m.UnarmedArrowDeflectChance", new Object[] {arrowpercentage}));
  334. player.sendMessage(mcLocale.getString("m.UnarmedDisarmChance", new Object[] {percentage}));
  335. if(PP.getSkillLevel(SkillType.UNARMED) < 250){
  336. player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockUnarmed1")}));
  337. } else if(PP.getSkillLevel(SkillType.UNARMED) >= 250 && PP.getSkillLevel(SkillType.UNARMED) < 500){
  338. player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusUnarmed1_0"), mcLocale.getString("m.AbilBonusUnarmed1_1")}));
  339. player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockUnarmed2")}));
  340. } else {
  341. player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] {mcLocale.getString("m.AbilBonusUnarmed2_0"), mcLocale.getString("m.AbilBonusUnarmed2_1")}));
  342. }
  343. player.sendMessage(mcLocale.getString("m.UnarmedBerserkLength", new Object[] {ticks}));
  344. }
  345. else if(label.equalsIgnoreCase("herbalism") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillHerbalism").toLowerCase())){
  346. int rank = 0;
  347. if(PP.getSkillLevel(SkillType.HERBALISM) >= 50)
  348. rank++;
  349. if (PP.getSkillLevel(SkillType.HERBALISM) >= 150)
  350. rank++;
  351. if (PP.getSkillLevel(SkillType.HERBALISM) >= 250)
  352. rank++;
  353. if (PP.getSkillLevel(SkillType.HERBALISM) >= 350)
  354. rank++;
  355. if (PP.getSkillLevel(SkillType.HERBALISM) >= 450)
  356. rank++;
  357. if (PP.getSkillLevel(SkillType.HERBALISM) >= 550)
  358. rank++;
  359. if (PP.getSkillLevel(SkillType.HERBALISM) >= 650)
  360. rank++;
  361. if (PP.getSkillLevel(SkillType.HERBALISM) >= 750)
  362. rank++;
  363. int bonus = 0;
  364. if(PP.getSkillLevel(SkillType.HERBALISM) >= 200)
  365. bonus++;
  366. if(PP.getSkillLevel(SkillType.HERBALISM) >= 400)
  367. bonus++;
  368. if(PP.getSkillLevel(SkillType.HERBALISM) >= 600)
  369. bonus++;
  370. int ticks = 2;
  371. int x = PP.getSkillLevel(SkillType.HERBALISM);
  372. while(x >= 50){
  373. x-=50;
  374. ticks++;
  375. }
  376. float skillvalue = (float)PP.getSkillLevel(SkillType.HERBALISM);
  377. String percentage = String.valueOf((skillvalue / 1000) * 100);
  378. String gpercentage = String.valueOf((skillvalue / 1500) * 100);
  379. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillHerbalism")}));
  380. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainHerbalism")}));
  381. if(mcPermissions.getInstance().herbalism(player))
  382. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM)}));
  383. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  384. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism1_0"), mcLocale.getString("m.EffectsHerbalism1_1")}));
  385. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism2_0"), mcLocale.getString("m.EffectsHerbalism2_1")}));
  386. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism3_0"), mcLocale.getString("m.EffectsHerbalism3_1")}));
  387. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism4_0"), mcLocale.getString("m.EffectsHerbalism4_1")}));
  388. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsHerbalism5_0"), mcLocale.getString("m.EffectsHerbalism5_1")}));
  389. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  390. player.sendMessage(mcLocale.getString("m.HerbalismGreenTerraLength", new Object[] {ticks}));
  391. player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbChance", new Object[] {gpercentage}));
  392. player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbStage", new Object[] {bonus}));
  393. player.sendMessage(mcLocale.getString("m.HerbalismDoubleDropChance", new Object[] {percentage}));
  394. player.sendMessage(mcLocale.getString("m.HerbalismFoodPlus", new Object[] {rank}));
  395. }
  396. else if(label.equalsIgnoreCase("excavation") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillExcavation").toLowerCase()))
  397. {
  398. int ticks = 2;
  399. int x = PP.getSkillLevel(SkillType.EXCAVATION);
  400. while(x >= 50){
  401. x-=50;
  402. ticks++;
  403. }
  404. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillExcavation")}));
  405. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainExcavation")}));
  406. if(mcPermissions.getInstance().excavation(player))
  407. player.sendMessage(mcLocale.getString("m.LVL", new Object[] {PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION)}));
  408. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  409. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation1_0"), mcLocale.getString("m.EffectsExcavation1_1")}));
  410. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation2_0"), mcLocale.getString("m.EffectsExcavation2_1")}));
  411. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  412. player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] {ticks}));
  413. }
  414. else if(label.equalsIgnoreCase("sorcery") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillSorcery").toLowerCase()))
  415. {
  416. /*
  417. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.SkillExcavation")}));
  418. player.sendMessage(mcLocale.getString("m.XPGain", new Object[] {mcLocale.getString("m.XPGainExcavation")}));
  419. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.Effects")}));
  420. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation1_0"), mcLocale.getString("m.EffectsExcavation1_1")}));
  421. player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] {mcLocale.getString("m.EffectsExcavation2_0"), mcLocale.getString("m.EffectsExcavation2_1")}));
  422. player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] {mcLocale.getString("m.YourStats")}));
  423. player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] {ticks}));
  424. */
  425. }
  426. else if(LoadProperties.mcmmoEnable && label.equalsIgnoreCase(LoadProperties.mcmmo))
  427. {
  428. player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"mcMMO"+ChatColor.RED+"[]-----");
  429. String description = mcLocale.getString("mcMMO.Description", new Object[] {LoadProperties.mcc});
  430. String[] mcSplit = description.split(",");
  431. for(String x : mcSplit)
  432. {
  433. player.sendMessage(x);
  434. }
  435. if(LoadProperties.spoutEnabled && player instanceof SpoutPlayer)
  436. {
  437. SpoutPlayer sPlayer = (SpoutPlayer)player;
  438. if(LoadProperties.donateMessage)
  439. sPlayer.sendNotification("[mcMMO] Donate!", "Paypal nossr50@gmail.com", Material.CAKE);
  440. }
  441. else
  442. {
  443. if(LoadProperties.donateMessage)
  444. player.sendMessage(ChatColor.GREEN+"If you like my work you can donate via Paypal: nossr50@gmail.com");
  445. }
  446. }
  447. else if(LoadProperties.mccEnable && label.equalsIgnoreCase(LoadProperties.mcc))
  448. {
  449. player.sendMessage(ChatColor.RED+"---[]"+ChatColor.YELLOW+"mcMMO Commands"+ChatColor.RED+"[]---");
  450. if(mcPermissions.getInstance().party(player)){
  451. player.sendMessage(mcLocale.getString("m.mccPartyCommands"));
  452. player.sendMessage(LoadProperties.party+" "+mcLocale.getString("m.mccParty"));
  453. player.sendMessage(LoadProperties.party+" q "+mcLocale.getString("m.mccPartyQ"));
  454. if(mcPermissions.getInstance().partyChat(player))
  455. player.sendMessage("/p "+mcLocale.getString("m.mccPartyToggle"));
  456. player.sendMessage(LoadProperties.invite+" "+mcLocale.getString("m.mccPartyInvite"));
  457. player.sendMessage(LoadProperties.accept+" "+mcLocale.getString("m.mccPartyAccept"));
  458. if(mcPermissions.getInstance().partyTeleport(player))
  459. player.sendMessage(LoadProperties.ptp+" "+mcLocale.getString("m.mccPartyTeleport"));
  460. }
  461. player.sendMessage(mcLocale.getString("m.mccOtherCommands"));
  462. player.sendMessage(LoadProperties.stats+ChatColor.RED+" "+mcLocale.getString("m.mccStats"));
  463. player.sendMessage("/mctop <skillname> <page> "+ChatColor.RED+mcLocale.getString("m.mccLeaderboards"));
  464. if(mcPermissions.getInstance().mySpawn(player)){
  465. player.sendMessage(LoadProperties.myspawn+" "+ChatColor.RED+mcLocale.getString("m.mccMySpawn"));
  466. player.sendMessage(LoadProperties.clearmyspawn+" "+ChatColor.RED+mcLocale.getString("m.mccClearMySpawn"));
  467. }
  468. if(mcPermissions.getInstance().mcAbility(player))
  469. player.sendMessage(LoadProperties.mcability+ChatColor.RED+" "+mcLocale.getString("m.mccToggleAbility"));
  470. if(mcPermissions.getInstance().adminChat(player)){
  471. player.sendMessage("/a "+ChatColor.RED+mcLocale.getString("m.mccAdminToggle"));
  472. }
  473. if(mcPermissions.getInstance().whois(player))
  474. player.sendMessage(LoadProperties.whois+" "+mcLocale.getString("m.mccWhois"));
  475. if(mcPermissions.getInstance().mmoedit(player)){
  476. //player.sendMessage(LoadProperties.mmoedit+" [skill] [newvalue] "+ChatColor.RED+"Modify the designated skill value");
  477. player.sendMessage(LoadProperties.mmoedit+mcLocale.getString("m.mccMmoedit"));
  478. }
  479. if(mcPermissions.getInstance().mcgod(player))
  480. player.sendMessage(LoadProperties.mcgod+ChatColor.RED+" "+mcLocale.getString("m.mccMcGod"));
  481. player.sendMessage(mcLocale.getString("m.mccSkillInfo"));
  482. player.sendMessage(LoadProperties.mcmmo+" "+mcLocale.getString("m.mccModDescription"));
  483. }
  484. else if(LoadProperties.mcabilityEnable && mcPermissions.permissionsEnabled && label.equalsIgnoreCase(LoadProperties.mcability)){
  485. if(PP.getAbilityUse()){
  486. player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOff"));
  487. PP.toggleAbilityUse();
  488. } else {
  489. player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOn"));
  490. PP.toggleAbilityUse();
  491. }
  492. }
  493. else if (LoadProperties.xprateEnable && label.equalsIgnoreCase(LoadProperties.xprate))
  494. {
  495. if(sender instanceof Player)
  496. {
  497. if(!mcPermissions.getInstance().admin(player))
  498. {
  499. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  500. return true;
  501. }
  502. if(split.length <= 1)
  503. {
  504. player.sendMessage(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate}));
  505. player.sendMessage(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate}));
  506. }
  507. if(split.length == 2 && split[1].equalsIgnoreCase("reset"))
  508. {
  509. if(xpevent)
  510. {
  511. for(Player x : Bukkit.getServer().getOnlinePlayers())
  512. x.sendMessage(mcLocale.getString("Commands.xprate.over"));
  513. xpevent = !xpevent;
  514. LoadProperties.xpGainMultiplier = oldrate;
  515. } else
  516. {
  517. LoadProperties.xpGainMultiplier = oldrate;
  518. }
  519. }
  520. if(split.length >= 2 && m.isInt(split[1]))
  521. {
  522. oldrate = LoadProperties.xpGainMultiplier;
  523. if(split.length >= 3 && (split[2].equalsIgnoreCase("true") || split[2].equalsIgnoreCase("false")))
  524. {
  525. if(split[2].equalsIgnoreCase("true"))
  526. xpevent = true;
  527. else
  528. xpevent = false;
  529. } else
  530. {
  531. player.sendMessage(mcLocale.getString("Commands.xprate.proper3"));
  532. return true;
  533. }
  534. LoadProperties.xpGainMultiplier = m.getInt(split[1]);
  535. if(xpevent = true)
  536. for(Player x : Bukkit.getServer().getOnlinePlayers())
  537. {
  538. x.sendMessage(mcLocale.getString("Commands.xprate.started"));
  539. x.sendMessage(mcLocale.getString("Commands.xprate.started2", new Object[] {LoadProperties.xpGainMultiplier}));
  540. }
  541. }
  542. } else
  543. {
  544. if(split.length <= 1)
  545. {
  546. System.out.println(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate}));
  547. System.out.println(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate}));
  548. }
  549. if(split.length == 2 && split[1].equalsIgnoreCase("reset"))
  550. {
  551. if(xpevent)
  552. {
  553. for(Player x : Bukkit.getServer().getOnlinePlayers())
  554. x.sendMessage(mcLocale.getString("Commands.xprate.over"));
  555. xpevent = !xpevent;
  556. LoadProperties.xpGainMultiplier = oldrate;
  557. } else
  558. {
  559. LoadProperties.xpGainMultiplier = oldrate;
  560. }
  561. }
  562. if(split.length >= 2 && m.isInt(split[1]))
  563. {
  564. oldrate = LoadProperties.xpGainMultiplier;
  565. if(split.length >= 3 && (split[2].equalsIgnoreCase("true") || split[2].equalsIgnoreCase("false")))
  566. {
  567. if(split[2].equalsIgnoreCase("true"))
  568. xpevent = true;
  569. else
  570. xpevent = false;
  571. } else
  572. {
  573. System.out.println(mcLocale.getString("Commands.xprate.proper3"));
  574. return true;
  575. }
  576. LoadProperties.xpGainMultiplier = m.getInt(split[1]);
  577. if(xpevent = true)
  578. for(Player x : Bukkit.getServer().getOnlinePlayers())
  579. {
  580. x.sendMessage(ChatColor.GOLD+"XP EVENT FOR mcMMO HAS STARTED!");
  581. x.sendMessage(ChatColor.GOLD+"mcMMO XP RATE IS NOW "+LoadProperties.xpGainMultiplier+"x!!");
  582. }
  583. }
  584. }
  585. }
  586. /*
  587. * FFS -> MySQL
  588. */
  589. else if(label.equalsIgnoreCase("mmoupdate"))
  590. {
  591. if(!mcPermissions.getInstance().admin(player))
  592. {
  593. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  594. return true;
  595. }
  596. player.sendMessage(ChatColor.GRAY+"Starting conversion...");
  597. Users.clearUsers();
  598. m.convertToMySQL();
  599. for(Player x : Bukkit.getServer().getOnlinePlayers())
  600. {
  601. Users.addUser(x);
  602. }
  603. player.sendMessage(ChatColor.GREEN+"Conversion finished!");
  604. }
  605. /*
  606. * LEADER BOARD COMMAND
  607. */
  608. else if(LoadProperties.mctopEnable && label.equalsIgnoreCase(LoadProperties.mctop)){
  609. if(LoadProperties.useMySQL == false){
  610. /*
  611. * POWER LEVEL INFO RETRIEVAL
  612. */
  613. if(split.length == 1){
  614. int p = 1;
  615. String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p);
  616. player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard"));
  617. int n = 1 * p; //Position
  618. for(String x : info){
  619. if(x != null){
  620. String digit = String.valueOf(n);
  621. if(n < 10)
  622. digit ="0"+String.valueOf(n);
  623. String[] splitx = x.split(":");
  624. //Format: 1. Playername - skill value
  625. player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);
  626. n++;
  627. }
  628. }
  629. }
  630. if(split.length >= 2 && m.isInt(split[1])){
  631. int p = 1;
  632. //Grab page value if specified
  633. if(split.length >= 2){
  634. if(m.isInt(split[1])){
  635. p = Integer.valueOf(split[1]);
  636. }
  637. }
  638. int pt = p;
  639. if(p > 1){
  640. pt -= 1;
  641. pt += (pt * 10);
  642. pt = 10;
  643. }
  644. String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p);
  645. player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard"));
  646. int n = 1 * pt; //Position
  647. for(String x : info){
  648. if(x != null){
  649. String digit = String.valueOf(n);
  650. if(n < 10)
  651. digit ="0"+String.valueOf(n);
  652. String[] splitx = x.split(":");
  653. //Format: 1. Playername - skill value
  654. player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);
  655. n++;
  656. }
  657. }
  658. }
  659. /*
  660. * SKILL SPECIFIED INFO RETRIEVAL
  661. */
  662. if(split.length >= 2 && Skills.isSkill(split[1]))
  663. {
  664. int p = 1;
  665. //Grab page value if specified
  666. if(split.length >= 3)
  667. {
  668. if(m.isInt(split[2])){
  669. p = Integer.valueOf(split[2]);
  670. }
  671. }
  672. int pt = p;
  673. if(p > 1){
  674. pt -= 1;
  675. pt += (pt * 10);
  676. pt = 10;
  677. }
  678. String firstLetter = split[1].substring(0,1); // Get first letter
  679. String remainder = split[1].substring(1); // Get remainder of word.
  680. String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
  681. String[] info = Leaderboard.retrieveInfo(split[1].toUpperCase(), p);
  682. player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] {capitalized}));
  683. int n = 1 * pt; //Position
  684. for(String x : info)
  685. {
  686. if(x != null)
  687. {
  688. String digit = String.valueOf(n);
  689. if(n < 10)
  690. digit ="0"+String.valueOf(n);
  691. String[] splitx = x.split(":");
  692. //Format: 1. Playername - skill value
  693. player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);
  694. n++;
  695. }
  696. }
  697. }
  698. } else {
  699. /*
  700. * MYSQL LEADERBOARDS
  701. */
  702. String powerlevel = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics";
  703. if(split.length >= 2 && Skills.isSkill(split[1])){
  704. /*
  705. * Create a nice consistent capitalized leaderboard name
  706. */
  707. String lowercase = split[1].toLowerCase(); //For the query
  708. String firstLetter = split[1].substring(0,1); //Get first letter
  709. String remainder = split[1].substring(1); //Get remainder of word.
  710. String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
  711. player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] {capitalized}));
  712. if(split.length >= 3 && m.isInt(split[2])){
  713. int n = 1; //For the page number
  714. int n2 = Integer.valueOf(split[2]);
  715. if(n2 > 1){
  716. //Figure out the 'page' here
  717. n = 10;
  718. n = n * (n2-1);
  719. }
  720. //If a page number is specified
  721. HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT "+lowercase+", user_id FROM "
  722. +LoadProperties.MySQLtablePrefix+"skills WHERE "+lowercase+" > 0 ORDER BY `"+LoadProperties.MySQLtablePrefix+"skills`.`"+lowercase+"` DESC ");
  723. for(int i=n;i<=n+10;i++){
  724. if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)
  725. break;
  726. HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");
  727. player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));
  728. }
  729. return true;
  730. }
  731. //If no page number is specified
  732. HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT "+lowercase+", user_id FROM "
  733. +LoadProperties.MySQLtablePrefix+"skills WHERE "+lowercase+" > 0 ORDER BY `"+LoadProperties.MySQLtablePrefix+"skills`.`"+lowercase+"` DESC ");
  734. for(int i=1;i<=10;i++){ //i<=userslist.size()
  735. if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)
  736. break;
  737. HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");
  738. player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));
  739. }
  740. return true;
  741. }
  742. if(split.length >= 1){
  743. player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard"));
  744. if(split.length >= 2 && m.isInt(split[1])){
  745. int n = 1; //For the page number
  746. int n2 = Integer.valueOf(split[1]);
  747. if(n2 > 1){
  748. //Figure out the 'page' here
  749. n = 10;
  750. n = n * (n2-1);
  751. }
  752. //If a page number is specified
  753. HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT "+powerlevel+", user_id FROM "
  754. +LoadProperties.MySQLtablePrefix+"skills WHERE "+powerlevel+" > 0 ORDER BY taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics DESC ");
  755. for(int i=n;i<=n+10;i++){
  756. if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)
  757. break;
  758. HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");
  759. player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));
  760. }
  761. return true;
  762. }
  763. HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics, user_id FROM "
  764. +LoadProperties.MySQLtablePrefix+"skills WHERE "+powerlevel+" > 0 ORDER BY taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics DESC ");
  765. for(int i=1;i<=10;i++){
  766. if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)
  767. break;
  768. HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");
  769. player.sendMessage(String.valueOf(i)+". "+ChatColor.GREEN+userslist.get(i).get(0)+" - "+ChatColor.WHITE+username.get(1).get(0));
  770. //System.out.println(username.get(1).get(0));
  771. //System.out.println("Mining : " + userslist.get(i).get(0) + ", User id : " + userslist.get(i).get(1));
  772. }
  773. }
  774. }
  775. }
  776. else if(LoadProperties.mcrefreshEnable && label.equalsIgnoreCase(LoadProperties.mcrefresh)){
  777. if(!mcPermissions.getInstance().mcrefresh(player)){
  778. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  779. return true;
  780. }
  781. if(split.length >= 2 && isPlayer(split[1])){
  782. player.sendMessage("You have refreshed "+split[1]+"'s cooldowns!");
  783. player = getPlayer(split[1]);
  784. }
  785. /*
  786. * PREP MODES
  787. */
  788. PP = Users.getProfile(player);
  789. PP.setRecentlyHurt((long) 0);
  790. PP.setHoePreparationMode(false);
  791. PP.setAxePreparationMode(false);
  792. PP.setFistsPreparationMode(false);
  793. PP.setSwordsPreparationMode(false);
  794. PP.setPickaxePreparationMode(false);
  795. /*
  796. * GREEN TERRA
  797. */
  798. PP.setGreenTerraMode(false);
  799. PP.setGreenTerraDeactivatedTimeStamp((long) 0);
  800. /*
  801. * GIGA DRILL BREAKER
  802. */
  803. PP.setGigaDrillBreakerMode(false);
  804. PP.setGigaDrillBreakerDeactivatedTimeStamp((long) 0);
  805. /*
  806. * SERRATED STRIKE
  807. */
  808. PP.setSerratedStrikesMode(false);
  809. PP.setSerratedStrikesDeactivatedTimeStamp((long) 0);
  810. /*
  811. * SUPER BREAKER
  812. */
  813. PP.setSuperBreakerMode(false);
  814. PP.setSuperBreakerDeactivatedTimeStamp((long) 0);
  815. /*
  816. * TREE FELLER
  817. */
  818. PP.setTreeFellerMode(false);
  819. PP.setTreeFellerDeactivatedTimeStamp((long) 0);
  820. /*
  821. * BERSERK
  822. */
  823. PP.setBerserkMode(false);
  824. PP.setBerserkDeactivatedTimeStamp((long)0);
  825. player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesRefreshed"));
  826. }
  827. /*
  828. * GODMODE COMMAND
  829. */
  830. else if(LoadProperties.mcgodEnable && label.equalsIgnoreCase(LoadProperties.mcgod))
  831. {
  832. if(mcPermissions.permissionsEnabled)
  833. {
  834. if(!mcPermissions.getInstance().mcgod(player))
  835. {
  836. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  837. return true;
  838. }
  839. if(PP.getGodMode())
  840. {
  841. player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeDisabled"));
  842. PP.toggleGodMode();
  843. } else
  844. {
  845. player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeEnabled"));
  846. PP.toggleGodMode();
  847. }
  848. }
  849. }
  850. else if(LoadProperties.clearmyspawnEnable && LoadProperties.enableMySpawn && label.equalsIgnoreCase(LoadProperties.clearmyspawn) && mcPermissions.getInstance().mySpawn(player))
  851. {
  852. double x = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getX();
  853. double y = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getY();
  854. double z = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getZ();
  855. String worldname = Bukkit.getServer().getWorlds().get(0).getName();
  856. PP.setMySpawn(x, y, z, worldname);
  857. player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnCleared"));
  858. }
  859. else if(LoadProperties.mmoeditEnable && mcPermissions.permissionsEnabled && label.equalsIgnoreCase(""+LoadProperties.mmoedit))
  860. {
  861. if(!mcPermissions.getInstance().mmoedit(player))
  862. {
  863. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  864. return true;
  865. }
  866. if(split.length < 3)
  867. {
  868. player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.mmoedit+" playername skillname newvalue");
  869. return true;
  870. }
  871. if(split.length == 4)
  872. {
  873. if(isPlayer(split[1]) && m.isInt(split[3]) && Skills.isSkill(split[2]))
  874. {
  875. int newvalue = Integer.valueOf(split[3]);
  876. Users.getProfile(getPlayer(split[1])).modifyskill(Skills.getSkillType(split[2]), newvalue);
  877. player.sendMessage(ChatColor.RED+split[2]+" has been modified.");
  878. }
  879. }
  880. else if(split.length == 3)
  881. {
  882. if(m.isInt(split[2]) && Skills.isSkill(split[1]))
  883. {
  884. int newvalue = Integer.valueOf(split[2]);
  885. PP.modifyskill(Skills.getSkillType(split[1]), newvalue);
  886. player.sendMessage(ChatColor.RED+split[1]+" has been modified.");
  887. }
  888. } else
  889. {
  890. player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.mmoedit+" playername skillname newvalue");
  891. }
  892. }
  893. /*
  894. * ADD EXPERIENCE COMMAND
  895. */
  896. else if(LoadProperties.addxpEnable && mcPermissions.permissionsEnabled && label.equalsIgnoreCase(LoadProperties.addxp)){
  897. if(!mcPermissions.getInstance().mmoedit(player)){
  898. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  899. return true;
  900. }
  901. if(split.length < 3){
  902. player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.addxp+" playername skillname xp");
  903. return true;
  904. }
  905. if(split.length == 4){
  906. if(isPlayer(split[1]) && m.isInt(split[3]) && Skills.isSkill(split[2]))
  907. {
  908. int newvalue = Integer.valueOf(split[3]);
  909. Users.getProfile(getPlayer(split[1])).addXP(Skills.getSkillType(split[2]), newvalue);
  910. getPlayer(split[1]).sendMessage(ChatColor.GREEN+"Experience granted!");
  911. player.sendMessage(ChatColor.RED+split[2]+" has been modified.");
  912. Skills.XpCheckAll(getPlayer(split[1]));
  913. }
  914. }
  915. else if(split.length == 3 && m.isInt(split[2]) && Skills.isSkill(split[1]))
  916. {
  917. int newvalue = Integer.valueOf(split[2]);
  918. Users.getProfile(player).addXP(Skills.getSkillType(split[1]), newvalue);
  919. player.sendMessage(ChatColor.RED+split[1]+" has been modified.");
  920. } else {
  921. player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.addxp+" playername skillname xp");
  922. }
  923. }
  924. else if(LoadProperties.ptpEnable && label.equalsIgnoreCase(LoadProperties.ptp) && PP.inParty())
  925. {
  926. if(!mcPermissions.getInstance().partyTeleport(player))
  927. {
  928. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  929. return true;
  930. }
  931. if(split.length < 2)
  932. {
  933. player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.ptp+" <playername>");
  934. return true;
  935. }
  936. if(!isPlayer(split[1]))
  937. {
  938. player.sendMessage("That is not a valid player");
  939. }
  940. if(isPlayer(split[1]))
  941. {
  942. Player target = getPlayer(split[1]);
  943. PlayerProfile PPt = Users.getProfile(target);
  944. if(PP.getParty().equals(PPt.getParty()))
  945. {
  946. player.teleport(target);
  947. player.sendMessage(ChatColor.GREEN+"You have teleported to "+target.getName());
  948. target.sendMessage(ChatColor.GREEN+player.getName() + " has teleported to you.");
  949. }
  950. }
  951. }
  952. /*
  953. * WHOIS COMMAND
  954. */
  955. else if(LoadProperties.whoisEnable && label.equalsIgnoreCase(LoadProperties.whois) && mcPermissions.getInstance().whois(player)){
  956. if(split.length < 2){
  957. player.sendMessage(ChatColor.RED + "Proper usage is /"+LoadProperties.whois+" <playername>");
  958. return true;
  959. }
  960. //if split[1] is a player
  961. if(isPlayer(split[1]))
  962. {
  963. Player target = getPlayer(split[1]);
  964. PlayerProfile PPt = Users.getProfile(target);
  965. player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~");
  966. player.sendMessage(target.getName());
  967. if(PPt.inParty())
  968. player.sendMessage("Party: "+PPt.getParty());
  969. player.sendMessage("Health: "+target.getHealth()+ChatColor.GRAY+" (20 is full health)");
  970. player.sendMessage("OP: " + target.isOp());
  971. player.sendMessage(ChatColor.GREEN+"mcMMO Stats for "+ChatColor.YELLOW+target.getName());
  972. player.sendMessage(ChatColor.GOLD+"-=GATHERING SKILLS=-");
  973. if(mcPermissions.getInstance().excavation(target))
  974. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PPt.getSkillLevel(SkillType.EXCAVATION), PPt.getSkillXpLevel(SkillType.EXCAVATION), PPt.getXpToLevel(SkillType.EXCAVATION)));
  975. if(mcPermissions.getInstance().herbalism(target))
  976. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PPt.getSkillLevel(SkillType.HERBALISM), PPt.getSkillXpLevel(SkillType.HERBALISM), PPt.getXpToLevel(SkillType.HERBALISM)));
  977. if(mcPermissions.getInstance().mining(target))
  978. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PPt.getSkillLevel(SkillType.MINING), PPt.getSkillXpLevel(SkillType.MINING), PPt.getXpToLevel(SkillType.MINING)));
  979. if(mcPermissions.getInstance().woodCuttingAbility(target))
  980. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PPt.getSkillLevel(SkillType.WOODCUTTING), PPt.getSkillXpLevel(SkillType.WOODCUTTING), PPt.getXpToLevel(SkillType.WOODCUTTING)));
  981. player.sendMessage(ChatColor.GOLD+"-=COMBAT SKILLS=-");
  982. if(mcPermissions.getInstance().axes(target))
  983. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PPt.getSkillLevel(SkillType.AXES), PPt.getSkillXpLevel(SkillType.AXES), PPt.getXpToLevel(SkillType.AXES)));
  984. if(mcPermissions.getInstance().archery(player))
  985. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PPt.getSkillLevel(SkillType.ARCHERY), PPt.getSkillXpLevel(SkillType.ARCHERY), PPt.getXpToLevel(SkillType.ARCHERY)));
  986. //if(mcPermissions.getInstance().sorcery(target))
  987. //player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkill("sorcery"), PPt.getSkill("sorceryXP"), PPt.getXpToLevel("excavation")));
  988. if(mcPermissions.getInstance().swords(target))
  989. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PPt.getSkillLevel(SkillType.SWORDS), PPt.getSkillXpLevel(SkillType.SWORDS), PPt.getXpToLevel(SkillType.SWORDS)));
  990. if(mcPermissions.getInstance().taming(target))
  991. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PPt.getSkillLevel(SkillType.TAMING), PPt.getSkillXpLevel(SkillType.TAMING), PPt.getXpToLevel(SkillType.TAMING)));
  992. if(mcPermissions.getInstance().unarmed(target))
  993. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PPt.getSkillLevel(SkillType.UNARMED), PPt.getSkillXpLevel(SkillType.UNARMED), PPt.getXpToLevel(SkillType.UNARMED)));
  994. player.sendMessage(ChatColor.GOLD+"-=MISC SKILLS=-");
  995. if(mcPermissions.getInstance().acrobatics(target))
  996. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PPt.getSkillLevel(SkillType.ACROBATICS), PPt.getSkillXpLevel(SkillType.ACROBATICS), PPt.getXpToLevel(SkillType.ACROBATICS)));
  997. if(mcPermissions.getInstance().repair(target))
  998. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PPt.getSkillLevel(SkillType.REPAIR), PPt.getSkillXpLevel(SkillType.REPAIR), PPt.getXpToLevel(SkillType.REPAIR)));
  999. player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") +ChatColor.GREEN+(m.getPowerLevel(target)));
  1000. }
  1001. }
  1002. /*
  1003. * STATS COMMAND
  1004. */
  1005. else if(LoadProperties.statsEnable && label.equalsIgnoreCase(LoadProperties.stats))
  1006. {
  1007. player.sendMessage(mcLocale.getString("mcPlayerListener.YourStats"));
  1008. if(mcPermissions.getEnabled())
  1009. player.sendMessage(mcLocale.getString("mcPlayerListener.NoSkillNote"));
  1010. ChatColor header = ChatColor.GOLD;
  1011. if(Skills.hasGatheringSkills(player)){
  1012. player.sendMessage(header+"-=GATHERING SKILLS=-");
  1013. if(mcPermissions.getInstance().excavation(player))
  1014. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION)));
  1015. if(mcPermissions.getInstance().herbalism(player))
  1016. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM)));
  1017. if(mcPermissions.getInstance().mining(player))
  1018. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING)));
  1019. if(mcPermissions.getInstance().woodcutting(player))
  1020. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING)));
  1021. }
  1022. if(Skills.hasCombatSkills(player)){
  1023. player.sendMessage(header+"-=COMBAT SKILLS=-");
  1024. if(mcPermissions.getInstance().axes(player))
  1025. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES)));
  1026. if(mcPermissions.getInstance().archery(player))
  1027. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY)));
  1028. //if(mcPermissions.getInstance().sorcery(player))
  1029. //player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkill("sorcery"), PP.getSkill("sorceryXP"), PP.getXpToLevel("excavation")));
  1030. if(mcPermissions.getInstance().swords(player))
  1031. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS)));
  1032. if(mcPermissions.getInstance().taming(player))
  1033. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING)));
  1034. if(mcPermissions.getInstance().unarmed(player))
  1035. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED)));
  1036. }
  1037. if(Skills.hasMiscSkills(player)){
  1038. player.sendMessage(header+"-=MISC SKILLS=-");
  1039. if(mcPermissions.getInstance().acrobatics(player))
  1040. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS)));
  1041. if(mcPermissions.getInstance().repair(player))
  1042. player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR)));
  1043. }
  1044. player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel")+ChatColor.GREEN+(m.getPowerLevel(player)));
  1045. }
  1046. //Invite Command
  1047. else if(LoadProperties.inviteEnable && label.equalsIgnoreCase(LoadProperties.invite) && mcPermissions.getInstance().party(player)){
  1048. Party Pinstance = Party.getInstance();
  1049. if(!PP.inParty())
  1050. {
  1051. player.sendMessage(mcLocale.getString("mcPlayerListener.NotInParty"));
  1052. return true;
  1053. }
  1054. if(split.length < 2)
  1055. {
  1056. player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.invite+" <playername>");
  1057. return true;
  1058. }
  1059. if(PP.inParty() && split.length >= 2 && isPlayer(split[1]))
  1060. {
  1061. if(Pinstance.canInvite(player, PP)) {
  1062. Player target = getPlayer(split[1]);
  1063. PlayerProfile PPt = Users.getProfile(target);
  1064. PPt.modifyInvite(PP.getParty());
  1065. player.sendMessage(mcLocale.getString("mcPlayerListener.InviteSuccess"));
  1066. //target.sendMessage(ChatColor.RED+"ALERT: "+ChatColor.GREEN+"You have received a party invite for "+PPt.getInvite()+" from "+player.getName());
  1067. target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite1", new Object[] {PPt.getInvite(), player.getName()}));
  1068. //target.sendMessage(ChatColor.YELLOW+"Type "+ChatColor.GREEN+LoadProperties.accept+ChatColor.YELLOW+" to accept the invite");
  1069. target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite2", new Object[] {LoadProperties.accept}));
  1070. } else {
  1071. player.sendMessage(mcLocale.getString("Party.Locked"));
  1072. return true;
  1073. }
  1074. }
  1075. }
  1076. //Accept invite
  1077. else if(LoadProperties.acceptEnable && label.equalsIgnoreCase(LoadProperties.accept) && mcPermissions.getInstance().party(player))
  1078. {
  1079. if(PP.hasPartyInvite())
  1080. {
  1081. Party Pinstance = Party.getInstance();
  1082. if(PP.inParty())
  1083. {
  1084. Pinstance.removeFromParty(player, PP);
  1085. }
  1086. PP.acceptInvite();
  1087. Pinstance.addToParty(player, PP, PP.getParty(), true);
  1088. //Refresh party hp bars
  1089. if(LoadProperties.partybar && LoadProperties.spoutEnabled)
  1090. {
  1091. SpoutStuff.resetPartyHealthBarDisplays(Party.getInstance().getPartyMembers(player));
  1092. SpoutStuff.resetPartyHealthBarDisplays(player);
  1093. }
  1094. } else
  1095. {
  1096. player.sendMessage(mcLocale.getString("mcPlayerListener.NoInvites"));
  1097. }
  1098. }
  1099. //Party command
  1100. else if(LoadProperties.partyEnable && label.equalsIgnoreCase(LoadProperties.party))
  1101. {
  1102. if(!mcPermissions.getInstance().party(player))
  1103. {
  1104. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  1105. return true;
  1106. }
  1107. Party Pinstance = Party.getInstance();
  1108. if(PP.inParty() && (!Pinstance.isParty(PP.getParty()) || !Pinstance.isInParty(player, PP)))
  1109. {
  1110. Pinstance.addToParty(player, PP, PP.getParty(), false);
  1111. //Refresh party hp bars
  1112. if(LoadProperties.partybar && LoadProperties.spoutEnabled)
  1113. {
  1114. SpoutStuff.resetPartyHealthBarDisplays(Party.getInstance().getPartyMembers(player));
  1115. SpoutStuff.resetPartyHealthBarDisplays(player);
  1116. }
  1117. }
  1118. if(args.length == 0 && !PP.inParty())
  1119. {
  1120. player.sendMessage(mcLocale.getString("Party.Help1", new Object[] {LoadProperties.party}));
  1121. player.sendMessage(mcLocale.getString("Party.Help2", new Object[] {LoadProperties.party}));
  1122. player.sendMessage(mcLocale.getString("Party.Help3", new Object[] {LoadProperties.party}));
  1123. return true;
  1124. } else if(args.length == 0 && PP.inParty())
  1125. {
  1126. String tempList = "";
  1127. int x = 0;
  1128. for(Player p : Bukkit.getServer().getOnlinePlayers())
  1129. {
  1130. if(PP.getParty().equals(Users.getProfile(p).getParty()))
  1131. {
  1132. if(p != null && x+1 >= Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers()))
  1133. {
  1134. if(Pinstance.isPartyLeader(p, PP.getParty()))
  1135. {
  1136. tempList+=ChatColor.GOLD+p.getName();
  1137. x++;
  1138. }
  1139. else
  1140. {
  1141. tempList+= ChatColor.WHITE+p.getName();
  1142. x++;
  1143. }
  1144. }
  1145. if(p != null && x < Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers()))
  1146. {
  1147. if(Pinstance.isPartyLeader(p, PP.getParty()))
  1148. {
  1149. tempList+=ChatColor.GOLD+p.getName()+", ";
  1150. x++;
  1151. }
  1152. else
  1153. {
  1154. tempList+= ChatColor.WHITE+p.getName()+", ";
  1155. x++;
  1156. }
  1157. }
  1158. }
  1159. }
  1160. player.sendMessage(mcLocale.getString("mcPlayerListener.YouAreInParty", new Object[] {PP.getParty()}));
  1161. player.sendMessage(mcLocale.getString("mcPlayerListener.PartyMembers")+" ("+tempList+ChatColor.GREEN+")");
  1162. return true;
  1163. } else if(args.length == 1)
  1164. {
  1165. if(args[0].equals("q") && PP.inParty())
  1166. {
  1167. Pinstance.removeFromParty(player, PP);
  1168. player.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty"));
  1169. return true;
  1170. } else if (args[0].equalsIgnoreCase("?")) {
  1171. player.sendMessage(mcLocale.getString("Party.Help4", new Object[] {LoadProperties.party}));
  1172. player.sendMessage(mcLocale.getString("Party.Help2", new Object[] {LoadProperties.party}));
  1173. player.sendMessage(mcLocale.getString("Party.Help5", new Object[] {LoadProperties.party}));
  1174. player.sendMessage(mcLocale.getString("Party.Help6", new Object[] {LoadProperties.party}));
  1175. player.sendMessage(mcLocale.getString("Party.Help7", new Object[] {LoadProperties.party}));
  1176. player.sendMessage(mcLocale.getString("Party.Help8", new Object[] {LoadProperties.party}));
  1177. player.sendMessage(mcLocale.getString("Party.Help9", new Object[] {LoadProperties.party}));
  1178. } else if (args[0].equalsIgnoreCase("lock"))
  1179. {
  1180. if(PP.inParty())
  1181. {
  1182. if(Pinstance.isPartyLeader(player, PP.getParty()))
  1183. {
  1184. Pinstance.lockParty(PP.getParty());
  1185. player.sendMessage(mcLocale.getString("Party.Locked"));
  1186. } else
  1187. {
  1188. player.sendMessage(mcLocale.getString("Party.NotOwner"));
  1189. }
  1190. } else
  1191. {
  1192. player.sendMessage(mcLocale.getString("Party.InvalidName"));
  1193. }
  1194. } else if (args[0].equalsIgnoreCase("unlock"))
  1195. {
  1196. if(PP.inParty())
  1197. {
  1198. if(Pinstance.isPartyLeader(player, PP.getParty()))
  1199. {
  1200. Pinstance.unlockParty(PP.getParty());
  1201. player.sendMessage(mcLocale.getString("Party.Unlocked"));
  1202. } else
  1203. {
  1204. player.sendMessage(mcLocale.getString("Party.NotOwner"));
  1205. }
  1206. } else
  1207. {
  1208. player.sendMessage(mcLocale.getString("Party.InvalidName"));
  1209. }
  1210. //Party debugging command.
  1211. //} else if (args[0].equalsIgnoreCase("dump")) {
  1212. // Pinstance.dump(player);
  1213. } else
  1214. {
  1215. if(PP.inParty())
  1216. {
  1217. ArrayList<Player> partymembers = Party.getInstance().getPartyMembers(player);
  1218. Pinstance.removeFromParty(player, PP);
  1219. //Refresh party hp bars
  1220. if(LoadProperties.partybar && LoadProperties.spoutEnabled)
  1221. {
  1222. SpoutStuff.resetPartyHealthBarDisplays(partymembers);
  1223. SpoutStuff.resetPartyHealthBarDisplays(player);
  1224. }
  1225. }
  1226. Pinstance.addToParty(player, PP, args[0], false);
  1227. return true;
  1228. }
  1229. } else if(args.length == 2 && PP.inParty())
  1230. {
  1231. if(args[0].equalsIgnoreCase("password"))
  1232. {
  1233. if(Pinstance.isPartyLeader(player, PP.getParty()))
  1234. {
  1235. if(Pinstance.isPartyLocked(PP.getParty()))
  1236. {
  1237. Pinstance.setPartyPassword(PP.getParty(), args[1]);
  1238. player.sendMessage(mcLocale.getString("Party.PasswordSet", new Object[] {args[1]}));
  1239. } else
  1240. {
  1241. player.sendMessage(mcLocale.getString("Party.IsntLocked"));
  1242. }
  1243. } else
  1244. {
  1245. player.sendMessage(mcLocale.getString("Party.NotOwner"));
  1246. }
  1247. } else if(args[0].equalsIgnoreCase("kick"))
  1248. {
  1249. if(Pinstance.isPartyLeader(player, PP.getParty()))
  1250. {
  1251. if(Pinstance.isPartyLocked(PP.getParty()))
  1252. {
  1253. Player tPlayer = null;
  1254. if(Bukkit.getServer().getPlayer(args[1]) != null) tPlayer = Bukkit.getServer().getPlayer(args[1]);
  1255. if(tPlayer == null)
  1256. {
  1257. player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] {args[1]}));
  1258. }
  1259. if(!Pinstance.inSameParty(player, tPlayer))
  1260. {
  1261. player.sendMessage(mcLocale.getString("Party.NotInYourParty", new Object[] {tPlayer.getName()}));
  1262. } else
  1263. {
  1264. //Not an admin
  1265. if(!mcPermissions.getInstance().admin(player))
  1266. {
  1267. //Can't kick an admin
  1268. if(mcPermissions.getInstance().admin(tPlayer))
  1269. {
  1270. player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] {tPlayer.getName()}));
  1271. }
  1272. }
  1273. PlayerProfile tPP = Users.getProfile(tPlayer);
  1274. ArrayList<Player> partymembers = Party.getInstance().getPartyMembers(player);
  1275. Pinstance.removeFromParty(tPlayer, tPP);
  1276. //Refresh party hp bars
  1277. if(LoadProperties.partybar && LoadProperties.spoutEnabled)
  1278. {
  1279. SpoutStuff.resetPartyHealthBarDisplays(partymembers);
  1280. SpoutStuff.resetPartyHealthBarDisplays(player);
  1281. }
  1282. tPlayer.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty"));
  1283. }
  1284. } else {
  1285. player.sendMessage(mcLocale.getString("Party.IsntLocked"));
  1286. }
  1287. } else {
  1288. player.sendMessage(mcLocale.getString("Party.NotOwner"));
  1289. }
  1290. } else if(args[0].equalsIgnoreCase("owner"))
  1291. {
  1292. if(Pinstance.isPartyLeader(player, PP.getParty()))
  1293. {
  1294. Player tPlayer = null;
  1295. if(Bukkit.getServer().getPlayer(args[1]) != null) tPlayer = Bukkit.getServer().getPlayer(args[1]);
  1296. if(tPlayer == null)
  1297. {
  1298. player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] {args[1]}));
  1299. }
  1300. if(!Pinstance.inSameParty(player, tPlayer))
  1301. {
  1302. player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] {tPlayer.getName()}));
  1303. } else
  1304. {
  1305. Pinstance.setPartyLeader(PP.getParty(), tPlayer.getName());
  1306. }
  1307. } else
  1308. {
  1309. player.sendMessage(mcLocale.getString("Party.NotOwner"));
  1310. }
  1311. } else
  1312. {
  1313. Pinstance.removeFromParty(player, PP);
  1314. Pinstance.addToParty(player, PP, args[0], false, args[1]);
  1315. }
  1316. } else if(args.length == 2 && !PP.inParty())
  1317. {
  1318. Pinstance.addToParty(player, PP, args[0], false, args[1]);
  1319. }
  1320. }
  1321. else if(LoadProperties.partyEnable && label.equalsIgnoreCase("p")){
  1322. // Console message?
  1323. if(!(sender instanceof Player))
  1324. {
  1325. if(args.length < 2) return true;
  1326. String pMessage = args[1];
  1327. for (int i = 2; i <= args.length - 1; i++) {
  1328. pMessage = pMessage + " " + args[i];
  1329. }
  1330. String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE
  1331. + "*Console*" + ChatColor.GREEN + ") ";
  1332. log.log(Level.INFO,
  1333. "[P](" + args[0] + ")" + "<*Console*> "
  1334. + pMessage);
  1335. for(Player herp : Bukkit.getServer().getOnlinePlayers()) {
  1336. if(Users.getProfile(herp).inParty()) {
  1337. if(Users.getProfile(herp).getParty().equalsIgnoreCase(args[0])) {
  1338. herp.sendMessage(pPrefix + pMessage);
  1339. }
  1340. }
  1341. }
  1342. return true;
  1343. }
  1344. if(!mcPermissions.getInstance().party(player)){
  1345. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  1346. return true;
  1347. }
  1348. // Not a toggle, a message
  1349. if (args.length >= 1) {
  1350. String pMessage = args[0];
  1351. for (int i = 1; i <= args.length - 1; i++) {
  1352. pMessage = pMessage + " " + args[i];
  1353. }
  1354. String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE
  1355. + player.getDisplayName() + ChatColor.GREEN + ") ";
  1356. log.log(Level.INFO,
  1357. "[P](" + PP.getParty() + ")" + "<" + player.getDisplayName()
  1358. + "> " + pMessage);
  1359. for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
  1360. if (Users.getProfile(herp).inParty()) {
  1361. if (Party.getInstance().inSameParty(herp, player))
  1362. herp.sendMessage(pPrefix + pMessage);
  1363. }
  1364. }
  1365. return true;
  1366. }
  1367. if(PP.getAdminChatMode())
  1368. PP.toggleAdminChat();
  1369. PP.togglePartyChat();
  1370. if(PP.getPartyChatMode()){
  1371. //player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On");
  1372. player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOn"));
  1373. } else {
  1374. //player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off");
  1375. player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOff"));
  1376. }
  1377. }
  1378. else if(label.equalsIgnoreCase("a")){
  1379. // Console message?
  1380. if(!(sender instanceof Player) && args.length >= 1)
  1381. {
  1382. String aMessage = args[0];
  1383. for (int i = 1; i <= args.length - 1; i++) {
  1384. aMessage = aMessage + " " + args[i];
  1385. }
  1386. String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE
  1387. + "*Console*" + ChatColor.AQUA + "} ";
  1388. log.log(Level.INFO, "[A]<*Console*> "
  1389. + aMessage);
  1390. for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
  1391. if (mcPermissions.getInstance().adminChat(herp) || herp.isOp())
  1392. herp.sendMessage(aPrefix + aMessage);
  1393. }
  1394. return true;
  1395. }
  1396. if(!mcPermissions.getInstance().adminChat(player) && !player.isOp())
  1397. {
  1398. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  1399. return true;
  1400. }
  1401. // Not a toggle, a message
  1402. if (args.length >= 1) {
  1403. String aMessage = args[0];
  1404. for (int i = 1; i <= args.length - 1; i++) {
  1405. aMessage = aMessage + " " + args[i];
  1406. }
  1407. String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE
  1408. + player.getDisplayName() + ChatColor.AQUA + "} ";
  1409. log.log(Level.INFO, "[A]<" + player.getDisplayName() + "> "
  1410. + aMessage);
  1411. for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
  1412. if (mcPermissions.getInstance().adminChat(herp) || herp.isOp())
  1413. herp.sendMessage(aPrefix + aMessage);
  1414. }
  1415. return true;
  1416. }
  1417. if(PP.getPartyChatMode())
  1418. PP.togglePartyChat();
  1419. PP.toggleAdminChat();
  1420. if(PP.getAdminChatMode())
  1421. {
  1422. player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOn"));
  1423. //player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On");
  1424. } else {
  1425. player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOff"));
  1426. //player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off");
  1427. }
  1428. }
  1429. /*
  1430. * MYSPAWN
  1431. */
  1432. else if(LoadProperties.myspawnEnable && LoadProperties.enableMySpawn && label.equalsIgnoreCase(LoadProperties.myspawn))
  1433. {
  1434. if(!mcPermissions.getInstance().mySpawn(player)){
  1435. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  1436. return true;
  1437. }
  1438. if(System.currentTimeMillis() < (PP.getMySpawnATS()*1000) + 3600000){
  1439. long x = (((PP.getMySpawnATS()*1000) + 3600000) - System.currentTimeMillis());
  1440. int y = (int) (x/60000);
  1441. int z = (int) ((x/1000) - (y*60));
  1442. player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnTimeNotice", new Object[] {y, z}));
  1443. return true;
  1444. }
  1445. PP.setMySpawnATS(System.currentTimeMillis());
  1446. if(PP.getMySpawn(player) != null)
  1447. {
  1448. Location mySpawn = PP.getMySpawn(player);
  1449. if(mySpawn != null){
  1450. //It's done twice because it acts oddly when you are in another world
  1451. player.teleport(mySpawn);
  1452. player.teleport(mySpawn);
  1453. }
  1454. } else {
  1455. player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnNotExist"));
  1456. }
  1457. }
  1458. else if(LoadProperties.spoutEnabled && LoadProperties.xpbar && LoadProperties.xplockEnable && label.equalsIgnoreCase(LoadProperties.xplock))
  1459. {
  1460. if(split.length >= 2 && Skills.isSkill(split[1]) && mcPermissions.permission(player, "mcmmo.skills."+Skills.getSkillType(split[1]).toString().toLowerCase()))
  1461. {
  1462. if(PP.getXpBarLocked())
  1463. {
  1464. PP.setSkillLock(Skills.getSkillType(split[1]));
  1465. player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] {m.getCapitalized(PP.getSkillLock().toString())}));
  1466. }
  1467. else
  1468. {
  1469. PP.setSkillLock(Skills.getSkillType(split[1]));
  1470. PP.toggleXpBarLocked();
  1471. player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] {m.getCapitalized(PP.getSkillLock().toString())}));
  1472. }
  1473. SpoutStuff.updateXpBar(player);
  1474. } else if (split.length < 2)
  1475. {
  1476. if(PP.getXpBarLocked())
  1477. {
  1478. PP.toggleXpBarLocked();
  1479. player.sendMessage(mcLocale.getString("Commands.xplock.unlocked"));
  1480. } else if(PP.getLastGained() != null)
  1481. {
  1482. PP.toggleXpBarLocked();
  1483. PP.setSkillLock(PP.getLastGained());
  1484. player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] {m.getCapitalized(PP.getSkillLock().toString())}));
  1485. }
  1486. }
  1487. else if (split.length >= 2 && !Skills.isSkill(split[1]))
  1488. {
  1489. player.sendMessage("Commands.xplock.invalid");
  1490. }
  1491. else if(split.length >= 2 && Skills.isSkill(split[1]) && !mcPermissions.permission(player, "mcmmo.skills."+Skills.getSkillType(split[1]).toString().toLowerCase()))
  1492. {
  1493. player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
  1494. return true;
  1495. }
  1496. }
  1497. return true;
  1498. }
  1499. }