From daf139f560859456c22334bdfdba431fb51f7bba Mon Sep 17 00:00:00 2001 From: nossr50 Date: Sat, 16 Jul 2011 00:12:26 -0700 Subject: [PATCH] A WIP of 1.0.35 (Massive changes to the code) --- mcMMO/Changelog.txt | 14 + mcMMO/com/gmail/nossr50/Combat.java | 140 +- mcMMO/com/gmail/nossr50/Item.java | 38 +- mcMMO/com/gmail/nossr50/Leaderboard.java | 17 +- mcMMO/com/gmail/nossr50/Users.java | 5 +- .../gmail/nossr50/config/LoadProperties.java | 44 +- mcMMO/com/gmail/nossr50/datatypes/Mob.java | 76 + .../nossr50/datatypes/PlayerProfile.java | 30 +- .../nossr50/listeners/mcBlockListener.java | 332 ++++ .../nossr50/listeners/mcEntityListener.java | 219 +++ .../nossr50/listeners/mcPlayerListener.java | 241 +++ .../gmail/nossr50/locale/locale_de.properties | 321 ++++ .../nossr50/locale/locale_en_us.properties | 323 ++++ .../gmail/nossr50/locale/locale_fi.properties | 300 +++ .../gmail/nossr50/locale/locale_fr.properties | 321 ++++ .../gmail/nossr50/locale/locale_nl.properties | 329 ++++ .../gmail/nossr50/locale/locale_pl.properties | 323 ++++ mcMMO/com/gmail/nossr50/locale/mcLocale.java | 74 + mcMMO/com/gmail/nossr50/m.java | 1387 +++++--------- mcMMO/com/gmail/nossr50/mcMMO.java | 1601 ++++++++++++++--- mcMMO/com/gmail/nossr50/mcPermissions.java | 23 +- mcMMO/com/gmail/nossr50/mcTimer.java | 11 - mcMMO/com/gmail/nossr50/party/Party.java | 54 +- mcMMO/com/gmail/nossr50/skills/Archery.java | 96 +- mcMMO/com/gmail/nossr50/skills/Axes.java | 14 +- .../com/gmail/nossr50/skills/Excavation.java | 6 +- mcMMO/com/gmail/nossr50/skills/Herbalism.java | 6 +- mcMMO/com/gmail/nossr50/skills/Mining.java | 6 +- mcMMO/com/gmail/nossr50/skills/Repair.java | 27 +- mcMMO/com/gmail/nossr50/skills/Skills.java | 92 +- mcMMO/com/gmail/nossr50/skills/Sorcery.java | 10 +- mcMMO/com/gmail/nossr50/skills/Swords.java | 20 +- mcMMO/com/gmail/nossr50/skills/Taming.java | 3 +- mcMMO/com/gmail/nossr50/skills/Unarmed.java | 10 +- .../com/gmail/nossr50/skills/WoodCutting.java | 6 +- mcMMO/plugin.yml | 69 +- 36 files changed, 5120 insertions(+), 1468 deletions(-) create mode 100644 mcMMO/com/gmail/nossr50/datatypes/Mob.java create mode 100644 mcMMO/com/gmail/nossr50/listeners/mcBlockListener.java create mode 100644 mcMMO/com/gmail/nossr50/listeners/mcEntityListener.java create mode 100644 mcMMO/com/gmail/nossr50/listeners/mcPlayerListener.java create mode 100644 mcMMO/com/gmail/nossr50/locale/locale_de.properties create mode 100644 mcMMO/com/gmail/nossr50/locale/locale_en_us.properties create mode 100644 mcMMO/com/gmail/nossr50/locale/locale_fi.properties create mode 100644 mcMMO/com/gmail/nossr50/locale/locale_fr.properties create mode 100644 mcMMO/com/gmail/nossr50/locale/locale_nl.properties create mode 100644 mcMMO/com/gmail/nossr50/locale/locale_pl.properties create mode 100644 mcMMO/com/gmail/nossr50/locale/mcLocale.java diff --git a/mcMMO/Changelog.txt b/mcMMO/Changelog.txt index 0e21f1b0c..2dd99e02e 100644 --- a/mcMMO/Changelog.txt +++ b/mcMMO/Changelog.txt @@ -1,5 +1,19 @@ Changelog: #Versions without changelogs probably had very small misc fixes, like tweaks to the source code +Version 1.0.35 +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 diff --git a/mcMMO/com/gmail/nossr50/Combat.java b/mcMMO/com/gmail/nossr50/Combat.java index 98af699d0..a85653f94 100644 --- a/mcMMO/com/gmail/nossr50/Combat.java +++ b/mcMMO/com/gmail/nossr50/Combat.java @@ -1,6 +1,5 @@ package com.gmail.nossr50; -import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.*; import org.bukkit.event.entity.EntityDamageByEntityEvent; @@ -11,15 +10,18 @@ import org.bukkit.plugin.Plugin; import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.party.Party; import com.gmail.nossr50.skills.Acrobatics; +import com.gmail.nossr50.skills.Archery; import com.gmail.nossr50.skills.Axes; import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Swords; import com.gmail.nossr50.skills.Taming; import com.gmail.nossr50.skills.Unarmed; -public class Combat { +public class Combat +{ public static void combatChecks(EntityDamageEvent event, mcMMO pluginx) { if(event.isCancelled() || event.getDamage() == 0) @@ -28,36 +30,7 @@ public class Combat { * CHANGE DAMAGE BASED ON DIFFICULTY */ if(event instanceof EntityDamageByEntityEvent) - { - EntityDamageByEntityEvent eventx = (EntityDamageByEntityEvent) event; - /* - * MOB DIFFICULTY STUFF - */ - - /* - if(eventx.getDamager() instanceof Monster) - { - Integer theMob = eventx.getDamager().getEntityId(); - //System.out.println("FIRST STAGE"); - if(pluginx.mob.mobDiff.containsKey(theMob)) - { - //System.out.println("STAGE TWO"); - if(eventx.getEntity() instanceof Player) - { - Player player = (Player) eventx.getEntity(); - player.sendMessage("Mob Difficulty: "+((int) pluginx.mob.mobDiff.get(theMob)+1)); - //System.out.println("STAGE THREE"); - - //SETUP DMG - event.setDamage((pluginx.mob.mobDiff.get(theMob)+1) * event.getDamage()); - } - } else - { - pluginx.mob.assignDifficulty(eventx.getDamager()); - } - } - */ - + { /* * OFFENSIVE CHECKS FOR PLAYERS VERSUS ENTITIES */ @@ -177,14 +150,14 @@ public class Combat { event.setCancelled(true); if(theWolf.isTamed()) { - attacker.sendMessage(Messages.getString("Combat.BeastLore")+" "+ - Messages.getString("Combat.BeastLoreOwner", new Object[] {Taming.getOwnerName(theWolf)})+" "+ - Messages.getString("Combat.BeastLoreHealthWolfTamed", new Object[] {theWolf.getHealth()})); + attacker.sendMessage(mcLocale.getString("Combat.BeastLore")+" "+ + mcLocale.getString("Combat.BeastLoreOwner", new Object[] {Taming.getOwnerName(theWolf)})+" "+ + mcLocale.getString("Combat.BeastLoreHealthWolfTamed", new Object[] {theWolf.getHealth()})); } else { - attacker.sendMessage(Messages.getString("Combat.BeastLore")+" "+ - Messages.getString("Combat.BeastLoreHealthWolf", new Object[] {theWolf.getHealth()})); + attacker.sendMessage(mcLocale.getString("Combat.BeastLore")+" "+ + mcLocale.getString("Combat.BeastLoreHealthWolf", new Object[] {theWolf.getHealth()})); } } } @@ -199,7 +172,7 @@ public class Combat { { EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; Wolf theWolf = (Wolf) eventb.getDamager(); - if(Taming.ownerOnline(theWolf, pluginx)) + if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx)) { if(Taming.getOwner(theWolf, pluginx) == null) return; @@ -222,13 +195,13 @@ public class Combat { if(event.getEntity() instanceof Player) { Player target = (Player)event.getEntity(); - target.sendMessage(Messages.getString("Combat.StruckByGore")); //$NON-NLS-1$ + target.sendMessage(mcLocale.getString("Combat.StruckByGore")); //$NON-NLS-1$ Users.getProfile(target).setBleedTicks(2); } else pluginx.misc.addToBleedQue((LivingEntity) event.getEntity()); - master.sendMessage(Messages.getString("Combat.Gore")); //$NON-NLS-1$ + master.sendMessage(mcLocale.getString("Combat.Gore")); //$NON-NLS-1$ } if(!event.getEntity().isDead() && !pluginx.misc.mobSpawnerList.contains(event.getEntity())) { @@ -283,7 +256,7 @@ public class Combat { { Wolf theWolf = (Wolf) event.getEntity(); - if(Taming.ownerOnline(theWolf, pluginx)) + if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx)) { if(Taming.getOwner(theWolf, pluginx) == null) return; @@ -331,7 +304,7 @@ public class Combat { Entity x = event.getEntity(); Projectile projectile = event.getProjectile(); if(projectile.toString().equals("CraftArrow") && x instanceof Player) - { //$NON-NLS-1$ + { Player defender = (Player)x; PlayerProfile PPd = Users.getProfile(defender); if(PPd == null) @@ -343,13 +316,13 @@ public class Combat { if(Math.random() * 1000 <= 500) { event.setCancelled(true); - defender.sendMessage(Messages.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ + defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ return; } } else if(defender != null && Math.random() * 1000 <= (PPd.getSkill("unarmed") / 2)) { event.setCancelled(true); - defender.sendMessage(Messages.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ + defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ return; } } @@ -362,29 +335,8 @@ public class Combat { Player attacker = (Player)y; PlayerProfile PPa = Users.getProfile(attacker); if(projectile.toString().equals("CraftArrow") && mcPermissions.getInstance().archery(attacker)) - { //$NON-NLS-1$ - if(!pluginx.misc.arrowTracker.containsKey(x) && event.getDamage() > 0) - { - pluginx.misc.arrowTracker.put(x, 0); - if(attacker != null) - { - if(Math.random() * 1000 <= PPa.getSkill("archery")) - { - pluginx.misc.arrowTracker.put(x, 1); - } - } - } else - { - if(event.getDamage() > 0) - { - if(attacker != null){ - if(Math.random() * 1000 <= PPa.getSkill("archery")) - { - pluginx.misc.arrowTracker.put(x, 1); - } - } - } - } + { + Archery.trackArrows(pluginx, x, event, attacker); /* * DAMAGE MODIFIER */ @@ -402,32 +354,7 @@ public class Combat { /* * IGNITION */ - if(Math.random() * 100 >= 75){ - - int ignition = 20; - if(PPa.getSkill("archery") >= 200) - ignition+=20; - if(PPa.getSkill("archery") >= 400) - ignition+=20; - if(PPa.getSkill("archery") >= 600) - ignition+=20; - if(PPa.getSkill("archery") >= 800) - ignition+=20; - if(PPa.getSkill("archery") >= 1000) - ignition+=20; - - if(x instanceof Player){ - Player Defender = (Player)x; - if(!Party.getInstance().inSameParty(attacker, Defender)){ - event.getEntity().setFireTicks(ignition); - attacker.sendMessage(Messages.getString("Combat.Ignition")); //$NON-NLS-1$ - Defender.sendMessage(Messages.getString("Combat.BurningArrowHit")); //$NON-NLS-1$ - } - } else { - event.getEntity().setFireTicks(ignition); - attacker.sendMessage(Messages.getString("Combat.Ignition")); //$NON-NLS-1$ - } - } + Archery.ignitionCheck(x, event, attacker); /* * Defender is Monster */ @@ -457,8 +384,10 @@ public class Combat { /* * Stuff for the daze proc */ - if(PPa.inParty() && PPd.inParty()){ - if(Party.getInstance().inSameParty(defender, attacker)){ + if(PPa.inParty() && PPd.inParty()) + { + if(Party.getInstance().inSameParty(defender, attacker)) + { event.setCancelled(true); return; } @@ -467,29 +396,14 @@ public class Combat { * PVP XP */ if(LoadProperties.pvpxp && !Party.getInstance().inSameParty(attacker, defender) - && ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis()){ + && ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis()) + { PPa.addArcheryXP((event.getDamage() * 3) * LoadProperties.pvpxprewardmodifier); } /* * DAZE PROC */ - Location loc = defender.getLocation(); - if(Math.random() * 10 > 5){ - loc.setPitch(90); - } else { - loc.setPitch(-90); - } - if(PPa.getSkill("archery") >= 1000){ - if(Math.random() * 1000 <= 500){ - defender.teleport(loc); - defender.sendMessage(Messages.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$ - attacker.sendMessage(Messages.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$ - } - } else if(Math.random() * 2000 <= PPa.getSkill("archery")){ - defender.teleport(loc); - defender.sendMessage(Messages.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$ - attacker.sendMessage(Messages.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$ - } + Archery.dazeCheck(defender, attacker); } } Skills.XpCheck(attacker); diff --git a/mcMMO/com/gmail/nossr50/Item.java b/mcMMO/com/gmail/nossr50/Item.java index 4d04376d6..316a64cf9 100644 --- a/mcMMO/com/gmail/nossr50/Item.java +++ b/mcMMO/com/gmail/nossr50/Item.java @@ -7,6 +7,7 @@ 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; @@ -20,18 +21,24 @@ public class Item { chimaerawing(player, plugin); } } - public static void chimaerawing(Player player, Plugin 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() == 288){ - if(Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing){ + if(mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == 288) + { + 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() == 288){ - if(x.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing + 1){ + if(x.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing + 1) + { x.setAmount(x.getAmount() - LoadProperties.feathersConsumedByChimaeraWing); player.getInventory().setContents(inventory); player.updateInventory(); @@ -45,17 +52,21 @@ public class Item { } } } - while(y < 127){ + while(y < 127) + { y++; - if(player != null){ - if(player.getLocation().getWorld().getBlockAt(block.getX(), y, block.getZ()).getType() != Material.AIR){ - player.sendMessage(Messages.getString("Item.ChimaeraWingFail")); //$NON-NLS-1$ + 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){ + if(PP.getMySpawn(player) != null) + { Location mySpawn = PP.getMySpawn(player); if(mySpawn != null && plugin.getServer().getWorld(PP.getMySpawnWorld(plugin)) != null) mySpawn.setWorld(plugin.getServer().getWorld(PP.getMySpawnWorld(plugin))); @@ -66,11 +77,12 @@ public class Item { } else { player.teleport(player.getWorld().getSpawnLocation()); } - player.sendMessage(Messages.getString("Item.ChimaeraWingPass")); //$NON-NLS-1$ - } else if (!Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= 10) { - player.sendMessage(Messages.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)})); //$NON-NLS-1$ + 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() == 288 && is.getAmount() <= 9){ - player.sendMessage(Messages.getString("Item.NeedFeathers")); //$NON-NLS-1$ + player.sendMessage(mcLocale.getString("Item.NeedFeathers")); //$NON-NLS-1$ } } } diff --git a/mcMMO/com/gmail/nossr50/Leaderboard.java b/mcMMO/com/gmail/nossr50/Leaderboard.java index 75b8559e1..136d97bd3 100644 --- a/mcMMO/com/gmail/nossr50/Leaderboard.java +++ b/mcMMO/com/gmail/nossr50/Leaderboard.java @@ -118,7 +118,7 @@ public class Leaderboard { } public static void leaderWrite(PlayerStat[] ps, String statName) { - String theLocation = "plugins/mcMMO/" + statName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ + String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + statName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ //CHECK IF THE FILE EXISTS File theDir = new File(theLocation); if(!theDir.exists()){ @@ -170,7 +170,7 @@ public class Leaderboard { } public static String[] retrieveInfo(String statName, int pagenumber){ - String theLocation = "plugins/mcMMO/" + statName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ + String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + statName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ try { FileReader file = new FileReader(theLocation); BufferedReader in = new BufferedReader(file); @@ -199,7 +199,7 @@ public class Leaderboard { public static void updateLeaderboard(PlayerStat ps, String statName){ if(LoadProperties.useMySQL) return; - String theLocation = "plugins/mcMMO/" + statName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ + String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + statName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ try { //Open the file FileReader file = new FileReader(theLocation); @@ -237,11 +237,14 @@ public class Leaderboard { log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$ } } - public static boolean isInt(String string){ - try { - int x = Integer.parseInt(string); + public static boolean isInt(String string) + { + try + { + Integer.parseInt(string); } - catch(NumberFormatException nFE) { + catch(NumberFormatException nFE) + { return false; } return true; diff --git a/mcMMO/com/gmail/nossr50/Users.java b/mcMMO/com/gmail/nossr50/Users.java index 89541105a..d9a9e89ca 100644 --- a/mcMMO/com/gmail/nossr50/Users.java +++ b/mcMMO/com/gmail/nossr50/Users.java @@ -13,7 +13,7 @@ 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/mcmmo.users"; + String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; //public static ArrayList players; public static HashMap players = new HashMap(); @@ -65,7 +65,8 @@ public class Users { } - public static void addUser(Player player){ + public static void addUser(Player player) + { players.put(player, new PlayerProfile(player)); } public static void clearUsers() diff --git a/mcMMO/com/gmail/nossr50/config/LoadProperties.java b/mcMMO/com/gmail/nossr50/config/LoadProperties.java index 695cce708..530bfc6aa 100644 --- a/mcMMO/com/gmail/nossr50/config/LoadProperties.java +++ b/mcMMO/com/gmail/nossr50/config/LoadProperties.java @@ -4,13 +4,11 @@ import java.io.File; import java.util.List; import org.bukkit.util.config.Configuration; -import com.gmail.nossr50.mcMMO; - -public class LoadProperties { - public static Boolean xpGainsMobSpawners=false, print_reports = false, myspawnEnable = true, mccEnable = true, mcmmoEnable = true, partyEnable = true, inviteEnable = true, acceptEnable = true, whoisEnable = true, statsEnable = true, addxpEnable = true, ptpEnable = true, mmoeditEnable = true, clearmyspawnEnable = true, mcgodEnable = true, mcabilityEnable = true, mctopEnable = true, mcrefreshEnable = true, enableMotd, enableMySpawn, enableRegen, enableCobbleToMossy, useMySQL, cocoabeans, archeryFireRateLimit, mushrooms, toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, eggs, apples, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages; +public class LoadProperties +{ + public static Boolean xpGainsMobSpawners=false, myspawnEnable = true, mccEnable = true, mcmmoEnable = true, partyEnable = true, inviteEnable = true, acceptEnable = true, whoisEnable = true, statsEnable = true, addxpEnable = true, ptpEnable = true, mmoeditEnable = true, clearmyspawnEnable = true, mcgodEnable = true, mcabilityEnable = true, mctopEnable = true, mcrefreshEnable = true, enableMotd, enableMySpawn, enableRegen, enableCobbleToMossy, useMySQL, cocoabeans, archeryFireRateLimit, mushrooms, toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, eggs, apples, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages; public static String MySQLtablePrefix, MySQLuserName, MySQLserverName, MySQLdbName, MySQLdbPass, mctop, addxp, mcability, mcmmo, mcc, mcrefresh, mcgod, stats, mmoedit, ptp, party, myspawn, whois, invite, accept, clearmyspawn, nWood, nStone, nIron, nGold, nDiamond, locale; public static int msandstone, mcocoa = 10, water_thunder = 75, cure_self = 5, cure_other = 5, mbones, msulphur, mslowsand, mmushroom2, mglowstone2, mmusic, mdiamond2, mbase, mapple, meggs, mcake, mpine, mbirch, mspruce, mcactus, mmushroom, mflower, msugar, mpumpkin, mwheat, mgold, mdiamond, miron, mredstone, mlapus, mobsidian, mnetherrack, mglowstone, mcoal, mstone, MySQLport, xpGainMultiplier, superBreakerCooldown = 240, greenTerraCooldown = 240, gigaDrillBreakerCooldown = 240, treeFellerCooldown = 240, berserkCooldown = 240, serratedStrikeCooldown = 240, skullSplitterCooldown = 240, abilityDurabilityLoss, feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, tamingxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, sorceryxpmodifier = 2, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier, rWood, rStone, rIron, rGold, rDiamond; - private static mcMMO plugin; public String directory = "plugins/mcMMO/"; File file = new File(directory + File.separator + "config.yml"); @@ -52,16 +50,19 @@ public class LoadProperties { return config.getInt(root, 0); } - private Double readDouble(String root) + @SuppressWarnings("unused") + private Double readDouble(String root) { Configuration config = load(); return config.getDouble(root, 0); } - private List readStringList(String root) + @SuppressWarnings("unused") + private List readStringList(String root) { Configuration config = load(); return config.getKeys(root); } + private String readString(String root) { Configuration config = load(); @@ -80,8 +81,9 @@ public class LoadProperties { } return null; } - private void addDefaults(){ - plugin.log.info("Generating Config File..."); + private void addDefaults() + { + System.out.println("Generating Config File..."); //Put in defaults write("MySQL.Enabled", false); @@ -150,9 +152,9 @@ public class LoadProperties { write("XP.Excavation.Cake", 300); write("XP.Excavation.Cocoa_Beans", 10); - write("Sorcery.Spells.Water.Thunder", 75); - write("Sorcery.Spells.Curative.Cure_Self.Mana_Cost", 5); - write("Sorcery.Spells.Curative.Cure_Other.Mana_Cost", 5); + //write("Sorcery.Spells.Water.Thunder", 75); + //write("Sorcery.Spells.Curative.Cure_Self.Mana_Cost", 5); + //write("Sorcery.Spells.Curative.Cure_Other.Mana_Cost", 5); write("Excavation.Drops.Cocoa_Beans", true); write("Excavation.Drops.Mushrooms", true); @@ -229,21 +231,15 @@ public class LoadProperties { loadkeys(); } - private void loadkeys(){ - plugin.log.info("Loading Config File..."); - - System.out.println("print_reports = "+readBoolean("General.Performance.Print_Reports")); + private void loadkeys() + { + System.out.println("Loading Config File..."); xpGainsMobSpawners = readBoolean("XP.Gains.Mobspawners.Enabled"); - if(readBoolean("General.Performance.Print_Reports") != null) - print_reports = readBoolean("General.Performance.Print_Reports"); - else - print_reports = false; - - cure_self = readInteger("Sorcery.Spells.Curative.Cure_Self.Mana_Cost"); - cure_other = readInteger("Sorcery.Spells.Curative.Cure_Other.Mana_Cost"); - water_thunder = readInteger("Sorcery.Spells.Water.Thunder"); + //cure_self = readInteger("Sorcery.Spells.Curative.Cure_Self.Mana_Cost"); + //cure_other = readInteger("Sorcery.Spells.Curative.Cure_Other.Mana_Cost"); + //water_thunder = readInteger("Sorcery.Spells.Water.Thunder"); msulphur = readInteger("XP.Excavation.Sulphur"); mbones = readInteger("XP.Excavation.Bones"); diff --git a/mcMMO/com/gmail/nossr50/datatypes/Mob.java b/mcMMO/com/gmail/nossr50/datatypes/Mob.java new file mode 100644 index 000000000..d87be7233 --- /dev/null +++ b/mcMMO/com/gmail/nossr50/datatypes/Mob.java @@ -0,0 +1,76 @@ +package com.gmail.nossr50.datatypes; + +import java.util.HashMap; + +import org.bukkit.entity.*; + +public class Mob +{ + public HashMap mobDiff = new HashMap(); + public HashMap isAggressive = new HashMap(); + + 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()); + } + } +} diff --git a/mcMMO/com/gmail/nossr50/datatypes/PlayerProfile.java b/mcMMO/com/gmail/nossr50/datatypes/PlayerProfile.java index ba9883884..76a82b729 100644 --- a/mcMMO/com/gmail/nossr50/datatypes/PlayerProfile.java +++ b/mcMMO/com/gmail/nossr50/datatypes/PlayerProfile.java @@ -994,29 +994,36 @@ public class PlayerProfile removeXP("acrobatics", newXP); } - public boolean isInt(String string){ + public boolean isInt(String string) + { try { - int x = Integer.parseInt(string); + Integer.parseInt(string); } catch(NumberFormatException nFE) { return false; } return true; } - public boolean isDouble(String string){ - try { - Double x = Double.valueOf(string); + + public boolean isDouble(String string) + { + try + { + Double.valueOf(string); } - catch(NumberFormatException nFE) { + catch(NumberFormatException nFE) + { return false; } return true; } - public void acceptInvite(){ + public void acceptInvite() + { party = invite; invite = ""; } - public void modifyInvite(String invitename){ + public void modifyInvite(String invitename) + { invite = invitename; } public String getInvite() { return invite; } @@ -1054,7 +1061,8 @@ public class PlayerProfile } save(); } - public Integer getXpToLevel(String skillname){ + public Integer getXpToLevel(String skillname) + { if(skillname.equals("sorcery")){ return ((stats.get("sorcery") + 50) * LoadProperties.sorceryxpmodifier) * LoadProperties.globalxpmodifier; } @@ -1111,13 +1119,15 @@ public class PlayerProfile save(); } //Retrieve whether or not the player is in a party - public boolean inParty() { + public boolean inParty() + { if(party != null && !party.equals("") && !party.equals("null")){ return true; } else { return false; } } + //Retrieve whether or not the player has an invite public boolean hasPartyInvite() { if(invite != null && !invite.equals("") && !invite.equals("null")){ diff --git a/mcMMO/com/gmail/nossr50/listeners/mcBlockListener.java b/mcMMO/com/gmail/nossr50/listeners/mcBlockListener.java new file mode 100644 index 000000000..8f6002486 --- /dev/null +++ b/mcMMO/com/gmail/nossr50/listeners/mcBlockListener.java @@ -0,0 +1,332 @@ +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.datatypes.PlayerProfile; +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 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) + { + + Block block; + Player player = event.getPlayer(); + if (event.getBlock() != null && event.getBlockReplacedState() != null && event.getBlockReplacedState().getTypeId() == 78) + { + block = event.getBlockAgainst(); + } + else + { + block = event.getBlock(); + } + if(player != null && 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 + 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) + event.getPlayer().sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$ + } + + 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 + */ + if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalismAbility(player) && block.getTypeId() == 59 && block.getData() == (byte) 0x07) + { + Herbalism.greenTerraCheck(player, block, plugin); + } + //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(player, block, plugin); + } else { + Mining.miningBlockCheck(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.addWoodcuttingXP(LoadProperties.mpine * LoadProperties.xpGainMultiplier); + //Spruce + if(block.getData() == (byte)1) + PP.addWoodcuttingXP(LoadProperties.mspruce * LoadProperties.xpGainMultiplier); + //Birch + if(block.getData() == (byte)2) + PP.addWoodcuttingXP(LoadProperties.mbirch * LoadProperties.xpGainMultiplier); + } + } + } else + { + if(!plugin.misc.blockWatchList.contains(block)) + { + WoodCutting.woodCuttingProcCheck(player, block); + //Default + if(block.getData() == (byte)0) + PP.addWoodcuttingXP(LoadProperties.mpine * LoadProperties.xpGainMultiplier); + //Spruce + if(block.getData() == (byte)1) + PP.addWoodcuttingXP(LoadProperties.mspruce * LoadProperties.xpGainMultiplier); + //Birch + if(block.getData() == (byte)2) + PP.addWoodcuttingXP(LoadProperties.mbirch * LoadProperties.xpGainMultiplier); + } + } + Skills.XpCheck(player); + + /* + * IF PLAYER IS USING TREEFELLER + */ + if(mcPermissions.getInstance().woodCuttingAbility(player) + && PP.getTreeFellerMode() + && block.getTypeId() == 17 + && m.blockBreakSimulate(block, player, plugin)){ + + 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.addWoodcuttingXP(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(mcPermissions.getInstance().excavation(player) && block.getData() != (byte) 5) + Excavation.excavationProcCheck(block, player); + /* + * HERBALISM + */ + if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalism(player) && Herbalism.canBeGreenTerra(block)) + { + Herbalism.greenTerraCheck(player, block, plugin); + } + 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, plugin); + if(PP.getAxePreparationMode() && block.getTypeId() == 17) + WoodCutting.treeFellerCheck(player, block, plugin); + if(PP.getPickaxePreparationMode()) + Mining.superBreakerCheck(player, block, plugin); + if(PP.getShovelPreparationMode() && Excavation.canBeGigaDrillBroken(block)) + Excavation.gigaDrillBreakerActivationCheck(player, block, plugin); + if(PP.getFistsPreparationMode() && (Excavation.canBeGigaDrillBroken(block) || block.getTypeId() == 78)) + Unarmed.berserkActivationCheck(player, plugin); + + /* + * 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, plugin) && Excavation.canBeGigaDrillBroken(block) && m.isShovel(inhand)){ + + if(m.getTier(player) >= 2) + Excavation.excavationProcCheck(block, player); + if(m.getTier(player) >= 3) + Excavation.excavationProcCheck(block, player); + if(m.getTier(player) >= 4) + Excavation.excavationProcCheck(block, player); + Material mat = Material.getMaterial(block.getTypeId()); + if(block.getTypeId() == 2) + mat = Material.DIRT; + 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); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + } + /* + * BERSERK MODE CHECKS + */ + if(PP.getBerserkMode() + && m.blockBreakSimulate(block, player, plugin) + && 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; + 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); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + } + + /* + * SUPER BREAKER CHECKS + */ + if(PP.getSuperBreakerMode() + && Mining.canBeSuperBroken(block) + && m.blockBreakSimulate(block, player, plugin)) + { + + 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.getSkill("woodcutting") >= 100 && m.isAxes(player.getItemInHand()) && m.blockBreakSimulate(block, player, plugin)) + { + 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(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); + } + } +} \ No newline at end of file diff --git a/mcMMO/com/gmail/nossr50/listeners/mcEntityListener.java b/mcMMO/com/gmail/nossr50/listeners/mcEntityListener.java new file mode 100644 index 000000000..994f15ece --- /dev/null +++ b/mcMMO/com/gmail/nossr50/listeners/mcEntityListener.java @@ -0,0 +1,219 @@ +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.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.getSkill("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.getSkill("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 && !event.isCancelled() && event.getDamage() >= 1) + { + Player herpderp = (Player)event.getEntity(); + 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; + } + } +} diff --git a/mcMMO/com/gmail/nossr50/listeners/mcPlayerListener.java b/mcMMO/com/gmail/nossr50/listeners/mcPlayerListener.java new file mode 100644 index 000000000..eb3ed0727 --- /dev/null +++ b/mcMMO/com/gmail/nossr50/listeners/mcPlayerListener.java @@ -0,0 +1,241 @@ +package com.gmail.nossr50.listeners; + +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.block.Action; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerListener; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.inventory.ItemStack; + +import com.gmail.nossr50.Item; +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.PlayerProfile; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.party.Party; +import com.gmail.nossr50.skills.Herbalism; +import com.gmail.nossr50.skills.Repair; +import com.gmail.nossr50.skills.Skills; + + +public class mcPlayerListener extends PlayerListener +{ + protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$ + public Location spawn = null; + private mcMMO plugin; + + public mcPlayerListener(mcMMO instance) + { + plugin = instance; + } + + + public void onPlayerRespawn(PlayerRespawnEvent event) + { + + Player player = event.getPlayer(); + if(LoadProperties.enableMySpawn && mcPermissions.getInstance().mySpawn(player)) + { + PlayerProfile PP = Users.getProfile(player); + + if(player != null && PP != null) + { + PP.setRespawnATS(System.currentTimeMillis()); + Location mySpawn = PP.getMySpawn(player); + if(mySpawn != null && plugin.getServer().getWorld(PP.getMySpawnWorld(plugin)) != null) + mySpawn.setWorld(plugin.getServer().getWorld(PP.getMySpawnWorld(plugin))); + if(mySpawn != null) + { + event.setRespawnLocation(mySpawn); + } + } + } + } + public void onPlayerLogin(PlayerLoginEvent event) + { + Users.addUser(event.getPlayer()); + } + + public void onPlayerQuit(PlayerQuitEvent event) + { + + /* + * GARBAGE COLLECTION + */ + + //Discard the PlayerProfile object from players array in the Users object stored for this player as it is no longer needed + Users.removeUser(event.getPlayer()); + } + + public void onPlayerJoin(PlayerJoinEvent event) + { + + Player player = event.getPlayer(); + + if(mcPermissions.getInstance().motd(player) && LoadProperties.enableMotd) + { + //player.sendMessage(ChatColor.BLUE +"This server is running mcMMO "+plugin.getDescription().getVersion()+" type /"+ChatColor.YELLOW+LoadProperties.mcmmo+ChatColor.BLUE+ " for help."); + player.sendMessage(mcLocale.getString("mcPlayerListener.MOTD", new Object[] {plugin.getDescription().getVersion(), LoadProperties.mcmmo})); + //player.sendMessage(ChatColor.GREEN+"http://mcmmo.wikia.com"+ChatColor.BLUE+" - mcMMO Wiki"); + player.sendMessage(mcLocale.getString("mcPlayerListener.WIKI")); + } + } + + @SuppressWarnings("deprecation") + public void onPlayerInteract(PlayerInteractEvent event) { + + + Player player = event.getPlayer(); + PlayerProfile PP = Users.getProfile(player); + Action action = event.getAction(); + Block block = event.getClickedBlock(); + + + + //Archery Nerf + if(player.getItemInHand().getTypeId() == 261 && LoadProperties.archeryFireRateLimit){ + if(System.currentTimeMillis() < PP.getArcheryShotATS() + 1000){ + /* + if(m.hasArrows(player)) + m.addArrows(player); + */ + player.updateInventory(); + event.setCancelled(true); + } else { + PP.setArcheryShotATS(System.currentTimeMillis()); + } + } + + /* + * Ability checks + */ + if(action == Action.RIGHT_CLICK_BLOCK) + { + ItemStack is = player.getItemInHand(); + if(LoadProperties.enableMySpawn && block != null && player != null) + { + if(block.getTypeId() == 26 && mcPermissions.getInstance().setMySpawn(player)) + { + Location loc = player.getLocation(); + if(mcPermissions.getInstance().setMySpawn(player)){ + PP.setMySpawn(loc.getX(), loc.getY(), loc.getZ(), loc.getWorld().getName()); + } + player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnSet")); + } + } + + if(block != null && player != null && mcPermissions.getInstance().repair(player) && event.getClickedBlock().getTypeId() == 42) + { + Repair.repairCheck(player, is, event.getClickedBlock()); + } + + if(m.abilityBlockCheck(block)) + { + if(block != null && m.isHoe(player.getItemInHand()) && block.getTypeId() != 3 && block.getTypeId() != 2 && block.getTypeId() != 60){ + Skills.hoeReadinessCheck(player); + } + Skills.abilityActivationCheck(player); + } + + //GREEN THUMB + if(block != null && (block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT) && player.getItemInHand().getType() == Material.SEEDS) + { + boolean pass = false; + if(Herbalism.hasSeeds(player) && mcPermissions.getInstance().herbalism(player)){ + Herbalism.removeSeeds(player); + if(LoadProperties.enableCobbleToMossy && m.blockBreakSimulate(block, player, plugin) && block.getType() == Material.COBBLESTONE && Math.random() * 1500 <= PP.getSkill("herbalism")){ + player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumb")); + block.setType(Material.MOSSY_COBBLESTONE); + pass = true; + } + if(block.getType() == Material.DIRT && m.blockBreakSimulate(block, player, plugin) && Math.random() * 1500 <= PP.getSkill("herbalism")){ + player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumb")); + block.setType(Material.GRASS); + pass = true; + } + if(pass == false) + player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumbFail")); + } + return; + } + } + if(action == Action.RIGHT_CLICK_AIR) + { + Skills.hoeReadinessCheck(player); + Skills.abilityActivationCheck(player); + + /* + * HERBALISM MODIFIERS + */ + if(mcPermissions.getInstance().herbalism(player)) + { + Herbalism.breadCheck(player, player.getItemInHand()); + Herbalism.stewCheck(player, player.getItemInHand()); + } + } + + /* + * ITEM CHECKS + */ + if(action == Action.RIGHT_CLICK_AIR) + Item.itehecks(player, plugin); + if(action == Action.RIGHT_CLICK_BLOCK) + { + if(m.abilityBlockCheck(event.getClickedBlock())) + Item.itehecks(player, plugin); + } + } + + public void onPlayerChat(PlayerChatEvent event) + { + + Player player = event.getPlayer(); + PlayerProfile PP = Users.getProfile(player); + + String x = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getName() + ChatColor.GREEN + ") "; //$NON-NLS-1$ //$NON-NLS-2$ + String y = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getName() + ChatColor.AQUA + "} "; //$NON-NLS-1$ //$NON-NLS-2$ + + if(PP.getPartyChatMode()) + { + event.setCancelled(true); + log.log(Level.INFO, "[P]("+PP.getParty()+")"+"<"+player.getName()+"> "+event.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + for(Player herp : plugin.getServer().getOnlinePlayers()) + { + if(Users.getProfile(herp).inParty()) + { + if(Party.getInstance().inSameParty(herp, player)) + { + herp.sendMessage(x+event.getMessage()); + } + } + } + return; + } + + if((player.isOp() || mcPermissions.getInstance().adminChat(player)) && PP.getAdminChatMode()) + { + log.log(Level.INFO, "[A]"+"<"+player.getName()+"> "+event.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + event.setCancelled(true); + for(Player herp : plugin.getServer().getOnlinePlayers()){ + if((herp.isOp() || mcPermissions.getInstance().adminChat(herp))){ + herp.sendMessage(y+event.getMessage()); + } + } + return; + } + } +} \ No newline at end of file diff --git a/mcMMO/com/gmail/nossr50/locale/locale_de.properties b/mcMMO/com/gmail/nossr50/locale/locale_de.properties new file mode 100644 index 000000000..d878d6694 --- /dev/null +++ b/mcMMO/com/gmail/nossr50/locale/locale_de.properties @@ -0,0 +1,321 @@ +Combat.WolfExamine=[[GREEN]]**du musterst den Wolf mit Bestienkunde** +Combat.WolfShowMaster=[[DARK_GREEN]]Der Bestienmeister \: {0} +Combat.Ignition=[[RED]]**ENTZUENDEN** +Combat.BurningArrowHit=[[DARK_RED]]Du wurdest von einem brennenden Pfeil gestriffen\! +Combat.TouchedFuzzy=[[DARK_RED]]Benommen. fuehlt sich schwindelig. +Combat.TargetDazed=Target was [[DARK_RED]]benommen +Combat.WolfNoMaster=[[GRAY]]Diese Bestie hat keinen Meister... +Combat.WolfHealth=[[GREEN]]Die Bestie hat {0} Lebensenergie +Combat.StruckByGore=[[RED]]**Getroffen von Biss** +Combat.Gore=[[GREEN]]**BISS** +Combat.ArrowDeflect=[[WHITE]]**PFEIL ABGELENKT** +Item.ChimaeraWingFail=**CHIMAERA FLUEGEL fehlgeschlagen\!** +Item.ChimaeraWingPass=**CHIMAERA FLUEGEL** +Item.InjuredWait=du wurdest kurz zuvor verletzt und musst mit der Benutzung warten. [[YELLOW]]({0}s) +Item.NeedFeathers=[[GRAY]]Du brauchst mehr Federn.. +m.mccPartyCommands=[[GREEN]]--GRUPPEN BEFEHLE-- +m.mccParty=[party name] [[RED]]- Erstellen/beitreten einer Gruppe +m.mccPartyQ=[[RED]]- Verlasse aktuelle Gruppe +m.mccPartyToggle=[[RED]] - aktiviert Gruppenchat +m.mccPartyInvite=[player name] [[RED]]- sende Gruppeneinladung +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 mit rechtsklick an/aus schalten +m.mccAdminToggle=- Adminchat aktivieren +m.mccWhois=[playername] [[RED]]- Detailierte Spielerinfos zeigen +m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Ziel modifizieren +m.mccMcGod=- God Mode +m.mccSkillInfo=[skillname] [[RED]]- Detailierte Skillinfos zeigen +m.mccModDescription=[[RED]]- kurze MOD-Beschreibung lesen +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 +m.EffectsTaming1_0=Bestienkunde +m.EffectsTaming1_1=mit Knochen schlagen inspiziert Woelfe +m.EffectsTaming2_0=Biss +m.EffectsTaming2_1=Kritischer Schlag mit Blutungseffekt +m.EffectsTaming3_0=Geschaerfte Krallen +m.EffectsTaming3_1=Schadens-Bonus +m.EffectsTaming4_0=Umweltbewusst +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 (Umweltbewusst) +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=Umweltbewusst +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 machen 1/6 normalen Schaden +m.AbilBonusTaming4_0=Geschärfte 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=Pfeil Rueckgewinnung +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 Bonus-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=Saegezahn-Schlag (Faehigkeit) +m.EffectsSwords2_1=25% Flaechenschaden, Blutung+ Flaecheneffekt +m.EffectsSwords3_0=Saegezahn-Schlag Blutung+ +m.EffectsSwords3_1=5 Tick Blutung +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]]Saegezahn-Schlag Dauer: [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]NOTIZ: [[YELLOW]]1 Tick erfolgt aller 2 Sekunden +m.SkillAcrobatics=Akrobatik (Acrobatics) +m.XPGainAcrobatics=runterfallen +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=Super 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]]Super Brecher Dauer: [[YELLOW]]{0}s +m.SkillRepair=Reparieren (Repair) +m.XPGainRepair=reparieren +m.EffectsRepair1_0=reparieren +m.EffectsRepair1_1=reparieren von Eisenwerkzeugen und Ruestung +m.EffectsRepair2_0=reparieren - Meister +m.EffectsRepair2_1=erhoeht Reparierwert +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=Droppt Item welches Feind in Hand haelt +m.EffectsUnarmed3_0=Faustkampfmeister +m.EffectsUnarmed3_1=grosse Schadenssteigerung +m.EffectsUnarmed4_0=Faustkampflehrling +m.EffectsUnarmed4_1=Schadens-Bonus +m.EffectsUnarmed5_0=Pfeil ablenken +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 ablenken 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 Welt, dreifache Drops +m.EffectsHerbalism2_0=Gruener Daumen (Weizen) +m.EffectsHerbalism2_1=automatisches neupflanzen nach ernten +m.EffectsHerbalism3_0=Gruener Daumen (Cobble) +m.EffectsHerbalism3_1=verwandelt Cobblestone zu Mossy Cobblestone mithilfe von Samen +m.EffectsHerbalism4_0=Nahrung+ +m.EffectsHerbalism4_1=Modifiziert 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=Giga Bohrer (Faehigkeit) +m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Tempo +m.EffectsExcavation2_0=Schatzjaeger +m.EffectsExcavation2_1=Faehigkeit nach Schaetzen zu graben +m.ExcavationGreenTerraLength=[[RED]]Giga Bohrer Dauer: [[YELLOW]]{0}s +mcBlockListener.PlacedAnvil=[[DARK_RED]]Du hast einen Ambos platziert, du kannst hier 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 (Excavations): +mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode deaktiviert +mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode aktiviert +mcPlayerListener.GreenThumb=[[GREEN]]**GRUENER DAUMEN** +mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FEHLGESCHLAGEN** +mcPlayerListener.HerbalismSkill=[[YELLOW]]Kraeuterkunde Skill (Herbalism): +mcPlayerListener.MiningSkill=[[YELLOW]]Bergbau Skill (Mining): +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn ist freigegeben +mcPlayerListener.MyspawnNotExist=[[RED]]Lege deinen myspawn erst mit einem Bett fest +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn wurde an deine aktuelle Position gesetzt +mcPlayerListener.MyspawnTimeNotice=Du musst {0}m {1}s warten um myspawn zu nutzen +mcPlayerListener.NoPermission=unzureichende mcPermissions. +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]]Du hast eine Gruppeneinladung für {0} von {1} +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. +mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki +mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: +mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[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]]Super Brecher [[GREEN]]Faehigkeit ist bereit! +Skills.YourSerratedStrikes=[[GREEN]]Deine [[YELLOW]]Saegezahn-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]]Giga Bohrer[[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]]Green Terra[[DARK_GREEN]] benutzt! +Skills.TreeFellerOn=[[GREEN]]**BAUMFAELLER AKTIV** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Baumfaeller[[DARK_GREEN]] benutzt! +Skills.SuperBreakerOn=[[GREEN]]**SUPER BRECHER AKTIV** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Super Brecher[[DARK_GREEN]] benutzt! +Skills.SerratedStrikesOn=[[GREEN]]**SAEGEZAHN-SCHLAG AKTIV** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Saegezahn-Schlag[[DARK_GREEN]] benutzt! +Skills.SkullSplitterOn=[[GREEN]]**SCHAEDELSPALTER AKTIV** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Schaedelspalter[[DARK_GREEN]] benutzt! +Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA BOHRER AKTIV** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]GigaBohrer[[DARK_GREEN]] benutzt! +Skills.GreenTerraOff=[[RED]]**Gruene Welt ausgelaufen** +Skills.TreeFellerOff=[[RED]]**Baumfaeller ausgelaufen** +Skills.SuperBreakerOff=[[RED]]**Super Brecher ausgelaufen** +Skills.SerratedStrikesOff=[[RED]]**Saegezahn-Schlag ausgelaufen** +Skills.BerserkOff=[[RED]]**Berserker ausgelaufen** +Skills.SkullSplitterOff=[[RED]]**Schaedelspalter ausgelaufen** +Skills.GigaDrillBreakerOff=[[RED]]**Gruene Welt 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]]Du bist 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) \ No newline at end of file diff --git a/mcMMO/com/gmail/nossr50/locale/locale_en_us.properties b/mcMMO/com/gmail/nossr50/locale/locale_en_us.properties new file mode 100644 index 000000000..9fc6a6e1c --- /dev/null +++ b/mcMMO/com/gmail/nossr50/locale/locale_en_us.properties @@ -0,0 +1,323 @@ +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 (500 SKILL) +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) \ No newline at end of file diff --git a/mcMMO/com/gmail/nossr50/locale/locale_fi.properties b/mcMMO/com/gmail/nossr50/locale/locale_fi.properties new file mode 100644 index 000000000..4824b4aea --- /dev/null +++ b/mcMMO/com/gmail/nossr50/locale/locale_fi.properties @@ -0,0 +1,300 @@ +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.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}) \ No newline at end of file diff --git a/mcMMO/com/gmail/nossr50/locale/locale_fr.properties b/mcMMO/com/gmail/nossr50/locale/locale_fr.properties new file mode 100644 index 000000000..1a60d0fe6 --- /dev/null +++ b/mcMMO/com/gmail/nossr50/locale/locale_fr.properties @@ -0,0 +1,321 @@ +Combat.WolfExamine=[[GREEN]]**Vous exminez le loup avec le Beast Lore** +Combat.WolfShowMaster=[[DARK_GREEN]]Le Maitre des betes \: {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 floue. Vous vous senter étourdi. +Combat.TargetDazed=La cible a été [[DARK_RED]]Étourdi +Combat.WolfNoMaster=[[GRAY]]Cette bete n'a pas de maitre... +Combat.WolfHealth=[[GREEN]]Cette bete a {0} de Vie +Combat.StruckByGore=[[RED]]**FRAPPE JUSQU'AU SANG** +Combat.Gore=[[GREEN]]**SANG** +Combat.ArrowDeflect=[[WHITE]]**FLECHE DEVIER** +Item.ChimaeraWingFail=**CHIMAERA WING MANQUE\!** +Item.ChimaeraWingPass=**CHIMAERA WING** +Item.InjuredWait=Vous avez été blessé récemment et vous devez attendre pour l'utiliser. [[YELLOW]]({0}s) +Item.NeedFeathers=[[GRAY]]Vous avez besoin de plus de plumes.. +m.mccPartyCommands=[[GREEN]]--COMMANDES PARTIE-- +m.mccParty=[party name] [[RED]]- Créer / Rejoignez partie désignée +m.mccPartyQ=[[RED]]- Vous quitter la partie en cours +m.mccPartyToggle=[[RED]] - Active le Chat en groupe +m.mccPartyInvite=[player name] [[RED]]- Envoye une invite +m.mccPartyAccept=[[RED]]- Accepter l'invitation +m.mccPartyTeleport=[party member name] [[RED]]- Vous teleporte vers la partie +m.mccOtherCommands=[[GREEN]]--AUTRES COMMANDES-- +m.mccStats=- Voir les statistiques de votre mcMMO +m.mccLeaderboards=- Classements +m.mccMySpawn=- Téléporte au myspawn +m.mccClearMySpawn=- Efface le MySpawn +m.mccToggleAbility=- Active les capacités avec un 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=- Mod dieu +m.mccSkillInfo=[skillname] [[RED]]- Afficher des informations détaillées sur une compétence +m.mccModDescription=[[RED]]- Affiche la description de Mcmmo +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]XP GAGNER: [[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 STATISTIQUES +m.SkillTaming=APPRIVOISER +m.XPGainTaming=Attaque avec les loups +m.EffectsTaming1_0=Connaissance des betes +m.EffectsTaming1_1=Bone-whacking inspects wolves +m.EffectsTaming2_0=Morsures +m.EffectsTaming2_1=Des coups critiques qui s'applique a la morsures +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 Cactus/Lava Phobia +m.EffectsTaming5_0=Epaisse fourrure +m.EffectsTaming5_1=Réduction DMG, Résistance au feu +m.EffectsTaming6_0=Résistance aux chocs +m.EffectsTaming6_1=Réduction des dommages explosifs +m.AbilLockTaming1=Verrouillé jusqu'à+ SKILL (Previent du danger) +m.AbilLockTaming2=Verrouillé jusqu'à 250+ SKILL (épaisse fourrure) +m.AbilLockTaming3=Verrouillé jusqu'à 500+ SKILL (antichoc) +m.AbilLockTaming4=Verrouillé jusqu'à 750+ SKILL (Griffes aiguisées) +m.AbilBonusTaming1_0=Conscient de l'environnement +m.AbilBonusTaming1_1=Les loups previent du danger +m.AbilBonusTaming2_0=Epaisse fourrure +m.AbilBonusTaming2_1=Réduit de moitié les dommages dus à la résistance au feu +m.AbilBonusTaming3_0=Résistance aux chocs +m.AbilBonusTaming3_1=1/6 des explotion par rapport au dommages normaux +m.AbilBonusTaming4_0=Griffes aiguisées +m.AbilBonusTaming4_1=+2 Dommages +m.TamingGoreChance=[[RED]]Chancede Morsures: [[YELLOW]]{0}% +m.SkillWoodCutting=COUPAGES DE BOIS +m.XPGainWoodCutting=Abattre des arbres +m.EffectsWoodCutting1_0=Arbre Félée (CAPACITE) +m.EffectsWoodCutting1_1=Faire exploser des arbres +m.EffectsWoodCutting2_0=Soufler les feuilles +m.EffectsWoodCutting2_1=Soufler les feuilles encore + +m.EffectsWoodCutting3_0=Double Drops +m.EffectsWoodCutting3_1=Double du butin normal +m.AbilLockWoodCutting1=Verrouillé jusqu'à 100+ SKILL (LEAF BLOWER) +m.AbilBonusWoodCutting1_0=Soufler les feuilles +m.AbilBonusWoodCutting1_1=Soufler les feuilles encore + +m.WoodCuttingDoubleDropChance=[[RED]]Chance de drop doubler: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Temps de votre Arbre Félée: [[YELLOW]]{0}s +m.SkillArchery=TIR A L'ARC +m.XPGainArchery=Attaque de monstre +m.EffectsArchery1_0=Bruler +m.EffectsArchery1_1=25% de chance que l'ennemi s'enflamment +m.EffectsArchery2_0=Etourdir (les joueurs) +m.EffectsArchery2_1=Ennemis désoriente +m.EffectsArchery3_0=Dommages+ +m.EffectsArchery3_1=Modifie les dommages +m.EffectsArchery4_0=Récupération de fleches +m.EffectsArchery4_1=Chance pour récupérer les flèches sur un cadavres +m.ArcheryDazeChance=[[RED]]Chance d'étourdir: [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Chance pour récupérer les flèches: [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Durée du feux: [[YELLOW]]{0} seconds +m.ArcheryDamagePlus=[[RED]]Dégâts+ (Rank{0}): [[YELLOW]]Bonus {0} dommages +m.SkillAxes=HACHES +m.XPGainAxes=Attaque de monstre +m.EffectsAxes1_0=Casseur de tete (capacité) +m.EffectsAxes1_1=Frappes de dommages AoE +m.EffectsAxes2_0=Coup critiques +m.EffectsAxes2_1=Double Dommages +m.EffectsAxes3_0=Maîtrise de la hache (500 SKILL) +m.EffectsAxes3_1=Modifie les dommages +m.AbilLockAxes1=Verrouillé jusqu'à 500+ SKILL (MAITRISE DE LA HACHE) +m.AbilBonusAxes1_0=Maîtrise de la hache +m.AbilBonusAxes1_1=4 Blessures en bonus +m.AxesCritChance=[[RED]]Chance de coup critique: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Temps de votre Casseur de tete: [[YELLOW]]{0}s +m.SkillSwords=EPEE +m.XPGainSwords=Attaque de monstre +m.EffectsSwords1_0=Contre-Attaque +m.EffectsSwords1_1=Renvoie 50% des degats subis +m.EffectsSwords2_0=Epee cranté (capacité) +m.EffectsSwords2_1=25% DMG AoE, saignement+ AoE +m.EffectsSwords3_0=Epee cranté et saignement+ +m.EffectsSwords3_1=5 saignement +m.EffectsSwords4_0=Parer +m.EffectsSwords4_1=Inverse les dommages +m.EffectsSwords5_0=Saignement +m.EffectsSwords5_1=Applique un saignement DoT +m.SwordsCounterAttChance=[[RED]]Chance de Contre-Attaque : [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]La longueur du saignement : [[YELLOW]]{0} ticks +m.SwordsBleedChance=[[RED]]Chance de faire saigner: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Chance de parer: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Temps de votre epée cranté: [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 Le Tick va durer 2 secondes +m.SkillAcrobatics=VOLTIGE +m.XPGainAcrobatics=Chute +m.EffectsAcrobatics1_0=Roulade +m.EffectsAcrobatics1_1=Réduit ou Inverse les dommages +m.EffectsAcrobatics2_0=Super roulade +m.EffectsAcrobatics2_1=Roulade deux fois plus efficace +m.EffectsAcrobatics3_0=Esquive +m.EffectsAcrobatics3_1=Domages reduit de moitié +m.AcrobaticsRollChance=[[RED]]Chance de rouler: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Chance de super roulade: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Chance d'esquive: [[YELLOW]]{0}% +m.SkillMining=MINAGE +m.XPGainMining=Extraction de pierre et de minerais +m.EffectsMining1_0=Super Breaker (capacité) +m.EffectsMining1_1=Vitesse+, Triple Chance de loot +m.EffectsMining2_0=Double Drops +m.EffectsMining2_1=Double du butin normal +m.MiningDoubleDropChance=[[RED]]Double Chance de drop: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Super Breaker Length: [[YELLOW]]{0}s +m.SkillRepair=RÉPARATION +m.XPGainRepair=Réparation +m.EffectsRepair1_0=Réparer +m.EffectsRepair1_1=Réparation Outils en fer & Armure +m.EffectsRepair2_0=Maitre en reparation +m.EffectsRepair2_1=Augmentation des réparations +m.EffectsRepair3_0=Super Réparation +m.EffectsRepair3_1=Double efficacité +m.EffectsRepair4_0=Réparation du Diamant ({0}+ compétence) +m.EffectsRepair4_1=Réparation des outils diamant & Armure +m.RepairRepairMastery=[[RED]]Maitre en reparation: [[YELLOW]]En plus {0}% durabilité restauré +m.RepairSuperRepairChance=[[RED]]Chance de super réparation: [[YELLOW]]{0}% +m.SkillUnarmed=Sans armes +m.XPGainUnarmed=Attaque de monstre +m.EffectsUnarmed1_0=Berserk (CAPACITE) +m.EffectsUnarmed1_1=+50% DMG, Rend matériaux faibles +m.EffectsUnarmed2_0=Désarmer (Players) +m.EffectsUnarmed2_1=Vole l'objet ennemis dans la main +m.EffectsUnarmed3_0=Maitres en désarmement +m.EffectsUnarmed3_1=De gros dégâts ajouter +m.EffectsUnarmed4_0=Apprentissage désarmement +m.EffectsUnarmed4_1=Dommages ajouter +m.EffectsUnarmed5_0=Fleches dévier +m.EffectsUnarmed5_1=Déviation de fleches +m.AbilLockUnarmed1=Verrouillé jusqu'à 250+ SKILL (APPRENTIE DESARMER) +m.AbilLockUnarmed2=Verrouillé jusqu'à 500+ SKILL (MAITRES EN DESARMEMENT) +m.AbilBonusUnarmed1_0=Apprentissage désarmement +m.AbilBonusUnarmed1_1=+2 DMG ajouter +m.AbilBonusUnarmed2_0=Maitres en désarmement +m.AbilBonusUnarmed2_1=+4 DMG ajouter +m.UnarmedArrowDeflectChance=[[RED]]Chance de Fleches dévier: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Chance de Désarmer: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Temps de votre Berserk: [[YELLOW]]{0}s +m.SkillHerbalism=Herboristerie +m.XPGainHerbalism=La récolte des herbes +m.EffectsHerbalism1_0=Main verte (CAPACITE) +m.EffectsHerbalism1_1=Propage la Main verte, 3x Items +m.EffectsHerbalism2_0=Main verte (Wheat) +m.EffectsHerbalism2_1=Auto-plantes lors de la récolte de blé +m.EffectsHerbalism3_0=Main verte (Cobble) +m.EffectsHerbalism3_1=Cobblestone -> Mossy w/ Seeds +m.EffectsHerbalism4_0=Nouriture+ +m.EffectsHerbalism4_1=Modifie la santé a reçu du pain / ragoût +m.EffectsHerbalism5_0=Double items (Toutes les cultures) +m.EffectsHerbalism5_1=Double tout les items +m.HerbalismGreenTerraLength=[[RED]]Temps de la Main verte: [[YELLOW]]{0}s +m.HerbalismGreenThumbChance=[[RED]]Main verte Taux de chance: [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Main verte par niveaux: [[YELLOW]] Wheat grows in stage {0} +m.HerbalismDoubleDropChance=[[RED]]Double Chance de dropper: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Nourriture+ (Rank{0}): [[YELLOW]]Bonus {0} curatif +m.SkillExcavation=CREUSAGE +m.XPGainExcavation=Creuser et de trouver des trésors +m.EffectsExcavation1_0=Super broyeur (Capacité) +m.EffectsExcavation1_1=3x Drop Rate, 3x EXPERIENCE, +Vitesse +m.EffectsExcavation2_0=Chercheur de trésor +m.EffectsExcavation2_1=Capacité de trouver un trésor +m.ExcavationGreenTerraLength=[[RED]]Temps de votre Super broyeur: [[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 se précipite de nouveau vers vous... +mcPlayerListener.AbilitiesOff=Capacité bascule off +mcPlayerListener.AbilitiesOn=Capacité bascule on +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**CAPACITE RAFRAICHIE\!** +mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Acrobaties compétences**/Acrobatics**: +mcPlayerListener.ArcherySkill=[[YELLOW]]Tir a l'arc compétences**/Archery**: +mcPlayerListener.AxesSkill=[[YELLOW]]Haches compétences**/Axes**: +mcPlayerListener.ExcavationSkill=[[YELLOW]]Pelle compétences**/Excavation**: +mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Mode Dieux Desactiver +mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Mode Dieux Activer +mcPlayerListener.GreenThumb=[[GREEN]]**GREEN THUMB** +mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FAIL** +mcPlayerListener.HerbalismSkill=[[YELLOW]]Herboriste compétences**/Herbalism**: +mcPlayerListener.MiningSkill=[[YELLOW]]Minage compétences**/Mining**: +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn est maintenant effacée. +mcPlayerListener.MyspawnNotExist=[[RED]]Configurez votre myspawn en 1er avec un lit. +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn a été enregistrer à votre emplacement actuel. +mcPlayerListener.MyspawnTimeNotice=Vous devez attendre {0}m {1}s pour utiliser myspawn +mcPlayerListener.NoPermission=Insufficient mcPermissions. +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Vous n'avez pas accès a la compétence. +mcPlayerListener.NotInParty=[[RED]]Vous n'êtes pas dans un groupe. +mcPlayerListener.InviteSuccess=[[GREEN]]Invitation a été envoyé avec succès. +mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]Vous avez reçu un invitation pour la partie {0} a partir de {1} +mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] à accepter l'invitation +mcPlayerListener.InviteAccepted=[[GREEN]]Invite acceptées. Vous avez rejoint la partie {0} +mcPlayerListener.NoInvites=[[RED]]Vous n'avez pas d'invitation pour le moment +mcPlayerListener.YouAreInParty=[[GREEN]]Vous avez dans la partie {0} +mcPlayerListener.PartyMembers=[[GREEN]]Partie Membres +mcPlayerListener.LeftParty=[[RED]]Vous avez quitté la partie +mcPlayerListener.JoinedParty=Joidre la partie: {0} +mcPlayerListener.PartyChatOn=Party Chat uniquement [[GREEN]]On +mcPlayerListener.PartyChatOff=Party Chat 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 +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 Compétence**/Repair**: +mcPlayerListener.SwordsSkill=[[YELLOW]]Epee compétence**/Swords**: +mcPlayerListener.TamingSkill=[[YELLOW]]Dressage compétence**/Taming**: +mcPlayerListener.UnarmedSkill=[[YELLOW]]Mains nue Compétence**/Unarmed**: +mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Bucheron Compétence**/Woodcutting**: +mcPlayerListener.YourStats=[[GREEN]]Votre MMO Stats +Party.InformedOnJoin={0} [[GREEN]] a join votre partie +Party.InformedOnQuit={0} [[GREEN]] a quitté votre partie +Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Main verte [[GREEN]]la capacité est revenue! +Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Massacre à la tronçonneuse [[GREEN]]la capacité est revenue! +Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Broyeur [[GREEN]]la capacité est revenue! +Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Epee cranté [[GREEN]]la capacité est revenue! +Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]la capacité est revenue! +Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Casseur de tete [[GREEN]]la capacité est revenue! +Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Super broyeur [[GREEN]]la capacité est revenue! +Skills.TooTired=[[RED]]Vous êtes trop fatigué pour utiliser cette capacité à nouveau. +Skills.ReadyHoe=[[GREEN]]**TA BINETTE EST PRETE** +Skills.LowerHoe=[[GRAY]]**Ta binette n'est plus prete** +Skills.ReadyAxe=[[GREEN]]**TA HACHE EST PRETE** +Skills.LowerAxe=[[GRAY]]**Ta hache n'est plus prete** +Skills.ReadyFists=[[GREEN]]**TON POINGS EST PRETE** +Skills.LowerFists=[[GRAY]]**Ton poings n'est plus pret** +Skills.ReadyPickAxe=[[GREEN]]**TA PIOCHE EST PRETE** +Skills.LowerPickAxe=[[GRAY]]**Ta pioche n'est plus prete** +Skills.ReadyShovel=[[GREEN]]**TA PELLE EST PRETE** +Skills.LowerShovel=[[GRAY]]**Ta pelle n'est plus prete** +Skills.ReadySword=[[GREEN]]**TON EPEE EST PRETE** +Skills.LowerSword=[[GRAY]]**Ton épee n'est plus prete** +Skills.GreenTerraOn=[[GREEN]]**MAIN VERTE ACTIF** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Main verte! +Skills.TreeFellerOn=[[GREEN]]**MASSACRE A LA TRONCONNEUSE ACTIF** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Massacre à la tronçonneuse! +Skills.SuperBreakerOn=[[GREEN]]**BROYEUR ACTIF** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Broyeur! +Skills.SerratedStrikesOn=[[GREEN]]**EPEE CRANTER ACTIF** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Epee cranté! +Skills.SkullSplitterOn=[[GREEN]]**CASSEUR DE TETE ACTIF** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Casseur de tete! +Skills.GigaDrillBreakerOn=[[GREEN]]**SUPER BROYEUR ACTIF** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Super broyeur! +Skills.GreenTerraOff=[[RED]]**Main verte est fini** +Skills.TreeFellerOff=[[RED]]**Massacre à la tronçonneuse est fini** +Skills.SuperBreakerOff=[[RED]]**Le broyeur est fini** +Skills.SerratedStrikesOff=[[RED]]**Epee cranté est fini** +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 acrobaties 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 epee 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 coupe de bois a augmenté de {0}. Total ({1}) +Skills.RepairUp=[[YELLOW]]La competence réparation a augmenté de {0}. Total ({1}) +Skills.ExcavationUp=[[YELLOW]]La competence creusage a augmenté de {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) \ No newline at end of file diff --git a/mcMMO/com/gmail/nossr50/locale/locale_nl.properties b/mcMMO/com/gmail/nossr50/locale/locale_nl.properties new file mode 100644 index 000000000..dca0fd686 --- /dev/null +++ b/mcMMO/com/gmail/nossr50/locale/locale_nl.properties @@ -0,0 +1,329 @@ +# 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) \ No newline at end of file diff --git a/mcMMO/com/gmail/nossr50/locale/locale_pl.properties b/mcMMO/com/gmail/nossr50/locale/locale_pl.properties new file mode 100644 index 000000000..8d0c61172 --- /dev/null +++ b/mcMMO/com/gmail/nossr50/locale/locale_pl.properties @@ -0,0 +1,323 @@ +Combat.WolfExamine=[[GREEN]]**Zbadales Wilka uzywajac Wiedzy Besti** +Combat.WolfShowMaster=[[DARK_GREEN]]Wlascicielem besti jest \: {0} +Combat.Ignition=[[RED]]**PODPALENIE** +Combat.BurningArrowHit=[[DARK_RED]]Zostales trafiony plonaca strzala\! +Combat.TouchedFuzzy=[[DARK_RED]]Czujesz sie oszolomiony. +Combat.TargetDazed=Target was [[DARK_RED]]Oszolomiony. +Combat.WolfNoMaster=[[GRAY]]Ta Bestia nie ma wlasciciela... +Combat.WolfHealth=[[GREEN]]Ta bestia ma {0} zycia. +Combat.StruckByGore=[[RED]]**POWALONY** +Combat.Gore=[[GREEN]]**WYLEW KRWI** +Combat.ArrowDeflect=[[WHITE]]**ODBICIE STRZALU** +Item.ChimaeraWingFail=**UZYCIE SKRZYDLA CHIMAERY NIE POWIODLO SIE\!** +Item.ChimaeraWingPass=**UZYLES SKRZYDEL CHIMAERY** +Item.InjuredWait=Musisz poczekac aby znowu to uzyc. [[YELLOW]]({0}sekund) +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 druzyny. +m.mccPartyInvite=[player name] [[RED]]- Wysyla zaproszenie do druzyny. +m.mccPartyAccept=[[RED]]- Akceptuje zaproszenie do druzyny. +m.mccPartyTeleport=[party member name] [[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 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 dokladne informacje na temat gracza. +m.mccMmoedit=[nazwa gracza] [umiejetnosc] [nowa wartosc] [[RED]]- Modyfikuje cel. +m.mccMcGod=- Tryb Boga. +m.mccSkillInfo=[nazwa umiejetnosci (np. Mining)] [[RED]]- Pokazuje dokladne informacje o 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=Wilki zostaja oswojone. +m.EffectsTaming1_0=Wiedza Besti +m.EffectsTaming1_1=Kosci pozwalaja sprawdzic wilki. +m.EffectsTaming2_0=Krwotok +m.EffectsTaming2_1=Atak Krytyczny powodujacy silny krwotok. +m.EffectsTaming3_0=Naostrzone pazury +m.EffectsTaming3_1=Bonus do obrazen +m.EffectsTaming4_0=Swiadome srodowisko +m.EffectsTaming4_1=Strach przed kaktusami i lawa, odpornosc na obrazenia ze spadania. +m.EffectsTaming5_0=Grube Futro +m.EffectsTaming5_1=Redukcja obrazen, obrona przeciw ogniowi. +m.EffectsTaming6_0=Odpornosc na wstrzasy. +m.EffectsTaming6_1=Redukajca obrazen spowodowanych wybuchem. +m.AbilLockTaming1=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 100+ (SWIADOME SRODOWISKO) +m.AbilLockTaming2=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 250+ (GRUBE FUTRO) +m.AbilLockTaming3=Zablokowane puki nie osiganiesz umiejetnosci na poziomie 500+ (ODPORNOSC NA WSTRZASY) +m.AbilLockTaming4=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 750+ (NAOSTRZONE PAZURY) +m.AbilBonusTaming1_0=Swiadome srodowisko. +m.AbilBonusTaming1_1=Wilki unikaja zagrozenia. +m.AbilBonusTaming2_0=Grube futro. +m.AbilBonusTaming2_1=Polowa obrazen, obrona przeciw ogniowi. +m.AbilBonusTaming3_0=Odpornosc na wstrzasy. +m.AbilBonusTaming3_1=Wybuchy powoduja 1/6 normalnych obrazen. +m.AbilBonusTaming4_0=Naostrzone pazury +m.AbilBonusTaming4_1=+2 Obrazen +m.TamingGoreChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0}% +m.SkillWoodCutting=Scinanie Drzew +m.XPGainWoodCutting=Powalanie drzew +m.EffectsWoodCutting1_0=Powalacz drzew (UMIEJETNOSC) +m.EffectsWoodCutting1_1=Powoduje ze drzewa blyskawicznie zostaja powalone +m.EffectsWoodCutting2_0=Wysadzacz lisci +m.EffectsWoodCutting2_1=Wyrzuca liscie +m.EffectsWoodCutting3_0=Podwojna Zaplata +m.EffectsWoodCutting3_1=Podwaja normalny drop przedmiotow. +m.AbilLockWoodCutting1=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 100+ (WYSADZACZ LISCI) +m.AbilBonusWoodCutting1_0=Wysadzacz lisci +m.AbilBonusWoodCutting1_1=Wyrzuca liscie +m.WoodCuttingDoubleDropChance=[[RED]]Szansa na Podwojna Zaplate: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Dlugosc Powalacza Drzew: [[YELLOW]]{0}sekund +m.SkillArchery=LUCZNICTWO +m.XPGainArchery=Atakowanie potworow przy uzyciu luku. +m.EffectsArchery1_0=Podpalenie +m.EffectsArchery1_1=25% szansy, ze cel zostanie podpalony. +m.EffectsArchery2_0=Oszolomienie(Tylko na graczy) +m.EffectsArchery2_1=Dezorientuje przeciwnikow. +m.EffectsArchery3_0=Obrazenia+ +m.EffectsArchery3_1=Modyfikuje obrazenia. +m.EffectsArchery4_0=Odzyskanie strzal. +m.EffectsArchery4_1=Szansa na wyciagniecie strzalow ze zwlok. +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]]Obrazenia+ (Rank{0}): [[YELLOW]]Dodatkowe {0} obrazenia +m.SkillAxes=TOPORY +m.XPGainAxes=Atakowanie potworow przy uzyciu toporow. +m.EffectsAxes1_0=Lamacz Czaszek (UMIEJETNOSC) +m.EffectsAxes1_1=Powoduje obrazenia dla calego obszaru. +m.EffectsAxes2_0=Krytyczne Ataki +m.EffectsAxes2_1=Podwojna Sila +m.EffectsAxes3_0=Mistrzostwo Toporow +m.EffectsAxes3_1=Modyfikuje obrazenia +m.AbilLockAxes1=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 500+ (MISTRZOSTWO TOPOROW) +m.AbilBonusAxes1_0=Mistrzostwo Toporow +m.AbilBonusAxes1_1=Dodatkowe 4 obrazen +m.AxesCritChance=[[RED]]Szansa na krytyczne ataki: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Dlugosc Lamacza Czaszek: [[YELLOW]]{0}sekund +m.SkillSwords=MIECZE +m.XPGainSwords=Atakowanie potworow przy uzyciu mieczy. +m.EffectsSwords1_0=Konter-Atak +m.EffectsSwords1_1=Odbija 50% poniesionych obrazen. +m.EffectsSwords2_0=Zabkowany Atak (UMIEJETNOSC) +m.EffectsSwords2_1=25% obrazen obszarowych, Krwotok+ obszarowy +m.EffectsSwords3_0=Zabkowany Atak, Krwotok+ +m.EffectsSwords3_1=Powoduje dlugotrwaly krwotok. +m.EffectsSwords4_0=Blok. +m.EffectsSwords4_1=Nie ponosisz obrazen. +m.EffectsSwords5_0=Krwotok +m.EffectsSwords5_1=Powoduje Krwotok +m.SwordsCounterAttChance=[[RED]]Szansa na Konter-Atak: [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Dlugosc Krwotoku: [[YELLOW]]{0} wylewow krwi. +m.SwordsBleedChance=[[RED]]Szansa na spowodowanie Krwotoku: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Parry Chance: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Dlugosc Zabkowanego Ataku: [[YELLOW]]{0}sekund +m.SwordsTickNote=[[GRAY]]UWAGA: [[YELLOW]]1 Wylew Krwi pojawia sie co 2 sekundy. +m.SkillAcrobatics=AKROBATYKI +m.XPGainAcrobatics=Spadanie +m.EffectsAcrobatics1_0=Rolowanie sie. +m.EffectsAcrobatics1_1=Redukuje albo usuwa obrazenia. +m.EffectsAcrobatics2_0=Wielka przewrotka +m.EffectsAcrobatics2_1=Dwa razy efektowowniejsze niz rolowanie sie. +m.EffectsAcrobatics3_0=Unik +m.EffectsAcrobatics3_1=Redukuje polowe obrazen. +m.AcrobaticsRollChance=[[RED]]Szansa na rolowanie sie: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Szansa na wielka przewrotke: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Szansa na unik: [[YELLOW]]{0}% +m.SkillMining=WYKOPALISKA +m.XPGainMining=Wykopywanie kamienia i roznych rud. +m.EffectsMining1_0=Super Kopacz (UMIEJETNOSC) +m.EffectsMining1_1=Szybkosc+, Szansa na potrujna zaplate. +m.EffectsMining2_0=Podwojna zaplata. +m.EffectsMining2_1=Podwaja normalny drop. +m.MiningDoubleDropChance=[[RED]]Szansa na podwojna zaplate: [[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=Powiekszona liczba napraw. +m.EffectsRepair3_0=Super Naprawa +m.EffectsRepair3_1=Podwojna efektownosc. +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 Super Odnowe: [[YELLOW]]{0}% +m.SkillUnarmed=BEZBRONNY +m.XPGainUnarmed=Atakowanie potworow piescia. +m.EffectsUnarmed1_0=Furia (UMIEJETNOSC) +m.EffectsUnarmed1_1=+50% obrazen, niszczy slabe materialy. +m.EffectsUnarmed2_0=Rozbrojenie (Gracze) +m.EffectsUnarmed2_1=Wyrzuca przedmioty przyciwnikow trzymane przez nich w rekach. +m.EffectsUnarmed3_0=Mistrzostwo walki gola piescia +m.EffectsUnarmed3_1=Ogromne ulepszenie obrazen +m.EffectsUnarmed4_0=Poczatkujacy bezbronny +m.EffectsUnarmed4_1=Ulepszenie obrazen +m.EffectsUnarmed5_0=Odbicie strzaly +m.EffectsUnarmed5_1=Odbija strzaly +m.AbilLockUnarmed1=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 250+ (POCZATKUJACY BEZBRONNY) +m.AbilLockUnarmed2=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 500+ (MISTRZOSTWO WALKI GOLA PIESCIA) +m.AbilBonusUnarmed1_0=Poczatkujacy bezbronny +m.AbilBonusUnarmed1_1=+2 obrazen +m.AbilBonusUnarmed2_0=Mistrzostwo walki gola piescia +m.AbilBonusUnarmed2_1=+4 obrazen +m.UnarmedArrowDeflectChance=[[RED]]Szansa na odbicie strzaly: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Szansa na rozbrojenie: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Dlugosc Furii: [[YELLOW]]{0}s +m.SkillHerbalism=ZIELARSTWO +m.XPGainHerbalism=Zbieranie ziol. +m.EffectsHerbalism1_0=Zielona Ziemia (UMIEJETNOSC) +m.EffectsHerbalism1_1=Rozprzestrzenia ziemie, Potraja Wynagrodzenie. +m.EffectsHerbalism2_0=Zielony Kciuk (Zboze) +m.EffectsHerbalism2_1=Automatycznie zasadza nasiona przy zbieraniu zboza. +m.EffectsHerbalism3_0=Zielony Kciuk (Cobbletone) +m.EffectsHerbalism3_1=Zamienia Cooblestone w Mossy Stone +m.EffectsHerbalism4_0=Jedzenie+ +m.EffectsHerbalism4_1=Modyfikuje ilosc zycia regenerowana przez zjedzenie chleba/zupy grzybowej. +m.EffectsHerbalism5_0=Podwojne wynagrodzenie +m.EffectsHerbalism5_1=Podwaja normalny drop +m.HerbalismGreenTerraLength=[[RED]]Czas Trwania Zielonego Kciuka: [[YELLOW]]{0}sekund +m.HerbalismGreenThumbChance=[[RED]]Szansa na powodzenie Zielonego Kciuka: [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Poziom Zielonego Kciuka: [[YELLOW]] Zboze rosnie na poziomie {0} +m.HerbalismDoubleDropChance=[[RED]]Podwojne wynagrodzenie: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Jedzenie+ (Rank{0}): [[YELLOW]]Dodatkowe {0} zycia +m.SkillExcavation=ARCHEOLOGIA +m.XPGainExcavation=Kopanie i odnajdywanie skarbow +m.EffectsExcavation1_0=Wielki Lamacz Wiertla (UMIEJETNOSC) +m.EffectsExcavation1_1=3x wieksze wynagrodzenei, 3x wiecej doswiadczenia, +Szybkosc +m.EffectsExcavation2_0=Lowca Skarbow +m.EffectsExcavation2_1=Umiejetnosc znajdywania skarbow +m.ExcavationGreenTerraLength=[[RED]]Wielki Lamacz Wiertla: [[YELLOW]]{0}s +mcBlockListener.PlacedAnvil=[[DARK_RED]]Polozyles kowadlo, ktore pozwala na naprawe przedmiotow. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]Twoj Wilk do Ciebie wraca. +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=Archeologia: +mcPlayerListener.GodModeDisabled=[[YELLOW]]Tryb boga wylaczony +mcPlayerListener.GodModeEnabled=[[YELLOW]]Tryb boga wlaczony +mcPlayerListener.GreenThumb=[[GREEN]]**UZYLES ZIELONY KCIUK** +mcPlayerListener.GreenThumbFail=[[RED]]**UZYWANIE ZIELONEGO KCIUKA NIE POWIODLO SIE** +mcPlayerListener.HerbalismSkill=Zielarstwo: +mcPlayerListener.MiningSkill=Wykopaliska: +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Twoj spawn jest teraz oczyszczony. +mcPlayerListener.MyspawnNotExist=[[RED]]Ustaw wpierw 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]]Jesli nie masz prawa do uzywania umiejetnosci, nie pokaze sie ona tu. +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 zadnych zaproszen do 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=Bezbronny: +mcPlayerListener.WoodcuttingSkill=Scinanie drzew: +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]]Zabkowany Atak [[GREEN]]zostala naladowana! +Skills.YourBerserk=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Furia [[GREEN]]zostala naladowana! +Skills.YourSkullSplitter=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Lamacz Czaszek [[GREEN]]zostala naladowana! +Skills.YourGigaDrillBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Wielki Lamacz Wiertla [[GREEN]]zostala naladowana! +Skills.TooTired=[[RED]]Jestes zbyt zmeczony zeby uzyc znowu tej umiejetnosci. +Skills.ReadyHoe=[[GREEN]]**NALADOWALES SWOJA MOTYKE** +Skills.LowerHoe=[[GRAY]]**ZWOLNILES SWOJA MOTYKE** +Skills.ReadyAxe=[[GREEN]]**NALADOWALES SWOJ TOPOR** +Skills.LowerAxe=[[GRAY]]**ZWOLNILES SWOJ TOPOR** +Skills.ReadyFists=[[GREEN]]**NALADOWALES SWOJE PIESCI** +Skills.LowerFists=[[GRAY]]**ZWOLNILES SWOJE PIESCI** +Skills.ReadyPickAxe=[[GREEN]]**NALADOWALES SWOJ KILOF** +Skills.LowerPickAxe=[[GRAY]]**ZWOLNILES SWOJ KILOF** +Skills.ReadyShovel=[[GREEN]]**NALADOWALES SWOJA LOPATE** +Skills.LowerShovel=[[GRAY]]**ZWOLNILES SWOJA LOPATE** +Skills.ReadySword=[[GREEN]]**NALADOWALES SWOJ MIECZ** +Skills.LowerSword=[[GRAY]]**ZWOLNILES SWOJ MIECZ** +Skills.BerserkOn=[[GREEN]]**FURIA AKTYWOWANA** +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Furie! +Skills.GreenTerraOn=[[GREEN]]**ZIELONA ZIEMIA AKTYWOWANA** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Zielona Ziemie! +Skills.TreeFellerOn=[[GREEN]]**POWALACZ DRZEW AKTYWOWANY** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Powalacza Drzew! +Skills.SuperBreakerOn=[[GREEN]]**SUPER KOPACZ AKTYWOWANY** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Kopacza! +Skills.SerratedStrikesOn=[[GREEN]]**ZABKOWANY ATAK AKTYWOWANY** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Zabkowany Atak! +Skills.SkullSplitterOn=[[GREEN]]**LAMACZ CZASZEK AKTYWOWANY** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Lamacza Czaszek! +Skills.GigaDrillBreakerOn=[[GREEN]]**WIELKI LAMACZ WIERTLA AKTYWOWANY** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Wielki Lamacz Wiertla! +Skills.GreenTerraOff=[[RED]]**Zielona Ziemia zostala zuzyta** +Skills.TreeFellerOff=[[RED]]**Powalacz drzew zostal zuzyty** +Skills.SuperBreakerOff=[[RED]]**Super Kopacz zostal zuzyty** +Skills.SerratedStrikesOff=[[RED]]**Zabkowany Atak zostal zuzyty** +Skills.BerserkOff=[[RED]]**Furia zostala zuzyta** +Skills.SkullSplitterOff=[[RED]]**Lamacz czaszek zostal zuzyty** +Skills.GigaDrillBreakerOff=[[RED]]**Wielki Lamacz Wiertla zostal zuzyty** +Skills.TamingUp=[[YELLOW]]Umiejetnosc oswajania ulepszona o {0}. Razem ({1}) +Skills.AcrobaticsUp=[[YELLOW]]Umiejetnosci akrobatyczne ulepszone o {0}. Razem ({1}) +Skills.ArcheryUp=[[YELLOW]]Umiejetnosc lucznictwa ulepszona o {0}. Razem ({1}) +Skills.SwordsUp=[[YELLOW]]Umiejetnosc uzywania mieczy ulepszona o {0}. Razem ({1}) +Skills.AxesUp=[[YELLOW]]Umiejetnosc uzywania topora ulepszona o {0}. Razem ({1}) +Skills.UnarmedUp=[[YELLOW]]Umiejetnosc bezbronnosci ulepszona o {0}. Razem ({1}) +Skills.HerbalismUp=[[YELLOW]]Umiejetnosc zielarstwa ulepszona o {0}. Razem ({1}) +Skills.MiningUp=[[YELLOW]]Umiejetnosc wykopalisk ulepszona o {0}. Razem ({1}) +Skills.WoodcuttingUp=[[YELLOW]]Umiejetnosc ciecia drzew ulepszona o {0}. Razem ({1}) +Skills.RepairUp=[[YELLOW]]Umiejetnosc naprawy ulepszona o {0}. Razem ({1}) +Skills.ExcavationUp=[[YELLOW]]Umiejetnosc archeologii ulepszona o {0}. Razem ({1}) +Skills.FeltEasy=[[GRAY]]To poszlo latwo. +Skills.StackedItems=[[DARK_RED]]Nie mozesz naprawiac przedmiotow ulozonych na sterte. +Skills.NeedMore=[[DARK_RED]]Potrzebujesz wiecej +Skills.AdeptDiamond=[[DARK_RED]]Nie jestes wystarczajaco utalentowany zeby naprawic Diament +Skills.FullDurability=[[GRAY]]Ten przedmiot jest w pelni wytrzymaly. +Skills.Disarmed=[[DARK_RED]]Zostales rozbrojony! +mcPlayerListener.SorcerySkill=Magia: +m.SkillSorcery=MAGIA +Sorcery.HasCast=[[GREEN]]**RZUCANIE ZAKLECIA**[[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]] Koniec Many [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) +Sorcery.Water.Thunder=PIORUN +Sorcery.Curative.Self=LECZENIE SIEBIE +Sorcery.Curative.Other=LECZENIE INNYCH LUDZI +m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]Doswiadczenia[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) +Combat.BeastLore=[[GREEN]]**WIEDZA BESTI** +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) \ No newline at end of file diff --git a/mcMMO/com/gmail/nossr50/locale/mcLocale.java b/mcMMO/com/gmail/nossr50/locale/mcLocale.java new file mode 100644 index 000000000..6aa812610 --- /dev/null +++ b/mcMMO/com/gmail/nossr50/locale/mcLocale.java @@ -0,0 +1,74 @@ +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; + } +} diff --git a/mcMMO/com/gmail/nossr50/m.java b/mcMMO/com/gmail/nossr50/m.java index 55df8be79..40cad2c67 100644 --- a/mcMMO/com/gmail/nossr50/m.java +++ b/mcMMO/com/gmail/nossr50/m.java @@ -1,926 +1,461 @@ -package com.gmail.nossr50; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.*; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.Plugin; - -import com.gmail.nossr50.config.*; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.FakeBlockBreakEvent; -public class m { - public static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$ - /* - * I'm storing my misc functions/methods in here in an unorganized manner. Spheal with it. - */ - - //The lazy way to default to 0 - public static int getInt(String string) - { - if(isInt(string)) - { - return Integer.valueOf(string); - } - else - { - return 0; - } - } - public static Double getDouble(String string) - { - if(isDouble(string)) - { - return Double.valueOf(string); - } - else - { - return (double) 0; - } - } - public static boolean isDouble(String string) - { - try { - Double x = Double.valueOf(string); - } - catch(NumberFormatException nFE) { - return false; - } - return true; - } - public static boolean shouldBeWatched(Block block) - { - int id = block.getTypeId(); - if(id == 49 || id == 81 || id == 83 || id == 86 || id == 91 || id == 1 || id == 17 || id == 42 || id == 87 || id == 89 || id == 2 || id == 3 || id == 12 || id == 13 || id == 21 || id == 15 || id == 14 || id == 56 || id == 38 || id == 37 || id == 39 || id == 40 || id == 24){ - return true; - } else { - return false; - } - } - public static int getPowerLevel(Player player) - { - PlayerProfile PP = Users.getProfile(player); - int x = 0; - if(mcPermissions.getInstance().mining(player)) - x+=PP.getSkill("mining"); - if(mcPermissions.getInstance().woodcutting(player)) - x+=PP.getSkill("woodcutting"); - if(mcPermissions.getInstance().unarmed(player)) - x+=PP.getSkill("unarmed"); - if(mcPermissions.getInstance().herbalism(player)) - x+=PP.getSkill("herbalism"); - if(mcPermissions.getInstance().excavation(player)) - x+=PP.getSkill("excavation"); - if(mcPermissions.getInstance().archery(player)) - x+=PP.getSkill("archery"); - if(mcPermissions.getInstance().swords(player)) - x+=PP.getSkill("swords"); - if(mcPermissions.getInstance().axes(player)) - x+=PP.getSkill("axes"); - if(mcPermissions.getInstance().acrobatics(player)) - x+=PP.getSkill("acrobatics"); - if(mcPermissions.getInstance().repair(player)) - x+=PP.getSkill("repair"); - return x; - } - - public static boolean blockBreakSimulate(Block block, Player player, Plugin plugin) - { - - FakeBlockBreakEvent event = new FakeBlockBreakEvent(block, player); - if(block != null && plugin != null && player != null){ - plugin.getServer().getPluginManager().callEvent(event); - if(!event.isCancelled()) - { - return true; //Return true if not cancelled - } else { - return false; //Return false if cancelled - } - } else { - return false; //Return false if something went wrong - } - } - - public static void damageTool(Player player, short damage) - { - if(player.getItemInHand().getTypeId() == 0) - return; - player.getItemInHand().setDurability((short) (player.getItemInHand().getDurability() + damage)); - if(player.getItemInHand().getDurability() >= getMaxDurability(getTier(player), player.getItemInHand())) - { - ItemStack[] inventory = player.getInventory().getContents(); - for(ItemStack x : inventory) - { - if(x != null && x.getTypeId() == player.getItemInHand().getTypeId() && x.getDurability() == player.getItemInHand().getDurability()){ - x.setTypeId(0); - x.setAmount(0); - player.getInventory().setContents(inventory); - return; - } - } - } - } - public boolean hasArrows(Player player){ - for(ItemStack x : player.getInventory().getContents()){ - if(x.getTypeId() == 262) - return true; - } - return false; - } - public void addArrows(Player player){ - ItemStack[] inventory = player.getInventory().getContents(); - for(ItemStack x : inventory){ - if(x != null && x.getTypeId() == 262){ - if(x.getAmount() >= 1 && x.getAmount() < 64){ - x.setAmount(x.getAmount() + 1); - player.getInventory().setContents(inventory); - } - return; - } - } - } - public static Integer getTier(Player player){ - int i = player.getItemInHand().getTypeId(); - if(i == 268 || i == 269 || i == 270 || i == 271 || i == 290){ - return 1; //WOOD - } else if (i == 272 || i == 273 || i == 274 || i == 275 || i == 291){ - return 2; //STONE - } else if (i == 256 || i == 257 || i == 258 || i == 267 || i == 292){ - return 3; //IRON - } else if (i == 283 || i == 284 || i == 285 || i == 286 || i == 294){ - return 1; //GOLD - } else if (i == 276 || i == 277 || i == 278 || i == 279 || i == 293){ - return 4; //DIAMOND - } else { - return 1; //UNRECOGNIZED - } - } - public static Integer getMaxDurability(Integer tier, ItemStack item){ - int id = item.getTypeId(); - if(tier == 1){ - if((id == 276 || id == 277 || id == 278 || id == 279 || id == 293)){ - return 33; - } else { - return 60; - } - } else if (tier == 2){ - return 132; - } else if (tier == 3){ - return 251; - } else if (tier == 4){ - return 1562; - } else { - return 0; - } - } - - public static double getDistance(Location loca, Location locb) - { - return Math.sqrt(Math.pow(loca.getX() - locb.getX(), 2) + Math.pow(loca.getY() - locb.getY(), 2) - + Math.pow(loca.getZ() - locb.getZ(), 2)); - } - - public static boolean abilityBlockCheck(Block block) - { - int i = block.getTypeId(); - if(i == 96 || i == 68 || i == 355 || i == 26 || i == 323 || i == 25 || i == 54 || i == 69 || i == 92 || i == 77 || i == 58 || i == 61 || i == 62 || i == 42 || i == 71 || i == 64 || i == 84 || i == 324 || i == 330){ - return false; - } else { - return true; - } - } - - public static boolean isBlockAround(Location loc, Integer radius, Integer typeid) - { - Block blockx = loc.getBlock(); - int ox = blockx.getX(); - int oy = blockx.getY(); - int oz = blockx.getZ(); - for (int cx = -radius; cx <= radius; cx++) { - for (int cy = -radius; cy <= radius; cy++) { - for (int cz = -radius; cz <= radius; cz++) { - Block block = loc.getWorld().getBlockAt(ox + cx, oy + cy, oz + cz); - if (block.getTypeId() == typeid) { - return true; - } - } - } - } - return false; - } - - public static Integer calculateHealth(Integer health, Integer newvalue){ - if((health + newvalue) > 20){ - return 20; - } else { - return health+newvalue; - } - } - public Integer calculateMinusHealth(Integer health, Integer newvalue){ - if((health - newvalue) < 1){ - return 0; - } else { - return health-newvalue; - } - } - public static boolean isInt(String string){ - try { - int x = Integer.parseInt(string); - } - catch(NumberFormatException nFE) { - return false; - } - return true; - } - public static void mcDropItem(Location loc, int id){ - if(loc != null){ - Material mat = Material.getMaterial(id); - byte damage = 0; - ItemStack item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - } - } - - public static boolean isSwords(ItemStack is){ - if(is.getTypeId() == 268 || is.getTypeId() == 267 || is.getTypeId() == 272 || is.getTypeId() == 283 || is.getTypeId() == 276){ - return true; - } else { - return false; - } - } - public static boolean isHoe(ItemStack is){ - int id = is.getTypeId(); - if(id == 290 || id == 291 || id == 292 || id == 293 || id == 294){ - return true; - } else { - return false; - } - } - public static boolean isShovel(ItemStack is){ - if(is.getTypeId() == 269 || is.getTypeId() == 273 || is.getTypeId() == 277 || is.getTypeId() == 284 || is.getTypeId() == 256){ - return true; - } else { - return false; - } - } - public static boolean isAxes(ItemStack is){ - if(is.getTypeId() == 271 || is.getTypeId() == 258 || is.getTypeId() == 286 || is.getTypeId() == 279 || is.getTypeId() == 275){ - return true; - } else { - return false; - } - } - public static boolean isMiningPick(ItemStack is){ - if(is.getTypeId() == 270 || is.getTypeId() == 274 || is.getTypeId() == 285 || is.getTypeId() == 257 || is.getTypeId() == 278){ - return true; - } else { - return false; - } - } - public boolean isGold(ItemStack is){ - int i = is.getTypeId(); - if(i == 283 || i == 284 || i == 285 || i == 286 || i == 294 || i == 314 || i == 315 || i == 316 || i == 317){ - return true; - } else { - return false; - } - } - public static void convertToMySQL(Plugin pluginx) - { - if(!LoadProperties.useMySQL) - return; - String location = "plugins/mcMMO/mcmmo.users"; //$NON-NLS-1$ - try { - //Open the user file - FileReader file = new FileReader(location); - BufferedReader in = new BufferedReader(file); - String line = ""; //$NON-NLS-1$ - String playerName = null, mining = null, party = null, miningXP = null, woodcutting = null, woodCuttingXP = null, repair = null, unarmed = null, herbalism = null, - excavation = null, archery = null, swords = null, axes = null, acrobatics = null, repairXP = null, unarmedXP = null, herbalismXP = null, excavationXP = null, archeryXP = null, swordsXP = null, axesXP = null, - acrobaticsXP = null, taming = null, tamingXP = null; - int id = 0, theCount = 0; - while((line = in.readLine()) != null) - { - //Find if the line contains the player we want. - String[] character = line.split(":"); //$NON-NLS-1$ - playerName = character[0]; - //Check for things we don't want put in the DB - if(playerName == null || playerName.equals("null") || playerName.equals("#Storage place for user information")) //$NON-NLS-1$ //$NON-NLS-2$ - continue; - - //Get Mining - if(character.length > 1) - mining = character[1]; - //Party - if(character.length > 3) - party = character[3]; - //Mining XP - if(character.length > 4) - miningXP = character[4]; - if(character.length > 5) - woodcutting = character[5]; - if(character.length > 6) - woodCuttingXP = character[6]; - if(character.length > 7) - repair = character[7]; - if(character.length > 8) - unarmed = character[8]; - if(character.length > 9) - herbalism = character[9]; - if(character.length > 10) - excavation = character[10]; - if(character.length > 11) - archery = character[11]; - if(character.length > 12) - swords = character[12]; - if(character.length > 13) - axes = character[13]; - if(character.length > 14) - acrobatics = character[14]; - if(character.length > 15) - repairXP = character[15]; - if(character.length > 16) - unarmedXP = character[16]; - if(character.length > 17) - herbalismXP = character[17]; - if(character.length > 18) - excavationXP = character[18]; - if(character.length > 19) - archeryXP = character[19]; - if(character.length > 20) - swordsXP = character[20]; - if(character.length > 21) - axesXP = character[21]; - if(character.length > 22) - acrobaticsXP = character[22]; - if(character.length > 24) - taming = character[24]; - if(character.length > 25) - tamingXP = character[25]; - //Check to see if the user is in the DB - id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - //Prepare some variables - /* - if(myspawn != null && myspawn.length() > 0) - { - String[] split = myspawn.split(","); - x = split[0]; - y = split[1]; - z = split[2]; - } - */ - /* - if(myspawnworld.equals("") || myspawnworld == null) - myspawnworld = pluginx.getServer().getWorlds().get(0).toString(); - */ - if(id > 0) - { - theCount++; - //Update the skill values - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + 0 + " WHERE id = " + id); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - //if(getDouble(x) > 0 && getDouble(y) > 0 && getDouble(z) > 0) - //mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + myspawnworld + "', x = " +getDouble(x)+", y = "+getDouble(y)+", z = "+getDouble(z)+" WHERE user_id = "+id); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET " //$NON-NLS-1$ //$NON-NLS-2$ - +" taming = taming+"+getInt(taming) //$NON-NLS-1$ - +", mining = mining+"+getInt(mining) //$NON-NLS-1$ - +", repair = repair+"+getInt(repair) //$NON-NLS-1$ - +", woodcutting = woodcutting+"+getInt(woodcutting) //$NON-NLS-1$ - +", unarmed = unarmed+"+getInt(unarmed) //$NON-NLS-1$ - +", herbalism = herbalism+"+getInt(herbalism) //$NON-NLS-1$ - +", excavation = excavation+"+getInt(excavation) //$NON-NLS-1$ - +", archery = archery+" +getInt(archery) //$NON-NLS-1$ - +", swords = swords+" +getInt(swords) //$NON-NLS-1$ - +", axes = axes+"+getInt(axes) //$NON-NLS-1$ - +", acrobatics = acrobatics+"+getInt(acrobatics) //$NON-NLS-1$ - +" WHERE user_id = "+id); //$NON-NLS-1$ - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET " //$NON-NLS-1$ //$NON-NLS-2$ - +" taming = "+getInt(tamingXP) //$NON-NLS-1$ - +", mining = "+getInt(miningXP) //$NON-NLS-1$ - +", repair = "+getInt(repairXP) //$NON-NLS-1$ - +", woodcutting = "+getInt(woodCuttingXP) //$NON-NLS-1$ - +", unarmed = "+getInt(unarmedXP) //$NON-NLS-1$ - +", herbalism = "+getInt(herbalismXP) //$NON-NLS-1$ - +", excavation = "+getInt(excavationXP) //$NON-NLS-1$ - +", archery = " +getInt(archeryXP) //$NON-NLS-1$ - +", swords = " +getInt(swordsXP) //$NON-NLS-1$ - +", axes = "+getInt(axesXP) //$NON-NLS-1$ - +", acrobatics = "+getInt(acrobaticsXP) //$NON-NLS-1$ - +" WHERE user_id = "+id); //$NON-NLS-1$ - } - else - { - theCount++; - //Create the user in the DB - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"users (user, lastlogin) VALUES ('" + playerName + "'," + System.currentTimeMillis() / 1000 +")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"spawn (user_id) VALUES ("+id+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"skills (user_id) VALUES ("+id+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"experience (user_id) VALUES ("+id+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - //Update the skill values - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + 0 + " WHERE id = " + id); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+party+"' WHERE id = " +id); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - /* - if(getDouble(x) > 0 && getDouble(y) > 0 && getDouble(z) > 0) - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + myspawnworld + "', x = " +getDouble(x)+", y = "+getDouble(y)+", z = "+getDouble(z)+" WHERE user_id = "+id); - */ - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET " //$NON-NLS-1$ //$NON-NLS-2$ - +" taming = "+getInt(taming) //$NON-NLS-1$ - +", mining = "+getInt(mining) //$NON-NLS-1$ - +", repair = "+getInt(repair) //$NON-NLS-1$ - +", woodcutting = "+getInt(woodcutting) //$NON-NLS-1$ - +", unarmed = "+getInt(unarmed) //$NON-NLS-1$ - +", herbalism = "+getInt(herbalism) //$NON-NLS-1$ - +", excavation = "+getInt(excavation) //$NON-NLS-1$ - +", archery = " +getInt(archery) //$NON-NLS-1$ - +", swords = " +getInt(swords) //$NON-NLS-1$ - +", axes = "+getInt(axes) //$NON-NLS-1$ - +", acrobatics = "+getInt(acrobatics) //$NON-NLS-1$ - +" WHERE user_id = "+id); //$NON-NLS-1$ - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET " //$NON-NLS-1$ //$NON-NLS-2$ - +" taming = "+getInt(tamingXP) //$NON-NLS-1$ - +", mining = "+getInt(miningXP) //$NON-NLS-1$ - +", repair = "+getInt(repairXP) //$NON-NLS-1$ - +", woodcutting = "+getInt(woodCuttingXP) //$NON-NLS-1$ - +", unarmed = "+getInt(unarmedXP) //$NON-NLS-1$ - +", herbalism = "+getInt(herbalismXP) //$NON-NLS-1$ - +", excavation = "+getInt(excavationXP) //$NON-NLS-1$ - +", archery = " +getInt(archeryXP) //$NON-NLS-1$ - +", swords = " +getInt(swordsXP) //$NON-NLS-1$ - +", axes = "+getInt(axesXP) //$NON-NLS-1$ - +", acrobatics = "+getInt(acrobaticsXP) //$NON-NLS-1$ - +" WHERE user_id = "+id); //$NON-NLS-1$ - } - } - System.out.println("[mcMMO] MySQL Updated from users file, "+theCount+" items added/updated to MySQL DB"); //$NON-NLS-1$ //$NON-NLS-2$ - 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$ - } - } - public static void mmoHelpCheck(String[] split, Player player, PlayerChatEvent event){ - PlayerProfile PP = Users.getProfile(player); - if(split[0].equalsIgnoreCase("/taming") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillTaming").toLowerCase())){ //$NON-NLS-1$ - event.setCancelled(true); - float skillvalue = (float)PP.getSkill("taming"); - - String percentage = String.valueOf((skillvalue / 1000) * 100); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillTaming")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainTaming")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().taming(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("taming"), PP.getSkillToString("tamingXP"), PP.getXpToLevel("taming")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsTaming1_0"), Messages.getString("m.EffectsTaming1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsTaming2_0"), Messages.getString("m.EffectsTaming2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsTaming3_0"), Messages.getString("m.EffectsTaming3_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsTaming4_0"), Messages.getString("m.EffectsTaming4_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsTaming5_0"), Messages.getString("m.EffectsTaming5_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsTaming6_0"), Messages.getString("m.EffectsTaming6_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - if(PP.getSkill("taming") < 100) - player.sendMessage(Messages.getString("m.AbilityLockTemplate", new Object[] {Messages.getString("m.AbilLockTaming1")})); //$NON-NLS-1$ - else - player.sendMessage(Messages.getString("m.AbilityBonusTemplate", new Object[] {Messages.getString("m.AbilBonusTaming1_0"), Messages.getString("m.AbilBonusTaming1_1")})); //$NON-NLS-1$ - if(PP.getSkill("taming") < 250) - player.sendMessage(Messages.getString("m.AbilityLockTemplate", new Object[] {Messages.getString("m.AbilLockTaming2")})); //$NON-NLS-1$ - else - player.sendMessage(Messages.getString("m.AbilityBonusTemplate", new Object[] {Messages.getString("m.AbilBonusTaming2_0"), Messages.getString("m.AbilBonusTaming2_1")})); //$NON-NLS-1$ - if(PP.getSkill("taming") < 500) - player.sendMessage(Messages.getString("m.AbilityLockTemplate", new Object[] {Messages.getString("m.AbilLockTaming3")})); //$NON-NLS-1$ - else - player.sendMessage(Messages.getString("m.AbilityBonusTemplate", new Object[] {Messages.getString("m.AbilBonusTaming3_0"), Messages.getString("m.AbilBonusTaming3_1")})); //$NON-NLS-1$ - if(PP.getSkill("taming") < 750) - player.sendMessage(Messages.getString("m.AbilityLockTemplate", new Object[] {Messages.getString("m.AbilLockTaming4")})); //$NON-NLS-1$ - else - player.sendMessage(Messages.getString("m.AbilityBonusTemplate", new Object[] {Messages.getString("m.AbilBonusTaming4_0"), Messages.getString("m.AbilBonusTaming4_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.TamingGoreChance", new Object[] {percentage})); //$NON-NLS-1$ - } - if(split[0].equalsIgnoreCase("/woodcutting") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillWoodCutting").toLowerCase())){ //$NON-NLS-1$ - event.setCancelled(true); - float skillvalue = (float)PP.getSkill("woodcutting"); - int ticks = 2; - int x = PP.getSkill("woodcutting"); - while(x >= 50){ - x-=50; - ticks++; - } - String percentage = String.valueOf((skillvalue / 1000) * 100); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillWoodCutting")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainWoodCutting")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().woodcutting(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("woodcutting"), PP.getSkillToString("woodcuttingXP"), PP.getXpToLevel("woodcutting")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsWoodCutting1_0"), Messages.getString("m.EffectsWoodCutting1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsWoodCutting2_0"), Messages.getString("m.EffectsWoodCutting2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsWoodCutting3_0"), Messages.getString("m.EffectsWoodCutting3_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - if(PP.getSkill("woodcutting") < 100) - player.sendMessage(Messages.getString("m.AbilityLockTemplate", new Object[] {Messages.getString("m.AbilLockWoodCutting1")})); //$NON-NLS-1$ - else - player.sendMessage(Messages.getString("m.AbilityBonusTemplate", new Object[] {Messages.getString("m.AbilBonusWoodCutting1_0"), Messages.getString("m.AbilBonusWoodCutting1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.WoodCuttingDoubleDropChance", new Object[] {percentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.WoodCuttingTreeFellerLength", new Object[] {ticks})); //$NON-NLS-1$ - } - if(split[0].equalsIgnoreCase("/archery") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillArchery").toLowerCase())){ //$NON-NLS-1$ - event.setCancelled(true); - Integer rank = 0; - if(PP.getSkill("archery") >= 50) - rank++; - if(PP.getSkill("archery") >= 250) - rank++; - if(PP.getSkill("archery") >= 575) - rank++; - if(PP.getSkill("archery") >= 725) - rank++; - if(PP.getSkill("archery") >= 1000) - rank++; - float skillvalue = (float)PP.getSkill("archery"); - String percentage = String.valueOf((skillvalue / 1000) * 100); - - int ignition = 20; - if(PP.getSkill("archery") >= 200) - ignition+=20; - if(PP.getSkill("archery") >= 400) - ignition+=20; - if(PP.getSkill("archery") >= 600) - ignition+=20; - if(PP.getSkill("archery") >= 800) - ignition+=20; - if(PP.getSkill("archery") >= 1000) - ignition+=20; - - String percentagedaze; - if(PP.getSkill("archery") < 1000){ - percentagedaze = String.valueOf((skillvalue / 2000) * 100); - } else { - percentagedaze = "50"; //$NON-NLS-1$ - } - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillArchery")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainArchery")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().archery(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("archery"), PP.getSkillToString("archeryXP"), PP.getXpToLevel("archery")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsArchery1_0"), Messages.getString("m.EffectsArchery1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsArchery2_0"), Messages.getString("m.EffectsArchery2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsArchery3_0"), Messages.getString("m.EffectsArchery3_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsArchery4_0"), Messages.getString("m.EffectsArchery4_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.ArcheryDazeChance", new Object[] {percentagedaze})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.ArcheryRetrieveChance", new Object[] {percentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.ArcheryIgnitionLength", new Object[] {(ignition / 20)})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.ArcheryDamagePlus", new Object[] {rank})); //$NON-NLS-1$ - } - if(split[0].equalsIgnoreCase("/axes") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillAxes"))){ //$NON-NLS-1$ - event.setCancelled(true); - String percentage; - float skillvalue = (float)PP.getSkill("axes"); - if(PP.getSkill("axes") < 750){ - percentage = String.valueOf((skillvalue / 1000) * 100); - } else { - percentage = "75"; //$NON-NLS-1$ - } - int ticks = 2; - int x = PP.getSkill("axes"); - while(x >= 50){ - x-=50; - ticks++; - } - - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillAxes")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainAxes")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().axes(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("axes"), PP.getSkillToString("axesXP"), PP.getXpToLevel("axes")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsAxes1_0"), Messages.getString("m.EffectsAxes1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsAxes2_0"), Messages.getString("m.EffectsAxes2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsAxes3_0"), Messages.getString("m.EffectsAxes3_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.AxesCritChance", new Object[] {percentage})); //$NON-NLS-1$ - if(PP.getSkill("axes") < 500){ - player.sendMessage(Messages.getString("m.AbilityLockTemplate", new Object[] {Messages.getString("m.AbilLockAxes1")})); //$NON-NLS-1$ - } else { - player.sendMessage(Messages.getString("m.AbilityBonusTemplate", new Object[] {Messages.getString("m.AbilBonusAxes1_0"), Messages.getString("m.AbilBonusAxes1_1")})); //$NON-NLS-1$ - } - player.sendMessage(Messages.getString("m.AxesSkullLength", new Object[] {ticks})); //$NON-NLS-1$ - } - if(split[0].equalsIgnoreCase("/swords") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillSwords").toLowerCase())){ //$NON-NLS-1$ - event.setCancelled(true); - int bleedrank = 2; - String percentage, parrypercentage = null, counterattackpercentage; - float skillvalue = (float)PP.getSkill("swords"); - if(PP.getSkill("swords") < 750){ - percentage = String.valueOf((skillvalue / 1000) * 100); - } else { - percentage = "75"; //$NON-NLS-1$ - } - if(skillvalue >= 750) - bleedrank+=1; - - if(PP.getSkill("swords") <= 900){ - parrypercentage = String.valueOf((skillvalue / 3000) * 100); - } else { - parrypercentage = "30"; //$NON-NLS-1$ - } - - if(PP.getSkill("swords") <= 600){ - counterattackpercentage = String.valueOf((skillvalue / 2000) * 100); - } else { - counterattackpercentage = "30"; //$NON-NLS-1$ - } - - int ticks = 2; - int x = PP.getSkill("swords"); - while(x >= 50){ - x-=50; - ticks++; - } - - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillSwords")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainSwords")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().swords(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("swords"), PP.getSkillToString("swordsXP"), PP.getXpToLevel("swords")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsSwords1_0"), Messages.getString("m.EffectsSwords1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsSwords2_0"), Messages.getString("m.EffectsSwords2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsSwords3_0"), Messages.getString("m.EffectsSwords3_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsSwords4_0"), Messages.getString("m.EffectsSwords4_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsSwords5_0"), Messages.getString("m.EffectsSwords5_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SwordsCounterAttChance", new Object[] {counterattackpercentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SwordsBleedLength", new Object[] {bleedrank})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SwordsTickNote")); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SwordsBleedLength", new Object[] {percentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SwordsParryChance", new Object[] {parrypercentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SwordsSSLength", new Object[] {ticks})); //$NON-NLS-1$ - - } - if(split[0].equalsIgnoreCase("/acrobatics") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillAcrobatics").toLowerCase())){ //$NON-NLS-1$ - event.setCancelled(true); - String dodgepercentage; - float skillvalue = (float)PP.getSkill("acrobatics"); - String percentage = String.valueOf((skillvalue / 1000) * 100); - String gracepercentage = String.valueOf(((skillvalue / 1000) * 100) * 2); - if(PP.getSkill("acrobatics") <= 800){ - dodgepercentage = String.valueOf((skillvalue / 4000 * 100)); - } else { - dodgepercentage = "20"; - } - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillAcrobatics")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainAcrobatics")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().acrobatics(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("acrobatics"), PP.getSkillToString("acrobaticsXP"), PP.getXpToLevel("acrobatics")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsAcrobatics1_0"), Messages.getString("m.EffectsAcrobatics1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsAcrobatics2_0"), Messages.getString("m.EffectsAcrobatics2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsAcrobatics3_0"), Messages.getString("m.EffectsAcrobatics3_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.AcrobaticsRollChance", new Object[] {percentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.AcrobaticsGracefulRollChance", new Object[] {gracepercentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.AcrobaticsDodgeChance", new Object[] {dodgepercentage})); //$NON-NLS-1$ - } - if(split[0].equalsIgnoreCase("/mining") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillMining"))){ //$NON-NLS-1$ - float skillvalue = (float)PP.getSkill("mining"); - String percentage = String.valueOf((skillvalue / 1000) * 100); - int ticks = 2; - int x = PP.getSkill("mining"); - while(x >= 50){ - x-=50; - ticks++; - } - event.setCancelled(true); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillMining")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainMining")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().mining(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("mining"), PP.getSkillToString("miningXP"), PP.getXpToLevel("mining")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsMining1_0"), Messages.getString("m.EffectsMining1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsMining2_0"), Messages.getString("m.EffectsMining2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.MiningDoubleDropChance", new Object[] {percentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.MiningSuperBreakerLength", new Object[] {ticks})); //$NON-NLS-1$ - } - if(split[0].equalsIgnoreCase("/repair") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillRepair").toLowerCase())){ //$NON-NLS-1$ - float skillvalue = (float)PP.getSkill("repair"); - String percentage = String.valueOf((skillvalue / 1000) * 100); - String repairmastery = String.valueOf((skillvalue / 500) * 100); - event.setCancelled(true); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillRepair")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainRepair")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().repair(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("repair"), PP.getSkillToString("repairXP"), PP.getXpToLevel("repair")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsRepair1_0"), Messages.getString("m.EffectsRepair1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsRepair2_0"), Messages.getString("m.EffectsRepair2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsRepair3_0"), Messages.getString("m.EffectsRepair3_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsRepair4_0", new Object[]{LoadProperties.repairdiamondlevel}), Messages.getString("m.EffectsRepair4_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.RepairRepairMastery", new Object[] {repairmastery})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.RepairSuperRepairChance", new Object[] {percentage})); //$NON-NLS-1$ - } - if(split[0].equalsIgnoreCase("/unarmed")){ //$NON-NLS-1$ - event.setCancelled(true); - String percentage, arrowpercentage; - float skillvalue = (float)PP.getSkill("unarmed"); - - if(PP.getSkill("unarmed") < 1000){ - percentage = String.valueOf((skillvalue / 4000) * 100); - } else { - percentage = "25"; //$NON-NLS-1$ - } - - if(PP.getSkill("unarmed") < 1000){ - arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2); - } else { - arrowpercentage = "50"; //$NON-NLS-1$ - } - - - int ticks = 2; - int x = PP.getSkill("unarmed"); - while(x >= 50){ - x-=50; - ticks++; - } - - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillUnarmed")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainUnarmed")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().unarmed(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("unarmed"), PP.getSkillToString("unarmedXP"), PP.getXpToLevel("unarmed")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsUnarmed1_0"), Messages.getString("m.EffectsUnarmed1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsUnarmed2_0"), Messages.getString("m.EffectsUnarmed2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsUnarmed3_0"), Messages.getString("m.EffectsUnarmed3_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsUnarmed4_0"), Messages.getString("m.EffectsUnarmed4_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsUnarmed5_0"), Messages.getString("m.EffectsUnarmed5_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.UnarmedArrowDeflectChance", new Object[] {arrowpercentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.UnarmedDisarmChance", new Object[] {percentage})); //$NON-NLS-1$ - if(PP.getSkill("unarmed") < 250){ - player.sendMessage(Messages.getString("m.AbilityLockTemplate", new Object[] {Messages.getString("m.AbilLockUnarmed1")})); //$NON-NLS-1$ - } else if(PP.getSkill("unarmed") >= 250 && PP.getSkill("unarmed") < 500){ - player.sendMessage(Messages.getString("m.AbilityBonusTemplate", new Object[] {Messages.getString("m.AbilBonusUnarmed1_0"), Messages.getString("m.AbilBonusUnarmed1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.AbilityLockTemplate", new Object[] {Messages.getString("m.AbilLockUnarmed2")})); //$NON-NLS-1$ - } else { - player.sendMessage(Messages.getString("m.AbilityBonusTemplate", new Object[] {Messages.getString("m.AbilBonusUnarmed2_0"), Messages.getString("m.AbilBonusUnarmed2_1")})); //$NON-NLS-1$ - } - player.sendMessage(Messages.getString("m.UnarmedBerserkLength", new Object[] {ticks})); //$NON-NLS-1$ - } - if(split[0].equalsIgnoreCase("/herbalism") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillHerbalism").toLowerCase())){ //$NON-NLS-1$ - event.setCancelled(true); - int rank = 0; - if(PP.getSkill("herbalism") >= 50) - rank++; - if (PP.getSkill("herbalism") >= 150) - rank++; - if (PP.getSkill("herbalism") >= 250) - rank++; - if (PP.getSkill("herbalism") >= 350) - rank++; - if (PP.getSkill("herbalism") >= 450) - rank++; - if (PP.getSkill("herbalism") >= 550) - rank++; - if (PP.getSkill("herbalism") >= 650) - rank++; - if (PP.getSkill("herbalism") >= 750) - rank++; - int bonus = 0; - if(PP.getSkill("herbalism") >= 200) - bonus++; - if(PP.getSkill("herbalism") >= 400) - bonus++; - if(PP.getSkill("herbalism") >= 600) - bonus++; - - int ticks = 2; - int x = PP.getSkill("herbalism"); - while(x >= 50){ - x-=50; - ticks++; - } - - float skillvalue = (float)PP.getSkill("herbalism"); - String percentage = String.valueOf((skillvalue / 1000) * 100); - String gpercentage = String.valueOf((skillvalue / 1500) * 100); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillHerbalism")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainHerbalism")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().herbalism(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("herbalism"), PP.getSkillToString("herbalismXP"), PP.getXpToLevel("herbalism")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsHerbalism1_0"), Messages.getString("m.EffectsHerbalism1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsHerbalism2_0"), Messages.getString("m.EffectsHerbalism2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsHerbalism3_0"), Messages.getString("m.EffectsHerbalism3_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsHerbalism4_0"), Messages.getString("m.EffectsHerbalism4_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsHerbalism5_0"), Messages.getString("m.EffectsHerbalism5_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.HerbalismGreenTerraLength", new Object[] {ticks})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.HerbalismGreenThumbChance", new Object[] {gpercentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.HerbalismGreenThumbStage", new Object[] {bonus})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.HerbalismDoubleDropChance", new Object[] {percentage})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.HerbalismFoodPlus", new Object[] {rank})); //$NON-NLS-1$ - } - - if(split[0].equalsIgnoreCase("/excavation") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillExcavation").toLowerCase())) //$NON-NLS-1$ - { - event.setCancelled(true); - int ticks = 2; - int x = PP.getSkill("excavation"); - while(x >= 50){ - x-=50; - ticks++; - } - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillExcavation")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainExcavation")})); //$NON-NLS-1$ - if(mcPermissions.getInstance().excavation(player)) - player.sendMessage(Messages.getString("m.LVL", new Object[] {PP.getSkillToString("excavation"), PP.getSkillToString("excavationXP"), PP.getXpToLevel("excavation")})); - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsExcavation1_0"), Messages.getString("m.EffectsExcavation1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsExcavation2_0"), Messages.getString("m.EffectsExcavation2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.ExcavationGreenTerraLength", new Object[] {ticks})); //$NON-NLS-1$ - } - - if(split[0].equalsIgnoreCase("/sorcery") || split[0].toLowerCase().equalsIgnoreCase("/"+Messages.getString("m.SkillSorcery").toLowerCase())) //$NON-NLS-1$ - { - event.setCancelled(true); - - /* - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.SkillExcavation")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.XPGain", new Object[] {Messages.getString("m.XPGainExcavation")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.Effects")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsExcavation1_0"), Messages.getString("m.EffectsExcavation1_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.EffectsTemplate", new Object[] {Messages.getString("m.EffectsExcavation2_0"), Messages.getString("m.EffectsExcavation2_1")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.SkillHeader", new Object[] {Messages.getString("m.YourStats")})); //$NON-NLS-1$ - player.sendMessage(Messages.getString("m.ExcavationGreenTerraLength", new Object[] {ticks})); //$NON-NLS-1$ - */ - } - - if(LoadProperties.mcmmoEnable && split[0].equalsIgnoreCase("/"+LoadProperties.mcmmo)){ - event.setCancelled(true); - player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"mMO"+ChatColor.RED+"[]-----"); - player.sendMessage(ChatColor.YELLOW+"mcMMO is an RPG server mod for minecraft."); - player.sendMessage(ChatColor.YELLOW+"There are many skills added by mcMMO to minecraft."); - player.sendMessage(ChatColor.YELLOW+"They can do anything from giving a chance"); - player.sendMessage(ChatColor.YELLOW+"for double drops to letting you break materials instantly."); - player.sendMessage(ChatColor.YELLOW+"For example, by harvesting logs from trees you will gain"); - player.sendMessage(ChatColor.YELLOW+"Woodcutting xp and once you have enough xp you will gain"); - player.sendMessage(ChatColor.YELLOW+"a skill level in Woodcutting. By raising this skill you will"); - player.sendMessage(ChatColor.YELLOW+"be able to receive benefits like "+ChatColor.RED+"double drops"); - player.sendMessage(ChatColor.YELLOW+"and increase the effects of the "+ChatColor.RED+"\"Tree Felling\""+ChatColor.YELLOW+" ability."); - player.sendMessage(ChatColor.YELLOW+"mMO has abilities related to the skill, skills normally"); - player.sendMessage(ChatColor.YELLOW+"provide passive bonuses but they also have activated"); - player.sendMessage(ChatColor.YELLOW+"abilities too. Each ability is activated by holding"); - player.sendMessage(ChatColor.YELLOW+"the appropriate tool and "+ChatColor.RED+"right clicking."); - player.sendMessage(ChatColor.YELLOW+"For example, if you hold a Mining Pick and right click"); - player.sendMessage(ChatColor.YELLOW+"you will ready your Pickaxe, attack mining materials"); - player.sendMessage(ChatColor.YELLOW+"and then "+ChatColor.RED+"Super Breaker "+ChatColor.YELLOW+"will activate."); - player.sendMessage(ChatColor.GREEN+"Find out mcMMO commands with "+ChatColor.DARK_AQUA+"/"+LoadProperties.mcc); - player.sendMessage(ChatColor.GREEN+"You can donate via paypal to"+ChatColor.DARK_RED+" nossr50@gmail.com"); - } - if(LoadProperties.mccEnable && split[0].equalsIgnoreCase("/"+LoadProperties.mcc)){ - event.setCancelled(true); - player.sendMessage(ChatColor.RED+"---[]"+ChatColor.YELLOW+"mcMMO Commands"+ChatColor.RED+"[]---"); - if(mcPermissions.getInstance().party(player)){ - player.sendMessage(Messages.getString("m.mccPartyCommands")); - player.sendMessage("/"+LoadProperties.party+" "+Messages.getString("m.mccParty")); - player.sendMessage("/"+LoadProperties.party+" q "+Messages.getString("m.mccPartyQ")); - if(mcPermissions.getInstance().partyChat(player)) - player.sendMessage("/p "+Messages.getString("m.mccPartyToggle")); - player.sendMessage("/"+LoadProperties.invite+" "+Messages.getString("m.mccPartyInvite")); - player.sendMessage("/"+LoadProperties.accept+" "+Messages.getString("m.mccPartyAccept")); - if(mcPermissions.getInstance().partyTeleport(player)) - player.sendMessage("/"+LoadProperties.ptp+" "+Messages.getString("m.mccPartyTeleport")); - } - player.sendMessage(Messages.getString("m.mccOtherCommands")); - player.sendMessage("/"+LoadProperties.stats+ChatColor.RED+" "+Messages.getString("m.mccStats")); - player.sendMessage("/mctop "+ChatColor.RED+Messages.getString("m.mccLeaderboards")); - if(mcPermissions.getInstance().mySpawn(player)){ - player.sendMessage("/"+LoadProperties.myspawn+" "+ChatColor.RED+Messages.getString("m.mccMySpawn")); - player.sendMessage("/"+LoadProperties.clearmyspawn+" "+ChatColor.RED+Messages.getString("m.mccClearMySpawn")); - } - if(mcPermissions.getInstance().mcAbility(player)) - player.sendMessage("/"+LoadProperties.mcability+ChatColor.RED+" "+Messages.getString("m.mccToggleAbility")); - if(mcPermissions.getInstance().adminChat(player)){ - player.sendMessage("/a "+ChatColor.RED+Messages.getString("m.mccAdminToggle")); - } - if(mcPermissions.getInstance().whois(player)) - player.sendMessage("/"+LoadProperties.whois+" "+Messages.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+Messages.getString("m.mccMmoedit")); - } - if(mcPermissions.getInstance().mcgod(player)) - player.sendMessage("/"+LoadProperties.mcgod+ChatColor.RED+" "+Messages.getString("m.mccMcGod")); - player.sendMessage("/"+Messages.getString("m.mccSkillInfo")); - player.sendMessage("/"+LoadProperties.mcmmo+" "+Messages.getString("m.mccModDescription")); - } - } -} +package com.gmail.nossr50; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.*; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; + +import com.gmail.nossr50.config.*; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.FakeBlockBreakEvent; + +public class m +{ + public static final Logger log = Logger.getLogger("Minecraft"); + /* + * I'm storing my misc functions/methods in here in an unorganized manner. Spheal with it. + * This is probably the most embarrassing part of my code for mcMMO + * I really should find an organized place for these things! + */ + + //The lazy way to default to 0 + public static int getInt(String string) + { + if(isInt(string)) + { + return Integer.parseInt(string); + } + else + { + return 0; + } + } + + public static Double getDouble(String string) + { + if(isDouble(string)) + { + return Double.parseDouble(string); + } + else + { + return (double) 0; + } + } + + public static boolean isDouble(String string) + { + try + { + Double.parseDouble(string); + } + catch(NumberFormatException nFE) { + return false; + } + return true; + } + + public static boolean shouldBeWatched(Block block) + { + int id = block.getTypeId(); + if(id == 49 || id == 81 || id == 83 || id == 86 || id == 91 || id == 1 || id == 17 || id == 42 || id == 87 || id == 89 || id == 2 || id == 3 || id == 12 || id == 13 || id == 21 || id == 15 || id == 14 || id == 56 || id == 38 || id == 37 || id == 39 || id == 40 || id == 24){ + return true; + } else { + return false; + } + } + public static int getPowerLevel(Player player) + { + PlayerProfile PP = Users.getProfile(player); + int x = 0; + if(mcPermissions.getInstance().mining(player)) + x+=PP.getSkill("mining"); + if(mcPermissions.getInstance().woodcutting(player)) + x+=PP.getSkill("woodcutting"); + if(mcPermissions.getInstance().unarmed(player)) + x+=PP.getSkill("unarmed"); + if(mcPermissions.getInstance().herbalism(player)) + x+=PP.getSkill("herbalism"); + if(mcPermissions.getInstance().excavation(player)) + x+=PP.getSkill("excavation"); + if(mcPermissions.getInstance().archery(player)) + x+=PP.getSkill("archery"); + if(mcPermissions.getInstance().swords(player)) + x+=PP.getSkill("swords"); + if(mcPermissions.getInstance().axes(player)) + x+=PP.getSkill("axes"); + if(mcPermissions.getInstance().acrobatics(player)) + x+=PP.getSkill("acrobatics"); + if(mcPermissions.getInstance().repair(player)) + x+=PP.getSkill("repair"); + return x; + } + + public static boolean blockBreakSimulate(Block block, Player player, Plugin plugin) + { + + FakeBlockBreakEvent event = new FakeBlockBreakEvent(block, player); + if(block != null && plugin != null && player != null){ + plugin.getServer().getPluginManager().callEvent(event); + if(!event.isCancelled()) + { + return true; //Return true if not cancelled + } else { + return false; //Return false if cancelled + } + } else { + return false; //Return false if something went wrong + } + } + + public static void damageTool(Player player, short damage) + { + if(player.getItemInHand().getTypeId() == 0) + return; + player.getItemInHand().setDurability((short) (player.getItemInHand().getDurability() + damage)); + if(player.getItemInHand().getDurability() >= getMaxDurability(getTier(player), player.getItemInHand())) + { + ItemStack[] inventory = player.getInventory().getContents(); + for(ItemStack x : inventory) + { + if(x != null && x.getTypeId() == player.getItemInHand().getTypeId() && x.getDurability() == player.getItemInHand().getDurability()){ + x.setTypeId(0); + x.setAmount(0); + player.getInventory().setContents(inventory); + return; + } + } + } + } + public static Integer getTier(Player player){ + int i = player.getItemInHand().getTypeId(); + if(i == 268 || i == 269 || i == 270 || i == 271 || i == 290){ + return 1; //WOOD + } else if (i == 272 || i == 273 || i == 274 || i == 275 || i == 291){ + return 2; //STONE + } else if (i == 256 || i == 257 || i == 258 || i == 267 || i == 292){ + return 3; //IRON + } else if (i == 283 || i == 284 || i == 285 || i == 286 || i == 294){ + return 1; //GOLD + } else if (i == 276 || i == 277 || i == 278 || i == 279 || i == 293){ + return 4; //DIAMOND + } else { + return 1; //UNRECOGNIZED + } + } + public static Integer getMaxDurability(Integer tier, ItemStack item){ + int id = item.getTypeId(); + if(tier == 1){ + if((id == 276 || id == 277 || id == 278 || id == 279 || id == 293)){ + return 33; + } else { + return 60; + } + } else if (tier == 2){ + return 132; + } else if (tier == 3){ + return 251; + } else if (tier == 4){ + return 1562; + } else { + return 0; + } + } + + public static double getDistance(Location loca, Location locb) + { + return Math.sqrt(Math.pow(loca.getX() - locb.getX(), 2) + Math.pow(loca.getY() - locb.getY(), 2) + + Math.pow(loca.getZ() - locb.getZ(), 2)); + } + + public static boolean abilityBlockCheck(Block block) + { + int i = block.getTypeId(); + if(i == 96 || i == 68 || i == 355 || i == 26 || i == 323 || i == 25 || i == 54 || i == 69 || i == 92 || i == 77 || i == 58 || i == 61 || i == 62 || i == 42 || i == 71 || i == 64 || i == 84 || i == 324 || i == 330){ + return false; + } else { + return true; + } + } + + public static boolean isBlockAround(Location loc, Integer radius, Integer typeid) + { + Block blockx = loc.getBlock(); + int ox = blockx.getX(); + int oy = blockx.getY(); + int oz = blockx.getZ(); + for (int cx = -radius; cx <= radius; cx++) { + for (int cy = -radius; cy <= radius; cy++) { + for (int cz = -radius; cz <= radius; cz++) { + Block block = loc.getWorld().getBlockAt(ox + cx, oy + cy, oz + cz); + if (block.getTypeId() == typeid) { + return true; + } + } + } + } + return false; + } + + public static Integer calculateHealth(Integer health, Integer newvalue){ + if((health + newvalue) > 20){ + return 20; + } else { + return health+newvalue; + } + } + public Integer calculateMinusHealth(Integer health, Integer newvalue){ + if((health - newvalue) < 1){ + return 0; + } else { + return health-newvalue; + } + } + public static boolean isInt(String string){ + try + { + Integer.parseInt(string); + } + catch(NumberFormatException nFE) + { + return false; + } + return true; + } + public static void mcDropItem(Location loc, int id){ + if(loc != null){ + Material mat = Material.getMaterial(id); + byte damage = 0; + ItemStack item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + } + } + + public static boolean isSwords(ItemStack is){ + if(is.getTypeId() == 268 || is.getTypeId() == 267 || is.getTypeId() == 272 || is.getTypeId() == 283 || is.getTypeId() == 276){ + return true; + } else { + return false; + } + } + public static boolean isHoe(ItemStack is){ + int id = is.getTypeId(); + if(id == 290 || id == 291 || id == 292 || id == 293 || id == 294){ + return true; + } else { + return false; + } + } + public static boolean isShovel(ItemStack is){ + if(is.getTypeId() == 269 || is.getTypeId() == 273 || is.getTypeId() == 277 || is.getTypeId() == 284 || is.getTypeId() == 256){ + return true; + } else { + return false; + } + } + public static boolean isAxes(ItemStack is){ + if(is.getTypeId() == 271 || is.getTypeId() == 258 || is.getTypeId() == 286 || is.getTypeId() == 279 || is.getTypeId() == 275){ + return true; + } else { + return false; + } + } + public static boolean isMiningPick(ItemStack is) + { + if(is.getTypeId() == 270 || is.getTypeId() == 274 || is.getTypeId() == 285 || is.getTypeId() == 257 || is.getTypeId() == 278) + { + return true; + } else { + return false; + } + } + public boolean isGold(ItemStack is) + { + int i = is.getTypeId(); + if(i == 283 || i == 284 || i == 285 || i == 286 || i == 294 || i == 314 || i == 315 || i == 316 || i == 317){ + return true; + } else { + return false; + } + } + public static void convertToMySQL(Plugin pluginx) + { + if(!LoadProperties.useMySQL) + return; + String location = "plugins/mcMMO/mcmmo.users"; + try { + //Open the user file + FileReader file = new FileReader(location); + BufferedReader in = new BufferedReader(file); + String line = ""; + String playerName = null, mining = null, party = null, miningXP = null, woodcutting = null, woodCuttingXP = null, repair = null, unarmed = null, herbalism = null, + excavation = null, archery = null, swords = null, axes = null, acrobatics = null, repairXP = null, unarmedXP = null, herbalismXP = null, excavationXP = null, archeryXP = null, swordsXP = null, axesXP = null, + acrobaticsXP = null, taming = null, tamingXP = null; + int id = 0, theCount = 0; + while((line = in.readLine()) != null) + { + //Find if the line contains the player we want. + String[] character = line.split(":"); + playerName = character[0]; + //Check for things we don't want put in the DB + if(playerName == null || playerName.equals("null") || playerName.equals("#Storage place for user information")) + continue; + + //Get Mining + if(character.length > 1) + mining = character[1]; + //Party + if(character.length > 3) + party = character[3]; + //Mining XP + if(character.length > 4) + miningXP = character[4]; + if(character.length > 5) + woodcutting = character[5]; + if(character.length > 6) + woodCuttingXP = character[6]; + if(character.length > 7) + repair = character[7]; + if(character.length > 8) + unarmed = character[8]; + if(character.length > 9) + herbalism = character[9]; + if(character.length > 10) + excavation = character[10]; + if(character.length > 11) + archery = character[11]; + if(character.length > 12) + swords = character[12]; + if(character.length > 13) + axes = character[13]; + if(character.length > 14) + acrobatics = character[14]; + if(character.length > 15) + repairXP = character[15]; + if(character.length > 16) + unarmedXP = character[16]; + if(character.length > 17) + herbalismXP = character[17]; + if(character.length > 18) + excavationXP = character[18]; + if(character.length > 19) + archeryXP = character[19]; + if(character.length > 20) + swordsXP = character[20]; + if(character.length > 21) + axesXP = character[21]; + if(character.length > 22) + acrobaticsXP = character[22]; + if(character.length > 24) + taming = character[24]; + if(character.length > 25) + tamingXP = character[25]; + //Check to see if the user is in the DB + id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); + //Prepare some variables + /* + if(myspawn != null && myspawn.length() > 0) + { + String[] split = myspawn.split(","); + x = split[0]; + y = split[1]; + z = split[2]; + } + */ + /* + if(myspawnworld.equals("") || myspawnworld == null) + myspawnworld = pluginx.getServer().getWorlds().get(0).toString(); + */ + if(id > 0) + { + theCount++; + //Update the skill values + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + 0 + " WHERE id = " + id); + //if(getDouble(x) > 0 && getDouble(y) > 0 && getDouble(z) > 0) + //mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + myspawnworld + "', x = " +getDouble(x)+", y = "+getDouble(y)+", z = "+getDouble(z)+" WHERE user_id = "+id); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET " + +" taming = taming+"+getInt(taming) + +", mining = mining+"+getInt(mining) + +", repair = repair+"+getInt(repair) + +", woodcutting = woodcutting+"+getInt(woodcutting) + +", unarmed = unarmed+"+getInt(unarmed) + +", herbalism = herbalism+"+getInt(herbalism) + +", excavation = excavation+"+getInt(excavation) + +", archery = archery+" +getInt(archery) + +", swords = swords+" +getInt(swords) + +", axes = axes+"+getInt(axes) + +", acrobatics = acrobatics+"+getInt(acrobatics) + +" WHERE user_id = "+id); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET " + +" taming = "+getInt(tamingXP) + +", mining = "+getInt(miningXP) + +", repair = "+getInt(repairXP) + +", woodcutting = "+getInt(woodCuttingXP) + +", unarmed = "+getInt(unarmedXP) + +", herbalism = "+getInt(herbalismXP) + +", excavation = "+getInt(excavationXP) + +", archery = " +getInt(archeryXP) + +", swords = " +getInt(swordsXP) + +", axes = "+getInt(axesXP) + +", acrobatics = "+getInt(acrobaticsXP) + +" WHERE user_id = "+id); + } + else + { + theCount++; + //Create the user in the DB + mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"users (user, lastlogin) VALUES ('" + playerName + "'," + System.currentTimeMillis() / 1000 +")"); + id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); + mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"spawn (user_id) VALUES ("+id+")"); + mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"skills (user_id) VALUES ("+id+")"); + mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"experience (user_id) VALUES ("+id+")"); + //Update the skill values + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + 0 + " WHERE id = " + id); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+party+"' WHERE id = " +id); + /* + if(getDouble(x) > 0 && getDouble(y) > 0 && getDouble(z) > 0) + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + myspawnworld + "', x = " +getDouble(x)+", y = "+getDouble(y)+", z = "+getDouble(z)+" WHERE user_id = "+id); + */ + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET " + +" taming = "+getInt(taming) + +", mining = "+getInt(mining) + +", repair = "+getInt(repair) + +", woodcutting = "+getInt(woodcutting) + +", unarmed = "+getInt(unarmed) + +", herbalism = "+getInt(herbalism) + +", excavation = "+getInt(excavation) + +", archery = " +getInt(archery) + +", swords = " +getInt(swords) + +", axes = "+getInt(axes) + +", acrobatics = "+getInt(acrobatics) + +" WHERE user_id = "+id); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET " + +" taming = "+getInt(tamingXP) + +", mining = "+getInt(miningXP) + +", repair = "+getInt(repairXP) + +", woodcutting = "+getInt(woodCuttingXP) + +", unarmed = "+getInt(unarmedXP) + +", herbalism = "+getInt(herbalismXP) + +", excavation = "+getInt(excavationXP) + +", archery = " +getInt(archeryXP) + +", swords = " +getInt(swordsXP) + +", axes = "+getInt(axesXP) + +", acrobatics = "+getInt(acrobaticsXP) + +" WHERE user_id = "+id); + } + } + System.out.println("[mcMMO] MySQL Updated from users file, "+theCount+" items added/updated to MySQL DB"); + in.close(); + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while reading " + + location + " (Are you sure you formatted it correctly?)", e); + } + } +} diff --git a/mcMMO/com/gmail/nossr50/mcMMO.java b/mcMMO/com/gmail/nossr50/mcMMO.java index 75b938319..e74ce68f1 100644 --- a/mcMMO/com/gmail/nossr50/mcMMO.java +++ b/mcMMO/com/gmail/nossr50/mcMMO.java @@ -1,228 +1,1375 @@ -package com.gmail.nossr50; - -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.config.*; -import com.gmail.nossr50.skills.*; -import com.nijikokun.bukkit.Permissions.Permissions; -import com.nijiko.Messaging; -import com.nijiko.permissions.PermissionHandler; -import org.bukkit.plugin.Plugin; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.ArrayList; -import java.util.Timer; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.Event; -import org.bukkit.plugin.PluginDescriptionFile; -import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.plugin.PluginManager; -import org.bukkit.entity.Player; - - -public class mcMMO extends JavaPlugin -{ - public static String maindirectory = "plugins/mcMMO/"; //$NON-NLS-1$ - File file = new File(maindirectory + File.separator + "config.yml"); - public static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$ - private final mcPlayerListener playerListener = new mcPlayerListener(this); - private final mcBlockListener blockListener = new mcBlockListener(this); - private final mcEntityListener entityListener = new mcEntityListener(this); - private final String name = "mcMMO"; //$NON-NLS-1$ - public static PermissionHandler PermissionsHandler = null; - private Permissions permissions; - - //PERFORMANCE DEBUG STUFF - public long onPlayerRespawn=0, onPlayerQuit=0, onPlayerLogin=0, onPlayerInteract=0,onPlayerJoin=0, onPlayerCommandPreprocess=0, onPlayerChat=0, onBlockDamage=0, onBlockBreak=0, onBlockFromTo=0, onBlockPlace=0, - onEntityTarget=0, onEntityDeath=0, onEntityDamage=0, onCreatureSpawn=0, bleedSimulation=0, mcTimerx=0; - - public void printDelays() - { - log.log(Level.INFO,"####mcMMO PERFORMANCE REPORT####"); - log.log(Level.INFO,"[These are the cumulative milliseconds mcMMO has lagged in the last 40 seconds]"); - log.log(Level.INFO,"[1000ms = 1 second, lower is better]"); - - log.log(Level.INFO,"onPlayerRespawn: "+onPlayerRespawn+"ms"); - log.log(Level.INFO,"onPlayerQuit: "+onPlayerQuit+"ms"); - log.log(Level.INFO,"onPlayerLogin: "+onPlayerLogin+"ms"); - log.log(Level.INFO,"onPlayerInteract: "+onPlayerInteract+"ms"); - log.log(Level.INFO,"onPlayerJoin: "+onPlayerJoin+"ms"); - log.log(Level.INFO,"onPlayerCommandPreProcess: "+onPlayerCommandPreprocess+"ms"); - log.log(Level.INFO,"onPlayerChat: "+onPlayerChat+"ms"); - - log.log(Level.INFO,"onBlockDamage: "+onBlockDamage+"ms"); - log.log(Level.INFO,"onBlockBreak: "+onBlockBreak+"ms"); - log.log(Level.INFO,"onBlockFromTo: "+onBlockFromTo+"ms"); - log.log(Level.INFO,"onBlockPlace: "+onBlockPlace+"ms"); - - log.log(Level.INFO,"onEntityTarget: "+onEntityTarget+"ms"); - log.log(Level.INFO,"onEntityDeath: "+onEntityDeath+"ms"); - log.log(Level.INFO,"onEntityDamage: "+onEntityDamage+"ms"); - log.log(Level.INFO,"onCreatureSpawn: "+onCreatureSpawn+"ms"); - - log.log(Level.INFO,"mcTimer (HPREGEN/ETC): "+mcTimerx+"ms"); - log.log(Level.INFO,"bleedSimulation: "+bleedSimulation+"ms"); - log.log(Level.INFO,"####mcMMO END OF PERFORMANCE REPORT####"); - - onPlayerRespawn=0; - onPlayerQuit=0; - onPlayerLogin=0; - onPlayerJoin=0; - onPlayerInteract=0; - onPlayerCommandPreprocess=0; - onPlayerChat=0; - onBlockDamage=0; - onBlockBreak=0; - onBlockFromTo=0; - onBlockPlace=0; - onEntityTarget=0; - onEntityDeath=0; - onEntityDamage=0; - onCreatureSpawn=0; - mcTimerx=0; - bleedSimulation=0; - } - - private Timer mcMMO_Timer = new Timer(true); //BLEED AND REGENERATION - //private Timer mcMMO_SpellTimer = new Timer(true); - - public static Database database = null; - public Mob mob = new Mob(); - public Misc misc = new Misc(this); - public Sorcery sorcery = new Sorcery(this); - - //Config file stuff - LoadProperties config = new LoadProperties(); - - public void onEnable() - { - //new File(maindirectory).mkdir(); - config.configCheck(); - - Users.getInstance().loadUsers(); //Load Users file - - /* - * REGISTER EVENTS - */ - - PluginManager pm = getServer().getPluginManager(); - - //Player Stuff - pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal, this); - pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal, this); - pm.registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Priority.Normal, this); - pm.registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Lowest, this); - pm.registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Priority.Monitor, this); - pm.registerEvent(Event.Type.PLAYER_RESPAWN, playerListener, Priority.Normal, this); - pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Normal, this); - - //Block Stuff - pm.registerEvent(Event.Type.BLOCK_DAMAGE, blockListener, Priority.Highest, this); - pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Highest, this); - pm.registerEvent(Event.Type.BLOCK_FROMTO, blockListener, Priority.Normal, this); - pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Normal, this); - - //Entity Stuff - pm.registerEvent(Event.Type.ENTITY_TARGET, entityListener, Priority.Normal, this); - pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this); - pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this); - pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this); - - PluginDescriptionFile pdfFile = this.getDescription(); - mcPermissions.initialize(getServer()); - - if(LoadProperties.useMySQL) - { - database = new Database(this); - database.createStructure(); - } else - Leaderboard.makeLeaderboards(); //Make the leaderboards - - for(Player player : getServer().getOnlinePlayers()){Users.addUser(player);} //In case of reload add all users back into PlayerProfile - System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" ); //$NON-NLS-1$ //$NON-NLS-2$ - mcMMO_Timer.schedule(new mcTimer(this), (long)0, (long)(1000)); - //mcMMO_SpellTimer.schedule(new mcTimerSpells(this), (long)0, (long)(100)); - } - - public void setupPermissions() { - Plugin test = this.getServer().getPluginManager().getPlugin("Permissions"); //$NON-NLS-1$ - if(this.PermissionsHandler == null) { - if(test != null) { - this.PermissionsHandler = ((Permissions)test).getHandler(); - } else { - log.info(Messaging.bracketize(name) + " Permission system not enabled. Disabling plugin."); //$NON-NLS-1$ - this.getServer().getPluginManager().disablePlugin(this); - } - } - } - public boolean inSameParty(Player playera, Player playerb){ - if(Users.getProfile(playera).inParty() && Users.getProfile(playerb).inParty()){ - if(Users.getProfile(playera).getParty().equals(Users.getProfile(playerb).getParty())){ - return true; - } else { - return false; - } - } else { - return false; - } - } - public void getXpToLevel(Player player, String skillname){ - Users.getProfile(player).getXpToLevel(skillname.toLowerCase()); - } - public void removeXp(Player player, String skillname, Integer newvalue){ - PlayerProfile PP = Users.getProfile(player); - PP.removeXP(skillname, newvalue); - Skills.XpCheck(player); - } - public void addXp(Player player, String skillname, Integer newvalue){ - PlayerProfile PP = Users.getProfile(player); - PP.addXP(skillname, newvalue); - Skills.XpCheck(player); - } - public void modifySkill(Player player, String skillname, Integer newvalue){ - PlayerProfile PP = Users.getProfile(player); - PP.modifyskill(newvalue, skillname); - } - public ArrayList getParties(){ - String location = "plugins/mcMMO/mcmmo.users"; //$NON-NLS-1$ - ArrayList parties = new ArrayList(); - try { - //Open the users 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 theparty = null; - //Party - if(character.length > 3) - theparty = character[3]; - if(!parties.contains(theparty)) - parties.add(theparty); - } - 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$ - } - return parties; - } - public static String getPartyName(Player player){ - PlayerProfile PP = Users.getProfile(player); - return PP.getParty(); - } - public static boolean inParty(Player player){ - PlayerProfile PP = Users.getProfile(player); - return PP.inParty(); - } - public Permissions getPermissions() { - return permissions; - } - public void onDisable() { - System.out.println("mcMMO was disabled."); //$NON-NLS-1$ - } +package com.gmail.nossr50; + +import com.gmail.nossr50.datatypes.Mob; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.config.*; +import com.gmail.nossr50.listeners.mcBlockListener; +import com.gmail.nossr50.listeners.mcEntityListener; +import com.gmail.nossr50.listeners.mcPlayerListener; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.party.Party; +import com.gmail.nossr50.skills.*; +import com.nijikokun.bukkit.Permissions.Permissions; +import com.nijiko.permissions.PermissionHandler; + +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.plugin.Plugin; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Timer; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.event.Event.Priority; +import org.bukkit.event.Event; +import org.bukkit.plugin.PluginDescriptionFile; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.plugin.PluginManager; +import org.bukkit.entity.Player; + + +public class mcMMO extends JavaPlugin +{ + /* + * I never expected mcMMO to get so popular! + * Thanks for all the support for the mod + * Thanks to the people who have worked on the code + * Thanks to the donators who helped me out financially + * Thanks to the server admins who use my mod :) + * + * This mod is open source, and its going to stay that way >:3 + * + * Donate via paypal to nossr50@gmail.com (A million thanks to anyone that does!) + */ + + public static String maindirectory = "plugins/mcMMO/"; + File file = new File(maindirectory + File.separator + "config.yml"); + public static final Logger log = Logger.getLogger("Minecraft"); + private final mcPlayerListener playerListener = new mcPlayerListener(this); + private final mcBlockListener blockListener = new mcBlockListener(this); + private final mcEntityListener entityListener = new mcEntityListener(this); + public static PermissionHandler permissionHandler; + private Permissions permissions; + + private Timer mcMMO_Timer = new Timer(true); //BLEED AND REGENERATION + //private Timer mcMMO_SpellTimer = new Timer(true); + + public static Database database = null; + public Mob mob = new Mob(); + public Misc misc = new Misc(this); + public Sorcery sorcery = new Sorcery(this); + + //Config file stuff + LoadProperties config = new LoadProperties(); + + public void onEnable() + { + //new File(maindirectory).mkdir(); + + setupPermissions(); + config.configCheck(); + + if(!LoadProperties.useMySQL) + Users.getInstance().loadUsers(); //Load Users file + + /* + * REGISTER EVENTS + */ + + PluginManager pm = getServer().getPluginManager(); + + //Player Stuff + pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal, this); + pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal, this); + pm.registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Priority.Normal, this); + pm.registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Lowest, this); + pm.registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Priority.Monitor, this); + pm.registerEvent(Event.Type.PLAYER_RESPAWN, playerListener, Priority.Normal, this); + + //Block Stuff + pm.registerEvent(Event.Type.BLOCK_DAMAGE, blockListener, Priority.Highest, this); + pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Highest, this); + pm.registerEvent(Event.Type.BLOCK_FROMTO, blockListener, Priority.Normal, this); + pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Normal, this); + + //Entity Stuff + pm.registerEvent(Event.Type.ENTITY_TARGET, entityListener, Priority.Normal, this); + pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this); + pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this); + pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this); + + PluginDescriptionFile pdfFile = this.getDescription(); + mcPermissions.initialize(getServer()); + + if(LoadProperties.useMySQL) + { + database = new Database(this); + database.createStructure(); + } else + Leaderboard.makeLeaderboards(); //Make the leaderboards + + for(Player player : getServer().getOnlinePlayers()){Users.addUser(player);} //In case of reload add all users back into PlayerProfile + System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" ); + mcMMO_Timer.schedule(new mcTimer(this), (long)0, (long)(1000)); + //mcMMO_SpellTimer.schedule(new mcTimerSpells(this), (long)0, (long)(100)); + } + + private void setupPermissions() + { + if (permissionHandler != null) + { + return; + } + + Plugin permissionsPlugin = this.getServer().getPluginManager().getPlugin("Permissions"); + + if (permissionsPlugin == null) + { + //log.log(Level.INFO, "[mcMMO] Permission system not detected, defaulting to OP"); + return; + } + + permissionHandler = ((Permissions) permissionsPlugin).getHandler(); + //log.log(Level.INFO, "[mcMMO] Found and will use plugin "+((Permissions)permissionsPlugin).getDescription().getFullName()); + } + + public boolean inSameParty(Player playera, Player playerb){ + if(Users.getProfile(playera).inParty() && Users.getProfile(playerb).inParty()){ + if(Users.getProfile(playera).getParty().equals(Users.getProfile(playerb).getParty())){ + return true; + } else { + return false; + } + } else { + return false; + } + } + public void getXpToLevel(Player player, String skillname){ + Users.getProfile(player).getXpToLevel(skillname.toLowerCase()); + } + public void removeXp(Player player, String skillname, Integer newvalue){ + PlayerProfile PP = Users.getProfile(player); + PP.removeXP(skillname, newvalue); + Skills.XpCheck(player); + } + public void addXp(Player player, String skillname, Integer newvalue){ + PlayerProfile PP = Users.getProfile(player); + PP.addXP(skillname, newvalue); + Skills.XpCheck(player); + } + public void modifySkill(Player player, String skillname, Integer newvalue){ + PlayerProfile PP = Users.getProfile(player); + PP.modifyskill(newvalue, skillname); + } + public ArrayList getParties(){ + String location = "plugins/mcMMO/mcmmo.users"; + ArrayList parties = new ArrayList(); + try { + //Open the users file + FileReader file = new FileReader(location); + BufferedReader in = new BufferedReader(file); + String line = ""; + while((line = in.readLine()) != null) + { + String[] character = line.split(":"); + String theparty = null; + //Party + if(character.length > 3) + theparty = character[3]; + if(!parties.contains(theparty)) + parties.add(theparty); + } + in.close(); + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while reading " + + location + " (Are you sure you formatted it correctly?)", e); + } + return parties; + } + public static String getPartyName(Player player){ + PlayerProfile PP = Users.getProfile(player); + return PP.getParty(); + } + public static boolean inParty(Player player){ + PlayerProfile PP = Users.getProfile(player); + return PP.inParty(); + } + public Permissions getPermissions() { + return permissions; + } + public void onDisable() { + System.out.println("mcMMO was disabled."); + } + + public boolean onCommand( CommandSender sender, Command command, String label, String[] args ) { + Player player = (Player) sender; + PlayerProfile 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(split[0].equalsIgnoreCase("taming") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillTaming").toLowerCase())){ + float skillvalue = (float)PP.getSkill("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.getSkillToString("taming"), PP.getSkillToString("tamingXP"), PP.getXpToLevel("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.getSkill("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.getSkill("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.getSkill("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.getSkill("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})); + } + if(split[0].equalsIgnoreCase("woodcutting") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillWoodCutting").toLowerCase())){ + float skillvalue = (float)PP.getSkill("woodcutting"); + int ticks = 2; + int x = PP.getSkill("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.getSkillToString("woodcutting"), PP.getSkillToString("woodcuttingXP"), PP.getXpToLevel("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.getSkill("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})); + } + if(split[0].equalsIgnoreCase("archery") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillArchery").toLowerCase())){ + Integer rank = 0; + if(PP.getSkill("archery") >= 50) + rank++; + if(PP.getSkill("archery") >= 250) + rank++; + if(PP.getSkill("archery") >= 575) + rank++; + if(PP.getSkill("archery") >= 725) + rank++; + if(PP.getSkill("archery") >= 1000) + rank++; + float skillvalue = (float)PP.getSkill("archery"); + String percentage = String.valueOf((skillvalue / 1000) * 100); + + int ignition = 20; + if(PP.getSkill("archery") >= 200) + ignition+=20; + if(PP.getSkill("archery") >= 400) + ignition+=20; + if(PP.getSkill("archery") >= 600) + ignition+=20; + if(PP.getSkill("archery") >= 800) + ignition+=20; + if(PP.getSkill("archery") >= 1000) + ignition+=20; + + String percentagedaze; + if(PP.getSkill("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.getSkillToString("archery"), PP.getSkillToString("archeryXP"), PP.getXpToLevel("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})); + } + if(split[0].equalsIgnoreCase("axes") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillAxes"))){ + String percentage; + float skillvalue = (float)PP.getSkill("axes"); + if(PP.getSkill("axes") < 750){ + percentage = String.valueOf((skillvalue / 1000) * 100); + } else { + percentage = "75"; + } + int ticks = 2; + int x = PP.getSkill("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.getSkillToString("axes"), PP.getSkillToString("axesXP"), PP.getXpToLevel("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.getSkill("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})); + } + if(split[0].equalsIgnoreCase("swords") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillSwords").toLowerCase())){ + int bleedrank = 2; + String percentage, parrypercentage = null, counterattackpercentage; + float skillvalue = (float)PP.getSkill("swords"); + if(PP.getSkill("swords") < 750){ + percentage = String.valueOf((skillvalue / 1000) * 100); + } else { + percentage = "75"; + } + if(skillvalue >= 750) + bleedrank+=1; + + if(PP.getSkill("swords") <= 900){ + parrypercentage = String.valueOf((skillvalue / 3000) * 100); + } else { + parrypercentage = "30"; + } + + if(PP.getSkill("swords") <= 600){ + counterattackpercentage = String.valueOf((skillvalue / 2000) * 100); + } else { + counterattackpercentage = "30"; + } + + int ticks = 2; + int x = PP.getSkill("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.getSkillToString("swords"), PP.getSkillToString("swordsXP"), PP.getXpToLevel("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})); + + } + if(split[0].equalsIgnoreCase("acrobatics") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillAcrobatics").toLowerCase())){ + String dodgepercentage; + float skillvalue = (float)PP.getSkill("acrobatics"); + String percentage = String.valueOf((skillvalue / 1000) * 100); + String gracepercentage = String.valueOf(((skillvalue / 1000) * 100) * 2); + if(PP.getSkill("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.getSkillToString("acrobatics"), PP.getSkillToString("acrobaticsXP"), PP.getXpToLevel("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})); + } + if(split[0].equalsIgnoreCase("mining") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillMining"))){ + float skillvalue = (float)PP.getSkill("mining"); + String percentage = String.valueOf((skillvalue / 1000) * 100); + int ticks = 2; + int x = PP.getSkill("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.getSkillToString("mining"), PP.getSkillToString("miningXP"), PP.getXpToLevel("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})); + } + if(split[0].equalsIgnoreCase("repair") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillRepair").toLowerCase())){ + float skillvalue = (float)PP.getSkill("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.getSkillToString("repair"), PP.getSkillToString("repairXP"), PP.getXpToLevel("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})); + } + if(split[0].equalsIgnoreCase("unarmed")){ + String percentage, arrowpercentage; + float skillvalue = (float)PP.getSkill("unarmed"); + + if(PP.getSkill("unarmed") < 1000){ + percentage = String.valueOf((skillvalue / 4000) * 100); + } else { + percentage = "25"; + } + + if(PP.getSkill("unarmed") < 1000){ + arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2); + } else { + arrowpercentage = "50"; + } + + + int ticks = 2; + int x = PP.getSkill("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.getSkillToString("unarmed"), PP.getSkillToString("unarmedXP"), PP.getXpToLevel("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.getSkill("unarmed") < 250){ + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] {mcLocale.getString("m.AbilLockUnarmed1")})); + } else if(PP.getSkill("unarmed") >= 250 && PP.getSkill("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})); + } + if(split[0].equalsIgnoreCase("herbalism") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillHerbalism").toLowerCase())){ + int rank = 0; + if(PP.getSkill("herbalism") >= 50) + rank++; + if (PP.getSkill("herbalism") >= 150) + rank++; + if (PP.getSkill("herbalism") >= 250) + rank++; + if (PP.getSkill("herbalism") >= 350) + rank++; + if (PP.getSkill("herbalism") >= 450) + rank++; + if (PP.getSkill("herbalism") >= 550) + rank++; + if (PP.getSkill("herbalism") >= 650) + rank++; + if (PP.getSkill("herbalism") >= 750) + rank++; + int bonus = 0; + if(PP.getSkill("herbalism") >= 200) + bonus++; + if(PP.getSkill("herbalism") >= 400) + bonus++; + if(PP.getSkill("herbalism") >= 600) + bonus++; + + int ticks = 2; + int x = PP.getSkill("herbalism"); + while(x >= 50){ + x-=50; + ticks++; + } + + float skillvalue = (float)PP.getSkill("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.getSkillToString("herbalism"), PP.getSkillToString("herbalismXP"), PP.getXpToLevel("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})); + } + + if(split[0].equalsIgnoreCase("excavation") || split[0].toLowerCase().equalsIgnoreCase(mcLocale.getString("m.SkillExcavation").toLowerCase())) + { + int ticks = 2; + int x = PP.getSkill("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.getSkillToString("excavation"), PP.getSkillToString("excavationXP"), PP.getXpToLevel("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})); + } + + if(split[0].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})); + */ + } + + if(LoadProperties.mcmmoEnable && split[0].equalsIgnoreCase(LoadProperties.mcmmo)){ + player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"mMO"+ChatColor.RED+"[]-----"); + player.sendMessage(ChatColor.YELLOW+"mcMMO is an RPG server mod for minecraft."); + player.sendMessage(ChatColor.YELLOW+"There are many skills added by mcMMO to minecraft."); + player.sendMessage(ChatColor.YELLOW+"They can do anything from giving a chance"); + player.sendMessage(ChatColor.YELLOW+"for double drops to letting you break materials instantly."); + player.sendMessage(ChatColor.YELLOW+"For example, by harvesting logs from trees you will gain"); + player.sendMessage(ChatColor.YELLOW+"Woodcutting xp and once you have enough xp you will gain"); + player.sendMessage(ChatColor.YELLOW+"a skill level in Woodcutting. By raising this skill you will"); + player.sendMessage(ChatColor.YELLOW+"be able to receive benefits like "+ChatColor.RED+"double drops"); + player.sendMessage(ChatColor.YELLOW+"and increase the effects of the "+ChatColor.RED+"\"Tree Felling\""+ChatColor.YELLOW+" ability."); + player.sendMessage(ChatColor.YELLOW+"mMO has abilities related to the skill, skills normally"); + player.sendMessage(ChatColor.YELLOW+"provide passive bonuses but they also have activated"); + player.sendMessage(ChatColor.YELLOW+"abilities too. Each ability is activated by holding"); + player.sendMessage(ChatColor.YELLOW+"the appropriate tool and "+ChatColor.RED+"right clicking."); + player.sendMessage(ChatColor.YELLOW+"For example, if you hold a Mining Pick and right click"); + player.sendMessage(ChatColor.YELLOW+"you will ready your Pickaxe, attack mining materials"); + player.sendMessage(ChatColor.YELLOW+"and then "+ChatColor.RED+"Super Breaker "+ChatColor.YELLOW+"will activate."); + player.sendMessage(ChatColor.GREEN+"Find out mcMMO commands with "+ChatColor.DARK_AQUA+LoadProperties.mcc); + player.sendMessage(ChatColor.GREEN+"You can donate via paypal to"+ChatColor.DARK_RED+" nossr50@gmail.com"); + } + if(LoadProperties.mccEnable && split[0].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 "+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")); + } + if(LoadProperties.mcabilityEnable && mcPermissions.permissionsEnabled && split[0].equalsIgnoreCase(LoadProperties.mcability)){ + if(PP.getAbilityUse()){ + player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOff")); + PP.toggleAbilityUse(); + } else { + player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOn")); + PP.toggleAbilityUse(); + } + } + + /* + * FFS -> MySQL + */ + if(player.isOp() && split[0].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(this); + for(Player x : this.getServer().getOnlinePlayers()) + { + Users.addUser(x); + } + player.sendMessage(ChatColor.GREEN+"Conversion finished!"); + } + + /* + * LEADER BOARD COMMAND + */ + if(LoadProperties.mctopEnable && split[0].equalsIgnoreCase(LoadProperties.mctop)){ + + if(LoadProperties.useMySQL == false){ + /* + * POWER LEVEL INFO RETRIEVAL + */ + if(split.length == 1){ + int p = 1; + String[] info = Leaderboard.retrieveInfo("powerlevel", 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 && Leaderboard.isInt(split[1])){ + int p = 1; + //Grab page value if specified + if(split.length >= 2){ + if(Leaderboard.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("powerlevel", 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(Leaderboard.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].toLowerCase(), 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> 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> 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> 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> 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> 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> 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> 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> 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)); + } + } + } + } + + if(LoadProperties.mcrefreshEnable && split[0].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 + */ + if(LoadProperties.mcgodEnable && split[0].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 (player.isOp()) + { + if(PP.getGodMode()) + { + player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeDisabled")); + PP.toggleGodMode(); + } else + { + player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeEnabled")); + PP.toggleGodMode(); + } + } + } + if(LoadProperties.clearmyspawnEnable && LoadProperties.enableMySpawn && mcPermissions.getInstance().mySpawn(player) && split[0].equalsIgnoreCase(LoadProperties.clearmyspawn)) + { + double x = this.getServer().getWorlds().get(0).getSpawnLocation().getX(); + double y = this.getServer().getWorlds().get(0).getSpawnLocation().getY(); + double z = this.getServer().getWorlds().get(0).getSpawnLocation().getZ(); + String worldname = this.getServer().getWorlds().get(0).getName(); + PP.setMySpawn(x, y, z, worldname); + player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnCleared")); + } + if(LoadProperties.mmoeditEnable && mcPermissions.permissionsEnabled && split[0].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(newvalue, split[2]); + 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(newvalue, split[1]); + player.sendMessage(ChatColor.RED+split[1]+" has been modified."); + } + } else + { + player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.mmoedit+" playername skillname newvalue"); + } + } + /* + * ADD EXPERIENCE COMMAND + */ + if(LoadProperties.addxpEnable && mcPermissions.permissionsEnabled && split[0].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(split[2], newvalue); + getPlayer(split[1]).sendMessage(ChatColor.GREEN+"Experience granted!"); + player.sendMessage(ChatColor.RED+split[2]+" has been modified."); + Skills.XpCheck(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(split[1], newvalue); + player.sendMessage(ChatColor.RED+split[1]+" has been modified."); + } else { + player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.addxp+" playername skillname xp"); + } + } + if(LoadProperties.ptpEnable && PP != null && PP.inParty() && split[0].equalsIgnoreCase(LoadProperties.ptp)){ + + 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+" "); + 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 + */ + if(LoadProperties.whoisEnable && (player.isOp() || mcPermissions.getInstance().whois(player)) && split[0].equalsIgnoreCase(LoadProperties.whois)){ + if(split.length < 2){ + player.sendMessage(ChatColor.RED + "Proper usage is /"+LoadProperties.whois+" "); + return true; + } + //if split[1] is a player + if(isPlayer(split[1])) + { + Player target = getPlayer(split[1]); + PlayerProfile PPt = Users.getProfile(target); + double x,y,z; + x = target.getLocation().getX(); + y = target.getLocation().getY(); + z = target.getLocation().getZ(); + 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.getSkillToString("excavation"), PPt.getSkillToString("excavationXP"), PPt.getXpToLevel("excavation"))); + if(mcPermissions.getInstance().herbalism(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PPt.getSkillToString("herbalism"), PPt.getSkillToString("herbalismXP"), PPt.getXpToLevel("herbalism"))); + if(mcPermissions.getInstance().mining(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PPt.getSkillToString("mining"), PPt.getSkillToString("miningXP"), PPt.getXpToLevel("mining"))); + if(mcPermissions.getInstance().woodCuttingAbility(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PPt.getSkillToString("woodcutting"), PPt.getSkillToString("woodcuttingXP"), PPt.getXpToLevel("woodcutting"))); + + player.sendMessage(ChatColor.GOLD+"-=COMBAT SKILLS=-"); + if(mcPermissions.getInstance().axes(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PPt.getSkillToString("axes"), PPt.getSkillToString("axesXP"), PPt.getXpToLevel("axes"))); + if(mcPermissions.getInstance().archery(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PPt.getSkillToString("archery"), PPt.getSkillToString("archeryXP"), PPt.getXpToLevel("archery"))); + //if(mcPermissions.getInstance().sorcery(target)) + //player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkillToString("sorcery"), PPt.getSkillToString("sorceryXP"), PPt.getXpToLevel("excavation"))); + if(mcPermissions.getInstance().swords(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PPt.getSkillToString("swords"), PPt.getSkillToString("swordsXP"), PPt.getXpToLevel("swords"))); + if(mcPermissions.getInstance().taming(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PPt.getSkillToString("taming"), PPt.getSkillToString("tamingXP"), PPt.getXpToLevel("taming"))); + if(mcPermissions.getInstance().unarmed(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PPt.getSkillToString("unarmed"), PPt.getSkillToString("unarmedXP"), PPt.getXpToLevel("unarmed"))); + + player.sendMessage(ChatColor.GOLD+"-=MISC SKILLS=-"); + if(mcPermissions.getInstance().acrobatics(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PPt.getSkillToString("acrobatics"), PPt.getSkillToString("acrobaticsXP"), PPt.getXpToLevel("acrobatics"))); + if(mcPermissions.getInstance().repair(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PPt.getSkillToString("repair"), PPt.getSkillToString("repairXP"), PPt.getXpToLevel("repair"))); + + player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") +ChatColor.GREEN+(m.getPowerLevel(target))); + + player.sendMessage(ChatColor.GREEN+"~~COORDINATES~~"); + player.sendMessage("X: "+x); + player.sendMessage("Y: "+y); + player.sendMessage("Z: "+z); + } + } + /* + * STATS COMMAND + */ + if(LoadProperties.statsEnable && split[0].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.getSkillToString("excavation"), PP.getSkillToString("excavationXP"), PP.getXpToLevel("excavation"))); + if(mcPermissions.getInstance().herbalism(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PP.getSkillToString("herbalism"), PP.getSkillToString("herbalismXP"), PP.getXpToLevel("herbalism"))); + if(mcPermissions.getInstance().mining(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PP.getSkillToString("mining"), PP.getSkillToString("miningXP"), PP.getXpToLevel("mining"))); + if(mcPermissions.getInstance().woodCuttingAbility(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PP.getSkillToString("woodcutting"), PP.getSkillToString("woodcuttingXP"), PP.getXpToLevel("woodcutting"))); + } + if(Skills.hasCombatSkills(player)){ + player.sendMessage(header+"-=COMBAT SKILLS=-"); + if(mcPermissions.getInstance().axes(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PP.getSkillToString("axes"), PP.getSkillToString("axesXP"), PP.getXpToLevel("axes"))); + if(mcPermissions.getInstance().archery(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PP.getSkillToString("archery"), PP.getSkillToString("archeryXP"), PP.getXpToLevel("archery"))); + //if(mcPermissions.getInstance().sorcery(player)) + //player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkillToString("sorcery"), PP.getSkillToString("sorceryXP"), PP.getXpToLevel("excavation"))); + if(mcPermissions.getInstance().swords(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PP.getSkillToString("swords"), PP.getSkillToString("swordsXP"), PP.getXpToLevel("swords"))); + if(mcPermissions.getInstance().taming(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PP.getSkillToString("taming"), PP.getSkillToString("tamingXP"), PP.getXpToLevel("taming"))); + if(mcPermissions.getInstance().unarmed(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PP.getSkillToString("unarmed"), PP.getSkillToString("unarmedXP"), PP.getXpToLevel("unarmed"))); + } + + if(Skills.hasMiscSkills(player)){ + player.sendMessage(header+"-=MISC SKILLS=-"); + if(mcPermissions.getInstance().acrobatics(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PP.getSkillToString("acrobatics"), PP.getSkillToString("acrobaticsXP"), PP.getXpToLevel("acrobatics"))); + if(mcPermissions.getInstance().repair(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PP.getSkillToString("repair"), PP.getSkillToString("repairXP"), PP.getXpToLevel("repair"))); + } + player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel")+ChatColor.GREEN+(m.getPowerLevel(player))); + } + //Invite Command + if(LoadProperties.inviteEnable && mcPermissions.getInstance().party(player) && split[0].equalsIgnoreCase(LoadProperties.invite)){ + + if(!PP.inParty()){ + player.sendMessage(mcLocale.getString("mcPlayerListener.NotInParty")); + return true; + } + if(split.length < 2){ + player.sendMessage(ChatColor.RED+"Usage is /"+LoadProperties.invite+" "); + return true; + } + if(PP.inParty() && split.length >= 2 && isPlayer(split[1])){ + 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})); + } + } + //Accept invite + if(LoadProperties.acceptEnable && mcPermissions.getInstance().party(player) && split[0].equalsIgnoreCase(LoadProperties.accept)){ + if(PP.hasPartyInvite()){ + if(PP.inParty()){ + Party.getInstance().informPartyMembersQuit(player, getPlayersOnline()); + } + PP.acceptInvite(); + Party.getInstance().informPartyMembers(player, getPlayersOnline()); + player.sendMessage(mcLocale.getString("mcPlayerListener.InviteAccepted", new Object[]{PP.getParty()})); + } else { + player.sendMessage(mcLocale.getString("mcPlayerListener.NoInvites")); + } + } + //Party command + if(LoadProperties.partyEnable && split[0].equalsIgnoreCase(LoadProperties.party)){ + if(!mcPermissions.getInstance().party(player)){ + player.sendMessage(ChatColor.YELLOW+"[mcMMO]"+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + if(split.length == 1 && !PP.inParty()){ + player.sendMessage("Proper usage is "+LoadProperties.party+" or 'q' to quit"); + return true; + } + if(split.length == 1 && PP.inParty()){ + String tempList = ""; + int x = 0; + for(Player p : this.getServer().getOnlinePlayers()){ + if(PP.getParty().equals(Users.getProfile(p).getParty())){ + if(p != null && x+1 >= Party.getInstance().partyCount(player, getPlayersOnline())){ + tempList+= p.getName(); + x++; + } + if(p != null && x < Party.getInstance().partyCount(player, getPlayersOnline())){ + tempList+= p.getName() +", "; + x++; + } + } + } + player.sendMessage(mcLocale.getString("mcPlayerListener.YouAreInParty", new Object[] {PP.getParty()})); + player.sendMessage(mcLocale.getString("mcPlayerListener.PartyMembers")+" ("+ChatColor.WHITE+tempList+ChatColor.GREEN+")"); + } + if(split.length > 1 && split[1].equals("q") && PP.inParty()){ + Party.getInstance().informPartyMembersQuit(player, getPlayersOnline()); + PP.removeParty(); + player.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty")); + return true; + } + if(split.length >= 2){ + if(PP.inParty()) + Party.getInstance().informPartyMembersQuit(player, getPlayersOnline()); + PP.setParty(split[1]); + player.sendMessage(mcLocale.getString("mcPlayerListener.JoinedParty", new Object[] {split[1]})); + Party.getInstance().informPartyMembers(player, getPlayersOnline()); + } + } + if(LoadProperties.partyEnable && split[0].equalsIgnoreCase("p")){ + + 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.getName() + ChatColor.GREEN + ") "; + + log.log(Level.INFO, + "[P](" + PP.getParty() + ")" + "<" + player.getName() + + "> " + pMessage); + + for (Player herp : 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")); + } + } + + if(split[0].equalsIgnoreCase("a") && (player.isOp() || mcPermissions.getInstance().adminChat(player))){ + 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.getName() + ChatColor.AQUA + "} "; + log.log(Level.INFO, "[A]" + "<" + player.getName() + "> " + + aMessage); + for (Player herp : getServer().getOnlinePlayers()) { + if ((herp.isOp() || mcPermissions.getInstance().adminChat( + herp))) + 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 + */ + if(LoadProperties.myspawnEnable && LoadProperties.enableMySpawn && split[0].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() + 3600000){ + long x = ((PP.getMySpawnATS() + 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 && this.getServer().getWorld(PP.getMySpawnWorld(this)) != null) + mySpawn.setWorld(this.getServer().getWorld(PP.getMySpawnWorld(this))); + 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")); + } + } + return true; + } + + public Player[] getPlayersOnline() { + return this.getServer().getOnlinePlayers(); + } + + public boolean isPlayer(String playerName){ + for(Player herp : getPlayersOnline()){ + if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){ + return true; + } + } + return false; + } + + public Player getPlayer(String playerName){ + for(Player herp : getPlayersOnline()){ + if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){ + return herp; + } + } + return null; + } } \ No newline at end of file diff --git a/mcMMO/com/gmail/nossr50/mcPermissions.java b/mcMMO/com/gmail/nossr50/mcPermissions.java index 25f961d0d..d9ebbb622 100644 --- a/mcMMO/com/gmail/nossr50/mcPermissions.java +++ b/mcMMO/com/gmail/nossr50/mcPermissions.java @@ -8,27 +8,36 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import com.nijikokun.bukkit.Permissions.Permissions; -public class mcPermissions { - //Thanks to myWarp source code for helping me figure this shit out! +public class mcPermissions +{ private static Permissions permissionsPlugin; public static boolean permissionsEnabled = false; private static volatile mcPermissions instance; - public static void initialize(Server server) { + public static void initialize(Server server) + { Plugin test = server.getPluginManager().getPlugin("Permissions"); - if (test != null) { + if (test != null) + { Logger log = Logger.getLogger("Minecraft"); permissionsPlugin = ((Permissions) test); permissionsEnabled = true; log.log(Level.INFO, "[mcMMO] Permissions enabled."); - } else { + } else + { Logger log = Logger.getLogger("Minecraft"); log.log(Level.SEVERE, "[mcMMO] Permissions isn't loaded, there are no restrictions."); } } + + public static boolean getEnabled() + { + return permissionsEnabled; + } - private static boolean permission(Player player, String string) { - return permissionsPlugin.Security.permission(player, string); + private static boolean permission(Player player, String string) + { + return permissionsPlugin.getHandler().has(player, string); } public boolean admin(Player player){ if (permissionsEnabled) { diff --git a/mcMMO/com/gmail/nossr50/mcTimer.java b/mcMMO/com/gmail/nossr50/mcTimer.java index df53e0849..131b61914 100644 --- a/mcMMO/com/gmail/nossr50/mcTimer.java +++ b/mcMMO/com/gmail/nossr50/mcTimer.java @@ -21,7 +21,6 @@ public class mcTimer extends TimerTask public void run() { - long before = System.currentTimeMillis(); for(Player player : plugin.getServer().getOnlinePlayers()) { if(player == null) @@ -107,15 +106,5 @@ public class mcTimer extends TimerTask thecount++; if(thecount >= 41) thecount = 1; - - - if(LoadProperties.print_reports) - { - long after = System.currentTimeMillis(); - plugin.mcTimerx+=(after-before); - - if(thecount == 40) - plugin.printDelays(); - } } } diff --git a/mcMMO/com/gmail/nossr50/party/Party.java b/mcMMO/com/gmail/nossr50/party/Party.java index 1e3192075..d73c68b7f 100644 --- a/mcMMO/com/gmail/nossr50/party/Party.java +++ b/mcMMO/com/gmail/nossr50/party/Party.java @@ -2,55 +2,71 @@ package com.gmail.nossr50.party; import org.bukkit.entity.Player; -import com.gmail.nossr50.Messages; import com.gmail.nossr50.Users; import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.locale.mcLocale; -public class Party { +public class Party +{ private static mcMMO plugin; - public Party(mcMMO instance) { + public Party(mcMMO instance) + { plugin = instance; } private static volatile Party instance; - public static Party getInstance() { - if (instance == null) { + public static Party getInstance() + { + if (instance == null) + { instance = new Party(plugin); } return instance; } public boolean inSameParty(Player playera, Player playerb){ - if(Users.getProfile(playera) == null || Users.getProfile(playerb) == null){ + if(Users.getProfile(playera) == null || Users.getProfile(playerb) == null) + { Users.addUser(playera); Users.addUser(playerb); } - if(Users.getProfile(playera).inParty() && Users.getProfile(playerb).inParty()){ - if(Users.getProfile(playera).getParty().equals(Users.getProfile(playerb).getParty())){ + if(Users.getProfile(playera).inParty() && Users.getProfile(playerb).inParty()) + { + if(Users.getProfile(playera).getParty().equals(Users.getProfile(playerb).getParty())) + { return true; - } else { + } else + { return false; } - } else { + } else + { return false; } } - public int partyCount(Player player, Player[] players){ + public int partyCount(Player player, Player[] players) + { int x = 0; - for(Player hurrdurr : players){ - if(player != null && hurrdurr != null){ + for(Player hurrdurr : players) + { + if(player != null && hurrdurr != null) + { if(Users.getProfile(player).getParty().equals(Users.getProfile(hurrdurr).getParty())) x++; } } return x; } - public void informPartyMembers(Player player, Player[] players){ + public void informPartyMembers(Player player, Player[] players) + { int x = 0; - for(Player p : players){ - if(player != null && p != null){ - if(inSameParty(player, p) && !p.getName().equals(player.getName())){ - p.sendMessage(Messages.getString("Party.InformedOnJoin", new Object[] {player.getName()})); + for(Player p : players) + { + if(player != null && p != null) + { + if(inSameParty(player, p) && !p.getName().equals(player.getName())) + { + p.sendMessage(mcLocale.getString("Party.InformedOnJoin", new Object[] {player.getName()})); x++; } } @@ -63,7 +79,7 @@ public class Party { if(player != null && p != null){ if(inSameParty(player, p) && !p.getName().equals(player.getName())) { - p.sendMessage(Messages.getString("Party.InformedOnQuit", new Object[] {player.getName()})); + p.sendMessage(mcLocale.getString("Party.InformedOnQuit", new Object[] {player.getName()})); x++; } } diff --git a/mcMMO/com/gmail/nossr50/skills/Archery.java b/mcMMO/com/gmail/nossr50/skills/Archery.java index 184e317fb..6c56f7a30 100644 --- a/mcMMO/com/gmail/nossr50/skills/Archery.java +++ b/mcMMO/com/gmail/nossr50/skills/Archery.java @@ -1,5 +1,99 @@ package com.gmail.nossr50.skills; -public class Archery { +import org.bukkit.Location; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.event.entity.EntityDamageByProjectileEvent; +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.party.Party; + +public class Archery +{ + public static void trackArrows(mcMMO pluginx, Entity x, EntityDamageByProjectileEvent 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.getSkill("archery")) + { + pluginx.misc.arrowTracker.put(x, 1); + } + } + } else + { + if(event.getDamage() > 0) + { + if(attacker != null) + { + if(Math.random() * 1000 <= PPa.getSkill("archery")) + { + pluginx.misc.arrowTracker.put(x, 1); + } + } + } + } + } + public static void ignitionCheck(Entity x, EntityDamageByProjectileEvent event, Player attacker) + { + PlayerProfile PPa = Users.getProfile(attacker); + if(Math.random() * 100 >= 75) + { + + int ignition = 20; + if(PPa.getSkill("archery") >= 200) + ignition+=20; + if(PPa.getSkill("archery") >= 400) + ignition+=20; + if(PPa.getSkill("archery") >= 600) + ignition+=20; + if(PPa.getSkill("archery") >= 800) + ignition+=20; + if(PPa.getSkill("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.getSkill("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.getSkill("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$ + } + } } diff --git a/mcMMO/com/gmail/nossr50/skills/Axes.java b/mcMMO/com/gmail/nossr50/skills/Axes.java index 80c7c5f81..ad8e9282d 100644 --- a/mcMMO/com/gmail/nossr50/skills/Axes.java +++ b/mcMMO/com/gmail/nossr50/skills/Axes.java @@ -1,17 +1,14 @@ package com.gmail.nossr50.skills; import org.bukkit.ChatColor; -import org.bukkit.entity.Animals; 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.EntityDamageByEntityEvent; import org.bukkit.plugin.Plugin; -import com.gmail.nossr50.Combat; -import com.gmail.nossr50.Messages; +import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.Users; import com.gmail.nossr50.m; import com.gmail.nossr50.mcPermissions; @@ -26,7 +23,8 @@ public class Axes { /* * CHECK FOR AXE PREP MODE */ - if(PP.getAxePreparationMode()){ + if(PP.getAxePreparationMode()) + { PP.setAxePreparationMode(false); } int ticks = 2; @@ -37,17 +35,17 @@ public class Axes { } if(!PP.getSkullSplitterMode() && Skills.cooldownOver(player, PP.getSkullSplitterDeactivatedTimeStamp(), LoadProperties.skullSplitterCooldown)){ - player.sendMessage(Messages.getString("Skills.SkullSplitterOn")); + player.sendMessage(mcLocale.getString("Skills.SkullSplitterOn")); for(Player y : pluginx.getServer().getOnlinePlayers()){ if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(Messages.getString("Skills.SkullSplitterPlayer", new Object[] {player.getName()})); + 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(), LoadProperties.skullSplitterCooldown)){ - player.sendMessage(Messages.getString("Skills.TooTired") + player.sendMessage(mcLocale.getString("Skills.TooTired") +ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, PP.getSkullSplitterDeactivatedTimeStamp(), LoadProperties.skullSplitterCooldown)+"s)"); } } diff --git a/mcMMO/com/gmail/nossr50/skills/Excavation.java b/mcMMO/com/gmail/nossr50/skills/Excavation.java index 9d681ae4a..f5fab0c89 100644 --- a/mcMMO/com/gmail/nossr50/skills/Excavation.java +++ b/mcMMO/com/gmail/nossr50/skills/Excavation.java @@ -7,7 +7,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; -import com.gmail.nossr50.Messages; +import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.Users; import com.gmail.nossr50.m; import com.gmail.nossr50.config.LoadProperties; @@ -33,10 +33,10 @@ public class Excavation { } if(!PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerDeactivatedTimeStamp() < System.currentTimeMillis()){ - player.sendMessage(Messages.getString("Skills.GigaDrillBreakerOn")); + player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOn")); for(Player y : pluginx.getServer().getOnlinePlayers()){ if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(Messages.getString("Skills.GigaDrillBreakerPlayer", new Object[] {player.getName()})); + y.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerPlayer", new Object[] {player.getName()})); } PP.setGigaDrillBreakerActivatedTimeStamp(System.currentTimeMillis()); PP.setGigaDrillBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); diff --git a/mcMMO/com/gmail/nossr50/skills/Herbalism.java b/mcMMO/com/gmail/nossr50/skills/Herbalism.java index c02f135c1..607c99c75 100644 --- a/mcMMO/com/gmail/nossr50/skills/Herbalism.java +++ b/mcMMO/com/gmail/nossr50/skills/Herbalism.java @@ -9,12 +9,12 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; -import com.gmail.nossr50.Messages; 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.PlayerProfile; +import com.gmail.nossr50.locale.mcLocale; public class Herbalism { @@ -106,10 +106,10 @@ public class Herbalism { } if(!PP.getGreenTerraMode() && Skills.cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)){ - player.sendMessage(Messages.getString("Skills.GreenTerraOn")); + player.sendMessage(mcLocale.getString("Skills.GreenTerraOn")); for(Player y : pluginx.getServer().getOnlinePlayers()){ if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(Messages.getString("Skills.GreenTerraPlayer", new Object[] {player.getName()})); + y.sendMessage(mcLocale.getString("Skills.GreenTerraPlayer", new Object[] {player.getName()})); } PP.setGreenTerraActivatedTimeStamp(System.currentTimeMillis()); PP.setGreenTerraDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); diff --git a/mcMMO/com/gmail/nossr50/skills/Mining.java b/mcMMO/com/gmail/nossr50/skills/Mining.java index 6a531882d..5c185505b 100644 --- a/mcMMO/com/gmail/nossr50/skills/Mining.java +++ b/mcMMO/com/gmail/nossr50/skills/Mining.java @@ -8,12 +8,12 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; -import com.gmail.nossr50.Messages; 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.PlayerProfile; +import com.gmail.nossr50.locale.mcLocale; public class Mining { @@ -38,11 +38,11 @@ public class Mining { } if(!PP.getSuperBreakerMode() && Skills.cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)){ - player.sendMessage(Messages.getString("Skills.SuperBreakerOn")); + player.sendMessage(mcLocale.getString("Skills.SuperBreakerOn")); for(Player y : pluginx.getServer().getOnlinePlayers()) { if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(Messages.getString("Skills.SuperBreakerPlayer", new Object[] {player.getName()})); + y.sendMessage(mcLocale.getString("Skills.SuperBreakerPlayer", new Object[] {player.getName()})); } PP.setSuperBreakerActivatedTimeStamp(System.currentTimeMillis()); PP.setSuperBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); diff --git a/mcMMO/com/gmail/nossr50/skills/Repair.java b/mcMMO/com/gmail/nossr50/skills/Repair.java index 032af4f74..51101b528 100644 --- a/mcMMO/com/gmail/nossr50/skills/Repair.java +++ b/mcMMO/com/gmail/nossr50/skills/Repair.java @@ -5,12 +5,12 @@ import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import com.gmail.nossr50.Messages; 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.locale.mcLocale; public class Repair { @@ -30,6 +30,7 @@ public class Repair { private static String nIron = LoadProperties.nIron; + @SuppressWarnings("deprecation") public static void repairCheck(Player player, ItemStack is, Block block){ PlayerProfile PP = Users.getProfile(player); short durabilityBefore = player.getItemInHand().getDurability(); @@ -164,7 +165,7 @@ public class Repair { } } else { - player.sendMessage(Messages.getString("Skills.FullDurability")); + player.sendMessage(mcLocale.getString("Skills.FullDurability")); } player.updateInventory(); /* @@ -450,32 +451,32 @@ public class Repair { public static void needMoreVespeneGas(ItemStack is, Player player){ PlayerProfile PP = Users.getProfile(player); if ((isDiamondTools(is) || isDiamondArmor(is)) && PP.getSkill("repair") < LoadProperties.repairdiamondlevel){ - player.sendMessage(Messages.getString("AdeptDiamond")); + player.sendMessage(mcLocale.getString("AdeptDiamond")); } else if (isDiamondTools(is) && !hasItem(player, rDiamond) || isIronTools(is) && !hasItem(player, rIron) || isGoldTools(is) && !hasItem(player, rGold)){ if(isDiamondTools(is) && !hasItem(player, rDiamond)) - player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond); + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond); if(isIronTools(is) && !hasItem(player, rIron)) - player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron); + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron); if(isGoldTools(is) && !hasItem(player, rGold)) - player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GOLD+nGold); + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GOLD+nGold); if(isWoodTools(is) && !hasItem(player,rWood)) - player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.DARK_GREEN+ nWood); + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.DARK_GREEN+ nWood); if(isStoneTools(is) && !hasItem(player, rStone)) - player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GRAY+nStone); + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+nStone); } else if (isDiamondArmor(is) && !hasItem(player, rDiamond)){ - player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond); + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond); } else if (isIronArmor(is) && !hasItem(player, rIron)){ - player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron); + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron); } else if (isGoldArmor(is) && !hasItem(player, rGold)){ - player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GOLD+ nGold); + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GOLD+ nGold); } else if (is.getAmount() > 1) - player.sendMessage(Messages.getString("Skills.StackedItems")); + player.sendMessage(mcLocale.getString("Skills.StackedItems")); } public static boolean checkPlayerProcRepair(Player player){ PlayerProfile PP = Users.getProfile(player); if(player != null){ if(Math.random() * 1000 <= PP.getSkill("repair")){ - player.sendMessage(Messages.getString("Skills.FeltEasy")); + player.sendMessage(mcLocale.getString("Skills.FeltEasy")); return true; } } diff --git a/mcMMO/com/gmail/nossr50/skills/Skills.java b/mcMMO/com/gmail/nossr50/skills/Skills.java index 8d1fd8672..c1226b856 100644 --- a/mcMMO/com/gmail/nossr50/skills/Skills.java +++ b/mcMMO/com/gmail/nossr50/skills/Skills.java @@ -7,7 +7,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import com.gmail.nossr50.Leaderboard; -import com.gmail.nossr50.Messages; import com.gmail.nossr50.Users; import com.gmail.nossr50.m; import com.gmail.nossr50.mcMMO; @@ -15,6 +14,7 @@ import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerStat; +import com.gmail.nossr50.locale.mcLocale; public class Skills { @@ -74,42 +74,42 @@ public class Skills { PlayerProfile PP = Users.getProfile(player); if(!PP.getGreenTerraInformed() && System.currentTimeMillis() - PP.getGreenTerraDeactivatedTimeStamp() >= (LoadProperties.greenTerraCooldown * 1000)){ PP.setGreenTerraInformed(true); - player.sendMessage(Messages.getString("Skills.YourGreenTerra")); + player.sendMessage(mcLocale.getString("Skills.YourGreenTerra")); } if(!PP.getTreeFellerInformed() && System.currentTimeMillis() - PP.getTreeFellerDeactivatedTimeStamp() >= (LoadProperties.greenTerraCooldown * 1000)){ PP.setTreeFellerInformed(true); - player.sendMessage(Messages.getString("Skills.YourTreeFeller")); + player.sendMessage(mcLocale.getString("Skills.YourTreeFeller")); } if(!PP.getSuperBreakerInformed() && System.currentTimeMillis() - PP.getSuperBreakerDeactivatedTimeStamp() >= (LoadProperties.superBreakerCooldown * 1000)){ PP.setSuperBreakerInformed(true); - player.sendMessage(Messages.getString("Skills.YourSuperBreaker")); + player.sendMessage(mcLocale.getString("Skills.YourSuperBreaker")); } if(!PP.getSerratedStrikesInformed() && System.currentTimeMillis() - PP.getSerratedStrikesDeactivatedTimeStamp() >= (LoadProperties.serratedStrikeCooldown * 1000)){ PP.setSerratedStrikesInformed(true); - player.sendMessage(Messages.getString("Skills.YourSerratedStrikes")); + player.sendMessage(mcLocale.getString("Skills.YourSerratedStrikes")); } if(!PP.getBerserkInformed() && System.currentTimeMillis() - PP.getBerserkDeactivatedTimeStamp() >= (LoadProperties.berserkCooldown * 1000)){ PP.setBerserkInformed(true); - player.sendMessage(Messages.getString("Skills.YourBerserk")); + player.sendMessage(mcLocale.getString("Skills.YourBerserk")); } if(!PP.getSkullSplitterInformed() && System.currentTimeMillis() - PP.getSkullSplitterDeactivatedTimeStamp() >= (LoadProperties.skullSplitterCooldown * 1000)){ PP.setSkullSplitterInformed(true); - player.sendMessage(Messages.getString("Skills.YourSkullSplitter")); + player.sendMessage(mcLocale.getString("Skills.YourSkullSplitter")); } if(!PP.getGigaDrillBreakerInformed() && System.currentTimeMillis() - PP.getGigaDrillBreakerDeactivatedTimeStamp() >= (LoadProperties.gigaDrillBreakerCooldown * 1000)){ PP.setGigaDrillBreakerInformed(true); - player.sendMessage(Messages.getString("Skills.YourGigaDrillBreaker")); + player.sendMessage(mcLocale.getString("Skills.YourGigaDrillBreaker")); } } public static void hoeReadinessCheck(Player player){ PlayerProfile PP = Users.getProfile(player); if(mcPermissions.getInstance().herbalismAbility(player) && m.isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){ if(!PP.getGreenTerraMode() && !cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)){ - player.sendMessage(Messages.getString("Skills.TooTired") + player.sendMessage(mcLocale.getString("Skills.TooTired") +ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)+"s)"); return; } - player.sendMessage(Messages.getString("Skills.ReadyHoe")); + player.sendMessage(mcLocale.getString("Skills.ReadyHoe")); PP.setHoePreparationATS(System.currentTimeMillis()); PP.setHoePreparationMode(true); } @@ -122,27 +122,27 @@ public class Skills { { if(PP.getHoePreparationMode() && System.currentTimeMillis() - PP.getHoePreparationATS() >= 4000){ PP.setHoePreparationMode(false); - player.sendMessage(Messages.getString("Skills.LowerHoe")); + player.sendMessage(mcLocale.getString("Skills.LowerHoe")); } if(PP.getAxePreparationMode() && System.currentTimeMillis() - PP.getAxePreparationATS() >= 4000){ PP.setAxePreparationMode(false); - player.sendMessage(Messages.getString("Skills.LowerAxe")); + player.sendMessage(mcLocale.getString("Skills.LowerAxe")); } if(PP.getPickaxePreparationMode() && System.currentTimeMillis() - PP.getPickaxePreparationATS() >= 4000){ PP.setPickaxePreparationMode(false); - player.sendMessage(Messages.getString("Skills.LowerPickAxe")); + player.sendMessage(mcLocale.getString("Skills.LowerPickAxe")); } if(PP.getSwordsPreparationMode() && System.currentTimeMillis() - PP.getSwordsPreparationATS() >= 4000){ PP.setSwordsPreparationMode(false); - player.sendMessage(Messages.getString("Skills.LowerSword")); + player.sendMessage(mcLocale.getString("Skills.LowerSword")); } if(PP.getFistsPreparationMode() && System.currentTimeMillis() - PP.getFistsPreparationATS() >= 4000){ PP.setFistsPreparationMode(false); - player.sendMessage(Messages.getString("Skills.LowerFists")); + player.sendMessage(mcLocale.getString("Skills.LowerFists")); } if(PP.getShovelPreparationMode() && System.currentTimeMillis() - PP.getShovelPreparationATS() >= 4000){ PP.setShovelPreparationMode(false); - player.sendMessage(Messages.getString("Skills.LowerShovel")); + player.sendMessage(mcLocale.getString("Skills.LowerShovel")); } /* @@ -152,7 +152,7 @@ public class Skills { if(PP.getGreenTerraMode() && PP.getGreenTerraDeactivatedTimeStamp() <= System.currentTimeMillis()){ PP.setGreenTerraMode(false); PP.setGreenTerraInformed(false); - player.sendMessage(Messages.getString("Skills.GreenTerraOff")); + player.sendMessage(mcLocale.getString("Skills.GreenTerraOff")); } } /* @@ -162,7 +162,7 @@ public class Skills { if(PP.getSkullSplitterMode() && PP.getSkullSplitterDeactivatedTimeStamp() <= System.currentTimeMillis()){ PP.setSkullSplitterMode(false); PP.setSkullSplitterInformed(false); - player.sendMessage(Messages.getString("Skills.SkullSplitterOff")); + player.sendMessage(mcLocale.getString("Skills.SkullSplitterOff")); } } /* @@ -172,7 +172,7 @@ public class Skills { if(PP.getTreeFellerMode() && PP.getTreeFellerDeactivatedTimeStamp() <= System.currentTimeMillis()){ PP.setTreeFellerMode(false); PP.setTreeFellerInformed(false); - player.sendMessage(Messages.getString("Skills.TreeFellerOff")); + player.sendMessage(mcLocale.getString("Skills.TreeFellerOff")); } } /* @@ -182,7 +182,7 @@ public class Skills { if(PP.getSuperBreakerMode() && PP.getSuperBreakerDeactivatedTimeStamp() <= System.currentTimeMillis()){ PP.setSuperBreakerMode(false); PP.setSuperBreakerInformed(false); - player.sendMessage(Messages.getString("Skills.SuperBreakerOff")); + player.sendMessage(mcLocale.getString("Skills.SuperBreakerOff")); } } /* @@ -192,7 +192,7 @@ public class Skills { if(PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerDeactivatedTimeStamp() <= System.currentTimeMillis()){ PP.setGigaDrillBreakerMode(false); PP.setGigaDrillBreakerInformed(false); - player.sendMessage(Messages.getString("Skills.GigaDrillBreakerOff")); + player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOff")); } } /* @@ -202,7 +202,7 @@ public class Skills { if(PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() <= System.currentTimeMillis()){ PP.setSerratedStrikesMode(false); PP.setSerratedStrikesInformed(false); - player.sendMessage(Messages.getString("Skills.SerratedStrikesOff")); + player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOff")); } } /* @@ -212,7 +212,7 @@ public class Skills { if(PP.getBerserkMode() && PP.getBerserkDeactivatedTimeStamp() <= System.currentTimeMillis()){ PP.setBerserkMode(false); PP.setBerserkInformed(false); - player.sendMessage(Messages.getString("Skills.BerserkOff")); + player.sendMessage(mcLocale.getString("Skills.BerserkOff")); } } } @@ -224,47 +224,47 @@ public class Skills { return; if(mcPermissions.getInstance().miningAbility(player) && m.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode()){ if(!PP.getSuperBreakerMode() && !cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)){ - player.sendMessage(Messages.getString("Skills.TooTired") + player.sendMessage(mcLocale.getString("Skills.TooTired") +ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)+"s)"); return; } - player.sendMessage(Messages.getString("Skills.ReadyPickAxe")); + player.sendMessage(mcLocale.getString("Skills.ReadyPickAxe")); PP.setPickaxePreparationATS(System.currentTimeMillis()); PP.setPickaxePreparationMode(true); } if(mcPermissions.getInstance().excavationAbility(player) && m.isShovel(player.getItemInHand()) && !PP.getShovelPreparationMode()){ if(!PP.getGigaDrillBreakerMode() && !cooldownOver(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), LoadProperties.gigaDrillBreakerCooldown)){ - player.sendMessage(Messages.getString("Skills.TooTired") + player.sendMessage(mcLocale.getString("Skills.TooTired") +ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), LoadProperties.gigaDrillBreakerCooldown)+"s)"); return; } - player.sendMessage(Messages.getString("Skills.ReadyShovel")); + player.sendMessage(mcLocale.getString("Skills.ReadyShovel")); PP.setShovelPreparationATS(System.currentTimeMillis()); PP.setShovelPreparationMode(true); } if(mcPermissions.getInstance().swordsAbility(player) && m.isSwords(player.getItemInHand()) && !PP.getSwordsPreparationMode()){ if(!PP.getSerratedStrikesMode() && !cooldownOver(player, PP.getSerratedStrikesDeactivatedTimeStamp(), LoadProperties.serratedStrikeCooldown)){ - player.sendMessage(Messages.getString("Skills.TooTired") + player.sendMessage(mcLocale.getString("Skills.TooTired") +ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSerratedStrikesDeactivatedTimeStamp(), LoadProperties.serratedStrikeCooldown)+"s)"); return; } - player.sendMessage(Messages.getString("Skills.ReadySword")); + player.sendMessage(mcLocale.getString("Skills.ReadySword")); PP.setSwordsPreparationATS(System.currentTimeMillis()); PP.setSwordsPreparationMode(true); } if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !PP.getFistsPreparationMode()){ if(!PP.getBerserkMode() && !cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)){ - player.sendMessage(Messages.getString("Skills.TooTired") + player.sendMessage(mcLocale.getString("Skills.TooTired") +ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)+"s)"); return; } - player.sendMessage(Messages.getString("Skills.ReadyFists")); + player.sendMessage(mcLocale.getString("Skills.ReadyFists")); PP.setFistsPreparationATS(System.currentTimeMillis()); PP.setFistsPreparationMode(true); } if((mcPermissions.getInstance().axes(player) || mcPermissions.getInstance().woodcutting(player)) && !PP.getAxePreparationMode()){ if(m.isAxes(player.getItemInHand())){ - player.sendMessage(Messages.getString("Skills.ReadyAxe")); + player.sendMessage(mcLocale.getString("Skills.ReadyAxe")); PP.setAxePreparationATS(System.currentTimeMillis()); PP.setAxePreparationMode(true); } @@ -294,7 +294,7 @@ public class Skills { Leaderboard.updateLeaderboard(ps, "taming"); } if(player != null && PP != null && PP.getSkillToString("taming") != null) - player.sendMessage(Messages.getString("Skills.TamingUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("taming")})); + player.sendMessage(mcLocale.getString("Skills.TamingUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("taming")})); } /* * ACROBATICS @@ -317,7 +317,7 @@ public class Skills { } if(player != null && PP != null && PP.getSkillToString("acrobatics") != null) - player.sendMessage(Messages.getString("Skills.AcrobaticsUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("acrobatics")})); + player.sendMessage(mcLocale.getString("Skills.AcrobaticsUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("acrobatics")})); } /* * ARCHERY @@ -339,7 +339,7 @@ public class Skills { Leaderboard.updateLeaderboard(ps, "archery"); } if(player != null && PP != null && PP.getSkillToString("archery") != null) - player.sendMessage(Messages.getString("Skills.ArcheryUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("archery")})); + player.sendMessage(mcLocale.getString("Skills.ArcheryUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("archery")})); } /* * SWORDS @@ -362,7 +362,7 @@ public class Skills { } if(player != null && PP != null && PP.getSkillToString("swords") != null) - player.sendMessage(Messages.getString("Skills.SwordsUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("swords")})); + player.sendMessage(mcLocale.getString("Skills.SwordsUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("swords")})); } /* * AXES @@ -384,7 +384,7 @@ public class Skills { Leaderboard.updateLeaderboard(ps, "axes"); } if(player != null && PP != null && PP.getSkillToString("axes") != null) - player.sendMessage(Messages.getString("Skills.AxesUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("axes")})); + player.sendMessage(mcLocale.getString("Skills.AxesUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("axes")})); } /* * UNARMED @@ -406,7 +406,7 @@ public class Skills { Leaderboard.updateLeaderboard(ps, "unarmed"); } if(player != null && PP != null && PP.getSkillToString("unarmed") != null) - player.sendMessage(Messages.getString("Skills.UnarmedUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("unarmed")})); + player.sendMessage(mcLocale.getString("Skills.UnarmedUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("unarmed")})); } /* * HERBALISM @@ -428,7 +428,7 @@ public class Skills { Leaderboard.updateLeaderboard(ps, "herbalism"); } if(player != null && PP != null && PP.getSkillToString("herbalism") != null) - player.sendMessage(Messages.getString("Skills.HerbalismUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("herbalism")})); + player.sendMessage(mcLocale.getString("Skills.HerbalismUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("herbalism")})); } /* * MINING @@ -450,7 +450,7 @@ public class Skills { Leaderboard.updateLeaderboard(ps, "mining"); } if(player != null && PP != null && PP.getSkillToString("mining") != null) - player.sendMessage(Messages.getString("Skills.MiningUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("mining")})); + player.sendMessage(mcLocale.getString("Skills.MiningUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("mining")})); } /* * WOODCUTTING @@ -472,7 +472,7 @@ public class Skills { Leaderboard.updateLeaderboard(ps, "woodcutting"); } if(player != null && PP != null && PP.getSkillToString("woodcutting") != null) - player.sendMessage(Messages.getString("Skills.WoodcuttingUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("woodcutting")})); + player.sendMessage(mcLocale.getString("Skills.WoodcuttingUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("woodcutting")})); } /* * REPAIR @@ -494,7 +494,7 @@ public class Skills { Leaderboard.updateLeaderboard(ps, "repair"); } if(player != null && PP != null && PP.getSkillToString("repair") != null) - player.sendMessage(Messages.getString("Skills.RepairUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("repair")})); + player.sendMessage(mcLocale.getString("Skills.RepairUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("repair")})); } /* * EXCAVATION @@ -516,7 +516,7 @@ public class Skills { Leaderboard.updateLeaderboard(ps, "excavation"); } if(player != null && PP != null && PP.getSkillToString("excavation") != null) - player.sendMessage(Messages.getString("Skills.ExcavationUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("excavation")})); + player.sendMessage(mcLocale.getString("Skills.ExcavationUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("excavation")})); //player.sendMessage(ChatColor.YELLOW+"Excavation skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getSkillToString("excavation")+")"); } @@ -537,13 +537,13 @@ public class Skills { if(skillname.equals("all")){ return true; } - if(skillname.equals("sorcery")){ + else if(skillname.equals("sorcery")){ return true; } - if(skillname.equals("taming")){ + else if(skillname.equals("taming")){ return true; } - if(skillname.equals("mining")){ + else if(skillname.equals("mining")){ return true; } else if(skillname.equals("woodcutting")){ diff --git a/mcMMO/com/gmail/nossr50/skills/Sorcery.java b/mcMMO/com/gmail/nossr50/skills/Sorcery.java index c9acc1ba4..8e08b2151 100644 --- a/mcMMO/com/gmail/nossr50/skills/Sorcery.java +++ b/mcMMO/com/gmail/nossr50/skills/Sorcery.java @@ -7,13 +7,13 @@ import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; -import com.gmail.nossr50.Messages; 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.PlayerProfile; +import com.gmail.nossr50.locale.mcLocale; public class Sorcery { @@ -37,13 +37,13 @@ public class Sorcery } public void informSelected(String spellname, int cost, Player player) { - player.sendMessage(Messages.getString("Sorcery.SpellSelected", new Object[] {spellname, cost})); + player.sendMessage(mcLocale.getString("Sorcery.SpellSelected", new Object[] {spellname, cost})); } public void informSpell(String spellname, Player player) { PlayerProfile PP = Users.getProfile(player); - player.sendMessage(Messages.getString("Sorcery.HasCast") +" "+spellname+" "+ Messages.getString("Sorcery.Current_Mana")+ChatColor.YELLOW+"("+ChatColor.GRAY+PP.getCurrentMana()+ChatColor.YELLOW+"/"+ChatColor.GREEN+PP.getMaxMana()+ChatColor.YELLOW+")"); + player.sendMessage(mcLocale.getString("Sorcery.HasCast") +" "+spellname+" "+ mcLocale.getString("Sorcery.Current_Mana")+ChatColor.YELLOW+"("+ChatColor.GRAY+PP.getCurrentMana()+ChatColor.YELLOW+"/"+ChatColor.GREEN+PP.getMaxMana()+ChatColor.YELLOW+")"); } public void shoutSpell(String spellname, Player player) @@ -79,7 +79,7 @@ public class Sorcery PP.setGreenDyeCycleSel(1); PP.setGreenDyeCycle(0); - informSelected(Messages.getString("Sorcery.Curative.Self"), LoadProperties.cure_self, player); + informSelected(mcLocale.getString("Sorcery.Curative.Self"), LoadProperties.cure_self, player); break; } @@ -94,7 +94,7 @@ public class Sorcery PP.setGreenDyeCycleSel(0); PP.setGreenDyeCycle(1); - informSelected(Messages.getString("Sorcery.Curative.Other"), LoadProperties.cure_other, player); + informSelected(mcLocale.getString("Sorcery.Curative.Other"), LoadProperties.cure_other, player); break; } else diff --git a/mcMMO/com/gmail/nossr50/skills/Swords.java b/mcMMO/com/gmail/nossr50/skills/Swords.java index 28d59cbb5..ba8fdef3f 100644 --- a/mcMMO/com/gmail/nossr50/skills/Swords.java +++ b/mcMMO/com/gmail/nossr50/skills/Swords.java @@ -1,7 +1,6 @@ package com.gmail.nossr50.skills; import org.bukkit.ChatColor; -import org.bukkit.entity.Animals; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -12,17 +11,16 @@ import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.plugin.Plugin; import com.gmail.nossr50.Combat; -import com.gmail.nossr50.Messages; 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.PlayerProfile; +import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.party.Party; -public class Swords { - +public class Swords +{ public static void serratedStrikesActivationCheck(Player player, Plugin pluginx){ PlayerProfile PP = Users.getProfile(player); if(m.isSwords(player.getItemInHand())) @@ -41,11 +39,11 @@ public class Swords { if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() < System.currentTimeMillis()) { - player.sendMessage(Messages.getString("Skills.SerratedStrikesOn")); + player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOn")); for(Player y : pluginx.getServer().getOnlinePlayers()) { if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(Messages.getString("Skills.SerratedStrikesPlayer", new Object[] {player.getName()})); + y.sendMessage(mcLocale.getString("Skills.SerratedStrikesPlayer", new Object[] {player.getName()})); } PP.setSerratedStrikesActivatedTimeStamp(System.currentTimeMillis()); PP.setSerratedStrikesDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); @@ -231,8 +229,6 @@ public class Swords { } public static void bleedSimulate(mcMMO plugin) { - long before = System.currentTimeMillis(); - //Add items from Que list to BleedTrack list for(LivingEntity x : plugin.misc.bleedQue) @@ -269,11 +265,5 @@ public class Swords { x.damage(2); } } - - long after = System.currentTimeMillis(); - if(LoadProperties.print_reports) - { - plugin.bleedSimulation+=(after-before); - } } } diff --git a/mcMMO/com/gmail/nossr50/skills/Taming.java b/mcMMO/com/gmail/nossr50/skills/Taming.java index 3604524de..9c63f2f95 100644 --- a/mcMMO/com/gmail/nossr50/skills/Taming.java +++ b/mcMMO/com/gmail/nossr50/skills/Taming.java @@ -8,7 +8,8 @@ import org.bukkit.plugin.Plugin; public class Taming { - public static boolean ownerOnline(Wolf theWolf, Plugin pluginx){ + public static boolean ownerOnline(Wolf theWolf, Plugin pluginx) + { for(Player x : pluginx.getServer().getOnlinePlayers()) { if(x instanceof AnimalTamer) diff --git a/mcMMO/com/gmail/nossr50/skills/Unarmed.java b/mcMMO/com/gmail/nossr50/skills/Unarmed.java index 1b0fd0fa0..a96d9def9 100644 --- a/mcMMO/com/gmail/nossr50/skills/Unarmed.java +++ b/mcMMO/com/gmail/nossr50/skills/Unarmed.java @@ -6,11 +6,11 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; -import com.gmail.nossr50.Messages; 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.locale.mcLocale; public class Unarmed { public static void berserkActivationCheck(Player player, Plugin pluginx){ @@ -27,10 +27,10 @@ public class Unarmed { } if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)){ - player.sendMessage(Messages.getString("Skills.BerserkOn")); + player.sendMessage(mcLocale.getString("Skills.BerserkOn")); for(Player y : pluginx.getServer().getOnlinePlayers()){ if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(Messages.getString("Skills.BerserkPlayer", new Object[] {player.getName()})); + y.sendMessage(mcLocale.getString("Skills.BerserkPlayer", new Object[] {player.getName()})); } PP.setBerserkActivatedTimeStamp(System.currentTimeMillis()); PP.setBerserkDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); @@ -60,7 +60,7 @@ public class Unarmed { Location loc = defender.getLocation(); if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0) { - defender.sendMessage(Messages.getString("Skills.Disarmed")); + defender.sendMessage(mcLocale.getString("Skills.Disarmed")); ItemStack item = defender.getItemInHand(); if(item != null) { @@ -75,7 +75,7 @@ public class Unarmed { Location loc = defender.getLocation(); if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0) { - defender.sendMessage(Messages.getString("Skills.Disarmed")); + defender.sendMessage(mcLocale.getString("Skills.Disarmed")); ItemStack item = defender.getItemInHand(); if(item != null) { diff --git a/mcMMO/com/gmail/nossr50/skills/WoodCutting.java b/mcMMO/com/gmail/nossr50/skills/WoodCutting.java index ff98f5051..4845a30cb 100644 --- a/mcMMO/com/gmail/nossr50/skills/WoodCutting.java +++ b/mcMMO/com/gmail/nossr50/skills/WoodCutting.java @@ -10,11 +10,11 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; -import com.gmail.nossr50.Messages; import com.gmail.nossr50.Users; import com.gmail.nossr50.m; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.config.*; @@ -58,10 +58,10 @@ public class WoodCutting { } if(!PP.getTreeFellerMode() && Skills.cooldownOver(player, PP.getTreeFellerDeactivatedTimeStamp(), LoadProperties.treeFellerCooldown)){ - player.sendMessage(Messages.getString("Skills.TreeFellerOn")); + player.sendMessage(mcLocale.getString("Skills.TreeFellerOn")); for(Player y : pluginx.getServer().getOnlinePlayers()){ if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(Messages.getString("Skills.TreeFellerPlayer", new Object[] {player.getName()})); + y.sendMessage(mcLocale.getString("Skills.TreeFellerPlayer", new Object[] {player.getName()})); } PP.setTreeFellerActivatedTimeStamp(System.currentTimeMillis()); PP.setTreeFellerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); diff --git a/mcMMO/plugin.yml b/mcMMO/plugin.yml index 31cb2f755..79a1e80d4 100644 --- a/mcMMO/plugin.yml +++ b/mcMMO/plugin.yml @@ -1,3 +1,66 @@ -name: mcMMO -main: com.gmail.nossr50.mcMMO -version: 1.0.34 \ No newline at end of file +name: mcMMO +main: com.gmail.nossr50.mcMMO +version: 1.0.35 +commands: + mcc: + description: Lists mcMMO commands + mcmmo: + description: Shows a brief mod description + mctop: + description: Shows leader boards for mcMMO + addxp: + description: Add XP to a user + mcability: + description: Toggle whether or not abilities get readied on right click + mcrefresh: + description: Refresh all cooldowns for mcMMO + mcgod: + description: Make yourself invulnerable + stats: + description: Shows your mcMMO stats and xp + mmoedit: + description: Edit the skill values for a user + ptp: + description: Teleport to a party member + party: + description: Create/join a party + myspawn: + description: Teleport to your MySpawn + whois: + description: View mcMMO stats of another player + invite: + description: Invite a player into your party + accept: + description: Accept a party invite + clearmyspawn: + description: Clear your MySpawn location + mmoupdate: + description: Convert from Flat File to MySQL + p: + description: Toggle Party chat or send party chat messages + excavation: + description: Detailed skill info + herbalism: + description: Detailed skill info + mining: + description: Detailed skill info + woodcutting: + description: Detailed skill info + axes: + description: Detailed skill info + archery: + description: Detailed skill info + swords: + description: Detailed skill info + taming: + description: Detailed skill info + unarmed: + description: Detailed skill info + acrobatics: + description: Detailed skill info + repair: + description: Detailed skill info + a: + description: Toggle Admin chat or send admin chat messages + sorcery: + description: Detailed skill info \ No newline at end of file