diff --git a/src/Changelog.txt b/Changelog.txt similarity index 100% rename from src/Changelog.txt rename to Changelog.txt diff --git a/src/com/gmail/nossr50/Combat.java b/src/main/java/com/gmail/nossr50/Combat.java similarity index 97% rename from src/com/gmail/nossr50/Combat.java rename to src/main/java/com/gmail/nossr50/Combat.java index 971173bea..feefa161d 100644 --- a/src/com/gmail/nossr50/Combat.java +++ b/src/main/java/com/gmail/nossr50/Combat.java @@ -1,420 +1,420 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50; - -import org.bukkit.World; -import org.bukkit.entity.*; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityDamageEvent.DamageCause; -import org.bukkit.plugin.Plugin; - -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.party.Party; -import com.gmail.nossr50.skills.Acrobatics; -import com.gmail.nossr50.skills.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 static void combatChecks(EntityDamageEvent event, mcMMO pluginx) - { - if(event.isCancelled() || event.getDamage() == 0) - return; - - if(event instanceof EntityDamageByEntityEvent) - { - /* - * OFFENSIVE CHECKS FOR PLAYERS VERSUS ENTITIES - */ - if(((EntityDamageByEntityEvent) event).getDamager() instanceof Player) - { - //Declare Things - EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; - Player attacker = (Player)((EntityDamageByEntityEvent) event).getDamager(); - PlayerProfile PPa = Users.getProfile(attacker); - - //Damage modifiers - if(mcPermissions.getInstance().unarmed(attacker) && attacker.getItemInHand().getTypeId() == 0) //Unarmed - Unarmed.unarmedBonus(attacker, eventb); - if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker) && Users.getProfile(attacker).getSkillLevel(SkillType.AXES) >= 500) - event.setDamage(event.getDamage()+4); - - //If there are any abilities to activate - combatAbilityChecks(attacker, PPa, pluginx); - - //Check for offensive procs - if(!(((EntityDamageByEntityEvent) event).getDamager() instanceof Arrow)) - { - if(mcPermissions.getInstance().axes(attacker)) - Axes.axeCriticalCheck(attacker, eventb, pluginx); //Axe Criticals - - if(!pluginx.misc.bleedTracker.contains((LivingEntity) event.getEntity())) //Swords Bleed - Swords.bleedCheck(attacker, (LivingEntity)event.getEntity(), pluginx); - - if(event.getEntity() instanceof Player && mcPermissions.getInstance().unarmed(attacker)) - { - Player defender = (Player)event.getEntity(); - Unarmed.disarmProcCheck(attacker, defender); - } - - - - //Modify the event damage if Attacker is Berserk - if(PPa.getBerserkMode()) - event.setDamage(event.getDamage() + (event.getDamage() / 2)); - - //Handle Ability Interactions - if(PPa.getSkullSplitterMode() && m.isAxes(attacker.getItemInHand())) - Axes.applyAoeDamage(attacker, eventb, pluginx); - if(PPa.getSerratedStrikesMode() && m.isSwords(attacker.getItemInHand())) - Swords.applySerratedStrikes(attacker, eventb, pluginx); - - //Experience - if(event.getEntity() instanceof Player) - { - Player defender = (Player)event.getEntity(); - PlayerProfile PPd = Users.getProfile(defender); - if(attacker != null && defender != null && LoadProperties.pvpxp) - { - if(System.currentTimeMillis() >= (PPd.getRespawnATS()*1000) + 5000 - && ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis() - && defender.getHealth() >= 1) - { - //Prevent a ridiculous amount of XP being granted by capping it at the remaining health of the mob - int hpLeft = defender.getHealth(), xpinc = 0; - - if(hpLeft < event.getDamage()) - xpinc = event.getDamage(); - else - xpinc = hpLeft; - - int xp = (int) (xpinc * 2 * LoadProperties.pvpxprewardmodifier); - - if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)) - PPa.addXP(SkillType.AXES, xp*10, attacker); - if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker)) - PPa.addXP(SkillType.SWORDS, xp*10, attacker); - if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker)) - PPa.addXP(SkillType.UNARMED, xp*10, attacker); - } - } - } - - if(!pluginx.misc.mobSpawnerList.contains(event.getEntity())) - { - int xp = getXp(event.getEntity(), event); - - if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker)) - PPa.addXP(SkillType.SWORDS, xp*10, attacker); - else if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)) - PPa.addXP(SkillType.AXES, xp*10, attacker); - else if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker)) - PPa.addXP(SkillType.UNARMED, xp*10, attacker); - } - Skills.XpCheckAll(attacker); - - if(event.getEntity() instanceof Wolf) - { - Wolf theWolf = (Wolf)event.getEntity(); - - if(attacker.getItemInHand().getTypeId() == 352 && mcPermissions.getInstance().taming(attacker)) - { - event.setCancelled(true); - if(theWolf.isTamed()) - { - 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(mcLocale.getString("Combat.BeastLore")+" "+ - mcLocale.getString("Combat.BeastLoreHealthWolf", new Object[] {theWolf.getHealth()})); - } - } - } - } - } - } - - /* - * OFFENSIVE CHECKS FOR WOLVES VERSUS ENTITIES - */ - if(event instanceof EntityDamageByEntityEvent && ((EntityDamageByEntityEvent) event).getDamager() instanceof Wolf) - { - EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; - Wolf theWolf = (Wolf) eventb.getDamager(); - if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx)) - { - if(Taming.getOwner(theWolf, pluginx) == null) - return; - Player master = Taming.getOwner(theWolf, pluginx); - PlayerProfile PPo = Users.getProfile(master); - - if(mcPermissions.getInstance().taming(master)) - { - //Sharpened Claws - if(PPo.getSkillLevel(SkillType.TAMING) >= 750) - { - event.setDamage(event.getDamage() + 2); - } - - //Gore - if(Math.random() * 1000 <= PPo.getSkillLevel(SkillType.TAMING)) - { - event.setDamage(event.getDamage() * 2); - - if(event.getEntity() instanceof Player) - { - Player target = (Player)event.getEntity(); - target.sendMessage(mcLocale.getString("Combat.StruckByGore")); //$NON-NLS-1$ - Users.getProfile(target).setBleedTicks(2); - } - else - pluginx.misc.addToBleedQue((LivingEntity) event.getEntity()); - - master.sendMessage(mcLocale.getString("Combat.Gore")); //$NON-NLS-1$ - } - if(!event.getEntity().isDead() && !pluginx.misc.mobSpawnerList.contains(event.getEntity())) - { - int xp = getXp(event.getEntity(), event); - Users.getProfile(master).addXP(SkillType.TAMING, xp*10, master); - - if(event.getEntity() instanceof Player) - { - xp = (event.getDamage() * 2); - Users.getProfile(master).addXP(SkillType.TAMING, (int)((xp*10)*1.5), master); - } - Skills.XpCheckSkill(SkillType.TAMING, master); - } - } - } - } - //Another offensive check for Archery - if(event instanceof EntityDamageByEntityEvent && event.getCause() == DamageCause.PROJECTILE && ((EntityDamageByEntityEvent) event).getDamager() instanceof Arrow) - archeryCheck((EntityDamageByEntityEvent)event, pluginx); - - /* - * DEFENSIVE CHECKS - */ - if(event instanceof EntityDamageByEntityEvent && event.getEntity() instanceof Player) - { - Swords.counterAttackChecks((EntityDamageByEntityEvent)event); - Acrobatics.dodgeChecks((EntityDamageByEntityEvent)event); - } - /* - * DEFENSIVE CHECKS FOR WOLVES - */ - - if(event.getEntity() instanceof Wolf) - { - Wolf theWolf = (Wolf) event.getEntity(); - - if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx)) - { - if(Taming.getOwner(theWolf, pluginx) == null) - return; - - Player master = Taming.getOwner(theWolf, pluginx); - PlayerProfile PPo = Users.getProfile(master); - if(mcPermissions.getInstance().taming(master)) - { - //Shock-Proof - if((event.getCause() == DamageCause.ENTITY_EXPLOSION || event.getCause() == DamageCause.BLOCK_EXPLOSION) && PPo.getSkillLevel(SkillType.TAMING) >= 500) - { - event.setDamage(2); - } - - //Thick Fur - if(PPo.getSkillLevel(SkillType.TAMING) >= 250) - event.setDamage(event.getDamage() / 2); - } - } - } - } - - public static void combatAbilityChecks(Player attacker, PlayerProfile PPa, Plugin pluginx) - { - //Check to see if any abilities need to be activated - if(PPa.getAxePreparationMode()) - Axes.skullSplitterCheck(attacker); - if(PPa.getSwordsPreparationMode()) - Swords.serratedStrikesActivationCheck(attacker); - if(PPa.getFistsPreparationMode()) - Unarmed.berserkActivationCheck(attacker); - } - public static void archeryCheck(EntityDamageByEntityEvent event, mcMMO pluginx) - { - Arrow arrow = (Arrow)event.getDamager(); - Entity y = arrow.getShooter(); - Entity x = event.getEntity(); - if(x instanceof Player) - { - Player defender = (Player)x; - PlayerProfile PPd = Users.getProfile(defender); - if(PPd == null) - Users.addUser(defender); - if(mcPermissions.getInstance().unarmed(defender) && defender.getItemInHand().getTypeId() == 0) - { - if(defender != null && PPd.getSkillLevel(SkillType.UNARMED) >= 1000) - { - if(Math.random() * 1000 <= 500) - { - event.setCancelled(true); - defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ - return; - } - } else if(defender != null && Math.random() * 1000 <= (PPd.getSkillLevel(SkillType.UNARMED) / 2)) - { - event.setCancelled(true); - defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ - return; - } - } - } - /* - * If attacker is player - */ - if(y instanceof Player) - { - Player attacker = (Player)y; - PlayerProfile PPa = Users.getProfile(attacker); - if(mcPermissions.getInstance().archery(attacker)) - { - Archery.trackArrows(pluginx, x, event, attacker); - - /* - * IGNITION - */ - Archery.ignitionCheck(x, event, attacker); - /* - * Defender is Monster - */ - if(!pluginx.misc.mobSpawnerList.contains(x)) - { - int xp = getXp(event.getEntity(), event); - PPa.addXP(SkillType.ARCHERY, xp*10, attacker); - } - /* - * Attacker is Player - */ - if(x instanceof Player){ - Player defender = (Player)x; - PlayerProfile PPd = Users.getProfile(defender); - /* - * Stuff for the daze proc - */ - if(PPa.inParty() && PPd.inParty()) - { - if(Party.getInstance().inSameParty(defender, attacker)) - { - event.setCancelled(true); - return; - } - } - /* - * PVP XP - */ - if(LoadProperties.pvpxp && !Party.getInstance().inSameParty(attacker, defender) - && ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis() && !attacker.getName().equals(defender.getName())) - { - int xp = (int) ((event.getDamage() * 2) * 10); - PPa.addXP(SkillType.ARCHERY, xp, attacker); - } - /* - * DAZE PROC - */ - Archery.dazeCheck(defender, attacker); - } - } - Skills.XpCheckSkill(SkillType.ARCHERY, attacker); - } - } - public static void dealDamage(Entity target, int dmg){ - if(target instanceof Player){ - ((Player) target).damage(dmg); - } - if(target instanceof Animals){ - ((Animals) target).damage(dmg); - } - if(target instanceof Monster){ - ((Monster) target).damage(dmg); - } - } - public static boolean pvpAllowed(EntityDamageByEntityEvent event, World world) - { - if(!event.getEntity().getWorld().getPVP()) - return false; - //If it made it this far, pvp is enabled - return true; - } - public static int getXp(Entity entity, EntityDamageEvent event) - { - int xp = 0; - if(entity instanceof LivingEntity) - { - LivingEntity le = (LivingEntity)entity; - //Prevent a ridiculous amount of XP being granted by capping it at the remaining health of the entity - int hpLeft = le.getHealth(), xpinc = 0; - - if(hpLeft < event.getDamage()) - xpinc = event.getDamage(); - else - xpinc = hpLeft; - - if(entity instanceof Animals) - { - xp = (int) (xpinc * 1); - } else - { - if(entity instanceof Enderman) - xp = (xpinc * 2); - else if(entity instanceof Creeper) - xp = (xpinc * 4); - else if(entity instanceof Silverfish) - xp = (xpinc * 3); - else if(entity instanceof CaveSpider) - xp = (xpinc * 3); - else if(entity instanceof Spider) - xp = (xpinc * 3); - else if(entity instanceof Skeleton) - xp = (xpinc * 2); - else if(entity instanceof Zombie) - xp = (xpinc * 2); - else if(entity instanceof PigZombie) - xp = (xpinc * 3); - else if(entity instanceof Slime) - xp = (xpinc * 2); - else if(entity instanceof Ghast) - xp = (xpinc * 3); - else if(entity instanceof Blaze) - xp = (xpinc * 3); - else if(entity instanceof EnderDragon) - xp = (xpinc * 8); - } - } - return xp; - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50; + +import org.bukkit.World; +import org.bukkit.entity.*; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.plugin.Plugin; + +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.party.Party; +import com.gmail.nossr50.skills.Acrobatics; +import com.gmail.nossr50.skills.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 static void combatChecks(EntityDamageEvent event, mcMMO pluginx) + { + if(event.isCancelled() || event.getDamage() == 0) + return; + + if(event instanceof EntityDamageByEntityEvent) + { + /* + * OFFENSIVE CHECKS FOR PLAYERS VERSUS ENTITIES + */ + if(((EntityDamageByEntityEvent) event).getDamager() instanceof Player) + { + //Declare Things + EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; + Player attacker = (Player)((EntityDamageByEntityEvent) event).getDamager(); + PlayerProfile PPa = Users.getProfile(attacker); + + //Damage modifiers + if(mcPermissions.getInstance().unarmed(attacker) && attacker.getItemInHand().getTypeId() == 0) //Unarmed + Unarmed.unarmedBonus(attacker, eventb); + if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker) && Users.getProfile(attacker).getSkillLevel(SkillType.AXES) >= 500) + event.setDamage(event.getDamage()+4); + + //If there are any abilities to activate + combatAbilityChecks(attacker, PPa, pluginx); + + //Check for offensive procs + if(!(((EntityDamageByEntityEvent) event).getDamager() instanceof Arrow)) + { + if(mcPermissions.getInstance().axes(attacker)) + Axes.axeCriticalCheck(attacker, eventb, pluginx); //Axe Criticals + + if(!pluginx.misc.bleedTracker.contains((LivingEntity) event.getEntity())) //Swords Bleed + Swords.bleedCheck(attacker, (LivingEntity)event.getEntity(), pluginx); + + if(event.getEntity() instanceof Player && mcPermissions.getInstance().unarmed(attacker)) + { + Player defender = (Player)event.getEntity(); + Unarmed.disarmProcCheck(attacker, defender); + } + + + + //Modify the event damage if Attacker is Berserk + if(PPa.getBerserkMode()) + event.setDamage(event.getDamage() + (event.getDamage() / 2)); + + //Handle Ability Interactions + if(PPa.getSkullSplitterMode() && m.isAxes(attacker.getItemInHand())) + Axes.applyAoeDamage(attacker, eventb, pluginx); + if(PPa.getSerratedStrikesMode() && m.isSwords(attacker.getItemInHand())) + Swords.applySerratedStrikes(attacker, eventb, pluginx); + + //Experience + if(event.getEntity() instanceof Player) + { + Player defender = (Player)event.getEntity(); + PlayerProfile PPd = Users.getProfile(defender); + if(attacker != null && defender != null && LoadProperties.pvpxp) + { + if(System.currentTimeMillis() >= (PPd.getRespawnATS()*1000) + 5000 + && ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis() + && defender.getHealth() >= 1) + { + //Prevent a ridiculous amount of XP being granted by capping it at the remaining health of the mob + int hpLeft = defender.getHealth(), xpinc = 0; + + if(hpLeft < event.getDamage()) + xpinc = event.getDamage(); + else + xpinc = hpLeft; + + int xp = (int) (xpinc * 2 * LoadProperties.pvpxprewardmodifier); + + if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)) + PPa.addXP(SkillType.AXES, xp*10, attacker); + if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker)) + PPa.addXP(SkillType.SWORDS, xp*10, attacker); + if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker)) + PPa.addXP(SkillType.UNARMED, xp*10, attacker); + } + } + } + + if(!pluginx.misc.mobSpawnerList.contains(event.getEntity())) + { + int xp = getXp(event.getEntity(), event); + + if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker)) + PPa.addXP(SkillType.SWORDS, xp*10, attacker); + else if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)) + PPa.addXP(SkillType.AXES, xp*10, attacker); + else if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker)) + PPa.addXP(SkillType.UNARMED, xp*10, attacker); + } + Skills.XpCheckAll(attacker); + + if(event.getEntity() instanceof Wolf) + { + Wolf theWolf = (Wolf)event.getEntity(); + + if(attacker.getItemInHand().getTypeId() == 352 && mcPermissions.getInstance().taming(attacker)) + { + event.setCancelled(true); + if(theWolf.isTamed()) + { + 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(mcLocale.getString("Combat.BeastLore")+" "+ + mcLocale.getString("Combat.BeastLoreHealthWolf", new Object[] {theWolf.getHealth()})); + } + } + } + } + } + } + + /* + * OFFENSIVE CHECKS FOR WOLVES VERSUS ENTITIES + */ + if(event instanceof EntityDamageByEntityEvent && ((EntityDamageByEntityEvent) event).getDamager() instanceof Wolf) + { + EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; + Wolf theWolf = (Wolf) eventb.getDamager(); + if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx)) + { + if(Taming.getOwner(theWolf, pluginx) == null) + return; + Player master = Taming.getOwner(theWolf, pluginx); + PlayerProfile PPo = Users.getProfile(master); + + if(mcPermissions.getInstance().taming(master)) + { + //Sharpened Claws + if(PPo.getSkillLevel(SkillType.TAMING) >= 750) + { + event.setDamage(event.getDamage() + 2); + } + + //Gore + if(Math.random() * 1000 <= PPo.getSkillLevel(SkillType.TAMING)) + { + event.setDamage(event.getDamage() * 2); + + if(event.getEntity() instanceof Player) + { + Player target = (Player)event.getEntity(); + target.sendMessage(mcLocale.getString("Combat.StruckByGore")); //$NON-NLS-1$ + Users.getProfile(target).setBleedTicks(2); + } + else + pluginx.misc.addToBleedQue((LivingEntity) event.getEntity()); + + master.sendMessage(mcLocale.getString("Combat.Gore")); //$NON-NLS-1$ + } + if(!event.getEntity().isDead() && !pluginx.misc.mobSpawnerList.contains(event.getEntity())) + { + int xp = getXp(event.getEntity(), event); + Users.getProfile(master).addXP(SkillType.TAMING, xp*10, master); + + if(event.getEntity() instanceof Player) + { + xp = (event.getDamage() * 2); + Users.getProfile(master).addXP(SkillType.TAMING, (int)((xp*10)*1.5), master); + } + Skills.XpCheckSkill(SkillType.TAMING, master); + } + } + } + } + //Another offensive check for Archery + if(event instanceof EntityDamageByEntityEvent && event.getCause() == DamageCause.PROJECTILE && ((EntityDamageByEntityEvent) event).getDamager() instanceof Arrow) + archeryCheck((EntityDamageByEntityEvent)event, pluginx); + + /* + * DEFENSIVE CHECKS + */ + if(event instanceof EntityDamageByEntityEvent && event.getEntity() instanceof Player) + { + Swords.counterAttackChecks((EntityDamageByEntityEvent)event); + Acrobatics.dodgeChecks((EntityDamageByEntityEvent)event); + } + /* + * DEFENSIVE CHECKS FOR WOLVES + */ + + if(event.getEntity() instanceof Wolf) + { + Wolf theWolf = (Wolf) event.getEntity(); + + if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx)) + { + if(Taming.getOwner(theWolf, pluginx) == null) + return; + + Player master = Taming.getOwner(theWolf, pluginx); + PlayerProfile PPo = Users.getProfile(master); + if(mcPermissions.getInstance().taming(master)) + { + //Shock-Proof + if((event.getCause() == DamageCause.ENTITY_EXPLOSION || event.getCause() == DamageCause.BLOCK_EXPLOSION) && PPo.getSkillLevel(SkillType.TAMING) >= 500) + { + event.setDamage(2); + } + + //Thick Fur + if(PPo.getSkillLevel(SkillType.TAMING) >= 250) + event.setDamage(event.getDamage() / 2); + } + } + } + } + + public static void combatAbilityChecks(Player attacker, PlayerProfile PPa, Plugin pluginx) + { + //Check to see if any abilities need to be activated + if(PPa.getAxePreparationMode()) + Axes.skullSplitterCheck(attacker); + if(PPa.getSwordsPreparationMode()) + Swords.serratedStrikesActivationCheck(attacker); + if(PPa.getFistsPreparationMode()) + Unarmed.berserkActivationCheck(attacker); + } + public static void archeryCheck(EntityDamageByEntityEvent event, mcMMO pluginx) + { + Arrow arrow = (Arrow)event.getDamager(); + Entity y = arrow.getShooter(); + Entity x = event.getEntity(); + if(x instanceof Player) + { + Player defender = (Player)x; + PlayerProfile PPd = Users.getProfile(defender); + if(PPd == null) + Users.addUser(defender); + if(mcPermissions.getInstance().unarmed(defender) && defender.getItemInHand().getTypeId() == 0) + { + if(defender != null && PPd.getSkillLevel(SkillType.UNARMED) >= 1000) + { + if(Math.random() * 1000 <= 500) + { + event.setCancelled(true); + defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ + return; + } + } else if(defender != null && Math.random() * 1000 <= (PPd.getSkillLevel(SkillType.UNARMED) / 2)) + { + event.setCancelled(true); + defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ + return; + } + } + } + /* + * If attacker is player + */ + if(y instanceof Player) + { + Player attacker = (Player)y; + PlayerProfile PPa = Users.getProfile(attacker); + if(mcPermissions.getInstance().archery(attacker)) + { + Archery.trackArrows(pluginx, x, event, attacker); + + /* + * IGNITION + */ + Archery.ignitionCheck(x, event, attacker); + /* + * Defender is Monster + */ + if(!pluginx.misc.mobSpawnerList.contains(x)) + { + int xp = getXp(event.getEntity(), event); + PPa.addXP(SkillType.ARCHERY, xp*10, attacker); + } + /* + * Attacker is Player + */ + if(x instanceof Player){ + Player defender = (Player)x; + PlayerProfile PPd = Users.getProfile(defender); + /* + * Stuff for the daze proc + */ + if(PPa.inParty() && PPd.inParty()) + { + if(Party.getInstance().inSameParty(defender, attacker)) + { + event.setCancelled(true); + return; + } + } + /* + * PVP XP + */ + if(LoadProperties.pvpxp && !Party.getInstance().inSameParty(attacker, defender) + && ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis() && !attacker.getName().equals(defender.getName())) + { + int xp = (int) ((event.getDamage() * 2) * 10); + PPa.addXP(SkillType.ARCHERY, xp, attacker); + } + /* + * DAZE PROC + */ + Archery.dazeCheck(defender, attacker); + } + } + Skills.XpCheckSkill(SkillType.ARCHERY, attacker); + } + } + public static void dealDamage(Entity target, int dmg){ + if(target instanceof Player){ + ((Player) target).damage(dmg); + } + if(target instanceof Animals){ + ((Animals) target).damage(dmg); + } + if(target instanceof Monster){ + ((Monster) target).damage(dmg); + } + } + public static boolean pvpAllowed(EntityDamageByEntityEvent event, World world) + { + if(!event.getEntity().getWorld().getPVP()) + return false; + //If it made it this far, pvp is enabled + return true; + } + public static int getXp(Entity entity, EntityDamageEvent event) + { + int xp = 0; + if(entity instanceof LivingEntity) + { + LivingEntity le = (LivingEntity)entity; + //Prevent a ridiculous amount of XP being granted by capping it at the remaining health of the entity + int hpLeft = le.getHealth(), xpinc = 0; + + if(hpLeft < event.getDamage()) + xpinc = event.getDamage(); + else + xpinc = hpLeft; + + if(entity instanceof Animals) + { + xp = (int) (xpinc * 1); + } else + { + if(entity instanceof Enderman) + xp = (xpinc * 2); + else if(entity instanceof Creeper) + xp = (xpinc * 4); + else if(entity instanceof Silverfish) + xp = (xpinc * 3); + else if(entity instanceof CaveSpider) + xp = (xpinc * 3); + else if(entity instanceof Spider) + xp = (xpinc * 3); + else if(entity instanceof Skeleton) + xp = (xpinc * 2); + else if(entity instanceof Zombie) + xp = (xpinc * 2); + else if(entity instanceof PigZombie) + xp = (xpinc * 3); + else if(entity instanceof Slime) + xp = (xpinc * 2); + else if(entity instanceof Ghast) + xp = (xpinc * 3); + else if(entity instanceof Blaze) + xp = (xpinc * 3); + else if(entity instanceof EnderDragon) + xp = (xpinc * 8); + } + } + return xp; + } +} diff --git a/src/com/gmail/nossr50/Database.java b/src/main/java/com/gmail/nossr50/Database.java similarity index 97% rename from src/com/gmail/nossr50/Database.java rename to src/main/java/com/gmail/nossr50/Database.java index 9db72945f..0ac7dbc12 100644 --- a/src/com/gmail/nossr50/Database.java +++ b/src/main/java/com/gmail/nossr50/Database.java @@ -1,211 +1,211 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.HashMap; -import java.util.ArrayList; -import java.sql.PreparedStatement; - -import com.gmail.nossr50.config.LoadProperties; - -public class Database { - - private mcMMO plugin; - private String connectionString; - - public Database(mcMMO instance) { - this.plugin = instance; - this.connectionString = "jdbc:mysql://" + LoadProperties.MySQLserverName + ":" + LoadProperties.MySQLport + "/" + LoadProperties.MySQLdbName + "?user=" + LoadProperties.MySQLuserName + "&password=" + LoadProperties.MySQLdbPass; - // Load the driver instance - try { - Class.forName("com.mysql.jdbc.Driver"); - DriverManager.getConnection(connectionString); - } catch (ClassNotFoundException e) { - plugin.getServer().getLogger().warning(e.getLocalizedMessage()); - } catch (SQLException e) { - plugin.getServer().getLogger().warning(e.getLocalizedMessage()); - System.out.println("SQLException: " + e.getMessage()); - System.out.println("SQLState: " + e.getSQLState()); - System.out.println("VendorError: " + e.getErrorCode()); - } - } - //Create the DB structure - public void createStructure() { - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "huds` (`user_id` int(10) unsigned NOT NULL," - + "`hudtype` varchar(50) NOT NULL DEFAULT ''," - + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "users` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT," - + "`user` varchar(40) NOT NULL," - + "`lastlogin` int(32) unsigned NOT NULL," - + "`party` varchar(100) NOT NULL DEFAULT ''," - + "PRIMARY KEY (`id`)," - + "UNIQUE KEY `user` (`user`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;"); - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "cooldowns` (`user_id` int(10) unsigned NOT NULL," - + "`taming` int(32) unsigned NOT NULL DEFAULT '0'," - + "`mining` int(32) unsigned NOT NULL DEFAULT '0'," - + "`woodcutting` int(32) unsigned NOT NULL DEFAULT '0'," - + "`repair` int(32) unsigned NOT NULL DEFAULT '0'," - + "`unarmed` int(32) unsigned NOT NULL DEFAULT '0'," - + "`herbalism` int(32) unsigned NOT NULL DEFAULT '0'," - + "`excavation` int(32) unsigned NOT NULL DEFAULT '0'," - + "`archery` int(32) unsigned NOT NULL DEFAULT '0'," - + "`swords` int(32) unsigned NOT NULL DEFAULT '0'," - + "`axes` int(32) unsigned NOT NULL DEFAULT '0'," - + "`acrobatics` int(32) unsigned NOT NULL DEFAULT '0'," - + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "skills` (`user_id` int(10) unsigned NOT NULL," - + "`taming` int(10) unsigned NOT NULL DEFAULT '0'," - + "`mining` int(10) unsigned NOT NULL DEFAULT '0'," - + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," - + "`repair` int(10) unsigned NOT NULL DEFAULT '0'," - + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," - + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," - + "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," - + "`archery` int(10) unsigned NOT NULL DEFAULT '0'," - + "`swords` int(10) unsigned NOT NULL DEFAULT '0'," - + "`axes` int(10) unsigned NOT NULL DEFAULT '0'," - + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," - + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "experience` (`user_id` int(10) unsigned NOT NULL," - + "`taming` int(10) unsigned NOT NULL DEFAULT '0'," - + "`mining` int(10) unsigned NOT NULL DEFAULT '0'," - + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," - + "`repair` int(10) unsigned NOT NULL DEFAULT '0'," - + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," - + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," - + "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," - + "`archery` int(10) unsigned NOT NULL DEFAULT '0'," - + "`swords` int(10) unsigned NOT NULL DEFAULT '0'," - + "`axes` int(10) unsigned NOT NULL DEFAULT '0'," - + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," - + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "spawn` (`user_id` int(10) NOT NULL," - + "`x` int(64) NOT NULL DEFAULT '0'," - + "`y` int(64) NOT NULL DEFAULT '0'," - + "`z` int(64) NOT NULL DEFAULT '0'," - + "`world` varchar(50) NOT NULL DEFAULT ''," - + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); - - Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"skills2`"); - Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"experience2`"); - - checkDatabaseStructure(); - } - - public void checkDatabaseStructure() - { - String sql = "SELECT * FROM `mcmmo_experience` ORDER BY `"+LoadProperties.MySQLtablePrefix+"experience`.`fishing` ASC LIMIT 0 , 30"; - - ResultSet rs = null; - HashMap> Rows = new HashMap>(); - try { - Connection conn = DriverManager.getConnection(connectionString); - PreparedStatement stmt = conn.prepareStatement(sql); - if (stmt.executeQuery() != null) { - stmt.executeQuery(); - rs = stmt.getResultSet(); - while (rs.next()) { - ArrayList Col = new ArrayList(); - for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { - Col.add(rs.getString(i)); - } - Rows.put(rs.getRow(), Col); - } - } - conn.close(); - } catch (SQLException ex) { - System.out.println("Updating mcMMO MySQL tables..."); - Write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "skills` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;"); - Write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "experience` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;"); - } - } - - // write query - public boolean Write(String sql) { - try { - Connection conn = DriverManager.getConnection(connectionString); - PreparedStatement stmt = conn.prepareStatement(sql); - stmt.executeUpdate(); - conn.close(); - return true; - } catch (SQLException ex) { - System.out.println("SQLException: " + ex.getMessage()); - System.out.println("SQLState: " + ex.getSQLState()); - System.out.println("VendorError: " + ex.getErrorCode()); - return false; - } - } - - // Get Int - // only return first row / first field - public Integer GetInt(String sql) { - ResultSet rs = null; - Integer result = 0; - try { - Connection conn = DriverManager.getConnection(connectionString); - PreparedStatement stmt = conn.prepareStatement(sql); - stmt = conn.prepareStatement(sql); - if (stmt.executeQuery() != null) { - stmt.executeQuery(); - rs = stmt.getResultSet(); - if (rs.next()) { - result = rs.getInt(1); - } else { - result = 0; - } - } - conn.close(); - } catch (SQLException ex) { - System.out.println("SQLException: " + ex.getMessage()); - System.out.println("SQLState: " + ex.getSQLState()); - System.out.println("VendorError: " + ex.getErrorCode()); - } - - return result; - } - - // read query - public HashMap> Read(String sql) { - ResultSet rs = null; - HashMap> Rows = new HashMap>(); - try { - Connection conn = DriverManager.getConnection(connectionString); - PreparedStatement stmt = conn.prepareStatement(sql); - if (stmt.executeQuery() != null) { - stmt.executeQuery(); - rs = stmt.getResultSet(); - while (rs.next()) { - ArrayList Col = new ArrayList(); - for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { - Col.add(rs.getString(i)); - } - Rows.put(rs.getRow(), Col); - } - } - conn.close(); - } catch (SQLException ex) { - System.out.println("SQLException: " + ex.getMessage()); - System.out.println("SQLState: " + ex.getSQLState()); - System.out.println("VendorError: " + ex.getErrorCode()); - } - return Rows; - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.ArrayList; +import java.sql.PreparedStatement; + +import com.gmail.nossr50.config.LoadProperties; + +public class Database { + + private mcMMO plugin; + private String connectionString; + + public Database(mcMMO instance) { + this.plugin = instance; + this.connectionString = "jdbc:mysql://" + LoadProperties.MySQLserverName + ":" + LoadProperties.MySQLport + "/" + LoadProperties.MySQLdbName + "?user=" + LoadProperties.MySQLuserName + "&password=" + LoadProperties.MySQLdbPass; + // Load the driver instance + try { + Class.forName("com.mysql.jdbc.Driver"); + DriverManager.getConnection(connectionString); + } catch (ClassNotFoundException e) { + plugin.getServer().getLogger().warning(e.getLocalizedMessage()); + } catch (SQLException e) { + plugin.getServer().getLogger().warning(e.getLocalizedMessage()); + System.out.println("SQLException: " + e.getMessage()); + System.out.println("SQLState: " + e.getSQLState()); + System.out.println("VendorError: " + e.getErrorCode()); + } + } + //Create the DB structure + public void createStructure() { + Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "huds` (`user_id` int(10) unsigned NOT NULL," + + "`hudtype` varchar(50) NOT NULL DEFAULT ''," + + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "users` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT," + + "`user` varchar(40) NOT NULL," + + "`lastlogin` int(32) unsigned NOT NULL," + + "`party` varchar(100) NOT NULL DEFAULT ''," + + "PRIMARY KEY (`id`)," + + "UNIQUE KEY `user` (`user`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;"); + Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "cooldowns` (`user_id` int(10) unsigned NOT NULL," + + "`taming` int(32) unsigned NOT NULL DEFAULT '0'," + + "`mining` int(32) unsigned NOT NULL DEFAULT '0'," + + "`woodcutting` int(32) unsigned NOT NULL DEFAULT '0'," + + "`repair` int(32) unsigned NOT NULL DEFAULT '0'," + + "`unarmed` int(32) unsigned NOT NULL DEFAULT '0'," + + "`herbalism` int(32) unsigned NOT NULL DEFAULT '0'," + + "`excavation` int(32) unsigned NOT NULL DEFAULT '0'," + + "`archery` int(32) unsigned NOT NULL DEFAULT '0'," + + "`swords` int(32) unsigned NOT NULL DEFAULT '0'," + + "`axes` int(32) unsigned NOT NULL DEFAULT '0'," + + "`acrobatics` int(32) unsigned NOT NULL DEFAULT '0'," + + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "skills` (`user_id` int(10) unsigned NOT NULL," + + "`taming` int(10) unsigned NOT NULL DEFAULT '0'," + + "`mining` int(10) unsigned NOT NULL DEFAULT '0'," + + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," + + "`repair` int(10) unsigned NOT NULL DEFAULT '0'," + + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," + + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," + + "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," + + "`archery` int(10) unsigned NOT NULL DEFAULT '0'," + + "`swords` int(10) unsigned NOT NULL DEFAULT '0'," + + "`axes` int(10) unsigned NOT NULL DEFAULT '0'," + + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," + + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "experience` (`user_id` int(10) unsigned NOT NULL," + + "`taming` int(10) unsigned NOT NULL DEFAULT '0'," + + "`mining` int(10) unsigned NOT NULL DEFAULT '0'," + + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," + + "`repair` int(10) unsigned NOT NULL DEFAULT '0'," + + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," + + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," + + "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," + + "`archery` int(10) unsigned NOT NULL DEFAULT '0'," + + "`swords` int(10) unsigned NOT NULL DEFAULT '0'," + + "`axes` int(10) unsigned NOT NULL DEFAULT '0'," + + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," + + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "spawn` (`user_id` int(10) NOT NULL," + + "`x` int(64) NOT NULL DEFAULT '0'," + + "`y` int(64) NOT NULL DEFAULT '0'," + + "`z` int(64) NOT NULL DEFAULT '0'," + + "`world` varchar(50) NOT NULL DEFAULT ''," + + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + + Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"skills2`"); + Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"experience2`"); + + checkDatabaseStructure(); + } + + public void checkDatabaseStructure() + { + String sql = "SELECT * FROM `mcmmo_experience` ORDER BY `"+LoadProperties.MySQLtablePrefix+"experience`.`fishing` ASC LIMIT 0 , 30"; + + ResultSet rs = null; + HashMap> Rows = new HashMap>(); + try { + Connection conn = DriverManager.getConnection(connectionString); + PreparedStatement stmt = conn.prepareStatement(sql); + if (stmt.executeQuery() != null) { + stmt.executeQuery(); + rs = stmt.getResultSet(); + while (rs.next()) { + ArrayList Col = new ArrayList(); + for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { + Col.add(rs.getString(i)); + } + Rows.put(rs.getRow(), Col); + } + } + conn.close(); + } catch (SQLException ex) { + System.out.println("Updating mcMMO MySQL tables..."); + Write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "skills` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;"); + Write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "experience` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;"); + } + } + + // write query + public boolean Write(String sql) { + try { + Connection conn = DriverManager.getConnection(connectionString); + PreparedStatement stmt = conn.prepareStatement(sql); + stmt.executeUpdate(); + conn.close(); + return true; + } catch (SQLException ex) { + System.out.println("SQLException: " + ex.getMessage()); + System.out.println("SQLState: " + ex.getSQLState()); + System.out.println("VendorError: " + ex.getErrorCode()); + return false; + } + } + + // Get Int + // only return first row / first field + public Integer GetInt(String sql) { + ResultSet rs = null; + Integer result = 0; + try { + Connection conn = DriverManager.getConnection(connectionString); + PreparedStatement stmt = conn.prepareStatement(sql); + stmt = conn.prepareStatement(sql); + if (stmt.executeQuery() != null) { + stmt.executeQuery(); + rs = stmt.getResultSet(); + if (rs.next()) { + result = rs.getInt(1); + } else { + result = 0; + } + } + conn.close(); + } catch (SQLException ex) { + System.out.println("SQLException: " + ex.getMessage()); + System.out.println("SQLState: " + ex.getSQLState()); + System.out.println("VendorError: " + ex.getErrorCode()); + } + + return result; + } + + // read query + public HashMap> Read(String sql) { + ResultSet rs = null; + HashMap> Rows = new HashMap>(); + try { + Connection conn = DriverManager.getConnection(connectionString); + PreparedStatement stmt = conn.prepareStatement(sql); + if (stmt.executeQuery() != null) { + stmt.executeQuery(); + rs = stmt.getResultSet(); + while (rs.next()) { + ArrayList Col = new ArrayList(); + for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { + Col.add(rs.getString(i)); + } + Rows.put(rs.getRow(), Col); + } + } + conn.close(); + } catch (SQLException ex) { + System.out.println("SQLException: " + ex.getMessage()); + System.out.println("SQLState: " + ex.getSQLState()); + System.out.println("VendorError: " + ex.getErrorCode()); + } + return Rows; + } +} diff --git a/src/com/gmail/nossr50/Item.java b/src/main/java/com/gmail/nossr50/Item.java similarity index 97% rename from src/com/gmail/nossr50/Item.java rename to src/main/java/com/gmail/nossr50/Item.java index 573716f07..40d6c194d 100644 --- a/src/com/gmail/nossr50/Item.java +++ b/src/main/java/com/gmail/nossr50/Item.java @@ -1,104 +1,104 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.Plugin; -import com.gmail.nossr50.config.*; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.skills.*; - -import com.gmail.nossr50.datatypes.PlayerProfile; - -public class Item { - - public static void itemchecks(Player player, Plugin plugin) - { - ItemStack inhand = player.getItemInHand(); - if(LoadProperties.chimaeraWingEnable && inhand.getTypeId() == LoadProperties.chimaeraId) - { - chimaerawing(player, plugin); - } - } - - @SuppressWarnings("deprecation") - public static void chimaerawing(Player player, Plugin plugin) - { - PlayerProfile PP = Users.getProfile(player); - ItemStack is = player.getItemInHand(); - Block block = player.getLocation().getBlock(); - if(mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == LoadProperties.chimaeraId) - { - if(Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing) - { - Block derp = player.getLocation().getBlock(); - int y = derp.getY(); - ItemStack[] inventory = player.getInventory().getContents(); - for(ItemStack x : inventory){ - if(x != null && x.getTypeId() == LoadProperties.chimaeraId){ - if(x.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing + 1) - { - x.setAmount(x.getAmount() - LoadProperties.feathersConsumedByChimaeraWing); - player.getInventory().setContents(inventory); - player.updateInventory(); - break; - } else { - x.setAmount(0); - x.setTypeId(0); - player.getInventory().setContents(inventory); - player.updateInventory(); - break; - } - } - } - while(y < 127) - { - y++; - if(player != null) - { - if(player.getLocation().getWorld().getBlockAt(block.getX(), y, block.getZ()).getType() != Material.AIR) - { - player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail")); //$NON-NLS-1$ - player.teleport(player.getLocation().getWorld().getBlockAt(block.getX(), (y - 1), block.getZ()).getLocation()); - return; - } - } - } - if(PP.getMySpawn(player) != null) - { - Location mySpawn = PP.getMySpawn(player); - if(mySpawn != null){ - player.teleport(mySpawn); //Do it twice to prevent weird stuff - player.teleport(mySpawn); - } - } else { - player.teleport(player.getWorld().getSpawnLocation()); - } - player.sendMessage(mcLocale.getString("Item.ChimaeraWingPass")); //$NON-NLS-1$ - } else if (!Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= 10) - { - player.sendMessage(mcLocale.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)})); //$NON-NLS-1$ - } else if (is.getTypeId() == LoadProperties.chimaeraId && is.getAmount() <= 9){ - player.sendMessage(mcLocale.getString("Item.NeedFeathers")); //$NON-NLS-1$ - } - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import com.gmail.nossr50.config.*; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.skills.*; + +import com.gmail.nossr50.datatypes.PlayerProfile; + +public class Item { + + public static void itemchecks(Player player, Plugin plugin) + { + ItemStack inhand = player.getItemInHand(); + if(LoadProperties.chimaeraWingEnable && inhand.getTypeId() == LoadProperties.chimaeraId) + { + chimaerawing(player, plugin); + } + } + + @SuppressWarnings("deprecation") + public static void chimaerawing(Player player, Plugin plugin) + { + PlayerProfile PP = Users.getProfile(player); + ItemStack is = player.getItemInHand(); + Block block = player.getLocation().getBlock(); + if(mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == LoadProperties.chimaeraId) + { + if(Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing) + { + Block derp = player.getLocation().getBlock(); + int y = derp.getY(); + ItemStack[] inventory = player.getInventory().getContents(); + for(ItemStack x : inventory){ + if(x != null && x.getTypeId() == LoadProperties.chimaeraId){ + if(x.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing + 1) + { + x.setAmount(x.getAmount() - LoadProperties.feathersConsumedByChimaeraWing); + player.getInventory().setContents(inventory); + player.updateInventory(); + break; + } else { + x.setAmount(0); + x.setTypeId(0); + player.getInventory().setContents(inventory); + player.updateInventory(); + break; + } + } + } + while(y < 127) + { + y++; + if(player != null) + { + if(player.getLocation().getWorld().getBlockAt(block.getX(), y, block.getZ()).getType() != Material.AIR) + { + player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail")); //$NON-NLS-1$ + player.teleport(player.getLocation().getWorld().getBlockAt(block.getX(), (y - 1), block.getZ()).getLocation()); + return; + } + } + } + if(PP.getMySpawn(player) != null) + { + Location mySpawn = PP.getMySpawn(player); + if(mySpawn != null){ + player.teleport(mySpawn); //Do it twice to prevent weird stuff + player.teleport(mySpawn); + } + } else { + player.teleport(player.getWorld().getSpawnLocation()); + } + player.sendMessage(mcLocale.getString("Item.ChimaeraWingPass")); //$NON-NLS-1$ + } else if (!Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= 10) + { + player.sendMessage(mcLocale.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)})); //$NON-NLS-1$ + } else if (is.getTypeId() == LoadProperties.chimaeraId && is.getAmount() <= 9){ + player.sendMessage(mcLocale.getString("Item.NeedFeathers")); //$NON-NLS-1$ + } + } + } +} diff --git a/src/com/gmail/nossr50/Leaderboard.java b/src/main/java/com/gmail/nossr50/Leaderboard.java similarity index 97% rename from src/com/gmail/nossr50/Leaderboard.java rename to src/main/java/com/gmail/nossr50/Leaderboard.java index e61ab7d4f..3603f8b98 100644 --- a/src/com/gmail/nossr50/Leaderboard.java +++ b/src/main/java/com/gmail/nossr50/Leaderboard.java @@ -1,279 +1,279 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.logging.Level; -import java.util.logging.Logger; - -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerStat; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.datatypes.Tree; - -public class Leaderboard -{ - static String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; //$NON-NLS-1$ - protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$ - - /* - * Read from the file - */ - public static void makeLeaderboards() - { - //Make Trees - Tree Mining = new Tree(); - Tree WoodCutting = new Tree(); - Tree Herbalism = new Tree(); - Tree Excavation = new Tree(); - Tree Acrobatics = new Tree(); - Tree Repair = new Tree(); - Tree Swords = new Tree(); - Tree Axes = new Tree(); - Tree Archery = new Tree(); - Tree Unarmed = new Tree(); - Tree Taming = new Tree(); - Tree Fishing = new Tree(); - Tree Enchanting = new Tree(); - Tree Alchemy = new Tree(); - Tree PowerLevel = new Tree(); - - //Add Data To Trees - try { - //Open the user file - FileReader file = new FileReader(location); - BufferedReader in = new BufferedReader(file); - String line = ""; //$NON-NLS-1$ - ArrayList players = new ArrayList(); - while((line = in.readLine()) != null) - { - String[] character = line.split(":"); //$NON-NLS-1$ - String p = character[0]; - - //Prevent the same player from being added multiple times - if(players.contains(p)) - continue; - else - players.add(p); - - int Plvl = 0; - - if(character.length > 1 && m.isInt(character[1])) - { - Mining.add(p, Integer.valueOf(character[1])); - Plvl += Integer.valueOf(character[1]); - } - if(character.length > 5 && m.isInt(character[5])){ - WoodCutting.add(p, Integer.valueOf(character[5])); - Plvl += Integer.valueOf(character[5]); - } - if(character.length > 7 && m.isInt(character[7])){ - Repair.add(p, Integer.valueOf(character[7])); - Plvl += Integer.valueOf(character[7]); - } - if(character.length > 8 && m.isInt(character[8])){ - Unarmed.add(p, Integer.valueOf(character[8])); - Plvl += Integer.valueOf(character[8]); - } - if(character.length > 9 && m.isInt(character[9])){ - Herbalism.add(p, Integer.valueOf(character[9])); - Plvl += Integer.valueOf(character[9]); - } - if(character.length > 10 && m.isInt(character[10])){ - Excavation.add(p, Integer.valueOf(character[10])); - Plvl += Integer.valueOf(character[10]); - } - if(character.length > 11 && m.isInt(character[11])){ - Archery.add(p, Integer.valueOf(character[11])); - Plvl += Integer.valueOf(character[11]); - } - if(character.length > 12 && m.isInt(character[12])){ - Swords.add(p, Integer.valueOf(character[12])); - Plvl += Integer.valueOf(character[12]); - } - if(character.length > 13 && m.isInt(character[13])){ - Axes.add(p, Integer.valueOf(character[13])); - Plvl += Integer.valueOf(character[13]); - } - if(character.length > 14 && m.isInt(character[14])){ - Acrobatics.add(p, Integer.valueOf(character[14])); - Plvl += Integer.valueOf(character[14]); - } - if(character.length > 24 && m.isInt(character[24])){ - Taming.add(p, Integer.valueOf(character[24])); - Plvl += Integer.valueOf(character[24]); - } - if(character.length > 34 && m.isInt(character[34])) - { - Fishing.add(p, Integer.valueOf(character[34])); - Plvl += Integer.valueOf(character[34]); - } - - PowerLevel.add(p, Plvl); - } - in.close(); - } catch (Exception e) { - log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$ - + location + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ - } - //Write the leader board files - leaderWrite(Mining.inOrder(), SkillType.MINING); //$NON-NLS-1$ - leaderWrite(WoodCutting.inOrder(), SkillType.WOODCUTTING); //$NON-NLS-1$ - leaderWrite(Repair.inOrder(), SkillType.REPAIR); //$NON-NLS-1$ - leaderWrite(Unarmed.inOrder(), SkillType.UNARMED); //$NON-NLS-1$ - leaderWrite(Herbalism.inOrder(), SkillType.HERBALISM); //$NON-NLS-1$ - leaderWrite(Excavation.inOrder(), SkillType.EXCAVATION); //$NON-NLS-1$ - leaderWrite(Archery.inOrder(), SkillType.ARCHERY); //$NON-NLS-1$ - leaderWrite(Swords.inOrder(), SkillType.SWORDS); //$NON-NLS-1$ - leaderWrite(Axes.inOrder(), SkillType.AXES); //$NON-NLS-1$ - leaderWrite(Acrobatics.inOrder(), SkillType.ACROBATICS); //$NON-NLS-1$ - leaderWrite(Taming.inOrder(), SkillType.TAMING); //$NON-NLS-1$ - leaderWrite(Fishing.inOrder(), SkillType.FISHING); //$NON-NLS-1$ - leaderWrite(Alchemy.inOrder(), SkillType.ALCHEMY); //$NON-NLS-1$ - leaderWrite(Enchanting.inOrder(), SkillType.ENCHANTING); //$NON-NLS-1$ - leaderWrite(PowerLevel.inOrder(), SkillType.ALL); //$NON-NLS-1$ - } - public static void leaderWrite(PlayerStat[] ps, SkillType skillType) - { - String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ - //CHECK IF THE FILE EXISTS - File theDir = new File(theLocation); - if(!theDir.exists()) - { - //properties = new PropertiesFile(location); - FileWriter writer = null; - try { - writer = new FileWriter(theLocation); - } catch (Exception e) { - log.log(Level.SEVERE, "Exception while creating " + theLocation, e); //$NON-NLS-1$ - } finally { - try { - if (writer != null) { - writer.close(); - } - } catch (IOException e) { - log.log(Level.SEVERE, "Exception while closing writer for " + theLocation, e); //$NON-NLS-1$ - } - } - } else { - try { - FileReader file = new FileReader(theLocation); - - //HERP - BufferedReader in = new BufferedReader(file); - StringBuilder writer = new StringBuilder(); - - for(PlayerStat p : ps) - { - if(p.name.equals("$mcMMO_DummyInfo")) //$NON-NLS-1$ - continue; - if(p.statVal == 0) - continue; - writer.append(p.name + ":" + p.statVal); //$NON-NLS-1$ - writer.append("\r\n"); //$NON-NLS-1$ - } - - in.close(); - //Write the new file - FileWriter out = new FileWriter(theLocation); - out.write(writer.toString()); - out.close(); - } catch (Exception e) { - log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - //Create/open the file - //Loop through backward writing each player - //Close the file - } - - public static String[] retrieveInfo(String skillName, int pagenumber) - { - String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ - try { - FileReader file = new FileReader(theLocation); - BufferedReader in = new BufferedReader(file); - - int destination = (pagenumber - 1) * 10; //How many lines to skip through - int x = 0; //how many lines we've gone through - int y = 0; //going through the lines - String line = ""; //$NON-NLS-1$ - String[] info = new String[10]; //what to return - while((line = in.readLine()) != null && y < 10) - { - x++; - if(x >= destination && y < 10){ - info[y] = line.toString(); - y++; - } - } - in.close(); - return info; - } catch (Exception e) { - log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$ - + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ - } - return null; //Shouldn't get here - } - public static void updateLeaderboard(PlayerStat ps, SkillType skillType) - { - if(LoadProperties.useMySQL) - return; - String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ - try { - //Open the file - FileReader file = new FileReader(theLocation); - BufferedReader in = new BufferedReader(file); - StringBuilder writer = new StringBuilder(); - String line = ""; //$NON-NLS-1$ - Boolean inserted = false; - //While not at the end of the file - while((line = in.readLine()) != null) - { - //Insert the player into the line before it finds a smaller one - if(Integer.valueOf(line.split(":")[1]) < ps.statVal && !inserted) //$NON-NLS-1$ - { - writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$ - inserted = true; - } - //Write anything that isn't the player already in the file so we remove the duplicate - if(!line.split(":")[0].equalsIgnoreCase(ps.name)) //$NON-NLS-1$ - { - writer.append(line).append("\r\n"); //$NON-NLS-1$ - } - } - - if(!inserted) - { - writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - in.close(); - //Write the new file - FileWriter out = new FileWriter(theLocation); - out.write(writer.toString()); - out.close(); - } catch (Exception e) { - log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$ - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; + +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerStat; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.datatypes.Tree; + +public class Leaderboard +{ + static String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; //$NON-NLS-1$ + protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$ + + /* + * Read from the file + */ + public static void makeLeaderboards() + { + //Make Trees + Tree Mining = new Tree(); + Tree WoodCutting = new Tree(); + Tree Herbalism = new Tree(); + Tree Excavation = new Tree(); + Tree Acrobatics = new Tree(); + Tree Repair = new Tree(); + Tree Swords = new Tree(); + Tree Axes = new Tree(); + Tree Archery = new Tree(); + Tree Unarmed = new Tree(); + Tree Taming = new Tree(); + Tree Fishing = new Tree(); + Tree Enchanting = new Tree(); + Tree Alchemy = new Tree(); + Tree PowerLevel = new Tree(); + + //Add Data To Trees + try { + //Open the user file + FileReader file = new FileReader(location); + BufferedReader in = new BufferedReader(file); + String line = ""; //$NON-NLS-1$ + ArrayList players = new ArrayList(); + while((line = in.readLine()) != null) + { + String[] character = line.split(":"); //$NON-NLS-1$ + String p = character[0]; + + //Prevent the same player from being added multiple times + if(players.contains(p)) + continue; + else + players.add(p); + + int Plvl = 0; + + if(character.length > 1 && m.isInt(character[1])) + { + Mining.add(p, Integer.valueOf(character[1])); + Plvl += Integer.valueOf(character[1]); + } + if(character.length > 5 && m.isInt(character[5])){ + WoodCutting.add(p, Integer.valueOf(character[5])); + Plvl += Integer.valueOf(character[5]); + } + if(character.length > 7 && m.isInt(character[7])){ + Repair.add(p, Integer.valueOf(character[7])); + Plvl += Integer.valueOf(character[7]); + } + if(character.length > 8 && m.isInt(character[8])){ + Unarmed.add(p, Integer.valueOf(character[8])); + Plvl += Integer.valueOf(character[8]); + } + if(character.length > 9 && m.isInt(character[9])){ + Herbalism.add(p, Integer.valueOf(character[9])); + Plvl += Integer.valueOf(character[9]); + } + if(character.length > 10 && m.isInt(character[10])){ + Excavation.add(p, Integer.valueOf(character[10])); + Plvl += Integer.valueOf(character[10]); + } + if(character.length > 11 && m.isInt(character[11])){ + Archery.add(p, Integer.valueOf(character[11])); + Plvl += Integer.valueOf(character[11]); + } + if(character.length > 12 && m.isInt(character[12])){ + Swords.add(p, Integer.valueOf(character[12])); + Plvl += Integer.valueOf(character[12]); + } + if(character.length > 13 && m.isInt(character[13])){ + Axes.add(p, Integer.valueOf(character[13])); + Plvl += Integer.valueOf(character[13]); + } + if(character.length > 14 && m.isInt(character[14])){ + Acrobatics.add(p, Integer.valueOf(character[14])); + Plvl += Integer.valueOf(character[14]); + } + if(character.length > 24 && m.isInt(character[24])){ + Taming.add(p, Integer.valueOf(character[24])); + Plvl += Integer.valueOf(character[24]); + } + if(character.length > 34 && m.isInt(character[34])) + { + Fishing.add(p, Integer.valueOf(character[34])); + Plvl += Integer.valueOf(character[34]); + } + + PowerLevel.add(p, Plvl); + } + in.close(); + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$ + + location + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ + } + //Write the leader board files + leaderWrite(Mining.inOrder(), SkillType.MINING); //$NON-NLS-1$ + leaderWrite(WoodCutting.inOrder(), SkillType.WOODCUTTING); //$NON-NLS-1$ + leaderWrite(Repair.inOrder(), SkillType.REPAIR); //$NON-NLS-1$ + leaderWrite(Unarmed.inOrder(), SkillType.UNARMED); //$NON-NLS-1$ + leaderWrite(Herbalism.inOrder(), SkillType.HERBALISM); //$NON-NLS-1$ + leaderWrite(Excavation.inOrder(), SkillType.EXCAVATION); //$NON-NLS-1$ + leaderWrite(Archery.inOrder(), SkillType.ARCHERY); //$NON-NLS-1$ + leaderWrite(Swords.inOrder(), SkillType.SWORDS); //$NON-NLS-1$ + leaderWrite(Axes.inOrder(), SkillType.AXES); //$NON-NLS-1$ + leaderWrite(Acrobatics.inOrder(), SkillType.ACROBATICS); //$NON-NLS-1$ + leaderWrite(Taming.inOrder(), SkillType.TAMING); //$NON-NLS-1$ + leaderWrite(Fishing.inOrder(), SkillType.FISHING); //$NON-NLS-1$ + leaderWrite(Alchemy.inOrder(), SkillType.ALCHEMY); //$NON-NLS-1$ + leaderWrite(Enchanting.inOrder(), SkillType.ENCHANTING); //$NON-NLS-1$ + leaderWrite(PowerLevel.inOrder(), SkillType.ALL); //$NON-NLS-1$ + } + public static void leaderWrite(PlayerStat[] ps, SkillType skillType) + { + String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ + //CHECK IF THE FILE EXISTS + File theDir = new File(theLocation); + if(!theDir.exists()) + { + //properties = new PropertiesFile(location); + FileWriter writer = null; + try { + writer = new FileWriter(theLocation); + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while creating " + theLocation, e); //$NON-NLS-1$ + } finally { + try { + if (writer != null) { + writer.close(); + } + } catch (IOException e) { + log.log(Level.SEVERE, "Exception while closing writer for " + theLocation, e); //$NON-NLS-1$ + } + } + } else { + try { + FileReader file = new FileReader(theLocation); + + //HERP + BufferedReader in = new BufferedReader(file); + StringBuilder writer = new StringBuilder(); + + for(PlayerStat p : ps) + { + if(p.name.equals("$mcMMO_DummyInfo")) //$NON-NLS-1$ + continue; + if(p.statVal == 0) + continue; + writer.append(p.name + ":" + p.statVal); //$NON-NLS-1$ + writer.append("\r\n"); //$NON-NLS-1$ + } + + in.close(); + //Write the new file + FileWriter out = new FileWriter(theLocation); + out.write(writer.toString()); + out.close(); + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + //Create/open the file + //Loop through backward writing each player + //Close the file + } + + public static String[] retrieveInfo(String skillName, int pagenumber) + { + String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ + try { + FileReader file = new FileReader(theLocation); + BufferedReader in = new BufferedReader(file); + + int destination = (pagenumber - 1) * 10; //How many lines to skip through + int x = 0; //how many lines we've gone through + int y = 0; //going through the lines + String line = ""; //$NON-NLS-1$ + String[] info = new String[10]; //what to return + while((line = in.readLine()) != null && y < 10) + { + x++; + if(x >= destination && y < 10){ + info[y] = line.toString(); + y++; + } + } + in.close(); + return info; + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$ + + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ + } + return null; //Shouldn't get here + } + public static void updateLeaderboard(PlayerStat ps, SkillType skillType) + { + if(LoadProperties.useMySQL) + return; + String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ + try { + //Open the file + FileReader file = new FileReader(theLocation); + BufferedReader in = new BufferedReader(file); + StringBuilder writer = new StringBuilder(); + String line = ""; //$NON-NLS-1$ + Boolean inserted = false; + //While not at the end of the file + while((line = in.readLine()) != null) + { + //Insert the player into the line before it finds a smaller one + if(Integer.valueOf(line.split(":")[1]) < ps.statVal && !inserted) //$NON-NLS-1$ + { + writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$ + inserted = true; + } + //Write anything that isn't the player already in the file so we remove the duplicate + if(!line.split(":")[0].equalsIgnoreCase(ps.name)) //$NON-NLS-1$ + { + writer.append(line).append("\r\n"); //$NON-NLS-1$ + } + } + + if(!inserted) + { + writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$ + } + + in.close(); + //Write the new file + FileWriter out = new FileWriter(theLocation); + out.write(writer.toString()); + out.close(); + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$ + } + } +} diff --git a/src/com/gmail/nossr50/Users.java b/src/main/java/com/gmail/nossr50/Users.java similarity index 96% rename from src/com/gmail/nossr50/Users.java rename to src/main/java/com/gmail/nossr50/Users.java index 772798085..8ac66c642 100644 --- a/src/com/gmail/nossr50/Users.java +++ b/src/main/java/com/gmail/nossr50/Users.java @@ -1,112 +1,112 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50; - -import java.io.*; -import java.util.Properties; -import java.util.logging.Logger; -import java.util.HashMap; - -import org.bukkit.entity.*; -import com.gmail.nossr50.datatypes.PlayerProfile; - - -public class Users { - private static volatile Users instance; - protected static final Logger log = Logger.getLogger("Minecraft"); - String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; - String directory = "plugins/mcMMO/FlatFileStuff/"; - String directoryb = "plugins/mcMMO/FlatFileStuff/Leaderboards/"; - - //public static ArrayList players; - public static HashMap players = new HashMap(); - private Properties properties = new Properties(); - - //To load - public void load() throws IOException { - properties.load(new FileInputStream(location)); - } - //To save - public void save() - { - try - { - properties.store(new FileOutputStream(location), null); - }catch(IOException ex) { - } - } - - public void loadUsers() - { - new File(directory).mkdir(); - new File(directoryb).mkdir(); - File theDir = new File(location); - if(!theDir.exists()) - { - try { - FileWriter writer = new FileWriter(theDir); - writer.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - - public static void addUser(Player player) - { - players.put(player, new PlayerProfile(player)); - } - public static void clearUsers() - { - players.clear(); - } - public static HashMap getProfiles(){ - return players; - } - - public static void removeUser(Player player) - { - PlayerProfile PP = Users.getProfile(player); - - if(PP != null) - { - PP.save(); - if(players.containsKey(player)) - players.remove(player); - } - } - - public static PlayerProfile getProfile(Player player){ - if(players.get(player) != null) - return players.get(player); - else - { - players.put(player, new PlayerProfile(player)); - return players.get(player); - } - } - - public static Users getInstance() { - if (instance == null) { - instance = new Users(); - } - return instance; - } - +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50; + +import java.io.*; +import java.util.Properties; +import java.util.logging.Logger; +import java.util.HashMap; + +import org.bukkit.entity.*; +import com.gmail.nossr50.datatypes.PlayerProfile; + + +public class Users { + private static volatile Users instance; + protected static final Logger log = Logger.getLogger("Minecraft"); + String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; + String directory = "plugins/mcMMO/FlatFileStuff/"; + String directoryb = "plugins/mcMMO/FlatFileStuff/Leaderboards/"; + + //public static ArrayList players; + public static HashMap players = new HashMap(); + private Properties properties = new Properties(); + + //To load + public void load() throws IOException { + properties.load(new FileInputStream(location)); + } + //To save + public void save() + { + try + { + properties.store(new FileOutputStream(location), null); + }catch(IOException ex) { + } + } + + public void loadUsers() + { + new File(directory).mkdir(); + new File(directoryb).mkdir(); + File theDir = new File(location); + if(!theDir.exists()) + { + try { + FileWriter writer = new FileWriter(theDir); + writer.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + + public static void addUser(Player player) + { + players.put(player, new PlayerProfile(player)); + } + public static void clearUsers() + { + players.clear(); + } + public static HashMap getProfiles(){ + return players; + } + + public static void removeUser(Player player) + { + PlayerProfile PP = Users.getProfile(player); + + if(PP != null) + { + PP.save(); + if(players.containsKey(player)) + players.remove(player); + } + } + + public static PlayerProfile getProfile(Player player){ + if(players.get(player) != null) + return players.get(player); + else + { + players.put(player, new PlayerProfile(player)); + return players.get(player); + } + } + + public static Users getInstance() { + if (instance == null) { + instance = new Users(); + } + return instance; + } + } \ No newline at end of file diff --git a/src/com/gmail/nossr50/commands/general/AddxpCommand.java b/src/main/java/com/gmail/nossr50/commands/general/AddxpCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/general/AddxpCommand.java rename to src/main/java/com/gmail/nossr50/commands/general/AddxpCommand.java index 07be75230..77fd35ddb 100644 --- a/src/com/gmail/nossr50/commands/general/AddxpCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/AddxpCommand.java @@ -1,86 +1,86 @@ -package com.gmail.nossr50.commands.general; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -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.locale.mcLocale; -import com.gmail.nossr50.skills.Skills; - -public class AddxpCommand implements CommandExecutor { - private final mcMMO plugin; - - public AddxpCommand(mcMMO instance) { - this.plugin = instance; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!mcPermissions.permissionsEnabled) { - sender.sendMessage("This command requires permissions."); - return true; - } - - if (!LoadProperties.addxpEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - if (args.length < 2) { - // No console aliasing yet - // System.out.println("Usage is /"+LoadProperties.addxp+" playername skillname xp"); - System.out.println("Usage is /addxp playername skillname xp"); - return true; - } else if (args.length == 3) { - if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { - int newvalue = Integer.valueOf(args[2]); - Users.getProfile(plugin.getServer().getPlayer(args[0])).addXP(Skills.getSkillType(args[1]), newvalue, plugin.getServer().getPlayer(args[0])); - plugin.getServer().getPlayer(args[0]).sendMessage(ChatColor.GREEN + "Experience granted!"); - System.out.println(args[1] + " has been modified for " + plugin.getServer().getPlayer(args[0]).getName() + "."); - Skills.XpCheckAll(plugin.getServer().getPlayer(args[0])); - } - } else { - // No console aliasing yet - // System.out.println("Usage is /"+LoadProperties.addxp+" playername skillname xp"); - System.out.println("Usage is /addxp playername skillname xp"); - } - return true; - } - - Player player = (Player) sender; - - if (!mcPermissions.getInstance().mmoedit(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - if (args.length < 2) { - player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp"); - return true; - } - if (args.length == 3) { - if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { - int newvalue = Integer.valueOf(args[2]); - Users.getProfile(plugin.getServer().getPlayer(args[0])).addXP(Skills.getSkillType(args[1]), newvalue, plugin.getServer().getPlayer(args[0])); - plugin.getServer().getPlayer(args[0]).sendMessage(ChatColor.GREEN + "Experience granted!"); - player.sendMessage(ChatColor.RED + args[1] + " has been modified."); - Skills.XpCheckAll(plugin.getServer().getPlayer(args[0])); - } - } else if (args.length == 2 && m.isInt(args[1]) && Skills.isSkill(args[0])) { - int newvalue = Integer.valueOf(args[1]); - Users.getProfile(player).addXP(Skills.getSkillType(args[0]), newvalue, player); - player.sendMessage(ChatColor.RED + args[0] + " has been modified."); - } else { - player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp"); - } - - return true; - } -} +package com.gmail.nossr50.commands.general; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +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.locale.mcLocale; +import com.gmail.nossr50.skills.Skills; + +public class AddxpCommand implements CommandExecutor { + private final mcMMO plugin; + + public AddxpCommand(mcMMO instance) { + this.plugin = instance; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!mcPermissions.permissionsEnabled) { + sender.sendMessage("This command requires permissions."); + return true; + } + + if (!LoadProperties.addxpEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + if (args.length < 2) { + // No console aliasing yet + // System.out.println("Usage is /"+LoadProperties.addxp+" playername skillname xp"); + System.out.println("Usage is /addxp playername skillname xp"); + return true; + } else if (args.length == 3) { + if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { + int newvalue = Integer.valueOf(args[2]); + Users.getProfile(plugin.getServer().getPlayer(args[0])).addXP(Skills.getSkillType(args[1]), newvalue, plugin.getServer().getPlayer(args[0])); + plugin.getServer().getPlayer(args[0]).sendMessage(ChatColor.GREEN + "Experience granted!"); + System.out.println(args[1] + " has been modified for " + plugin.getServer().getPlayer(args[0]).getName() + "."); + Skills.XpCheckAll(plugin.getServer().getPlayer(args[0])); + } + } else { + // No console aliasing yet + // System.out.println("Usage is /"+LoadProperties.addxp+" playername skillname xp"); + System.out.println("Usage is /addxp playername skillname xp"); + } + return true; + } + + Player player = (Player) sender; + + if (!mcPermissions.getInstance().mmoedit(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + if (args.length < 2) { + player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp"); + return true; + } + if (args.length == 3) { + if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { + int newvalue = Integer.valueOf(args[2]); + Users.getProfile(plugin.getServer().getPlayer(args[0])).addXP(Skills.getSkillType(args[1]), newvalue, plugin.getServer().getPlayer(args[0])); + plugin.getServer().getPlayer(args[0]).sendMessage(ChatColor.GREEN + "Experience granted!"); + player.sendMessage(ChatColor.RED + args[1] + " has been modified."); + Skills.XpCheckAll(plugin.getServer().getPlayer(args[0])); + } + } else if (args.length == 2 && m.isInt(args[1]) && Skills.isSkill(args[0])) { + int newvalue = Integer.valueOf(args[1]); + Users.getProfile(player).addXP(Skills.getSkillType(args[0]), newvalue, player); + player.sendMessage(ChatColor.RED + args[0] + " has been modified."); + } else { + player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp"); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/general/ClearmyspawnCommand.java b/src/main/java/com/gmail/nossr50/commands/general/ClearmyspawnCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/general/ClearmyspawnCommand.java rename to src/main/java/com/gmail/nossr50/commands/general/ClearmyspawnCommand.java index 49739c2f9..61100860a 100644 --- a/src/com/gmail/nossr50/commands/general/ClearmyspawnCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/ClearmyspawnCommand.java @@ -1,46 +1,46 @@ -package com.gmail.nossr50.commands.general; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 ClearmyspawnCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.clearmyspawnEnable || !LoadProperties.enableMySpawn) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (!mcPermissions.getInstance().mySpawn(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - - double x = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getX(); - double y = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getY(); - double z = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getZ(); - String worldname = Bukkit.getServer().getWorlds().get(0).getName(); - PP.setMySpawn(x, y, z, worldname); - player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnCleared")); - - return true; - } -} +package com.gmail.nossr50.commands.general; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 ClearmyspawnCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.clearmyspawnEnable || !LoadProperties.enableMySpawn) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (!mcPermissions.getInstance().mySpawn(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + + double x = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getX(); + double y = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getY(); + double z = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getZ(); + String worldname = Bukkit.getServer().getWorlds().get(0).getName(); + PP.setMySpawn(x, y, z, worldname); + player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnCleared")); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/general/MmoeditCommand.java b/src/main/java/com/gmail/nossr50/commands/general/MmoeditCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/general/MmoeditCommand.java rename to src/main/java/com/gmail/nossr50/commands/general/MmoeditCommand.java index de8abca25..f715b93ff 100644 --- a/src/com/gmail/nossr50/commands/general/MmoeditCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/MmoeditCommand.java @@ -1,83 +1,83 @@ -package com.gmail.nossr50.commands.general; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -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.skills.Skills; - -public class MmoeditCommand implements CommandExecutor { - private final mcMMO plugin; - - public MmoeditCommand(mcMMO instance) { - this.plugin = instance; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!mcPermissions.permissionsEnabled) { - sender.sendMessage("This command requires permissions."); - return true; - } - - if (!LoadProperties.mmoeditEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - if (args.length < 2) { - System.out.println("Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); - return true; - } else if (args.length == 3) { - if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { - int newvalue = Integer.valueOf(args[2]); - Users.getProfile(plugin.getServer().getPlayer(args[0])).modifyskill(Skills.getSkillType(args[1]), newvalue); - System.out.println(args[1] + " has been modified for " + plugin.getServer().getPlayer(args[0]).getName() + "."); - } - } else { - System.out.println("Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); - } - - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (!mcPermissions.getInstance().mmoedit(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - if (args.length < 2) { - player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); - return true; - } - if (args.length == 3) { - if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { - int newvalue = Integer.valueOf(args[2]); - Users.getProfile(plugin.getServer().getPlayer(args[0])).modifyskill(Skills.getSkillType(args[1]), newvalue); - player.sendMessage(ChatColor.RED + args[1] + " has been modified."); - } - } else if (args.length == 2) { - if (m.isInt(args[1]) && Skills.isSkill(args[0])) { - int newvalue = Integer.valueOf(args[1]); - PP.modifyskill(Skills.getSkillType(args[0]), newvalue); - player.sendMessage(ChatColor.RED + args[0] + " has been modified."); - } - } else { - player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); - } - - return true; - } -} +package com.gmail.nossr50.commands.general; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +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.skills.Skills; + +public class MmoeditCommand implements CommandExecutor { + private final mcMMO plugin; + + public MmoeditCommand(mcMMO instance) { + this.plugin = instance; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!mcPermissions.permissionsEnabled) { + sender.sendMessage("This command requires permissions."); + return true; + } + + if (!LoadProperties.mmoeditEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + if (args.length < 2) { + System.out.println("Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); + return true; + } else if (args.length == 3) { + if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { + int newvalue = Integer.valueOf(args[2]); + Users.getProfile(plugin.getServer().getPlayer(args[0])).modifyskill(Skills.getSkillType(args[1]), newvalue); + System.out.println(args[1] + " has been modified for " + plugin.getServer().getPlayer(args[0]).getName() + "."); + } + } else { + System.out.println("Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); + } + + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (!mcPermissions.getInstance().mmoedit(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + if (args.length < 2) { + player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); + return true; + } + if (args.length == 3) { + if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { + int newvalue = Integer.valueOf(args[2]); + Users.getProfile(plugin.getServer().getPlayer(args[0])).modifyskill(Skills.getSkillType(args[1]), newvalue); + player.sendMessage(ChatColor.RED + args[1] + " has been modified."); + } + } else if (args.length == 2) { + if (m.isInt(args[1]) && Skills.isSkill(args[0])) { + int newvalue = Integer.valueOf(args[1]); + PP.modifyskill(Skills.getSkillType(args[0]), newvalue); + player.sendMessage(ChatColor.RED + args[0] + " has been modified."); + } + } else { + player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/general/MmoupdateCommand.java b/src/main/java/com/gmail/nossr50/commands/general/MmoupdateCommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/general/MmoupdateCommand.java rename to src/main/java/com/gmail/nossr50/commands/general/MmoupdateCommand.java index ee92648e6..5685b8614 100644 --- a/src/com/gmail/nossr50/commands/general/MmoupdateCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/MmoupdateCommand.java @@ -1,39 +1,39 @@ -package com.gmail.nossr50.commands.general; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.locale.mcLocale; - -public class MmoupdateCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - - if (!mcPermissions.getInstance().admin(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - player.sendMessage(ChatColor.GRAY + "Starting conversion..."); - Users.clearUsers(); - m.convertToMySQL(); - for (Player x : Bukkit.getServer().getOnlinePlayers()) { - Users.addUser(x); - } - player.sendMessage(ChatColor.GREEN + "Conversion finished!"); - - return true; - } -} +package com.gmail.nossr50.commands.general; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.locale.mcLocale; + +public class MmoupdateCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + + if (!mcPermissions.getInstance().admin(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + player.sendMessage(ChatColor.GRAY + "Starting conversion..."); + Users.clearUsers(); + m.convertToMySQL(); + for (Player x : Bukkit.getServer().getOnlinePlayers()) { + Users.addUser(x); + } + player.sendMessage(ChatColor.GREEN + "Conversion finished!"); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/general/MyspawnCommand.java b/src/main/java/com/gmail/nossr50/commands/general/MyspawnCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/general/MyspawnCommand.java rename to src/main/java/com/gmail/nossr50/commands/general/MyspawnCommand.java index 6142e2fb1..9c5565ec8 100644 --- a/src/com/gmail/nossr50/commands/general/MyspawnCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/MyspawnCommand.java @@ -1,58 +1,58 @@ -package com.gmail.nossr50.commands.general; - -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 MyspawnCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.myspawnEnable || !LoadProperties.enableMySpawn) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (!mcPermissions.getInstance().mySpawn(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - if (System.currentTimeMillis() < (PP.getMySpawnATS() * 1000) + 3600000) { - long x = (((PP.getMySpawnATS() * 1000) + 3600000) - System.currentTimeMillis()); - int y = (int) (x / 60000); - int z = (int) ((x / 1000) - (y * 60)); - player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnTimeNotice", new Object[] { y, z })); - return true; - } - PP.setMySpawnATS(System.currentTimeMillis()); - if (PP.getMySpawn(player) != null) { - Location mySpawn = PP.getMySpawn(player); - - if (mySpawn != null) { - // It's done twice because it acts oddly when you are in another world - player.teleport(mySpawn); - player.teleport(mySpawn); - } - } else { - player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnNotExist")); - } - - return true; - } -} +package com.gmail.nossr50.commands.general; + +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 MyspawnCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.myspawnEnable || !LoadProperties.enableMySpawn) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (!mcPermissions.getInstance().mySpawn(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + if (System.currentTimeMillis() < (PP.getMySpawnATS() * 1000) + 3600000) { + long x = (((PP.getMySpawnATS() * 1000) + 3600000) - System.currentTimeMillis()); + int y = (int) (x / 60000); + int z = (int) ((x / 1000) - (y * 60)); + player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnTimeNotice", new Object[] { y, z })); + return true; + } + PP.setMySpawnATS(System.currentTimeMillis()); + if (PP.getMySpawn(player) != null) { + Location mySpawn = PP.getMySpawn(player); + + if (mySpawn != null) { + // It's done twice because it acts oddly when you are in another world + player.teleport(mySpawn); + player.teleport(mySpawn); + } + } else { + player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnNotExist")); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/general/StatsCommand.java b/src/main/java/com/gmail/nossr50/commands/general/StatsCommand.java similarity index 98% rename from src/com/gmail/nossr50/commands/general/StatsCommand.java rename to src/main/java/com/gmail/nossr50/commands/general/StatsCommand.java index 65b1f7e9e..9da733969 100644 --- a/src/com/gmail/nossr50/commands/general/StatsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/StatsCommand.java @@ -1,85 +1,85 @@ -package com.gmail.nossr50.commands.general; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.skills.Skills; - -public class StatsCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.statsEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - player.sendMessage(mcLocale.getString("mcPlayerListener.YourStats")); - - if (mcPermissions.getEnabled()) - player.sendMessage(mcLocale.getString("mcPlayerListener.NoSkillNote")); - - ChatColor header = ChatColor.GOLD; - - if (Skills.hasGatheringSkills(player)) { - player.sendMessage(header + "-=GATHERING SKILLS=-"); - if (mcPermissions.getInstance().excavation(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION))); - if (mcPermissions.getInstance().fishing(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.FishingSkill"), PP.getSkillLevel(SkillType.FISHING), PP.getSkillXpLevel(SkillType.FISHING), PP.getXpToLevel(SkillType.FISHING))); - if (mcPermissions.getInstance().herbalism(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM))); - if (mcPermissions.getInstance().mining(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING))); - if (mcPermissions.getInstance().woodcutting(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING))); - } - if (Skills.hasCombatSkills(player)) { - player.sendMessage(header + "-=COMBAT SKILLS=-"); - if (mcPermissions.getInstance().axes(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES))); - if (mcPermissions.getInstance().archery(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY))); - // if(mcPermissions.getInstance().sorcery(player)) - // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkill("sorcery"), PP.getSkill("sorceryXP"), PP.getXpToLevel("excavation"))); - if (mcPermissions.getInstance().swords(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS))); - if (mcPermissions.getInstance().taming(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING))); - if (mcPermissions.getInstance().unarmed(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED))); - } - - if (Skills.hasMiscSkills(player)) { - player.sendMessage(header + "-=MISC SKILLS=-"); - if (mcPermissions.getInstance().acrobatics(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS))); - // if(mcPermissions.getInstance().alchemy(player)) - // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AlchemySkill"), PP.getSkillLevel(SkillType.ALCHEMY), PP.getSkillXpLevel(SkillType.ALCHEMY), PP.getXpToLevel(SkillType.ALCHEMY))); - // if(mcPermissions.getInstance().enchanting(player)) - // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.EnchantingSkill"), PP.getSkillLevel(SkillType.ENCHANTING), PP.getSkillXpLevel(SkillType.ENCHANTING), PP.getXpToLevel(SkillType.ENCHANTING))); - if (mcPermissions.getInstance().repair(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR))); - } - player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(player))); - - return true; - } -} +package com.gmail.nossr50.commands.general; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.skills.Skills; + +public class StatsCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.statsEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + player.sendMessage(mcLocale.getString("mcPlayerListener.YourStats")); + + if (mcPermissions.getEnabled()) + player.sendMessage(mcLocale.getString("mcPlayerListener.NoSkillNote")); + + ChatColor header = ChatColor.GOLD; + + if (Skills.hasGatheringSkills(player)) { + player.sendMessage(header + "-=GATHERING SKILLS=-"); + if (mcPermissions.getInstance().excavation(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION))); + if (mcPermissions.getInstance().fishing(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.FishingSkill"), PP.getSkillLevel(SkillType.FISHING), PP.getSkillXpLevel(SkillType.FISHING), PP.getXpToLevel(SkillType.FISHING))); + if (mcPermissions.getInstance().herbalism(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM))); + if (mcPermissions.getInstance().mining(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING))); + if (mcPermissions.getInstance().woodcutting(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING))); + } + if (Skills.hasCombatSkills(player)) { + player.sendMessage(header + "-=COMBAT SKILLS=-"); + if (mcPermissions.getInstance().axes(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES))); + if (mcPermissions.getInstance().archery(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY))); + // if(mcPermissions.getInstance().sorcery(player)) + // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkill("sorcery"), PP.getSkill("sorceryXP"), PP.getXpToLevel("excavation"))); + if (mcPermissions.getInstance().swords(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS))); + if (mcPermissions.getInstance().taming(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING))); + if (mcPermissions.getInstance().unarmed(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED))); + } + + if (Skills.hasMiscSkills(player)) { + player.sendMessage(header + "-=MISC SKILLS=-"); + if (mcPermissions.getInstance().acrobatics(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS))); + // if(mcPermissions.getInstance().alchemy(player)) + // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AlchemySkill"), PP.getSkillLevel(SkillType.ALCHEMY), PP.getSkillXpLevel(SkillType.ALCHEMY), PP.getXpToLevel(SkillType.ALCHEMY))); + // if(mcPermissions.getInstance().enchanting(player)) + // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.EnchantingSkill"), PP.getSkillLevel(SkillType.ENCHANTING), PP.getSkillXpLevel(SkillType.ENCHANTING), PP.getXpToLevel(SkillType.ENCHANTING))); + if (mcPermissions.getInstance().repair(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR))); + } + player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(player))); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/general/WhoisCommand.java b/src/main/java/com/gmail/nossr50/commands/general/WhoisCommand.java similarity index 98% rename from src/com/gmail/nossr50/commands/general/WhoisCommand.java rename to src/main/java/com/gmail/nossr50/commands/general/WhoisCommand.java index 854125a60..413055beb 100644 --- a/src/com/gmail/nossr50/commands/general/WhoisCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/WhoisCommand.java @@ -1,98 +1,98 @@ -package com.gmail.nossr50.commands.general; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -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.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.skills.Skills; - -public class WhoisCommand implements CommandExecutor { - private final mcMMO plugin; - - public WhoisCommand(mcMMO instance) { - this.plugin = instance; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.whoisEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - Player player = (Player) sender; - - if (!mcPermissions.getInstance().whois(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - - if (args.length < 1) { - player.sendMessage(ChatColor.RED + "Proper usage is /" + LoadProperties.whois + " "); - return true; - } - // if split[1] is a player - if (plugin.getServer().getPlayer(args[0]) != null) { - Player target = plugin.getServer().getPlayer(args[0]); - PlayerProfile PPt = Users.getProfile(target); - - player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~"); - player.sendMessage(target.getName()); - if (PPt.inParty()) - player.sendMessage("Party: " + PPt.getParty()); - player.sendMessage("Health: " + target.getHealth() + ChatColor.GRAY + " (20 is full health)"); - player.sendMessage("OP: " + target.isOp()); - player.sendMessage(ChatColor.GREEN + "mcMMO Stats for " + ChatColor.YELLOW + target.getName()); - - player.sendMessage(ChatColor.GOLD + "-=GATHERING SKILLS=-"); - if (mcPermissions.getInstance().excavation(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PPt.getSkillLevel(SkillType.EXCAVATION), PPt.getSkillXpLevel(SkillType.EXCAVATION), PPt.getXpToLevel(SkillType.EXCAVATION))); - if (mcPermissions.getInstance().fishing(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.FishingSkill"), PPt.getSkillLevel(SkillType.FISHING), PPt.getSkillXpLevel(SkillType.FISHING), PPt.getXpToLevel(SkillType.FISHING))); - if (mcPermissions.getInstance().herbalism(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PPt.getSkillLevel(SkillType.HERBALISM), PPt.getSkillXpLevel(SkillType.HERBALISM), PPt.getXpToLevel(SkillType.HERBALISM))); - if (mcPermissions.getInstance().mining(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PPt.getSkillLevel(SkillType.MINING), PPt.getSkillXpLevel(SkillType.MINING), PPt.getXpToLevel(SkillType.MINING))); - if (mcPermissions.getInstance().woodcutting(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PPt.getSkillLevel(SkillType.WOODCUTTING), PPt.getSkillXpLevel(SkillType.WOODCUTTING), PPt.getXpToLevel(SkillType.WOODCUTTING))); - - player.sendMessage(ChatColor.GOLD + "-=COMBAT SKILLS=-"); - if (mcPermissions.getInstance().axes(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PPt.getSkillLevel(SkillType.AXES), PPt.getSkillXpLevel(SkillType.AXES), PPt.getXpToLevel(SkillType.AXES))); - if (mcPermissions.getInstance().archery(player)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PPt.getSkillLevel(SkillType.ARCHERY), PPt.getSkillXpLevel(SkillType.ARCHERY), PPt.getXpToLevel(SkillType.ARCHERY))); - // if(mcPermissions.getInstance().sorcery(target)) - // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkill("sorcery"), PPt.getSkill("sorceryXP"), PPt.getXpToLevel("excavation"))); - if (mcPermissions.getInstance().swords(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PPt.getSkillLevel(SkillType.SWORDS), PPt.getSkillXpLevel(SkillType.SWORDS), PPt.getXpToLevel(SkillType.SWORDS))); - if (mcPermissions.getInstance().taming(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PPt.getSkillLevel(SkillType.TAMING), PPt.getSkillXpLevel(SkillType.TAMING), PPt.getXpToLevel(SkillType.TAMING))); - if (mcPermissions.getInstance().unarmed(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PPt.getSkillLevel(SkillType.UNARMED), PPt.getSkillXpLevel(SkillType.UNARMED), PPt.getXpToLevel(SkillType.UNARMED))); - - player.sendMessage(ChatColor.GOLD + "-=MISC SKILLS=-"); - if (mcPermissions.getInstance().acrobatics(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PPt.getSkillLevel(SkillType.ACROBATICS), PPt.getSkillXpLevel(SkillType.ACROBATICS), PPt.getXpToLevel(SkillType.ACROBATICS))); - // if(mcPermissions.getInstance().alchemy(target)) - // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AlchemySkill"), PPt.getSkillLevel(SkillType.ALCHEMY), PPt.getSkillXpLevel(SkillType.ALCHEMY), PPt.getXpToLevel(SkillType.ALCHEMY))); - // if(mcPermissions.getInstance().enchanting(target)) - // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.EnchantingSkill"), PPt.getSkillLevel(SkillType.ENCHANTING), PPt.getSkillXpLevel(SkillType.ENCHANTING), PPt.getXpToLevel(SkillType.ENCHANTING))); - if (mcPermissions.getInstance().repair(target)) - player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PPt.getSkillLevel(SkillType.REPAIR), PPt.getSkillXpLevel(SkillType.REPAIR), PPt.getXpToLevel(SkillType.REPAIR))); - - player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(target))); - } - - return true; - } -} +package com.gmail.nossr50.commands.general; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +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.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.skills.Skills; + +public class WhoisCommand implements CommandExecutor { + private final mcMMO plugin; + + public WhoisCommand(mcMMO instance) { + this.plugin = instance; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.whoisEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + Player player = (Player) sender; + + if (!mcPermissions.getInstance().whois(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + + if (args.length < 1) { + player.sendMessage(ChatColor.RED + "Proper usage is /" + LoadProperties.whois + " "); + return true; + } + // if split[1] is a player + if (plugin.getServer().getPlayer(args[0]) != null) { + Player target = plugin.getServer().getPlayer(args[0]); + PlayerProfile PPt = Users.getProfile(target); + + player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~"); + player.sendMessage(target.getName()); + if (PPt.inParty()) + player.sendMessage("Party: " + PPt.getParty()); + player.sendMessage("Health: " + target.getHealth() + ChatColor.GRAY + " (20 is full health)"); + player.sendMessage("OP: " + target.isOp()); + player.sendMessage(ChatColor.GREEN + "mcMMO Stats for " + ChatColor.YELLOW + target.getName()); + + player.sendMessage(ChatColor.GOLD + "-=GATHERING SKILLS=-"); + if (mcPermissions.getInstance().excavation(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PPt.getSkillLevel(SkillType.EXCAVATION), PPt.getSkillXpLevel(SkillType.EXCAVATION), PPt.getXpToLevel(SkillType.EXCAVATION))); + if (mcPermissions.getInstance().fishing(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.FishingSkill"), PPt.getSkillLevel(SkillType.FISHING), PPt.getSkillXpLevel(SkillType.FISHING), PPt.getXpToLevel(SkillType.FISHING))); + if (mcPermissions.getInstance().herbalism(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PPt.getSkillLevel(SkillType.HERBALISM), PPt.getSkillXpLevel(SkillType.HERBALISM), PPt.getXpToLevel(SkillType.HERBALISM))); + if (mcPermissions.getInstance().mining(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PPt.getSkillLevel(SkillType.MINING), PPt.getSkillXpLevel(SkillType.MINING), PPt.getXpToLevel(SkillType.MINING))); + if (mcPermissions.getInstance().woodcutting(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PPt.getSkillLevel(SkillType.WOODCUTTING), PPt.getSkillXpLevel(SkillType.WOODCUTTING), PPt.getXpToLevel(SkillType.WOODCUTTING))); + + player.sendMessage(ChatColor.GOLD + "-=COMBAT SKILLS=-"); + if (mcPermissions.getInstance().axes(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PPt.getSkillLevel(SkillType.AXES), PPt.getSkillXpLevel(SkillType.AXES), PPt.getXpToLevel(SkillType.AXES))); + if (mcPermissions.getInstance().archery(player)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PPt.getSkillLevel(SkillType.ARCHERY), PPt.getSkillXpLevel(SkillType.ARCHERY), PPt.getXpToLevel(SkillType.ARCHERY))); + // if(mcPermissions.getInstance().sorcery(target)) + // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkill("sorcery"), PPt.getSkill("sorceryXP"), PPt.getXpToLevel("excavation"))); + if (mcPermissions.getInstance().swords(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PPt.getSkillLevel(SkillType.SWORDS), PPt.getSkillXpLevel(SkillType.SWORDS), PPt.getXpToLevel(SkillType.SWORDS))); + if (mcPermissions.getInstance().taming(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PPt.getSkillLevel(SkillType.TAMING), PPt.getSkillXpLevel(SkillType.TAMING), PPt.getXpToLevel(SkillType.TAMING))); + if (mcPermissions.getInstance().unarmed(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PPt.getSkillLevel(SkillType.UNARMED), PPt.getSkillXpLevel(SkillType.UNARMED), PPt.getXpToLevel(SkillType.UNARMED))); + + player.sendMessage(ChatColor.GOLD + "-=MISC SKILLS=-"); + if (mcPermissions.getInstance().acrobatics(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PPt.getSkillLevel(SkillType.ACROBATICS), PPt.getSkillXpLevel(SkillType.ACROBATICS), PPt.getXpToLevel(SkillType.ACROBATICS))); + // if(mcPermissions.getInstance().alchemy(target)) + // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AlchemySkill"), PPt.getSkillLevel(SkillType.ALCHEMY), PPt.getSkillXpLevel(SkillType.ALCHEMY), PPt.getXpToLevel(SkillType.ALCHEMY))); + // if(mcPermissions.getInstance().enchanting(target)) + // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.EnchantingSkill"), PPt.getSkillLevel(SkillType.ENCHANTING), PPt.getSkillXpLevel(SkillType.ENCHANTING), PPt.getXpToLevel(SkillType.ENCHANTING))); + if (mcPermissions.getInstance().repair(target)) + player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PPt.getSkillLevel(SkillType.REPAIR), PPt.getSkillXpLevel(SkillType.REPAIR), PPt.getXpToLevel(SkillType.REPAIR))); + + player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(target))); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/general/XprateCommand.java b/src/main/java/com/gmail/nossr50/commands/general/XprateCommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/general/XprateCommand.java rename to src/main/java/com/gmail/nossr50/commands/general/XprateCommand.java index 000576d7e..56f1f16c5 100644 --- a/src/com/gmail/nossr50/commands/general/XprateCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/XprateCommand.java @@ -1,126 +1,126 @@ -package com.gmail.nossr50.commands.general; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.locale.mcLocale; - -public class XprateCommand implements CommandExecutor { - private static int oldrate = LoadProperties.xpGainMultiplier; - - public static boolean xpevent = false; - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.xprateEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - if(args.length <= 0) - { - System.out.println(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate})); - System.out.println(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate})); - } - - if(args.length == 1 && args[0].equalsIgnoreCase("reset")) - { - if(xpevent) - { - for(Player x : Bukkit.getServer().getOnlinePlayers()) - x.sendMessage(mcLocale.getString("Commands.xprate.over")); - xpevent = !xpevent; - LoadProperties.xpGainMultiplier = oldrate; - } else - { - LoadProperties.xpGainMultiplier = oldrate; - } - } - - if(args.length >= 1 && m.isInt(args[0])) - { - oldrate = LoadProperties.xpGainMultiplier; - - if(args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false"))) - { - if(args[1].equalsIgnoreCase("true")) - xpevent = true; - else - xpevent = false; - } else - { - System.out.println(mcLocale.getString("Commands.xprate.proper3")); - return true; - } - LoadProperties.xpGainMultiplier = m.getInt(args[0]); - if(xpevent = true) - for(Player x : Bukkit.getServer().getOnlinePlayers()) - { - x.sendMessage(ChatColor.GOLD+"XP EVENT FOR mcMMO HAS STARTED!"); - x.sendMessage(ChatColor.GOLD+"mcMMO XP RATE IS NOW "+LoadProperties.xpGainMultiplier+"x!!"); - } - } - - return true; - } - - Player player = (Player) sender; - - if(!mcPermissions.getInstance().admin(player)) - { - player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - if(args.length <= 0) - { - player.sendMessage(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate})); - player.sendMessage(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate})); - } - if(args.length == 1 && args[0].equalsIgnoreCase("reset")) - { - if(xpevent) - { - for(Player x : Bukkit.getServer().getOnlinePlayers()) - x.sendMessage(mcLocale.getString("Commands.xprate.over")); - xpevent = !xpevent; - LoadProperties.xpGainMultiplier = oldrate; - } else - { - LoadProperties.xpGainMultiplier = oldrate; - } - } - if(args.length >= 1 && m.isInt(args[0])) - { - oldrate = LoadProperties.xpGainMultiplier; - - if(args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false"))) - { - if(args[1].equalsIgnoreCase("true")) - xpevent = true; - else - xpevent = false; - } else - { - player.sendMessage(mcLocale.getString("Commands.xprate.proper3")); - return true; - } - LoadProperties.xpGainMultiplier = m.getInt(args[0]); - if(xpevent = true) - for(Player x : Bukkit.getServer().getOnlinePlayers()) - { - x.sendMessage(mcLocale.getString("Commands.xprate.started")); - x.sendMessage(mcLocale.getString("Commands.xprate.started2", new Object[] {LoadProperties.xpGainMultiplier})); - } - } - - return true; - } -} +package com.gmail.nossr50.commands.general; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.locale.mcLocale; + +public class XprateCommand implements CommandExecutor { + private static int oldrate = LoadProperties.xpGainMultiplier; + + public static boolean xpevent = false; + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.xprateEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + if(args.length <= 0) + { + System.out.println(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate})); + System.out.println(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate})); + } + + if(args.length == 1 && args[0].equalsIgnoreCase("reset")) + { + if(xpevent) + { + for(Player x : Bukkit.getServer().getOnlinePlayers()) + x.sendMessage(mcLocale.getString("Commands.xprate.over")); + xpevent = !xpevent; + LoadProperties.xpGainMultiplier = oldrate; + } else + { + LoadProperties.xpGainMultiplier = oldrate; + } + } + + if(args.length >= 1 && m.isInt(args[0])) + { + oldrate = LoadProperties.xpGainMultiplier; + + if(args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false"))) + { + if(args[1].equalsIgnoreCase("true")) + xpevent = true; + else + xpevent = false; + } else + { + System.out.println(mcLocale.getString("Commands.xprate.proper3")); + return true; + } + LoadProperties.xpGainMultiplier = m.getInt(args[0]); + if(xpevent = true) + for(Player x : Bukkit.getServer().getOnlinePlayers()) + { + x.sendMessage(ChatColor.GOLD+"XP EVENT FOR mcMMO HAS STARTED!"); + x.sendMessage(ChatColor.GOLD+"mcMMO XP RATE IS NOW "+LoadProperties.xpGainMultiplier+"x!!"); + } + } + + return true; + } + + Player player = (Player) sender; + + if(!mcPermissions.getInstance().admin(player)) + { + player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + if(args.length <= 0) + { + player.sendMessage(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate})); + player.sendMessage(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate})); + } + if(args.length == 1 && args[0].equalsIgnoreCase("reset")) + { + if(xpevent) + { + for(Player x : Bukkit.getServer().getOnlinePlayers()) + x.sendMessage(mcLocale.getString("Commands.xprate.over")); + xpevent = !xpevent; + LoadProperties.xpGainMultiplier = oldrate; + } else + { + LoadProperties.xpGainMultiplier = oldrate; + } + } + if(args.length >= 1 && m.isInt(args[0])) + { + oldrate = LoadProperties.xpGainMultiplier; + + if(args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false"))) + { + if(args[1].equalsIgnoreCase("true")) + xpevent = true; + else + xpevent = false; + } else + { + player.sendMessage(mcLocale.getString("Commands.xprate.proper3")); + return true; + } + LoadProperties.xpGainMultiplier = m.getInt(args[0]); + if(xpevent = true) + for(Player x : Bukkit.getServer().getOnlinePlayers()) + { + x.sendMessage(mcLocale.getString("Commands.xprate.started")); + x.sendMessage(mcLocale.getString("Commands.xprate.started2", new Object[] {LoadProperties.xpGainMultiplier})); + } + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/mc/McabilityCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/McabilityCommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/mc/McabilityCommand.java rename to src/main/java/com/gmail/nossr50/commands/mc/McabilityCommand.java index f4acc72a2..75ddca13d 100644 --- a/src/com/gmail/nossr50/commands/mc/McabilityCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/mc/McabilityCommand.java @@ -1,45 +1,45 @@ -package com.gmail.nossr50.commands.mc; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 McabilityCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!mcPermissions.permissionsEnabled) { - sender.sendMessage("This command requires permissions."); - return true; - } - - if (!LoadProperties.mcabilityEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (PP.getAbilityUse()) { - player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOff")); - PP.toggleAbilityUse(); - } else { - player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOn")); - PP.toggleAbilityUse(); - } - - return true; - } -} +package com.gmail.nossr50.commands.mc; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 McabilityCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!mcPermissions.permissionsEnabled) { + sender.sendMessage("This command requires permissions."); + return true; + } + + if (!LoadProperties.mcabilityEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (PP.getAbilityUse()) { + player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOff")); + PP.toggleAbilityUse(); + } else { + player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOn")); + PP.toggleAbilityUse(); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/mc/MccCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/MccCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/mc/MccCommand.java rename to src/main/java/com/gmail/nossr50/commands/mc/MccCommand.java index 6fa895720..2607445bc 100644 --- a/src/com/gmail/nossr50/commands/mc/MccCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/mc/MccCommand.java @@ -1,73 +1,73 @@ -package com.gmail.nossr50.commands.mc; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.locale.mcLocale; - -public class MccCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.mccEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - - 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 + 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")); - - return true; - } -} +package com.gmail.nossr50.commands.mc; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.locale.mcLocale; + +public class MccCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.mccEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + + 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 + 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")); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/mc/McgodCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/McgodCommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/mc/McgodCommand.java rename to src/main/java/com/gmail/nossr50/commands/mc/McgodCommand.java index 116fef919..135075547 100644 --- a/src/com/gmail/nossr50/commands/mc/McgodCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/mc/McgodCommand.java @@ -1,48 +1,48 @@ -package com.gmail.nossr50.commands.mc; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 McgodCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.mcgodEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - 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(); - } - } - - return true; - } -} +package com.gmail.nossr50.commands.mc; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 McgodCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.mcgodEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + 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(); + } + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/mc/McmmoCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/McmmoCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/mc/McmmoCommand.java rename to src/main/java/com/gmail/nossr50/commands/mc/McmmoCommand.java index 0888ebac4..be1991725 100644 --- a/src/com/gmail/nossr50/commands/mc/McmmoCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/mc/McmmoCommand.java @@ -1,48 +1,48 @@ -package com.gmail.nossr50.commands.mc; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.getspout.spoutapi.player.SpoutPlayer; - -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.locale.mcLocale; - -public class McmmoCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.mcmmoEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - - player.sendMessage(ChatColor.RED + "-----[]" + ChatColor.GREEN + "mcMMO" + ChatColor.RED + "[]-----"); - String description = mcLocale.getString("mcMMO.Description", new Object[] { LoadProperties.mcc }); - String[] mcSplit = description.split(","); - - for (String x : mcSplit) { - player.sendMessage(x); - } - - if (LoadProperties.spoutEnabled && player instanceof SpoutPlayer) { - SpoutPlayer sPlayer = (SpoutPlayer) player; - if (LoadProperties.donateMessage) - sPlayer.sendNotification("[mcMMO] Donate!", "Paypal nossr50@gmail.com", Material.CAKE); - } else { - if (LoadProperties.donateMessage) - player.sendMessage(ChatColor.GREEN + "If you like my work you can donate via Paypal: nossr50@gmail.com"); - } - - return true; - } -} +package com.gmail.nossr50.commands.mc; + +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.getspout.spoutapi.player.SpoutPlayer; + +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.locale.mcLocale; + +public class McmmoCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.mcmmoEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + + player.sendMessage(ChatColor.RED + "-----[]" + ChatColor.GREEN + "mcMMO" + ChatColor.RED + "[]-----"); + String description = mcLocale.getString("mcMMO.Description", new Object[] { LoadProperties.mcc }); + String[] mcSplit = description.split(","); + + for (String x : mcSplit) { + player.sendMessage(x); + } + + if (LoadProperties.spoutEnabled && player instanceof SpoutPlayer) { + SpoutPlayer sPlayer = (SpoutPlayer) player; + if (LoadProperties.donateMessage) + sPlayer.sendNotification("[mcMMO] Donate!", "Paypal nossr50@gmail.com", Material.CAKE); + } else { + if (LoadProperties.donateMessage) + player.sendMessage(ChatColor.GREEN + "If you like my work you can donate via Paypal: nossr50@gmail.com"); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/mc/McrefreshCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/McrefreshCommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/mc/McrefreshCommand.java rename to src/main/java/com/gmail/nossr50/commands/mc/McrefreshCommand.java index 41fa78077..67c31839e 100644 --- a/src/com/gmail/nossr50/commands/mc/McrefreshCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/mc/McrefreshCommand.java @@ -1,93 +1,93 @@ -package com.gmail.nossr50.commands.mc; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 McrefreshCommand implements CommandExecutor { - private final mcMMO plugin; - - public McrefreshCommand(mcMMO instance) { - this.plugin = instance; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.mcrefreshEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (!mcPermissions.getInstance().mcrefresh(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - if (args.length >= 1 && (plugin.getServer().getPlayer(args[0]) != null)) { - player.sendMessage("You have refreshed " + args[0] + "'s cooldowns!"); - player = plugin.getServer().getPlayer(args[0]); - } - - /* - * 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")); - - return true; - } -} +package com.gmail.nossr50.commands.mc; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 McrefreshCommand implements CommandExecutor { + private final mcMMO plugin; + + public McrefreshCommand(mcMMO instance) { + this.plugin = instance; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.mcrefreshEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (!mcPermissions.getInstance().mcrefresh(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + if (args.length >= 1 && (plugin.getServer().getPlayer(args[0]) != null)) { + player.sendMessage("You have refreshed " + args[0] + "'s cooldowns!"); + player = plugin.getServer().getPlayer(args[0]); + } + + /* + * 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")); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/mc/MctopCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/mc/MctopCommand.java rename to src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java index 5b6b30292..031c4f221 100644 --- a/src/com/gmail/nossr50/commands/mc/MctopCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java @@ -1,199 +1,199 @@ -package com.gmail.nossr50.commands.mc; - -import java.util.ArrayList; -import java.util.HashMap; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Leaderboard; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.skills.Skills; - -public class MctopCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.mctopEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - - if (LoadProperties.useMySQL == false) { - /* - * POWER LEVEL INFO RETRIEVAL - */ - if (args.length == 0) { - int p = 1; - String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); - player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); - int n = 1 * p; // Position - for (String x : info) { - if (x != null) { - String digit = String.valueOf(n); - if (n < 10) - digit = "0" + String.valueOf(n); - String[] splitx = x.split(":"); - // Format: 1. Playername - skill value - player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); - n++; - } - } - } - if (args.length >= 1 && m.isInt(args[0])) { - int p = 1; - // Grab page value if specified - if (args.length >= 1) { - if (m.isInt(args[0])) { - p = Integer.valueOf(args[0]); - } - } - int pt = p; - if (p > 1) { - pt -= 1; - pt += (pt * 10); - pt = 10; - } - String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); - player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); - int n = 1 * pt; // Position - for (String x : info) { - if (x != null) { - String digit = String.valueOf(n); - if (n < 10) - digit = "0" + String.valueOf(n); - String[] splitx = x.split(":"); - // Format: 1. Playername - skill value - player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); - n++; - } - } - } - /* - * SKILL SPECIFIED INFO RETRIEVAL - */ - if (args.length >= 1 && Skills.isSkill(args[0])) { - int p = 1; - // Grab page value if specified - if (args.length >= 2) { - if (m.isInt(args[1])) { - p = Integer.valueOf(args[1]); - } - } - int pt = p; - if (p > 1) { - pt -= 1; - pt += (pt * 10); - pt = 10; - } - String firstLetter = args[0].substring(0, 1); // Get first letter - String remainder = args[0].substring(1); // Get remainder of word. - String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); - - String[] info = Leaderboard.retrieveInfo(args[0].toUpperCase(), p); - player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] { capitalized })); - int n = 1 * pt; // Position - for (String x : info) { - if (x != null) { - String digit = String.valueOf(n); - if (n < 10) - digit = "0" + String.valueOf(n); - String[] splitx = x.split(":"); - // Format: 1. Playername - skill value - player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); - n++; - } - } - } - } else { - /* - * MYSQL LEADERBOARDS - */ - String powerlevel = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing"; - if (args.length >= 1 && Skills.isSkill(args[0])) { - /* - * Create a nice consistent capitalized leaderboard name - */ - String lowercase = args[0].toLowerCase(); // For the query - String firstLetter = args[0].substring(0, 1); // Get first letter - String remainder = args[0].substring(1); // Get remainder of word. - String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); - - player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] { capitalized })); - if (args.length >= 2 && m.isInt(args[1])) { - int n = 1; // For the page number - int n2 = Integer.valueOf(args[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 " + 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 (args.length >= 0) { - player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); - if (args.length >= 1 && m.isInt(args[0])) { - int n = 1; // For the page number - int n2 = Integer.valueOf(args[0]); - 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 " + powerlevel + " 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 " + powerlevel + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY " + powerlevel + " 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)); - } - } - } - - return true; - } -} +package com.gmail.nossr50.commands.mc; + +import java.util.ArrayList; +import java.util.HashMap; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Leaderboard; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.skills.Skills; + +public class MctopCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.mctopEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + + if (LoadProperties.useMySQL == false) { + /* + * POWER LEVEL INFO RETRIEVAL + */ + if (args.length == 0) { + int p = 1; + String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); + player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); + int n = 1 * p; // Position + for (String x : info) { + if (x != null) { + String digit = String.valueOf(n); + if (n < 10) + digit = "0" + String.valueOf(n); + String[] splitx = x.split(":"); + // Format: 1. Playername - skill value + player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); + n++; + } + } + } + if (args.length >= 1 && m.isInt(args[0])) { + int p = 1; + // Grab page value if specified + if (args.length >= 1) { + if (m.isInt(args[0])) { + p = Integer.valueOf(args[0]); + } + } + int pt = p; + if (p > 1) { + pt -= 1; + pt += (pt * 10); + pt = 10; + } + String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); + player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); + int n = 1 * pt; // Position + for (String x : info) { + if (x != null) { + String digit = String.valueOf(n); + if (n < 10) + digit = "0" + String.valueOf(n); + String[] splitx = x.split(":"); + // Format: 1. Playername - skill value + player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); + n++; + } + } + } + /* + * SKILL SPECIFIED INFO RETRIEVAL + */ + if (args.length >= 1 && Skills.isSkill(args[0])) { + int p = 1; + // Grab page value if specified + if (args.length >= 2) { + if (m.isInt(args[1])) { + p = Integer.valueOf(args[1]); + } + } + int pt = p; + if (p > 1) { + pt -= 1; + pt += (pt * 10); + pt = 10; + } + String firstLetter = args[0].substring(0, 1); // Get first letter + String remainder = args[0].substring(1); // Get remainder of word. + String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); + + String[] info = Leaderboard.retrieveInfo(args[0].toUpperCase(), p); + player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] { capitalized })); + int n = 1 * pt; // Position + for (String x : info) { + if (x != null) { + String digit = String.valueOf(n); + if (n < 10) + digit = "0" + String.valueOf(n); + String[] splitx = x.split(":"); + // Format: 1. Playername - skill value + player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); + n++; + } + } + } + } else { + /* + * MYSQL LEADERBOARDS + */ + String powerlevel = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing"; + if (args.length >= 1 && Skills.isSkill(args[0])) { + /* + * Create a nice consistent capitalized leaderboard name + */ + String lowercase = args[0].toLowerCase(); // For the query + String firstLetter = args[0].substring(0, 1); // Get first letter + String remainder = args[0].substring(1); // Get remainder of word. + String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); + + player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] { capitalized })); + if (args.length >= 2 && m.isInt(args[1])) { + int n = 1; // For the page number + int n2 = Integer.valueOf(args[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 " + 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 (args.length >= 0) { + player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); + if (args.length >= 1 && m.isInt(args[0])) { + int n = 1; // For the page number + int n2 = Integer.valueOf(args[0]); + 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 " + powerlevel + " 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 " + powerlevel + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY " + powerlevel + " 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)); + } + } + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/party/ACommand.java b/src/main/java/com/gmail/nossr50/commands/party/ACommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/party/ACommand.java rename to src/main/java/com/gmail/nossr50/commands/party/ACommand.java index 25f1f7bd6..e01a676df 100644 --- a/src/com/gmail/nossr50/commands/party/ACommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/ACommand.java @@ -1,86 +1,86 @@ -package com.gmail.nossr50.commands.party; - -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.locale.mcLocale; - -public class ACommand implements CommandExecutor { - private Logger log; - - public ACommand() { - this.log = Logger.getLogger("Minecraft"); - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - - // Console message? - if (!(sender instanceof Player) && args.length >= 1) { - String aMessage = args[0]; - for (int i = 1; i <= args.length - 1; i++) { - aMessage = aMessage + " " + args[i]; - } - - String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + "*Console*" + ChatColor.AQUA + "} "; - - log.log(Level.INFO, "[A]<*Console*> " + aMessage); - - for (Player herp : Bukkit.getServer().getOnlinePlayers()) { - if (mcPermissions.getInstance().adminChat(herp) || herp.isOp()) - herp.sendMessage(aPrefix + aMessage); - } - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(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.getDisplayName() + ChatColor.AQUA + "} "; - log.log(Level.INFO, "[A]<" + player.getDisplayName() + "> " + aMessage); - for (Player herp : Bukkit.getServer().getOnlinePlayers()) { - if (mcPermissions.getInstance().adminChat(herp) || herp.isOp()) - herp.sendMessage(aPrefix + aMessage); - } - return true; - } - - if (PP.getPartyChatMode()) - PP.togglePartyChat(); - - PP.toggleAdminChat(); - - if (PP.getAdminChatMode()) { - player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOn")); - // player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On"); - } else { - player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOff")); - // player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off"); - } - - return true; - } -} +package com.gmail.nossr50.commands.party; + +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.locale.mcLocale; + +public class ACommand implements CommandExecutor { + private Logger log; + + public ACommand() { + this.log = Logger.getLogger("Minecraft"); + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + + // Console message? + if (!(sender instanceof Player) && args.length >= 1) { + String aMessage = args[0]; + for (int i = 1; i <= args.length - 1; i++) { + aMessage = aMessage + " " + args[i]; + } + + String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + "*Console*" + ChatColor.AQUA + "} "; + + log.log(Level.INFO, "[A]<*Console*> " + aMessage); + + for (Player herp : Bukkit.getServer().getOnlinePlayers()) { + if (mcPermissions.getInstance().adminChat(herp) || herp.isOp()) + herp.sendMessage(aPrefix + aMessage); + } + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(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.getDisplayName() + ChatColor.AQUA + "} "; + log.log(Level.INFO, "[A]<" + player.getDisplayName() + "> " + aMessage); + for (Player herp : Bukkit.getServer().getOnlinePlayers()) { + if (mcPermissions.getInstance().adminChat(herp) || herp.isOp()) + herp.sendMessage(aPrefix + aMessage); + } + return true; + } + + if (PP.getPartyChatMode()) + PP.togglePartyChat(); + + PP.toggleAdminChat(); + + if (PP.getAdminChatMode()) { + player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOn")); + // player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On"); + } else { + player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOff")); + // player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off"); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/party/AcceptCommand.java b/src/main/java/com/gmail/nossr50/commands/party/AcceptCommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/party/AcceptCommand.java rename to src/main/java/com/gmail/nossr50/commands/party/AcceptCommand.java index 1cc73d060..5a2492f63 100644 --- a/src/com/gmail/nossr50/commands/party/AcceptCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/AcceptCommand.java @@ -1,52 +1,52 @@ -package com.gmail.nossr50.commands.party; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 AcceptCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.acceptEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (!mcPermissions.getInstance().party(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - - if (PP.hasPartyInvite()) { - Party Pinstance = Party.getInstance(); - - if (PP.inParty()) { - Pinstance.removeFromParty(player, PP); - } - PP.acceptInvite(); - Pinstance.addToParty(player, PP, PP.getParty(), true); - - } else { - player.sendMessage(mcLocale.getString("mcPlayerListener.NoInvites")); - } - - return true; - } -} +package com.gmail.nossr50.commands.party; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 AcceptCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.acceptEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (!mcPermissions.getInstance().party(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + + if (PP.hasPartyInvite()) { + Party Pinstance = Party.getInstance(); + + if (PP.inParty()) { + Pinstance.removeFromParty(player, PP); + } + PP.acceptInvite(); + Pinstance.addToParty(player, PP, PP.getParty(), true); + + } else { + player.sendMessage(mcLocale.getString("mcPlayerListener.NoInvites")); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/party/InviteCommand.java b/src/main/java/com/gmail/nossr50/commands/party/InviteCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/party/InviteCommand.java rename to src/main/java/com/gmail/nossr50/commands/party/InviteCommand.java index c432ce247..84f2514d3 100644 --- a/src/com/gmail/nossr50/commands/party/InviteCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/InviteCommand.java @@ -1,73 +1,73 @@ -package com.gmail.nossr50.commands.party; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 InviteCommand implements CommandExecutor { - private final mcMMO plugin; - - public InviteCommand(mcMMO instance) { - this.plugin = instance; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.inviteEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (!mcPermissions.getInstance().party(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - - Party Pinstance = Party.getInstance(); - - if (!PP.inParty()) { - player.sendMessage(mcLocale.getString("mcPlayerListener.NotInParty")); - return true; - } - if (args.length < 1) { - player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.invite + " "); - return true; - } - if (PP.inParty() && args.length >= 1 && (plugin.getServer().getPlayer(args[0]) != null)) { - if (Pinstance.canInvite(player, PP)) { - Player target = plugin.getServer().getPlayer(args[0]); - PlayerProfile PPt = Users.getProfile(target); - PPt.modifyInvite(PP.getParty()); - - player.sendMessage(mcLocale.getString("mcPlayerListener.InviteSuccess")); - // target.sendMessage(ChatColor.RED+"ALERT: "+ChatColor.GREEN+"You have received a party invite for "+PPt.getInvite()+" from "+player.getName()); - target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite1", new Object[] { PPt.getInvite(), player.getName() })); - // target.sendMessage(ChatColor.YELLOW+"Type "+ChatColor.GREEN+LoadProperties.accept+ChatColor.YELLOW+" to accept the invite"); - target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite2", new Object[] { LoadProperties.accept })); - } else { - player.sendMessage(mcLocale.getString("Party.Locked")); - return true; - } - } - - return true; - } -} +package com.gmail.nossr50.commands.party; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 InviteCommand implements CommandExecutor { + private final mcMMO plugin; + + public InviteCommand(mcMMO instance) { + this.plugin = instance; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.inviteEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (!mcPermissions.getInstance().party(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + + Party Pinstance = Party.getInstance(); + + if (!PP.inParty()) { + player.sendMessage(mcLocale.getString("mcPlayerListener.NotInParty")); + return true; + } + if (args.length < 1) { + player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.invite + " "); + return true; + } + if (PP.inParty() && args.length >= 1 && (plugin.getServer().getPlayer(args[0]) != null)) { + if (Pinstance.canInvite(player, PP)) { + Player target = plugin.getServer().getPlayer(args[0]); + PlayerProfile PPt = Users.getProfile(target); + PPt.modifyInvite(PP.getParty()); + + player.sendMessage(mcLocale.getString("mcPlayerListener.InviteSuccess")); + // target.sendMessage(ChatColor.RED+"ALERT: "+ChatColor.GREEN+"You have received a party invite for "+PPt.getInvite()+" from "+player.getName()); + target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite1", new Object[] { PPt.getInvite(), player.getName() })); + // target.sendMessage(ChatColor.YELLOW+"Type "+ChatColor.GREEN+LoadProperties.accept+ChatColor.YELLOW+" to accept the invite"); + target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite2", new Object[] { LoadProperties.accept })); + } else { + player.sendMessage(mcLocale.getString("Party.Locked")); + return true; + } + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/party/PCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PCommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/party/PCommand.java rename to src/main/java/com/gmail/nossr50/commands/party/PCommand.java index e4dd624d2..48b8b9e01 100644 --- a/src/com/gmail/nossr50/commands/party/PCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PCommand.java @@ -1,101 +1,101 @@ -package com.gmail.nossr50.commands.party; - -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 PCommand implements CommandExecutor { - private Logger log; - - public PCommand() { - this.log = Logger.getLogger("Minecraft"); - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.partyEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - // Console message? - if (!(sender instanceof Player)) { - if (args.length < 2) - return true; - String pMessage = args[1]; - for (int i = 2; i <= args.length - 1; i++) { - pMessage = pMessage + " " + args[i]; - } - - String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + "*Console*" + ChatColor.GREEN + ") "; - - log.log(Level.INFO, "[P](" + args[0] + ")" + "<*Console*> " + pMessage); - - for (Player herp : Bukkit.getServer().getOnlinePlayers()) { - if (Users.getProfile(herp).inParty()) { - if (Users.getProfile(herp).getParty().equalsIgnoreCase(args[0])) { - herp.sendMessage(pPrefix + pMessage); - } - } - } - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (!mcPermissions.getInstance().party(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - - // Not a toggle, a message - - if (args.length >= 1) { - String pMessage = args[0]; - for (int i = 1; i <= args.length - 1; i++) { - pMessage = pMessage + " " + args[i]; - } - String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getDisplayName() + ChatColor.GREEN + ") "; - - log.log(Level.INFO, "[P](" + PP.getParty() + ")" + "<" + player.getDisplayName() + "> " + pMessage); - - for (Player herp : Bukkit.getServer().getOnlinePlayers()) { - if (Users.getProfile(herp).inParty()) { - if (Party.getInstance().inSameParty(herp, player)) - herp.sendMessage(pPrefix + pMessage); - } - } - - return true; - } - - if (PP.getAdminChatMode()) - PP.toggleAdminChat(); - - PP.togglePartyChat(); - - if (PP.getPartyChatMode()) { - // player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On"); - player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOn")); - } else { - // player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off"); - player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOff")); - } - - return true; - } -} +package com.gmail.nossr50.commands.party; + +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 PCommand implements CommandExecutor { + private Logger log; + + public PCommand() { + this.log = Logger.getLogger("Minecraft"); + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.partyEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + // Console message? + if (!(sender instanceof Player)) { + if (args.length < 2) + return true; + String pMessage = args[1]; + for (int i = 2; i <= args.length - 1; i++) { + pMessage = pMessage + " " + args[i]; + } + + String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + "*Console*" + ChatColor.GREEN + ") "; + + log.log(Level.INFO, "[P](" + args[0] + ")" + "<*Console*> " + pMessage); + + for (Player herp : Bukkit.getServer().getOnlinePlayers()) { + if (Users.getProfile(herp).inParty()) { + if (Users.getProfile(herp).getParty().equalsIgnoreCase(args[0])) { + herp.sendMessage(pPrefix + pMessage); + } + } + } + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (!mcPermissions.getInstance().party(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + + // Not a toggle, a message + + if (args.length >= 1) { + String pMessage = args[0]; + for (int i = 1; i <= args.length - 1; i++) { + pMessage = pMessage + " " + args[i]; + } + String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getDisplayName() + ChatColor.GREEN + ") "; + + log.log(Level.INFO, "[P](" + PP.getParty() + ")" + "<" + player.getDisplayName() + "> " + pMessage); + + for (Player herp : Bukkit.getServer().getOnlinePlayers()) { + if (Users.getProfile(herp).inParty()) { + if (Party.getInstance().inSameParty(herp, player)) + herp.sendMessage(pPrefix + pMessage); + } + } + + return true; + } + + if (PP.getAdminChatMode()) + PP.toggleAdminChat(); + + PP.togglePartyChat(); + + if (PP.getPartyChatMode()) { + // player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On"); + player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOn")); + } else { + // player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off"); + player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOff")); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/party/PartyCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/party/PartyCommand.java rename to src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java index 2972b630f..9832b0a88 100644 --- a/src/com/gmail/nossr50/commands/party/PartyCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java @@ -1,192 +1,192 @@ -package com.gmail.nossr50.commands.party; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 PartyCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.partyEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (!mcPermissions.getInstance().party(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - - Party Pinstance = Party.getInstance(); - - if (PP.inParty() && (!Pinstance.isParty(PP.getParty()) || !Pinstance.isInParty(player, PP))) { - Pinstance.addToParty(player, PP, PP.getParty(), false); - } - - if (args.length == 0 && !PP.inParty()) { - player.sendMessage(mcLocale.getString("Party.Help1", new Object[] { LoadProperties.party })); - player.sendMessage(mcLocale.getString("Party.Help2", new Object[] { LoadProperties.party })); - player.sendMessage(mcLocale.getString("Party.Help3", new Object[] { LoadProperties.party })); - return true; - } else if (args.length == 0 && PP.inParty()) { - String tempList = ""; - int x = 0; - for (Player p : Bukkit.getServer().getOnlinePlayers()) { - if (PP.getParty().equals(Users.getProfile(p).getParty())) { - if (p != null && x + 1 >= Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers())) { - if (Pinstance.isPartyLeader(p.getName(), PP.getParty())) { - tempList += ChatColor.GOLD + p.getName(); - x++; - } else { - tempList += ChatColor.WHITE + p.getName(); - x++; - } - } - if (p != null && x < Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers())) { - if (Pinstance.isPartyLeader(p.getName(), PP.getParty())) { - tempList += ChatColor.GOLD + p.getName() + ", "; - x++; - } else { - tempList += ChatColor.WHITE + p.getName() + ", "; - x++; - } - } - } - } - player.sendMessage(mcLocale.getString("mcPlayerListener.YouAreInParty", new Object[] { PP.getParty() })); - player.sendMessage(mcLocale.getString("mcPlayerListener.PartyMembers") + " (" + tempList + ChatColor.GREEN + ")"); - return true; - } else if (args.length == 1) { - if (args[0].equals("q") && PP.inParty()) { - Pinstance.removeFromParty(player, PP); - - player.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty")); - return true; - } else if (args[0].equalsIgnoreCase("?")) { - player.sendMessage(mcLocale.getString("Party.Help4", new Object[] { LoadProperties.party })); - player.sendMessage(mcLocale.getString("Party.Help2", new Object[] { LoadProperties.party })); - player.sendMessage(mcLocale.getString("Party.Help5", new Object[] { LoadProperties.party })); - player.sendMessage(mcLocale.getString("Party.Help6", new Object[] { LoadProperties.party })); - player.sendMessage(mcLocale.getString("Party.Help7", new Object[] { LoadProperties.party })); - player.sendMessage(mcLocale.getString("Party.Help8", new Object[] { LoadProperties.party })); - player.sendMessage(mcLocale.getString("Party.Help9", new Object[] { LoadProperties.party })); - } else if (args[0].equalsIgnoreCase("lock")) { - if (PP.inParty()) { - if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { - Pinstance.lockParty(PP.getParty()); - player.sendMessage(mcLocale.getString("Party.Locked")); - } else { - player.sendMessage(mcLocale.getString("Party.NotOwner")); - } - } else { - player.sendMessage(mcLocale.getString("Party.InvalidName")); - } - } else if (args[0].equalsIgnoreCase("unlock")) { - if (PP.inParty()) { - if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { - Pinstance.unlockParty(PP.getParty()); - player.sendMessage(mcLocale.getString("Party.Unlocked")); - } else { - player.sendMessage(mcLocale.getString("Party.NotOwner")); - } - } else { - player.sendMessage(mcLocale.getString("Party.InvalidName")); - } - // Party debugging command. - // } else if (args[0].equalsIgnoreCase("dump")) { - // Pinstance.dump(player); - } else { - if (PP.inParty()) { - Pinstance.removeFromParty(player, PP); - } - Pinstance.addToParty(player, PP, args[0], false); - return true; - } - } else if (args.length == 2 && PP.inParty()) { - if (args[0].equalsIgnoreCase("password")) { - if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { - if (Pinstance.isPartyLocked(PP.getParty())) { - Pinstance.setPartyPassword(PP.getParty(), args[1]); - player.sendMessage(mcLocale.getString("Party.PasswordSet", new Object[] { args[1] })); - } else { - player.sendMessage(mcLocale.getString("Party.IsntLocked")); - } - } else { - player.sendMessage(mcLocale.getString("Party.NotOwner")); - } - } else if (args[0].equalsIgnoreCase("kick")) { - if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { - if (Pinstance.isPartyLocked(PP.getParty())) { - Player tPlayer = null; - if (Bukkit.getServer().getPlayer(args[1]) != null) - tPlayer = Bukkit.getServer().getPlayer(args[1]); - if (tPlayer == null) { - player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] { args[1] })); - } - if (!Pinstance.inSameParty(player, tPlayer)) { - player.sendMessage(mcLocale.getString("Party.NotInYourParty", new Object[] { tPlayer.getName() })); - } else { - // Not an admin - if (!mcPermissions.getInstance().admin(player)) { - // Can't kick an admin - if (mcPermissions.getInstance().admin(tPlayer)) { - player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] { tPlayer.getName() })); - } - } - PlayerProfile tPP = Users.getProfile(tPlayer); - - Pinstance.removeFromParty(tPlayer, tPP); - - tPlayer.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty")); - } - } else { - player.sendMessage(mcLocale.getString("Party.IsntLocked")); - } - } else { - player.sendMessage(mcLocale.getString("Party.NotOwner")); - } - } else if (args[0].equalsIgnoreCase("owner")) { - if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { - Player tPlayer = null; - if (Bukkit.getServer().getPlayer(args[1]) != null) - tPlayer = Bukkit.getServer().getPlayer(args[1]); - if (tPlayer == null) { - player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] { args[1] })); - } - if (!Pinstance.inSameParty(player, tPlayer)) { - player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] { tPlayer.getName() })); - } else { - Pinstance.setPartyLeader(PP.getParty(), tPlayer.getName()); - } - } else { - player.sendMessage(mcLocale.getString("Party.NotOwner")); - } - } else { - Pinstance.removeFromParty(player, PP); - Pinstance.addToParty(player, PP, args[0], false, args[1]); - } - } else if (args.length == 2 && !PP.inParty()) { - Pinstance.addToParty(player, PP, args[0], false, args[1]); - } - - return true; - } -} +package com.gmail.nossr50.commands.party; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 PartyCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.partyEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (!mcPermissions.getInstance().party(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + + Party Pinstance = Party.getInstance(); + + if (PP.inParty() && (!Pinstance.isParty(PP.getParty()) || !Pinstance.isInParty(player, PP))) { + Pinstance.addToParty(player, PP, PP.getParty(), false); + } + + if (args.length == 0 && !PP.inParty()) { + player.sendMessage(mcLocale.getString("Party.Help1", new Object[] { LoadProperties.party })); + player.sendMessage(mcLocale.getString("Party.Help2", new Object[] { LoadProperties.party })); + player.sendMessage(mcLocale.getString("Party.Help3", new Object[] { LoadProperties.party })); + return true; + } else if (args.length == 0 && PP.inParty()) { + String tempList = ""; + int x = 0; + for (Player p : Bukkit.getServer().getOnlinePlayers()) { + if (PP.getParty().equals(Users.getProfile(p).getParty())) { + if (p != null && x + 1 >= Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers())) { + if (Pinstance.isPartyLeader(p.getName(), PP.getParty())) { + tempList += ChatColor.GOLD + p.getName(); + x++; + } else { + tempList += ChatColor.WHITE + p.getName(); + x++; + } + } + if (p != null && x < Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers())) { + if (Pinstance.isPartyLeader(p.getName(), PP.getParty())) { + tempList += ChatColor.GOLD + p.getName() + ", "; + x++; + } else { + tempList += ChatColor.WHITE + p.getName() + ", "; + x++; + } + } + } + } + player.sendMessage(mcLocale.getString("mcPlayerListener.YouAreInParty", new Object[] { PP.getParty() })); + player.sendMessage(mcLocale.getString("mcPlayerListener.PartyMembers") + " (" + tempList + ChatColor.GREEN + ")"); + return true; + } else if (args.length == 1) { + if (args[0].equals("q") && PP.inParty()) { + Pinstance.removeFromParty(player, PP); + + player.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty")); + return true; + } else if (args[0].equalsIgnoreCase("?")) { + player.sendMessage(mcLocale.getString("Party.Help4", new Object[] { LoadProperties.party })); + player.sendMessage(mcLocale.getString("Party.Help2", new Object[] { LoadProperties.party })); + player.sendMessage(mcLocale.getString("Party.Help5", new Object[] { LoadProperties.party })); + player.sendMessage(mcLocale.getString("Party.Help6", new Object[] { LoadProperties.party })); + player.sendMessage(mcLocale.getString("Party.Help7", new Object[] { LoadProperties.party })); + player.sendMessage(mcLocale.getString("Party.Help8", new Object[] { LoadProperties.party })); + player.sendMessage(mcLocale.getString("Party.Help9", new Object[] { LoadProperties.party })); + } else if (args[0].equalsIgnoreCase("lock")) { + if (PP.inParty()) { + if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { + Pinstance.lockParty(PP.getParty()); + player.sendMessage(mcLocale.getString("Party.Locked")); + } else { + player.sendMessage(mcLocale.getString("Party.NotOwner")); + } + } else { + player.sendMessage(mcLocale.getString("Party.InvalidName")); + } + } else if (args[0].equalsIgnoreCase("unlock")) { + if (PP.inParty()) { + if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { + Pinstance.unlockParty(PP.getParty()); + player.sendMessage(mcLocale.getString("Party.Unlocked")); + } else { + player.sendMessage(mcLocale.getString("Party.NotOwner")); + } + } else { + player.sendMessage(mcLocale.getString("Party.InvalidName")); + } + // Party debugging command. + // } else if (args[0].equalsIgnoreCase("dump")) { + // Pinstance.dump(player); + } else { + if (PP.inParty()) { + Pinstance.removeFromParty(player, PP); + } + Pinstance.addToParty(player, PP, args[0], false); + return true; + } + } else if (args.length == 2 && PP.inParty()) { + if (args[0].equalsIgnoreCase("password")) { + if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { + if (Pinstance.isPartyLocked(PP.getParty())) { + Pinstance.setPartyPassword(PP.getParty(), args[1]); + player.sendMessage(mcLocale.getString("Party.PasswordSet", new Object[] { args[1] })); + } else { + player.sendMessage(mcLocale.getString("Party.IsntLocked")); + } + } else { + player.sendMessage(mcLocale.getString("Party.NotOwner")); + } + } else if (args[0].equalsIgnoreCase("kick")) { + if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { + if (Pinstance.isPartyLocked(PP.getParty())) { + Player tPlayer = null; + if (Bukkit.getServer().getPlayer(args[1]) != null) + tPlayer = Bukkit.getServer().getPlayer(args[1]); + if (tPlayer == null) { + player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] { args[1] })); + } + if (!Pinstance.inSameParty(player, tPlayer)) { + player.sendMessage(mcLocale.getString("Party.NotInYourParty", new Object[] { tPlayer.getName() })); + } else { + // Not an admin + if (!mcPermissions.getInstance().admin(player)) { + // Can't kick an admin + if (mcPermissions.getInstance().admin(tPlayer)) { + player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] { tPlayer.getName() })); + } + } + PlayerProfile tPP = Users.getProfile(tPlayer); + + Pinstance.removeFromParty(tPlayer, tPP); + + tPlayer.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty")); + } + } else { + player.sendMessage(mcLocale.getString("Party.IsntLocked")); + } + } else { + player.sendMessage(mcLocale.getString("Party.NotOwner")); + } + } else if (args[0].equalsIgnoreCase("owner")) { + if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { + Player tPlayer = null; + if (Bukkit.getServer().getPlayer(args[1]) != null) + tPlayer = Bukkit.getServer().getPlayer(args[1]); + if (tPlayer == null) { + player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] { args[1] })); + } + if (!Pinstance.inSameParty(player, tPlayer)) { + player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] { tPlayer.getName() })); + } else { + Pinstance.setPartyLeader(PP.getParty(), tPlayer.getName()); + } + } else { + player.sendMessage(mcLocale.getString("Party.NotOwner")); + } + } else { + Pinstance.removeFromParty(player, PP); + Pinstance.addToParty(player, PP, args[0], false, args[1]); + } + } else if (args.length == 2 && !PP.inParty()) { + Pinstance.addToParty(player, PP, args[0], false, args[1]); + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/party/PtpCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PtpCommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/party/PtpCommand.java rename to src/main/java/com/gmail/nossr50/commands/party/PtpCommand.java index 5a2d47c80..cada2df24 100644 --- a/src/com/gmail/nossr50/commands/party/PtpCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PtpCommand.java @@ -1,62 +1,62 @@ -package com.gmail.nossr50.commands.party; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -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 PtpCommand implements CommandExecutor { - private final mcMMO plugin; - - public PtpCommand(mcMMO instance) { - this.plugin = instance; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.ptpEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (!mcPermissions.getInstance().partyTeleport(player)) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - if (args.length < 1) { - player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.ptp + " "); - return true; - } - if (plugin.getServer().getPlayer(args[0]) == null) { - player.sendMessage("That is not a valid player"); - } - - if (plugin.getServer().getPlayer(args[0]) != null) { - Player target = plugin.getServer().getPlayer(args[0]); - 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."); - } - } - - return true; - } -} +package com.gmail.nossr50.commands.party; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +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 PtpCommand implements CommandExecutor { + private final mcMMO plugin; + + public PtpCommand(mcMMO instance) { + this.plugin = instance; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.ptpEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (!mcPermissions.getInstance().partyTeleport(player)) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + if (args.length < 1) { + player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.ptp + " "); + return true; + } + if (plugin.getServer().getPlayer(args[0]) == null) { + player.sendMessage("That is not a valid player"); + } + + if (plugin.getServer().getPlayer(args[0]) != null) { + Player target = plugin.getServer().getPlayer(args[0]); + 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."); + } + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java similarity index 98% rename from src/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java index c22c19e59..ca2272364 100644 --- a/src/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java @@ -1,52 +1,52 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class AcrobaticsCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - String dodgepercentage; - float skillvalue = (float) PP.getSkillLevel(SkillType.ACROBATICS); - String percentage = String.valueOf((skillvalue / 1000) * 100); - String gracepercentage = String.valueOf(((skillvalue / 1000) * 100) * 2); - - if (PP.getSkillLevel(SkillType.ACROBATICS) <= 800) - dodgepercentage = String.valueOf((skillvalue / 4000 * 100)); - else - dodgepercentage = "20"; - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillAcrobatics") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainAcrobatics") })); - - if (mcPermissions.getInstance().acrobatics(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAcrobatics1_0"), mcLocale.getString("m.EffectsAcrobatics1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAcrobatics2_0"), mcLocale.getString("m.EffectsAcrobatics2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAcrobatics3_0"), mcLocale.getString("m.EffectsAcrobatics3_1") })); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); - player.sendMessage(mcLocale.getString("m.AcrobaticsRollChance", new Object[] { percentage })); - player.sendMessage(mcLocale.getString("m.AcrobaticsGracefulRollChance", new Object[] { gracepercentage })); - player.sendMessage(mcLocale.getString("m.AcrobaticsDodgeChance", new Object[] { dodgepercentage })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class AcrobaticsCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + String dodgepercentage; + float skillvalue = (float) PP.getSkillLevel(SkillType.ACROBATICS); + String percentage = String.valueOf((skillvalue / 1000) * 100); + String gracepercentage = String.valueOf(((skillvalue / 1000) * 100) * 2); + + if (PP.getSkillLevel(SkillType.ACROBATICS) <= 800) + dodgepercentage = String.valueOf((skillvalue / 4000 * 100)); + else + dodgepercentage = "20"; + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillAcrobatics") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainAcrobatics") })); + + if (mcPermissions.getInstance().acrobatics(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAcrobatics1_0"), mcLocale.getString("m.EffectsAcrobatics1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAcrobatics2_0"), mcLocale.getString("m.EffectsAcrobatics2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAcrobatics3_0"), mcLocale.getString("m.EffectsAcrobatics3_1") })); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); + player.sendMessage(mcLocale.getString("m.AcrobaticsRollChance", new Object[] { percentage })); + player.sendMessage(mcLocale.getString("m.AcrobaticsGracefulRollChance", new Object[] { gracepercentage })); + player.sendMessage(mcLocale.getString("m.AcrobaticsDodgeChance", new Object[] { dodgepercentage })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/ArcheryCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/skills/ArcheryCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java index a2a34c644..b7853d3ec 100644 --- a/src/com/gmail/nossr50/commands/skills/ArcheryCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java @@ -1,63 +1,63 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class ArcheryCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - float skillvalue = (float) PP.getSkillLevel(SkillType.ARCHERY); - String percentage = String.valueOf((skillvalue / 1000) * 100); - - int ignition = 20; - if (PP.getSkillLevel(SkillType.ARCHERY) >= 200) - ignition += 20; - if (PP.getSkillLevel(SkillType.ARCHERY) >= 400) - ignition += 20; - if (PP.getSkillLevel(SkillType.ARCHERY) >= 600) - ignition += 20; - if (PP.getSkillLevel(SkillType.ARCHERY) >= 800) - ignition += 20; - if (PP.getSkillLevel(SkillType.ARCHERY) >= 1000) - ignition += 20; - - String percentagedaze; - if (PP.getSkillLevel(SkillType.ARCHERY) < 1000) - percentagedaze = String.valueOf((skillvalue / 2000) * 100); - else - percentagedaze = "50"; - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillArchery") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainArchery") })); - - if (mcPermissions.getInstance().archery(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsArchery1_0"), mcLocale.getString("m.EffectsArchery1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsArchery2_0"), mcLocale.getString("m.EffectsArchery2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.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) })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class ArcheryCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + float skillvalue = (float) PP.getSkillLevel(SkillType.ARCHERY); + String percentage = String.valueOf((skillvalue / 1000) * 100); + + int ignition = 20; + if (PP.getSkillLevel(SkillType.ARCHERY) >= 200) + ignition += 20; + if (PP.getSkillLevel(SkillType.ARCHERY) >= 400) + ignition += 20; + if (PP.getSkillLevel(SkillType.ARCHERY) >= 600) + ignition += 20; + if (PP.getSkillLevel(SkillType.ARCHERY) >= 800) + ignition += 20; + if (PP.getSkillLevel(SkillType.ARCHERY) >= 1000) + ignition += 20; + + String percentagedaze; + if (PP.getSkillLevel(SkillType.ARCHERY) < 1000) + percentagedaze = String.valueOf((skillvalue / 2000) * 100); + else + percentagedaze = "50"; + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillArchery") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainArchery") })); + + if (mcPermissions.getInstance().archery(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsArchery1_0"), mcLocale.getString("m.EffectsArchery1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsArchery2_0"), mcLocale.getString("m.EffectsArchery2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.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) })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/AxesCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/skills/AxesCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java index 1b14df8f9..d94543672 100644 --- a/src/com/gmail/nossr50/commands/skills/AxesCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java @@ -1,62 +1,62 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class AxesCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - String percentage; - - float skillvalue = (float) PP.getSkillLevel(SkillType.AXES); - if (PP.getSkillLevel(SkillType.AXES) < 750) - percentage = String.valueOf((skillvalue / 1000) * 100); - else - percentage = "75"; - - int ticks = 2; - int x = PP.getSkillLevel(SkillType.AXES); - while (x >= 50) { - x -= 50; - ticks++; - } - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillAxes") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainAxes") })); - - if (mcPermissions.getInstance().axes(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAxes1_0"), mcLocale.getString("m.EffectsAxes1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAxes2_0"), mcLocale.getString("m.EffectsAxes2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAxes3_0"), mcLocale.getString("m.EffectsAxes3_1") })); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); - player.sendMessage(mcLocale.getString("m.AxesCritChance", new Object[] { percentage })); - - if (PP.getSkillLevel(SkillType.AXES) < 500) - player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockAxes1") })); - else - player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusAxes1_0"), mcLocale.getString("m.AbilBonusAxes1_1") })); - - player.sendMessage(mcLocale.getString("m.AxesSkullLength", new Object[] { ticks })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class AxesCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + String percentage; + + float skillvalue = (float) PP.getSkillLevel(SkillType.AXES); + if (PP.getSkillLevel(SkillType.AXES) < 750) + percentage = String.valueOf((skillvalue / 1000) * 100); + else + percentage = "75"; + + int ticks = 2; + int x = PP.getSkillLevel(SkillType.AXES); + while (x >= 50) { + x -= 50; + ticks++; + } + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillAxes") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainAxes") })); + + if (mcPermissions.getInstance().axes(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAxes1_0"), mcLocale.getString("m.EffectsAxes1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAxes2_0"), mcLocale.getString("m.EffectsAxes2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsAxes3_0"), mcLocale.getString("m.EffectsAxes3_1") })); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); + player.sendMessage(mcLocale.getString("m.AxesCritChance", new Object[] { percentage })); + + if (PP.getSkillLevel(SkillType.AXES) < 500) + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockAxes1") })); + else + player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusAxes1_0"), mcLocale.getString("m.AbilBonusAxes1_1") })); + + player.sendMessage(mcLocale.getString("m.AxesSkullLength", new Object[] { ticks })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/ExcavationCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/skills/ExcavationCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java index 14e424db0..8578faef1 100644 --- a/src/com/gmail/nossr50/commands/skills/ExcavationCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java @@ -1,46 +1,46 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class ExcavationCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - int ticks = 2; - int x = PP.getSkillLevel(SkillType.EXCAVATION); - while (x >= 50) { - x -= 50; - ticks++; - } - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillExcavation") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainExcavation") })); - - if (mcPermissions.getInstance().excavation(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsExcavation1_0"), mcLocale.getString("m.EffectsExcavation1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsExcavation2_0"), mcLocale.getString("m.EffectsExcavation2_1") })); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); - player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] { ticks })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class ExcavationCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + int ticks = 2; + int x = PP.getSkillLevel(SkillType.EXCAVATION); + while (x >= 50) { + x -= 50; + ticks++; + } + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillExcavation") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainExcavation") })); + + if (mcPermissions.getInstance().excavation(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsExcavation1_0"), mcLocale.getString("m.EffectsExcavation1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsExcavation2_0"), mcLocale.getString("m.EffectsExcavation2_1") })); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); + player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] { ticks })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/FishingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java similarity index 98% rename from src/com/gmail/nossr50/commands/skills/FishingCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java index 9d920300c..fa9475453 100644 --- a/src/com/gmail/nossr50/commands/skills/FishingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java @@ -1,47 +1,47 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.skills.Fishing; - -public class FishingCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillFishing") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainFishing") })); - - if (mcPermissions.getInstance().fishing(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.FISHING), PP.getSkillXpLevel(SkillType.FISHING), PP.getXpToLevel(SkillType.FISHING) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsFishing1_0"), mcLocale.getString("m.EffectsFishing1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsFishing2_0"), mcLocale.getString("m.EffectsFishing2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsFishing3_0"), mcLocale.getString("m.EffectsFishing3_1") })); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); - player.sendMessage(mcLocale.getString("m.FishingRank", new Object[] { Fishing.getFishingLootTier(PP) })); - player.sendMessage(mcLocale.getString("m.FishingMagicInfo")); - - if (PP.getSkillLevel(SkillType.FISHING) < 150) - player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockFishing1") })); - else - player.sendMessage(mcLocale.getString("m.ShakeInfo", new Object[] { Fishing.getFishingLootTier(PP) })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.skills.Fishing; + +public class FishingCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillFishing") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainFishing") })); + + if (mcPermissions.getInstance().fishing(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.FISHING), PP.getSkillXpLevel(SkillType.FISHING), PP.getXpToLevel(SkillType.FISHING) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsFishing1_0"), mcLocale.getString("m.EffectsFishing1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsFishing2_0"), mcLocale.getString("m.EffectsFishing2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsFishing3_0"), mcLocale.getString("m.EffectsFishing3_1") })); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); + player.sendMessage(mcLocale.getString("m.FishingRank", new Object[] { Fishing.getFishingLootTier(PP) })); + player.sendMessage(mcLocale.getString("m.FishingMagicInfo")); + + if (PP.getSkillLevel(SkillType.FISHING) < 150) + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockFishing1") })); + else + player.sendMessage(mcLocale.getString("m.ShakeInfo", new Object[] { Fishing.getFishingLootTier(PP) })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/HerbalismCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java similarity index 98% rename from src/com/gmail/nossr50/commands/skills/HerbalismCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java index d43d7c2a9..93572cd38 100644 --- a/src/com/gmail/nossr50/commands/skills/HerbalismCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java @@ -1,63 +1,63 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class HerbalismCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - int bonus = 0; - if (PP.getSkillLevel(SkillType.HERBALISM) >= 200) - bonus++; - if (PP.getSkillLevel(SkillType.HERBALISM) >= 400) - bonus++; - if (PP.getSkillLevel(SkillType.HERBALISM) >= 600) - bonus++; - - int ticks = 2; - int x = PP.getSkillLevel(SkillType.HERBALISM); - while (x >= 50) { - x -= 50; - ticks++; - } - - float skillvalue = (float) PP.getSkillLevel(SkillType.HERBALISM); - - String percentage = String.valueOf((skillvalue / 1000) * 100); - String gpercentage = String.valueOf((skillvalue / 1500) * 100); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillHerbalism") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainHerbalism") })); - - if (mcPermissions.getInstance().herbalism(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsHerbalism1_0"), mcLocale.getString("m.EffectsHerbalism1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsHerbalism2_0"), mcLocale.getString("m.EffectsHerbalism2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsHerbalism3_0"), mcLocale.getString("m.EffectsHerbalism3_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.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 })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class HerbalismCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + int bonus = 0; + if (PP.getSkillLevel(SkillType.HERBALISM) >= 200) + bonus++; + if (PP.getSkillLevel(SkillType.HERBALISM) >= 400) + bonus++; + if (PP.getSkillLevel(SkillType.HERBALISM) >= 600) + bonus++; + + int ticks = 2; + int x = PP.getSkillLevel(SkillType.HERBALISM); + while (x >= 50) { + x -= 50; + ticks++; + } + + float skillvalue = (float) PP.getSkillLevel(SkillType.HERBALISM); + + String percentage = String.valueOf((skillvalue / 1000) * 100); + String gpercentage = String.valueOf((skillvalue / 1500) * 100); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillHerbalism") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainHerbalism") })); + + if (mcPermissions.getInstance().herbalism(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsHerbalism1_0"), mcLocale.getString("m.EffectsHerbalism1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsHerbalism2_0"), mcLocale.getString("m.EffectsHerbalism2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsHerbalism3_0"), mcLocale.getString("m.EffectsHerbalism3_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.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 })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/MiningCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/skills/MiningCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java index 9256eb047..f8e3bb3a2 100644 --- a/src/com/gmail/nossr50/commands/skills/MiningCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java @@ -1,48 +1,48 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class MiningCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - float skillvalue = (float) PP.getSkillLevel(SkillType.MINING); - String percentage = String.valueOf((skillvalue / 1000) * 100); - int ticks = 2; - int x = PP.getSkillLevel(SkillType.MINING); - while (x >= 50) { - x -= 50; - ticks++; - } - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillMining") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainMining") })); - - if (mcPermissions.getInstance().mining(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsMining1_0"), mcLocale.getString("m.EffectsMining1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsMining2_0"), mcLocale.getString("m.EffectsMining2_1") })); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); - player.sendMessage(mcLocale.getString("m.MiningDoubleDropChance", new Object[] { percentage })); - player.sendMessage(mcLocale.getString("m.MiningSuperBreakerLength", new Object[] { ticks })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class MiningCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + float skillvalue = (float) PP.getSkillLevel(SkillType.MINING); + String percentage = String.valueOf((skillvalue / 1000) * 100); + int ticks = 2; + int x = PP.getSkillLevel(SkillType.MINING); + while (x >= 50) { + x -= 50; + ticks++; + } + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillMining") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainMining") })); + + if (mcPermissions.getInstance().mining(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsMining1_0"), mcLocale.getString("m.EffectsMining1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsMining2_0"), mcLocale.getString("m.EffectsMining2_1") })); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); + player.sendMessage(mcLocale.getString("m.MiningDoubleDropChance", new Object[] { percentage })); + player.sendMessage(mcLocale.getString("m.MiningSuperBreakerLength", new Object[] { ticks })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/RepairCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java similarity index 98% rename from src/com/gmail/nossr50/commands/skills/RepairCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java index fad3291fd..6d68d1298 100644 --- a/src/com/gmail/nossr50/commands/skills/RepairCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java @@ -1,53 +1,53 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.skills.Repair; - -public class RepairCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - float skillvalue = (float) PP.getSkillLevel(SkillType.REPAIR); - String percentage = String.valueOf((skillvalue / 1000) * 100); - String repairmastery = String.valueOf((skillvalue / 500) * 100); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillRepair") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainRepair") })); - - if (mcPermissions.getInstance().repair(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair1_0"), mcLocale.getString("m.EffectsRepair1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair2_0"), mcLocale.getString("m.EffectsRepair2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair3_0"), mcLocale.getString("m.EffectsRepair3_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair4_0", new Object[] { LoadProperties.repairdiamondlevel }), mcLocale.getString("m.EffectsRepair4_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair5_0"), mcLocale.getString("m.EffectsRepair5_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 })); - player.sendMessage(mcLocale.getString("m.ArcaneForgingRank", new Object[] { Repair.getArcaneForgingRank(PP) })); - player.sendMessage(mcLocale.getString("m.ArcaneEnchantKeepChance", new Object[] { Repair.getEnchantChance(Repair.getArcaneForgingRank(PP)) })); - player.sendMessage(mcLocale.getString("m.ArcaneEnchantDowngradeChance", new Object[] { Repair.getDowngradeChance(Repair.getArcaneForgingRank(PP)) })); - player.sendMessage(mcLocale.getString("m.ArcaneForgingMilestones")); - player.sendMessage(mcLocale.getString("m.ArcaneForgingMilestones2")); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.skills.Repair; + +public class RepairCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + float skillvalue = (float) PP.getSkillLevel(SkillType.REPAIR); + String percentage = String.valueOf((skillvalue / 1000) * 100); + String repairmastery = String.valueOf((skillvalue / 500) * 100); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillRepair") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainRepair") })); + + if (mcPermissions.getInstance().repair(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair1_0"), mcLocale.getString("m.EffectsRepair1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair2_0"), mcLocale.getString("m.EffectsRepair2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair3_0"), mcLocale.getString("m.EffectsRepair3_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair4_0", new Object[] { LoadProperties.repairdiamondlevel }), mcLocale.getString("m.EffectsRepair4_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsRepair5_0"), mcLocale.getString("m.EffectsRepair5_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 })); + player.sendMessage(mcLocale.getString("m.ArcaneForgingRank", new Object[] { Repair.getArcaneForgingRank(PP) })); + player.sendMessage(mcLocale.getString("m.ArcaneEnchantKeepChance", new Object[] { Repair.getEnchantChance(Repair.getArcaneForgingRank(PP)) })); + player.sendMessage(mcLocale.getString("m.ArcaneEnchantDowngradeChance", new Object[] { Repair.getDowngradeChance(Repair.getArcaneForgingRank(PP)) })); + player.sendMessage(mcLocale.getString("m.ArcaneForgingMilestones")); + player.sendMessage(mcLocale.getString("m.ArcaneForgingMilestones2")); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/SwordsCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/skills/SwordsCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java index 41b30f45a..0e6a43672 100644 --- a/src/com/gmail/nossr50/commands/skills/SwordsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java @@ -1,69 +1,69 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class SwordsCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - int bleedrank = 2; - String percentage, counterattackpercentage; - - float skillvalue = (float) PP.getSkillLevel(SkillType.SWORDS); - if (PP.getSkillLevel(SkillType.SWORDS) < 750) - percentage = String.valueOf((skillvalue / 1000) * 100); - else - percentage = "75"; - - if (skillvalue >= 750) - bleedrank += 1; - - if (PP.getSkillLevel(SkillType.SWORDS) <= 600) - counterattackpercentage = String.valueOf((skillvalue / 2000) * 100); - else - counterattackpercentage = "30"; - - int ticks = 2; - int x = PP.getSkillLevel(SkillType.SWORDS); - while (x >= 50) { - x -= 50; - ticks++; - } - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillSwords") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainSwords") })); - - if (mcPermissions.getInstance().swords(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsSwords1_0"), mcLocale.getString("m.EffectsSwords1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsSwords2_0"), mcLocale.getString("m.EffectsSwords2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsSwords3_0"), mcLocale.getString("m.EffectsSwords3_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.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.SwordsSSLength", new Object[] { ticks })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class SwordsCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + int bleedrank = 2; + String percentage, counterattackpercentage; + + float skillvalue = (float) PP.getSkillLevel(SkillType.SWORDS); + if (PP.getSkillLevel(SkillType.SWORDS) < 750) + percentage = String.valueOf((skillvalue / 1000) * 100); + else + percentage = "75"; + + if (skillvalue >= 750) + bleedrank += 1; + + if (PP.getSkillLevel(SkillType.SWORDS) <= 600) + counterattackpercentage = String.valueOf((skillvalue / 2000) * 100); + else + counterattackpercentage = "30"; + + int ticks = 2; + int x = PP.getSkillLevel(SkillType.SWORDS); + while (x >= 50) { + x -= 50; + ticks++; + } + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillSwords") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainSwords") })); + + if (mcPermissions.getInstance().swords(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsSwords1_0"), mcLocale.getString("m.EffectsSwords1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsSwords2_0"), mcLocale.getString("m.EffectsSwords2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsSwords3_0"), mcLocale.getString("m.EffectsSwords3_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.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.SwordsSSLength", new Object[] { ticks })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/TamingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java similarity index 98% rename from src/com/gmail/nossr50/commands/skills/TamingCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java index ee1b11e94..de8f65a86 100644 --- a/src/com/gmail/nossr50/commands/skills/TamingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java @@ -1,70 +1,70 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class TamingCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - float skillvalue = (float) PP.getSkillLevel(SkillType.TAMING); - String percentage = String.valueOf((skillvalue / 1000) * 100); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillTaming") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainTaming") })); - - if (mcPermissions.getInstance().taming(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming1_0"), mcLocale.getString("m.EffectsTaming1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming2_0"), mcLocale.getString("m.EffectsTaming2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming3_0"), mcLocale.getString("m.EffectsTaming3_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming4_0"), mcLocale.getString("m.EffectsTaming4_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming5_0"), mcLocale.getString("m.EffectsTaming5_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming6_0"), mcLocale.getString("m.EffectsTaming6_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming7_0"), mcLocale.getString("m.EffectsTaming7_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTaming7_2", new Object[] { LoadProperties.bonesConsumedByCOTW })); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); - - if (PP.getSkillLevel(SkillType.TAMING) < 100) - player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming1") })); - else - player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming1_0"), mcLocale.getString("m.AbilBonusTaming1_1") })); - - if (PP.getSkillLevel(SkillType.TAMING) < 250) - player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming2") })); - else - player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming2_0"), mcLocale.getString("m.AbilBonusTaming2_1") })); - - if (PP.getSkillLevel(SkillType.TAMING) < 500) - player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming3") })); - else - player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming3_0"), mcLocale.getString("m.AbilBonusTaming3_1") })); - - if (PP.getSkillLevel(SkillType.TAMING) < 750) - player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming4") })); - else - player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming4_0"), mcLocale.getString("m.AbilBonusTaming4_1") })); - - player.sendMessage(mcLocale.getString("m.TamingGoreChance", new Object[] { percentage })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class TamingCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + float skillvalue = (float) PP.getSkillLevel(SkillType.TAMING); + String percentage = String.valueOf((skillvalue / 1000) * 100); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillTaming") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainTaming") })); + + if (mcPermissions.getInstance().taming(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming1_0"), mcLocale.getString("m.EffectsTaming1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming2_0"), mcLocale.getString("m.EffectsTaming2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming3_0"), mcLocale.getString("m.EffectsTaming3_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming4_0"), mcLocale.getString("m.EffectsTaming4_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming5_0"), mcLocale.getString("m.EffectsTaming5_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming6_0"), mcLocale.getString("m.EffectsTaming6_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsTaming7_0"), mcLocale.getString("m.EffectsTaming7_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTaming7_2", new Object[] { LoadProperties.bonesConsumedByCOTW })); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); + + if (PP.getSkillLevel(SkillType.TAMING) < 100) + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming1") })); + else + player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming1_0"), mcLocale.getString("m.AbilBonusTaming1_1") })); + + if (PP.getSkillLevel(SkillType.TAMING) < 250) + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming2") })); + else + player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming2_0"), mcLocale.getString("m.AbilBonusTaming2_1") })); + + if (PP.getSkillLevel(SkillType.TAMING) < 500) + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming3") })); + else + player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming3_0"), mcLocale.getString("m.AbilBonusTaming3_1") })); + + if (PP.getSkillLevel(SkillType.TAMING) < 750) + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming4") })); + else + player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming4_0"), mcLocale.getString("m.AbilBonusTaming4_1") })); + + player.sendMessage(mcLocale.getString("m.TamingGoreChance", new Object[] { percentage })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/UnarmedCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java similarity index 98% rename from src/com/gmail/nossr50/commands/skills/UnarmedCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java index 4e6b4931e..21a08f4e4 100644 --- a/src/com/gmail/nossr50/commands/skills/UnarmedCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java @@ -1,74 +1,74 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class UnarmedCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - String percentage, arrowpercentage; - float skillvalue = (float) PP.getSkillLevel(SkillType.UNARMED); - - if (PP.getSkillLevel(SkillType.UNARMED) < 1000) - percentage = String.valueOf((skillvalue / 4000) * 100); - else - percentage = "25"; - - if (PP.getSkillLevel(SkillType.UNARMED) < 1000) - arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2); - else - arrowpercentage = "50"; - - int ticks = 2; - int x = PP.getSkillLevel(SkillType.UNARMED); - while (x >= 50) { - x -= 50; - ticks++; - } - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillUnarmed") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainUnarmed") })); - - if (mcPermissions.getInstance().unarmed(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed1_0"), mcLocale.getString("m.EffectsUnarmed1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed2_0"), mcLocale.getString("m.EffectsUnarmed2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed3_0"), mcLocale.getString("m.EffectsUnarmed3_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed4_0"), mcLocale.getString("m.EffectsUnarmed4_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed5_0"), mcLocale.getString("m.EffectsUnarmed5_1") })); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); - player.sendMessage(mcLocale.getString("m.UnarmedArrowDeflectChance", new Object[] { arrowpercentage })); - player.sendMessage(mcLocale.getString("m.UnarmedDisarmChance", new Object[] { percentage })); - - if (PP.getSkillLevel(SkillType.UNARMED) < 250) { - player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockUnarmed1") })); - } else if (PP.getSkillLevel(SkillType.UNARMED) >= 250 && PP.getSkillLevel(SkillType.UNARMED) < 500) { - player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusUnarmed1_0"), mcLocale.getString("m.AbilBonusUnarmed1_1") })); - player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockUnarmed2") })); - } else { - player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusUnarmed2_0"), mcLocale.getString("m.AbilBonusUnarmed2_1") })); - } - - player.sendMessage(mcLocale.getString("m.UnarmedBerserkLength", new Object[] { ticks })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class UnarmedCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + String percentage, arrowpercentage; + float skillvalue = (float) PP.getSkillLevel(SkillType.UNARMED); + + if (PP.getSkillLevel(SkillType.UNARMED) < 1000) + percentage = String.valueOf((skillvalue / 4000) * 100); + else + percentage = "25"; + + if (PP.getSkillLevel(SkillType.UNARMED) < 1000) + arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2); + else + arrowpercentage = "50"; + + int ticks = 2; + int x = PP.getSkillLevel(SkillType.UNARMED); + while (x >= 50) { + x -= 50; + ticks++; + } + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillUnarmed") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainUnarmed") })); + + if (mcPermissions.getInstance().unarmed(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed1_0"), mcLocale.getString("m.EffectsUnarmed1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed2_0"), mcLocale.getString("m.EffectsUnarmed2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed3_0"), mcLocale.getString("m.EffectsUnarmed3_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed4_0"), mcLocale.getString("m.EffectsUnarmed4_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsUnarmed5_0"), mcLocale.getString("m.EffectsUnarmed5_1") })); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); + player.sendMessage(mcLocale.getString("m.UnarmedArrowDeflectChance", new Object[] { arrowpercentage })); + player.sendMessage(mcLocale.getString("m.UnarmedDisarmChance", new Object[] { percentage })); + + if (PP.getSkillLevel(SkillType.UNARMED) < 250) { + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockUnarmed1") })); + } else if (PP.getSkillLevel(SkillType.UNARMED) >= 250 && PP.getSkillLevel(SkillType.UNARMED) < 500) { + player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusUnarmed1_0"), mcLocale.getString("m.AbilBonusUnarmed1_1") })); + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockUnarmed2") })); + } else { + player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusUnarmed2_0"), mcLocale.getString("m.AbilBonusUnarmed2_1") })); + } + + player.sendMessage(mcLocale.getString("m.UnarmedBerserkLength", new Object[] { ticks })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java similarity index 98% rename from src/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java rename to src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java index 466d8b3d8..90a79fa31 100644 --- a/src/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java @@ -1,56 +1,56 @@ -package com.gmail.nossr50.commands.skills; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class WoodcuttingCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - float skillvalue = (float) PP.getSkillLevel(SkillType.WOODCUTTING); - int ticks = 2; - int x = PP.getSkillLevel(SkillType.WOODCUTTING); - while (x >= 50) { - x -= 50; - ticks++; - } - String percentage = String.valueOf((skillvalue / 1000) * 100); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillWoodCutting") })); - player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainWoodCutting") })); - - if (mcPermissions.getInstance().woodcutting(player)) - player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING) })); - - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsWoodCutting1_0"), mcLocale.getString("m.EffectsWoodCutting1_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsWoodCutting2_0"), mcLocale.getString("m.EffectsWoodCutting2_1") })); - player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsWoodCutting3_0"), mcLocale.getString("m.EffectsWoodCutting3_1") })); - player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); - - if (PP.getSkillLevel(SkillType.WOODCUTTING) < 100) - player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockWoodCutting1") })); - else - player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusWoodCutting1_0"), mcLocale.getString("m.AbilBonusWoodCutting1_1") })); - - player.sendMessage(mcLocale.getString("m.WoodCuttingDoubleDropChance", new Object[] { percentage })); - player.sendMessage(mcLocale.getString("m.WoodCuttingTreeFellerLength", new Object[] { ticks })); - - return true; - } -} +package com.gmail.nossr50.commands.skills; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class WoodcuttingCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + float skillvalue = (float) PP.getSkillLevel(SkillType.WOODCUTTING); + int ticks = 2; + int x = PP.getSkillLevel(SkillType.WOODCUTTING); + while (x >= 50) { + x -= 50; + ticks++; + } + String percentage = String.valueOf((skillvalue / 1000) * 100); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillWoodCutting") })); + player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainWoodCutting") })); + + if (mcPermissions.getInstance().woodcutting(player)) + player.sendMessage(mcLocale.getString("m.LVL", new Object[] { PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING) })); + + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.Effects") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsWoodCutting1_0"), mcLocale.getString("m.EffectsWoodCutting1_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsWoodCutting2_0"), mcLocale.getString("m.EffectsWoodCutting2_1") })); + player.sendMessage(mcLocale.getString("m.EffectsTemplate", new Object[] { mcLocale.getString("m.EffectsWoodCutting3_0"), mcLocale.getString("m.EffectsWoodCutting3_1") })); + player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); + + if (PP.getSkillLevel(SkillType.WOODCUTTING) < 100) + player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockWoodCutting1") })); + else + player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusWoodCutting1_0"), mcLocale.getString("m.AbilBonusWoodCutting1_1") })); + + player.sendMessage(mcLocale.getString("m.WoodCuttingDoubleDropChance", new Object[] { percentage })); + player.sendMessage(mcLocale.getString("m.WoodCuttingTreeFellerLength", new Object[] { ticks })); + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/spout/MchudCommand.java b/src/main/java/com/gmail/nossr50/commands/spout/MchudCommand.java similarity index 96% rename from src/com/gmail/nossr50/commands/spout/MchudCommand.java rename to src/main/java/com/gmail/nossr50/commands/spout/MchudCommand.java index a0f56bb9a..00b35e099 100644 --- a/src/com/gmail/nossr50/commands/spout/MchudCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/spout/MchudCommand.java @@ -1,50 +1,50 @@ -package com.gmail.nossr50.commands.spout; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.HUDType; -import com.gmail.nossr50.datatypes.HUDmmo; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.spout.SpoutStuff; - -public class MchudCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.spoutEnabled) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if(args.length >= 1) - { - for(HUDType x : HUDType.values()) - { - if(x.toString().toLowerCase().equals(args[0].toLowerCase())) - { - if(SpoutStuff.playerHUDs.containsKey(player)) - { - SpoutStuff.playerHUDs.get(player).resetHUD(); - SpoutStuff.playerHUDs.remove(player); - PP.setHUDType(x); - SpoutStuff.playerHUDs.put(player, new HUDmmo(player)); - } - } - } - } - - return true; - } -} +package com.gmail.nossr50.commands.spout; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.HUDType; +import com.gmail.nossr50.datatypes.HUDmmo; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.spout.SpoutStuff; + +public class MchudCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.spoutEnabled) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if(args.length >= 1) + { + for(HUDType x : HUDType.values()) + { + if(x.toString().toLowerCase().equals(args[0].toLowerCase())) + { + if(SpoutStuff.playerHUDs.containsKey(player)) + { + SpoutStuff.playerHUDs.get(player).resetHUD(); + SpoutStuff.playerHUDs.remove(player); + PP.setHUDType(x); + SpoutStuff.playerHUDs.put(player, new HUDmmo(player)); + } + } + } + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/commands/spout/XplockCommand.java b/src/main/java/com/gmail/nossr50/commands/spout/XplockCommand.java similarity index 97% rename from src/com/gmail/nossr50/commands/spout/XplockCommand.java rename to src/main/java/com/gmail/nossr50/commands/spout/XplockCommand.java index 90f7c6107..8d0d1ee95 100644 --- a/src/com/gmail/nossr50/commands/spout/XplockCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/spout/XplockCommand.java @@ -1,62 +1,62 @@ -package com.gmail.nossr50.commands.spout; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -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; -import com.gmail.nossr50.skills.Skills; -import com.gmail.nossr50.spout.SpoutStuff; - -public class XplockCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!LoadProperties.spoutEnabled || !LoadProperties.xpbar || !LoadProperties.xplockEnable) { - sender.sendMessage("This command is not enabled."); - return true; - } - - if (!(sender instanceof Player)) { - sender.sendMessage("This command does not support console useage."); - return true; - } - - Player player = (Player) sender; - PlayerProfile PP = Users.getProfile(player); - - if (args.length >= 1 && Skills.isSkill(args[0]) && mcPermissions.permission(player, "mcmmo.skills." + Skills.getSkillType(args[0]).toString().toLowerCase())) { - if (PP.getXpBarLocked()) { - PP.setSkillLock(Skills.getSkillType(args[0])); - player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) })); - } else { - PP.setSkillLock(Skills.getSkillType(args[0])); - PP.toggleXpBarLocked(); - player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) })); - } - SpoutStuff.updateXpBar(player); - } else if (args.length < 1) { - if (PP.getXpBarLocked()) { - PP.toggleXpBarLocked(); - player.sendMessage(mcLocale.getString("Commands.xplock.unlocked")); - } else if (PP.getLastGained() != null) { - PP.toggleXpBarLocked(); - PP.setSkillLock(PP.getLastGained()); - player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) })); - } - } else if (args.length >= 1 && !Skills.isSkill(args[0])) { - player.sendMessage("Commands.xplock.invalid"); - } else if (args.length >= 2 && Skills.isSkill(args[0]) && !mcPermissions.permission(player, "mcmmo.skills." + Skills.getSkillType(args[0]).toString().toLowerCase())) { - player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); - return true; - } - - return true; - } -} +package com.gmail.nossr50.commands.spout; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +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; +import com.gmail.nossr50.skills.Skills; +import com.gmail.nossr50.spout.SpoutStuff; + +public class XplockCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!LoadProperties.spoutEnabled || !LoadProperties.xpbar || !LoadProperties.xplockEnable) { + sender.sendMessage("This command is not enabled."); + return true; + } + + if (!(sender instanceof Player)) { + sender.sendMessage("This command does not support console useage."); + return true; + } + + Player player = (Player) sender; + PlayerProfile PP = Users.getProfile(player); + + if (args.length >= 1 && Skills.isSkill(args[0]) && mcPermissions.permission(player, "mcmmo.skills." + Skills.getSkillType(args[0]).toString().toLowerCase())) { + if (PP.getXpBarLocked()) { + PP.setSkillLock(Skills.getSkillType(args[0])); + player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) })); + } else { + PP.setSkillLock(Skills.getSkillType(args[0])); + PP.toggleXpBarLocked(); + player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) })); + } + SpoutStuff.updateXpBar(player); + } else if (args.length < 1) { + if (PP.getXpBarLocked()) { + PP.toggleXpBarLocked(); + player.sendMessage(mcLocale.getString("Commands.xplock.unlocked")); + } else if (PP.getLastGained() != null) { + PP.toggleXpBarLocked(); + PP.setSkillLock(PP.getLastGained()); + player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) })); + } + } else if (args.length >= 1 && !Skills.isSkill(args[0])) { + player.sendMessage("Commands.xplock.invalid"); + } else if (args.length >= 2 && Skills.isSkill(args[0]) && !mcPermissions.permission(player, "mcmmo.skills." + Skills.getSkillType(args[0]).toString().toLowerCase())) { + player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); + return true; + } + + return true; + } +} diff --git a/src/com/gmail/nossr50/config/LoadProperties.java b/src/main/java/com/gmail/nossr50/config/LoadProperties.java similarity index 98% rename from src/com/gmail/nossr50/config/LoadProperties.java rename to src/main/java/com/gmail/nossr50/config/LoadProperties.java index 7b5402f72..d53576fa7 100644 --- a/src/com/gmail/nossr50/config/LoadProperties.java +++ b/src/main/java/com/gmail/nossr50/config/LoadProperties.java @@ -1,617 +1,617 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.config; - -import java.io.File; -import org.bukkit.util.config.Configuration; - -import com.gmail.nossr50.datatypes.HUDType; - -public class LoadProperties -{ - public static Boolean enableOnlyActivateWhenSneaking, enableAbilityMessages, enableAbilities, showDisplayName, showFaces, watch, xplockEnable, xpbar, xpicon, partybar, string, bucket, web, xprateEnable, slimeballs, spoutEnabled, - donateMessage, chimaeraWingEnable, xpGainsMobSpawners, myspawnEnable, mccEnable, mcmmoEnable, partyEnable, inviteEnable, acceptEnable, - whoisEnable, statsEnable, addxpEnable, ptpEnable, mmoeditEnable, clearmyspawnEnable, mcgodEnable, mcabilityEnable, mctopEnable, - mcrefreshEnable, enableMotd, enableMySpawn, enableRegen, enableCobbleToMossy, useMySQL, cocoabeans, mushrooms, - toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, excavationRequiresShovel, woodcuttingrequiresaxe, eggs, apples, cake, music, diamond, glowstone, - slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages; - - public static String xplock, MySQLtablePrefix, MySQLuserName, MySQLserverName, MySQLdbName, MySQLdbPass, mctop, addxp, - xprate, mcability, mcmmo, mcc, mcrefresh, mcgod, stats, mmoedit, ptp, party, myspawn, whois, invite, accept, clearmyspawn, nWood, - nStone, nIron, nGold, nDiamond, locale; - - public static int mfishing, mwatch, xpbar_x, xpbar_y, xpicon_x, xpicon_y, mstring, mbucket, mweb, - chimaeraId, msandstone, mcocoa, water_thunder, cure_self, cure_other, mslimeballs, mbones, msulphur, mslowsand, - mmushroom2, mglowstone2, mmelon, mmusic, mdiamond2, mbase, mapple, meggs, mcake, mpine, mbirch, mspruce, mcactus, mmushroom, mflower, - msugar, mpumpkin, mwheat, mgold, mdiamond, miron, mredstone, mlapis, mobsidian, mnetherrack, mglowstone, mcoal, mstone, MySQLport, - xpGainMultiplier, superBreakerCooldown, greenTerraCooldown, gigaDrillBreakerCooldown, treeFellerCooldown, - berserkCooldown, serratedStrikeCooldown, skullSplitterCooldown, abilityDurabilityLoss, - feathersConsumedByChimaeraWing, bonesConsumedByCOTW, repairdiamondlevel, rWood, rStone, rIron, rGold, rDiamond; - - public static double xpbackground_r, xpbackground_g, xpbackground_b, xpborder_r, xpborder_g, xpborder_b, fishing_r, fishing_g, fishing_b, acrobatics_r, acrobatics_g, acrobatics_b, archery_r, archery_g, archery_b, axes_r, axes_g, axes_b, - excavation_r, excavation_g, excavation_b, herbalism_r, herbalism_g, herbalism_b, mining_r, mining_g, mining_b, - repair_r, repair_g, repair_b, swords_r, swords_g, swords_b, taming_r, taming_g, taming_b, unarmed_r, unarmed_g, unarmed_b, - woodcutting_r, woodcutting_g, woodcutting_b, pvpxprewardmodifier, tamingxpmodifier, miningxpmodifier, - repairxpmodifier, woodcuttingxpmodifier, sorceryxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, - archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier; - - public static HUDType defaulthud; - - public String directory = "plugins/mcMMO/"; - - File file = new File(directory + File.separator + "config.yml"); - static Configuration config = null; - - public void configCheck() - { - new File(directory).mkdir(); - config = load(); - if(!file.exists()) - { - try - { - file.createNewFile(); - addDefaults(); - } - catch (Exception ex) - { - ex.printStackTrace(); - } - } - else - { - loadkeys(); - } - } - private void write(String root, Object x) - { - //Configuration config = load(); - config.setProperty(root, x); - config.save(); - } - private Boolean readBoolean(String root, Boolean def) - { - //Configuration config = load(); - Boolean result = config.getBoolean(root, def); - config.save(); - return result; - } - private Double readDouble(String root, Double def) - { - Double result = config.getDouble(root, def); - config.save(); - return result; - } - private Integer readInteger(String root, Integer def) - { - //Configuration config = load(); - Integer result = config.getInt(root, def); - config.save(); - return result; - } - - public static String readString(String root, String def) - { - //Configuration config = load(); - String result = config.getString(root, def); - config.save(); - return result; - } - - private Configuration load() - { - try { - Configuration configx = new Configuration(file); - configx.load(); - return configx; - - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - private void addDefaults() - { - System.out.println("Generating Config File..."); - - //Put in defaults - write("Spout.HUD.Default", "STANDARD"); - write("Spout.XP.Bar.Enabled", true); - write("Spout.Images.URL_DIR", "http://mcmmo.rycochet.net/mcmmo/"); - write("Spout.XP.Icon.Enabled", true); - write("Spout.XP.Bar.X_POS", 95); - write("Spout.XP.Bar.Y_POS", 6); - write("Spout.XP.Icon.X_POS", 78); - write("Spout.XP.Icon.Y_POS", 2); - write("Spout.Party.HUD.Enabled", true); - write("Spout.Party.HUD.Show_Faces", true); - write("Spout.Party.HUD.Show_Display_Name", false); - write("Spout.Menu.Key", "KEY_M"); - write("Spout.HUD.Retro.Colors.Acrobatics.RED", 0.3); - write("Spout.HUD.Retro.Colors.Acrobatics.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Acrobatics.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Archery.RED", 0.3); - write("Spout.HUD.Retro.Colors.Archery.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Archery.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Axes.RED", 0.3); - write("Spout.HUD.Retro.Colors.Axes.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Axes.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Excavation.RED", 0.3); - write("Spout.HUD.Retro.Colors.Excavation.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Excavation.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Herbalism.RED", 0.3); - write("Spout.HUD.Retro.Colors.Herbalism.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Herbalism.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Mining.RED", 0.3); - write("Spout.HUD.Retro.Colors.Mining.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Mining.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Repair.RED", 0.3); - write("Spout.HUD.Retro.Colors.Repair.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Repair.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Swords.RED", 0.3); - write("Spout.HUD.Retro.Colors.Swords.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Swords.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Taming.RED", 0.3); - write("Spout.HUD.Retro.Colors.Taming.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Taming.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Unarmed.RED", 0.3); - write("Spout.HUD.Retro.Colors.Unarmed.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Unarmed.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Woodcutting.RED", 0.3); - write("Spout.HUD.Retro.Colors.Woodcutting.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Woodcutting.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Fishing.RED", 0.3); - write("Spout.HUD.Retro.Colors.Fishing.GREEN", 0.3); - write("Spout.HUD.Retro.Colors.Fishing.BLUE", 0.75); - write("Spout.HUD.Retro.Colors.Border.RED", 0.0); - write("Spout.HUD.Retro.Colors.Border.GREEN", 0.0); - write("Spout.HUD.Retro.Colors.Border.BLUE", 0.0); - write("Spout.HUD.Retro.Colors.Background.RED", 0.75); - write("Spout.HUD.Retro.Colors.Background.GREEN", 0.75); - write("Spout.HUD.Retro.Colors.Background.BLUE", 0.75); - - write("MySQL.Enabled", false); - write("MySQL.Server.Address", "localhost"); - write("MySQL.Server.Port", 3306); - write("MySQL.Database.Name", "DataBaseName"); - write("MySQL.Database.User.Name", "UserName"); - write("MySQL.Database.TablePrefix", "mcmmo_"); - write("MySQL.Database.User.Password", "UserPassword"); - - write("General.Locale", "en_us"); - write("General.MOTD.Enabled", true); - write("General.MySpawn.Enabled", true); - write("General.HP_Regeneration.Enabled", true); - - write("Items.Chimaera_Wing.Enabled", true); - write("Items.Chimaera_Wing.Feather_Cost", 10); - write("Items.Chimaera_Wing.Item_ID", 288); - - write("Experience.PVP.Rewards", true); - write("Experience.Gains.Multiplier.PVP", 1); - write("Experience.Gains.Mobspawners.Enabled", false); - write("Experience.Gains.Multiplier.Global", 1.0); - write("Experience.Formula.Multiplier.Taming", 1.0); - write("Experience.Formula.Multiplier.Mining", 1.0); - write("Experience.Formula.Multiplier.Repair", 1.0); - write("Experience.Formula.Multiplier.Woodcutting", 1.0); - write("Experience.Formula.Multiplier.Unarmed", 1.0); - write("Experience.Formula.Multiplier.Herbalism", 1.0); - write("Experience.Formula.Multiplier.Excavation", 1.0); - write("Experience.Formula.Multiplier.Swords", 1.0); - write("Experience.Formula.Multiplier.Archery", 1.0); - write("Experience.Formula.Multiplier.Axes", 1.0); - write("Experience.Formula.Multiplier.Sorcery", 1.0); - write("Experience.Formula.Multiplier.Acrobatics", 1.0); - write("Experience.Mining.Gold", 350); - write("Experience.Mining.Diamond", 750); - write("Experience.Mining.Iron", 250); - write("Experience.Mining.Redstone", 150); - write("Experience.Mining.lapis", 400); - write("Experience.Mining.Obsidian", 150); - write("Experience.Mining.Netherrack", 30); - write("Experience.Mining.Glowstone", 30); - write("Experience.Mining.Coal", 100); - write("Experience.Mining.Stone", 30); - write("Experience.Mining.Sandstone", 30); - write("Experience.Herbalism.Sugar_Cane", 30); - write("Experience.Herbalism.Cactus", 30); - write("Experience.Herbalism.Pumpkin", 550); - write("Experience.Herbalism.Flowers", 100); - write("Experience.Herbalism.Wheat", 50); - write("Experience.Herbalism.Mushrooms", 150); - write("Experience.Herbalism.Melon", 40); - write("Experience.Woodcutting.Pine", 90); - write("Experience.Woodcutting.Birch", 70); - write("Experience.Woodcutting.Spruce", 80); - write("Experience.Excavation.Base", 40); - write("Experience.Excavation.Mushroom", 80); - write("Experience.Excavation.Sulphur", 30); - write("Experience.Excavation.Slowsand", 80); - write("Experience.Excavation.Glowstone", 80); - write("Experience.Excavation.Music", 3000); - write("Experience.Excavation.Bones", 30); - write("Experience.Excavation.Diamond", 1000); - write("Experience.Excavation.Apple", 100); - write("Experience.Excavation.Eggs", 100); - write("Experience.Excavation.Cake", 3000); - write("Experience.Excavation.Slimeballs", 100); - write("Experience.Excavation.Cocoa_Beans", 100); - write("Experience.Excavation.Map", 200); - write("Experience.Excavation.String", 200); - write("Experience.Excavation.Bucket", 100); - write("Experience.Excavation.Web", 150); - write("Experience.Fishing.Base", 800); - - //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); - write("Excavation.Drops.Glowstone", true); - write("Excavation.Drops.Eggs", true); - write("Excavation.Drops.Apples", true); - write("Excavation.Drops.Cake", true); - write("Excavation.Drops.Music", true); - write("Excavation.Drops.Diamond", true); - write("Excavation.Drops.Slowsand", true); - write("Excavation.Drops.Sulphur", true); - write("Excavation.Drops.Netherrack", true); - write("Excavation.Drops.Bones", true); - write("Excavation.Drops.Slimeballs", true); - write("Excavation.Drops.Map", true); - write("Excavation.Drops.String", true); - write("Excavation.Drops.Bucket", true); - write("Excavation.Drops.Web", true); - - write("Commands.xprate.Name", "xprate"); - write("Commands.xprate.Enabled", true); - write("Commands.mctop.Name", "mctop"); - write("Commands.mctop.Enabled", true); - write("Commands.addxp.Name", "addxp"); - write("Commands.addxp.Enabled", true); - write("Commands.mcability.Name", "mcability"); - write("Commands.mcability.Enabled", true); - write("Commands.mcrefresh.Name", "mcrefresh"); - write("Commands.mcrefresh.Enabled", true); - write("Commands.mcmmo.Name", "mcmmo"); - write("Commands.mcmmo.Donate_Message", true); - write("Commands.mcmmo.Enabled", true); - write("Commands.mcc.Name", "mcc"); - write("Commands.mcc.Enabled", true); - write("Commands.mcgod.Name", "mcgod"); - write("Commands.mcgod.Enabled", true); - write("Commands.stats.Name", "stats"); - write("Commands.stats.Enabled", true); - write("Commands.mmoedit.Name", "mmoedit"); - write("Commands.mmoedit.Enabled", true); - write("Commands.ptp.Name", "ptp"); - write("Commands.ptp.Enabled", true); - write("Commands.party.Name", "party"); - write("Commands.party.Enabled", true); - write("Commands.myspawn.Name", "myspawn"); - write("Commands.myspawn.Enabled", true); - write("Commands.whois.Name", "whois"); - write("Commands.whois.Enabled", true); - write("Commands.invite.Name", "invite"); - write("Commands.invite.Enabled", true); - write("Commands.accept.Name", "accept"); - write("Commands.accept.Enabled", true); - write("Commands.clearmyspawn.Name", "clearmyspawn"); - write("Commands.clearmyspawn.Enabled", true); - write("Commands.xplock.Enabled", true); - write("Commands.xplock.Name", "xplock"); - - write("Abilities.Tools.Durability_Loss_Enabled", true); - write("Abilities.Tools.Durability_Loss", 2); - write("Abilities.Activation.Only_Activate_When_Sneaking", false); - write("Abilities.Cooldowns.Green_Terra", 240); - write("Abilities.Cooldowns.Super_Breaker", 240); - write("Abilities.Cooldowns.Giga_Drill_Breaker", 240); - write("Abilities.Cooldowns.Tree_Feller", 240); - write("Abilities.Cooldowns.Berserk", 240); - write("Abilities.Cooldowns.Serrated_Strikes", 240); - write("Abilities.Cooldowns.Skull_Splitter", 240); - write("Abilities.Messages", true); - write("Abilities.Enabled", true); - - write("Skills.Repair.Anvil_Messages", true); - write("Skills.Repair.Gold.ID", 266); - write("Skills.Repair.Gold.Name", "Gold Bars"); - write("Skills.Repair.Stone.ID", 4); - write("Skills.Repair.Stone.Name", "Cobblestone"); - write("Skills.Repair.Wood.ID", 5); - write("Skills.Repair.Wood.Name", "Wood Planks"); - write("Skills.Repair.Diamond.ID", 264); - write("Skills.Repair.Diamond.Name", "Diamond"); - write("Skills.Repair.Diamond.Level_Required", 50); - write("Skills.Repair.Iron.ID", 265); - write("Skills.Repair.Iron.Name", "Iron Bars"); - write("Skills.Herbalism.Green_Thumb.Cobble_To_Mossy", true); - write("Skills.Excavation.Requires_Shovel", true); - write("Skills.Mining.Requires_Pickaxe", true); - write("Skills.Woodcutting.Requires_Axe", true); - write("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10); - - loadkeys(); - } - private void loadkeys() - { - System.out.println("Loading Config File..."); - - //Setup default HUD - String temp = readString("Spout.HUD.Default", "STANDARD"); - for(HUDType x : HUDType.values()) - { - if(x.toString().equalsIgnoreCase(temp)) - { - defaulthud = x; - } - } - - enableAbilityMessages = readBoolean("Abilities.Messages", true); - enableAbilities = readBoolean("Abilities.Enabled", true); - - donateMessage = readBoolean("Commands.mcmmo.Donate_Message", true); - xpGainsMobSpawners = readBoolean("XP.Gains.Mobspawners.Enabled", false); - - bonesConsumedByCOTW = readInteger("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10); - - xpbar = readBoolean("Spout.XP.Bar.Enabled", true); - //web_url = readString("Spout.Images.URL_DIR", "http://mcmmo.rycochet.net/mcmmo/"); - xpicon = readBoolean("Spout.XP.Icon.Enabled", true); - xpbar_x = readInteger("Spout.XP.Bar.X_POS", 95); - xpbar_y = readInteger("Spout.XP.Bar.Y_POS", 6); - xpicon_x = readInteger("Spout.XP.Icon.X_POS", 78); - xpicon_y = readInteger("Spout.XP.Icon.Y_POS", 2); - - showFaces = readBoolean("Spout.Party.HUD.Show_Faces", true); - showDisplayName = readBoolean("Spout.Party.HUD.Show_Display_Name", false); - partybar = readBoolean("Spout.Party.HUD.Enabled", true); - - acrobatics_r = readDouble("Spout.HUD.Retro.Colors.Acrobatics.RED", 0.3); - acrobatics_g = readDouble("Spout.HUD.Retro.Colors.Acrobatics.GREEN", 0.3); - acrobatics_b = readDouble("Spout.HUD.Retro.Colors.Acrobatics.BLUE", 0.75); - archery_r = readDouble("Spout.HUD.Retro.Colors.Archery.RED", 0.3); - archery_g = readDouble("Spout.HUD.Retro.Colors.Archery.GREEN", 0.3); - archery_b = readDouble("Spout.HUD.Retro.Colors.Archery.BLUE", 0.75); - axes_r = readDouble("Spout.HUD.Retro.Colors.Axes.RED", 0.3); - axes_g = readDouble("Spout.HUD.Retro.Colors.Axes.GREEN", 0.3); - axes_b = readDouble("Spout.HUD.Retro.Colors.Axes.BLUE", 0.75); - excavation_r = readDouble("Spout.HUD.Retro.Colors.Excavation.RED", 0.3); - excavation_g = readDouble("Spout.HUD.Retro.Colors.Excavation.GREEN", 0.3); - excavation_b = readDouble("Spout.HUD.Retro.Colors.Excavation.BLUE", 0.75); - herbalism_r = readDouble("Spout.HUD.Retro.Colors.Herbalism.RED", 0.3); - herbalism_g = readDouble("Spout.HUD.Retro.Colors.Herbalism.GREEN", 0.3); - herbalism_b = readDouble("Spout.HUD.Retro.Colors.Herbalism.BLUE", 0.75); - mining_r = readDouble("Spout.HUD.Retro.Colors.Mining.RED", 0.3); - mining_g = readDouble("Spout.HUD.Retro.Colors.Mining.GREEN", 0.3); - mining_b = readDouble("Spout.HUD.Retro.Colors.Mining.BLUE", 0.75); - repair_r = readDouble("Spout.HUD.Retro.Colors.Repair.RED", 0.3); - repair_g = readDouble("Spout.HUD.Retro.Colors.Repair.GREEN", 0.3); - repair_b = readDouble("Spout.HUD.Retro.Colors.Repair.BLUE", 0.75); - swords_r = readDouble("Spout.HUD.Retro.Colors.Swords.RED", 0.3); - swords_g = readDouble("Spout.HUD.Retro.Colors.Swords.GREEN", 0.3); - swords_b = readDouble("Spout.HUD.Retro.Colors.Swords.BLUE", 0.75); - taming_r = readDouble("Spout.HUD.Retro.Colors.Taming.RED", 0.3); - taming_g = readDouble("Spout.HUD.Retro.Colors.Taming.GREEN", 0.3); - taming_b = readDouble("Spout.HUD.Retro.Colors.Taming.BLUE", 0.75); - unarmed_r = readDouble("Spout.HUD.Retro.Colors.Unarmed.RED", 0.3); - unarmed_g = readDouble("Spout.HUD.Retro.Colors.Unarmed.GREEN", 0.3); - unarmed_b = readDouble("Spout.HUD.Retro.Colors.Unarmed.BLUE", 0.75); - woodcutting_r = readDouble("Spout.HUD.Retro.Colors.Woodcutting.RED", 0.3); - woodcutting_g = readDouble("Spout.HUD.Retro.Colors.Woodcutting.GREEN", 0.3); - woodcutting_b = readDouble("Spout.HUD.Retro.Colors.Woodcutting.BLUE", 0.75); - fishing_r = readDouble("Spout.HUD.Retro.Colors.Fishing.RED", 0.3); - fishing_g = readDouble("Spout.HUD.Retro.Colors.Fishing.GREEN", 0.3); - fishing_b = readDouble("Spout.HUD.Retro.Colors.Fishing.BLUE", 0.75); - - xpborder_r = readDouble("Spout.HUD.Retro.Colors.Border.RED", 0.0); - xpborder_g = readDouble("Spout.HUD.Retro.Colors.Border.GREEN", 0.0); - xpborder_b = readDouble("Spout.HUD.Retro.Colors.Border.BLUE", 0.0); - xpbackground_r = readDouble("Spout.HUD.Retro.Colors.Background.RED", 0.75); - xpbackground_g = readDouble("Spout.HUD.Retro.Colors.Background.GREEN", 0.75); - xpbackground_b = readDouble("Spout.HUD.Retro.Colors.Background.BLUE", 0.75); - - msulphur = readInteger("Experience.Excavation.Sulphur", 30); - mbones = readInteger("Experience.Excavation.Bones", 30); - mbase = readInteger("Experience.Excavation.Base", 40); - mmushroom2 = readInteger("Experience.Excavation.Mushroom", 80); - mslowsand = readInteger("Experience.Excavation.Slowsand", 80); - mglowstone2 = readInteger("Experience.Excavation.Glowstone", 80); - mmusic = readInteger("Experience.Excavation.Music", 3000); - mdiamond2 = readInteger("Experience.Excavation.Diamond", 1000); - mapple = readInteger("Experience.Excavation.Apple", 100); - meggs = readInteger("Experience.Excavation.Eggs", 100); - mcake = readInteger("Experience.Excavation.Cake", 3000); - mcocoa = readInteger("Experience.Excavation.Cocoa_Beans", 100); - mslimeballs = readInteger("Experience.Excavation.Slimeballs", 100); - mstring = readInteger("Experience.Excavation.String", 200); - mbucket = readInteger("Experience.Excavation.Bucket", 100); - mweb = readInteger("Experience.Excavation.Web", 150); - mwatch = readInteger("Experience.Excavation.Watch", 200); - - msugar = readInteger("Experience.Herbalism.Sugar_Cane", 30); - mwheat = readInteger("Experience.Herbalism.Wheat", 50); - mcactus = readInteger("Experience.Herbalism.Cactus", 30); - mpumpkin = readInteger("Experience.Herbalism.Pumpkin", 550); - mflower = readInteger("Experience.Herbalism.Flowers", 100); - mmushroom = readInteger("Experience.Herbalism.Mushrooms", 150); - mmelon = readInteger("Experience.Herbalism.Melon", 20); - - mpine = readInteger("Experience.Woodcutting.Pine", 70); - mbirch = readInteger("Experience.Woodcutting.Birch", 80); - mspruce = readInteger("Experience.Woodcutting.Spruce", 90); - - mgold = readInteger("Experience.Mining.Gold", 250); - mdiamond = readInteger("Experience.Mining.Diamond", 750); - miron = readInteger("Experience.Mining.Iron", 250); - mredstone = readInteger("Experience.Mining.Redstone", 150); - mlapis = readInteger("Experience.Mining.lapis", 400); - mobsidian = readInteger("Experience.Mining.Obsidian", 150); - mnetherrack = readInteger("Experience.Mining.Netherrack", 30); - mglowstone = readInteger("Experience.Mining.Glowstone", 30); - mcoal = readInteger("Experience.Mining.Coal", 100); - mstone = readInteger("Experience.Mining.Stone", 30); - msandstone = readInteger("Experience.Mining.Sandstone", 30); - - mfishing = readInteger("Experience.Fishing.Base", 800); - - enableOnlyActivateWhenSneaking = readBoolean("Abilities.Activation.Only_Activate_When_Sneaking", false); - - greenTerraCooldown = readInteger("Abilities.Cooldowns.Green_Terra", 240); - superBreakerCooldown = readInteger("Abilities.Cooldowns.Super_Breaker", 240); - gigaDrillBreakerCooldown = readInteger("Abilities.Cooldowns.Giga_Drill_Breaker", 240); - treeFellerCooldown = readInteger("Abilities.Cooldowns.Tree_Feller", 240); - berserkCooldown = readInteger("Abilities.Cooldowns.Berserk", 240); - serratedStrikeCooldown = readInteger("Abilities.Cooldowns.Serrated_Strikes", 240); - skullSplitterCooldown = readInteger("Abilities.Cooldowns.Skull_Splitter", 240); - - MySQLserverName = readString("MySQL.Server.Address", "localhost"); - if(readString("MySQL.Database.User.Password", null) != null) - MySQLdbPass = readString("MySQL.Database.User.Password", null); - else - MySQLdbPass = ""; - - MySQLdbName = readString("MySQL.Database.Name", "DatabaseName"); - MySQLuserName = readString("MySQL.Database.User.Name", "UserName"); - MySQLtablePrefix = readString("MySQL.Database.TablePrefix", "mcmmo_"); - MySQLport = readInteger("MySQL.Server.Port", 3306); - useMySQL = readBoolean("MySQL.Enabled", false); - - locale = readString("General.Locale", "en_us"); - enableMotd = readBoolean("General.MOTD.Enabled", true); - enableMySpawn = readBoolean("General.MySpawn.Enabled", true); - enableRegen = readBoolean("General.HP_Regeneration.Enabled", true); - - enableCobbleToMossy = readBoolean("Skills.Herbalism.Green_Thumb.Cobble_To_Mossy", true); - - xpGainMultiplier = readInteger("Experience.Gains.Multiplier.Global", 1); - toolsLoseDurabilityFromAbilities = readBoolean("Abilities.Tools.Durability_Loss_Enabled", true); - abilityDurabilityLoss = readInteger("Abilities.Tools.Durability_Loss", 2); - - feathersConsumedByChimaeraWing = readInteger("Items.Chimaera_Wing.Feather_Cost", 10); - chimaeraId = readInteger("Items.Chimaera_Wing.Item_ID", 288); - chimaeraWingEnable = readBoolean("Items.Chimaera_Wing.Enabled", true); - - pvpxp = readBoolean("XP.PVP.Rewards", true); - pvpxprewardmodifier = readDouble("Experience.Gains.Multiplier.PVP", 1.0); - miningrequirespickaxe = readBoolean("Skills.Mining.Requires_Pickaxe", true); - excavationRequiresShovel = readBoolean("Skills.Excavation.Requires_Shovel", true); - woodcuttingrequiresaxe = readBoolean("Skills.Woodcutting.Requires_Axe", true); - repairdiamondlevel = readInteger("Skills.Repair.Diamond.Level_Required", 50); - - sorceryxpmodifier = readDouble("Experience.Formula.Multiplier.Sorcery", 1.0); - tamingxpmodifier = readDouble("Experience.Formula.Multiplier.Taming", 1.0); - miningxpmodifier = readDouble("Experience.Formula.Multiplier.Mining", 1.0); - repairxpmodifier = readDouble("Experience.Formula.Multiplier.Repair", 1.0); - woodcuttingxpmodifier = readDouble("Experience.Formula.Multiplier.Woodcutting", 1.0); - unarmedxpmodifier = readDouble("Experience.Formula.Multiplier.Unarmed", 1.0); - herbalismxpmodifier = readDouble("Experience.Formula.Multiplier.Herbalism", 1.0); - excavationxpmodifier = readDouble("Experience.Formula.Multiplier.Excavation", 1.0); - archeryxpmodifier = readDouble("Experience.Formula.Multiplier.Archery", 1.0); - swordsxpmodifier = readDouble("Experience.Formula.Multiplier.Swords", 1.0); - axesxpmodifier = readDouble("Experience.Formula.Multiplier.Axes", 1.0); - acrobaticsxpmodifier = readDouble("Experience.Formula.Multiplier.Acrobatics", 1.0); - - anvilmessages = readBoolean("Skills.Repair.Anvil_Messages", true); - - rGold = readInteger("Skills.Repair.Gold.ID", 266); - nGold = readString("Skills.Repair.Gold.Name", "Gold Bars"); - rStone = readInteger("Skills.Repair.Stone.ID", 4); - nStone = readString("Skills.Repair.Stone.Name", "Cobblestone"); - rWood = readInteger("Skills.Repair.Wood.ID", 5); - nWood = readString("Skills.Repair.Wood.Name", "Wood Planks"); - rDiamond = readInteger("Skills.Repair.Diamond.ID", 264); - nDiamond = readString("Skills.Repair.Diamond.Name", "Diamond"); - rIron = readInteger("Skills.Repair.Iron.ID", 265); - nIron = readString("Skills.Repair.Iron.Name", "Iron Bars"); - - cocoabeans = readBoolean("Excavation.Drops.Cocoa_Beans", true); - mushrooms = readBoolean("Excavation.Drops.Mushrooms", true); - glowstone = readBoolean("Excavation.Drops.Glowstone", true); - eggs = readBoolean("Excavation.Drops.Eggs", true); - apples = readBoolean("Excavation.Drops.Apples", true); - cake = readBoolean("Excavation.Drops.Cake", true); - music = readBoolean("Excavation.Drops.Music", true); - diamond = readBoolean("Excavation.Drops.Diamond", true); - slowsand = readBoolean("Excavation.Drops.Slowsand", true); - sulphur = readBoolean("Excavation.Drops.Sulphur", true); - netherrack = readBoolean("Excavation.Drops.Netherrack", true); - bones = readBoolean("Excavation.Drops.Bones", true); - slimeballs = readBoolean("Excavation.Drops.Slimeballs", true); - watch = readBoolean("Excavation.Drops.Watch", true); - string = readBoolean("Excavation.Drops.String", true); - bucket = readBoolean("Excavation.Drops.Bucket", true); - web = readBoolean("Excavation.Drops.Web", true); - - xprate = readString("Commands.xprate.Name", "xprate"); - xprateEnable = readBoolean("Commands.xprate.Enabled", true); - - mctop = readString("Commands.mctop.Name", "mctop"); - mctopEnable = readBoolean("Commands.mctop.Enabled", true); - - addxp = readString("Commands.addxp.Name", "addxp"); - addxpEnable = readBoolean("Commands.addxp.Enabled", true); - - mcability = readString("Commands.mcability.Name", "mcability"); - mcabilityEnable = readBoolean("Commands.mcability.Enabled", true); - - mcrefresh = readString("Commands.mcrefresh.Name", "mcrefresh"); - mcrefreshEnable = readBoolean("Commands.mcrefresh.Enabled", true); - - mcmmo = readString("Commands.mcmmo.Name", "mcmmo"); - mcmmoEnable = readBoolean("Commands.mcmmo.Enabled", true); - - mcc = readString("Commands.mcc.Name", "mcc"); - mccEnable = readBoolean("Commands.mcc.Enabled", true); - - mcgod = readString("Commands.mcgod.Name", "mcgod"); - mcgodEnable = readBoolean("Commands.mcgod.Enabled", true); - - stats = readString("Commands.stats.Name", "stats"); - statsEnable = readBoolean("Commands.stats.Enabled", true); - - mmoedit = readString("Commands.mmoedit.Name", "mmoedit"); - mmoeditEnable = readBoolean("Commands.mmoedit.Enabled", true); - - ptp = readString("Commands.ptp.Name", "ptp"); - ptpEnable = readBoolean("Commands.ptp.Enabled", true); - - party = readString("Commands.party.Name", "party"); - partyEnable = readBoolean("Commands.party.Enabled", true); - - myspawn = readString("Commands.myspawn.Name", "myspawn"); - myspawnEnable = readBoolean("Commands.myspawn.Enabled", true); - - whois = readString("Commands.whois.Name", "whois"); - whoisEnable = readBoolean("Commands.whois.Enabled", true); - - invite = readString("Commands.invite.Name", "invite"); - inviteEnable = readBoolean("Commands.invite.Enabled", true); - - accept = readString("Commands.accept.Name", "accept"); - acceptEnable = readBoolean("Commands.accept.Enabled", true); - - clearmyspawn = readString("Commands.clearmyspawn.Name", "clearmyspawn"); - clearmyspawnEnable = readBoolean("Commands.clearmyspawn.Enabled", true); - - xplockEnable = readBoolean("Commands.xplock.Enabled", true); - xplock = readString("Commands.xplock.Name", "xplock"); - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.config; + +import java.io.File; +import org.bukkit.util.config.Configuration; + +import com.gmail.nossr50.datatypes.HUDType; + +public class LoadProperties +{ + public static Boolean enableOnlyActivateWhenSneaking, enableAbilityMessages, enableAbilities, showDisplayName, showFaces, watch, xplockEnable, xpbar, xpicon, partybar, string, bucket, web, xprateEnable, slimeballs, spoutEnabled, + donateMessage, chimaeraWingEnable, xpGainsMobSpawners, myspawnEnable, mccEnable, mcmmoEnable, partyEnable, inviteEnable, acceptEnable, + whoisEnable, statsEnable, addxpEnable, ptpEnable, mmoeditEnable, clearmyspawnEnable, mcgodEnable, mcabilityEnable, mctopEnable, + mcrefreshEnable, enableMotd, enableMySpawn, enableRegen, enableCobbleToMossy, useMySQL, cocoabeans, mushrooms, + toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, excavationRequiresShovel, woodcuttingrequiresaxe, eggs, apples, cake, music, diamond, glowstone, + slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages; + + public static String xplock, MySQLtablePrefix, MySQLuserName, MySQLserverName, MySQLdbName, MySQLdbPass, mctop, addxp, + xprate, mcability, mcmmo, mcc, mcrefresh, mcgod, stats, mmoedit, ptp, party, myspawn, whois, invite, accept, clearmyspawn, nWood, + nStone, nIron, nGold, nDiamond, locale; + + public static int mfishing, mwatch, xpbar_x, xpbar_y, xpicon_x, xpicon_y, mstring, mbucket, mweb, + chimaeraId, msandstone, mcocoa, water_thunder, cure_self, cure_other, mslimeballs, mbones, msulphur, mslowsand, + mmushroom2, mglowstone2, mmelon, mmusic, mdiamond2, mbase, mapple, meggs, mcake, mpine, mbirch, mspruce, mcactus, mmushroom, mflower, + msugar, mpumpkin, mwheat, mgold, mdiamond, miron, mredstone, mlapis, mobsidian, mnetherrack, mglowstone, mcoal, mstone, MySQLport, + xpGainMultiplier, superBreakerCooldown, greenTerraCooldown, gigaDrillBreakerCooldown, treeFellerCooldown, + berserkCooldown, serratedStrikeCooldown, skullSplitterCooldown, abilityDurabilityLoss, + feathersConsumedByChimaeraWing, bonesConsumedByCOTW, repairdiamondlevel, rWood, rStone, rIron, rGold, rDiamond; + + public static double xpbackground_r, xpbackground_g, xpbackground_b, xpborder_r, xpborder_g, xpborder_b, fishing_r, fishing_g, fishing_b, acrobatics_r, acrobatics_g, acrobatics_b, archery_r, archery_g, archery_b, axes_r, axes_g, axes_b, + excavation_r, excavation_g, excavation_b, herbalism_r, herbalism_g, herbalism_b, mining_r, mining_g, mining_b, + repair_r, repair_g, repair_b, swords_r, swords_g, swords_b, taming_r, taming_g, taming_b, unarmed_r, unarmed_g, unarmed_b, + woodcutting_r, woodcutting_g, woodcutting_b, pvpxprewardmodifier, tamingxpmodifier, miningxpmodifier, + repairxpmodifier, woodcuttingxpmodifier, sorceryxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, + archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier; + + public static HUDType defaulthud; + + public String directory = "plugins/mcMMO/"; + + File file = new File(directory + File.separator + "config.yml"); + static Configuration config = null; + + public void configCheck() + { + new File(directory).mkdir(); + config = load(); + if(!file.exists()) + { + try + { + file.createNewFile(); + addDefaults(); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + } + else + { + loadkeys(); + } + } + private void write(String root, Object x) + { + //Configuration config = load(); + config.setProperty(root, x); + config.save(); + } + private Boolean readBoolean(String root, Boolean def) + { + //Configuration config = load(); + Boolean result = config.getBoolean(root, def); + config.save(); + return result; + } + private Double readDouble(String root, Double def) + { + Double result = config.getDouble(root, def); + config.save(); + return result; + } + private Integer readInteger(String root, Integer def) + { + //Configuration config = load(); + Integer result = config.getInt(root, def); + config.save(); + return result; + } + + public static String readString(String root, String def) + { + //Configuration config = load(); + String result = config.getString(root, def); + config.save(); + return result; + } + + private Configuration load() + { + try { + Configuration configx = new Configuration(file); + configx.load(); + return configx; + + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + private void addDefaults() + { + System.out.println("Generating Config File..."); + + //Put in defaults + write("Spout.HUD.Default", "STANDARD"); + write("Spout.XP.Bar.Enabled", true); + write("Spout.Images.URL_DIR", "http://mcmmo.rycochet.net/mcmmo/"); + write("Spout.XP.Icon.Enabled", true); + write("Spout.XP.Bar.X_POS", 95); + write("Spout.XP.Bar.Y_POS", 6); + write("Spout.XP.Icon.X_POS", 78); + write("Spout.XP.Icon.Y_POS", 2); + write("Spout.Party.HUD.Enabled", true); + write("Spout.Party.HUD.Show_Faces", true); + write("Spout.Party.HUD.Show_Display_Name", false); + write("Spout.Menu.Key", "KEY_M"); + write("Spout.HUD.Retro.Colors.Acrobatics.RED", 0.3); + write("Spout.HUD.Retro.Colors.Acrobatics.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Acrobatics.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Archery.RED", 0.3); + write("Spout.HUD.Retro.Colors.Archery.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Archery.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Axes.RED", 0.3); + write("Spout.HUD.Retro.Colors.Axes.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Axes.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Excavation.RED", 0.3); + write("Spout.HUD.Retro.Colors.Excavation.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Excavation.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Herbalism.RED", 0.3); + write("Spout.HUD.Retro.Colors.Herbalism.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Herbalism.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Mining.RED", 0.3); + write("Spout.HUD.Retro.Colors.Mining.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Mining.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Repair.RED", 0.3); + write("Spout.HUD.Retro.Colors.Repair.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Repair.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Swords.RED", 0.3); + write("Spout.HUD.Retro.Colors.Swords.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Swords.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Taming.RED", 0.3); + write("Spout.HUD.Retro.Colors.Taming.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Taming.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Unarmed.RED", 0.3); + write("Spout.HUD.Retro.Colors.Unarmed.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Unarmed.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Woodcutting.RED", 0.3); + write("Spout.HUD.Retro.Colors.Woodcutting.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Woodcutting.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Fishing.RED", 0.3); + write("Spout.HUD.Retro.Colors.Fishing.GREEN", 0.3); + write("Spout.HUD.Retro.Colors.Fishing.BLUE", 0.75); + write("Spout.HUD.Retro.Colors.Border.RED", 0.0); + write("Spout.HUD.Retro.Colors.Border.GREEN", 0.0); + write("Spout.HUD.Retro.Colors.Border.BLUE", 0.0); + write("Spout.HUD.Retro.Colors.Background.RED", 0.75); + write("Spout.HUD.Retro.Colors.Background.GREEN", 0.75); + write("Spout.HUD.Retro.Colors.Background.BLUE", 0.75); + + write("MySQL.Enabled", false); + write("MySQL.Server.Address", "localhost"); + write("MySQL.Server.Port", 3306); + write("MySQL.Database.Name", "DataBaseName"); + write("MySQL.Database.User.Name", "UserName"); + write("MySQL.Database.TablePrefix", "mcmmo_"); + write("MySQL.Database.User.Password", "UserPassword"); + + write("General.Locale", "en_us"); + write("General.MOTD.Enabled", true); + write("General.MySpawn.Enabled", true); + write("General.HP_Regeneration.Enabled", true); + + write("Items.Chimaera_Wing.Enabled", true); + write("Items.Chimaera_Wing.Feather_Cost", 10); + write("Items.Chimaera_Wing.Item_ID", 288); + + write("Experience.PVP.Rewards", true); + write("Experience.Gains.Multiplier.PVP", 1); + write("Experience.Gains.Mobspawners.Enabled", false); + write("Experience.Gains.Multiplier.Global", 1.0); + write("Experience.Formula.Multiplier.Taming", 1.0); + write("Experience.Formula.Multiplier.Mining", 1.0); + write("Experience.Formula.Multiplier.Repair", 1.0); + write("Experience.Formula.Multiplier.Woodcutting", 1.0); + write("Experience.Formula.Multiplier.Unarmed", 1.0); + write("Experience.Formula.Multiplier.Herbalism", 1.0); + write("Experience.Formula.Multiplier.Excavation", 1.0); + write("Experience.Formula.Multiplier.Swords", 1.0); + write("Experience.Formula.Multiplier.Archery", 1.0); + write("Experience.Formula.Multiplier.Axes", 1.0); + write("Experience.Formula.Multiplier.Sorcery", 1.0); + write("Experience.Formula.Multiplier.Acrobatics", 1.0); + write("Experience.Mining.Gold", 350); + write("Experience.Mining.Diamond", 750); + write("Experience.Mining.Iron", 250); + write("Experience.Mining.Redstone", 150); + write("Experience.Mining.lapis", 400); + write("Experience.Mining.Obsidian", 150); + write("Experience.Mining.Netherrack", 30); + write("Experience.Mining.Glowstone", 30); + write("Experience.Mining.Coal", 100); + write("Experience.Mining.Stone", 30); + write("Experience.Mining.Sandstone", 30); + write("Experience.Herbalism.Sugar_Cane", 30); + write("Experience.Herbalism.Cactus", 30); + write("Experience.Herbalism.Pumpkin", 550); + write("Experience.Herbalism.Flowers", 100); + write("Experience.Herbalism.Wheat", 50); + write("Experience.Herbalism.Mushrooms", 150); + write("Experience.Herbalism.Melon", 40); + write("Experience.Woodcutting.Pine", 90); + write("Experience.Woodcutting.Birch", 70); + write("Experience.Woodcutting.Spruce", 80); + write("Experience.Excavation.Base", 40); + write("Experience.Excavation.Mushroom", 80); + write("Experience.Excavation.Sulphur", 30); + write("Experience.Excavation.Slowsand", 80); + write("Experience.Excavation.Glowstone", 80); + write("Experience.Excavation.Music", 3000); + write("Experience.Excavation.Bones", 30); + write("Experience.Excavation.Diamond", 1000); + write("Experience.Excavation.Apple", 100); + write("Experience.Excavation.Eggs", 100); + write("Experience.Excavation.Cake", 3000); + write("Experience.Excavation.Slimeballs", 100); + write("Experience.Excavation.Cocoa_Beans", 100); + write("Experience.Excavation.Map", 200); + write("Experience.Excavation.String", 200); + write("Experience.Excavation.Bucket", 100); + write("Experience.Excavation.Web", 150); + write("Experience.Fishing.Base", 800); + + //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); + write("Excavation.Drops.Glowstone", true); + write("Excavation.Drops.Eggs", true); + write("Excavation.Drops.Apples", true); + write("Excavation.Drops.Cake", true); + write("Excavation.Drops.Music", true); + write("Excavation.Drops.Diamond", true); + write("Excavation.Drops.Slowsand", true); + write("Excavation.Drops.Sulphur", true); + write("Excavation.Drops.Netherrack", true); + write("Excavation.Drops.Bones", true); + write("Excavation.Drops.Slimeballs", true); + write("Excavation.Drops.Map", true); + write("Excavation.Drops.String", true); + write("Excavation.Drops.Bucket", true); + write("Excavation.Drops.Web", true); + + write("Commands.xprate.Name", "xprate"); + write("Commands.xprate.Enabled", true); + write("Commands.mctop.Name", "mctop"); + write("Commands.mctop.Enabled", true); + write("Commands.addxp.Name", "addxp"); + write("Commands.addxp.Enabled", true); + write("Commands.mcability.Name", "mcability"); + write("Commands.mcability.Enabled", true); + write("Commands.mcrefresh.Name", "mcrefresh"); + write("Commands.mcrefresh.Enabled", true); + write("Commands.mcmmo.Name", "mcmmo"); + write("Commands.mcmmo.Donate_Message", true); + write("Commands.mcmmo.Enabled", true); + write("Commands.mcc.Name", "mcc"); + write("Commands.mcc.Enabled", true); + write("Commands.mcgod.Name", "mcgod"); + write("Commands.mcgod.Enabled", true); + write("Commands.stats.Name", "stats"); + write("Commands.stats.Enabled", true); + write("Commands.mmoedit.Name", "mmoedit"); + write("Commands.mmoedit.Enabled", true); + write("Commands.ptp.Name", "ptp"); + write("Commands.ptp.Enabled", true); + write("Commands.party.Name", "party"); + write("Commands.party.Enabled", true); + write("Commands.myspawn.Name", "myspawn"); + write("Commands.myspawn.Enabled", true); + write("Commands.whois.Name", "whois"); + write("Commands.whois.Enabled", true); + write("Commands.invite.Name", "invite"); + write("Commands.invite.Enabled", true); + write("Commands.accept.Name", "accept"); + write("Commands.accept.Enabled", true); + write("Commands.clearmyspawn.Name", "clearmyspawn"); + write("Commands.clearmyspawn.Enabled", true); + write("Commands.xplock.Enabled", true); + write("Commands.xplock.Name", "xplock"); + + write("Abilities.Tools.Durability_Loss_Enabled", true); + write("Abilities.Tools.Durability_Loss", 2); + write("Abilities.Activation.Only_Activate_When_Sneaking", false); + write("Abilities.Cooldowns.Green_Terra", 240); + write("Abilities.Cooldowns.Super_Breaker", 240); + write("Abilities.Cooldowns.Giga_Drill_Breaker", 240); + write("Abilities.Cooldowns.Tree_Feller", 240); + write("Abilities.Cooldowns.Berserk", 240); + write("Abilities.Cooldowns.Serrated_Strikes", 240); + write("Abilities.Cooldowns.Skull_Splitter", 240); + write("Abilities.Messages", true); + write("Abilities.Enabled", true); + + write("Skills.Repair.Anvil_Messages", true); + write("Skills.Repair.Gold.ID", 266); + write("Skills.Repair.Gold.Name", "Gold Bars"); + write("Skills.Repair.Stone.ID", 4); + write("Skills.Repair.Stone.Name", "Cobblestone"); + write("Skills.Repair.Wood.ID", 5); + write("Skills.Repair.Wood.Name", "Wood Planks"); + write("Skills.Repair.Diamond.ID", 264); + write("Skills.Repair.Diamond.Name", "Diamond"); + write("Skills.Repair.Diamond.Level_Required", 50); + write("Skills.Repair.Iron.ID", 265); + write("Skills.Repair.Iron.Name", "Iron Bars"); + write("Skills.Herbalism.Green_Thumb.Cobble_To_Mossy", true); + write("Skills.Excavation.Requires_Shovel", true); + write("Skills.Mining.Requires_Pickaxe", true); + write("Skills.Woodcutting.Requires_Axe", true); + write("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10); + + loadkeys(); + } + private void loadkeys() + { + System.out.println("Loading Config File..."); + + //Setup default HUD + String temp = readString("Spout.HUD.Default", "STANDARD"); + for(HUDType x : HUDType.values()) + { + if(x.toString().equalsIgnoreCase(temp)) + { + defaulthud = x; + } + } + + enableAbilityMessages = readBoolean("Abilities.Messages", true); + enableAbilities = readBoolean("Abilities.Enabled", true); + + donateMessage = readBoolean("Commands.mcmmo.Donate_Message", true); + xpGainsMobSpawners = readBoolean("XP.Gains.Mobspawners.Enabled", false); + + bonesConsumedByCOTW = readInteger("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10); + + xpbar = readBoolean("Spout.XP.Bar.Enabled", true); + //web_url = readString("Spout.Images.URL_DIR", "http://mcmmo.rycochet.net/mcmmo/"); + xpicon = readBoolean("Spout.XP.Icon.Enabled", true); + xpbar_x = readInteger("Spout.XP.Bar.X_POS", 95); + xpbar_y = readInteger("Spout.XP.Bar.Y_POS", 6); + xpicon_x = readInteger("Spout.XP.Icon.X_POS", 78); + xpicon_y = readInteger("Spout.XP.Icon.Y_POS", 2); + + showFaces = readBoolean("Spout.Party.HUD.Show_Faces", true); + showDisplayName = readBoolean("Spout.Party.HUD.Show_Display_Name", false); + partybar = readBoolean("Spout.Party.HUD.Enabled", true); + + acrobatics_r = readDouble("Spout.HUD.Retro.Colors.Acrobatics.RED", 0.3); + acrobatics_g = readDouble("Spout.HUD.Retro.Colors.Acrobatics.GREEN", 0.3); + acrobatics_b = readDouble("Spout.HUD.Retro.Colors.Acrobatics.BLUE", 0.75); + archery_r = readDouble("Spout.HUD.Retro.Colors.Archery.RED", 0.3); + archery_g = readDouble("Spout.HUD.Retro.Colors.Archery.GREEN", 0.3); + archery_b = readDouble("Spout.HUD.Retro.Colors.Archery.BLUE", 0.75); + axes_r = readDouble("Spout.HUD.Retro.Colors.Axes.RED", 0.3); + axes_g = readDouble("Spout.HUD.Retro.Colors.Axes.GREEN", 0.3); + axes_b = readDouble("Spout.HUD.Retro.Colors.Axes.BLUE", 0.75); + excavation_r = readDouble("Spout.HUD.Retro.Colors.Excavation.RED", 0.3); + excavation_g = readDouble("Spout.HUD.Retro.Colors.Excavation.GREEN", 0.3); + excavation_b = readDouble("Spout.HUD.Retro.Colors.Excavation.BLUE", 0.75); + herbalism_r = readDouble("Spout.HUD.Retro.Colors.Herbalism.RED", 0.3); + herbalism_g = readDouble("Spout.HUD.Retro.Colors.Herbalism.GREEN", 0.3); + herbalism_b = readDouble("Spout.HUD.Retro.Colors.Herbalism.BLUE", 0.75); + mining_r = readDouble("Spout.HUD.Retro.Colors.Mining.RED", 0.3); + mining_g = readDouble("Spout.HUD.Retro.Colors.Mining.GREEN", 0.3); + mining_b = readDouble("Spout.HUD.Retro.Colors.Mining.BLUE", 0.75); + repair_r = readDouble("Spout.HUD.Retro.Colors.Repair.RED", 0.3); + repair_g = readDouble("Spout.HUD.Retro.Colors.Repair.GREEN", 0.3); + repair_b = readDouble("Spout.HUD.Retro.Colors.Repair.BLUE", 0.75); + swords_r = readDouble("Spout.HUD.Retro.Colors.Swords.RED", 0.3); + swords_g = readDouble("Spout.HUD.Retro.Colors.Swords.GREEN", 0.3); + swords_b = readDouble("Spout.HUD.Retro.Colors.Swords.BLUE", 0.75); + taming_r = readDouble("Spout.HUD.Retro.Colors.Taming.RED", 0.3); + taming_g = readDouble("Spout.HUD.Retro.Colors.Taming.GREEN", 0.3); + taming_b = readDouble("Spout.HUD.Retro.Colors.Taming.BLUE", 0.75); + unarmed_r = readDouble("Spout.HUD.Retro.Colors.Unarmed.RED", 0.3); + unarmed_g = readDouble("Spout.HUD.Retro.Colors.Unarmed.GREEN", 0.3); + unarmed_b = readDouble("Spout.HUD.Retro.Colors.Unarmed.BLUE", 0.75); + woodcutting_r = readDouble("Spout.HUD.Retro.Colors.Woodcutting.RED", 0.3); + woodcutting_g = readDouble("Spout.HUD.Retro.Colors.Woodcutting.GREEN", 0.3); + woodcutting_b = readDouble("Spout.HUD.Retro.Colors.Woodcutting.BLUE", 0.75); + fishing_r = readDouble("Spout.HUD.Retro.Colors.Fishing.RED", 0.3); + fishing_g = readDouble("Spout.HUD.Retro.Colors.Fishing.GREEN", 0.3); + fishing_b = readDouble("Spout.HUD.Retro.Colors.Fishing.BLUE", 0.75); + + xpborder_r = readDouble("Spout.HUD.Retro.Colors.Border.RED", 0.0); + xpborder_g = readDouble("Spout.HUD.Retro.Colors.Border.GREEN", 0.0); + xpborder_b = readDouble("Spout.HUD.Retro.Colors.Border.BLUE", 0.0); + xpbackground_r = readDouble("Spout.HUD.Retro.Colors.Background.RED", 0.75); + xpbackground_g = readDouble("Spout.HUD.Retro.Colors.Background.GREEN", 0.75); + xpbackground_b = readDouble("Spout.HUD.Retro.Colors.Background.BLUE", 0.75); + + msulphur = readInteger("Experience.Excavation.Sulphur", 30); + mbones = readInteger("Experience.Excavation.Bones", 30); + mbase = readInteger("Experience.Excavation.Base", 40); + mmushroom2 = readInteger("Experience.Excavation.Mushroom", 80); + mslowsand = readInteger("Experience.Excavation.Slowsand", 80); + mglowstone2 = readInteger("Experience.Excavation.Glowstone", 80); + mmusic = readInteger("Experience.Excavation.Music", 3000); + mdiamond2 = readInteger("Experience.Excavation.Diamond", 1000); + mapple = readInteger("Experience.Excavation.Apple", 100); + meggs = readInteger("Experience.Excavation.Eggs", 100); + mcake = readInteger("Experience.Excavation.Cake", 3000); + mcocoa = readInteger("Experience.Excavation.Cocoa_Beans", 100); + mslimeballs = readInteger("Experience.Excavation.Slimeballs", 100); + mstring = readInteger("Experience.Excavation.String", 200); + mbucket = readInteger("Experience.Excavation.Bucket", 100); + mweb = readInteger("Experience.Excavation.Web", 150); + mwatch = readInteger("Experience.Excavation.Watch", 200); + + msugar = readInteger("Experience.Herbalism.Sugar_Cane", 30); + mwheat = readInteger("Experience.Herbalism.Wheat", 50); + mcactus = readInteger("Experience.Herbalism.Cactus", 30); + mpumpkin = readInteger("Experience.Herbalism.Pumpkin", 550); + mflower = readInteger("Experience.Herbalism.Flowers", 100); + mmushroom = readInteger("Experience.Herbalism.Mushrooms", 150); + mmelon = readInteger("Experience.Herbalism.Melon", 20); + + mpine = readInteger("Experience.Woodcutting.Pine", 70); + mbirch = readInteger("Experience.Woodcutting.Birch", 80); + mspruce = readInteger("Experience.Woodcutting.Spruce", 90); + + mgold = readInteger("Experience.Mining.Gold", 250); + mdiamond = readInteger("Experience.Mining.Diamond", 750); + miron = readInteger("Experience.Mining.Iron", 250); + mredstone = readInteger("Experience.Mining.Redstone", 150); + mlapis = readInteger("Experience.Mining.lapis", 400); + mobsidian = readInteger("Experience.Mining.Obsidian", 150); + mnetherrack = readInteger("Experience.Mining.Netherrack", 30); + mglowstone = readInteger("Experience.Mining.Glowstone", 30); + mcoal = readInteger("Experience.Mining.Coal", 100); + mstone = readInteger("Experience.Mining.Stone", 30); + msandstone = readInteger("Experience.Mining.Sandstone", 30); + + mfishing = readInteger("Experience.Fishing.Base", 800); + + enableOnlyActivateWhenSneaking = readBoolean("Abilities.Activation.Only_Activate_When_Sneaking", false); + + greenTerraCooldown = readInteger("Abilities.Cooldowns.Green_Terra", 240); + superBreakerCooldown = readInteger("Abilities.Cooldowns.Super_Breaker", 240); + gigaDrillBreakerCooldown = readInteger("Abilities.Cooldowns.Giga_Drill_Breaker", 240); + treeFellerCooldown = readInteger("Abilities.Cooldowns.Tree_Feller", 240); + berserkCooldown = readInteger("Abilities.Cooldowns.Berserk", 240); + serratedStrikeCooldown = readInteger("Abilities.Cooldowns.Serrated_Strikes", 240); + skullSplitterCooldown = readInteger("Abilities.Cooldowns.Skull_Splitter", 240); + + MySQLserverName = readString("MySQL.Server.Address", "localhost"); + if(readString("MySQL.Database.User.Password", null) != null) + MySQLdbPass = readString("MySQL.Database.User.Password", null); + else + MySQLdbPass = ""; + + MySQLdbName = readString("MySQL.Database.Name", "DatabaseName"); + MySQLuserName = readString("MySQL.Database.User.Name", "UserName"); + MySQLtablePrefix = readString("MySQL.Database.TablePrefix", "mcmmo_"); + MySQLport = readInteger("MySQL.Server.Port", 3306); + useMySQL = readBoolean("MySQL.Enabled", false); + + locale = readString("General.Locale", "en_us"); + enableMotd = readBoolean("General.MOTD.Enabled", true); + enableMySpawn = readBoolean("General.MySpawn.Enabled", true); + enableRegen = readBoolean("General.HP_Regeneration.Enabled", true); + + enableCobbleToMossy = readBoolean("Skills.Herbalism.Green_Thumb.Cobble_To_Mossy", true); + + xpGainMultiplier = readInteger("Experience.Gains.Multiplier.Global", 1); + toolsLoseDurabilityFromAbilities = readBoolean("Abilities.Tools.Durability_Loss_Enabled", true); + abilityDurabilityLoss = readInteger("Abilities.Tools.Durability_Loss", 2); + + feathersConsumedByChimaeraWing = readInteger("Items.Chimaera_Wing.Feather_Cost", 10); + chimaeraId = readInteger("Items.Chimaera_Wing.Item_ID", 288); + chimaeraWingEnable = readBoolean("Items.Chimaera_Wing.Enabled", true); + + pvpxp = readBoolean("XP.PVP.Rewards", true); + pvpxprewardmodifier = readDouble("Experience.Gains.Multiplier.PVP", 1.0); + miningrequirespickaxe = readBoolean("Skills.Mining.Requires_Pickaxe", true); + excavationRequiresShovel = readBoolean("Skills.Excavation.Requires_Shovel", true); + woodcuttingrequiresaxe = readBoolean("Skills.Woodcutting.Requires_Axe", true); + repairdiamondlevel = readInteger("Skills.Repair.Diamond.Level_Required", 50); + + sorceryxpmodifier = readDouble("Experience.Formula.Multiplier.Sorcery", 1.0); + tamingxpmodifier = readDouble("Experience.Formula.Multiplier.Taming", 1.0); + miningxpmodifier = readDouble("Experience.Formula.Multiplier.Mining", 1.0); + repairxpmodifier = readDouble("Experience.Formula.Multiplier.Repair", 1.0); + woodcuttingxpmodifier = readDouble("Experience.Formula.Multiplier.Woodcutting", 1.0); + unarmedxpmodifier = readDouble("Experience.Formula.Multiplier.Unarmed", 1.0); + herbalismxpmodifier = readDouble("Experience.Formula.Multiplier.Herbalism", 1.0); + excavationxpmodifier = readDouble("Experience.Formula.Multiplier.Excavation", 1.0); + archeryxpmodifier = readDouble("Experience.Formula.Multiplier.Archery", 1.0); + swordsxpmodifier = readDouble("Experience.Formula.Multiplier.Swords", 1.0); + axesxpmodifier = readDouble("Experience.Formula.Multiplier.Axes", 1.0); + acrobaticsxpmodifier = readDouble("Experience.Formula.Multiplier.Acrobatics", 1.0); + + anvilmessages = readBoolean("Skills.Repair.Anvil_Messages", true); + + rGold = readInteger("Skills.Repair.Gold.ID", 266); + nGold = readString("Skills.Repair.Gold.Name", "Gold Bars"); + rStone = readInteger("Skills.Repair.Stone.ID", 4); + nStone = readString("Skills.Repair.Stone.Name", "Cobblestone"); + rWood = readInteger("Skills.Repair.Wood.ID", 5); + nWood = readString("Skills.Repair.Wood.Name", "Wood Planks"); + rDiamond = readInteger("Skills.Repair.Diamond.ID", 264); + nDiamond = readString("Skills.Repair.Diamond.Name", "Diamond"); + rIron = readInteger("Skills.Repair.Iron.ID", 265); + nIron = readString("Skills.Repair.Iron.Name", "Iron Bars"); + + cocoabeans = readBoolean("Excavation.Drops.Cocoa_Beans", true); + mushrooms = readBoolean("Excavation.Drops.Mushrooms", true); + glowstone = readBoolean("Excavation.Drops.Glowstone", true); + eggs = readBoolean("Excavation.Drops.Eggs", true); + apples = readBoolean("Excavation.Drops.Apples", true); + cake = readBoolean("Excavation.Drops.Cake", true); + music = readBoolean("Excavation.Drops.Music", true); + diamond = readBoolean("Excavation.Drops.Diamond", true); + slowsand = readBoolean("Excavation.Drops.Slowsand", true); + sulphur = readBoolean("Excavation.Drops.Sulphur", true); + netherrack = readBoolean("Excavation.Drops.Netherrack", true); + bones = readBoolean("Excavation.Drops.Bones", true); + slimeballs = readBoolean("Excavation.Drops.Slimeballs", true); + watch = readBoolean("Excavation.Drops.Watch", true); + string = readBoolean("Excavation.Drops.String", true); + bucket = readBoolean("Excavation.Drops.Bucket", true); + web = readBoolean("Excavation.Drops.Web", true); + + xprate = readString("Commands.xprate.Name", "xprate"); + xprateEnable = readBoolean("Commands.xprate.Enabled", true); + + mctop = readString("Commands.mctop.Name", "mctop"); + mctopEnable = readBoolean("Commands.mctop.Enabled", true); + + addxp = readString("Commands.addxp.Name", "addxp"); + addxpEnable = readBoolean("Commands.addxp.Enabled", true); + + mcability = readString("Commands.mcability.Name", "mcability"); + mcabilityEnable = readBoolean("Commands.mcability.Enabled", true); + + mcrefresh = readString("Commands.mcrefresh.Name", "mcrefresh"); + mcrefreshEnable = readBoolean("Commands.mcrefresh.Enabled", true); + + mcmmo = readString("Commands.mcmmo.Name", "mcmmo"); + mcmmoEnable = readBoolean("Commands.mcmmo.Enabled", true); + + mcc = readString("Commands.mcc.Name", "mcc"); + mccEnable = readBoolean("Commands.mcc.Enabled", true); + + mcgod = readString("Commands.mcgod.Name", "mcgod"); + mcgodEnable = readBoolean("Commands.mcgod.Enabled", true); + + stats = readString("Commands.stats.Name", "stats"); + statsEnable = readBoolean("Commands.stats.Enabled", true); + + mmoedit = readString("Commands.mmoedit.Name", "mmoedit"); + mmoeditEnable = readBoolean("Commands.mmoedit.Enabled", true); + + ptp = readString("Commands.ptp.Name", "ptp"); + ptpEnable = readBoolean("Commands.ptp.Enabled", true); + + party = readString("Commands.party.Name", "party"); + partyEnable = readBoolean("Commands.party.Enabled", true); + + myspawn = readString("Commands.myspawn.Name", "myspawn"); + myspawnEnable = readBoolean("Commands.myspawn.Enabled", true); + + whois = readString("Commands.whois.Name", "whois"); + whoisEnable = readBoolean("Commands.whois.Enabled", true); + + invite = readString("Commands.invite.Name", "invite"); + inviteEnable = readBoolean("Commands.invite.Enabled", true); + + accept = readString("Commands.accept.Name", "accept"); + acceptEnable = readBoolean("Commands.accept.Enabled", true); + + clearmyspawn = readString("Commands.clearmyspawn.Name", "clearmyspawn"); + clearmyspawnEnable = readBoolean("Commands.clearmyspawn.Enabled", true); + + xplockEnable = readBoolean("Commands.xplock.Enabled", true); + xplock = readString("Commands.xplock.Name", "xplock"); + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/config/Misc.java b/src/main/java/com/gmail/nossr50/config/Misc.java similarity index 97% rename from src/com/gmail/nossr50/config/Misc.java rename to src/main/java/com/gmail/nossr50/config/Misc.java index b66e514ed..c703f72fc 100644 --- a/src/com/gmail/nossr50/config/Misc.java +++ b/src/main/java/com/gmail/nossr50/config/Misc.java @@ -1,90 +1,90 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.config; - -import java.util.*; -import java.util.logging.Logger; -import org.bukkit.block.Block; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; - -import com.gmail.nossr50.mcMMO; - -public class Misc -{ - String location = "mcmmo.properties"; - - protected static final Logger log = Logger.getLogger("Minecraft"); - - public ArrayList mobSpawnerList = new ArrayList(); - public ArrayList blockWatchList = new ArrayList(); - public ArrayList treeFeller = new ArrayList(); - public HashMap arrowTracker = new HashMap(); - public ArrayList bleedTracker = new ArrayList(); - mcMMO plugin = null; - - //BLEED QUE STUFF - public LivingEntity[] bleedQue = new LivingEntity[20]; - public int bleedQuePos = 0; - public LivingEntity[] bleedRemovalQue = new LivingEntity[20]; - public int bleedRemovalQuePos = 0; - - public Misc(mcMMO mcMMO) - { - plugin = mcMMO; - } - - public void addToBleedQue(LivingEntity entity) - { - //Assign entity to empty position - bleedQue[bleedQuePos] = entity; - - //Move position up by 1 increment - bleedQuePos++; - - //Check if array is full - if(bleedQuePos >= bleedQue.length) - { - //Create new temporary array - LivingEntity[] temp = new LivingEntity[bleedQue.length*2]; - //Copy data from bleedQue to temporary array - System.arraycopy(bleedQue, 0, temp, 0, bleedQue.length); - //Point bleedQue to new array - bleedQue = temp; - } - } - - public void addToBleedRemovalQue(LivingEntity entity) - { - //Assign entity to empty position - bleedRemovalQue[bleedRemovalQuePos] = entity; - - //Move position up by 1 increment - bleedRemovalQuePos++; - - //Check if array is full - if(bleedRemovalQuePos >= bleedRemovalQue.length) - { - //Create new temporary array - LivingEntity[] temp = new LivingEntity[bleedRemovalQue.length*2]; - //Copy data from bleedRemovalQue to temporary array - System.arraycopy(bleedRemovalQue, 0, temp, 0, bleedRemovalQue.length); - //Point bleedRemovalQue to new array - bleedRemovalQue = temp; - } - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.config; + +import java.util.*; +import java.util.logging.Logger; +import org.bukkit.block.Block; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; + +import com.gmail.nossr50.mcMMO; + +public class Misc +{ + String location = "mcmmo.properties"; + + protected static final Logger log = Logger.getLogger("Minecraft"); + + public ArrayList mobSpawnerList = new ArrayList(); + public ArrayList blockWatchList = new ArrayList(); + public ArrayList treeFeller = new ArrayList(); + public HashMap arrowTracker = new HashMap(); + public ArrayList bleedTracker = new ArrayList(); + mcMMO plugin = null; + + //BLEED QUE STUFF + public LivingEntity[] bleedQue = new LivingEntity[20]; + public int bleedQuePos = 0; + public LivingEntity[] bleedRemovalQue = new LivingEntity[20]; + public int bleedRemovalQuePos = 0; + + public Misc(mcMMO mcMMO) + { + plugin = mcMMO; + } + + public void addToBleedQue(LivingEntity entity) + { + //Assign entity to empty position + bleedQue[bleedQuePos] = entity; + + //Move position up by 1 increment + bleedQuePos++; + + //Check if array is full + if(bleedQuePos >= bleedQue.length) + { + //Create new temporary array + LivingEntity[] temp = new LivingEntity[bleedQue.length*2]; + //Copy data from bleedQue to temporary array + System.arraycopy(bleedQue, 0, temp, 0, bleedQue.length); + //Point bleedQue to new array + bleedQue = temp; + } + } + + public void addToBleedRemovalQue(LivingEntity entity) + { + //Assign entity to empty position + bleedRemovalQue[bleedRemovalQuePos] = entity; + + //Move position up by 1 increment + bleedRemovalQuePos++; + + //Check if array is full + if(bleedRemovalQuePos >= bleedRemovalQue.length) + { + //Create new temporary array + LivingEntity[] temp = new LivingEntity[bleedRemovalQue.length*2]; + //Copy data from bleedRemovalQue to temporary array + System.arraycopy(bleedRemovalQue, 0, temp, 0, bleedRemovalQue.length); + //Point bleedRemovalQue to new array + bleedRemovalQue = temp; + } + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/datatypes/FakeBlockBreakEvent.java b/src/main/java/com/gmail/nossr50/datatypes/FakeBlockBreakEvent.java similarity index 97% rename from src/com/gmail/nossr50/datatypes/FakeBlockBreakEvent.java rename to src/main/java/com/gmail/nossr50/datatypes/FakeBlockBreakEvent.java index 29d2497e7..d9d4595b0 100644 --- a/src/com/gmail/nossr50/datatypes/FakeBlockBreakEvent.java +++ b/src/main/java/com/gmail/nossr50/datatypes/FakeBlockBreakEvent.java @@ -1,29 +1,29 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes; - -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.event.block.BlockBreakEvent; - -public class FakeBlockBreakEvent extends BlockBreakEvent { - private static final long serialVersionUID = 1L; - - public FakeBlockBreakEvent(Block theBlock, Player player) { - super(theBlock, player); - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes; + +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockBreakEvent; + +public class FakeBlockBreakEvent extends BlockBreakEvent { + private static final long serialVersionUID = 1L; + + public FakeBlockBreakEvent(Block theBlock, Player player) { + super(theBlock, player); + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/datatypes/HUDType.java b/src/main/java/com/gmail/nossr50/datatypes/HUDType.java similarity index 96% rename from src/com/gmail/nossr50/datatypes/HUDType.java rename to src/main/java/com/gmail/nossr50/datatypes/HUDType.java index 2037dc1e6..2bd660e70 100644 --- a/src/com/gmail/nossr50/datatypes/HUDType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/HUDType.java @@ -1,25 +1,25 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes; - -public enum HUDType -{ - DISABLED, - STANDARD, - SMALL, - RETRO; -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes; + +public enum HUDType +{ + DISABLED, + STANDARD, + SMALL, + RETRO; +} diff --git a/src/com/gmail/nossr50/datatypes/HUDmmo.java b/src/main/java/com/gmail/nossr50/datatypes/HUDmmo.java similarity index 96% rename from src/com/gmail/nossr50/datatypes/HUDmmo.java rename to src/main/java/com/gmail/nossr50/datatypes/HUDmmo.java index 65eabd95f..e54df7d47 100644 --- a/src/com/gmail/nossr50/datatypes/HUDmmo.java +++ b/src/main/java/com/gmail/nossr50/datatypes/HUDmmo.java @@ -1,287 +1,287 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.getspout.spoutapi.SpoutManager; -import org.getspout.spoutapi.gui.Color; -import org.getspout.spoutapi.gui.GenericGradient; -import org.getspout.spoutapi.gui.GenericTexture; -import org.getspout.spoutapi.gui.RenderPriority; -import org.getspout.spoutapi.gui.Widget; -import org.getspout.spoutapi.player.SpoutPlayer; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.spout.SpoutStuff; - -public class HUDmmo -{ - int center_x = 427/2; - int center_y = 240/2; - - String playerName = null; - Widget xpbar = null; - GenericGradient xpfill = null; - GenericGradient xpbg = null; - GenericGradient xpicon_bg = null; - GenericGradient xpicon_border = null; - GenericTexture xpicon = null; - mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO"); - - public HUDmmo(Player player) - { - playerName = player.getName(); - initializeHUD(player); - } - - public void initializeHUD(Player player) - { - //PlayerProfile PP = Users.getProfile(player); - HUDType type = Users.getProfile(player).getHUDType(); - - //if(LoadProperties.partybar && PP.getPartyHUD()) - //mmoHelper.initialize(SpoutManager.getPlayer(player), plugin); //PARTY HUD - - switch(type) - { - case RETRO: - { - initializeXpBarDisplayRetro(SpoutManager.getPlayer(player)); - break; - } - case STANDARD: - { - initializeXpBarDisplayStandard(SpoutManager.getPlayer(player)); - break; - } - case SMALL: - { - initializeXpBarDisplaySmall(SpoutManager.getPlayer(player)); - break; - } - case DISABLED: - { - //Do nothing.. :) - } - } - } - - public void updateXpBarDisplay(HUDType type, Player player) - { - switch(type) - { - case RETRO: - { - updateXpBarRetro(player, Users.getProfile(player)); - break; - } - case STANDARD: - { - updateXpBarStandard(player, Users.getProfile(player)); - break; - } - case SMALL: - { - updateXpBarStandard(player, Users.getProfile(player)); - break; - } - case DISABLED: - { - //Do nothing.. :) - } - } - } - - public void resetHUD() - { - SpoutPlayer sPlayer = SpoutStuff.getSpoutPlayer(playerName); - //PlayerProfile PP = Users.getProfile(sPlayer); - if(sPlayer != null) - { - sPlayer.getMainScreen().removeWidgets(plugin); - - //Reset the objects - xpbar = null; - xpfill = null; - xpbg = null; - xpicon = null; - - //if(LoadProperties.partybar && PP.getPartyHUD()) - //mmoHelper.initialize(sPlayer, plugin); - - sPlayer.getMainScreen().setDirty(true); - } - } - - private void initializeXpBarDisplayRetro(SpoutPlayer sPlayer) - { - Color border = new Color((float)LoadProperties.xpborder_r, (float)LoadProperties.xpborder_g, (float)LoadProperties.xpborder_b, 1f); - Color green = new Color(0, 1f, 0, 1f); - Color background = new Color((float)LoadProperties.xpbackground_r, (float)LoadProperties.xpbackground_g, (float)LoadProperties.xpbackground_b, 1f); - Color darkbg = new Color(0.2f, 0.2f, 0.2f, 1f); - - xpicon = new GenericTexture(); - xpbar = new GenericGradient(); - xpfill = new GenericGradient(); - xpbg = new GenericGradient(); - - xpicon_bg = new GenericGradient(); - xpicon_border = new GenericGradient(); - - xpicon_bg.setBottomColor(darkbg).setTopColor(darkbg).setWidth(4).setHeight(4).setPriority(RenderPriority.High).setX(142).setY(10).setDirty(true); - xpicon_border.setBottomColor(border).setTopColor(border).setWidth(6).setHeight(6).setPriority(RenderPriority.Highest).setX(141).setY(9).setDirty(true); - - xpicon.setWidth(6).setHeight(6).setX(141).setY(9).setPriority(RenderPriority.Normal).setDirty(true); - xpicon.setUrl("Icon_r.png"); - - xpbar.setWidth(128).setHeight(4).setX(149).setY(10); - ((GenericGradient) xpbar).setBottomColor(border).setTopColor(border).setPriority(RenderPriority.Highest).setDirty(true); - - xpfill.setWidth(0).setHeight(2).setX(150).setY(11); - xpfill.setBottomColor(green).setTopColor(green).setPriority(RenderPriority.Lowest).setDirty(true); - - xpbg.setWidth(126).setHeight(2).setX(150).setY(11); - xpbg.setBottomColor(background).setTopColor(background).setPriority(RenderPriority.Low).setDirty(true); - - if(LoadProperties.xpbar) - { - sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbar); - sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpfill); - sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbg); - if(LoadProperties.xpicon) - { - sPlayer.getMainScreen().attachWidget(plugin, (GenericTexture)xpicon); - sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_bg); - } - sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_border); - } - - sPlayer.getMainScreen().setDirty(true); - } - - private void initializeXpBarDisplayStandard(SpoutPlayer sPlayer) - { - //Setup xp bar - xpbar = new GenericTexture(); - - if(LoadProperties.xpbar && LoadProperties.xpicon) - { - xpicon = new GenericTexture(); - - xpicon.setUrl("Icon.png"); - - xpicon.setHeight(16).setWidth(32).setX(LoadProperties.xpicon_x).setY(LoadProperties.xpicon_y); - - xpicon.setDirty(true); - - sPlayer.getMainScreen().attachWidget(plugin, xpicon); - } - - if(LoadProperties.xpbar) - { - ((GenericTexture)xpbar).setUrl("xpbar_inc000.png"); - xpbar.setX(LoadProperties.xpbar_x).setY(LoadProperties.xpbar_y).setHeight(8).setWidth(256); - - sPlayer.getMainScreen().attachWidget(plugin, xpbar); - } - sPlayer.getMainScreen().setDirty(true); - } - - private void initializeXpBarDisplaySmall(SpoutPlayer sPlayer) - { - //Setup xp bar - xpbar = new GenericTexture(); - - if(LoadProperties.xpbar && LoadProperties.xpicon) - { - xpicon = new GenericTexture(); - - xpicon.setUrl("Icon.png"); - - xpicon.setHeight(8).setWidth(16).setX(center_x-(8+64)).setY(LoadProperties.xpicon_y+2); - - xpicon.setDirty(true); - - sPlayer.getMainScreen().attachWidget(plugin, xpicon); - } - - if(LoadProperties.xpbar) - { - ((GenericTexture)xpbar).setUrl("xpbar_inc000.png"); - xpbar.setX(center_x-64).setY(LoadProperties.xpbar_y).setHeight(4).setWidth(128); - - sPlayer.getMainScreen().attachWidget(plugin, xpbar); - } - - sPlayer.getMainScreen().setDirty(true); - } - - private void updateXpBarStandard(Player player, PlayerProfile PP) - { - if(!LoadProperties.xpbar) - return; - - SkillType theType = null; - - if(PP.getXpBarLocked()) - theType=PP.getSkillLock(); - else - theType=PP.getLastGained(); - - if(theType == null) - return; - - ((GenericTexture) xpicon).setUrl(m.getCapitalized(theType.toString())+".png"); - xpicon.setDirty(true); - - ((GenericTexture) xpbar).setUrl(SpoutStuff.getUrlBar(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.STANDARD))); - xpbar.setDirty(true); - - SpoutManager.getPlayer(player).getMainScreen().setDirty(true); - } - - private void updateXpBarRetro(Player player, PlayerProfile PP) - { - if(!LoadProperties.xpbar) - return; - SkillType theType = null; - - if(PP.getXpBarLocked() && PP.getSkillLock() != null) - theType=PP.getSkillLock(); - else - theType=PP.getLastGained(); - - if(theType == null) - return; - - Color color = SpoutStuff.getRetroColor(theType); - - if(xpicon != null && theType != null) - xpicon.setUrl(m.getCapitalized(theType.toString())+"_r.png"); - - if(theType != null) - xpfill.setBottomColor(color).setTopColor(color).setWidth(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.RETRO)).setDirty(true); - else - System.out.println("theType was null!"); - - SpoutManager.getPlayer(player).getMainScreen().setDirty(true); - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.getspout.spoutapi.SpoutManager; +import org.getspout.spoutapi.gui.Color; +import org.getspout.spoutapi.gui.GenericGradient; +import org.getspout.spoutapi.gui.GenericTexture; +import org.getspout.spoutapi.gui.RenderPriority; +import org.getspout.spoutapi.gui.Widget; +import org.getspout.spoutapi.player.SpoutPlayer; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.spout.SpoutStuff; + +public class HUDmmo +{ + int center_x = 427/2; + int center_y = 240/2; + + String playerName = null; + Widget xpbar = null; + GenericGradient xpfill = null; + GenericGradient xpbg = null; + GenericGradient xpicon_bg = null; + GenericGradient xpicon_border = null; + GenericTexture xpicon = null; + mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO"); + + public HUDmmo(Player player) + { + playerName = player.getName(); + initializeHUD(player); + } + + public void initializeHUD(Player player) + { + //PlayerProfile PP = Users.getProfile(player); + HUDType type = Users.getProfile(player).getHUDType(); + + //if(LoadProperties.partybar && PP.getPartyHUD()) + //mmoHelper.initialize(SpoutManager.getPlayer(player), plugin); //PARTY HUD + + switch(type) + { + case RETRO: + { + initializeXpBarDisplayRetro(SpoutManager.getPlayer(player)); + break; + } + case STANDARD: + { + initializeXpBarDisplayStandard(SpoutManager.getPlayer(player)); + break; + } + case SMALL: + { + initializeXpBarDisplaySmall(SpoutManager.getPlayer(player)); + break; + } + case DISABLED: + { + //Do nothing.. :) + } + } + } + + public void updateXpBarDisplay(HUDType type, Player player) + { + switch(type) + { + case RETRO: + { + updateXpBarRetro(player, Users.getProfile(player)); + break; + } + case STANDARD: + { + updateXpBarStandard(player, Users.getProfile(player)); + break; + } + case SMALL: + { + updateXpBarStandard(player, Users.getProfile(player)); + break; + } + case DISABLED: + { + //Do nothing.. :) + } + } + } + + public void resetHUD() + { + SpoutPlayer sPlayer = SpoutStuff.getSpoutPlayer(playerName); + //PlayerProfile PP = Users.getProfile(sPlayer); + if(sPlayer != null) + { + sPlayer.getMainScreen().removeWidgets(plugin); + + //Reset the objects + xpbar = null; + xpfill = null; + xpbg = null; + xpicon = null; + + //if(LoadProperties.partybar && PP.getPartyHUD()) + //mmoHelper.initialize(sPlayer, plugin); + + sPlayer.getMainScreen().setDirty(true); + } + } + + private void initializeXpBarDisplayRetro(SpoutPlayer sPlayer) + { + Color border = new Color((float)LoadProperties.xpborder_r, (float)LoadProperties.xpborder_g, (float)LoadProperties.xpborder_b, 1f); + Color green = new Color(0, 1f, 0, 1f); + Color background = new Color((float)LoadProperties.xpbackground_r, (float)LoadProperties.xpbackground_g, (float)LoadProperties.xpbackground_b, 1f); + Color darkbg = new Color(0.2f, 0.2f, 0.2f, 1f); + + xpicon = new GenericTexture(); + xpbar = new GenericGradient(); + xpfill = new GenericGradient(); + xpbg = new GenericGradient(); + + xpicon_bg = new GenericGradient(); + xpicon_border = new GenericGradient(); + + xpicon_bg.setBottomColor(darkbg).setTopColor(darkbg).setWidth(4).setHeight(4).setPriority(RenderPriority.High).setX(142).setY(10).setDirty(true); + xpicon_border.setBottomColor(border).setTopColor(border).setWidth(6).setHeight(6).setPriority(RenderPriority.Highest).setX(141).setY(9).setDirty(true); + + xpicon.setWidth(6).setHeight(6).setX(141).setY(9).setPriority(RenderPriority.Normal).setDirty(true); + xpicon.setUrl("Icon_r.png"); + + xpbar.setWidth(128).setHeight(4).setX(149).setY(10); + ((GenericGradient) xpbar).setBottomColor(border).setTopColor(border).setPriority(RenderPriority.Highest).setDirty(true); + + xpfill.setWidth(0).setHeight(2).setX(150).setY(11); + xpfill.setBottomColor(green).setTopColor(green).setPriority(RenderPriority.Lowest).setDirty(true); + + xpbg.setWidth(126).setHeight(2).setX(150).setY(11); + xpbg.setBottomColor(background).setTopColor(background).setPriority(RenderPriority.Low).setDirty(true); + + if(LoadProperties.xpbar) + { + sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbar); + sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpfill); + sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbg); + if(LoadProperties.xpicon) + { + sPlayer.getMainScreen().attachWidget(plugin, (GenericTexture)xpicon); + sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_bg); + } + sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_border); + } + + sPlayer.getMainScreen().setDirty(true); + } + + private void initializeXpBarDisplayStandard(SpoutPlayer sPlayer) + { + //Setup xp bar + xpbar = new GenericTexture(); + + if(LoadProperties.xpbar && LoadProperties.xpicon) + { + xpicon = new GenericTexture(); + + xpicon.setUrl("Icon.png"); + + xpicon.setHeight(16).setWidth(32).setX(LoadProperties.xpicon_x).setY(LoadProperties.xpicon_y); + + xpicon.setDirty(true); + + sPlayer.getMainScreen().attachWidget(plugin, xpicon); + } + + if(LoadProperties.xpbar) + { + ((GenericTexture)xpbar).setUrl("xpbar_inc000.png"); + xpbar.setX(LoadProperties.xpbar_x).setY(LoadProperties.xpbar_y).setHeight(8).setWidth(256); + + sPlayer.getMainScreen().attachWidget(plugin, xpbar); + } + sPlayer.getMainScreen().setDirty(true); + } + + private void initializeXpBarDisplaySmall(SpoutPlayer sPlayer) + { + //Setup xp bar + xpbar = new GenericTexture(); + + if(LoadProperties.xpbar && LoadProperties.xpicon) + { + xpicon = new GenericTexture(); + + xpicon.setUrl("Icon.png"); + + xpicon.setHeight(8).setWidth(16).setX(center_x-(8+64)).setY(LoadProperties.xpicon_y+2); + + xpicon.setDirty(true); + + sPlayer.getMainScreen().attachWidget(plugin, xpicon); + } + + if(LoadProperties.xpbar) + { + ((GenericTexture)xpbar).setUrl("xpbar_inc000.png"); + xpbar.setX(center_x-64).setY(LoadProperties.xpbar_y).setHeight(4).setWidth(128); + + sPlayer.getMainScreen().attachWidget(plugin, xpbar); + } + + sPlayer.getMainScreen().setDirty(true); + } + + private void updateXpBarStandard(Player player, PlayerProfile PP) + { + if(!LoadProperties.xpbar) + return; + + SkillType theType = null; + + if(PP.getXpBarLocked()) + theType=PP.getSkillLock(); + else + theType=PP.getLastGained(); + + if(theType == null) + return; + + ((GenericTexture) xpicon).setUrl(m.getCapitalized(theType.toString())+".png"); + xpicon.setDirty(true); + + ((GenericTexture) xpbar).setUrl(SpoutStuff.getUrlBar(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.STANDARD))); + xpbar.setDirty(true); + + SpoutManager.getPlayer(player).getMainScreen().setDirty(true); + } + + private void updateXpBarRetro(Player player, PlayerProfile PP) + { + if(!LoadProperties.xpbar) + return; + SkillType theType = null; + + if(PP.getXpBarLocked() && PP.getSkillLock() != null) + theType=PP.getSkillLock(); + else + theType=PP.getLastGained(); + + if(theType == null) + return; + + Color color = SpoutStuff.getRetroColor(theType); + + if(xpicon != null && theType != null) + xpicon.setUrl(m.getCapitalized(theType.toString())+"_r.png"); + + if(theType != null) + xpfill.setBottomColor(color).setTopColor(color).setWidth(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.RETRO)).setDirty(true); + else + System.out.println("theType was null!"); + + SpoutManager.getPlayer(player).getMainScreen().setDirty(true); + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/datatypes/PlayerProfile.java b/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java similarity index 97% rename from src/com/gmail/nossr50/datatypes/PlayerProfile.java rename to src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java index 00370b5cf..234c80c9d 100644 --- a/src/com/gmail/nossr50/datatypes/PlayerProfile.java +++ b/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java @@ -1,1236 +1,1236 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.FileReader; -import java.io.FileWriter; -import java.util.HashMap; -import java.util.ArrayList; -import java.util.logging.Level; -import java.util.logging.Logger; - - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.party.Party; -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcMMO; - - - -public class PlayerProfile -{ - protected final Logger log = Logger.getLogger("Minecraft"); - - //HUD - private HUDType hud; - - //MISC - private String party, myspawn, myspawnworld, invite; - - //TOGGLES - private boolean partyhud = true, spoutcraft = false, filling = false, xpbarlocked = false, placedAnvil = false, partyChatMode = false, adminChatMode = false, godMode = false, greenTerraMode, partyChatOnly = false, greenTerraInformed = true, berserkInformed = true, skullSplitterInformed = true, gigaDrillBreakerInformed = true, - superBreakerInformed = true, serratedStrikesInformed = true, treeFellerInformed = true, dead, abilityuse = true, treeFellerMode, superBreakerMode, gigaDrillBreakerMode, - serratedStrikesMode, hoePreparationMode = false, shovelPreparationMode = false, swordsPreparationMode = false, fistsPreparationMode = false, pickaxePreparationMode = false, axePreparationMode = false, skullSplitterMode, berserkMode; - - //TIMESTAMPS - //ATS = (Time of) Activation Time Stamp - //DATS = (Time of) Deactivation Time Stamp - private int xpGainATS = 0, recentlyHurt = 0, berserkATS = 0, berserkDATS = 0, gigaDrillBreakerATS = 0, gigaDrillBreakerDATS = 0, - respawnATS = 0, mySpawnATS = 0, greenTerraATS = 0, greenTerraDATS = 0, superBreakerATS = 0, superBreakerDATS = 0, serratedStrikesATS = 0, serratedStrikesDATS = 0, treeFellerATS = 0, treeFellerDATS = 0, - skullSplitterATS = 0, skullSplitterDATS = 0, hoePreparationATS = 0, axePreparationATS = 0, pickaxePreparationATS = 0, fistsPreparationATS = 0, shovelPreparationATS = 0, swordsPreparationATS = 0; - - private SkillType lastgained = null, skillLock = null; - - //MySQL STUFF - private int xpbarinc=0, lastlogin=0, userid = 0, bleedticks = 0; - - //MAGIC STUFF - private int mana = 0; - private int greenDyeCycleSel = 0, greenDyeCycle = 0, blueDyeCycle = 0, blueDyeCycleSel = 0; - public boolean dyeChanged = false; - - private String playername; - - //Time to HashMap this shiz - HashMap skills = new HashMap(); //Skills and XP - HashMap skillsXp = new HashMap(); //Skills and XP - - String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; - - public PlayerProfile(Player player) - { - hud = LoadProperties.defaulthud; - //Setup the HashMap for the skills - for(SkillType skillType : SkillType.values()) - { - if(skillType != SkillType.ALL) - { - skills.put(skillType, 0); - skillsXp.put(skillType, 0); - } - } - - playername = player.getName(); - if (LoadProperties.useMySQL) - { - if(!loadMySQL(player)) { - addMySQLPlayer(player); - loadMySQL(player);//This is probably not needed anymore, could just delete - } - } else { - if(!load()) { addPlayer(); } - } - lastlogin = ((Long) (System.currentTimeMillis()/1000)).intValue(); - } - public int getLastLogin() - { - return lastlogin; - } - public int getMySQLuserId() - { - return userid; - } - - public boolean loadMySQL(Player p) - { - Integer id = 0; - id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + p.getName() + "'"); - if(id == 0) - return false; - this.userid = id; - if (id > 0) { - HashMap> huds = mcMMO.database.Read("SELECT hudtype FROM "+LoadProperties.MySQLtablePrefix+"huds WHERE user_id = " + id); - if(huds.get(1) == null) - { - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"huds (user_id) VALUES ("+id+")"); - } else { - if(huds.get(1).get(0) != null) - { - for(HUDType x : HUDType.values()) - { - if(x.toString().equals(huds.get(1).get(0))) - { - hud = x; - } - } - } else { - hud = LoadProperties.defaulthud; - } - } - HashMap> users = mcMMO.database.Read("SELECT lastlogin, party FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = " + id); - //lastlogin = Integer.parseInt(users.get(1).get(0)); - party = users.get(1).get(1); - HashMap> spawn = mcMMO.database.Read("SELECT world, x, y, z FROM "+LoadProperties.MySQLtablePrefix+"spawn WHERE user_id = " + id); - myspawnworld = spawn.get(1).get(0); - myspawn = spawn.get(1).get(1) + "," + spawn.get(1).get(2) + "," + spawn.get(1).get(3); - HashMap> cooldowns = mcMMO.database.Read("SELECT mining, woodcutting, unarmed, herbalism, excavation, swords, axes FROM "+LoadProperties.MySQLtablePrefix+"cooldowns WHERE user_id = " + id); - /* - * I'm still learning MySQL, this is a fix for adding a new table - * its not pretty but it works - */ - if(cooldowns.get(1) == null) - { - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")"); - } - else - { - superBreakerDATS = Integer.valueOf(cooldowns.get(1).get(0)); - treeFellerDATS = Integer.valueOf(cooldowns.get(1).get(1)); - berserkDATS = Integer.valueOf(cooldowns.get(1).get(2)); - greenTerraDATS = Integer.valueOf(cooldowns.get(1).get(3)); - gigaDrillBreakerDATS = Integer.valueOf(cooldowns.get(1).get(4)); - serratedStrikesDATS = Integer.valueOf(cooldowns.get(1).get(5)); - skullSplitterDATS = Integer.valueOf(cooldowns.get(1).get(6)); - } - HashMap> stats = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"skills WHERE user_id = " + id); - skills.put(SkillType.TAMING, Integer.valueOf(stats.get(1).get(0))); - skills.put(SkillType.MINING, Integer.valueOf(stats.get(1).get(1))); - skills.put(SkillType.REPAIR, Integer.valueOf(stats.get(1).get(2))); - skills.put(SkillType.WOODCUTTING, Integer.valueOf(stats.get(1).get(3))); - skills.put(SkillType.UNARMED, Integer.valueOf(stats.get(1).get(4))); - skills.put(SkillType.HERBALISM, Integer.valueOf(stats.get(1).get(5))); - skills.put(SkillType.EXCAVATION, Integer.valueOf(stats.get(1).get(6))); - skills.put(SkillType.ARCHERY, Integer.valueOf(stats.get(1).get(7))); - skills.put(SkillType.SWORDS, Integer.valueOf(stats.get(1).get(8))); - skills.put(SkillType.AXES, Integer.valueOf(stats.get(1).get(9))); - skills.put(SkillType.ACROBATICS, Integer.valueOf(stats.get(1).get(10))); - skills.put(SkillType.FISHING, Integer.valueOf(stats.get(1).get(11))); - HashMap> experience = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"experience WHERE user_id = " + id); - skillsXp.put(SkillType.TAMING, Integer.valueOf(experience.get(1).get(0))); - skillsXp.put(SkillType.MINING, Integer.valueOf(experience.get(1).get(1))); - skillsXp.put(SkillType.REPAIR, Integer.valueOf(experience.get(1).get(2))); - skillsXp.put(SkillType.WOODCUTTING, Integer.valueOf(experience.get(1).get(3))); - skillsXp.put(SkillType.UNARMED, Integer.valueOf(experience.get(1).get(4))); - skillsXp.put(SkillType.HERBALISM, Integer.valueOf(experience.get(1).get(5))); - skillsXp.put(SkillType.EXCAVATION, Integer.valueOf(experience.get(1).get(6))); - skillsXp.put(SkillType.ARCHERY, Integer.valueOf(experience.get(1).get(7))); - skillsXp.put(SkillType.SWORDS, Integer.valueOf(experience.get(1).get(8))); - skillsXp.put(SkillType.AXES, Integer.valueOf(experience.get(1).get(9))); - skillsXp.put(SkillType.ACROBATICS, Integer.valueOf(experience.get(1).get(10))); - skillsXp.put(SkillType.FISHING, Integer.valueOf(experience.get(1).get(11))); - return true; - } - else { - return false; - } - } - public void addMySQLPlayer(Player p) { - Integer id = 0; - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"users (user, lastlogin) VALUES ('" + p.getName() + "'," + System.currentTimeMillis() / 1000 +")"); - id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + p.getName() + "'"); - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")"); - 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+")"); - this.userid = id; - } - - public boolean load() - { - try { - //Open the user file - FileReader file = new FileReader(location); - BufferedReader in = new BufferedReader(file); - String line = ""; - while((line = in.readLine()) != null) - { - //Find if the line contains the player we want. - String[] character = line.split(":"); - - if(!character[0].equals(playername)){continue;} - - //Get Mining - if(character.length > 1 && m.isInt(character[1])) - skills.put(SkillType.MINING, Integer.valueOf(character[1])); - //Myspawn - if(character.length > 2) - myspawn = character[2]; - //Party - if(character.length > 3) - party = character[3]; - //Mining XP - if(character.length > 4 && m.isInt(character[4])) - skillsXp.put(SkillType.MINING, Integer.valueOf(character[4])); - if(character.length > 5 && m.isInt(character[5])) - skills.put(SkillType.WOODCUTTING, Integer.valueOf(character[5])); - if(character.length > 6 && m.isInt(character[6])) - skillsXp.put(SkillType.WOODCUTTING, Integer.valueOf(character[6])); - if(character.length > 7 && m.isInt(character[7])) - skills.put(SkillType.REPAIR, Integer.valueOf(character[7])); - if(character.length > 8 && m.isInt(character[8])) - skills.put(SkillType.UNARMED, Integer.valueOf(character[8])); - if(character.length > 9 && m.isInt(character[9])) - skills.put(SkillType.HERBALISM, Integer.valueOf(character[9])); - if(character.length > 10 && m.isInt(character[10])) - skills.put(SkillType.EXCAVATION, Integer.valueOf(character[10])); - if(character.length > 11 && m.isInt(character[11])) - skills.put(SkillType.ARCHERY, Integer.valueOf(character[11])); - if(character.length > 12 && m.isInt(character[12])) - skills.put(SkillType.SWORDS, Integer.valueOf(character[12])); - if(character.length > 13 && m.isInt(character[13])) - skills.put(SkillType.AXES, Integer.valueOf(character[13])); - if(character.length > 14 && m.isInt(character[14])) - skills.put(SkillType.ACROBATICS, Integer.valueOf(character[14])); - if(character.length > 15 && m.isInt(character[15])) - skillsXp.put(SkillType.REPAIR, Integer.valueOf(character[15])); - if(character.length > 16 && m.isInt(character[16])) - skillsXp.put(SkillType.UNARMED, Integer.valueOf(character[16])); - if(character.length > 17 && m.isInt(character[17])) - skillsXp.put(SkillType.HERBALISM, Integer.valueOf(character[17])); - if(character.length > 18 && m.isInt(character[18])) - skillsXp.put(SkillType.EXCAVATION, Integer.valueOf(character[18])); - if(character.length > 19 && m.isInt(character[19])) - skillsXp.put(SkillType.ARCHERY, Integer.valueOf(character[19])); - if(character.length > 20 && m.isInt(character[20])) - skillsXp.put(SkillType.SWORDS, Integer.valueOf(character[20])); - if(character.length > 21 && m.isInt(character[21])) - skillsXp.put(SkillType.AXES, Integer.valueOf(character[21])); - if(character.length > 22 && m.isInt(character[22])) - skillsXp.put(SkillType.ACROBATICS, Integer.valueOf(character[22])); - if(character.length > 23 && m.isInt(character[23])) - myspawnworld = character[23]; - if(character.length > 24 && m.isInt(character[24])) - skills.put(SkillType.TAMING, Integer.valueOf(character[24])); - if(character.length > 25 && m.isInt(character[25])) - skillsXp.put(SkillType.TAMING, Integer.valueOf(character[25])); - if(character.length > 26) - berserkDATS = Integer.valueOf(character[26]); - if(character.length > 27) - gigaDrillBreakerDATS = Integer.valueOf(character[27]); - if(character.length > 28) - treeFellerDATS = Integer.valueOf(character[28]); - if(character.length > 29) - greenTerraDATS = Integer.valueOf(character[29]); - if(character.length > 30) - serratedStrikesDATS = Integer.valueOf(character[30]); - if(character.length > 31) - skullSplitterDATS = Integer.valueOf(character[31]); - if(character.length > 32) - superBreakerDATS = Integer.valueOf(character[32]); - if(character.length > 33) - { - for(HUDType x : HUDType.values()) - { - if(x.toString().equalsIgnoreCase(character[33])) - { - hud = x; - } - } - } - if(character.length > 34) - skills.put(SkillType.FISHING, Integer.valueOf(character[34])); - if(character.length > 35) - skillsXp.put(SkillType.FISHING, Integer.valueOf(character[35])); - in.close(); - return true; - } - in.close(); - } catch (Exception e) { - log.log(Level.SEVERE, "Exception while reading " - + location + " (Are you sure you formatted it correctly?)", e); - } - return false; - } - - public void save() - { - Long timestamp = System.currentTimeMillis()/1000; //Convert to seconds - // if we are using mysql save to database - if (LoadProperties.useMySQL) - { - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"huds SET " - +" hudtype = '"+hud.toString()+"' WHERE user_id = "+this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + timestamp.intValue() + " WHERE id = " + this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+this.party+"' WHERE id = " +this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + this.myspawnworld + "', x = " +getX()+", y = "+getY()+", z = "+getZ()+" WHERE user_id = "+this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"cooldowns SET " - +" mining = "+(superBreakerDATS) - +", woodcutting = "+(treeFellerDATS) - +", unarmed = "+(berserkDATS) - +", herbalism = "+(greenTerraDATS) - +", excavation = "+(gigaDrillBreakerDATS) - +", swords = " +(serratedStrikesDATS) - +", axes = "+(skullSplitterDATS) - +" WHERE user_id = "+this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET " - +" taming = "+skills.get(SkillType.TAMING) - +", mining = "+skills.get(SkillType.MINING) - +", repair = "+skills.get(SkillType.REPAIR) - +", woodcutting = "+skills.get(SkillType.WOODCUTTING) - +", unarmed = "+skills.get(SkillType.UNARMED) - +", herbalism = "+skills.get(SkillType.HERBALISM) - +", excavation = "+skills.get(SkillType.EXCAVATION) - +", archery = " +skills.get(SkillType.ARCHERY) - +", swords = " +skills.get(SkillType.SWORDS) - +", axes = "+skills.get(SkillType.AXES) - +", acrobatics = "+skills.get(SkillType.ACROBATICS) - +", fishing = "+skills.get(SkillType.FISHING) - +" WHERE user_id = "+this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET " - +" taming = "+skillsXp.get(SkillType.TAMING) - +", mining = "+skillsXp.get(SkillType.MINING) - +", repair = "+skillsXp.get(SkillType.REPAIR) - +", woodcutting = "+skillsXp.get(SkillType.WOODCUTTING) - +", unarmed = "+skillsXp.get(SkillType.UNARMED) - +", herbalism = "+skillsXp.get(SkillType.HERBALISM) - +", excavation = "+skillsXp.get(SkillType.EXCAVATION) - +", archery = " +skillsXp.get(SkillType.ARCHERY) - +", swords = " +skillsXp.get(SkillType.SWORDS) - +", axes = "+skillsXp.get(SkillType.AXES) - +", acrobatics = "+skillsXp.get(SkillType.ACROBATICS) - +", fishing = "+skillsXp.get(SkillType.FISHING) - +" WHERE user_id = "+this.userid); - } else - { - // otherwise save to flatfile - try { - //Open the file - FileReader file = new FileReader(location); - BufferedReader in = new BufferedReader(file); - StringBuilder writer = new StringBuilder(); - String line = ""; - - //While not at the end of the file - while((line = in.readLine()) != null) - { - //Read the line in and copy it to the output it's not the player - //we want to edit - if(!line.split(":")[0].equalsIgnoreCase(playername)) - { - writer.append(line).append("\r\n"); - - //Otherwise write the new player information - } else { - writer.append(playername + ":"); - writer.append(skills.get(SkillType.MINING) + ":"); - writer.append(myspawn + ":"); - writer.append(party+":"); - writer.append(skillsXp.get(SkillType.MINING) + ":"); - writer.append(skills.get(SkillType.WOODCUTTING) + ":"); - writer.append(skillsXp.get(SkillType.WOODCUTTING) + ":"); - writer.append(skills.get(SkillType.REPAIR) + ":"); - writer.append(skills.get(SkillType.UNARMED) + ":"); - writer.append(skills.get(SkillType.HERBALISM) + ":"); - writer.append(skills.get(SkillType.EXCAVATION) + ":"); - writer.append(skills.get(SkillType.ARCHERY) + ":"); - writer.append(skills.get(SkillType.SWORDS) + ":"); - writer.append(skills.get(SkillType.AXES) + ":"); - writer.append(skills.get(SkillType.ACROBATICS) + ":"); - writer.append(skillsXp.get(SkillType.REPAIR) + ":"); - writer.append(skillsXp.get(SkillType.UNARMED) + ":"); - writer.append(skillsXp.get(SkillType.HERBALISM) + ":"); - writer.append(skillsXp.get(SkillType.EXCAVATION) + ":"); - writer.append(skillsXp.get(SkillType.ARCHERY) + ":"); - writer.append(skillsXp.get(SkillType.SWORDS) + ":"); - writer.append(skillsXp.get(SkillType.AXES) + ":"); - writer.append(skillsXp.get(SkillType.ACROBATICS) + ":"); - writer.append(myspawnworld+":"); - writer.append(skills.get(SkillType.TAMING) + ":"); - writer.append(skillsXp.get(SkillType.TAMING) + ":"); - //Need to store the DATS of abilities nao - //Berserk, Gigadrillbreaker, Tree Feller, Green Terra, Serrated Strikes, Skull Splitter, Super Breaker - writer.append(String.valueOf(berserkDATS)+":"); - writer.append(String.valueOf(gigaDrillBreakerDATS)+":"); - writer.append(String.valueOf(treeFellerDATS)+":"); - writer.append(String.valueOf(greenTerraDATS)+":"); - writer.append(String.valueOf(serratedStrikesDATS)+":"); - writer.append(String.valueOf(skullSplitterDATS)+":"); - writer.append(String.valueOf(superBreakerDATS)+":"); - writer.append(hud.toString()+":"); - writer.append(skills.get(SkillType.FISHING) + ":"); - writer.append(skillsXp.get(SkillType.FISHING) + ":"); - writer.append("\r\n"); - } - } - in.close(); - //Write the new file - FileWriter out = new FileWriter(location); - out.write(writer.toString()); - out.close(); - } catch (Exception e) { - log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e); - } - } - } - public void addPlayer() - { - try { - //Open the file to write the player - FileWriter file = new FileWriter(location, true); - BufferedWriter out = new BufferedWriter(file); - - //Add the player to the end - out.append(playername + ":"); - out.append(0 + ":"); //mining - out.append(myspawn+":"); - out.append(party+":"); - out.append(0+":"); //XP - out.append(0+":"); //woodcutting - out.append(0+":"); //woodCuttingXP - out.append(0+":"); //repair - out.append(0+":"); //unarmed - out.append(0+":"); //herbalism - out.append(0+":"); //excavation - out.append(0+":"); //archery - out.append(0+":"); //swords - out.append(0+":"); //axes - out.append(0+":"); //acrobatics - out.append(0+":"); //repairXP - out.append(0+":"); //unarmedXP - out.append(0+":"); //herbalismXP - out.append(0+":"); //excavationXP - out.append(0+":"); //archeryXP - out.append(0+":"); //swordsXP - out.append(0+":"); //axesXP - out.append(0+":"); //acrobaticsXP - out.append(myspawnworld+":"); - out.append(0+":"); //taming - out.append(0+":"); //tamingXP - out.append(0+":"); //DATS - out.append(0+":"); //DATS - out.append(0+":"); //DATS - out.append(0+":"); //DATS - out.append(0+":"); //DATS - out.append(0+":"); //DATS - out.append(0+":"); //DATS - out.append(LoadProperties.defaulthud.toString()+":");//HUD - out.append(0+":"); //Fishing - out.append(0+":"); //FishingXP - - //Add more in the same format as the line above - - out.newLine(); - out.close(); - } catch (Exception e) { - log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e); - } - } - public void togglePartyHUD() - { - partyhud = !partyhud; - } - public boolean getPartyHUD() - { - return partyhud; - } - public void toggleSpoutEnabled() - { - spoutcraft = !spoutcraft; - } - - public boolean isFilling() - { - return filling; - } - public void toggleFilling() - { - filling = !filling; - } - public HUDType getHUDType() - { - return hud; - } - public void setHUDType(HUDType type) - { - hud = type; - save(); - } - public boolean getXpBarLocked() - { - return xpbarlocked; - } - public void toggleXpBarLocked() - { - xpbarlocked = !xpbarlocked; - } - public int getXpBarInc() - { - return xpbarinc; - } - public void setXpBarInc(int newvalue) - { - xpbarinc = newvalue; - } - public void setSkillLock(SkillType newvalue) - { - skillLock = newvalue; - } - public SkillType getSkillLock() - { - return skillLock; - } - public void setLastGained(SkillType newvalue) - { - lastgained = newvalue; - } - public SkillType getLastGained() - { - return lastgained; - } - - public boolean getAdminChatMode() {return adminChatMode;} - public boolean getPartyChatMode() {return partyChatMode;} - - public boolean getGodMode() {return godMode;} - - public void togglePlacedAnvil() - { - placedAnvil = !placedAnvil; - } - public Boolean getPlacedAnvil() - { - return placedAnvil; - } - public void toggleAdminChat() - { - adminChatMode = !adminChatMode; - } - - public void toggleGodMode() - { - godMode = !godMode; - } - - public void togglePartyChat() - { - partyChatMode = !partyChatMode; - } - - public void setMana(int newvalue) - { - mana = newvalue; - } - - public int getCurrentMana() - { - return mana; - } - public void setDyeChanged(Boolean bool) - { - dyeChanged = bool; - } - public boolean getDyeChanged() - { - return dyeChanged; - } - public void setBlueDyeCycle(int newvalue) - { - blueDyeCycle = newvalue; - } - public int getBlueDyeCycle() - { - return blueDyeCycle; - } - public void setBlueDyeCycleSel(int newvalue) - { - blueDyeCycleSel = newvalue; - } - public int getBlueDyeCycleSel() - { - return blueDyeCycleSel; - } - public void setGreenDyeCycle(int newvalue) - { - greenDyeCycle = newvalue; - } - public int getGreenDyeCycle() - { - return greenDyeCycle; - } - public void setGreenDyeCycleSel(int newvalue) - { - greenDyeCycleSel = newvalue; - } - public int getGreenDyeCycleSel() - { - return greenDyeCycleSel; - } - - public boolean isPlayer(String player) - { - return player.equals(playername); - } - public boolean getPartyChatOnlyToggle(){return partyChatOnly;} - public void togglePartyChatOnly(){partyChatOnly = !partyChatOnly;} - public boolean getAbilityUse(){ - return abilityuse; - } - public void toggleAbilityUse() - { - abilityuse = !abilityuse; - } - public long getMySpawnATS(){ - return mySpawnATS; - } - public void setMySpawnATS(long newvalue) - { - mySpawnATS = (int) (newvalue/1000); - } - public void decreaseBleedTicks() - { - bleedticks--; - } - public Integer getBleedTicks(){ - return bleedticks; - } - public void setBleedTicks(Integer newvalue){ - bleedticks = newvalue; - } - public void addBleedTicks(Integer newvalue){ - bleedticks+=newvalue; - } - /* - * EXPLOIT PREVENTION - */ - public long getRespawnATS() {return respawnATS;} - public void setRespawnATS(long newvalue) {respawnATS = (int) (newvalue/1000);} - - /* - * HOE PREPARATION - */ - public boolean getHoePreparationMode(){ - return hoePreparationMode; - } - public void setHoePreparationMode(Boolean bool){ - hoePreparationMode = bool; - } - public long getHoePreparationATS(){ - return hoePreparationATS; - } - public void setHoePreparationATS(long newvalue){ - hoePreparationATS = (int) (newvalue/1000); - } - - /* - * SWORDS PREPARATION - */ - public boolean getSwordsPreparationMode(){ - return swordsPreparationMode; - } - public void setSwordsPreparationMode(Boolean bool){ - swordsPreparationMode = bool; - } - public long getSwordsPreparationATS(){ - return swordsPreparationATS; - } - public void setSwordsPreparationATS(long newvalue){ - swordsPreparationATS = (int) (newvalue/1000); - } - /* - * SHOVEL PREPARATION - */ - public boolean getShovelPreparationMode(){ - return shovelPreparationMode; - } - public void setShovelPreparationMode(Boolean bool){ - shovelPreparationMode = bool; - } - public long getShovelPreparationATS(){ - return shovelPreparationATS; - } - public void setShovelPreparationATS(long newvalue){ - shovelPreparationATS = (int) (newvalue/1000); - } - /* - * FISTS PREPARATION - */ - public boolean getFistsPreparationMode(){ - return fistsPreparationMode; - } - public void setFistsPreparationMode(Boolean bool){ - fistsPreparationMode = bool; - } - public long getFistsPreparationATS(){ - return fistsPreparationATS; - } - public void setFistsPreparationATS(long newvalue){ - fistsPreparationATS = (int) (newvalue/1000); - } - /* - * AXE PREPARATION - */ - public boolean getAxePreparationMode(){ - return axePreparationMode; - } - public void setAxePreparationMode(Boolean bool){ - axePreparationMode = bool; - } - public long getAxePreparationATS(){ - return axePreparationATS; - } - public void setAxePreparationATS(long newvalue){ - axePreparationATS = (int) (newvalue/1000); - } - /* - * PICKAXE PREPARATION - */ - public boolean getPickaxePreparationMode(){ - return pickaxePreparationMode; - } - public void setPickaxePreparationMode(Boolean bool){ - pickaxePreparationMode = bool; - } - public long getPickaxePreparationATS(){ - return pickaxePreparationATS; - } - public void setPickaxePreparationATS(long newvalue){ - pickaxePreparationATS = (int) (newvalue/1000); - } - /* - * GREEN TERRA MODE - */ - public boolean getGreenTerraInformed() {return greenTerraInformed;} - public void setGreenTerraInformed(Boolean bool){ - greenTerraInformed = bool; - } - public boolean getGreenTerraMode(){ - return greenTerraMode; - } - public void setGreenTerraMode(Boolean bool){ - greenTerraMode = bool; - } - public long getGreenTerraActivatedTimeStamp() {return greenTerraATS;} - public void setGreenTerraActivatedTimeStamp(Long newvalue){ - greenTerraATS = (int) (newvalue/1000); - } - public long getGreenTerraDeactivatedTimeStamp() {return greenTerraDATS;} - public void setGreenTerraDeactivatedTimeStamp(Long newvalue){ - greenTerraDATS = (int) (newvalue/1000); - save(); - } - /* - * BERSERK MODE - */ - public boolean getBerserkInformed() {return berserkInformed;} - public void setBerserkInformed(Boolean bool){ - berserkInformed = bool; - } - public boolean getBerserkMode(){ - return berserkMode; - } - public void setBerserkMode(Boolean bool){ - berserkMode = bool; - } - public long getBerserkActivatedTimeStamp() {return berserkATS;} - public void setBerserkActivatedTimeStamp(Long newvalue){ - berserkATS = (int) (newvalue/1000); - } - public long getBerserkDeactivatedTimeStamp() {return berserkDATS;} - public void setBerserkDeactivatedTimeStamp(Long newvalue){ - berserkDATS = (int) (newvalue/1000); - save(); - } - /* - * SKULL SPLITTER - */ - public boolean getSkullSplitterInformed() {return skullSplitterInformed;} - public void setSkullSplitterInformed(Boolean bool){ - skullSplitterInformed = bool; - } - public boolean getSkullSplitterMode(){ - return skullSplitterMode; - } - public void setSkullSplitterMode(Boolean bool){ - skullSplitterMode = bool; - } - public long getSkullSplitterActivatedTimeStamp() {return skullSplitterATS;} - public void setSkullSplitterActivatedTimeStamp(Long newvalue){ - skullSplitterATS = (int) (newvalue/1000); - } - public long getSkullSplitterDeactivatedTimeStamp() {return skullSplitterDATS;} - public void setSkullSplitterDeactivatedTimeStamp(Long newvalue){ - skullSplitterDATS = (int) (newvalue/1000); - save(); - } - /* - * SERRATED STRIKES - */ - public boolean getSerratedStrikesInformed() {return serratedStrikesInformed;} - public void setSerratedStrikesInformed(Boolean bool){ - serratedStrikesInformed = bool; - } - public boolean getSerratedStrikesMode(){ - return serratedStrikesMode; - } - public void setSerratedStrikesMode(Boolean bool){ - serratedStrikesMode = bool; - } - public long getSerratedStrikesActivatedTimeStamp() {return serratedStrikesATS;} - public void setSerratedStrikesActivatedTimeStamp(Long newvalue){ - serratedStrikesATS = (int) (newvalue/1000); - } - public long getSerratedStrikesDeactivatedTimeStamp() {return serratedStrikesDATS;} - public void setSerratedStrikesDeactivatedTimeStamp(Long newvalue){ - serratedStrikesDATS = (int) (newvalue/1000); - save(); - } - /* - * GIGA DRILL BREAKER - */ - public boolean getGigaDrillBreakerInformed() {return gigaDrillBreakerInformed;} - public void setGigaDrillBreakerInformed(Boolean bool){ - gigaDrillBreakerInformed = bool; - } - public boolean getGigaDrillBreakerMode(){ - return gigaDrillBreakerMode; - } - public void setGigaDrillBreakerMode(Boolean bool){ - gigaDrillBreakerMode = bool; - } - public long getGigaDrillBreakerActivatedTimeStamp() {return gigaDrillBreakerATS;} - public void setGigaDrillBreakerActivatedTimeStamp(Long newvalue){ - gigaDrillBreakerATS = (int) (newvalue/1000); - } - public long getGigaDrillBreakerDeactivatedTimeStamp() {return gigaDrillBreakerDATS;} - public void setGigaDrillBreakerDeactivatedTimeStamp(Long newvalue){ - gigaDrillBreakerDATS = (int) (newvalue/1000); - save(); - } - /* - * TREE FELLER STUFF - */ - public boolean getTreeFellerInformed() {return treeFellerInformed;} - public void setTreeFellerInformed(Boolean bool){ - treeFellerInformed = bool; - } - public boolean getTreeFellerMode(){ - return treeFellerMode; - } - public void setTreeFellerMode(Boolean bool){ - treeFellerMode = bool; - } - public long getTreeFellerActivatedTimeStamp() {return treeFellerATS;} - public void setTreeFellerActivatedTimeStamp(Long newvalue){ - treeFellerATS = (int) (newvalue/1000); - } - public long getTreeFellerDeactivatedTimeStamp() {return treeFellerDATS;} - public void setTreeFellerDeactivatedTimeStamp(Long newvalue){ - treeFellerDATS = (int) (newvalue/1000); - save(); - } - /* - * MINING - */ - public boolean getSuperBreakerInformed() {return superBreakerInformed;} - public void setSuperBreakerInformed(Boolean bool){ - superBreakerInformed = bool; - } - public boolean getSuperBreakerMode(){ - return superBreakerMode; - } - public void setSuperBreakerMode(Boolean bool){ - superBreakerMode = bool; - } - public long getSuperBreakerActivatedTimeStamp() {return superBreakerATS;} - public void setSuperBreakerActivatedTimeStamp(Long newvalue){ - superBreakerATS = (int) (newvalue/1000); - } - public long getSuperBreakerDeactivatedTimeStamp() {return superBreakerDATS;} - public void setSuperBreakerDeactivatedTimeStamp(Long newvalue){ - superBreakerDATS = (int) (newvalue/1000); - save(); - } - public long getRecentlyHurt(){ - return recentlyHurt; - } - public void setRecentlyHurt(long newvalue){ - recentlyHurt = (int) (newvalue/1000); - } - public void skillUp(SkillType skillType, int newvalue) - { - skills.put(skillType, skills.get(skillType)+newvalue); - save(); - } - public Integer getSkillLevel(SkillType skillType) - { - return skills.get(skillType); - } - public Integer getSkillXpLevel(SkillType skillType) - { - return skillsXp.get(skillType); - } - public void resetSkillXp(SkillType skillType) - { - skills.put(skillType, 0); - } - - /** - * Adds XP to the player, this ignores skill modifiers - * @param skillType The skill to add XP to - * @param newvalue The amount of XP to add - */ - public void addXPOverride(SkillType skillType, int newvalue) - { - if(skillType == SkillType.ALL) - { - for(SkillType x : SkillType.values()) - { - if(x == SkillType.ALL) - continue; - skillsXp.put(x, skillsXp.get(x)+newvalue); - } - } else { - int xp = newvalue; - - xp=xp*LoadProperties.xpGainMultiplier; - skillsXp.put(skillType, skillsXp.get(skillType)+xp); - lastgained = skillType; - } - } - /** - * Adds XP to the player, this is affected by skill modifiers - * @param skillType The skill to add XP to - * @param newvalue The amount of XP to add - */ - public void addXP(SkillType skillType, int newvalue, Player thisplayer) - { - if(System.currentTimeMillis() < ((xpGainATS*1000)+250) || thisplayer.getGameMode() == GameMode.CREATIVE) - return; - - //Setup a timestamp of when xp was given - xpGainATS = (int) (System.currentTimeMillis()/1000); - - double bonusModifier = 0; - String leaderName = ""; - - if(inParty()) - { - for(Player x : Party.getInstance().getPartyMembers(thisplayer)) - { - if(x.isOnline() && !x.getName().equals(thisplayer.getName()) && Party.getInstance().isPartyLeader(x.getName(), this.getParty())) - { - leaderName = x.getName(); - if(m.getDistance(thisplayer.getLocation(), x.getLocation()) < 25) - { - PlayerProfile PartyLeader = Users.getProfile(x); - if(PartyLeader.getSkillLevel(skillType) >= this.getSkillLevel(skillType)) - { - int leaderLevel = PartyLeader.getSkillLevel(skillType); - int difference = leaderLevel - this.getSkillLevel(skillType); - bonusModifier = (difference*0.75D)/100D; - } - } - } - } - } - if(skillType == SkillType.ALL) - { - for(SkillType x : SkillType.values()) - { - if(x == SkillType.ALL) - continue; - skillsXp.put(x, skillsXp.get(x)+newvalue); - } - } else { - int xp = newvalue; - - switch(skillType) - { - case TAMING: - xp=(int) (xp/LoadProperties.tamingxpmodifier); - break; - case MINING: - xp=(int) (xp/LoadProperties.miningxpmodifier); - break; - case WOODCUTTING: - xp=(int) (xp/LoadProperties.woodcuttingxpmodifier); - break; - case REPAIR: - xp=(int) (xp/LoadProperties.repairxpmodifier); - break; - case HERBALISM: - xp=(int) (xp/LoadProperties.herbalismxpmodifier); - break; - case ACROBATICS: - xp=(int) (xp/LoadProperties.acrobaticsxpmodifier); - break; - case SWORDS: - xp=(int) (xp/LoadProperties.swordsxpmodifier); - break; - case ARCHERY: - xp=(int) (xp/LoadProperties.archeryxpmodifier); - break; - case UNARMED: - xp=(int) (xp/LoadProperties.unarmedxpmodifier); - break; - case EXCAVATION: - xp=(int) (xp/LoadProperties.excavationxpmodifier); - break; - case AXES: - xp=(int) (xp/LoadProperties.axesxpmodifier); - break; - } - xp=xp*LoadProperties.xpGainMultiplier; - - if(bonusModifier > 0) - { - if(bonusModifier >= 2) - bonusModifier = 2; - - double trueBonus = bonusModifier * xp; - double oldxp = xp; - xp+=trueBonus; - double percent = (trueBonus/oldxp)*100; - thisplayer.sendMessage(ChatColor.GREEN+"XP: "+oldxp+" Bonus XP: "+trueBonus+" Total: "+xp+ChatColor.GOLD+" [Master: "+leaderName+" " +" +"+(int)percent+"%]"); - } - skillsXp.put(skillType, skillsXp.get(skillType)+xp); - lastgained = skillType; - } - //save(); - } - - public void removeXP(SkillType skillType, int newvalue) - { - if(skillType == SkillType.ALL) - { - skillsXp.put(SkillType.TAMING, skillsXp.get(SkillType.TAMING)-newvalue); - skillsXp.put(SkillType.MINING, skillsXp.get(SkillType.MINING)-newvalue); - skillsXp.put(SkillType.WOODCUTTING, skillsXp.get(SkillType.WOODCUTTING)-newvalue); - skillsXp.put(SkillType.REPAIR, skillsXp.get(SkillType.REPAIR)-newvalue); - skillsXp.put(SkillType.HERBALISM, skillsXp.get(SkillType.HERBALISM)-newvalue); - skillsXp.put(SkillType.ACROBATICS, skillsXp.get(SkillType.ACROBATICS)-newvalue); - skillsXp.put(SkillType.SWORDS, skillsXp.get(SkillType.SWORDS)-newvalue); - skillsXp.put(SkillType.ARCHERY, skillsXp.get(SkillType.ARCHERY)-newvalue); - skillsXp.put(SkillType.UNARMED, skillsXp.get(SkillType.UNARMED)-newvalue); - skillsXp.put(SkillType.EXCAVATION, skillsXp.get(SkillType.EXCAVATION)-newvalue); - skillsXp.put(SkillType.AXES, skillsXp.get(SkillType.AXES)-newvalue); - skillsXp.put(SkillType.FISHING, skillsXp.get(SkillType.FISHING)-newvalue); - } else { - skillsXp.put(skillType, skillsXp.get(skillType)-newvalue); - } - //save(); - } - public void acceptInvite() - { - party = invite; - invite = ""; - } - public void modifyInvite(String invitename) - { - invite = invitename; - } - public String getInvite() { return invite; } - - public void modifyskill(SkillType skillType, int newvalue) - { - if(skillType == SkillType.ALL) - { - skills.put(SkillType.TAMING, newvalue); - skills.put(SkillType.MINING, newvalue); - skills.put(SkillType.WOODCUTTING, newvalue); - skills.put(SkillType.REPAIR, newvalue); - skills.put(SkillType.HERBALISM, newvalue); - skills.put(SkillType.ACROBATICS, newvalue); - skills.put(SkillType.SWORDS, newvalue); - skills.put(SkillType.ARCHERY, newvalue); - skills.put(SkillType.UNARMED, newvalue); - skills.put(SkillType.EXCAVATION, newvalue); - skills.put(SkillType.AXES, newvalue); - skills.put(SkillType.FISHING, newvalue); - - skillsXp.put(SkillType.TAMING, 0); - skillsXp.put(SkillType.MINING, 0); - skillsXp.put(SkillType.WOODCUTTING, 0); - skillsXp.put(SkillType.REPAIR, 0); - skillsXp.put(SkillType.HERBALISM, 0); - skillsXp.put(SkillType.ACROBATICS, 0); - skillsXp.put(SkillType.SWORDS, 0); - skillsXp.put(SkillType.ARCHERY, 0); - skillsXp.put(SkillType.UNARMED, 0); - skillsXp.put(SkillType.EXCAVATION, 0); - skillsXp.put(SkillType.AXES, 0); - skillsXp.put(SkillType.FISHING, 0); - } else { - skills.put(skillType, newvalue); - skillsXp.put(skillType, newvalue); - } - save(); - } - public Integer getXpToLevel(SkillType skillType) - { - return (int) ((1020+(skills.get(skillType) * 20))); - } - - //Store the player's party - public void setParty(String newParty) - { - party = newParty; - save(); - } - //Retrieve the player's party - public String getParty() {return party;} - //Remove party - public void removeParty() { - party = null; - save(); - } - //Retrieve whether or not the player is in a party - 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")){ - return true; - } else { - return false; - } - } - public String getMySpawnWorld() - { - if(myspawnworld != null && !myspawnworld.equals("") && !myspawnworld.equals("null")){ - return myspawnworld; - } else { - return Bukkit.getServer().getWorlds().get(0).toString(); - } - } - //Save a users spawn location - public void setMySpawn(double x, double y, double z, String myspawnworldlocation){ - myspawn = x+","+y+","+z; - myspawnworld = myspawnworldlocation; - save(); - } - public String getX(){ - if(myspawn != null) - { - String[] split = myspawn.split(","); - return split[0]; - } - else - return null; - } - public String getY(){ - if(myspawn != null) - { - String[] split = myspawn.split(","); - return split[1]; - } - else - return null; - } - public String getZ(){ - if(myspawn != null) - { - String[] split = myspawn.split(","); - return split[2]; - } - else - return null; - } - public boolean isDead(){ - return dead; - } - public Location getMySpawn(Player player) - { - Location loc = null; - if(myspawn != null) - { - if(m.isDouble(getX()) && m.isDouble(getY()) && m.isDouble(getZ())) - loc = new Location(player.getWorld(),(Double.parseDouble(getX())), Double.parseDouble(getY()), Double.parseDouble(getZ())); - else - return null; - } else - return null; - - loc.setYaw(0); - loc.setPitch(0); - if(loc.getX() != 0 && loc.getY() != 0 && loc.getZ() != 0 && loc.getWorld() != null) - { - if(Bukkit.getServer().getWorld(this.getMySpawnWorld()) != null) - loc.setWorld(Bukkit.getServer().getWorld(this.getMySpawnWorld())); - else - loc.setWorld(Bukkit.getServer().getWorlds().get(0)); - return loc; - } else { - return null; - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileReader; +import java.io.FileWriter; +import java.util.HashMap; +import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; + + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.party.Party; +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcMMO; + + + +public class PlayerProfile +{ + protected final Logger log = Logger.getLogger("Minecraft"); + + //HUD + private HUDType hud; + + //MISC + private String party, myspawn, myspawnworld, invite; + + //TOGGLES + private boolean partyhud = true, spoutcraft = false, filling = false, xpbarlocked = false, placedAnvil = false, partyChatMode = false, adminChatMode = false, godMode = false, greenTerraMode, partyChatOnly = false, greenTerraInformed = true, berserkInformed = true, skullSplitterInformed = true, gigaDrillBreakerInformed = true, + superBreakerInformed = true, serratedStrikesInformed = true, treeFellerInformed = true, dead, abilityuse = true, treeFellerMode, superBreakerMode, gigaDrillBreakerMode, + serratedStrikesMode, hoePreparationMode = false, shovelPreparationMode = false, swordsPreparationMode = false, fistsPreparationMode = false, pickaxePreparationMode = false, axePreparationMode = false, skullSplitterMode, berserkMode; + + //TIMESTAMPS + //ATS = (Time of) Activation Time Stamp + //DATS = (Time of) Deactivation Time Stamp + private int xpGainATS = 0, recentlyHurt = 0, berserkATS = 0, berserkDATS = 0, gigaDrillBreakerATS = 0, gigaDrillBreakerDATS = 0, + respawnATS = 0, mySpawnATS = 0, greenTerraATS = 0, greenTerraDATS = 0, superBreakerATS = 0, superBreakerDATS = 0, serratedStrikesATS = 0, serratedStrikesDATS = 0, treeFellerATS = 0, treeFellerDATS = 0, + skullSplitterATS = 0, skullSplitterDATS = 0, hoePreparationATS = 0, axePreparationATS = 0, pickaxePreparationATS = 0, fistsPreparationATS = 0, shovelPreparationATS = 0, swordsPreparationATS = 0; + + private SkillType lastgained = null, skillLock = null; + + //MySQL STUFF + private int xpbarinc=0, lastlogin=0, userid = 0, bleedticks = 0; + + //MAGIC STUFF + private int mana = 0; + private int greenDyeCycleSel = 0, greenDyeCycle = 0, blueDyeCycle = 0, blueDyeCycleSel = 0; + public boolean dyeChanged = false; + + private String playername; + + //Time to HashMap this shiz + HashMap skills = new HashMap(); //Skills and XP + HashMap skillsXp = new HashMap(); //Skills and XP + + String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; + + public PlayerProfile(Player player) + { + hud = LoadProperties.defaulthud; + //Setup the HashMap for the skills + for(SkillType skillType : SkillType.values()) + { + if(skillType != SkillType.ALL) + { + skills.put(skillType, 0); + skillsXp.put(skillType, 0); + } + } + + playername = player.getName(); + if (LoadProperties.useMySQL) + { + if(!loadMySQL(player)) { + addMySQLPlayer(player); + loadMySQL(player);//This is probably not needed anymore, could just delete + } + } else { + if(!load()) { addPlayer(); } + } + lastlogin = ((Long) (System.currentTimeMillis()/1000)).intValue(); + } + public int getLastLogin() + { + return lastlogin; + } + public int getMySQLuserId() + { + return userid; + } + + public boolean loadMySQL(Player p) + { + Integer id = 0; + id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + p.getName() + "'"); + if(id == 0) + return false; + this.userid = id; + if (id > 0) { + HashMap> huds = mcMMO.database.Read("SELECT hudtype FROM "+LoadProperties.MySQLtablePrefix+"huds WHERE user_id = " + id); + if(huds.get(1) == null) + { + mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"huds (user_id) VALUES ("+id+")"); + } else { + if(huds.get(1).get(0) != null) + { + for(HUDType x : HUDType.values()) + { + if(x.toString().equals(huds.get(1).get(0))) + { + hud = x; + } + } + } else { + hud = LoadProperties.defaulthud; + } + } + HashMap> users = mcMMO.database.Read("SELECT lastlogin, party FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = " + id); + //lastlogin = Integer.parseInt(users.get(1).get(0)); + party = users.get(1).get(1); + HashMap> spawn = mcMMO.database.Read("SELECT world, x, y, z FROM "+LoadProperties.MySQLtablePrefix+"spawn WHERE user_id = " + id); + myspawnworld = spawn.get(1).get(0); + myspawn = spawn.get(1).get(1) + "," + spawn.get(1).get(2) + "," + spawn.get(1).get(3); + HashMap> cooldowns = mcMMO.database.Read("SELECT mining, woodcutting, unarmed, herbalism, excavation, swords, axes FROM "+LoadProperties.MySQLtablePrefix+"cooldowns WHERE user_id = " + id); + /* + * I'm still learning MySQL, this is a fix for adding a new table + * its not pretty but it works + */ + if(cooldowns.get(1) == null) + { + mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")"); + } + else + { + superBreakerDATS = Integer.valueOf(cooldowns.get(1).get(0)); + treeFellerDATS = Integer.valueOf(cooldowns.get(1).get(1)); + berserkDATS = Integer.valueOf(cooldowns.get(1).get(2)); + greenTerraDATS = Integer.valueOf(cooldowns.get(1).get(3)); + gigaDrillBreakerDATS = Integer.valueOf(cooldowns.get(1).get(4)); + serratedStrikesDATS = Integer.valueOf(cooldowns.get(1).get(5)); + skullSplitterDATS = Integer.valueOf(cooldowns.get(1).get(6)); + } + HashMap> stats = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"skills WHERE user_id = " + id); + skills.put(SkillType.TAMING, Integer.valueOf(stats.get(1).get(0))); + skills.put(SkillType.MINING, Integer.valueOf(stats.get(1).get(1))); + skills.put(SkillType.REPAIR, Integer.valueOf(stats.get(1).get(2))); + skills.put(SkillType.WOODCUTTING, Integer.valueOf(stats.get(1).get(3))); + skills.put(SkillType.UNARMED, Integer.valueOf(stats.get(1).get(4))); + skills.put(SkillType.HERBALISM, Integer.valueOf(stats.get(1).get(5))); + skills.put(SkillType.EXCAVATION, Integer.valueOf(stats.get(1).get(6))); + skills.put(SkillType.ARCHERY, Integer.valueOf(stats.get(1).get(7))); + skills.put(SkillType.SWORDS, Integer.valueOf(stats.get(1).get(8))); + skills.put(SkillType.AXES, Integer.valueOf(stats.get(1).get(9))); + skills.put(SkillType.ACROBATICS, Integer.valueOf(stats.get(1).get(10))); + skills.put(SkillType.FISHING, Integer.valueOf(stats.get(1).get(11))); + HashMap> experience = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"experience WHERE user_id = " + id); + skillsXp.put(SkillType.TAMING, Integer.valueOf(experience.get(1).get(0))); + skillsXp.put(SkillType.MINING, Integer.valueOf(experience.get(1).get(1))); + skillsXp.put(SkillType.REPAIR, Integer.valueOf(experience.get(1).get(2))); + skillsXp.put(SkillType.WOODCUTTING, Integer.valueOf(experience.get(1).get(3))); + skillsXp.put(SkillType.UNARMED, Integer.valueOf(experience.get(1).get(4))); + skillsXp.put(SkillType.HERBALISM, Integer.valueOf(experience.get(1).get(5))); + skillsXp.put(SkillType.EXCAVATION, Integer.valueOf(experience.get(1).get(6))); + skillsXp.put(SkillType.ARCHERY, Integer.valueOf(experience.get(1).get(7))); + skillsXp.put(SkillType.SWORDS, Integer.valueOf(experience.get(1).get(8))); + skillsXp.put(SkillType.AXES, Integer.valueOf(experience.get(1).get(9))); + skillsXp.put(SkillType.ACROBATICS, Integer.valueOf(experience.get(1).get(10))); + skillsXp.put(SkillType.FISHING, Integer.valueOf(experience.get(1).get(11))); + return true; + } + else { + return false; + } + } + public void addMySQLPlayer(Player p) { + Integer id = 0; + mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"users (user, lastlogin) VALUES ('" + p.getName() + "'," + System.currentTimeMillis() / 1000 +")"); + id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + p.getName() + "'"); + mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")"); + 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+")"); + this.userid = id; + } + + public boolean load() + { + try { + //Open the user file + FileReader file = new FileReader(location); + BufferedReader in = new BufferedReader(file); + String line = ""; + while((line = in.readLine()) != null) + { + //Find if the line contains the player we want. + String[] character = line.split(":"); + + if(!character[0].equals(playername)){continue;} + + //Get Mining + if(character.length > 1 && m.isInt(character[1])) + skills.put(SkillType.MINING, Integer.valueOf(character[1])); + //Myspawn + if(character.length > 2) + myspawn = character[2]; + //Party + if(character.length > 3) + party = character[3]; + //Mining XP + if(character.length > 4 && m.isInt(character[4])) + skillsXp.put(SkillType.MINING, Integer.valueOf(character[4])); + if(character.length > 5 && m.isInt(character[5])) + skills.put(SkillType.WOODCUTTING, Integer.valueOf(character[5])); + if(character.length > 6 && m.isInt(character[6])) + skillsXp.put(SkillType.WOODCUTTING, Integer.valueOf(character[6])); + if(character.length > 7 && m.isInt(character[7])) + skills.put(SkillType.REPAIR, Integer.valueOf(character[7])); + if(character.length > 8 && m.isInt(character[8])) + skills.put(SkillType.UNARMED, Integer.valueOf(character[8])); + if(character.length > 9 && m.isInt(character[9])) + skills.put(SkillType.HERBALISM, Integer.valueOf(character[9])); + if(character.length > 10 && m.isInt(character[10])) + skills.put(SkillType.EXCAVATION, Integer.valueOf(character[10])); + if(character.length > 11 && m.isInt(character[11])) + skills.put(SkillType.ARCHERY, Integer.valueOf(character[11])); + if(character.length > 12 && m.isInt(character[12])) + skills.put(SkillType.SWORDS, Integer.valueOf(character[12])); + if(character.length > 13 && m.isInt(character[13])) + skills.put(SkillType.AXES, Integer.valueOf(character[13])); + if(character.length > 14 && m.isInt(character[14])) + skills.put(SkillType.ACROBATICS, Integer.valueOf(character[14])); + if(character.length > 15 && m.isInt(character[15])) + skillsXp.put(SkillType.REPAIR, Integer.valueOf(character[15])); + if(character.length > 16 && m.isInt(character[16])) + skillsXp.put(SkillType.UNARMED, Integer.valueOf(character[16])); + if(character.length > 17 && m.isInt(character[17])) + skillsXp.put(SkillType.HERBALISM, Integer.valueOf(character[17])); + if(character.length > 18 && m.isInt(character[18])) + skillsXp.put(SkillType.EXCAVATION, Integer.valueOf(character[18])); + if(character.length > 19 && m.isInt(character[19])) + skillsXp.put(SkillType.ARCHERY, Integer.valueOf(character[19])); + if(character.length > 20 && m.isInt(character[20])) + skillsXp.put(SkillType.SWORDS, Integer.valueOf(character[20])); + if(character.length > 21 && m.isInt(character[21])) + skillsXp.put(SkillType.AXES, Integer.valueOf(character[21])); + if(character.length > 22 && m.isInt(character[22])) + skillsXp.put(SkillType.ACROBATICS, Integer.valueOf(character[22])); + if(character.length > 23 && m.isInt(character[23])) + myspawnworld = character[23]; + if(character.length > 24 && m.isInt(character[24])) + skills.put(SkillType.TAMING, Integer.valueOf(character[24])); + if(character.length > 25 && m.isInt(character[25])) + skillsXp.put(SkillType.TAMING, Integer.valueOf(character[25])); + if(character.length > 26) + berserkDATS = Integer.valueOf(character[26]); + if(character.length > 27) + gigaDrillBreakerDATS = Integer.valueOf(character[27]); + if(character.length > 28) + treeFellerDATS = Integer.valueOf(character[28]); + if(character.length > 29) + greenTerraDATS = Integer.valueOf(character[29]); + if(character.length > 30) + serratedStrikesDATS = Integer.valueOf(character[30]); + if(character.length > 31) + skullSplitterDATS = Integer.valueOf(character[31]); + if(character.length > 32) + superBreakerDATS = Integer.valueOf(character[32]); + if(character.length > 33) + { + for(HUDType x : HUDType.values()) + { + if(x.toString().equalsIgnoreCase(character[33])) + { + hud = x; + } + } + } + if(character.length > 34) + skills.put(SkillType.FISHING, Integer.valueOf(character[34])); + if(character.length > 35) + skillsXp.put(SkillType.FISHING, Integer.valueOf(character[35])); + in.close(); + return true; + } + in.close(); + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while reading " + + location + " (Are you sure you formatted it correctly?)", e); + } + return false; + } + + public void save() + { + Long timestamp = System.currentTimeMillis()/1000; //Convert to seconds + // if we are using mysql save to database + if (LoadProperties.useMySQL) + { + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"huds SET " + +" hudtype = '"+hud.toString()+"' WHERE user_id = "+this.userid); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + timestamp.intValue() + " WHERE id = " + this.userid); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+this.party+"' WHERE id = " +this.userid); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + this.myspawnworld + "', x = " +getX()+", y = "+getY()+", z = "+getZ()+" WHERE user_id = "+this.userid); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"cooldowns SET " + +" mining = "+(superBreakerDATS) + +", woodcutting = "+(treeFellerDATS) + +", unarmed = "+(berserkDATS) + +", herbalism = "+(greenTerraDATS) + +", excavation = "+(gigaDrillBreakerDATS) + +", swords = " +(serratedStrikesDATS) + +", axes = "+(skullSplitterDATS) + +" WHERE user_id = "+this.userid); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET " + +" taming = "+skills.get(SkillType.TAMING) + +", mining = "+skills.get(SkillType.MINING) + +", repair = "+skills.get(SkillType.REPAIR) + +", woodcutting = "+skills.get(SkillType.WOODCUTTING) + +", unarmed = "+skills.get(SkillType.UNARMED) + +", herbalism = "+skills.get(SkillType.HERBALISM) + +", excavation = "+skills.get(SkillType.EXCAVATION) + +", archery = " +skills.get(SkillType.ARCHERY) + +", swords = " +skills.get(SkillType.SWORDS) + +", axes = "+skills.get(SkillType.AXES) + +", acrobatics = "+skills.get(SkillType.ACROBATICS) + +", fishing = "+skills.get(SkillType.FISHING) + +" WHERE user_id = "+this.userid); + mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET " + +" taming = "+skillsXp.get(SkillType.TAMING) + +", mining = "+skillsXp.get(SkillType.MINING) + +", repair = "+skillsXp.get(SkillType.REPAIR) + +", woodcutting = "+skillsXp.get(SkillType.WOODCUTTING) + +", unarmed = "+skillsXp.get(SkillType.UNARMED) + +", herbalism = "+skillsXp.get(SkillType.HERBALISM) + +", excavation = "+skillsXp.get(SkillType.EXCAVATION) + +", archery = " +skillsXp.get(SkillType.ARCHERY) + +", swords = " +skillsXp.get(SkillType.SWORDS) + +", axes = "+skillsXp.get(SkillType.AXES) + +", acrobatics = "+skillsXp.get(SkillType.ACROBATICS) + +", fishing = "+skillsXp.get(SkillType.FISHING) + +" WHERE user_id = "+this.userid); + } else + { + // otherwise save to flatfile + try { + //Open the file + FileReader file = new FileReader(location); + BufferedReader in = new BufferedReader(file); + StringBuilder writer = new StringBuilder(); + String line = ""; + + //While not at the end of the file + while((line = in.readLine()) != null) + { + //Read the line in and copy it to the output it's not the player + //we want to edit + if(!line.split(":")[0].equalsIgnoreCase(playername)) + { + writer.append(line).append("\r\n"); + + //Otherwise write the new player information + } else { + writer.append(playername + ":"); + writer.append(skills.get(SkillType.MINING) + ":"); + writer.append(myspawn + ":"); + writer.append(party+":"); + writer.append(skillsXp.get(SkillType.MINING) + ":"); + writer.append(skills.get(SkillType.WOODCUTTING) + ":"); + writer.append(skillsXp.get(SkillType.WOODCUTTING) + ":"); + writer.append(skills.get(SkillType.REPAIR) + ":"); + writer.append(skills.get(SkillType.UNARMED) + ":"); + writer.append(skills.get(SkillType.HERBALISM) + ":"); + writer.append(skills.get(SkillType.EXCAVATION) + ":"); + writer.append(skills.get(SkillType.ARCHERY) + ":"); + writer.append(skills.get(SkillType.SWORDS) + ":"); + writer.append(skills.get(SkillType.AXES) + ":"); + writer.append(skills.get(SkillType.ACROBATICS) + ":"); + writer.append(skillsXp.get(SkillType.REPAIR) + ":"); + writer.append(skillsXp.get(SkillType.UNARMED) + ":"); + writer.append(skillsXp.get(SkillType.HERBALISM) + ":"); + writer.append(skillsXp.get(SkillType.EXCAVATION) + ":"); + writer.append(skillsXp.get(SkillType.ARCHERY) + ":"); + writer.append(skillsXp.get(SkillType.SWORDS) + ":"); + writer.append(skillsXp.get(SkillType.AXES) + ":"); + writer.append(skillsXp.get(SkillType.ACROBATICS) + ":"); + writer.append(myspawnworld+":"); + writer.append(skills.get(SkillType.TAMING) + ":"); + writer.append(skillsXp.get(SkillType.TAMING) + ":"); + //Need to store the DATS of abilities nao + //Berserk, Gigadrillbreaker, Tree Feller, Green Terra, Serrated Strikes, Skull Splitter, Super Breaker + writer.append(String.valueOf(berserkDATS)+":"); + writer.append(String.valueOf(gigaDrillBreakerDATS)+":"); + writer.append(String.valueOf(treeFellerDATS)+":"); + writer.append(String.valueOf(greenTerraDATS)+":"); + writer.append(String.valueOf(serratedStrikesDATS)+":"); + writer.append(String.valueOf(skullSplitterDATS)+":"); + writer.append(String.valueOf(superBreakerDATS)+":"); + writer.append(hud.toString()+":"); + writer.append(skills.get(SkillType.FISHING) + ":"); + writer.append(skillsXp.get(SkillType.FISHING) + ":"); + writer.append("\r\n"); + } + } + in.close(); + //Write the new file + FileWriter out = new FileWriter(location); + out.write(writer.toString()); + out.close(); + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e); + } + } + } + public void addPlayer() + { + try { + //Open the file to write the player + FileWriter file = new FileWriter(location, true); + BufferedWriter out = new BufferedWriter(file); + + //Add the player to the end + out.append(playername + ":"); + out.append(0 + ":"); //mining + out.append(myspawn+":"); + out.append(party+":"); + out.append(0+":"); //XP + out.append(0+":"); //woodcutting + out.append(0+":"); //woodCuttingXP + out.append(0+":"); //repair + out.append(0+":"); //unarmed + out.append(0+":"); //herbalism + out.append(0+":"); //excavation + out.append(0+":"); //archery + out.append(0+":"); //swords + out.append(0+":"); //axes + out.append(0+":"); //acrobatics + out.append(0+":"); //repairXP + out.append(0+":"); //unarmedXP + out.append(0+":"); //herbalismXP + out.append(0+":"); //excavationXP + out.append(0+":"); //archeryXP + out.append(0+":"); //swordsXP + out.append(0+":"); //axesXP + out.append(0+":"); //acrobaticsXP + out.append(myspawnworld+":"); + out.append(0+":"); //taming + out.append(0+":"); //tamingXP + out.append(0+":"); //DATS + out.append(0+":"); //DATS + out.append(0+":"); //DATS + out.append(0+":"); //DATS + out.append(0+":"); //DATS + out.append(0+":"); //DATS + out.append(0+":"); //DATS + out.append(LoadProperties.defaulthud.toString()+":");//HUD + out.append(0+":"); //Fishing + out.append(0+":"); //FishingXP + + //Add more in the same format as the line above + + out.newLine(); + out.close(); + } catch (Exception e) { + log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e); + } + } + public void togglePartyHUD() + { + partyhud = !partyhud; + } + public boolean getPartyHUD() + { + return partyhud; + } + public void toggleSpoutEnabled() + { + spoutcraft = !spoutcraft; + } + + public boolean isFilling() + { + return filling; + } + public void toggleFilling() + { + filling = !filling; + } + public HUDType getHUDType() + { + return hud; + } + public void setHUDType(HUDType type) + { + hud = type; + save(); + } + public boolean getXpBarLocked() + { + return xpbarlocked; + } + public void toggleXpBarLocked() + { + xpbarlocked = !xpbarlocked; + } + public int getXpBarInc() + { + return xpbarinc; + } + public void setXpBarInc(int newvalue) + { + xpbarinc = newvalue; + } + public void setSkillLock(SkillType newvalue) + { + skillLock = newvalue; + } + public SkillType getSkillLock() + { + return skillLock; + } + public void setLastGained(SkillType newvalue) + { + lastgained = newvalue; + } + public SkillType getLastGained() + { + return lastgained; + } + + public boolean getAdminChatMode() {return adminChatMode;} + public boolean getPartyChatMode() {return partyChatMode;} + + public boolean getGodMode() {return godMode;} + + public void togglePlacedAnvil() + { + placedAnvil = !placedAnvil; + } + public Boolean getPlacedAnvil() + { + return placedAnvil; + } + public void toggleAdminChat() + { + adminChatMode = !adminChatMode; + } + + public void toggleGodMode() + { + godMode = !godMode; + } + + public void togglePartyChat() + { + partyChatMode = !partyChatMode; + } + + public void setMana(int newvalue) + { + mana = newvalue; + } + + public int getCurrentMana() + { + return mana; + } + public void setDyeChanged(Boolean bool) + { + dyeChanged = bool; + } + public boolean getDyeChanged() + { + return dyeChanged; + } + public void setBlueDyeCycle(int newvalue) + { + blueDyeCycle = newvalue; + } + public int getBlueDyeCycle() + { + return blueDyeCycle; + } + public void setBlueDyeCycleSel(int newvalue) + { + blueDyeCycleSel = newvalue; + } + public int getBlueDyeCycleSel() + { + return blueDyeCycleSel; + } + public void setGreenDyeCycle(int newvalue) + { + greenDyeCycle = newvalue; + } + public int getGreenDyeCycle() + { + return greenDyeCycle; + } + public void setGreenDyeCycleSel(int newvalue) + { + greenDyeCycleSel = newvalue; + } + public int getGreenDyeCycleSel() + { + return greenDyeCycleSel; + } + + public boolean isPlayer(String player) + { + return player.equals(playername); + } + public boolean getPartyChatOnlyToggle(){return partyChatOnly;} + public void togglePartyChatOnly(){partyChatOnly = !partyChatOnly;} + public boolean getAbilityUse(){ + return abilityuse; + } + public void toggleAbilityUse() + { + abilityuse = !abilityuse; + } + public long getMySpawnATS(){ + return mySpawnATS; + } + public void setMySpawnATS(long newvalue) + { + mySpawnATS = (int) (newvalue/1000); + } + public void decreaseBleedTicks() + { + bleedticks--; + } + public Integer getBleedTicks(){ + return bleedticks; + } + public void setBleedTicks(Integer newvalue){ + bleedticks = newvalue; + } + public void addBleedTicks(Integer newvalue){ + bleedticks+=newvalue; + } + /* + * EXPLOIT PREVENTION + */ + public long getRespawnATS() {return respawnATS;} + public void setRespawnATS(long newvalue) {respawnATS = (int) (newvalue/1000);} + + /* + * HOE PREPARATION + */ + public boolean getHoePreparationMode(){ + return hoePreparationMode; + } + public void setHoePreparationMode(Boolean bool){ + hoePreparationMode = bool; + } + public long getHoePreparationATS(){ + return hoePreparationATS; + } + public void setHoePreparationATS(long newvalue){ + hoePreparationATS = (int) (newvalue/1000); + } + + /* + * SWORDS PREPARATION + */ + public boolean getSwordsPreparationMode(){ + return swordsPreparationMode; + } + public void setSwordsPreparationMode(Boolean bool){ + swordsPreparationMode = bool; + } + public long getSwordsPreparationATS(){ + return swordsPreparationATS; + } + public void setSwordsPreparationATS(long newvalue){ + swordsPreparationATS = (int) (newvalue/1000); + } + /* + * SHOVEL PREPARATION + */ + public boolean getShovelPreparationMode(){ + return shovelPreparationMode; + } + public void setShovelPreparationMode(Boolean bool){ + shovelPreparationMode = bool; + } + public long getShovelPreparationATS(){ + return shovelPreparationATS; + } + public void setShovelPreparationATS(long newvalue){ + shovelPreparationATS = (int) (newvalue/1000); + } + /* + * FISTS PREPARATION + */ + public boolean getFistsPreparationMode(){ + return fistsPreparationMode; + } + public void setFistsPreparationMode(Boolean bool){ + fistsPreparationMode = bool; + } + public long getFistsPreparationATS(){ + return fistsPreparationATS; + } + public void setFistsPreparationATS(long newvalue){ + fistsPreparationATS = (int) (newvalue/1000); + } + /* + * AXE PREPARATION + */ + public boolean getAxePreparationMode(){ + return axePreparationMode; + } + public void setAxePreparationMode(Boolean bool){ + axePreparationMode = bool; + } + public long getAxePreparationATS(){ + return axePreparationATS; + } + public void setAxePreparationATS(long newvalue){ + axePreparationATS = (int) (newvalue/1000); + } + /* + * PICKAXE PREPARATION + */ + public boolean getPickaxePreparationMode(){ + return pickaxePreparationMode; + } + public void setPickaxePreparationMode(Boolean bool){ + pickaxePreparationMode = bool; + } + public long getPickaxePreparationATS(){ + return pickaxePreparationATS; + } + public void setPickaxePreparationATS(long newvalue){ + pickaxePreparationATS = (int) (newvalue/1000); + } + /* + * GREEN TERRA MODE + */ + public boolean getGreenTerraInformed() {return greenTerraInformed;} + public void setGreenTerraInformed(Boolean bool){ + greenTerraInformed = bool; + } + public boolean getGreenTerraMode(){ + return greenTerraMode; + } + public void setGreenTerraMode(Boolean bool){ + greenTerraMode = bool; + } + public long getGreenTerraActivatedTimeStamp() {return greenTerraATS;} + public void setGreenTerraActivatedTimeStamp(Long newvalue){ + greenTerraATS = (int) (newvalue/1000); + } + public long getGreenTerraDeactivatedTimeStamp() {return greenTerraDATS;} + public void setGreenTerraDeactivatedTimeStamp(Long newvalue){ + greenTerraDATS = (int) (newvalue/1000); + save(); + } + /* + * BERSERK MODE + */ + public boolean getBerserkInformed() {return berserkInformed;} + public void setBerserkInformed(Boolean bool){ + berserkInformed = bool; + } + public boolean getBerserkMode(){ + return berserkMode; + } + public void setBerserkMode(Boolean bool){ + berserkMode = bool; + } + public long getBerserkActivatedTimeStamp() {return berserkATS;} + public void setBerserkActivatedTimeStamp(Long newvalue){ + berserkATS = (int) (newvalue/1000); + } + public long getBerserkDeactivatedTimeStamp() {return berserkDATS;} + public void setBerserkDeactivatedTimeStamp(Long newvalue){ + berserkDATS = (int) (newvalue/1000); + save(); + } + /* + * SKULL SPLITTER + */ + public boolean getSkullSplitterInformed() {return skullSplitterInformed;} + public void setSkullSplitterInformed(Boolean bool){ + skullSplitterInformed = bool; + } + public boolean getSkullSplitterMode(){ + return skullSplitterMode; + } + public void setSkullSplitterMode(Boolean bool){ + skullSplitterMode = bool; + } + public long getSkullSplitterActivatedTimeStamp() {return skullSplitterATS;} + public void setSkullSplitterActivatedTimeStamp(Long newvalue){ + skullSplitterATS = (int) (newvalue/1000); + } + public long getSkullSplitterDeactivatedTimeStamp() {return skullSplitterDATS;} + public void setSkullSplitterDeactivatedTimeStamp(Long newvalue){ + skullSplitterDATS = (int) (newvalue/1000); + save(); + } + /* + * SERRATED STRIKES + */ + public boolean getSerratedStrikesInformed() {return serratedStrikesInformed;} + public void setSerratedStrikesInformed(Boolean bool){ + serratedStrikesInformed = bool; + } + public boolean getSerratedStrikesMode(){ + return serratedStrikesMode; + } + public void setSerratedStrikesMode(Boolean bool){ + serratedStrikesMode = bool; + } + public long getSerratedStrikesActivatedTimeStamp() {return serratedStrikesATS;} + public void setSerratedStrikesActivatedTimeStamp(Long newvalue){ + serratedStrikesATS = (int) (newvalue/1000); + } + public long getSerratedStrikesDeactivatedTimeStamp() {return serratedStrikesDATS;} + public void setSerratedStrikesDeactivatedTimeStamp(Long newvalue){ + serratedStrikesDATS = (int) (newvalue/1000); + save(); + } + /* + * GIGA DRILL BREAKER + */ + public boolean getGigaDrillBreakerInformed() {return gigaDrillBreakerInformed;} + public void setGigaDrillBreakerInformed(Boolean bool){ + gigaDrillBreakerInformed = bool; + } + public boolean getGigaDrillBreakerMode(){ + return gigaDrillBreakerMode; + } + public void setGigaDrillBreakerMode(Boolean bool){ + gigaDrillBreakerMode = bool; + } + public long getGigaDrillBreakerActivatedTimeStamp() {return gigaDrillBreakerATS;} + public void setGigaDrillBreakerActivatedTimeStamp(Long newvalue){ + gigaDrillBreakerATS = (int) (newvalue/1000); + } + public long getGigaDrillBreakerDeactivatedTimeStamp() {return gigaDrillBreakerDATS;} + public void setGigaDrillBreakerDeactivatedTimeStamp(Long newvalue){ + gigaDrillBreakerDATS = (int) (newvalue/1000); + save(); + } + /* + * TREE FELLER STUFF + */ + public boolean getTreeFellerInformed() {return treeFellerInformed;} + public void setTreeFellerInformed(Boolean bool){ + treeFellerInformed = bool; + } + public boolean getTreeFellerMode(){ + return treeFellerMode; + } + public void setTreeFellerMode(Boolean bool){ + treeFellerMode = bool; + } + public long getTreeFellerActivatedTimeStamp() {return treeFellerATS;} + public void setTreeFellerActivatedTimeStamp(Long newvalue){ + treeFellerATS = (int) (newvalue/1000); + } + public long getTreeFellerDeactivatedTimeStamp() {return treeFellerDATS;} + public void setTreeFellerDeactivatedTimeStamp(Long newvalue){ + treeFellerDATS = (int) (newvalue/1000); + save(); + } + /* + * MINING + */ + public boolean getSuperBreakerInformed() {return superBreakerInformed;} + public void setSuperBreakerInformed(Boolean bool){ + superBreakerInformed = bool; + } + public boolean getSuperBreakerMode(){ + return superBreakerMode; + } + public void setSuperBreakerMode(Boolean bool){ + superBreakerMode = bool; + } + public long getSuperBreakerActivatedTimeStamp() {return superBreakerATS;} + public void setSuperBreakerActivatedTimeStamp(Long newvalue){ + superBreakerATS = (int) (newvalue/1000); + } + public long getSuperBreakerDeactivatedTimeStamp() {return superBreakerDATS;} + public void setSuperBreakerDeactivatedTimeStamp(Long newvalue){ + superBreakerDATS = (int) (newvalue/1000); + save(); + } + public long getRecentlyHurt(){ + return recentlyHurt; + } + public void setRecentlyHurt(long newvalue){ + recentlyHurt = (int) (newvalue/1000); + } + public void skillUp(SkillType skillType, int newvalue) + { + skills.put(skillType, skills.get(skillType)+newvalue); + save(); + } + public Integer getSkillLevel(SkillType skillType) + { + return skills.get(skillType); + } + public Integer getSkillXpLevel(SkillType skillType) + { + return skillsXp.get(skillType); + } + public void resetSkillXp(SkillType skillType) + { + skills.put(skillType, 0); + } + + /** + * Adds XP to the player, this ignores skill modifiers + * @param skillType The skill to add XP to + * @param newvalue The amount of XP to add + */ + public void addXPOverride(SkillType skillType, int newvalue) + { + if(skillType == SkillType.ALL) + { + for(SkillType x : SkillType.values()) + { + if(x == SkillType.ALL) + continue; + skillsXp.put(x, skillsXp.get(x)+newvalue); + } + } else { + int xp = newvalue; + + xp=xp*LoadProperties.xpGainMultiplier; + skillsXp.put(skillType, skillsXp.get(skillType)+xp); + lastgained = skillType; + } + } + /** + * Adds XP to the player, this is affected by skill modifiers + * @param skillType The skill to add XP to + * @param newvalue The amount of XP to add + */ + public void addXP(SkillType skillType, int newvalue, Player thisplayer) + { + if(System.currentTimeMillis() < ((xpGainATS*1000)+250) || thisplayer.getGameMode() == GameMode.CREATIVE) + return; + + //Setup a timestamp of when xp was given + xpGainATS = (int) (System.currentTimeMillis()/1000); + + double bonusModifier = 0; + String leaderName = ""; + + if(inParty()) + { + for(Player x : Party.getInstance().getPartyMembers(thisplayer)) + { + if(x.isOnline() && !x.getName().equals(thisplayer.getName()) && Party.getInstance().isPartyLeader(x.getName(), this.getParty())) + { + leaderName = x.getName(); + if(m.getDistance(thisplayer.getLocation(), x.getLocation()) < 25) + { + PlayerProfile PartyLeader = Users.getProfile(x); + if(PartyLeader.getSkillLevel(skillType) >= this.getSkillLevel(skillType)) + { + int leaderLevel = PartyLeader.getSkillLevel(skillType); + int difference = leaderLevel - this.getSkillLevel(skillType); + bonusModifier = (difference*0.75D)/100D; + } + } + } + } + } + if(skillType == SkillType.ALL) + { + for(SkillType x : SkillType.values()) + { + if(x == SkillType.ALL) + continue; + skillsXp.put(x, skillsXp.get(x)+newvalue); + } + } else { + int xp = newvalue; + + switch(skillType) + { + case TAMING: + xp=(int) (xp/LoadProperties.tamingxpmodifier); + break; + case MINING: + xp=(int) (xp/LoadProperties.miningxpmodifier); + break; + case WOODCUTTING: + xp=(int) (xp/LoadProperties.woodcuttingxpmodifier); + break; + case REPAIR: + xp=(int) (xp/LoadProperties.repairxpmodifier); + break; + case HERBALISM: + xp=(int) (xp/LoadProperties.herbalismxpmodifier); + break; + case ACROBATICS: + xp=(int) (xp/LoadProperties.acrobaticsxpmodifier); + break; + case SWORDS: + xp=(int) (xp/LoadProperties.swordsxpmodifier); + break; + case ARCHERY: + xp=(int) (xp/LoadProperties.archeryxpmodifier); + break; + case UNARMED: + xp=(int) (xp/LoadProperties.unarmedxpmodifier); + break; + case EXCAVATION: + xp=(int) (xp/LoadProperties.excavationxpmodifier); + break; + case AXES: + xp=(int) (xp/LoadProperties.axesxpmodifier); + break; + } + xp=xp*LoadProperties.xpGainMultiplier; + + if(bonusModifier > 0) + { + if(bonusModifier >= 2) + bonusModifier = 2; + + double trueBonus = bonusModifier * xp; + double oldxp = xp; + xp+=trueBonus; + double percent = (trueBonus/oldxp)*100; + thisplayer.sendMessage(ChatColor.GREEN+"XP: "+oldxp+" Bonus XP: "+trueBonus+" Total: "+xp+ChatColor.GOLD+" [Master: "+leaderName+" " +" +"+(int)percent+"%]"); + } + skillsXp.put(skillType, skillsXp.get(skillType)+xp); + lastgained = skillType; + } + //save(); + } + + public void removeXP(SkillType skillType, int newvalue) + { + if(skillType == SkillType.ALL) + { + skillsXp.put(SkillType.TAMING, skillsXp.get(SkillType.TAMING)-newvalue); + skillsXp.put(SkillType.MINING, skillsXp.get(SkillType.MINING)-newvalue); + skillsXp.put(SkillType.WOODCUTTING, skillsXp.get(SkillType.WOODCUTTING)-newvalue); + skillsXp.put(SkillType.REPAIR, skillsXp.get(SkillType.REPAIR)-newvalue); + skillsXp.put(SkillType.HERBALISM, skillsXp.get(SkillType.HERBALISM)-newvalue); + skillsXp.put(SkillType.ACROBATICS, skillsXp.get(SkillType.ACROBATICS)-newvalue); + skillsXp.put(SkillType.SWORDS, skillsXp.get(SkillType.SWORDS)-newvalue); + skillsXp.put(SkillType.ARCHERY, skillsXp.get(SkillType.ARCHERY)-newvalue); + skillsXp.put(SkillType.UNARMED, skillsXp.get(SkillType.UNARMED)-newvalue); + skillsXp.put(SkillType.EXCAVATION, skillsXp.get(SkillType.EXCAVATION)-newvalue); + skillsXp.put(SkillType.AXES, skillsXp.get(SkillType.AXES)-newvalue); + skillsXp.put(SkillType.FISHING, skillsXp.get(SkillType.FISHING)-newvalue); + } else { + skillsXp.put(skillType, skillsXp.get(skillType)-newvalue); + } + //save(); + } + public void acceptInvite() + { + party = invite; + invite = ""; + } + public void modifyInvite(String invitename) + { + invite = invitename; + } + public String getInvite() { return invite; } + + public void modifyskill(SkillType skillType, int newvalue) + { + if(skillType == SkillType.ALL) + { + skills.put(SkillType.TAMING, newvalue); + skills.put(SkillType.MINING, newvalue); + skills.put(SkillType.WOODCUTTING, newvalue); + skills.put(SkillType.REPAIR, newvalue); + skills.put(SkillType.HERBALISM, newvalue); + skills.put(SkillType.ACROBATICS, newvalue); + skills.put(SkillType.SWORDS, newvalue); + skills.put(SkillType.ARCHERY, newvalue); + skills.put(SkillType.UNARMED, newvalue); + skills.put(SkillType.EXCAVATION, newvalue); + skills.put(SkillType.AXES, newvalue); + skills.put(SkillType.FISHING, newvalue); + + skillsXp.put(SkillType.TAMING, 0); + skillsXp.put(SkillType.MINING, 0); + skillsXp.put(SkillType.WOODCUTTING, 0); + skillsXp.put(SkillType.REPAIR, 0); + skillsXp.put(SkillType.HERBALISM, 0); + skillsXp.put(SkillType.ACROBATICS, 0); + skillsXp.put(SkillType.SWORDS, 0); + skillsXp.put(SkillType.ARCHERY, 0); + skillsXp.put(SkillType.UNARMED, 0); + skillsXp.put(SkillType.EXCAVATION, 0); + skillsXp.put(SkillType.AXES, 0); + skillsXp.put(SkillType.FISHING, 0); + } else { + skills.put(skillType, newvalue); + skillsXp.put(skillType, newvalue); + } + save(); + } + public Integer getXpToLevel(SkillType skillType) + { + return (int) ((1020+(skills.get(skillType) * 20))); + } + + //Store the player's party + public void setParty(String newParty) + { + party = newParty; + save(); + } + //Retrieve the player's party + public String getParty() {return party;} + //Remove party + public void removeParty() { + party = null; + save(); + } + //Retrieve whether or not the player is in a party + 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")){ + return true; + } else { + return false; + } + } + public String getMySpawnWorld() + { + if(myspawnworld != null && !myspawnworld.equals("") && !myspawnworld.equals("null")){ + return myspawnworld; + } else { + return Bukkit.getServer().getWorlds().get(0).toString(); + } + } + //Save a users spawn location + public void setMySpawn(double x, double y, double z, String myspawnworldlocation){ + myspawn = x+","+y+","+z; + myspawnworld = myspawnworldlocation; + save(); + } + public String getX(){ + if(myspawn != null) + { + String[] split = myspawn.split(","); + return split[0]; + } + else + return null; + } + public String getY(){ + if(myspawn != null) + { + String[] split = myspawn.split(","); + return split[1]; + } + else + return null; + } + public String getZ(){ + if(myspawn != null) + { + String[] split = myspawn.split(","); + return split[2]; + } + else + return null; + } + public boolean isDead(){ + return dead; + } + public Location getMySpawn(Player player) + { + Location loc = null; + if(myspawn != null) + { + if(m.isDouble(getX()) && m.isDouble(getY()) && m.isDouble(getZ())) + loc = new Location(player.getWorld(),(Double.parseDouble(getX())), Double.parseDouble(getY()), Double.parseDouble(getZ())); + else + return null; + } else + return null; + + loc.setYaw(0); + loc.setPitch(0); + if(loc.getX() != 0 && loc.getY() != 0 && loc.getZ() != 0 && loc.getWorld() != null) + { + if(Bukkit.getServer().getWorld(this.getMySpawnWorld()) != null) + loc.setWorld(Bukkit.getServer().getWorld(this.getMySpawnWorld())); + else + loc.setWorld(Bukkit.getServer().getWorlds().get(0)); + return loc; + } else { + return null; + } + } +} diff --git a/src/com/gmail/nossr50/datatypes/PlayerStat.java b/src/main/java/com/gmail/nossr50/datatypes/PlayerStat.java similarity index 97% rename from src/com/gmail/nossr50/datatypes/PlayerStat.java rename to src/main/java/com/gmail/nossr50/datatypes/PlayerStat.java index 423dc62b3..3ae0afbd5 100644 --- a/src/com/gmail/nossr50/datatypes/PlayerStat.java +++ b/src/main/java/com/gmail/nossr50/datatypes/PlayerStat.java @@ -1,23 +1,23 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes; - -public class PlayerStat -{ - public String name; - public int statVal = 0; +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes; + +public class PlayerStat +{ + public String name; + public int statVal = 0; } \ No newline at end of file diff --git a/src/com/gmail/nossr50/datatypes/SkillType.java b/src/main/java/com/gmail/nossr50/datatypes/SkillType.java similarity index 96% rename from src/com/gmail/nossr50/datatypes/SkillType.java rename to src/main/java/com/gmail/nossr50/datatypes/SkillType.java index c6d6d175a..71b86e96c 100644 --- a/src/com/gmail/nossr50/datatypes/SkillType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/SkillType.java @@ -1,36 +1,36 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes; - -public enum SkillType -{ - ACROBATICS, - ALCHEMY, - ALL, //This one is just for convenience - ARCHERY, - AXES, - EXCAVATION, - ENCHANTING, - FISHING, - HERBALISM, - MINING, - REPAIR, - SWORDS, - TAMING, - UNARMED, - WOODCUTTING; -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes; + +public enum SkillType +{ + ACROBATICS, + ALCHEMY, + ALL, //This one is just for convenience + ARCHERY, + AXES, + EXCAVATION, + ENCHANTING, + FISHING, + HERBALISM, + MINING, + REPAIR, + SWORDS, + TAMING, + UNARMED, + WOODCUTTING; +} diff --git a/src/com/gmail/nossr50/datatypes/Tree.java b/src/main/java/com/gmail/nossr50/datatypes/Tree.java similarity index 96% rename from src/com/gmail/nossr50/datatypes/Tree.java rename to src/main/java/com/gmail/nossr50/datatypes/Tree.java index dcfc9dbf7..fcb88a055 100644 --- a/src/com/gmail/nossr50/datatypes/Tree.java +++ b/src/main/java/com/gmail/nossr50/datatypes/Tree.java @@ -1,55 +1,55 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes; - -import java.util.ArrayList; - -import com.gmail.nossr50.datatypes.PlayerStat; - -public class Tree { - - TreeNode root = null; - - public Tree(){} - - public void add(String p, int in) - { - if(root == null){ - root = new TreeNode(p, in); - } - else - root.add(p,in); - } - - public PlayerStat[] inOrder() - { - if(root != null){ - ArrayList order = root.inOrder(new ArrayList()); - return order.toArray(new PlayerStat[order.size()]); - } else { - //Throw some dummy info in case the users file is empty - //It's not a good fix but its better than rewriting the whole system - ArrayList x = new ArrayList(); - PlayerStat y = new PlayerStat(); - y.name = "$mcMMO_DummyInfo"; - y.statVal = 0; - x.add(y); - return x.toArray(new PlayerStat[x.size()]); - } - } - -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes; + +import java.util.ArrayList; + +import com.gmail.nossr50.datatypes.PlayerStat; + +public class Tree { + + TreeNode root = null; + + public Tree(){} + + public void add(String p, int in) + { + if(root == null){ + root = new TreeNode(p, in); + } + else + root.add(p,in); + } + + public PlayerStat[] inOrder() + { + if(root != null){ + ArrayList order = root.inOrder(new ArrayList()); + return order.toArray(new PlayerStat[order.size()]); + } else { + //Throw some dummy info in case the users file is empty + //It's not a good fix but its better than rewriting the whole system + ArrayList x = new ArrayList(); + PlayerStat y = new PlayerStat(); + y.name = "$mcMMO_DummyInfo"; + y.statVal = 0; + x.add(y); + return x.toArray(new PlayerStat[x.size()]); + } + } + +} diff --git a/src/com/gmail/nossr50/datatypes/TreeNode.java b/src/main/java/com/gmail/nossr50/datatypes/TreeNode.java similarity index 96% rename from src/com/gmail/nossr50/datatypes/TreeNode.java rename to src/main/java/com/gmail/nossr50/datatypes/TreeNode.java index 3a95899e1..8e547dda2 100644 --- a/src/com/gmail/nossr50/datatypes/TreeNode.java +++ b/src/main/java/com/gmail/nossr50/datatypes/TreeNode.java @@ -1,65 +1,65 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes; - -import java.util.ArrayList; - -import com.gmail.nossr50.datatypes.PlayerStat; - -public class TreeNode -{ - TreeNode left = null - , right = null; - PlayerStat ps = new PlayerStat(); - - public TreeNode(String p, int in) {ps.statVal = in; ps.name = p;} - - public void add (String p, int in) - { - if (in >= ps.statVal) - { - if (left == null) - left = new TreeNode(p,in); - else - left.add(p, in); - } - else if(in < ps.statVal) - { - if (right == null) - right = new TreeNode(p,in); - else - right.add(p, in); - } - } - - public ArrayList inOrder(ArrayList a) - { - //if left node is not null than assign arrayList(a) to left.inOrder() - - //GOES THROUGH THE ENTIRE LEFT BRANCH AND GRABS THE GREATEST NUMBER - - if(left != null) - a = left.inOrder(a); - - a.add(ps); - - if(right != null) - a = right.inOrder(a); - - return a; - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes; + +import java.util.ArrayList; + +import com.gmail.nossr50.datatypes.PlayerStat; + +public class TreeNode +{ + TreeNode left = null + , right = null; + PlayerStat ps = new PlayerStat(); + + public TreeNode(String p, int in) {ps.statVal = in; ps.name = p;} + + public void add (String p, int in) + { + if (in >= ps.statVal) + { + if (left == null) + left = new TreeNode(p,in); + else + left.add(p, in); + } + else if(in < ps.statVal) + { + if (right == null) + right = new TreeNode(p,in); + else + right.add(p, in); + } + } + + public ArrayList inOrder(ArrayList a) + { + //if left node is not null than assign arrayList(a) to left.inOrder() + + //GOES THROUGH THE ENTIRE LEFT BRANCH AND GRABS THE GREATEST NUMBER + + if(left != null) + a = left.inOrder(a); + + a.add(ps); + + if(right != null) + a = right.inOrder(a); + + return a; + } +} diff --git a/src/com/gmail/nossr50/datatypes/buttons/ButtonEscape.java b/src/main/java/com/gmail/nossr50/datatypes/buttons/ButtonEscape.java similarity index 96% rename from src/com/gmail/nossr50/datatypes/buttons/ButtonEscape.java rename to src/main/java/com/gmail/nossr50/datatypes/buttons/ButtonEscape.java index 1b716443e..ecc829080 100644 --- a/src/com/gmail/nossr50/datatypes/buttons/ButtonEscape.java +++ b/src/main/java/com/gmail/nossr50/datatypes/buttons/ButtonEscape.java @@ -1,29 +1,29 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes.buttons; - -import org.getspout.spoutapi.gui.GenericButton; - -public class ButtonEscape extends GenericButton -{ - public ButtonEscape() - { - this.setText("EXIT"); - this.setWidth(60).setHeight(20); - this.setDirty(true); - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes.buttons; + +import org.getspout.spoutapi.gui.GenericButton; + +public class ButtonEscape extends GenericButton +{ + public ButtonEscape() + { + this.setText("EXIT"); + this.setWidth(60).setHeight(20); + this.setDirty(true); + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/datatypes/buttons/ButtonHUDStyle.java b/src/main/java/com/gmail/nossr50/datatypes/buttons/ButtonHUDStyle.java similarity index 97% rename from src/com/gmail/nossr50/datatypes/buttons/ButtonHUDStyle.java rename to src/main/java/com/gmail/nossr50/datatypes/buttons/ButtonHUDStyle.java index d89a4a0ac..431f8e4de 100644 --- a/src/com/gmail/nossr50/datatypes/buttons/ButtonHUDStyle.java +++ b/src/main/java/com/gmail/nossr50/datatypes/buttons/ButtonHUDStyle.java @@ -1,37 +1,37 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes.buttons; - -import org.getspout.spoutapi.gui.GenericButton; - -import com.gmail.nossr50.datatypes.PlayerProfile; - -public class ButtonHUDStyle extends GenericButton -{ - public ButtonHUDStyle(PlayerProfile PP) - { - this.setText("HUD Type: "+PP.getHUDType().toString()); - this.setTooltip("Change your HUD style!"); - this.setWidth(120).setHeight(20); - this.setDirty(true); - } - public void updateText(PlayerProfile PP) - { - this.setText("HUD Type: "+PP.getHUDType().toString()); - this.setDirty(true); - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes.buttons; + +import org.getspout.spoutapi.gui.GenericButton; + +import com.gmail.nossr50.datatypes.PlayerProfile; + +public class ButtonHUDStyle extends GenericButton +{ + public ButtonHUDStyle(PlayerProfile PP) + { + this.setText("HUD Type: "+PP.getHUDType().toString()); + this.setTooltip("Change your HUD style!"); + this.setWidth(120).setHeight(20); + this.setDirty(true); + } + public void updateText(PlayerProfile PP) + { + this.setText("HUD Type: "+PP.getHUDType().toString()); + this.setDirty(true); + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/datatypes/buttons/ButtonPartyToggle.java b/src/main/java/com/gmail/nossr50/datatypes/buttons/ButtonPartyToggle.java similarity index 100% rename from src/com/gmail/nossr50/datatypes/buttons/ButtonPartyToggle.java rename to src/main/java/com/gmail/nossr50/datatypes/buttons/ButtonPartyToggle.java diff --git a/src/com/gmail/nossr50/datatypes/popups/PopupMMO.java b/src/main/java/com/gmail/nossr50/datatypes/popups/PopupMMO.java similarity index 97% rename from src/com/gmail/nossr50/datatypes/popups/PopupMMO.java rename to src/main/java/com/gmail/nossr50/datatypes/popups/PopupMMO.java index 1aa3cf52a..75c375ec5 100644 --- a/src/com/gmail/nossr50/datatypes/popups/PopupMMO.java +++ b/src/main/java/com/gmail/nossr50/datatypes/popups/PopupMMO.java @@ -1,75 +1,75 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.datatypes.popups; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.getspout.spoutapi.gui.GenericLabel; -import org.getspout.spoutapi.gui.GenericPopup; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.buttons.ButtonEscape; -import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle; -import com.gmail.nossr50.datatypes.buttons.ButtonPartyToggle; - -public class PopupMMO extends GenericPopup -{ - ButtonHUDStyle HUDButton = null; - ButtonPartyToggle PartyButton = null; - ButtonEscape EscapeButton = null; - GenericLabel mcMMO_label = new GenericLabel(); - GenericLabel tip_escape = new GenericLabel(); - int center_x = 427/2; - int center_y = 240/2; - - public PopupMMO(Player player, PlayerProfile PP, mcMMO plugin) - { - //240, 427 are the bottom right - mcMMO_label.setText(ChatColor.GOLD+"~mcMMO Menu~"); - mcMMO_label.setX(center_x-35).setY((center_y/2)-20).setDirty(true); - - tip_escape.setText(ChatColor.GRAY+"Press ESCAPE to exit!"); - tip_escape.setX(mcMMO_label.getX()-15).setY(mcMMO_label.getY()+10).setDirty(true); - - HUDButton = new ButtonHUDStyle(PP); - HUDButton.setX(center_x-(HUDButton.getWidth()/2)).setY(center_y/2).setDirty(true); - - if(LoadProperties.partybar) - { - PartyButton = new ButtonPartyToggle(PP); - PartyButton.setX(center_x-(PartyButton.getWidth()/2)).setY(center_y/2+PartyButton.getHeight()).setDirty(true); - this.attachWidget(plugin, PartyButton); - } - - EscapeButton = new ButtonEscape(); - EscapeButton.setX(center_x-(EscapeButton.getWidth()/2)).setY((center_y/2)+(HUDButton.getHeight()*2)+5).setDirty(true); - - this.attachWidget(plugin, HUDButton); - this.attachWidget(plugin, mcMMO_label); - this.attachWidget(plugin, tip_escape); - this.attachWidget(plugin, EscapeButton); - - this.setDirty(true); - } - - public void updateButtons(PlayerProfile PP) - { - HUDButton.updateText(PP); - this.setDirty(true); - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.datatypes.popups; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.getspout.spoutapi.gui.GenericLabel; +import org.getspout.spoutapi.gui.GenericPopup; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.buttons.ButtonEscape; +import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle; +import com.gmail.nossr50.datatypes.buttons.ButtonPartyToggle; + +public class PopupMMO extends GenericPopup +{ + ButtonHUDStyle HUDButton = null; + ButtonPartyToggle PartyButton = null; + ButtonEscape EscapeButton = null; + GenericLabel mcMMO_label = new GenericLabel(); + GenericLabel tip_escape = new GenericLabel(); + int center_x = 427/2; + int center_y = 240/2; + + public PopupMMO(Player player, PlayerProfile PP, mcMMO plugin) + { + //240, 427 are the bottom right + mcMMO_label.setText(ChatColor.GOLD+"~mcMMO Menu~"); + mcMMO_label.setX(center_x-35).setY((center_y/2)-20).setDirty(true); + + tip_escape.setText(ChatColor.GRAY+"Press ESCAPE to exit!"); + tip_escape.setX(mcMMO_label.getX()-15).setY(mcMMO_label.getY()+10).setDirty(true); + + HUDButton = new ButtonHUDStyle(PP); + HUDButton.setX(center_x-(HUDButton.getWidth()/2)).setY(center_y/2).setDirty(true); + + if(LoadProperties.partybar) + { + PartyButton = new ButtonPartyToggle(PP); + PartyButton.setX(center_x-(PartyButton.getWidth()/2)).setY(center_y/2+PartyButton.getHeight()).setDirty(true); + this.attachWidget(plugin, PartyButton); + } + + EscapeButton = new ButtonEscape(); + EscapeButton.setX(center_x-(EscapeButton.getWidth()/2)).setY((center_y/2)+(HUDButton.getHeight()*2)+5).setDirty(true); + + this.attachWidget(plugin, HUDButton); + this.attachWidget(plugin, mcMMO_label); + this.attachWidget(plugin, tip_escape); + this.attachWidget(plugin, EscapeButton); + + this.setDirty(true); + } + + public void updateButtons(PlayerProfile PP) + { + HUDButton.updateText(PP); + this.setDirty(true); + } +} diff --git a/src/com/gmail/nossr50/listeners/mcBlockListener.java b/src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java similarity index 97% rename from src/com/gmail/nossr50/listeners/mcBlockListener.java rename to src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java index 22fbb2d69..b082a93ed 100644 --- a/src/com/gmail/nossr50/listeners/mcBlockListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java @@ -1,451 +1,451 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.listeners; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.spout.SpoutStuff; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; - -import org.bukkit.Material; -import org.bukkit.Statistic; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockDamageEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockListener; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.inventory.ItemStack; -import org.getspout.spoutapi.SpoutManager; -import org.getspout.spoutapi.player.SpoutPlayer; -import org.getspout.spoutapi.sound.SoundEffect; - -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.skills.*; -import com.gmail.nossr50.datatypes.FakeBlockBreakEvent; - - -public class mcBlockListener extends BlockListener -{ - private final mcMMO plugin; - - public mcBlockListener(final mcMMO plugin) - { - this.plugin = plugin; - } - - public void onBlockPlace(BlockPlaceEvent event) - { - //Setup some basic vars - Block block; - Player player = event.getPlayer(); - - //When blocks are placed on snow this event reports the wrong block. - if (event.getBlockReplacedState() != null && event.getBlockReplacedState().getTypeId() == 78) - { - block = event.getBlockAgainst(); - } - else - { - block = event.getBlock(); - } - - //Check if the blocks placed should be monitored so they do not give out XP in the future - if(m.shouldBeWatched(block)) - { - if(block.getTypeId() != 17 && block.getTypeId() != 39 && block.getTypeId() != 40 && block.getTypeId() != 91 && block.getTypeId() != 86) - block.setData((byte) 5); //Change the byte - else if(block.getTypeId() == 17 || block.getTypeId() == 39 || block.getTypeId() == 40 || block.getTypeId() == 91 || block.getTypeId() == 86) - plugin.misc.blockWatchList.add(block); - } - - if(block.getTypeId() == 42 && LoadProperties.anvilmessages) - { - PlayerProfile PP = Users.getProfile(player); - if(LoadProperties.spoutEnabled) - { - SpoutPlayer sPlayer = SpoutManager.getPlayer(player); - if(sPlayer.isSpoutCraftEnabled()) - { - if(!PP.getPlacedAnvil()) - { - sPlayer.sendNotification("[mcMMO] Anvil Placed", "Right click to repair!", Material.IRON_BLOCK); - PP.togglePlacedAnvil(); - } - } - else - { - if(!PP.getPlacedAnvil()) - { - event.getPlayer().sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$ - PP.togglePlacedAnvil(); - } - } - } - else - { - if(!PP.getPlacedAnvil()) - { - event.getPlayer().sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$ - PP.togglePlacedAnvil(); - } - } - } - } - - public void onBlockBreak(BlockBreakEvent event) - { - Player player = event.getPlayer(); - PlayerProfile PP = Users.getProfile(player); - Block block = event.getBlock(); - ItemStack inhand = player.getItemInHand(); - if(event.isCancelled()) - return; - if (event instanceof FakeBlockBreakEvent) - return; - - /* - * HERBALISM - */ - - //Green Terra - if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalismAbility(player) && block.getTypeId() == 59 && block.getData() == (byte) 0x07) - { - Herbalism.greenTerraCheck(player, block); - } - - //Wheat && Triple drops - if(PP.getGreenTerraMode() && Herbalism.canBeGreenTerra(block)) - { - Herbalism.herbalismProcCheck(block, player, event, plugin); - Herbalism.greenTerraWheat(player, block, event, plugin); - } - - - /* - * MINING - */ - if(mcPermissions.getInstance().mining(player)) - { - if(LoadProperties.miningrequirespickaxe) - { - if(m.isMiningPick(inhand)) - { - Mining.miningBlockCheck(false, player, block, plugin); - } - } else - { - Mining.miningBlockCheck(false, player, block, plugin); - } - } - /* - * WOOD CUTTING - */ - - if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player)) - { - if(LoadProperties.woodcuttingrequiresaxe) - { - if(m.isAxes(inhand)) - { - if(!plugin.misc.blockWatchList.contains(block)) - { - WoodCutting.woodCuttingProcCheck(player, block); - //Default - if(block.getData() == (byte)0) - PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine, player); - //Spruce - if(block.getData() == (byte)1) - PP.addXP(SkillType.WOODCUTTING, LoadProperties.mspruce, player); - //Birch - if(block.getData() == (byte)2) - PP.addXP(SkillType.WOODCUTTING, LoadProperties.mbirch, player); - } - } - } else - { - if(!plugin.misc.blockWatchList.contains(block)) - { - WoodCutting.woodCuttingProcCheck(player, block); - //Default - if(block.getData() == (byte)0) - PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine, player); - //Spruce - if(block.getData() == (byte)1) - PP.addXP(SkillType.WOODCUTTING, LoadProperties.mspruce, player); - //Birch - if(block.getData() == (byte)2) - PP.addXP(SkillType.WOODCUTTING, LoadProperties.mbirch, player); - } - } - Skills.XpCheckSkill(SkillType.WOODCUTTING, player); - - /* - * IF PLAYER IS USING TREEFELLER - */ - if(mcPermissions.getInstance().woodCuttingAbility(player) - && PP.getTreeFellerMode() - && block.getTypeId() == 17 - && m.blockBreakSimulate(block, player)) - { - if(LoadProperties.spoutEnabled) - SpoutStuff.playSoundForPlayer(SoundEffect.EXPLODE, player, block.getLocation()); - - WoodCutting.treeFeller(block, player, plugin); - for(Block blockx : plugin.misc.treeFeller) - { - if(blockx != null) - { - Material mat = Material.getMaterial(block.getTypeId()); - byte type = 0; - if(block.getTypeId() == 17) - type = block.getData(); - ItemStack item = new ItemStack(mat, 1, (byte)0, type); - if(blockx.getTypeId() == 17) - { - blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item); - //XP WOODCUTTING - if(!plugin.misc.blockWatchList.contains(block)) - { - WoodCutting.woodCuttingProcCheck(player, blockx); - PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine, player); - } - } - if(blockx.getTypeId() == 18) - { - mat = Material.SAPLING; - - item = new ItemStack(mat, 1, (short)0, blockx.getData()); - - if(Math.random() * 10 > 9) - blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item); - } - if(blockx.getType() != Material.AIR) - player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType()); - blockx.setType(Material.AIR); - } - } - if(LoadProperties.toolsLoseDurabilityFromAbilities) - m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); - plugin.misc.treeFeller.clear(); - } - } - /* - * EXCAVATION - */ - if(Excavation.canBeGigaDrillBroken(block) && mcPermissions.getInstance().excavation(player) && block.getData() != (byte) 5) - Excavation.excavationProcCheck(block.getData(), block.getType(), block.getLocation(), player); - /* - * HERBALISM - */ - if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalism(player) && Herbalism.canBeGreenTerra(block)) - { - Herbalism.greenTerraCheck(player, block); - } - if(mcPermissions.getInstance().herbalism(player) && block.getData() != (byte) 5) - Herbalism.herbalismProcCheck(block, player, event, plugin); - - //Change the byte back when broken - if(block.getData() == 5 && m.shouldBeWatched(block)) - { - block.setData((byte) 0); - if(plugin.misc.blockWatchList.contains(block)) - { - plugin.misc.blockWatchList.remove(block); - } - } - } - - public void onBlockDamage(BlockDamageEvent event) - { - if(event.isCancelled()) - return; - Player player = event.getPlayer(); - PlayerProfile PP = Users.getProfile(player); - ItemStack inhand = player.getItemInHand(); - Block block = event.getBlock(); - - Skills.monitorSkills(player); - - /* - * ABILITY PREPARATION CHECKS - */ - if(PP.getHoePreparationMode() && Herbalism.canBeGreenTerra(block)) - Herbalism.greenTerraCheck(player, block); - if(PP.getAxePreparationMode() && block.getTypeId() == 17) - WoodCutting.treeFellerCheck(player, block); - if(PP.getPickaxePreparationMode() && Mining.canBeSuperBroken(block)) - Mining.superBreakerCheck(player, block); - if(PP.getShovelPreparationMode() && Excavation.canBeGigaDrillBroken(block)) - Excavation.gigaDrillBreakerActivationCheck(player, block); - if(PP.getFistsPreparationMode() && (Excavation.canBeGigaDrillBroken(block) || block.getTypeId() == 78)) - Unarmed.berserkActivationCheck(player); - - /* - * TREE FELLAN STUFF - */ - if(LoadProperties.spoutEnabled && block.getTypeId() == 17 && Users.getProfile(player).getTreeFellerMode()) - SpoutStuff.playSoundForPlayer(SoundEffect.FIZZ, player, block.getLocation()); - - /* - * GREEN TERRA STUFF - */ - if(PP.getGreenTerraMode() && mcPermissions.getInstance().herbalismAbility(player) && PP.getGreenTerraMode()) - { - Herbalism.greenTerra(player, block); - } - - /* - * GIGA DRILL BREAKER CHECKS - */ - if(PP.getGigaDrillBreakerMode() && m.blockBreakSimulate(block, player) - && Excavation.canBeGigaDrillBroken(block) && m.isShovel(inhand)) - { - int x = 0; - - while(x < 3) - { - if(block.getData() != (byte)5) - Excavation.excavationProcCheck(block.getData(), block.getType(), block.getLocation(), player); - x++; - } - - Material mat = Material.getMaterial(block.getTypeId()); - - if(block.getType() == Material.GRASS) - mat = Material.DIRT; - if(block.getType() == Material.CLAY) - mat = Material.CLAY_BALL; - - byte type = block.getData(); - ItemStack item = new ItemStack(mat, 1, (byte)0, type); - - block.setType(Material.AIR); - - player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType()); - - if(LoadProperties.toolsLoseDurabilityFromAbilities) - m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); - - if(item.getType() == Material.CLAY_BALL) - { - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - } else - { - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - } - - //Spout stuff - if(LoadProperties.spoutEnabled) - SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation()); - } - /* - * BERSERK MODE CHECKS - */ - if(PP.getBerserkMode() - && m.blockBreakSimulate(block, player) - && player.getItemInHand().getTypeId() == 0 - && (Excavation.canBeGigaDrillBroken(block) || block.getTypeId() == 78)) - { - Material mat = Material.getMaterial(block.getTypeId()); - - if(block.getTypeId() == 2) - mat = Material.DIRT; - if(block.getTypeId() == 78) - mat = Material.SNOW_BALL; - if(block.getTypeId() == 82) - mat = Material.CLAY_BALL; - - byte type = block.getData(); - - ItemStack item = new ItemStack(mat, 1, (byte)0, type); - player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType()); - - block.setType(Material.AIR); - - if(item.getType() == Material.CLAY_BALL) - { - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - } else - { - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); - } - - if(LoadProperties.spoutEnabled) - SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation()); - } - - /* - * SUPER BREAKER CHECKS - */ - if(PP.getSuperBreakerMode() - && Mining.canBeSuperBroken(block) - && m.blockBreakSimulate(block, player)) - { - - if(LoadProperties.miningrequirespickaxe) - { - if(m.isMiningPick(inhand)) - Mining.SuperBreakerBlockCheck(player, block, plugin); - } else { - Mining.SuperBreakerBlockCheck(player, block, plugin); - } - } - - /* - * LEAF BLOWER - */ - if(block.getTypeId() == 18 && mcPermissions.getInstance().woodcutting(player) && PP.getSkillLevel(SkillType.WOODCUTTING) >= 100 && m.isAxes(player.getItemInHand()) && m.blockBreakSimulate(block, player)) - { - m.damageTool(player, (short)1); - if(Math.random() * 10 > 9) - { - ItemStack x = new ItemStack(Material.SAPLING, 1, (short)0, block.getData()); - block.getLocation().getWorld().dropItemNaturally(block.getLocation(), x); - } - block.setType(Material.AIR); - player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType()); - if(LoadProperties.spoutEnabled) - SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation()); - } - if(block.getType() == Material.AIR && plugin.misc.blockWatchList.contains(block)) - { - plugin.misc.blockWatchList.remove(block); - } - } - - public void onBlockFromTo(BlockFromToEvent event) - { - Block blockFrom = event.getBlock(); - Block blockTo = event.getToBlock(); - if(m.shouldBeWatched(blockFrom) && blockFrom.getData() == (byte)5) - { - blockTo.setData((byte)5); - } - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.listeners; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.spout.SpoutStuff; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; + +import org.bukkit.Material; +import org.bukkit.Statistic; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockListener; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.inventory.ItemStack; +import org.getspout.spoutapi.SpoutManager; +import org.getspout.spoutapi.player.SpoutPlayer; +import org.getspout.spoutapi.sound.SoundEffect; + +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.skills.*; +import com.gmail.nossr50.datatypes.FakeBlockBreakEvent; + + +public class mcBlockListener extends BlockListener +{ + private final mcMMO plugin; + + public mcBlockListener(final mcMMO plugin) + { + this.plugin = plugin; + } + + public void onBlockPlace(BlockPlaceEvent event) + { + //Setup some basic vars + Block block; + Player player = event.getPlayer(); + + //When blocks are placed on snow this event reports the wrong block. + if (event.getBlockReplacedState() != null && event.getBlockReplacedState().getTypeId() == 78) + { + block = event.getBlockAgainst(); + } + else + { + block = event.getBlock(); + } + + //Check if the blocks placed should be monitored so they do not give out XP in the future + if(m.shouldBeWatched(block)) + { + if(block.getTypeId() != 17 && block.getTypeId() != 39 && block.getTypeId() != 40 && block.getTypeId() != 91 && block.getTypeId() != 86) + block.setData((byte) 5); //Change the byte + else if(block.getTypeId() == 17 || block.getTypeId() == 39 || block.getTypeId() == 40 || block.getTypeId() == 91 || block.getTypeId() == 86) + plugin.misc.blockWatchList.add(block); + } + + if(block.getTypeId() == 42 && LoadProperties.anvilmessages) + { + PlayerProfile PP = Users.getProfile(player); + if(LoadProperties.spoutEnabled) + { + SpoutPlayer sPlayer = SpoutManager.getPlayer(player); + if(sPlayer.isSpoutCraftEnabled()) + { + if(!PP.getPlacedAnvil()) + { + sPlayer.sendNotification("[mcMMO] Anvil Placed", "Right click to repair!", Material.IRON_BLOCK); + PP.togglePlacedAnvil(); + } + } + else + { + if(!PP.getPlacedAnvil()) + { + event.getPlayer().sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$ + PP.togglePlacedAnvil(); + } + } + } + else + { + if(!PP.getPlacedAnvil()) + { + event.getPlayer().sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$ + PP.togglePlacedAnvil(); + } + } + } + } + + public void onBlockBreak(BlockBreakEvent event) + { + Player player = event.getPlayer(); + PlayerProfile PP = Users.getProfile(player); + Block block = event.getBlock(); + ItemStack inhand = player.getItemInHand(); + if(event.isCancelled()) + return; + if (event instanceof FakeBlockBreakEvent) + return; + + /* + * HERBALISM + */ + + //Green Terra + if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalismAbility(player) && block.getTypeId() == 59 && block.getData() == (byte) 0x07) + { + Herbalism.greenTerraCheck(player, block); + } + + //Wheat && Triple drops + if(PP.getGreenTerraMode() && Herbalism.canBeGreenTerra(block)) + { + Herbalism.herbalismProcCheck(block, player, event, plugin); + Herbalism.greenTerraWheat(player, block, event, plugin); + } + + + /* + * MINING + */ + if(mcPermissions.getInstance().mining(player)) + { + if(LoadProperties.miningrequirespickaxe) + { + if(m.isMiningPick(inhand)) + { + Mining.miningBlockCheck(false, player, block, plugin); + } + } else + { + Mining.miningBlockCheck(false, player, block, plugin); + } + } + /* + * WOOD CUTTING + */ + + if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player)) + { + if(LoadProperties.woodcuttingrequiresaxe) + { + if(m.isAxes(inhand)) + { + if(!plugin.misc.blockWatchList.contains(block)) + { + WoodCutting.woodCuttingProcCheck(player, block); + //Default + if(block.getData() == (byte)0) + PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine, player); + //Spruce + if(block.getData() == (byte)1) + PP.addXP(SkillType.WOODCUTTING, LoadProperties.mspruce, player); + //Birch + if(block.getData() == (byte)2) + PP.addXP(SkillType.WOODCUTTING, LoadProperties.mbirch, player); + } + } + } else + { + if(!plugin.misc.blockWatchList.contains(block)) + { + WoodCutting.woodCuttingProcCheck(player, block); + //Default + if(block.getData() == (byte)0) + PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine, player); + //Spruce + if(block.getData() == (byte)1) + PP.addXP(SkillType.WOODCUTTING, LoadProperties.mspruce, player); + //Birch + if(block.getData() == (byte)2) + PP.addXP(SkillType.WOODCUTTING, LoadProperties.mbirch, player); + } + } + Skills.XpCheckSkill(SkillType.WOODCUTTING, player); + + /* + * IF PLAYER IS USING TREEFELLER + */ + if(mcPermissions.getInstance().woodCuttingAbility(player) + && PP.getTreeFellerMode() + && block.getTypeId() == 17 + && m.blockBreakSimulate(block, player)) + { + if(LoadProperties.spoutEnabled) + SpoutStuff.playSoundForPlayer(SoundEffect.EXPLODE, player, block.getLocation()); + + WoodCutting.treeFeller(block, player, plugin); + for(Block blockx : plugin.misc.treeFeller) + { + if(blockx != null) + { + Material mat = Material.getMaterial(block.getTypeId()); + byte type = 0; + if(block.getTypeId() == 17) + type = block.getData(); + ItemStack item = new ItemStack(mat, 1, (byte)0, type); + if(blockx.getTypeId() == 17) + { + blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item); + //XP WOODCUTTING + if(!plugin.misc.blockWatchList.contains(block)) + { + WoodCutting.woodCuttingProcCheck(player, blockx); + PP.addXP(SkillType.WOODCUTTING, LoadProperties.mpine, player); + } + } + if(blockx.getTypeId() == 18) + { + mat = Material.SAPLING; + + item = new ItemStack(mat, 1, (short)0, blockx.getData()); + + if(Math.random() * 10 > 9) + blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item); + } + if(blockx.getType() != Material.AIR) + player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType()); + blockx.setType(Material.AIR); + } + } + if(LoadProperties.toolsLoseDurabilityFromAbilities) + m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); + plugin.misc.treeFeller.clear(); + } + } + /* + * EXCAVATION + */ + if(Excavation.canBeGigaDrillBroken(block) && mcPermissions.getInstance().excavation(player) && block.getData() != (byte) 5) + Excavation.excavationProcCheck(block.getData(), block.getType(), block.getLocation(), player); + /* + * HERBALISM + */ + if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalism(player) && Herbalism.canBeGreenTerra(block)) + { + Herbalism.greenTerraCheck(player, block); + } + if(mcPermissions.getInstance().herbalism(player) && block.getData() != (byte) 5) + Herbalism.herbalismProcCheck(block, player, event, plugin); + + //Change the byte back when broken + if(block.getData() == 5 && m.shouldBeWatched(block)) + { + block.setData((byte) 0); + if(plugin.misc.blockWatchList.contains(block)) + { + plugin.misc.blockWatchList.remove(block); + } + } + } + + public void onBlockDamage(BlockDamageEvent event) + { + if(event.isCancelled()) + return; + Player player = event.getPlayer(); + PlayerProfile PP = Users.getProfile(player); + ItemStack inhand = player.getItemInHand(); + Block block = event.getBlock(); + + Skills.monitorSkills(player); + + /* + * ABILITY PREPARATION CHECKS + */ + if(PP.getHoePreparationMode() && Herbalism.canBeGreenTerra(block)) + Herbalism.greenTerraCheck(player, block); + if(PP.getAxePreparationMode() && block.getTypeId() == 17) + WoodCutting.treeFellerCheck(player, block); + if(PP.getPickaxePreparationMode() && Mining.canBeSuperBroken(block)) + Mining.superBreakerCheck(player, block); + if(PP.getShovelPreparationMode() && Excavation.canBeGigaDrillBroken(block)) + Excavation.gigaDrillBreakerActivationCheck(player, block); + if(PP.getFistsPreparationMode() && (Excavation.canBeGigaDrillBroken(block) || block.getTypeId() == 78)) + Unarmed.berserkActivationCheck(player); + + /* + * TREE FELLAN STUFF + */ + if(LoadProperties.spoutEnabled && block.getTypeId() == 17 && Users.getProfile(player).getTreeFellerMode()) + SpoutStuff.playSoundForPlayer(SoundEffect.FIZZ, player, block.getLocation()); + + /* + * GREEN TERRA STUFF + */ + if(PP.getGreenTerraMode() && mcPermissions.getInstance().herbalismAbility(player) && PP.getGreenTerraMode()) + { + Herbalism.greenTerra(player, block); + } + + /* + * GIGA DRILL BREAKER CHECKS + */ + if(PP.getGigaDrillBreakerMode() && m.blockBreakSimulate(block, player) + && Excavation.canBeGigaDrillBroken(block) && m.isShovel(inhand)) + { + int x = 0; + + while(x < 3) + { + if(block.getData() != (byte)5) + Excavation.excavationProcCheck(block.getData(), block.getType(), block.getLocation(), player); + x++; + } + + Material mat = Material.getMaterial(block.getTypeId()); + + if(block.getType() == Material.GRASS) + mat = Material.DIRT; + if(block.getType() == Material.CLAY) + mat = Material.CLAY_BALL; + + byte type = block.getData(); + ItemStack item = new ItemStack(mat, 1, (byte)0, type); + + block.setType(Material.AIR); + + player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType()); + + if(LoadProperties.toolsLoseDurabilityFromAbilities) + m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); + + if(item.getType() == Material.CLAY_BALL) + { + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + } else + { + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + } + + //Spout stuff + if(LoadProperties.spoutEnabled) + SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation()); + } + /* + * BERSERK MODE CHECKS + */ + if(PP.getBerserkMode() + && m.blockBreakSimulate(block, player) + && player.getItemInHand().getTypeId() == 0 + && (Excavation.canBeGigaDrillBroken(block) || block.getTypeId() == 78)) + { + Material mat = Material.getMaterial(block.getTypeId()); + + if(block.getTypeId() == 2) + mat = Material.DIRT; + if(block.getTypeId() == 78) + mat = Material.SNOW_BALL; + if(block.getTypeId() == 82) + mat = Material.CLAY_BALL; + + byte type = block.getData(); + + ItemStack item = new ItemStack(mat, 1, (byte)0, type); + player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType()); + + block.setType(Material.AIR); + + if(item.getType() == Material.CLAY_BALL) + { + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + } else + { + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + } + + if(LoadProperties.spoutEnabled) + SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation()); + } + + /* + * SUPER BREAKER CHECKS + */ + if(PP.getSuperBreakerMode() + && Mining.canBeSuperBroken(block) + && m.blockBreakSimulate(block, player)) + { + + if(LoadProperties.miningrequirespickaxe) + { + if(m.isMiningPick(inhand)) + Mining.SuperBreakerBlockCheck(player, block, plugin); + } else { + Mining.SuperBreakerBlockCheck(player, block, plugin); + } + } + + /* + * LEAF BLOWER + */ + if(block.getTypeId() == 18 && mcPermissions.getInstance().woodcutting(player) && PP.getSkillLevel(SkillType.WOODCUTTING) >= 100 && m.isAxes(player.getItemInHand()) && m.blockBreakSimulate(block, player)) + { + m.damageTool(player, (short)1); + if(Math.random() * 10 > 9) + { + ItemStack x = new ItemStack(Material.SAPLING, 1, (short)0, block.getData()); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), x); + } + block.setType(Material.AIR); + player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType()); + if(LoadProperties.spoutEnabled) + SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation()); + } + if(block.getType() == Material.AIR && plugin.misc.blockWatchList.contains(block)) + { + plugin.misc.blockWatchList.remove(block); + } + } + + public void onBlockFromTo(BlockFromToEvent event) + { + Block blockFrom = event.getBlock(); + Block blockTo = event.getToBlock(); + if(m.shouldBeWatched(blockFrom) && blockFrom.getData() == (byte)5) + { + blockTo.setData((byte)5); + } + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/listeners/mcEntityListener.java b/src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java similarity index 97% rename from src/com/gmail/nossr50/listeners/mcEntityListener.java rename to src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java index 4f9ad9177..4788b1f8a 100644 --- a/src/com/gmail/nossr50/listeners/mcEntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java @@ -1,208 +1,208 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.listeners; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Wolf; -import org.bukkit.event.entity.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.inventory.ItemStack; - -import com.gmail.nossr50.Combat; -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.party.Party; -import com.gmail.nossr50.skills.Acrobatics; -import com.gmail.nossr50.skills.Skills; -import com.gmail.nossr50.skills.Taming; - - -public class mcEntityListener extends EntityListener -{ - private final mcMMO plugin; - - public mcEntityListener(final mcMMO plugin) { - this.plugin = plugin; - } - - public void onEntityDamage(EntityDamageEvent event) - { - if(event.isCancelled()) - return; - //Check for world pvp flag - if(event instanceof EntityDamageByEntityEvent) - { - EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent)event; - if(eventb.getEntity() instanceof Player && eventb.getDamager() instanceof Player && !event.getEntity().getWorld().getPVP()) - return; - } - /* - * CHECK FOR INVULNERABILITY - */ - if(event.getEntity() instanceof Player) - { - Player defender = (Player)event.getEntity(); - PlayerProfile PPd = Users.getProfile(defender); - if(defender != null && PPd.getGodMode()) - event.setCancelled(true); - if(PPd == null) - Users.addUser(defender); - } - - if(event.getEntity() instanceof LivingEntity) - { - //CraftEntity cEntity = (CraftEntity)event.getEntity(); - //if(cEntity.getHandle() instanceof EntityLiving) - { - LivingEntity entityliving = (LivingEntity)event.getEntity(); - if(entityliving.getNoDamageTicks() < entityliving.getMaximumNoDamageTicks()/2.0F) - { - Entity x = event.getEntity(); - DamageCause type = event.getCause(); - if(event.getEntity() instanceof Wolf && ((Wolf)event.getEntity()).isTamed() && Taming.getOwner(((Wolf)event.getEntity()), plugin) != null) - { - Wolf theWolf = (Wolf) event.getEntity(); - Player master = Taming.getOwner(theWolf, plugin); - PlayerProfile PPo = Users.getProfile(master); - if(master == null || PPo == null) - return; - //Environmentally Aware - if((event.getCause() == DamageCause.CONTACT || event.getCause() == DamageCause.LAVA || event.getCause() == DamageCause.FIRE) && PPo.getSkillLevel(SkillType.TAMING) >= 100) - { - if(event.getDamage() < ((Wolf) event.getEntity()).getHealth()) - { - event.getEntity().teleport(Taming.getOwner(theWolf, plugin).getLocation()); - master.sendMessage(mcLocale.getString("mcEntityListener.WolfComesBack")); //$NON-NLS-1$ - event.getEntity().setFireTicks(0); - } - } - if(event.getCause() == DamageCause.FALL && PPo.getSkillLevel(SkillType.TAMING) >= 100) - { - event.setCancelled(true); - } - - //Thick Fur - if(event.getCause() == DamageCause.FIRE_TICK) - { - event.getEntity().setFireTicks(0); - } - } - - /* - * ACROBATICS - */ - if(x instanceof Player){ - Player player = (Player)x; - if(type == DamageCause.FALL){ - Acrobatics.acrobaticsCheck(player, event); - } - } - - /* - * Entity Damage by Entity checks - */ - if(event instanceof EntityDamageByEntityEvent && !event.isCancelled()) - { - EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; - Entity f = eventb.getDamager(); - Entity e = event.getEntity(); - /* - * PARTY CHECKS - */ - if(event.getEntity() instanceof Player && f instanceof Player) - { - Player defender = (Player)e; - Player attacker = (Player)f; - if(Party.getInstance().inSameParty(defender, attacker)) - event.setCancelled(true); - } - Combat.combatChecks(event, plugin); - } - /* - * Check to see if the defender took damage so we can apply recently hurt - */ - if(event.getEntity() instanceof Player) - { - Player herpderp = (Player)event.getEntity(); - if(!event.isCancelled() && event.getDamage() >= 1) - { - Users.getProfile(herpderp).setRecentlyHurt(System.currentTimeMillis()); - } - } - } - } - } - } - - public void onEntityDeath(EntityDeathEvent event) - { - Entity x = event.getEntity(); - x.setFireTicks(0); - - //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()); - } - } - - 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; - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.listeners; + +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Wolf; +import org.bukkit.event.entity.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.inventory.ItemStack; + +import com.gmail.nossr50.Combat; +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.party.Party; +import com.gmail.nossr50.skills.Acrobatics; +import com.gmail.nossr50.skills.Skills; +import com.gmail.nossr50.skills.Taming; + + +public class mcEntityListener extends EntityListener +{ + private final mcMMO plugin; + + public mcEntityListener(final mcMMO plugin) { + this.plugin = plugin; + } + + public void onEntityDamage(EntityDamageEvent event) + { + if(event.isCancelled()) + return; + //Check for world pvp flag + if(event instanceof EntityDamageByEntityEvent) + { + EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent)event; + if(eventb.getEntity() instanceof Player && eventb.getDamager() instanceof Player && !event.getEntity().getWorld().getPVP()) + return; + } + /* + * CHECK FOR INVULNERABILITY + */ + if(event.getEntity() instanceof Player) + { + Player defender = (Player)event.getEntity(); + PlayerProfile PPd = Users.getProfile(defender); + if(defender != null && PPd.getGodMode()) + event.setCancelled(true); + if(PPd == null) + Users.addUser(defender); + } + + if(event.getEntity() instanceof LivingEntity) + { + //CraftEntity cEntity = (CraftEntity)event.getEntity(); + //if(cEntity.getHandle() instanceof EntityLiving) + { + LivingEntity entityliving = (LivingEntity)event.getEntity(); + if(entityliving.getNoDamageTicks() < entityliving.getMaximumNoDamageTicks()/2.0F) + { + Entity x = event.getEntity(); + DamageCause type = event.getCause(); + if(event.getEntity() instanceof Wolf && ((Wolf)event.getEntity()).isTamed() && Taming.getOwner(((Wolf)event.getEntity()), plugin) != null) + { + Wolf theWolf = (Wolf) event.getEntity(); + Player master = Taming.getOwner(theWolf, plugin); + PlayerProfile PPo = Users.getProfile(master); + if(master == null || PPo == null) + return; + //Environmentally Aware + if((event.getCause() == DamageCause.CONTACT || event.getCause() == DamageCause.LAVA || event.getCause() == DamageCause.FIRE) && PPo.getSkillLevel(SkillType.TAMING) >= 100) + { + if(event.getDamage() < ((Wolf) event.getEntity()).getHealth()) + { + event.getEntity().teleport(Taming.getOwner(theWolf, plugin).getLocation()); + master.sendMessage(mcLocale.getString("mcEntityListener.WolfComesBack")); //$NON-NLS-1$ + event.getEntity().setFireTicks(0); + } + } + if(event.getCause() == DamageCause.FALL && PPo.getSkillLevel(SkillType.TAMING) >= 100) + { + event.setCancelled(true); + } + + //Thick Fur + if(event.getCause() == DamageCause.FIRE_TICK) + { + event.getEntity().setFireTicks(0); + } + } + + /* + * ACROBATICS + */ + if(x instanceof Player){ + Player player = (Player)x; + if(type == DamageCause.FALL){ + Acrobatics.acrobaticsCheck(player, event); + } + } + + /* + * Entity Damage by Entity checks + */ + if(event instanceof EntityDamageByEntityEvent && !event.isCancelled()) + { + EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; + Entity f = eventb.getDamager(); + Entity e = event.getEntity(); + /* + * PARTY CHECKS + */ + if(event.getEntity() instanceof Player && f instanceof Player) + { + Player defender = (Player)e; + Player attacker = (Player)f; + if(Party.getInstance().inSameParty(defender, attacker)) + event.setCancelled(true); + } + Combat.combatChecks(event, plugin); + } + /* + * Check to see if the defender took damage so we can apply recently hurt + */ + if(event.getEntity() instanceof Player) + { + Player herpderp = (Player)event.getEntity(); + if(!event.isCancelled() && event.getDamage() >= 1) + { + Users.getProfile(herpderp).setRecentlyHurt(System.currentTimeMillis()); + } + } + } + } + } + } + + public void onEntityDeath(EntityDeathEvent event) + { + Entity x = event.getEntity(); + x.setFireTicks(0); + + //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()); + } + } + + 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/src/com/gmail/nossr50/listeners/mcPlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java similarity index 97% rename from src/com/gmail/nossr50/listeners/mcPlayerListener.java rename to src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java index 14f8c7621..770b13331 100644 --- a/src/com/gmail/nossr50/listeners/mcPlayerListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java @@ -1,346 +1,346 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.listeners; - -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.command.ColouredConsoleSender; -import org.bukkit.craftbukkit.entity.CraftItem; -import org.bukkit.entity.CreatureType; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Wolf; -import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerFishEvent; -import org.bukkit.event.player.PlayerFishEvent.State; -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.PlayerPickupItemEvent; -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.commands.general.XprateCommand; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.spout.SpoutStuff; -import com.gmail.nossr50.spout.mmoHelper; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.party.Party; -import com.gmail.nossr50.skills.Fishing; -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 onPlayerFish(PlayerFishEvent event) - { - if(mcPermissions.getInstance().fishing(event.getPlayer())) - { - if(event.getState() == State.CAUGHT_FISH) - { - if(event.getCaught() instanceof CraftItem) - { - Fishing.processResults(event); - } - } else if (event.getState() == State.CAUGHT_ENTITY) - { - if(Users.getProfile(event.getPlayer()).getSkillLevel(SkillType.FISHING) >= 150 && event.getCaught() instanceof LivingEntity) - { - Fishing.shakeMob(event); - } - } - } - } - - public void onPlayerPickupItem(PlayerPickupItemEvent event) - { - if(Users.getProfile(event.getPlayer()).getBerserkMode()) - { - event.setCancelled(true); - } - } - - public void onPlayerRespawn(PlayerRespawnEvent event) - { - - Player player = event.getPlayer(); - PlayerProfile PP = Users.getProfile(player); - if(LoadProperties.enableMySpawn && mcPermissions.getInstance().mySpawn(player)) - { - if(player != null && PP != null) - { - PP.setRespawnATS(System.currentTimeMillis()); - - Location mySpawn = PP.getMySpawn(player); - - 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 - Player player = event.getPlayer(); - - if(LoadProperties.spoutEnabled) - { - if(SpoutStuff.playerHUDs.containsKey(player)) - SpoutStuff.playerHUDs.remove(player); - if(mmoHelper.containers.containsKey(player)) - mmoHelper.containers.remove(player); - } - - Users.removeUser(event.getPlayer()); - } - - public void onPlayerJoin(PlayerJoinEvent event) - { - Player player = event.getPlayer(); - if(mcPermissions.getInstance().motd(player) && LoadProperties.enableMotd) - { - player.sendMessage(mcLocale.getString("mcPlayerListener.MOTD", new Object[] {plugin.getDescription().getVersion(), LoadProperties.mcmmo})); - player.sendMessage(mcLocale.getString("mcPlayerListener.WIKI")); - } - //THIS IS VERY BAD WAY TO DO THINGS, NEED BETTER WAY - if(XprateCommand.xpevent) - player.sendMessage(ChatColor.GOLD+"mcMMO is currently in an XP rate event! XP rate is "+LoadProperties.xpGainMultiplier+"x!"); - } - - public void onPlayerInteract(PlayerInteractEvent event) - { - Player player = event.getPlayer(); - PlayerProfile PP = Users.getProfile(player); - Action action = event.getAction(); - Block block = event.getClickedBlock(); - - /* - * 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.isTools(player.getItemInHand()) || Repair.isArmor(player.getItemInHand()))) - { - Repair.repairCheck(player, is, event.getClickedBlock()); - event.setCancelled(true); - player.updateInventory(); - } - - if(LoadProperties.enableAbilities && 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 && mcPermissions.getInstance().herbalism(player) && (block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT || block.getType() == Material.SMOOTH_BRICK) && player.getItemInHand().getType() == Material.SEEDS) - { - boolean pass = false; - if(Herbalism.hasSeeds(player)) - { - Herbalism.removeSeeds(player); - - if(block.getType() == Material.DIRT || block.getType() == Material.COBBLESTONE || block.getType() == Material.SMOOTH_BRICK) - { - if(Math.random() * 1500 <= PP.getSkillLevel(SkillType.HERBALISM) && m.blockBreakSimulate(block, player)) - { - switch(block.getType()) - { - case COBBLESTONE: - if(LoadProperties.enableCobbleToMossy) - { - block.setType(Material.MOSSY_COBBLESTONE); - pass = true; - } - break; - case DIRT: - pass = true; - block.setType(Material.GRASS); - break; - case SMOOTH_BRICK: - pass = true; - block.setData((byte)1); - break; - } - if(pass == false) - player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumbFail")); - } - } - } - return; - } - } - if(LoadProperties.enableAbilities && action == Action.RIGHT_CLICK_AIR) - { - Skills.hoeReadinessCheck(player); - Skills.abilityActivationCheck(player); - } - - /* - * ITEM CHECKS - */ - if(action == Action.RIGHT_CLICK_AIR) - Item.itemchecks(player, plugin); - if(action == Action.RIGHT_CLICK_BLOCK) - { - if(m.abilityBlockCheck(event.getClickedBlock())) - Item.itemchecks(player, plugin); - } - - if(player.isSneaking() && mcPermissions.getInstance().taming(player) && (action == Action.RIGHT_CLICK_AIR || action == Action.RIGHT_CLICK_BLOCK)) - { - if(player.getItemInHand().getType() == Material.BONE && player.getItemInHand().getAmount() > 9) - { - for(Entity x : player.getNearbyEntities(40, 40, 40)) - { - if(x instanceof Wolf) - { - player.sendMessage(mcLocale.getString("m.TamingSummonFailed")); - return; - } - } - World world = player.getWorld(); - world.spawnCreature(player.getLocation(), CreatureType.WOLF); - - ItemStack[] inventory = player.getInventory().getContents(); - for(ItemStack x : inventory){ - if(x != null && x.getAmount() > LoadProperties.bonesConsumedByCOTW-1 && x.getType() == Material.BONE){ - if(x.getAmount() >= LoadProperties.bonesConsumedByCOTW) - { - x.setAmount(x.getAmount() - LoadProperties.bonesConsumedByCOTW); - player.getInventory().setContents(inventory); - player.updateInventory(); - break; - } else { - x.setAmount(0); - x.setTypeId(0); - player.getInventory().setContents(inventory); - player.updateInventory(); - break; - } - } - } - player.sendMessage(mcLocale.getString("m.TamingSummon")); - } - } - } - - public void onPlayerChat(PlayerChatEvent event) - { - Player player = event.getPlayer(); - PlayerProfile PP = Users.getProfile(player); - if(PP.getPartyChatMode()) - { - event.setCancelled(true); - String format = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getDisplayName() + ChatColor.GREEN + ") "+event.getMessage(); - for(Player x : Bukkit.getServer().getOnlinePlayers()) - { - if(Party.getInstance().inSameParty(player, x)) - x.sendMessage(format); - } - if(Bukkit.getServer() instanceof ColouredConsoleSender) - { - ColouredConsoleSender ccs = (ColouredConsoleSender) Bukkit.getServer(); - ccs.sendMessage(ChatColor.GREEN+"[P]"+format); //Colors, woot! - } - } else if (PP.getAdminChatMode()) { - event.setCancelled(true); - String format = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getDisplayName() + ChatColor.AQUA + "} "+event.getMessage(); - for(Player x : Bukkit.getServer().getOnlinePlayers()) - { - if(x.isOp() || mcPermissions.getInstance().adminChat(x)) - x.sendMessage(format); - } - if(Bukkit.getServer() instanceof ColouredConsoleSender) - { - ColouredConsoleSender ccs = (ColouredConsoleSender) Bukkit.getServer(); - ccs.sendMessage(ChatColor.AQUA+"[A]"+format); //Colors, woot! - } else { - log.log(Level.INFO, "[A]"+format); - } - } - } - - public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { - String message = event.getMessage(); - if(!message.startsWith("/")) return; - String command = message.substring(1).split(" ")[0]; - if(plugin.aliasMap.containsKey(command)) { - event.setCancelled(true); - event.getPlayer().chat(message.replaceFirst(command, plugin.aliasMap.get(command))); - } - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.listeners; + +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Block; +import org.bukkit.craftbukkit.command.ColouredConsoleSender; +import org.bukkit.craftbukkit.entity.CraftItem; +import org.bukkit.entity.CreatureType; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Wolf; +import org.bukkit.event.block.Action; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.event.player.PlayerFishEvent.State; +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.PlayerPickupItemEvent; +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.commands.general.XprateCommand; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.spout.SpoutStuff; +import com.gmail.nossr50.spout.mmoHelper; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.party.Party; +import com.gmail.nossr50.skills.Fishing; +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 onPlayerFish(PlayerFishEvent event) + { + if(mcPermissions.getInstance().fishing(event.getPlayer())) + { + if(event.getState() == State.CAUGHT_FISH) + { + if(event.getCaught() instanceof CraftItem) + { + Fishing.processResults(event); + } + } else if (event.getState() == State.CAUGHT_ENTITY) + { + if(Users.getProfile(event.getPlayer()).getSkillLevel(SkillType.FISHING) >= 150 && event.getCaught() instanceof LivingEntity) + { + Fishing.shakeMob(event); + } + } + } + } + + public void onPlayerPickupItem(PlayerPickupItemEvent event) + { + if(Users.getProfile(event.getPlayer()).getBerserkMode()) + { + event.setCancelled(true); + } + } + + public void onPlayerRespawn(PlayerRespawnEvent event) + { + + Player player = event.getPlayer(); + PlayerProfile PP = Users.getProfile(player); + if(LoadProperties.enableMySpawn && mcPermissions.getInstance().mySpawn(player)) + { + if(player != null && PP != null) + { + PP.setRespawnATS(System.currentTimeMillis()); + + Location mySpawn = PP.getMySpawn(player); + + 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 + Player player = event.getPlayer(); + + if(LoadProperties.spoutEnabled) + { + if(SpoutStuff.playerHUDs.containsKey(player)) + SpoutStuff.playerHUDs.remove(player); + if(mmoHelper.containers.containsKey(player)) + mmoHelper.containers.remove(player); + } + + Users.removeUser(event.getPlayer()); + } + + public void onPlayerJoin(PlayerJoinEvent event) + { + Player player = event.getPlayer(); + if(mcPermissions.getInstance().motd(player) && LoadProperties.enableMotd) + { + player.sendMessage(mcLocale.getString("mcPlayerListener.MOTD", new Object[] {plugin.getDescription().getVersion(), LoadProperties.mcmmo})); + player.sendMessage(mcLocale.getString("mcPlayerListener.WIKI")); + } + //THIS IS VERY BAD WAY TO DO THINGS, NEED BETTER WAY + if(XprateCommand.xpevent) + player.sendMessage(ChatColor.GOLD+"mcMMO is currently in an XP rate event! XP rate is "+LoadProperties.xpGainMultiplier+"x!"); + } + + public void onPlayerInteract(PlayerInteractEvent event) + { + Player player = event.getPlayer(); + PlayerProfile PP = Users.getProfile(player); + Action action = event.getAction(); + Block block = event.getClickedBlock(); + + /* + * 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.isTools(player.getItemInHand()) || Repair.isArmor(player.getItemInHand()))) + { + Repair.repairCheck(player, is, event.getClickedBlock()); + event.setCancelled(true); + player.updateInventory(); + } + + if(LoadProperties.enableAbilities && 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 && mcPermissions.getInstance().herbalism(player) && (block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT || block.getType() == Material.SMOOTH_BRICK) && player.getItemInHand().getType() == Material.SEEDS) + { + boolean pass = false; + if(Herbalism.hasSeeds(player)) + { + Herbalism.removeSeeds(player); + + if(block.getType() == Material.DIRT || block.getType() == Material.COBBLESTONE || block.getType() == Material.SMOOTH_BRICK) + { + if(Math.random() * 1500 <= PP.getSkillLevel(SkillType.HERBALISM) && m.blockBreakSimulate(block, player)) + { + switch(block.getType()) + { + case COBBLESTONE: + if(LoadProperties.enableCobbleToMossy) + { + block.setType(Material.MOSSY_COBBLESTONE); + pass = true; + } + break; + case DIRT: + pass = true; + block.setType(Material.GRASS); + break; + case SMOOTH_BRICK: + pass = true; + block.setData((byte)1); + break; + } + if(pass == false) + player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumbFail")); + } + } + } + return; + } + } + if(LoadProperties.enableAbilities && action == Action.RIGHT_CLICK_AIR) + { + Skills.hoeReadinessCheck(player); + Skills.abilityActivationCheck(player); + } + + /* + * ITEM CHECKS + */ + if(action == Action.RIGHT_CLICK_AIR) + Item.itemchecks(player, plugin); + if(action == Action.RIGHT_CLICK_BLOCK) + { + if(m.abilityBlockCheck(event.getClickedBlock())) + Item.itemchecks(player, plugin); + } + + if(player.isSneaking() && mcPermissions.getInstance().taming(player) && (action == Action.RIGHT_CLICK_AIR || action == Action.RIGHT_CLICK_BLOCK)) + { + if(player.getItemInHand().getType() == Material.BONE && player.getItemInHand().getAmount() > 9) + { + for(Entity x : player.getNearbyEntities(40, 40, 40)) + { + if(x instanceof Wolf) + { + player.sendMessage(mcLocale.getString("m.TamingSummonFailed")); + return; + } + } + World world = player.getWorld(); + world.spawnCreature(player.getLocation(), CreatureType.WOLF); + + ItemStack[] inventory = player.getInventory().getContents(); + for(ItemStack x : inventory){ + if(x != null && x.getAmount() > LoadProperties.bonesConsumedByCOTW-1 && x.getType() == Material.BONE){ + if(x.getAmount() >= LoadProperties.bonesConsumedByCOTW) + { + x.setAmount(x.getAmount() - LoadProperties.bonesConsumedByCOTW); + player.getInventory().setContents(inventory); + player.updateInventory(); + break; + } else { + x.setAmount(0); + x.setTypeId(0); + player.getInventory().setContents(inventory); + player.updateInventory(); + break; + } + } + } + player.sendMessage(mcLocale.getString("m.TamingSummon")); + } + } + } + + public void onPlayerChat(PlayerChatEvent event) + { + Player player = event.getPlayer(); + PlayerProfile PP = Users.getProfile(player); + if(PP.getPartyChatMode()) + { + event.setCancelled(true); + String format = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getDisplayName() + ChatColor.GREEN + ") "+event.getMessage(); + for(Player x : Bukkit.getServer().getOnlinePlayers()) + { + if(Party.getInstance().inSameParty(player, x)) + x.sendMessage(format); + } + if(Bukkit.getServer() instanceof ColouredConsoleSender) + { + ColouredConsoleSender ccs = (ColouredConsoleSender) Bukkit.getServer(); + ccs.sendMessage(ChatColor.GREEN+"[P]"+format); //Colors, woot! + } + } else if (PP.getAdminChatMode()) { + event.setCancelled(true); + String format = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getDisplayName() + ChatColor.AQUA + "} "+event.getMessage(); + for(Player x : Bukkit.getServer().getOnlinePlayers()) + { + if(x.isOp() || mcPermissions.getInstance().adminChat(x)) + x.sendMessage(format); + } + if(Bukkit.getServer() instanceof ColouredConsoleSender) + { + ColouredConsoleSender ccs = (ColouredConsoleSender) Bukkit.getServer(); + ccs.sendMessage(ChatColor.AQUA+"[A]"+format); //Colors, woot! + } else { + log.log(Level.INFO, "[A]"+format); + } + } + } + + public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { + String message = event.getMessage(); + if(!message.startsWith("/")) return; + String command = message.substring(1).split(" ")[0]; + if(plugin.aliasMap.containsKey(command)) { + event.setCancelled(true); + event.getPlayer().chat(message.replaceFirst(command, plugin.aliasMap.get(command))); + } + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/listeners/mcSpoutInputListener.java b/src/main/java/com/gmail/nossr50/listeners/mcSpoutInputListener.java similarity index 97% rename from src/com/gmail/nossr50/listeners/mcSpoutInputListener.java rename to src/main/java/com/gmail/nossr50/listeners/mcSpoutInputListener.java index d7f8adf18..0d1e7c9c7 100644 --- a/src/com/gmail/nossr50/listeners/mcSpoutInputListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcSpoutInputListener.java @@ -1,61 +1,61 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.listeners; - -import org.getspout.spoutapi.event.input.InputListener; -import org.getspout.spoutapi.event.input.KeyPressedEvent; -import org.getspout.spoutapi.gui.ScreenType; -import org.getspout.spoutapi.player.SpoutPlayer; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.datatypes.popups.PopupMMO; -import com.gmail.nossr50.spout.SpoutStuff; - -public class mcSpoutInputListener extends InputListener -{ - mcMMO plugin = null; - - public mcSpoutInputListener(mcMMO pluginx) - { - plugin = pluginx; - } - - public void onKeyPressedEvent(KeyPressedEvent event) - { - if(!event.getPlayer().isSpoutCraftEnabled() || event.getPlayer().getMainScreen().getActivePopup() != null) - return; - if(event.getScreenType() != ScreenType.GAME_SCREEN) - return; - - SpoutPlayer sPlayer = event.getPlayer(); - - if(event.getKey() == SpoutStuff.keypress) - { - if(!SpoutStuff.playerScreens.containsKey(sPlayer)) - { - PopupMMO mmoPop = new PopupMMO(sPlayer, Users.getProfile(sPlayer), plugin); - SpoutStuff.playerScreens.put(sPlayer, mmoPop); - sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer)); - sPlayer.getMainScreen().setDirty(true); - } else { - sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer)); - sPlayer.getMainScreen().setDirty(true); - } - } - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.listeners; + +import org.getspout.spoutapi.event.input.InputListener; +import org.getspout.spoutapi.event.input.KeyPressedEvent; +import org.getspout.spoutapi.gui.ScreenType; +import org.getspout.spoutapi.player.SpoutPlayer; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.datatypes.popups.PopupMMO; +import com.gmail.nossr50.spout.SpoutStuff; + +public class mcSpoutInputListener extends InputListener +{ + mcMMO plugin = null; + + public mcSpoutInputListener(mcMMO pluginx) + { + plugin = pluginx; + } + + public void onKeyPressedEvent(KeyPressedEvent event) + { + if(!event.getPlayer().isSpoutCraftEnabled() || event.getPlayer().getMainScreen().getActivePopup() != null) + return; + if(event.getScreenType() != ScreenType.GAME_SCREEN) + return; + + SpoutPlayer sPlayer = event.getPlayer(); + + if(event.getKey() == SpoutStuff.keypress) + { + if(!SpoutStuff.playerScreens.containsKey(sPlayer)) + { + PopupMMO mmoPop = new PopupMMO(sPlayer, Users.getProfile(sPlayer), plugin); + SpoutStuff.playerScreens.put(sPlayer, mmoPop); + sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer)); + sPlayer.getMainScreen().setDirty(true); + } else { + sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer)); + sPlayer.getMainScreen().setDirty(true); + } + } + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/listeners/mcSpoutListener.java b/src/main/java/com/gmail/nossr50/listeners/mcSpoutListener.java similarity index 96% rename from src/com/gmail/nossr50/listeners/mcSpoutListener.java rename to src/main/java/com/gmail/nossr50/listeners/mcSpoutListener.java index 0019ab9f8..fc79ff7a2 100644 --- a/src/com/gmail/nossr50/listeners/mcSpoutListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcSpoutListener.java @@ -1,49 +1,49 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.listeners; - -import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent; -import org.getspout.spoutapi.event.spout.SpoutListener; -import org.getspout.spoutapi.player.SpoutPlayer; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.datatypes.HUDmmo; -import com.gmail.nossr50.spout.SpoutStuff; - -public class mcSpoutListener extends SpoutListener -{ - mcMMO plugin = null; - - public mcSpoutListener(mcMMO pluginx) - { - plugin = pluginx; - } - - public void onSpoutCraftEnable(SpoutCraftEnableEvent event) - { - SpoutPlayer sPlayer = event.getPlayer(); - if(sPlayer.isSpoutCraftEnabled()) - { - //Setup Party HUD stuff - SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer)); - - //Party.update(sPlayer); - Users.getProfile(sPlayer).toggleSpoutEnabled(); - } - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.listeners; + +import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent; +import org.getspout.spoutapi.event.spout.SpoutListener; +import org.getspout.spoutapi.player.SpoutPlayer; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.datatypes.HUDmmo; +import com.gmail.nossr50.spout.SpoutStuff; + +public class mcSpoutListener extends SpoutListener +{ + mcMMO plugin = null; + + public mcSpoutListener(mcMMO pluginx) + { + plugin = pluginx; + } + + public void onSpoutCraftEnable(SpoutCraftEnableEvent event) + { + SpoutPlayer sPlayer = event.getPlayer(); + if(sPlayer.isSpoutCraftEnabled()) + { + //Setup Party HUD stuff + SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer)); + + //Party.update(sPlayer); + Users.getProfile(sPlayer).toggleSpoutEnabled(); + } + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/listeners/mcSpoutScreenListener.java b/src/main/java/com/gmail/nossr50/listeners/mcSpoutScreenListener.java similarity index 96% rename from src/com/gmail/nossr50/listeners/mcSpoutScreenListener.java rename to src/main/java/com/gmail/nossr50/listeners/mcSpoutScreenListener.java index d0eca95eb..86df87ccd 100644 --- a/src/com/gmail/nossr50/listeners/mcSpoutScreenListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcSpoutScreenListener.java @@ -1,93 +1,93 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.listeners; - -import org.getspout.spoutapi.event.screen.ButtonClickEvent; -import org.getspout.spoutapi.event.screen.ScreenCloseEvent; -import org.getspout.spoutapi.event.screen.ScreenListener; -import org.getspout.spoutapi.player.SpoutPlayer; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.datatypes.HUDType; -import com.gmail.nossr50.datatypes.HUDmmo; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.buttons.ButtonEscape; -import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle; -import com.gmail.nossr50.datatypes.buttons.ButtonPartyToggle; -import com.gmail.nossr50.datatypes.popups.PopupMMO; -import com.gmail.nossr50.spout.SpoutStuff; - -public class mcSpoutScreenListener extends ScreenListener -{ - mcMMO plugin = null; - public mcSpoutScreenListener(mcMMO pluginx) - { - plugin = pluginx; - } - public void onButtonClick(ButtonClickEvent event) - { - SpoutPlayer sPlayer = event.getPlayer(); - PlayerProfile PP = Users.getProfile(sPlayer); - - if(event.getButton() instanceof ButtonHUDStyle) - { - if(SpoutStuff.playerHUDs.containsKey(sPlayer)) - { - SpoutStuff.playerHUDs.get(sPlayer).resetHUD(); - SpoutStuff.playerHUDs.remove(sPlayer); - - switch(PP.getHUDType()) - { - case RETRO: - PP.setHUDType(HUDType.STANDARD); - break; - case STANDARD: - PP.setHUDType(HUDType.SMALL); - break; - case SMALL: - PP.setHUDType(HUDType.DISABLED); - break; - case DISABLED: - PP.setHUDType(HUDType.RETRO); - } - - SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer)); - - SpoutStuff.playerScreens.get(sPlayer).updateButtons(PP); - } - } else if (event.getButton() instanceof ButtonEscape) - { - sPlayer.getMainScreen().closePopup(); - } else if (event.getButton() instanceof ButtonPartyToggle) - { - PP.togglePartyHUD(); - ButtonPartyToggle bpt = (ButtonPartyToggle)event.getButton(); - bpt.updateText(PP); - SpoutStuff.playerHUDs.get(sPlayer).resetHUD(); - SpoutStuff.playerHUDs.get(sPlayer).initializeHUD(sPlayer); - } - } - - public void onScreenClose(ScreenCloseEvent event) - { - if(event.getScreen() instanceof PopupMMO) - { - SpoutStuff.playerScreens.remove(event.getPlayer()); - } - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.listeners; + +import org.getspout.spoutapi.event.screen.ButtonClickEvent; +import org.getspout.spoutapi.event.screen.ScreenCloseEvent; +import org.getspout.spoutapi.event.screen.ScreenListener; +import org.getspout.spoutapi.player.SpoutPlayer; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.datatypes.HUDType; +import com.gmail.nossr50.datatypes.HUDmmo; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.buttons.ButtonEscape; +import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle; +import com.gmail.nossr50.datatypes.buttons.ButtonPartyToggle; +import com.gmail.nossr50.datatypes.popups.PopupMMO; +import com.gmail.nossr50.spout.SpoutStuff; + +public class mcSpoutScreenListener extends ScreenListener +{ + mcMMO plugin = null; + public mcSpoutScreenListener(mcMMO pluginx) + { + plugin = pluginx; + } + public void onButtonClick(ButtonClickEvent event) + { + SpoutPlayer sPlayer = event.getPlayer(); + PlayerProfile PP = Users.getProfile(sPlayer); + + if(event.getButton() instanceof ButtonHUDStyle) + { + if(SpoutStuff.playerHUDs.containsKey(sPlayer)) + { + SpoutStuff.playerHUDs.get(sPlayer).resetHUD(); + SpoutStuff.playerHUDs.remove(sPlayer); + + switch(PP.getHUDType()) + { + case RETRO: + PP.setHUDType(HUDType.STANDARD); + break; + case STANDARD: + PP.setHUDType(HUDType.SMALL); + break; + case SMALL: + PP.setHUDType(HUDType.DISABLED); + break; + case DISABLED: + PP.setHUDType(HUDType.RETRO); + } + + SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer)); + + SpoutStuff.playerScreens.get(sPlayer).updateButtons(PP); + } + } else if (event.getButton() instanceof ButtonEscape) + { + sPlayer.getMainScreen().closePopup(); + } else if (event.getButton() instanceof ButtonPartyToggle) + { + PP.togglePartyHUD(); + ButtonPartyToggle bpt = (ButtonPartyToggle)event.getButton(); + bpt.updateText(PP); + SpoutStuff.playerHUDs.get(sPlayer).resetHUD(); + SpoutStuff.playerHUDs.get(sPlayer).initializeHUD(sPlayer); + } + } + + public void onScreenClose(ScreenCloseEvent event) + { + if(event.getScreen() instanceof PopupMMO) + { + SpoutStuff.playerScreens.remove(event.getPlayer()); + } + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/locale/locale_de.properties b/src/main/java/com/gmail/nossr50/locale/locale_de.properties similarity index 100% rename from src/com/gmail/nossr50/locale/locale_de.properties rename to src/main/java/com/gmail/nossr50/locale/locale_de.properties diff --git a/src/com/gmail/nossr50/locale/locale_en_us.properties b/src/main/java/com/gmail/nossr50/locale/locale_en_us.properties similarity index 98% rename from src/com/gmail/nossr50/locale/locale_en_us.properties rename to src/main/java/com/gmail/nossr50/locale/locale_en_us.properties index 5fdb5bed2..05bb59d70 100644 --- a/src/com/gmail/nossr50/locale/locale_en_us.properties +++ b/src/main/java/com/gmail/nossr50/locale/locale_en_us.properties @@ -1,390 +1,390 @@ -Combat.WolfExamine=[[GREEN]]**You examine the Wolf using Beast Lore** -Combat.WolfShowMaster=[[DARK_GREEN]]The Beast's Master \: {0} -Combat.Ignition=[[RED]]**IGNITION** -Combat.BurningArrowHit=[[DARK_RED]]You were struck by a burning arrow\! -Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy. -Combat.TargetDazed=Target was [[DARK_RED]]Dazed -Combat.WolfNoMaster=[[GRAY]]This Beast has no Master... -Combat.WolfHealth=[[GREEN]]This beast has {0} Health -Combat.StruckByGore=[[RED]]**STRUCK BY GORE** -Combat.Gore=[[GREEN]]**GORE** -Combat.ArrowDeflect=[[WHITE]]**ARROW DEFLECT** -Item.ChimaeraWingFail=**CHIMAERA WING FAILED\!** -Item.ChimaeraWingPass=**CHIMAERA WING** -Item.InjuredWait=You were injured recently and must wait to use this. [[YELLOW]]({0}s) -Item.NeedFeathers=[[GRAY]]You need more feathers.. -m.mccPartyCommands=[[GREEN]]--PARTY COMMANDS-- -m.mccParty=[party name] [[RED]]- Create/Join designated party -m.mccPartyQ=[[RED]]- Leave your current party -m.mccPartyToggle=[[RED]] - Toggle Party Chat -m.mccPartyInvite=[player name] [[RED]]- Send party invite -m.mccPartyAccept=[[RED]]- Accept party invite -m.mccPartyTeleport=[party member name] [[RED]]- Teleport to party member -m.mccOtherCommands=[[GREEN]]--OTHER COMMANDS-- -m.mccStats=- View your mcMMO stats -m.mccLeaderboards=- Leaderboards -m.mccMySpawn=- Teleports to myspawn -m.mccClearMySpawn=- Clears your MySpawn -m.mccToggleAbility=- Toggle ability activation with right click -m.mccAdminToggle=- Toggle admin chat -m.mccWhois=[playername] [[RED]]- View detailed player info -m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modify target -m.mccMcGod=- God Mode -m.mccSkillInfo=[skillname] [[RED]]- View detailed information about a skill -m.mccModDescription=[[RED]]- Read brief mod description -m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- -m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0} -m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} -m.AbilityLockTemplate=[[GRAY]]{0} -m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} -m.Effects=EFFECTS -m.YourStats=YOUR STATS -m.SkillTaming=TAMING -m.XPGainTaming=Wolves getting harmed -m.EffectsTaming1_0=Beast Lore -m.EffectsTaming1_1=Bone-whacking inspects wolves -m.EffectsTaming2_0=Gore -m.EffectsTaming2_1=Critical Strike that applies Bleed -m.EffectsTaming3_0=Sharpened Claws -m.EffectsTaming3_1=Damage Bonus -m.EffectsTaming4_0=Environmentally Aware -m.EffectsTaming4_1=Cactus/Lava Phobia, Fall DMG Immune -m.EffectsTaming5_0=Thick Fur -m.EffectsTaming5_1=DMG Reduction, Fire Resistance -m.EffectsTaming6_0=Shock Proof -m.EffectsTaming6_1=Explosive Damage Reduction -m.AbilLockTaming1=LOCKED UNTIL 100+ SKILL (ENVIRONMENTALLY AWARE) -m.AbilLockTaming2=LOCKED UNTIL 250+ SKILL (THICK FUR) -m.AbilLockTaming3=LOCKED UNTIL 500+ SKILL (SHOCK PROOF) -m.AbilLockTaming4=LOCKED UNTIL 750+ SKILL (SHARPENED CLAWS) -m.AbilBonusTaming1_0=Environmentally Aware -m.AbilBonusTaming1_1=Wolves avoid danger -m.AbilBonusTaming2_0=Thick Fur -m.AbilBonusTaming2_1=Halved Damage, Fire Resistance -m.AbilBonusTaming3_0=Shock Proof -m.AbilBonusTaming3_1=Explosives do 1/6 normal damage -m.AbilBonusTaming4_0=Sharpened Claws -m.AbilBonusTaming4_1=+2 Damage -m.TamingGoreChance=[[RED]]Gore Chance: [[YELLOW]]{0}% -m.SkillWoodCutting=WOODCUTTING -m.XPGainWoodCutting=Chopping down trees -m.EffectsWoodCutting1_0=Tree Feller (ABILITY) -m.EffectsWoodCutting1_1=Make trees explode -m.EffectsWoodCutting2_0=Leaf Blower -m.EffectsWoodCutting2_1=Blow Away Leaves -m.EffectsWoodCutting3_0=Double Drops -m.EffectsWoodCutting3_1=Double the normal loot -m.AbilLockWoodCutting1=LOCKED UNTIL 100+ SKILL (LEAF BLOWER) -m.AbilBonusWoodCutting1_0=Leaf Blower -m.AbilBonusWoodCutting1_1=Blow away leaves -m.WoodCuttingDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% -m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller Length: [[YELLOW]]{0}s -m.SkillArchery=ARCHERY -m.XPGainArchery=Attacking Monsters -m.EffectsArchery1_0=Ignition -m.EffectsArchery1_1=25% Chance Enemies will ignite -m.EffectsArchery2_0=Daze (Players) -m.EffectsArchery2_1=Disorients foes -m.EffectsArchery3_0=Damage+ -m.EffectsArchery3_1=Modifies Damage -m.EffectsArchery4_0=Arrow Retrieval -m.EffectsArchery4_1=Chance to retrieve arrows from corpses -m.ArcheryDazeChance=[[RED]]Chance to Daze: [[YELLOW]]{0}% -m.ArcheryRetrieveChance=[[RED]]Chance to Retrieve Arrows: [[YELLOW]]{0}% -m.ArcheryIgnitionLength=[[RED]]Length of Ignition: [[YELLOW]]{0} seconds -m.ArcheryDamagePlus=[[RED]]Damage+ (Rank{0}): [[YELLOW]]Bonus {0} damage -m.SkillAxes=AXES -m.XPGainAxes=Attacking Monsters -m.EffectsAxes1_0=Skull Splitter (ABILITY) -m.EffectsAxes1_1=Deal AoE Damage -m.EffectsAxes2_0=Critical Strikes -m.EffectsAxes2_1=Double Damage -m.EffectsAxes3_0=Axe Mastery -m.EffectsAxes3_1=Modifies Damage -m.AbilLockAxes1=LOCKED UNTIL 500+ SKILL (AXEMASTERY) -m.AbilBonusAxes1_0=Axe Mastery -m.AbilBonusAxes1_1=Bonus 4 damage -m.AxesCritChance=[[RED]]Chance to critically strike: [[YELLOW]]{0}% -m.AxesSkullLength=[[RED]]Skull Splitter Length: [[YELLOW]]{0}s -m.SkillSwords=SWORDS -m.XPGainSwords=Attacking Monsters -m.EffectsSwords1_0=Counter Attack -m.EffectsSwords1_1=Reflect 50% of damage taken -m.EffectsSwords2_0=Serrated Strikes (ABILITY) -m.EffectsSwords2_1=25% DMG AoE, Bleed+ AoE -m.EffectsSwords3_0=Serrated Strikes Bleed+ -m.EffectsSwords3_1=5 Tick Bleed -m.EffectsSwords4_0=Parrying -m.EffectsSwords4_1=Negates Damage -m.EffectsSwords5_0=Bleed -m.EffectsSwords5_1=Apply a bleed DoT -m.SwordsCounterAttChance=[[RED]]Counter Attack Chance: [[YELLOW]]{0}% -m.SwordsBleedLength=[[RED]]Bleed Length: [[YELLOW]]{0} ticks -m.SwordsBleedChance=[[RED]]Bleed Chance: [[YELLOW]]{0} % -m.SwordsParryChance=[[RED]]Parry Chance: [[YELLOW]]{0} % -m.SwordsSSLength=[[RED]]Serrated Strikes Length: [[YELLOW]]{0}s -m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 Tick happens every 2 seconds -m.SkillAcrobatics=ACROBATICS -m.XPGainAcrobatics=Falling -m.EffectsAcrobatics1_0=Roll -m.EffectsAcrobatics1_1=Reduces or Negates damage -m.EffectsAcrobatics2_0=Graceful Roll -m.EffectsAcrobatics2_1=Twice as effective as Roll -m.EffectsAcrobatics3_0=Dodge -m.EffectsAcrobatics3_1=Reduce damage by half -m.AcrobaticsRollChance=[[RED]]Roll Chance: [[YELLOW]]{0}% -m.AcrobaticsGracefulRollChance=[[RED]]Graceful Roll Chance: [[YELLOW]]{0}% -m.AcrobaticsDodgeChance=[[RED]]Dodge Chance: [[YELLOW]]{0}% -m.SkillMining=MINING -m.XPGainMining=Mining Stone & Ore -m.EffectsMining1_0=Super Breaker (ABILITY) -m.EffectsMining1_1=Speed+, Triple Drop Chance -m.EffectsMining2_0=Double Drops -m.EffectsMining2_1=Double the normal loot -m.MiningDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% -m.MiningSuperBreakerLength=[[RED]]Super Breaker Length: [[YELLOW]]{0}s -m.SkillRepair=REPAIR -m.XPGainRepair=Repairing -m.EffectsRepair1_0=Repair -m.EffectsRepair1_1=Repair Iron Tools & Armor -m.EffectsRepair2_0=Repair Mastery -m.EffectsRepair2_1=Increased repair amount -m.EffectsRepair3_0=Super Repair -m.EffectsRepair3_1=Double effectiveness -m.EffectsRepair4_0=Diamond Repair ({0}+ SKILL) -m.EffectsRepair4_1=Repair Diamond Tools & Armor -m.RepairRepairMastery=[[RED]]Repair Mastery: [[YELLOW]]Extra {0}% durability restored -m.RepairSuperRepairChance=[[RED]]Super Repair Chance: [[YELLOW]]{0}% -m.SkillUnarmed=UNARMED -m.XPGainUnarmed=Attacking Monsters -m.EffectsUnarmed1_0=Berserk (ABILITY) -m.EffectsUnarmed1_1=+50% DMG, Breaks weak materials -m.EffectsUnarmed2_0=Disarm (Players) -m.EffectsUnarmed2_1=Drops the foes item held in hand -m.EffectsUnarmed3_0=Unarmed Mastery -m.EffectsUnarmed3_1=Large Damage Upgrade -m.EffectsUnarmed4_0=Unarmed Apprentice -m.EffectsUnarmed4_1=Damage Upgrade -m.EffectsUnarmed5_0=Arrow Deflect -m.EffectsUnarmed5_1=Deflect arrows -m.AbilLockUnarmed1=LOCKED UNTIL 250+ SKILL (UNARMED APPRENTICE) -m.AbilLockUnarmed2=LOCKED UNTIL 500+ SKILL (UNARMED MASTERY) -m.AbilBonusUnarmed1_0=Unarmed Apprentice -m.AbilBonusUnarmed1_1=+2 DMG Upgrade -m.AbilBonusUnarmed2_0=Unarmed Mastery -m.AbilBonusUnarmed2_1=+4 DMG Upgrade -m.UnarmedArrowDeflectChance=[[RED]]Arrow Deflect Chance: [[YELLOW]]{0}% -m.UnarmedDisarmChance=[[RED]]Disarm Chance: [[YELLOW]]{0}% -m.UnarmedBerserkLength=[[RED]]Berserk Length: [[YELLOW]]{0}s -m.SkillHerbalism=HERBALISM -m.XPGainHerbalism=Harvesting Herbs -m.EffectsHerbalism1_0=Green Terra (ABILITY) -m.EffectsHerbalism1_1=Spread the Terra, 3x Drops -m.EffectsHerbalism2_0=Green Thumb (Wheat) -m.EffectsHerbalism2_1=Auto-Plants wheat when harvesting -m.EffectsHerbalism3_0=Green Thumb (Cobble) -m.EffectsHerbalism3_1=Cobblestone -> Mossy w/ Seeds -m.EffectsHerbalism4_0=Food+ -m.EffectsHerbalism4_1=Modifies health received from bread/stew -m.EffectsHerbalism5_0=Double Drops (All Herbs) -m.EffectsHerbalism5_1=Double the normal loot -m.HerbalismGreenTerraLength=[[RED]]Green Terra Length: [[YELLOW]]{0}s -m.HerbalismGreenThumbChance=[[RED]]Green Thumb Chance: [[YELLOW]]{0}% -m.HerbalismGreenThumbStage=[[RED]]Green Thumb Stage: [[YELLOW]] Wheat grows in stage {0} -m.HerbalismDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% -m.HerbalismFoodPlus=[[RED]]Food+ (Rank{0}): [[YELLOW]]Bonus {0} healing -m.SkillExcavation=EXCAVATION -m.XPGainExcavation=Digging and finding treasures -m.EffectsExcavation1_0=Giga Drill Breaker (ABILITY) -m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Speed -m.EffectsExcavation2_0=Treasure Hunter -m.EffectsExcavation2_1=Ability to dig for treasure -m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker Length: [[YELLOW]]{0}s -mcBlockListener.PlacedAnvil=[[DARK_RED]]You have placed an anvil, anvils can repair tools and armor. -mcEntityListener.WolfComesBack=[[DARK_GRAY]]Your wolf scurries back to you... -mcPlayerListener.AbilitiesOff=Ability use toggled off -mcPlayerListener.AbilitiesOn=Ability use toggled on -mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES REFRESHED\!** -mcPlayerListener.AcrobaticsSkill=Acrobatics: -mcPlayerListener.ArcherySkill=Archery: -mcPlayerListener.AxesSkill=Axes: -mcPlayerListener.ExcavationSkill=Excavation: -mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode Disabled -mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode Enabled -mcPlayerListener.GreenThumb=[[GREEN]]**GREEN THUMB** -mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FAIL** -mcPlayerListener.HerbalismSkill=Herbalism: -mcPlayerListener.MiningSkill=Mining: -mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn is now cleared. -mcPlayerListener.MyspawnNotExist=[[RED]]Configure your myspawn first with a bed. -mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn has been set to your current location. -mcPlayerListener.MyspawnTimeNotice=You must wait {0}m {1}s to use myspawn -mcPlayerListener.NoPermission=Insufficient mcPermissions. -mcPlayerListener.NoSkillNote=[[DARK_GRAY]]If you don't have access to a skill it will not be shown here. -mcPlayerListener.NotInParty=[[RED]]You are not in a party. -mcPlayerListener.InviteSuccess=[[GREEN]]Invite sent successfully. -mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]You have received a party invite for {0} from {1} -mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] to accept the invite -mcPlayerListener.InviteAccepted=[[GREEN]]Invite Accepted. You have joined party {0} -mcPlayerListener.NoInvites=[[RED]]You have no invites at this time -mcPlayerListener.YouAreInParty=[[GREEN]]You are in party {0} -mcPlayerListener.PartyMembers=[[GREEN]]Party Members -mcPlayerListener.LeftParty=[[RED]]You have left that party -mcPlayerListener.JoinedParty=Joined Party: {0} -mcPlayerListener.PartyChatOn=Party Chat only [[GREEN]]On -mcPlayerListener.PartyChatOff=Party Chat only [[RED]]Off -mcPlayerListener.AdminChatOn=Admin Chat only [[GREEN]]On -mcPlayerListener.AdminChatOff=Admin Chat only [[RED]]Off -mcPlayerListener.MOTD=[[BLUE]]This server is running mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] for help. -mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: -mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard-- -mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard-- -mcPlayerListener.RepairSkill=Repair: -mcPlayerListener.SwordsSkill=Swords: -mcPlayerListener.TamingSkill=Taming: -mcPlayerListener.UnarmedSkill=Unarmed: -mcPlayerListener.WoodcuttingSkill=Woodcutting: -mcPlayerListener.YourStats=[[GREEN]][mcMMO] Stats -Party.InformedOnJoin={0} [[GREEN]] has joined your party -Party.InformedOnQuit={0} [[GREEN]] has left your party -Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed! -Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed! -Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed! -Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed! -Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed! -Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed! -Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed! -Skills.TooTired=[[RED]]You are too tired to use that ability again. -Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE** -Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE** -Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE** -Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE** -Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS** -Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS** -Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE** -Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE** -Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL** -Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL** -Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD** -Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD** -Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED** -Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk! -Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED** -Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra! -Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED** -Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller! -Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED** -Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker! -Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED** -Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes! -Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED** -Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter! -Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED** -Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker! -Skills.GreenTerraOff=[[RED]]**Green Terra has worn off** -Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off** -Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off** -Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off** -Skills.BerserkOff=[[RED]]**Berserk has worn off** -Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off** -Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off** -Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1}) -Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1}) -Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1}) -Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1}) -Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1}) -Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1}) -Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1}) -Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1}) -Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1}) -Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1}) -Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1}) -Skills.FeltEasy=[[GRAY]]That felt easy. -Skills.StackedItems=[[DARK_RED]]You can't repair stacked items -Skills.NeedMore=[[DARK_RED]]You need more -Skills.AdeptDiamond=[[DARK_RED]]You're not skilled enough to repair Diamond -Skills.FullDurability=[[GRAY]]That is at full durability. -Skills.Disarmed=[[DARK_RED]]You have been disarmed! -mcPlayerListener.SorcerySkill=Sorcery: -m.SkillSorcery=SORCERY -Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]] -Sorcery.Current_Mana=[[DARK_AQUA]]MP -Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) -Sorcery.Cost=[[RED]][COST] {0} MP -Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) -Sorcery.Water.Thunder=THUNDER -Sorcery.Curative.Self=CURE SELF -Sorcery.Curative.Other=CURE OTHER -m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) -Combat.BeastLore=[[GREEN]]**BEAST LORE** -Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]]) -Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20) -Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/8) -mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com -Party.Locked=[[RED]]Party is locked, only party leader may invite. -Party.IsntLocked=[[GRAY]]Party is not locked -Party.Unlocked=[[GRAY]]Party is unlocked -Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]][[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit -Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]] -Party.Help3=[[RED]]Consult /{0} ? for more information -Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit -Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock -Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock -Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password -Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick -Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner -Party.NotOwner=[[DARK_RED]]You are not the party owner -Party.InvalidName=[[DARK_RED]]That is not a valid party name -Party.PasswordSet=[[GREEN]]Party password set to {0} -Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} -Party.NotInYourParty=[[DARK_RED]]{0} is not in your party -Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} -Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] -Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal -Commands.xprate.proper3=[[RED]]Enter true or false for the second value -Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! -Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! -Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! -Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! -Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! -Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining -m.SkillAlchemy=ALCHEMY -m.SkillEnchanting=ENCHANTING -m.SkillFishing=FISHING -mcPlayerListener.AlchemySkill=Alchemy: -mcPlayerListener.EnchantingSkill=Enchanting: -mcPlayerListener.FishingSkill=Fishing: -Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) -Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) -Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) -Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. -Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. -Repair.Downgraded=[[RED]]Arcane power has decreased for this item. -Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. -m.EffectsRepair5_0=Arcane Forging -m.EffectsRepair5_1=Repair magic items -m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 -m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% -m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% -m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, -m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... -Fishing.ItemFound=[[GRAY]]Treasure found! -m.SkillFishing=FISHING -m.XPGainFishing=Fishing (Go figure!) -m.EffectsFishing1_0=Treasure Hunter (Passive) -m.EffectsFishing1_1=Fish up misc objects -m.EffectsFishing2_0=Magic Hunter -m.EffectsFishing2_1=Find Enchanted Items -m.EffectsFishing3_0=Shake (vs. Entities) -m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole -m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 -m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** -m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; -m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) -m.TamingSummon=[[GREEN]]Summoning complete -m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. -m.EffectsTaming7_0=Call of the Wild -m.EffectsTaming7_1=Summon a wolf to your side +Combat.WolfExamine=[[GREEN]]**You examine the Wolf using Beast Lore** +Combat.WolfShowMaster=[[DARK_GREEN]]The Beast's Master \: {0} +Combat.Ignition=[[RED]]**IGNITION** +Combat.BurningArrowHit=[[DARK_RED]]You were struck by a burning arrow\! +Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy. +Combat.TargetDazed=Target was [[DARK_RED]]Dazed +Combat.WolfNoMaster=[[GRAY]]This Beast has no Master... +Combat.WolfHealth=[[GREEN]]This beast has {0} Health +Combat.StruckByGore=[[RED]]**STRUCK BY GORE** +Combat.Gore=[[GREEN]]**GORE** +Combat.ArrowDeflect=[[WHITE]]**ARROW DEFLECT** +Item.ChimaeraWingFail=**CHIMAERA WING FAILED\!** +Item.ChimaeraWingPass=**CHIMAERA WING** +Item.InjuredWait=You were injured recently and must wait to use this. [[YELLOW]]({0}s) +Item.NeedFeathers=[[GRAY]]You need more feathers.. +m.mccPartyCommands=[[GREEN]]--PARTY COMMANDS-- +m.mccParty=[party name] [[RED]]- Create/Join designated party +m.mccPartyQ=[[RED]]- Leave your current party +m.mccPartyToggle=[[RED]] - Toggle Party Chat +m.mccPartyInvite=[player name] [[RED]]- Send party invite +m.mccPartyAccept=[[RED]]- Accept party invite +m.mccPartyTeleport=[party member name] [[RED]]- Teleport to party member +m.mccOtherCommands=[[GREEN]]--OTHER COMMANDS-- +m.mccStats=- View your mcMMO stats +m.mccLeaderboards=- Leaderboards +m.mccMySpawn=- Teleports to myspawn +m.mccClearMySpawn=- Clears your MySpawn +m.mccToggleAbility=- Toggle ability activation with right click +m.mccAdminToggle=- Toggle admin chat +m.mccWhois=[playername] [[RED]]- View detailed player info +m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modify target +m.mccMcGod=- God Mode +m.mccSkillInfo=[skillname] [[RED]]- View detailed information about a skill +m.mccModDescription=[[RED]]- Read brief mod description +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0} +m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} +m.AbilityLockTemplate=[[GRAY]]{0} +m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} +m.Effects=EFFECTS +m.YourStats=YOUR STATS +m.SkillTaming=TAMING +m.XPGainTaming=Wolves getting harmed +m.EffectsTaming1_0=Beast Lore +m.EffectsTaming1_1=Bone-whacking inspects wolves +m.EffectsTaming2_0=Gore +m.EffectsTaming2_1=Critical Strike that applies Bleed +m.EffectsTaming3_0=Sharpened Claws +m.EffectsTaming3_1=Damage Bonus +m.EffectsTaming4_0=Environmentally Aware +m.EffectsTaming4_1=Cactus/Lava Phobia, Fall DMG Immune +m.EffectsTaming5_0=Thick Fur +m.EffectsTaming5_1=DMG Reduction, Fire Resistance +m.EffectsTaming6_0=Shock Proof +m.EffectsTaming6_1=Explosive Damage Reduction +m.AbilLockTaming1=LOCKED UNTIL 100+ SKILL (ENVIRONMENTALLY AWARE) +m.AbilLockTaming2=LOCKED UNTIL 250+ SKILL (THICK FUR) +m.AbilLockTaming3=LOCKED UNTIL 500+ SKILL (SHOCK PROOF) +m.AbilLockTaming4=LOCKED UNTIL 750+ SKILL (SHARPENED CLAWS) +m.AbilBonusTaming1_0=Environmentally Aware +m.AbilBonusTaming1_1=Wolves avoid danger +m.AbilBonusTaming2_0=Thick Fur +m.AbilBonusTaming2_1=Halved Damage, Fire Resistance +m.AbilBonusTaming3_0=Shock Proof +m.AbilBonusTaming3_1=Explosives do 1/6 normal damage +m.AbilBonusTaming4_0=Sharpened Claws +m.AbilBonusTaming4_1=+2 Damage +m.TamingGoreChance=[[RED]]Gore Chance: [[YELLOW]]{0}% +m.SkillWoodCutting=WOODCUTTING +m.XPGainWoodCutting=Chopping down trees +m.EffectsWoodCutting1_0=Tree Feller (ABILITY) +m.EffectsWoodCutting1_1=Make trees explode +m.EffectsWoodCutting2_0=Leaf Blower +m.EffectsWoodCutting2_1=Blow Away Leaves +m.EffectsWoodCutting3_0=Double Drops +m.EffectsWoodCutting3_1=Double the normal loot +m.AbilLockWoodCutting1=LOCKED UNTIL 100+ SKILL (LEAF BLOWER) +m.AbilBonusWoodCutting1_0=Leaf Blower +m.AbilBonusWoodCutting1_1=Blow away leaves +m.WoodCuttingDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller Length: [[YELLOW]]{0}s +m.SkillArchery=ARCHERY +m.XPGainArchery=Attacking Monsters +m.EffectsArchery1_0=Ignition +m.EffectsArchery1_1=25% Chance Enemies will ignite +m.EffectsArchery2_0=Daze (Players) +m.EffectsArchery2_1=Disorients foes +m.EffectsArchery3_0=Damage+ +m.EffectsArchery3_1=Modifies Damage +m.EffectsArchery4_0=Arrow Retrieval +m.EffectsArchery4_1=Chance to retrieve arrows from corpses +m.ArcheryDazeChance=[[RED]]Chance to Daze: [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Chance to Retrieve Arrows: [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Length of Ignition: [[YELLOW]]{0} seconds +m.ArcheryDamagePlus=[[RED]]Damage+ (Rank{0}): [[YELLOW]]Bonus {0} damage +m.SkillAxes=AXES +m.XPGainAxes=Attacking Monsters +m.EffectsAxes1_0=Skull Splitter (ABILITY) +m.EffectsAxes1_1=Deal AoE Damage +m.EffectsAxes2_0=Critical Strikes +m.EffectsAxes2_1=Double Damage +m.EffectsAxes3_0=Axe Mastery +m.EffectsAxes3_1=Modifies Damage +m.AbilLockAxes1=LOCKED UNTIL 500+ SKILL (AXEMASTERY) +m.AbilBonusAxes1_0=Axe Mastery +m.AbilBonusAxes1_1=Bonus 4 damage +m.AxesCritChance=[[RED]]Chance to critically strike: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Skull Splitter Length: [[YELLOW]]{0}s +m.SkillSwords=SWORDS +m.XPGainSwords=Attacking Monsters +m.EffectsSwords1_0=Counter Attack +m.EffectsSwords1_1=Reflect 50% of damage taken +m.EffectsSwords2_0=Serrated Strikes (ABILITY) +m.EffectsSwords2_1=25% DMG AoE, Bleed+ AoE +m.EffectsSwords3_0=Serrated Strikes Bleed+ +m.EffectsSwords3_1=5 Tick Bleed +m.EffectsSwords4_0=Parrying +m.EffectsSwords4_1=Negates Damage +m.EffectsSwords5_0=Bleed +m.EffectsSwords5_1=Apply a bleed DoT +m.SwordsCounterAttChance=[[RED]]Counter Attack Chance: [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Bleed Length: [[YELLOW]]{0} ticks +m.SwordsBleedChance=[[RED]]Bleed Chance: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Parry Chance: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Serrated Strikes Length: [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 Tick happens every 2 seconds +m.SkillAcrobatics=ACROBATICS +m.XPGainAcrobatics=Falling +m.EffectsAcrobatics1_0=Roll +m.EffectsAcrobatics1_1=Reduces or Negates damage +m.EffectsAcrobatics2_0=Graceful Roll +m.EffectsAcrobatics2_1=Twice as effective as Roll +m.EffectsAcrobatics3_0=Dodge +m.EffectsAcrobatics3_1=Reduce damage by half +m.AcrobaticsRollChance=[[RED]]Roll Chance: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Graceful Roll Chance: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Dodge Chance: [[YELLOW]]{0}% +m.SkillMining=MINING +m.XPGainMining=Mining Stone & Ore +m.EffectsMining1_0=Super Breaker (ABILITY) +m.EffectsMining1_1=Speed+, Triple Drop Chance +m.EffectsMining2_0=Double Drops +m.EffectsMining2_1=Double the normal loot +m.MiningDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Super Breaker Length: [[YELLOW]]{0}s +m.SkillRepair=REPAIR +m.XPGainRepair=Repairing +m.EffectsRepair1_0=Repair +m.EffectsRepair1_1=Repair Iron Tools & Armor +m.EffectsRepair2_0=Repair Mastery +m.EffectsRepair2_1=Increased repair amount +m.EffectsRepair3_0=Super Repair +m.EffectsRepair3_1=Double effectiveness +m.EffectsRepair4_0=Diamond Repair ({0}+ SKILL) +m.EffectsRepair4_1=Repair Diamond Tools & Armor +m.RepairRepairMastery=[[RED]]Repair Mastery: [[YELLOW]]Extra {0}% durability restored +m.RepairSuperRepairChance=[[RED]]Super Repair Chance: [[YELLOW]]{0}% +m.SkillUnarmed=UNARMED +m.XPGainUnarmed=Attacking Monsters +m.EffectsUnarmed1_0=Berserk (ABILITY) +m.EffectsUnarmed1_1=+50% DMG, Breaks weak materials +m.EffectsUnarmed2_0=Disarm (Players) +m.EffectsUnarmed2_1=Drops the foes item held in hand +m.EffectsUnarmed3_0=Unarmed Mastery +m.EffectsUnarmed3_1=Large Damage Upgrade +m.EffectsUnarmed4_0=Unarmed Apprentice +m.EffectsUnarmed4_1=Damage Upgrade +m.EffectsUnarmed5_0=Arrow Deflect +m.EffectsUnarmed5_1=Deflect arrows +m.AbilLockUnarmed1=LOCKED UNTIL 250+ SKILL (UNARMED APPRENTICE) +m.AbilLockUnarmed2=LOCKED UNTIL 500+ SKILL (UNARMED MASTERY) +m.AbilBonusUnarmed1_0=Unarmed Apprentice +m.AbilBonusUnarmed1_1=+2 DMG Upgrade +m.AbilBonusUnarmed2_0=Unarmed Mastery +m.AbilBonusUnarmed2_1=+4 DMG Upgrade +m.UnarmedArrowDeflectChance=[[RED]]Arrow Deflect Chance: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Disarm Chance: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Berserk Length: [[YELLOW]]{0}s +m.SkillHerbalism=HERBALISM +m.XPGainHerbalism=Harvesting Herbs +m.EffectsHerbalism1_0=Green Terra (ABILITY) +m.EffectsHerbalism1_1=Spread the Terra, 3x Drops +m.EffectsHerbalism2_0=Green Thumb (Wheat) +m.EffectsHerbalism2_1=Auto-Plants wheat when harvesting +m.EffectsHerbalism3_0=Green Thumb (Cobble) +m.EffectsHerbalism3_1=Cobblestone -> Mossy w/ Seeds +m.EffectsHerbalism4_0=Food+ +m.EffectsHerbalism4_1=Modifies health received from bread/stew +m.EffectsHerbalism5_0=Double Drops (All Herbs) +m.EffectsHerbalism5_1=Double the normal loot +m.HerbalismGreenTerraLength=[[RED]]Green Terra Length: [[YELLOW]]{0}s +m.HerbalismGreenThumbChance=[[RED]]Green Thumb Chance: [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Green Thumb Stage: [[YELLOW]] Wheat grows in stage {0} +m.HerbalismDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Food+ (Rank{0}): [[YELLOW]]Bonus {0} healing +m.SkillExcavation=EXCAVATION +m.XPGainExcavation=Digging and finding treasures +m.EffectsExcavation1_0=Giga Drill Breaker (ABILITY) +m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Speed +m.EffectsExcavation2_0=Treasure Hunter +m.EffectsExcavation2_1=Ability to dig for treasure +m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker Length: [[YELLOW]]{0}s +mcBlockListener.PlacedAnvil=[[DARK_RED]]You have placed an anvil, anvils can repair tools and armor. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]Your wolf scurries back to you... +mcPlayerListener.AbilitiesOff=Ability use toggled off +mcPlayerListener.AbilitiesOn=Ability use toggled on +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES REFRESHED\!** +mcPlayerListener.AcrobaticsSkill=Acrobatics: +mcPlayerListener.ArcherySkill=Archery: +mcPlayerListener.AxesSkill=Axes: +mcPlayerListener.ExcavationSkill=Excavation: +mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode Disabled +mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode Enabled +mcPlayerListener.GreenThumb=[[GREEN]]**GREEN THUMB** +mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FAIL** +mcPlayerListener.HerbalismSkill=Herbalism: +mcPlayerListener.MiningSkill=Mining: +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn is now cleared. +mcPlayerListener.MyspawnNotExist=[[RED]]Configure your myspawn first with a bed. +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn has been set to your current location. +mcPlayerListener.MyspawnTimeNotice=You must wait {0}m {1}s to use myspawn +mcPlayerListener.NoPermission=Insufficient mcPermissions. +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]If you don't have access to a skill it will not be shown here. +mcPlayerListener.NotInParty=[[RED]]You are not in a party. +mcPlayerListener.InviteSuccess=[[GREEN]]Invite sent successfully. +mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]You have received a party invite for {0} from {1} +mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] to accept the invite +mcPlayerListener.InviteAccepted=[[GREEN]]Invite Accepted. You have joined party {0} +mcPlayerListener.NoInvites=[[RED]]You have no invites at this time +mcPlayerListener.YouAreInParty=[[GREEN]]You are in party {0} +mcPlayerListener.PartyMembers=[[GREEN]]Party Members +mcPlayerListener.LeftParty=[[RED]]You have left that party +mcPlayerListener.JoinedParty=Joined Party: {0} +mcPlayerListener.PartyChatOn=Party Chat only [[GREEN]]On +mcPlayerListener.PartyChatOff=Party Chat only [[RED]]Off +mcPlayerListener.AdminChatOn=Admin Chat only [[GREEN]]On +mcPlayerListener.AdminChatOff=Admin Chat only [[RED]]Off +mcPlayerListener.MOTD=[[BLUE]]This server is running mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] for help. +mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki +mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: +mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard-- +mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard-- +mcPlayerListener.RepairSkill=Repair: +mcPlayerListener.SwordsSkill=Swords: +mcPlayerListener.TamingSkill=Taming: +mcPlayerListener.UnarmedSkill=Unarmed: +mcPlayerListener.WoodcuttingSkill=Woodcutting: +mcPlayerListener.YourStats=[[GREEN]][mcMMO] Stats +Party.InformedOnJoin={0} [[GREEN]] has joined your party +Party.InformedOnQuit={0} [[GREEN]] has left your party +Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed! +Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed! +Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed! +Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed! +Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed! +Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed! +Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed! +Skills.TooTired=[[RED]]You are too tired to use that ability again. +Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE** +Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE** +Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE** +Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE** +Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS** +Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS** +Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE** +Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE** +Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL** +Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL** +Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD** +Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD** +Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED** +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk! +Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra! +Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller! +Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker! +Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes! +Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter! +Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker! +Skills.GreenTerraOff=[[RED]]**Green Terra has worn off** +Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off** +Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off** +Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off** +Skills.BerserkOff=[[RED]]**Berserk has worn off** +Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off** +Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off** +Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1}) +Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1}) +Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1}) +Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1}) +Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1}) +Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1}) +Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1}) +Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1}) +Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1}) +Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1}) +Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1}) +Skills.FeltEasy=[[GRAY]]That felt easy. +Skills.StackedItems=[[DARK_RED]]You can't repair stacked items +Skills.NeedMore=[[DARK_RED]]You need more +Skills.AdeptDiamond=[[DARK_RED]]You're not skilled enough to repair Diamond +Skills.FullDurability=[[GRAY]]That is at full durability. +Skills.Disarmed=[[DARK_RED]]You have been disarmed! +mcPlayerListener.SorcerySkill=Sorcery: +m.SkillSorcery=SORCERY +Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]] +Sorcery.Current_Mana=[[DARK_AQUA]]MP +Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) +Sorcery.Cost=[[RED]][COST] {0} MP +Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) +Sorcery.Water.Thunder=THUNDER +Sorcery.Curative.Self=CURE SELF +Sorcery.Curative.Other=CURE OTHER +m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) +Combat.BeastLore=[[GREEN]]**BEAST LORE** +Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]]) +Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20) +Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/8) +mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com +Party.Locked=[[RED]]Party is locked, only party leader may invite. +Party.IsntLocked=[[GRAY]]Party is not locked +Party.Unlocked=[[GRAY]]Party is unlocked +Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]][[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit +Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]] +Party.Help3=[[RED]]Consult /{0} ? for more information +Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit +Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock +Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock +Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password +Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick +Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner +Party.NotOwner=[[DARK_RED]]You are not the party owner +Party.InvalidName=[[DARK_RED]]That is not a valid party name +Party.PasswordSet=[[GREEN]]Party password set to {0} +Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} +Party.NotInYourParty=[[DARK_RED]]{0} is not in your party +Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} +Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] +Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal +Commands.xprate.proper3=[[RED]]Enter true or false for the second value +Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! +Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! +Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! +Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! +Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! +Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining +m.SkillAlchemy=ALCHEMY +m.SkillEnchanting=ENCHANTING +m.SkillFishing=FISHING +mcPlayerListener.AlchemySkill=Alchemy: +mcPlayerListener.EnchantingSkill=Enchanting: +mcPlayerListener.FishingSkill=Fishing: +Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) +Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) +Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) +Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. +Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. +Repair.Downgraded=[[RED]]Arcane power has decreased for this item. +Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. +m.EffectsRepair5_0=Arcane Forging +m.EffectsRepair5_1=Repair magic items +m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 +m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% +m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% +m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, +m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ +Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.ItemFound=[[GRAY]]Treasure found! +m.SkillFishing=FISHING +m.XPGainFishing=Fishing (Go figure!) +m.EffectsFishing1_0=Treasure Hunter (Passive) +m.EffectsFishing1_1=Fish up misc objects +m.EffectsFishing2_0=Magic Hunter +m.EffectsFishing2_1=Find Enchanted Items +m.EffectsFishing3_0=Shake (vs. Entities) +m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole +m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 +m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** +m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; +m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) +m.TamingSummon=[[GREEN]]Summoning complete +m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. +m.EffectsTaming7_0=Call of the Wild +m.EffectsTaming7_1=Summon a wolf to your side m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand \ No newline at end of file diff --git a/src/com/gmail/nossr50/locale/locale_es_es.properties b/src/main/java/com/gmail/nossr50/locale/locale_es_es.properties similarity index 98% rename from src/com/gmail/nossr50/locale/locale_es_es.properties rename to src/main/java/com/gmail/nossr50/locale/locale_es_es.properties index 077fa87bc..f83ec12b4 100644 --- a/src/com/gmail/nossr50/locale/locale_es_es.properties +++ b/src/main/java/com/gmail/nossr50/locale/locale_es_es.properties @@ -1,390 +1,390 @@ -Combat.WolfExamine=[[GREEN]]**Has examinado a un lobo usando tu conocimiento de fieras** -Combat.WolfShowMaster=[[DARK_GREEN]]El maestro de las fieras \: {0} -Combat.Ignition=[[RED]]**IGNICION** -Combat.BurningArrowHit=[[DARK_RED]]Has sido golpeado por una flecha ardiendo\! -Combat.TouchedFuzzy=[[DARK_RED]]Estas confuso. Te sientes mareado... -Combat.TargetDazed=El objetivo fue [[DARK_RED]]aturdido -Combat.WolfNoMaster=[[GRAY]]Esta bestia no tiene maestro... -Combat.WolfHealth=[[GREEN]]Esta bestia tiene {0} de salud -Combat.StruckByGore=[[RED]]**GOLPEADO POR MORDISCO** -Combat.Gore=[[GREEN]]**MORDISCO** -Combat.ArrowDeflect=[[WHITE]]**FLECHA DESVIADA** -Item.ChimaeraWingFail=**FLECHA QUIMERA FALLADA\!** -Item.ChimaeraWingPass=**FLECHA QUIMERA** -Item.InjuredWait=Has sido herido recientemente y tienes que esperar para usar esto. [[YELLOW]]({0}s) -Item.NeedFeathers=[[GRAY]]Necesitas mas plumas. -m.mccPartyCommands=[[GREEN]]--COMANDOS DE FIESTA-- -m.mccParty=[party name] [[RED]]- Crea/Entra a una fiesta especifica -m.mccPartyQ=[[RED]]- Abandona tu fiesta actual -m.mccPartyToggle=[[RED]] - Activa/Desactiva el chat de fiesta -m.mccPartyInvite=[player name] [[RED]]- Envia una invitacion para la fiesta -m.mccPartyAccept=[[RED]]- Acepta una invitacion para la fiesta -m.mccPartyTeleport=[party member name] [[RED]]- Teletransportate a un miembro de la fiesta -m.mccOtherCommands=[[GREEN]]--OTROS COMANDOS-- -m.mccStats=- Mira tus estadisticas de McMMO -m.mccLeaderboards=- Ranking de lideres -m.mccMySpawn=- Teletransportate a tu lugar de nacimiento -m.mccClearMySpawn=- Limpia tu lugar de nacimiento -m.mccToggleAbility=- Activa/Desactiva la activacion de la habilidad con el click derecho -m.mccAdminToggle=- Activa/Desactiva el chat de admins -m.mccWhois=[playername] [[RED]]- Mira informacion detallada del jugador -m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifica el objetivo -m.mccMcGod=- Modo dios -m.mccSkillInfo=[skillname] [[RED]]- Mira informacion detallada sobre una habilidad -m.mccModDescription=[[RED]]- Lee la descripcion del MOD -m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- -m.XPGain=[[DARK_GRAY]]GANANCIA DE EXP: [[WHITE]]{0} -m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} -m.AbilityLockTemplate=[[GRAY]]{0} -m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} -m.Effects=EFECTOS -m.YourStats=TUS ESTADISTICAS -m.SkillTaming=DOMADURA -m.XPGainTaming=Lobos siendo lastimados -m.EffectsTaming1_0=Leyenda de bestias -m.EffectsTaming1_1=Golpear con huesos examina a los lobos -m.EffectsTaming2_0=Sangre -m.EffectsTaming2_1=Golpe critico que hace sangrar -m.EffectsTaming3_0=Garras afiladas -m.EffectsTaming3_1=Bonus de daño -m.EffectsTaming4_0=Consciente del medio ambiente -m.EffectsTaming4_1=Inmunidad a heridas por caidas, Cactus/Lava fobia -m.EffectsTaming5_0=Piel gruesa -m.EffectsTaming5_1=Reduccion de daño, Resistencia al fuego -m.EffectsTaming6_0=A prueba de golpes -m.EffectsTaming6_1=Reduccion del daño con explosivos -m.AbilLockTaming1=BLOQUEADO HASTA TENER HABILIDAD +100 (CONSCIENTE DEL MEDIO AMBIENTE) -m.AbilLockTaming2=BLOQUEADO HASTA TENER HABILIDAD +250 (PIEL GRUESA) -m.AbilLockTaming3=BLOQUEADO HASTA TENER HABILIDAD +500 (A PRUEBA DE GOLPES) -m.AbilLockTaming4=BLOQUEADO HASTA TENER HABILIDAD +750 (GARRAS AFILADAS) -m.AbilBonusTaming1_0=Consciente del medio ambiente -m.AbilBonusTaming1_1=Los lobos evitan el peligro -m.AbilBonusTaming2_0=Piel gruesa -m.AbilBonusTaming2_1=Daño reducido a la mitad, Resistencia al fuego -m.AbilBonusTaming3_0=A prueba de golpes -m.AbilBonusTaming3_1=Los explosivos hacen 1/6 del daño normal -m.AbilBonusTaming4_0=Garras afiladas -m.AbilBonusTaming4_1=+2 de Daño -m.TamingGoreChance=[[RED]]Oportunidad de sangre: [[YELLOW]]{0}% -m.SkillWoodCutting=TALA DE ARBOLES -m.XPGainWoodCutting=Cortando arboles -m.EffectsWoodCutting1_0=Cortador de arboles (HABILIDAD) -m.EffectsWoodCutting1_1=Haz que los arboles exploten -m.EffectsWoodCutting2_0=Soplador de hojas -m.EffectsWoodCutting2_1=Aparta las hojas -m.EffectsWoodCutting3_0=Doble de gotas -m.EffectsWoodCutting3_1=Doble del botin habitual -m.AbilLockWoodCutting1=BLOQUEADO HASTA TENER HABILIDAD +100 (SOPLADOR DE HOJAS) -m.AbilBonusWoodCutting1_0=Soplador de hojas -m.AbilBonusWoodCutting1_1=Aparta las ojas -m.WoodCuttingDoubleDropChance=[[RED]]Posibilidad de Doble de gotas: [[YELLOW]]{0}% -m.WoodCuttingTreeFellerLength=[[RED]]Duracion de tala de arboles: [[YELLOW]]{0}s -m.SkillArchery=Tiro con Arco -m.XPGainArchery=Ataque a monstruos -m.EffectsArchery1_0=Ignicion -m.EffectsArchery1_1=25% de posibilidades de que un enemigo arda en llamas -m.EffectsArchery2_0=Aturdir (Jugadores) -m.EffectsArchery2_1=Desorienta a los enemigos -m.EffectsArchery3_0=+ Daño -m.EffectsArchery3_1=Modifica el daño -m.EffectsArchery4_0=Recuperación de flecha -m.EffectsArchery4_1=Posibilidad de obtener flechas de cadaveres -m.ArcheryDazeChance=[[RED]]Posibilidad de aturdir: [[YELLOW]]{0}% -m.ArcheryRetrieveChance=[[RED]]Posibilidad de obtener flechas: [[YELLOW]]{0}% -m.ArcheryIgnitionLength=[[RED]]Duracion de la ignicion: [[YELLOW]]{0} seconds -m.ArcheryDamagePlus=[[RED]]+ Daño (Rank{0}): [[YELLOW]] {0} de bonus de daño -m.SkillAxes=HACHAS -m.XPGainAxes=Ataque a monstruos -m.EffectsAxes1_0=Cortador de cabecas (HABILIDAD) -m.EffectsAxes1_1=Causa daños en arena -m.EffectsAxes2_0=Golpes criticos -m.EffectsAxes2_1=Doble de daño -m.EffectsAxes3_0=Maestria de hacha -m.EffectsAxes3_1=Modifica el daño -m.AbilLockAxes1=BLOQUEADO HASTA TENER HABILIDAD +500 (MAESTRIA DE HACHA) -m.AbilBonusAxes1_0=Maestria de hacha -m.AbilBonusAxes1_1=4 de daño de bonus -m.AxesCritChance=[[RED]]Posibilad de golpe critico: [[YELLOW]]{0}% -m.AxesSkullLength=[[RED]]Longitud de Cortador de cabezas: [[YELLOW]]{0}s -m.SkillSwords=ESPADAS -m.XPGainSwords=Ataque a monstruos -m.EffectsSwords1_0=Contraataque -m.EffectsSwords1_1=Desviar el 50% del daño obtenido -m.EffectsSwords2_0=Golpes dentados (HABILIDAD) -m.EffectsSwords2_1=25% de daño en Arena, y efecto de hemorragia -m.EffectsSwords3_0=Ataque cortante con efecto de hemorragia -m.EffectsSwords3_1=5 sangramientos -m.EffectsSwords4_0=Desviar -m.EffectsSwords4_1=Anula el daño -m.EffectsSwords5_0=Hemorragia -m.EffectsSwords5_1=Causa sangramientos repetidos a lo largo del tiempo -m.SwordsCounterAttChance=[[RED]]Posibilidad de contraataque: [[YELLOW]]{0}% -m.SwordsBleedLength=[[RED]]Duracion del sangrado: [[YELLOW]]{0} ticks -m.SwordsBleedChance=[[RED]]Posibilidad de hemorragia: [[YELLOW]]{0} % -m.SwordsParryChance=[[RED]]Posibilidad de desviacion: [[YELLOW]]{0} % -m.SwordsSSLength=[[RED]]Duracion de los golpes dentados: [[YELLOW]]{0}s -m.SwordsTickNote=[[GRAY]]NOTA: [[YELLOW]]1 Tick ocurre cada 2 segundos -m.SkillAcrobatics=ACROBACIAS -m.XPGainAcrobatics=Caida -m.EffectsAcrobatics1_0=Rodar -m.EffectsAcrobatics1_1=Reduce o evita daño -m.EffectsAcrobatics2_0=Rodar con estilo -m.EffectsAcrobatics2_1=Dos veces mas efectivos que Rodar -m.EffectsAcrobatics3_0=Esquivar -m.EffectsAcrobatics3_1=Reduce el daño a la mitad -m.AcrobaticsRollChance=[[RED]]Posibilidad de Rodar: [[YELLOW]]{0}% -m.AcrobaticsGracefulRollChance=[[RED]]Posibilidad de Rodar con estilo: [[YELLOW]]{0}% -m.AcrobaticsDodgeChance=[[RED]]Posibilidad de Esquivar: [[YELLOW]]{0}% -m.SkillMining=MINAR -m.XPGainMining=Minar Piedra & Oro -m.EffectsMining1_0=Super rompedor (HABILIDAD) -m.EffectsMining1_1=+ Velocidad, Posibilidad de obtener triple beneficio -m.EffectsMining2_0=Beneficio doble -m.EffectsMining2_1=Dobla el botin normal -m.MiningDoubleDropChance=[[RED]]Posibilidad de Beneficio doble: [[YELLOW]]{0}% -m.MiningSuperBreakerLength=[[RED]]Duracion de Super Rompedor: [[YELLOW]]{0}s -m.SkillRepair=REPARAR -m.XPGainRepair=Reparacion -m.EffectsRepair1_0=Reparar -m.EffectsRepair1_1=Reparar Herramientas y armadura de Hierro -m.EffectsRepair2_0=Maestro de reparacion -m.EffectsRepair2_1=Crecimiento de la cantidad de reparacion -m.EffectsRepair3_0=Super Reparacion -m.EffectsRepair3_1=Doble efectividad -m.EffectsRepair4_0=Reparar diamantes (+{0} HABILIDAD) -m.EffectsRepair4_1=Reparar Herramientas y armadura de Diamantes -m.RepairRepairMastery=[[RED]]Maestro de reparacion: [[YELLOW]]{0}% extra de duracion obtenido -m.RepairSuperRepairChance=[[RED]]Posibilidad de Super Reparacion: [[YELLOW]]{0}% -m.SkillUnarmed=DESARMADO -m.XPGainUnarmed=Ataque a monstruos -m.EffectsUnarmed1_0=Enloquecer (HABILIDAD) -m.EffectsUnarmed1_1=+50% daño, Romper materiales fragiles -m.EffectsUnarmed2_0=Desarmar (Jugadores) -m.EffectsUnarmed2_1=Caida del objeto de mano del enemigo -m.EffectsUnarmed3_0=Maestro desarmado -m.EffectsUnarmed3_1=Mejora de grandes daños -m.EffectsUnarmed4_0=Aprendiz desarmado -m.EffectsUnarmed4_1=Mejora de daños -m.EffectsUnarmed5_0=Desviar flechas -m.EffectsUnarmed5_1=Desviar flechas -m.AbilLockUnarmed1=BLOQUEADO HASTA TENER HABILIDAD +250 (APRENDIZ DESARMADO) -m.AbilLockUnarmed2=BLOQUEADO HASTA TENER HABILIDAD +500 (MAESTRO DESARMADO) -m.AbilBonusUnarmed1_0=Aprendiz desarmado -m.AbilBonusUnarmed1_1=Mejora de +2 de daño -m.AbilBonusUnarmed2_0=Maestro desarmado -m.AbilBonusUnarmed2_1=Mejora de +4 de daño -m.UnarmedArrowDeflectChance=[[RED]]Posibilidad de Desviar flechas: [[YELLOW]]{0}% -m.UnarmedDisarmChance=[[RED]]Posibilidad de Desarmar: [[YELLOW]]{0}% -m.UnarmedBerserkLength=[[RED]]Posibilidad de Enloquecer: [[YELLOW]]{0}s -m.SkillHerbalism=HERBORISTERIA -m.XPGainHerbalism=Cosecha de hierbas -m.EffectsHerbalism1_0=Tierra verde (HABILIDAD) -m.EffectsHerbalism1_1=Triple experiencia, Triple beneficio -m.EffectsHerbalism2_0=Dedos verdes (Trigo) -m.EffectsHerbalism2_1=Autoplanta el trigo al recolectarlo -m.EffectsHerbalism3_0=Dedos verdes (Piedras) -m.EffectsHerbalism3_1=Transorma Cobblestone en Moss Stone (usa semillas) -m.EffectsHerbalism4_0=+ Comida -m.EffectsHerbalism4_1=Modifica la vida recivida por el pan/guiso -m.EffectsHerbalism5_0=Doble beneficio (Todas las hierbas) -m.EffectsHerbalism5_1=Dobla el botin normal -m.HerbalismGreenTerraLength=[[RED]]Duracion de Tierra verde: [[YELLOW]]{0}s -m.HerbalismGreenThumbChance=[[RED]]Posibilidad de Dedos verdes: [[YELLOW]]{0}% -m.HerbalismGreenThumbStage=[[RED]]Etapa de Dedos verdes: [[YELLOW]] El Trigo crece en la etapa {0} -m.HerbalismDoubleDropChance=[[RED]]Posibilidad de Doble beneficio: [[YELLOW]]{0}% -m.HerbalismFoodPlus=[[RED]]+ Comida (Rank{0}): [[YELLOW]]{0} de Bonus de Curacion -m.SkillExcavation=EXCAVACION -m.XPGainExcavation=Excavar y encontrar tesoros -m.EffectsExcavation1_0=Ultra perforador (HABILIDAD) -m.EffectsExcavation1_1=Triple beneficio, Triple EXP, + Velocidad -m.EffectsExcavation2_0=Cazatesoros -m.EffectsExcavation2_1=Habilidad para excavar y obtener tesoros -m.ExcavationGreenTerraLength=[[RED]]Duracion de Ultra perforador: [[YELLOW]]{0}s -mcBlockListener.PlacedAnvil=[[DARK_RED]]Has establecido un yunque, Los yunques pueden reparar herramientas y armadura. -mcEntityListener.WolfComesBack=[[DARK_GRAY]]El lobo se escabuye hacia ti... -mcPlayerListener.AbilitiesOff=Uso de habilidad desactivada -mcPlayerListener.AbilitiesOn=Uso de habilidad activada -mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**HABILIDADES ACTUALIZADAS\!** -mcPlayerListener.AcrobaticsSkill=Acrobacias: -mcPlayerListener.ArcherySkill=Tiro con Arco: -mcPlayerListener.AxesSkill=Hachas: -mcPlayerListener.ExcavationSkill=Excavacion: -mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Modo Dios Desactivado -mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Modo Dios Activado -mcPlayerListener.GreenThumb=[[GREEN]]**DEDOS VERDES** -mcPlayerListener.GreenThumbFail=[[RED]]**DEDOS VERDES FALLIDO** -mcPlayerListener.HerbalismSkill=Herboristeria: -mcPlayerListener.MiningSkill=Minar: -mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn esta ahora limpio. -mcPlayerListener.MyspawnNotExist=[[RED]]Configura tu myspawn primero con una cama. -mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn ha sido establecido hacia tu localizacion actual. -mcPlayerListener.MyspawnTimeNotice=Tienes que esperar {0}min {1}seg para usar myspawn -mcPlayerListener.NoPermission=mcPermisos insuficientes -mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Si no tienes acceso a una habilidad no seras mostrado aqui. -mcPlayerListener.NotInParty=[[RED]]No estas en una fiesta. -mcPlayerListener.InviteSuccess=[[GREEN]]Invitacion enviada satisfactoriamente. -mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]Has recivido una invitacion a la fiesta para {0} de {1} -mcPlayerListener.ReceivedInvite2=[[YELLOW]]Escribe [[GREEN]]/{0}[[YELLOW]] para aceptar la invitacion -mcPlayerListener.InviteAccepted=[[GREEN]]Invitacion aceptada. Has entrado a la fiesta {0} -mcPlayerListener.NoInvites=[[RED]]No tienes invitaciones ahora mismo -mcPlayerListener.YouAreInParty=[[GREEN]]Estas en la fiesta {0} -mcPlayerListener.PartyMembers=[[GREEN]]Miembros de la fiesta -mcPlayerListener.LeftParty=[[RED]]Has abandonado esta fiesta -mcPlayerListener.JoinedParty=Ha entrado a la fiesta: {0} -mcPlayerListener.PartyChatOn=Solo Chat de fiesta [[GREEN]]Activado -mcPlayerListener.PartyChatOff=Solo Chat de fiesta [[RED]]Desactivado -mcPlayerListener.AdminChatOn=Solo Chat de Admins [[GREEN]]Activado -mcPlayerListener.AdminChatOff=Solo Chat de Admins [[RED]]Desactivado -mcPlayerListener.MOTD=[[BLUE]]Este server esta ejecutando mcMMO {0} escribe [[YELLOW]]/{1}[[BLUE]] para obtener ayuda. -mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]NIVEL DE PODER: -mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Nivel de Poder [[YELLOW]]Ranking de lideres-- -mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Ranking de lideres-- -mcPlayerListener.RepairSkill=Reparar: -mcPlayerListener.SwordsSkill=Espadas: -mcPlayerListener.TamingSkill=Domar: -mcPlayerListener.UnarmedSkill=Desarmado: -mcPlayerListener.WoodcuttingSkill=Tala de arboles: -mcPlayerListener.YourStats=[[GREEN]][mcMMO] Estadisticas -Party.InformedOnJoin={0} [[GREEN]] ha entrado a tu fiesta -Party.InformedOnQuit={0} [[GREEN]] ha salido de tu fiesta -Skills.YourGreenTerra=[[GREEN]]Tu habilidad [[YELLOW]]Tierra Verde [[GREEN]] ha sido actualizada! -Skills.YourTreeFeller=[[GREEN]]Tu habilidad [[YELLOW]]Cortador de Arboles [[GREEN]] ha sido actualizada! -Skills.YourSuperBreaker=[[GREEN]]Tu habilidad [[YELLOW]]Super Rompedor [[GREEN]]ha sido actualizada! -Skills.YourSerratedStrikes=[[GREEN]]Tu habilidad [[YELLOW]]Golpes dentados [[GREEN]]ha sido actualizada! -Skills.YourBerserk=[[GREEN]]Tu habilidad [[YELLOW]]Enloquecer [[GREEN]]ha sido actualizada! -Skills.YourSkullSplitter=[[GREEN]]Tu habilidad [[YELLOW]]Cortador de cabezas [[GREEN]]ha sido actualizada! -Skills.YourGigaDrillBreaker=[[GREEN]]Tu habilidad [[YELLOW]]Super Perforador [[GREEN]]ha sido actualizada! -Skills.TooTired=[[RED]]Estas demasiado cansado para usar esta habilidad de nuevo. -Skills.ReadyHoe=[[GREEN]]**SACHO LISTO PARA USAR TIERRA VERDE** -Skills.LowerHoe=[[GRAY]]**TU SACHO HA SIDO DESCARGADO** -Skills.ReadyAxe=[[GREEN]]**HACHA LISTA PARA USAR CORTADOR DE ARBOLES** -Skills.LowerAxe=[[GRAY]]**TU HACHA HA SIDO DESCARGADA** -Skills.ReadyFists=[[GREEN]]**TUS PUÑOS ESTAN LISTOS PARA USAR ENLOQUECER** -Skills.LowerFists=[[GRAY]]**TUS PUÑOS HAN SIDO DESCARGADOS** -Skills.ReadyPickAxe=[[GREEN]]**TU PICO ESTA LISTO PARA USAR SUPER ROMPEDOR** -Skills.LowerPickAxe=[[GRAY]]**TU PICO HA SIDO DESCARGADO** -Skills.ReadyShovel=[[GREEN]]**TU PALA ESTA PREPARADA PARA USAR ULTRA PERFORADOR** -Skills.LowerShovel=[[GRAY]]**TU PALA HA SIDO DESCARGADA** -Skills.ReadySword=[[GREEN]]**TU ESPADA ESTA PREPARADA PARA USAR GOLPES DENTADOS** -Skills.LowerSword=[[GRAY]]**TU PALA HA SIDO DESCARGADA** -Skills.BerserkOn=[[GREEN]]**ENLOQUECER ACTIVADO** -Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Enloquecer! -Skills.GreenTerraOn=[[GREEN]]**TIERRA VERDE ACTIVADO** -Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Tierra Verde! -Skills.TreeFellerOn=[[GREEN]]**CORTADOR DE ARBOLES ACTIVADO** -Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Cortador de arboles! -Skills.SuperBreakerOn=[[GREEN]]**SUPER ROMPEDOR ACTIVADO** -Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Super Rompedor! -Skills.SerratedStrikesOn=[[GREEN]]**GOLPES DENTADOS ACTIVADOS** -Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Golpes Dentados! -Skills.SkullSplitterOn=[[GREEN]]**CORTADOR DE CABEZAS ACTIVADO** -Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Cortador de Cabezas! -Skills.GigaDrillBreakerOn=[[GREEN]]**ULTRA PERFORADOR ACTIVADO** -Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Ultra Perforador! -Skills.GreenTerraOff=[[RED]]**Tierra Verde se ha agotado** -Skills.TreeFellerOff=[[RED]]**Tree Feller se ha agotado** -Skills.SuperBreakerOff=[[RED]]**Super Rompedor se ha agotado** -Skills.SerratedStrikesOff=[[RED]]**Golpes Dentados se ha agotado** -Skills.BerserkOff=[[RED]]**Enloquecer se ha agotado** -Skills.SkullSplitterOff=[[RED]]**Cortador de Cabezas se ha agotado** -Skills.GigaDrillBreakerOff=[[RED]]**Ultra Perforador se ha agotado** -Skills.TamingUp=[[YELLOW]]Habilidades de domar aumentaron en un {0}. En total: ({1}) -Skills.AcrobaticsUp=[[YELLOW]]Habilidades acrobaticas aumentaron en un {0}. En Total: ({1}) -Skills.ArcheryUp=[[YELLOW]]Habilidades de Tiro con arco aumentadas en un {0}. En Total: ({1}) -Skills.SwordsUp=[[YELLOW]]Habilidades de espada aumentadas en un {0}. En total: ({1}) -Skills.AxesUp=[[YELLOW]]Habilidades de hacha aumentadas en un {0}. En total: ({1}) -Skills.UnarmedUp=[[YELLOW]]Habilidades sin arma aumentadas en un {0}. En total: ({1}) -Skills.HerbalismUp=[[YELLOW]]Habilidades de herboristeria aumentadas en un {0}. En total: ({1}) -Skills.MiningUp=[[YELLOW]]Habilidades de mineria aumentadas en un {0}. En total: ({1}) -Skills.WoodcuttingUp=[[YELLOW]]Habilidades de tala de arboles aumentadas en un {0}. En total: ({1}) -Skills.RepairUp=[[YELLOW]]Habilidades de reparacion aumentadas en un {0}. En total: ({1}) -Skills.ExcavationUp=[[YELLOW]]Habilidades de exvacacion aumentadas en un {0}. En total: ({1}) -Skills.FeltEasy=[[GRAY]]Esa fue facil. -Skills.StackedItems=[[DARK_RED]]No puedes reparar objetos apilados. -Skills.NeedMore=[[DARK_RED]]Necesitas mas -Skills.AdeptDiamond=[[DARK_RED]]No tienes habilidades suficientes para reparar Diamante -Skills.FullDurability=[[GRAY]]Esto esta a su maxima duracion -Skills.Disarmed=[[DARK_RED]]Has sido desarmado! -mcPlayerListener.SorcerySkill=Hechiceria: -m.SkillSorcery=HECHICERIA -Sorcery.HasCast=[[GREEN]]**FUNDICION**[[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]] Sin Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) -Sorcery.Water.Thunder=TRUENO -Sorcery.Curative.Self=CURARSE A SI MISMO -Sorcery.Curative.Other=CURAR A OTRO -m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]EXP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) -Combat.BeastLore=[[GREEN]]**LEYENDA DE BESTIAS** -Combat.BeastLoreOwner=[[DARK_AQUA]]Dueño ([[RED]]{0}[[DARK_AQUA]]) -Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Salud ([[GREEN]]{0}[[DARK_AQUA]]/20) -Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Salud ([[GREEN]]{0}[[DARK_AQUA]]/8) -mcMMO.Description=[[DARK_AQUA]]Q: QUE ES ESTO?,[[GOLD]]mcMMO es un MOD de [[RED]]CODIGO LIBRE[[GOLD]] para Bukkit por [[BLUE]]nossr50,[[GOLD]]Hay muchas habilidades añadidas por mcMMO para Minecraft.,[[GOLD]]Puedes ganar experiencia de muchas formas diferentes,[[GOLD]]Tu querras escribir [[GREEN]]/SKILLNAME[[GOLD]] para saber mas sobre una habilidad.,[[DARK_AQUA]]Q: QUE HACE?,[[GOLD]]Por ejemplo... en [[DARK_AQUA]]Mineria[[GOLD]] recibiras recompensas como,[[RED]]Doble beneficio[[GOLD]] o la habilidad [[RED]]Super Rompedor[[GOLD]] que cuando[[GOLD]] se activa con el click derecho permite la Mineria durante su duracion,[[GOLD]]que esta relacionado con tu nivel de habilidad. Subiendo de nivel en [[BLUE]]Mineria,[[GOLD]]es tan sencillo como minar simples materiales! -Party.Locked=[[RED]]La fiesta esta bloqueda, solo el lider puede invitarte -Party.IsntLocked=[[GRAY]]La fiesta no esta bloqueada -Party.Unlocked=[[GRAY]]La fiesta esta desbloqueada -Party.Help1=[[RED]]El uso correcto es [[YELLOW]]/{0} [[WHITE]][[YELLOW]] o [[WHITE]]'q' [[YELLOW]]para salir -Party.Help2=[[RED]]Para entrar a una fiesta con contraseña usa [[YELLOW]]/{0} [[WHITE]] -Party.Help3=[[RED]]Consulta /{0} ? para mas informacion -Party.Help4=[[RED]]Usa [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]para entrar a una fiesta o [[WHITE]]'q' [[YELLOW]]para salir -Party.Help5=[[RED]]Para bloquear tu fiesta usa [[YELLOW]]/{0} [[WHITE]]lock -Party.Help6=[[RED]]Para desbloquear tu fiesta usa [[YELLOW]]/{0} [[WHITE]]unlock -Party.Help7=[[RED]]Para proteger tu fiesta con contraseña usa [[YELLOW]]/{0} [[WHITE]]password -Party.Help8=[[RED]]Para kickear a un jugador de tu fiesta usa [[YELLOW]]/{0} [[WHITE]]kick -Party.Help9=[[RED]]Para transferir el liderazgo de una fiesta usa [[YELLOW]]/{0} [[WHITE]]owner -Party.NotOwner=[[DARK_RED]]No eres el lider de la fiesta -Party.InvalidName=[[DARK_RED]]Este no es un nombre valido para la fiesta -Party.PasswordSet=[[GREEN]]Contraseña de la fiesta puesta a {0} -Party.CouldNotKick=[[DARK_RED]]No se puede kickear al jugador {0} -Party.NotInYourParty=[[DARK_RED]]{0} no esta en tu fiesta -Party.CouldNotSetOwner=[[DARK_RED]]No se puede poner de lider a {0} -Commands.xprate.proper=[[DARK_AQUA]]El uso correcto es /{0} [integer] [true:false] -Commands.xprate.proper2=[[DARK_AQUA]]Tambien puedes escribir /{0} reset para hacer que todo vuelva a la normalidad -Commands.xprate.proper3=[[RED]]Introduzca true o false en el segundo valor -Commands.xprate.over=[[RED]]mcMMO EXP Rate Event TERMINO!! -Commands.xprate.started=[[GOLD]]mcMMO XP EVENT COMENZO! -Commands.xprate.started2=[[GOLD]]mcMMO XP RATE ES AHORA {0}x!! -Commands.xplock.locked=[[GOLD]]Tu BARRA DE EXP esta bloqueada a {0}! -Commands.xplock.unlocked=[[GOLD]]Tu BARRA DE EXP esta ahora [[GREEN]]DESBLOQUEADA[[GOLD]]! -Commands.xplock.invalid=[[RED]]Ese no es un nombre de habilidad valido! Try /xplock mining -m.SkillAlchemy=ALCHEMY -m.SkillEnchanting=ENCHANTING -m.SkillFishing=FISHING -mcPlayerListener.AlchemySkill=Alchemy: -mcPlayerListener.EnchantingSkill=Enchanting: -mcPlayerListener.FishingSkill=Fishing: -Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) -Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) -Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) -Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. -Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. -Repair.Downgraded=[[RED]]Arcane power has decreased for this item. -Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. -m.EffectsRepair5_0=Arcane Forging -m.EffectsRepair5_1=Repair magic items -m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 -m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% -m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% -m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, -m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... -Fishing.ItemFound=[[GRAY]]Treasure found! -m.SkillFishing=FISHING -m.XPGainFishing=Fishing (Go figure!) -m.EffectsFishing1_0=Treasure Hunter (Passive) -m.EffectsFishing1_1=Fish up misc objects -m.EffectsFishing2_0=Magic Hunter -m.EffectsFishing2_1=Find Enchanted Items -m.EffectsFishing3_0=Shake (vs. Entities) -m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole -m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 -m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** -m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; -m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) -m.TamingSummon=[[GREEN]]Summoning complete -m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. -m.EffectsTaming7_0=Call of the Wild -m.EffectsTaming7_1=Summon a wolf to your side +Combat.WolfExamine=[[GREEN]]**Has examinado a un lobo usando tu conocimiento de fieras** +Combat.WolfShowMaster=[[DARK_GREEN]]El maestro de las fieras \: {0} +Combat.Ignition=[[RED]]**IGNICION** +Combat.BurningArrowHit=[[DARK_RED]]Has sido golpeado por una flecha ardiendo\! +Combat.TouchedFuzzy=[[DARK_RED]]Estas confuso. Te sientes mareado... +Combat.TargetDazed=El objetivo fue [[DARK_RED]]aturdido +Combat.WolfNoMaster=[[GRAY]]Esta bestia no tiene maestro... +Combat.WolfHealth=[[GREEN]]Esta bestia tiene {0} de salud +Combat.StruckByGore=[[RED]]**GOLPEADO POR MORDISCO** +Combat.Gore=[[GREEN]]**MORDISCO** +Combat.ArrowDeflect=[[WHITE]]**FLECHA DESVIADA** +Item.ChimaeraWingFail=**FLECHA QUIMERA FALLADA\!** +Item.ChimaeraWingPass=**FLECHA QUIMERA** +Item.InjuredWait=Has sido herido recientemente y tienes que esperar para usar esto. [[YELLOW]]({0}s) +Item.NeedFeathers=[[GRAY]]Necesitas mas plumas. +m.mccPartyCommands=[[GREEN]]--COMANDOS DE FIESTA-- +m.mccParty=[party name] [[RED]]- Crea/Entra a una fiesta especifica +m.mccPartyQ=[[RED]]- Abandona tu fiesta actual +m.mccPartyToggle=[[RED]] - Activa/Desactiva el chat de fiesta +m.mccPartyInvite=[player name] [[RED]]- Envia una invitacion para la fiesta +m.mccPartyAccept=[[RED]]- Acepta una invitacion para la fiesta +m.mccPartyTeleport=[party member name] [[RED]]- Teletransportate a un miembro de la fiesta +m.mccOtherCommands=[[GREEN]]--OTROS COMANDOS-- +m.mccStats=- Mira tus estadisticas de McMMO +m.mccLeaderboards=- Ranking de lideres +m.mccMySpawn=- Teletransportate a tu lugar de nacimiento +m.mccClearMySpawn=- Limpia tu lugar de nacimiento +m.mccToggleAbility=- Activa/Desactiva la activacion de la habilidad con el click derecho +m.mccAdminToggle=- Activa/Desactiva el chat de admins +m.mccWhois=[playername] [[RED]]- Mira informacion detallada del jugador +m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifica el objetivo +m.mccMcGod=- Modo dios +m.mccSkillInfo=[skillname] [[RED]]- Mira informacion detallada sobre una habilidad +m.mccModDescription=[[RED]]- Lee la descripcion del MOD +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]GANANCIA DE EXP: [[WHITE]]{0} +m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} +m.AbilityLockTemplate=[[GRAY]]{0} +m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} +m.Effects=EFECTOS +m.YourStats=TUS ESTADISTICAS +m.SkillTaming=DOMADURA +m.XPGainTaming=Lobos siendo lastimados +m.EffectsTaming1_0=Leyenda de bestias +m.EffectsTaming1_1=Golpear con huesos examina a los lobos +m.EffectsTaming2_0=Sangre +m.EffectsTaming2_1=Golpe critico que hace sangrar +m.EffectsTaming3_0=Garras afiladas +m.EffectsTaming3_1=Bonus de daño +m.EffectsTaming4_0=Consciente del medio ambiente +m.EffectsTaming4_1=Inmunidad a heridas por caidas, Cactus/Lava fobia +m.EffectsTaming5_0=Piel gruesa +m.EffectsTaming5_1=Reduccion de daño, Resistencia al fuego +m.EffectsTaming6_0=A prueba de golpes +m.EffectsTaming6_1=Reduccion del daño con explosivos +m.AbilLockTaming1=BLOQUEADO HASTA TENER HABILIDAD +100 (CONSCIENTE DEL MEDIO AMBIENTE) +m.AbilLockTaming2=BLOQUEADO HASTA TENER HABILIDAD +250 (PIEL GRUESA) +m.AbilLockTaming3=BLOQUEADO HASTA TENER HABILIDAD +500 (A PRUEBA DE GOLPES) +m.AbilLockTaming4=BLOQUEADO HASTA TENER HABILIDAD +750 (GARRAS AFILADAS) +m.AbilBonusTaming1_0=Consciente del medio ambiente +m.AbilBonusTaming1_1=Los lobos evitan el peligro +m.AbilBonusTaming2_0=Piel gruesa +m.AbilBonusTaming2_1=Daño reducido a la mitad, Resistencia al fuego +m.AbilBonusTaming3_0=A prueba de golpes +m.AbilBonusTaming3_1=Los explosivos hacen 1/6 del daño normal +m.AbilBonusTaming4_0=Garras afiladas +m.AbilBonusTaming4_1=+2 de Daño +m.TamingGoreChance=[[RED]]Oportunidad de sangre: [[YELLOW]]{0}% +m.SkillWoodCutting=TALA DE ARBOLES +m.XPGainWoodCutting=Cortando arboles +m.EffectsWoodCutting1_0=Cortador de arboles (HABILIDAD) +m.EffectsWoodCutting1_1=Haz que los arboles exploten +m.EffectsWoodCutting2_0=Soplador de hojas +m.EffectsWoodCutting2_1=Aparta las hojas +m.EffectsWoodCutting3_0=Doble de gotas +m.EffectsWoodCutting3_1=Doble del botin habitual +m.AbilLockWoodCutting1=BLOQUEADO HASTA TENER HABILIDAD +100 (SOPLADOR DE HOJAS) +m.AbilBonusWoodCutting1_0=Soplador de hojas +m.AbilBonusWoodCutting1_1=Aparta las ojas +m.WoodCuttingDoubleDropChance=[[RED]]Posibilidad de Doble de gotas: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Duracion de tala de arboles: [[YELLOW]]{0}s +m.SkillArchery=Tiro con Arco +m.XPGainArchery=Ataque a monstruos +m.EffectsArchery1_0=Ignicion +m.EffectsArchery1_1=25% de posibilidades de que un enemigo arda en llamas +m.EffectsArchery2_0=Aturdir (Jugadores) +m.EffectsArchery2_1=Desorienta a los enemigos +m.EffectsArchery3_0=+ Daño +m.EffectsArchery3_1=Modifica el daño +m.EffectsArchery4_0=Recuperación de flecha +m.EffectsArchery4_1=Posibilidad de obtener flechas de cadaveres +m.ArcheryDazeChance=[[RED]]Posibilidad de aturdir: [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Posibilidad de obtener flechas: [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Duracion de la ignicion: [[YELLOW]]{0} seconds +m.ArcheryDamagePlus=[[RED]]+ Daño (Rank{0}): [[YELLOW]] {0} de bonus de daño +m.SkillAxes=HACHAS +m.XPGainAxes=Ataque a monstruos +m.EffectsAxes1_0=Cortador de cabecas (HABILIDAD) +m.EffectsAxes1_1=Causa daños en arena +m.EffectsAxes2_0=Golpes criticos +m.EffectsAxes2_1=Doble de daño +m.EffectsAxes3_0=Maestria de hacha +m.EffectsAxes3_1=Modifica el daño +m.AbilLockAxes1=BLOQUEADO HASTA TENER HABILIDAD +500 (MAESTRIA DE HACHA) +m.AbilBonusAxes1_0=Maestria de hacha +m.AbilBonusAxes1_1=4 de daño de bonus +m.AxesCritChance=[[RED]]Posibilad de golpe critico: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Longitud de Cortador de cabezas: [[YELLOW]]{0}s +m.SkillSwords=ESPADAS +m.XPGainSwords=Ataque a monstruos +m.EffectsSwords1_0=Contraataque +m.EffectsSwords1_1=Desviar el 50% del daño obtenido +m.EffectsSwords2_0=Golpes dentados (HABILIDAD) +m.EffectsSwords2_1=25% de daño en Arena, y efecto de hemorragia +m.EffectsSwords3_0=Ataque cortante con efecto de hemorragia +m.EffectsSwords3_1=5 sangramientos +m.EffectsSwords4_0=Desviar +m.EffectsSwords4_1=Anula el daño +m.EffectsSwords5_0=Hemorragia +m.EffectsSwords5_1=Causa sangramientos repetidos a lo largo del tiempo +m.SwordsCounterAttChance=[[RED]]Posibilidad de contraataque: [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Duracion del sangrado: [[YELLOW]]{0} ticks +m.SwordsBleedChance=[[RED]]Posibilidad de hemorragia: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Posibilidad de desviacion: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Duracion de los golpes dentados: [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]NOTA: [[YELLOW]]1 Tick ocurre cada 2 segundos +m.SkillAcrobatics=ACROBACIAS +m.XPGainAcrobatics=Caida +m.EffectsAcrobatics1_0=Rodar +m.EffectsAcrobatics1_1=Reduce o evita daño +m.EffectsAcrobatics2_0=Rodar con estilo +m.EffectsAcrobatics2_1=Dos veces mas efectivos que Rodar +m.EffectsAcrobatics3_0=Esquivar +m.EffectsAcrobatics3_1=Reduce el daño a la mitad +m.AcrobaticsRollChance=[[RED]]Posibilidad de Rodar: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Posibilidad de Rodar con estilo: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Posibilidad de Esquivar: [[YELLOW]]{0}% +m.SkillMining=MINAR +m.XPGainMining=Minar Piedra & Oro +m.EffectsMining1_0=Super rompedor (HABILIDAD) +m.EffectsMining1_1=+ Velocidad, Posibilidad de obtener triple beneficio +m.EffectsMining2_0=Beneficio doble +m.EffectsMining2_1=Dobla el botin normal +m.MiningDoubleDropChance=[[RED]]Posibilidad de Beneficio doble: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Duracion de Super Rompedor: [[YELLOW]]{0}s +m.SkillRepair=REPARAR +m.XPGainRepair=Reparacion +m.EffectsRepair1_0=Reparar +m.EffectsRepair1_1=Reparar Herramientas y armadura de Hierro +m.EffectsRepair2_0=Maestro de reparacion +m.EffectsRepair2_1=Crecimiento de la cantidad de reparacion +m.EffectsRepair3_0=Super Reparacion +m.EffectsRepair3_1=Doble efectividad +m.EffectsRepair4_0=Reparar diamantes (+{0} HABILIDAD) +m.EffectsRepair4_1=Reparar Herramientas y armadura de Diamantes +m.RepairRepairMastery=[[RED]]Maestro de reparacion: [[YELLOW]]{0}% extra de duracion obtenido +m.RepairSuperRepairChance=[[RED]]Posibilidad de Super Reparacion: [[YELLOW]]{0}% +m.SkillUnarmed=DESARMADO +m.XPGainUnarmed=Ataque a monstruos +m.EffectsUnarmed1_0=Enloquecer (HABILIDAD) +m.EffectsUnarmed1_1=+50% daño, Romper materiales fragiles +m.EffectsUnarmed2_0=Desarmar (Jugadores) +m.EffectsUnarmed2_1=Caida del objeto de mano del enemigo +m.EffectsUnarmed3_0=Maestro desarmado +m.EffectsUnarmed3_1=Mejora de grandes daños +m.EffectsUnarmed4_0=Aprendiz desarmado +m.EffectsUnarmed4_1=Mejora de daños +m.EffectsUnarmed5_0=Desviar flechas +m.EffectsUnarmed5_1=Desviar flechas +m.AbilLockUnarmed1=BLOQUEADO HASTA TENER HABILIDAD +250 (APRENDIZ DESARMADO) +m.AbilLockUnarmed2=BLOQUEADO HASTA TENER HABILIDAD +500 (MAESTRO DESARMADO) +m.AbilBonusUnarmed1_0=Aprendiz desarmado +m.AbilBonusUnarmed1_1=Mejora de +2 de daño +m.AbilBonusUnarmed2_0=Maestro desarmado +m.AbilBonusUnarmed2_1=Mejora de +4 de daño +m.UnarmedArrowDeflectChance=[[RED]]Posibilidad de Desviar flechas: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Posibilidad de Desarmar: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Posibilidad de Enloquecer: [[YELLOW]]{0}s +m.SkillHerbalism=HERBORISTERIA +m.XPGainHerbalism=Cosecha de hierbas +m.EffectsHerbalism1_0=Tierra verde (HABILIDAD) +m.EffectsHerbalism1_1=Triple experiencia, Triple beneficio +m.EffectsHerbalism2_0=Dedos verdes (Trigo) +m.EffectsHerbalism2_1=Autoplanta el trigo al recolectarlo +m.EffectsHerbalism3_0=Dedos verdes (Piedras) +m.EffectsHerbalism3_1=Transorma Cobblestone en Moss Stone (usa semillas) +m.EffectsHerbalism4_0=+ Comida +m.EffectsHerbalism4_1=Modifica la vida recivida por el pan/guiso +m.EffectsHerbalism5_0=Doble beneficio (Todas las hierbas) +m.EffectsHerbalism5_1=Dobla el botin normal +m.HerbalismGreenTerraLength=[[RED]]Duracion de Tierra verde: [[YELLOW]]{0}s +m.HerbalismGreenThumbChance=[[RED]]Posibilidad de Dedos verdes: [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Etapa de Dedos verdes: [[YELLOW]] El Trigo crece en la etapa {0} +m.HerbalismDoubleDropChance=[[RED]]Posibilidad de Doble beneficio: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]+ Comida (Rank{0}): [[YELLOW]]{0} de Bonus de Curacion +m.SkillExcavation=EXCAVACION +m.XPGainExcavation=Excavar y encontrar tesoros +m.EffectsExcavation1_0=Ultra perforador (HABILIDAD) +m.EffectsExcavation1_1=Triple beneficio, Triple EXP, + Velocidad +m.EffectsExcavation2_0=Cazatesoros +m.EffectsExcavation2_1=Habilidad para excavar y obtener tesoros +m.ExcavationGreenTerraLength=[[RED]]Duracion de Ultra perforador: [[YELLOW]]{0}s +mcBlockListener.PlacedAnvil=[[DARK_RED]]Has establecido un yunque, Los yunques pueden reparar herramientas y armadura. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]El lobo se escabuye hacia ti... +mcPlayerListener.AbilitiesOff=Uso de habilidad desactivada +mcPlayerListener.AbilitiesOn=Uso de habilidad activada +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**HABILIDADES ACTUALIZADAS\!** +mcPlayerListener.AcrobaticsSkill=Acrobacias: +mcPlayerListener.ArcherySkill=Tiro con Arco: +mcPlayerListener.AxesSkill=Hachas: +mcPlayerListener.ExcavationSkill=Excavacion: +mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Modo Dios Desactivado +mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Modo Dios Activado +mcPlayerListener.GreenThumb=[[GREEN]]**DEDOS VERDES** +mcPlayerListener.GreenThumbFail=[[RED]]**DEDOS VERDES FALLIDO** +mcPlayerListener.HerbalismSkill=Herboristeria: +mcPlayerListener.MiningSkill=Minar: +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn esta ahora limpio. +mcPlayerListener.MyspawnNotExist=[[RED]]Configura tu myspawn primero con una cama. +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn ha sido establecido hacia tu localizacion actual. +mcPlayerListener.MyspawnTimeNotice=Tienes que esperar {0}min {1}seg para usar myspawn +mcPlayerListener.NoPermission=mcPermisos insuficientes +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Si no tienes acceso a una habilidad no seras mostrado aqui. +mcPlayerListener.NotInParty=[[RED]]No estas en una fiesta. +mcPlayerListener.InviteSuccess=[[GREEN]]Invitacion enviada satisfactoriamente. +mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]Has recivido una invitacion a la fiesta para {0} de {1} +mcPlayerListener.ReceivedInvite2=[[YELLOW]]Escribe [[GREEN]]/{0}[[YELLOW]] para aceptar la invitacion +mcPlayerListener.InviteAccepted=[[GREEN]]Invitacion aceptada. Has entrado a la fiesta {0} +mcPlayerListener.NoInvites=[[RED]]No tienes invitaciones ahora mismo +mcPlayerListener.YouAreInParty=[[GREEN]]Estas en la fiesta {0} +mcPlayerListener.PartyMembers=[[GREEN]]Miembros de la fiesta +mcPlayerListener.LeftParty=[[RED]]Has abandonado esta fiesta +mcPlayerListener.JoinedParty=Ha entrado a la fiesta: {0} +mcPlayerListener.PartyChatOn=Solo Chat de fiesta [[GREEN]]Activado +mcPlayerListener.PartyChatOff=Solo Chat de fiesta [[RED]]Desactivado +mcPlayerListener.AdminChatOn=Solo Chat de Admins [[GREEN]]Activado +mcPlayerListener.AdminChatOff=Solo Chat de Admins [[RED]]Desactivado +mcPlayerListener.MOTD=[[BLUE]]Este server esta ejecutando mcMMO {0} escribe [[YELLOW]]/{1}[[BLUE]] para obtener ayuda. +mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki +mcPlayerListener.PowerLevel=[[DARK_RED]]NIVEL DE PODER: +mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Nivel de Poder [[YELLOW]]Ranking de lideres-- +mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Ranking de lideres-- +mcPlayerListener.RepairSkill=Reparar: +mcPlayerListener.SwordsSkill=Espadas: +mcPlayerListener.TamingSkill=Domar: +mcPlayerListener.UnarmedSkill=Desarmado: +mcPlayerListener.WoodcuttingSkill=Tala de arboles: +mcPlayerListener.YourStats=[[GREEN]][mcMMO] Estadisticas +Party.InformedOnJoin={0} [[GREEN]] ha entrado a tu fiesta +Party.InformedOnQuit={0} [[GREEN]] ha salido de tu fiesta +Skills.YourGreenTerra=[[GREEN]]Tu habilidad [[YELLOW]]Tierra Verde [[GREEN]] ha sido actualizada! +Skills.YourTreeFeller=[[GREEN]]Tu habilidad [[YELLOW]]Cortador de Arboles [[GREEN]] ha sido actualizada! +Skills.YourSuperBreaker=[[GREEN]]Tu habilidad [[YELLOW]]Super Rompedor [[GREEN]]ha sido actualizada! +Skills.YourSerratedStrikes=[[GREEN]]Tu habilidad [[YELLOW]]Golpes dentados [[GREEN]]ha sido actualizada! +Skills.YourBerserk=[[GREEN]]Tu habilidad [[YELLOW]]Enloquecer [[GREEN]]ha sido actualizada! +Skills.YourSkullSplitter=[[GREEN]]Tu habilidad [[YELLOW]]Cortador de cabezas [[GREEN]]ha sido actualizada! +Skills.YourGigaDrillBreaker=[[GREEN]]Tu habilidad [[YELLOW]]Super Perforador [[GREEN]]ha sido actualizada! +Skills.TooTired=[[RED]]Estas demasiado cansado para usar esta habilidad de nuevo. +Skills.ReadyHoe=[[GREEN]]**SACHO LISTO PARA USAR TIERRA VERDE** +Skills.LowerHoe=[[GRAY]]**TU SACHO HA SIDO DESCARGADO** +Skills.ReadyAxe=[[GREEN]]**HACHA LISTA PARA USAR CORTADOR DE ARBOLES** +Skills.LowerAxe=[[GRAY]]**TU HACHA HA SIDO DESCARGADA** +Skills.ReadyFists=[[GREEN]]**TUS PUÑOS ESTAN LISTOS PARA USAR ENLOQUECER** +Skills.LowerFists=[[GRAY]]**TUS PUÑOS HAN SIDO DESCARGADOS** +Skills.ReadyPickAxe=[[GREEN]]**TU PICO ESTA LISTO PARA USAR SUPER ROMPEDOR** +Skills.LowerPickAxe=[[GRAY]]**TU PICO HA SIDO DESCARGADO** +Skills.ReadyShovel=[[GREEN]]**TU PALA ESTA PREPARADA PARA USAR ULTRA PERFORADOR** +Skills.LowerShovel=[[GRAY]]**TU PALA HA SIDO DESCARGADA** +Skills.ReadySword=[[GREEN]]**TU ESPADA ESTA PREPARADA PARA USAR GOLPES DENTADOS** +Skills.LowerSword=[[GRAY]]**TU PALA HA SIDO DESCARGADA** +Skills.BerserkOn=[[GREEN]]**ENLOQUECER ACTIVADO** +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Enloquecer! +Skills.GreenTerraOn=[[GREEN]]**TIERRA VERDE ACTIVADO** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Tierra Verde! +Skills.TreeFellerOn=[[GREEN]]**CORTADOR DE ARBOLES ACTIVADO** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Cortador de arboles! +Skills.SuperBreakerOn=[[GREEN]]**SUPER ROMPEDOR ACTIVADO** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Super Rompedor! +Skills.SerratedStrikesOn=[[GREEN]]**GOLPES DENTADOS ACTIVADOS** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Golpes Dentados! +Skills.SkullSplitterOn=[[GREEN]]**CORTADOR DE CABEZAS ACTIVADO** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Cortador de Cabezas! +Skills.GigaDrillBreakerOn=[[GREEN]]**ULTRA PERFORADOR ACTIVADO** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Ultra Perforador! +Skills.GreenTerraOff=[[RED]]**Tierra Verde se ha agotado** +Skills.TreeFellerOff=[[RED]]**Tree Feller se ha agotado** +Skills.SuperBreakerOff=[[RED]]**Super Rompedor se ha agotado** +Skills.SerratedStrikesOff=[[RED]]**Golpes Dentados se ha agotado** +Skills.BerserkOff=[[RED]]**Enloquecer se ha agotado** +Skills.SkullSplitterOff=[[RED]]**Cortador de Cabezas se ha agotado** +Skills.GigaDrillBreakerOff=[[RED]]**Ultra Perforador se ha agotado** +Skills.TamingUp=[[YELLOW]]Habilidades de domar aumentaron en un {0}. En total: ({1}) +Skills.AcrobaticsUp=[[YELLOW]]Habilidades acrobaticas aumentaron en un {0}. En Total: ({1}) +Skills.ArcheryUp=[[YELLOW]]Habilidades de Tiro con arco aumentadas en un {0}. En Total: ({1}) +Skills.SwordsUp=[[YELLOW]]Habilidades de espada aumentadas en un {0}. En total: ({1}) +Skills.AxesUp=[[YELLOW]]Habilidades de hacha aumentadas en un {0}. En total: ({1}) +Skills.UnarmedUp=[[YELLOW]]Habilidades sin arma aumentadas en un {0}. En total: ({1}) +Skills.HerbalismUp=[[YELLOW]]Habilidades de herboristeria aumentadas en un {0}. En total: ({1}) +Skills.MiningUp=[[YELLOW]]Habilidades de mineria aumentadas en un {0}. En total: ({1}) +Skills.WoodcuttingUp=[[YELLOW]]Habilidades de tala de arboles aumentadas en un {0}. En total: ({1}) +Skills.RepairUp=[[YELLOW]]Habilidades de reparacion aumentadas en un {0}. En total: ({1}) +Skills.ExcavationUp=[[YELLOW]]Habilidades de exvacacion aumentadas en un {0}. En total: ({1}) +Skills.FeltEasy=[[GRAY]]Esa fue facil. +Skills.StackedItems=[[DARK_RED]]No puedes reparar objetos apilados. +Skills.NeedMore=[[DARK_RED]]Necesitas mas +Skills.AdeptDiamond=[[DARK_RED]]No tienes habilidades suficientes para reparar Diamante +Skills.FullDurability=[[GRAY]]Esto esta a su maxima duracion +Skills.Disarmed=[[DARK_RED]]Has sido desarmado! +mcPlayerListener.SorcerySkill=Hechiceria: +m.SkillSorcery=HECHICERIA +Sorcery.HasCast=[[GREEN]]**FUNDICION**[[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]] Sin Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) +Sorcery.Water.Thunder=TRUENO +Sorcery.Curative.Self=CURARSE A SI MISMO +Sorcery.Curative.Other=CURAR A OTRO +m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]EXP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) +Combat.BeastLore=[[GREEN]]**LEYENDA DE BESTIAS** +Combat.BeastLoreOwner=[[DARK_AQUA]]Dueño ([[RED]]{0}[[DARK_AQUA]]) +Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Salud ([[GREEN]]{0}[[DARK_AQUA]]/20) +Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Salud ([[GREEN]]{0}[[DARK_AQUA]]/8) +mcMMO.Description=[[DARK_AQUA]]Q: QUE ES ESTO?,[[GOLD]]mcMMO es un MOD de [[RED]]CODIGO LIBRE[[GOLD]] para Bukkit por [[BLUE]]nossr50,[[GOLD]]Hay muchas habilidades añadidas por mcMMO para Minecraft.,[[GOLD]]Puedes ganar experiencia de muchas formas diferentes,[[GOLD]]Tu querras escribir [[GREEN]]/SKILLNAME[[GOLD]] para saber mas sobre una habilidad.,[[DARK_AQUA]]Q: QUE HACE?,[[GOLD]]Por ejemplo... en [[DARK_AQUA]]Mineria[[GOLD]] recibiras recompensas como,[[RED]]Doble beneficio[[GOLD]] o la habilidad [[RED]]Super Rompedor[[GOLD]] que cuando[[GOLD]] se activa con el click derecho permite la Mineria durante su duracion,[[GOLD]]que esta relacionado con tu nivel de habilidad. Subiendo de nivel en [[BLUE]]Mineria,[[GOLD]]es tan sencillo como minar simples materiales! +Party.Locked=[[RED]]La fiesta esta bloqueda, solo el lider puede invitarte +Party.IsntLocked=[[GRAY]]La fiesta no esta bloqueada +Party.Unlocked=[[GRAY]]La fiesta esta desbloqueada +Party.Help1=[[RED]]El uso correcto es [[YELLOW]]/{0} [[WHITE]][[YELLOW]] o [[WHITE]]'q' [[YELLOW]]para salir +Party.Help2=[[RED]]Para entrar a una fiesta con contraseña usa [[YELLOW]]/{0} [[WHITE]] +Party.Help3=[[RED]]Consulta /{0} ? para mas informacion +Party.Help4=[[RED]]Usa [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]para entrar a una fiesta o [[WHITE]]'q' [[YELLOW]]para salir +Party.Help5=[[RED]]Para bloquear tu fiesta usa [[YELLOW]]/{0} [[WHITE]]lock +Party.Help6=[[RED]]Para desbloquear tu fiesta usa [[YELLOW]]/{0} [[WHITE]]unlock +Party.Help7=[[RED]]Para proteger tu fiesta con contraseña usa [[YELLOW]]/{0} [[WHITE]]password +Party.Help8=[[RED]]Para kickear a un jugador de tu fiesta usa [[YELLOW]]/{0} [[WHITE]]kick +Party.Help9=[[RED]]Para transferir el liderazgo de una fiesta usa [[YELLOW]]/{0} [[WHITE]]owner +Party.NotOwner=[[DARK_RED]]No eres el lider de la fiesta +Party.InvalidName=[[DARK_RED]]Este no es un nombre valido para la fiesta +Party.PasswordSet=[[GREEN]]Contraseña de la fiesta puesta a {0} +Party.CouldNotKick=[[DARK_RED]]No se puede kickear al jugador {0} +Party.NotInYourParty=[[DARK_RED]]{0} no esta en tu fiesta +Party.CouldNotSetOwner=[[DARK_RED]]No se puede poner de lider a {0} +Commands.xprate.proper=[[DARK_AQUA]]El uso correcto es /{0} [integer] [true:false] +Commands.xprate.proper2=[[DARK_AQUA]]Tambien puedes escribir /{0} reset para hacer que todo vuelva a la normalidad +Commands.xprate.proper3=[[RED]]Introduzca true o false en el segundo valor +Commands.xprate.over=[[RED]]mcMMO EXP Rate Event TERMINO!! +Commands.xprate.started=[[GOLD]]mcMMO XP EVENT COMENZO! +Commands.xprate.started2=[[GOLD]]mcMMO XP RATE ES AHORA {0}x!! +Commands.xplock.locked=[[GOLD]]Tu BARRA DE EXP esta bloqueada a {0}! +Commands.xplock.unlocked=[[GOLD]]Tu BARRA DE EXP esta ahora [[GREEN]]DESBLOQUEADA[[GOLD]]! +Commands.xplock.invalid=[[RED]]Ese no es un nombre de habilidad valido! Try /xplock mining +m.SkillAlchemy=ALCHEMY +m.SkillEnchanting=ENCHANTING +m.SkillFishing=FISHING +mcPlayerListener.AlchemySkill=Alchemy: +mcPlayerListener.EnchantingSkill=Enchanting: +mcPlayerListener.FishingSkill=Fishing: +Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) +Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) +Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) +Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. +Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. +Repair.Downgraded=[[RED]]Arcane power has decreased for this item. +Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. +m.EffectsRepair5_0=Arcane Forging +m.EffectsRepair5_1=Repair magic items +m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 +m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% +m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% +m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, +m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ +Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.ItemFound=[[GRAY]]Treasure found! +m.SkillFishing=FISHING +m.XPGainFishing=Fishing (Go figure!) +m.EffectsFishing1_0=Treasure Hunter (Passive) +m.EffectsFishing1_1=Fish up misc objects +m.EffectsFishing2_0=Magic Hunter +m.EffectsFishing2_1=Find Enchanted Items +m.EffectsFishing3_0=Shake (vs. Entities) +m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole +m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 +m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** +m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; +m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) +m.TamingSummon=[[GREEN]]Summoning complete +m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. +m.EffectsTaming7_0=Call of the Wild +m.EffectsTaming7_1=Summon a wolf to your side m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand \ No newline at end of file diff --git a/src/com/gmail/nossr50/locale/locale_fi.properties b/src/main/java/com/gmail/nossr50/locale/locale_fi.properties similarity index 98% rename from src/com/gmail/nossr50/locale/locale_fi.properties rename to src/main/java/com/gmail/nossr50/locale/locale_fi.properties index 290f0afd3..609adf7c1 100644 --- a/src/com/gmail/nossr50/locale/locale_fi.properties +++ b/src/main/java/com/gmail/nossr50/locale/locale_fi.properties @@ -1,369 +1,369 @@ -Combat.WolfExamine=[[GREEN]]**Tutkit sutta käyttämällä Pedon Tarinaa** -Combat.WolfShowMaster=[[DARK_GREEN]]Pedon isäntä : {0} -Combat.Ignition=[[RED]]**SYTYTYS** -Combat.BurningArrowHit=[[DARK_RED]]Palava nuoli osui sinuun\! -Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy. -Combat.TargetDazed=Kohde [[DARK_RED]]tyrmätty -Combat.WolfNoMaster=[[GRAY]]Tällä pedolla ei ole isäntää... -Combat.WolfHealth=[[GREEN]]Tämän pedon terveys on {0} -Combat.StruckByGore=[[RED]]**SINUA ON PISTETTY** -Combat.Gore=[[GREEN]]**PISTO** -Combat.ArrowDeflect=[[WHITE]]**NUOLI TORJUTTU** -Item.ChimaeraWingFail=**KHIMAIRAN SIIVEN KÄYTTÖ EPÄONNISTUI\!** -Item.ChimaeraWingPass=**KHIMAIRAN SIIPI** -Item.InjuredWait=Sinua on haavoitettu äskettäin joten joudut odottaa tämän käyttöä. [[YELLOW]]({0}s) -Item.NeedFeathers=[[GRAY]]Tarvitset lisää sulkia.. -m.mccPartyCommands=[[GREEN]]--RYHMÄKOMENNOT-- -m.mccParty=[party name] [[RED]]- Luo/liity nimettyyn ryhmään -m.mccPartyQ=[[RED]]- Lähde ryhmästä -m.mccPartyToggle=[[RED]] - Laita ryhmäjuttelu päälle/pois -m.mccPartyInvite=[player name] [[RED]]- Lähetä ryhmäkutsu -m.mccPartyAccept=[[RED]]- Hyväksy ryhmäkutsu -m.mccPartyTeleport=[party member name] [[RED]]- Siirry ryhmän jäsenen luo -m.mccOtherCommands=[[GREEN]]--MUUT KOMENNOT-- -m.mccStats=- Näytä mcMMO tilastosi -m.mccLeaderboards=- Tulostaulukko -m.mccMySpawn=- Siirtää sinut myspawniin -m.mccClearMySpawn=- Tyhjää myspawnisi -m.mccToggleAbility=- Laita taitojen aktivointi oikealla näppäimellä päälle/pois -m.mccAdminToggle=- Laita admin juttelu päälle/pois -m.mccWhois=[playername] [[RED]]- Näytä yksityiskohtaiset tiedot pelaajasta -m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Muokkaa kohdetta -m.mccMcGod=- "God Mode" -m.mccSkillInfo=[skillname] [[RED]]- Näytä ykistyiskohtaiset tiedot taidosta -m.mccModDescription=[[RED]]- Lue lyhyt kuvaus modista -m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- -m.XPGain=[[DARK_GRAY]]KOKEMUSPISTEIDEN MÄÄRÄ: [[WHITE]]{0} -m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} -m.AbilityLockTemplate=[[GRAY]]{0} -m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} -m.Effects=EFEKTIT -m.YourStats=TILASTOSI -m.SkillTaming=KESYTTÄMINEN -m.XPGainTaming=Susien satuttaminen -m.EffectsTaming1_0=Pedon Tarina -m.EffectsTaming1_1=Luulla lyöminen tutkii susia -m.EffectsTaming2_0=Pisto -m.EffectsTaming2_1=Kriittinen Isku joka lisää Verenvuodon -m.EffectsTaming3_0=Teroitetut Kynnet -m.EffectsTaming3_1=Tuhoamis Bonus -m.EffectsTaming4_0=Ympäristötietoinen -m.EffectsTaming4_1=Kaktus/Laavapelko, immuuni Putousvahingolle -m.EffectsTaming5_0=Paksu Turkki -m.EffectsTaming5_1=Vahingon vähennys, Tulenkestävä -m.EffectsTaming6_0=Räjähdyskestävä -m.EffectsTaming6_1=Räjähdysvahingon vähennys -m.AbilLockTaming1=LUKITTU KUNNES 100+ TAITO (YMPÄRISTÖTIETOINEN) -m.AbilLockTaming2=LUKITTU KUNNES 250+ TAITO (PAKSU TURKKI) -m.AbilLockTaming3=LUKITTU KUNNES 500+ TAITO (RÄJÄHDYSKESTÄVÄ) -m.AbilLockTaming4=LUKITTU KUNNES 750+ TAITO (TEROITETUT KYNNET) -m.AbilBonusTaming1_0=Ympäristötietoinen -m.AbilBonusTaming1_1=Sudet karttavat vaaraa -m.AbilBonusTaming2_0=Paksu Turkki -m.AbilBonusTaming2_1=Puolitettu vahinko, Tulenkestävä -m.AbilBonusTaming3_0=Räjähdyskestävä -m.AbilBonusTaming3_1=Räjähteet vahingoittavat 1/6 vähemmän -m.AbilBonusTaming4_0=Teroitetut Kynnet -m.AbilBonusTaming4_1=+2 Vahinko -m.TamingGoreChance=[[RED]]Piston todennäköisyys: [[YELLOW]]{0}% -m.SkillWoodCutting=PUUN KAATO -m.XPGainWoodCutting=Puiden pilkkominen -m.EffectsWoodCutting1_0=Puunkaataja (TAITO) -m.EffectsWoodCutting1_1=Räjäytä puita -m.EffectsWoodCutting2_0=Lehdenpuhallin -m.EffectsWoodCutting2_1=Puhalla lehtiä pois -m.EffectsWoodCutting3_0=Tuplasaalis -m.EffectsWoodCutting3_1=Tuplaa normaali saalis -m.AbilLockWoodCutting1=LUKITTU KUNNES 100+ TAITO (LEHDENPUHALLIN) -m.AbilBonusWoodCutting1_0=Lehdenpuhallin -m.AbilBonusWoodCutting1_1=Puhalla lehtiä pois -m.WoodCuttingDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}% -m.WoodCuttingTreeFellerLength=[[RED]]Puunkaatajan kesto: [[YELLOW]]{0}s -m.SkillArchery=JOUSIAMMUNTA -m.XPGainArchery=Hyökkäämällä hirviöiden kimppuun -m.EffectsArchery1_0=Sytytys -m.EffectsArchery1_1=25% Todennäköisyys että vihollinen syttyy tuleen -m.EffectsArchery2_0=Pökerrys (Pelaajat) -m.EffectsArchery2_1=Saa viholliset pois tolaltaan -m.EffectsArchery3_0=Vahinko+ -m.EffectsArchery3_1=Muokkaa vahinkoa -m.EffectsArchery4_0=Nuolenkeräys -m.EffectsArchery4_1=Todennäköisyys kerätä nuolia raadoista -m.ArcheryDazeChance=[[RED]]Todennäköisyys Pökerryttää: [[YELLOW]]{0}% -m.ArcheryRetrieveChance=[[RED]]Todennäköisyys kerätä nuolia: [[YELLOW]]{0}% -m.ArcheryIgnitionLength=[[RED]]Sytytyksen kesto: [[YELLOW]]{0} sekuntia -m.ArcheryDamagePlus=[[RED]]Vahinko+ (Rank{0}): [[YELLOW]]Bonus {0} vahinko -m.SkillAxes=KIRVEET -m.XPGainAxes=Hyökkäämällä hirviöiden kimppuun -m.EffectsAxes1_0=Kallonhalkoja (TAITO) -m.EffectsAxes1_1=Tee aluevahinkoa -m.EffectsAxes2_0=Kriittiset Iskut -m.EffectsAxes2_1=Tuplavahinko -m.EffectsAxes3_0=Kirveiden Herra (500 TAITO) -m.EffectsAxes3_1=Muokkaa vahinkoa -m.AbilLockAxes1=LUKITTU KUNNES 500+ TAITO (KIRVEIDEN HERRA) -m.AbilBonusAxes1_0=Kirveiden Herra -m.AbilBonusAxes1_1=+4 Vahinko -m.AxesCritChance=[[RED]]Todennäköisyys iskeä kriittisesti: [[YELLOW]]{0}% -m.AxesSkullLength=[[RED]]Kallonhalkojan kesto: [[YELLOW]]{0}s -m.SkillSwords=MIEKAT -m.XPGainSwords=Hyökkäämällä hirviöiden kimppuun -m.EffectsSwords1_0=Vastaisku -m.EffectsSwords1_1=Kimmota 50% saadusta vahingosta -m.EffectsSwords2_0=Sahalaitaiset Iskut (TAITO) -m.EffectsSwords2_1=25% Aluevahinko, Verenvuoto+ Aluevahinko -m.EffectsSwords3_0=Sahalaitaiset Iskut Verenvuoto+ -m.EffectsSwords3_1=5 Aiheuta Verenvuotoa -m.EffectsSwords4_0=Torjuminen -m.EffectsSwords4_1=Estää saadun vahingon -m.EffectsSwords5_0=Verenvuoto -m.EffectsSwords5_1=Lisää Verenvuoto -m.SwordsCounterAttChance=[[RED]]Vastaiskun todennäköisyys: [[YELLOW]]{0}% -m.SwordsBleedLength=[[RED]]Verenvuodon kesto: [[YELLOW]]{0} vuotoa -m.SwordsBleedChance=[[RED]]Verenvuodon todennäköisyys: [[YELLOW]]{0} % -m.SwordsParryChance=[[RED]]Torjumisen todennäköisyys: [[YELLOW]]{0} % -m.SwordsSSLength=[[RED]]Sahalaitaisten Iskujen kesto: [[YELLOW]]{0}s -m.SwordsTickNote=[[GRAY]]HUOMAA: [[YELLOW]]1 vuoto tapahtuu joka kahdes sekunti -m.SkillAcrobatics=AKROBATIA -m.XPGainAcrobatics=Tippumalla -m.EffectsAcrobatics1_0=Kieriminen -m.EffectsAcrobatics1_1=Vähentää tai estää vahinkoa -m.EffectsAcrobatics2_0=Sulava Kieriminen -m.EffectsAcrobatics2_1=Tuplasti tehokkaampi kuin Kieriminen -m.EffectsAcrobatics3_0=Väistö -m.EffectsAcrobatics3_1=Vähentää vahingon määrän puoleen -m.AcrobaticsRollChance=[[RED]]Kierimisen todennäköisyys: [[YELLOW]]{0}% -m.AcrobaticsGracefulRollChance=[[RED]]Sulavan Kierimisen todennäköisyys: [[YELLOW]]{0}% -m.AcrobaticsDodgeChance=[[RED]]Väistön todennäköisyys: [[YELLOW]]{0}% -m.SkillMining=LOUHINTA -m.XPGainMining=Louhimalla kiveä ja malmia -m.EffectsMining1_0=Supermurskain (TAITO) -m.EffectsMining1_1=Nopeus+, Triplaa saaliin tippumistodennäköisyys -m.EffectsMining2_0=Tuplasaalis -m.EffectsMining2_1=Tuplaa normaali saaliin määrä -m.MiningDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}% -m.MiningSuperBreakerLength=[[RED]]Supermurskaimen kesto: [[YELLOW]]{0}s -m.SkillRepair=KORJAUS -m.XPGainRepair=Korjaamalla -m.EffectsRepair1_0=Korjaa -m.EffectsRepair1_1=Korjaa rautatyökaluja ja haarniskoja -m.EffectsRepair2_0=Korjausten Herra -m.EffectsRepair2_1=Lisätty korjausten määrä -m.EffectsRepair3_0=Superkorjaus -m.EffectsRepair3_1=Tuplatehokkuus -m.EffectsRepair4_0=Timanttikorjaus ({0}+ TAITO) -m.EffectsRepair4_1=Korjaa timanttityökaluja ja haarniskoja -m.RepairRepairMastery=[[RED]]Korjausten Herra: [[YELLOW]]Extra {0}% kestävyyttä palautettu -m.RepairSuperRepairChance=[[RED]]Superkorjauksen todennäköisyys: [[YELLOW]]{0}% -m.SkillUnarmed=ASEISTAMATON -m.XPGainUnarmed=Hyökkäämällä hirviöiden kimppuun -m.EffectsUnarmed1_0=Raivopää (TAITO) -m.EffectsUnarmed1_1=+50% vahinko, rikkoo heikkoja materiaaleja -m.EffectsUnarmed2_0=Aseista riisuminen (Pelaajat) -m.EffectsUnarmed2_1=Pudottaa vihollisen esineen kädestä -m.EffectsUnarmed3_0=Aseistamattomuuden Herra -m.EffectsUnarmed3_1=Suuri vahingonlisäys -m.EffectsUnarmed4_0=Aseistamattomuuden Aloittelija -m.EffectsUnarmed4_1=Vahingonlisäys -m.EffectsUnarmed5_0=Nuolentorjunta -m.EffectsUnarmed5_1=Torjuu nuolia -m.AbilLockUnarmed1=LUKITTU KUNNES 250+ TAITO (ASEISTAMATTOMUUDEN ALOITTELIJA) -m.AbilLockUnarmed2=LUKITTU KUNNES 500+ TAITO (ASEISTAMATTOMUUDEN HERRA) -m.AbilBonusUnarmed1_0=Aseistamattomuuden Aloittelija -m.AbilBonusUnarmed1_1=+2 Vahinko -m.AbilBonusUnarmed2_0=Aseistamattomuuden Herra -m.AbilBonusUnarmed2_1=+4 Vahinko -m.UnarmedArrowDeflectChance=[[RED]]Nuolentorjunnan todennäköisyys: [[YELLOW]]{0}% -m.UnarmedDisarmChance=[[RED]]Aseista riisumisen todennäköisyys: [[YELLOW]]{0}% -m.UnarmedBerserkLength=[[RED]]Raivopään kesto: [[YELLOW]]{0}s -m.SkillHerbalism=YRTTIHOITO -m.XPGainHerbalism=Keräämällä yrttejä -m.EffectsHerbalism1_0=Vihermaa (TAITO) -m.EffectsHerbalism1_1=Levitä vihreyttä, 3x saalis -m.EffectsHerbalism2_0=Viherpeukalo (Vehnä) -m.EffectsHerbalism2_1=Istuttaa vehnää automaattisesti kun keräät vehnää -m.EffectsHerbalism3_0=Viherpeukalo (Mukulakivi) -m.EffectsHerbalism3_1=Mukulakivi -> Sammaleinen mukulakivi ja siemeniä -m.EffectsHerbalism4_0=Ruoka+ -m.EffectsHerbalism4_1=Muokkaa terveyttä jota saat leivästä/muhennoksesta -m.EffectsHerbalism5_0=Tuplasaalis (Kaikki yrtit) -m.EffectsHerbalism5_1=Tuplaa normaali saaliin määrä -m.HerbalismGreenTerraLength=[[RED]]Vihermaan kesto: [[YELLOW]]{0}s -m.HerbalismGreenThumbChance=[[RED]]Viherpeukalon todennäköisyys: [[YELLOW]]{0}% -m.HerbalismGreenThumbStage=[[RED]]Viherpeukalon vaihe: [[YELLOW]] Vehnä kasvaa {0}:ssa vaiheessa -m.HerbalismDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}% -m.HerbalismFoodPlus=[[RED]]Ruoka+ (Rank{0}): [[YELLOW]]Bonus {0} terveyden määrä -m.SkillExcavation=KAIVANTO -m.XPGainExcavation=Kaivamalla ja löytämällä aarteita -m.EffectsExcavation1_0=Giga Drill Breaker (TAITO) -m.EffectsExcavation1_1=3x saaliin määrä, 3x kokemuspisteiden määrä, +Nopeus -m.EffectsExcavation2_0=Aarteenmetsästäjä -m.EffectsExcavation2_1=Taito jonka avulla voit kaivaa aarteita -m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker kesto: [[YELLOW]]{0}s -mcBlockListener.PlacedAnvil=[[DARK_RED]]Olet asettanut alasimen maahan, sillä voit korjata työkaluja ja haarniskoja. -mcEntityListener.WolfComesBack=[[DARK_GRAY]]Sutesi kipittää takaisin luoksesi... -mcPlayerListener.AbilitiesOff=Taitojen käyttö pois päältä -mcPlayerListener.AbilitiesOn=Taitojen käyttö päällä -mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**TAIDOT PÄIVITETTY\!** -mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Akrobatia: -mcPlayerListener.ArcherySkill=[[YELLOW]]Jousiammunta: -mcPlayerListener.AxesSkill=[[YELLOW]]Kirveet: -mcPlayerListener.ExcavationSkill=[[YELLOW]]Kaivanto: -mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode pois päältä -mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode päällä -mcPlayerListener.GreenThumb=[[GREEN]]**VIHERPEUKALO** -mcPlayerListener.GreenThumbFail=[[RED]]**VIHERPEUKALO EPÄONNISTUI** -mcPlayerListener.HerbalismSkill=[[YELLOW]]Yrttihoito: -mcPlayerListener.MiningSkill=[[YELLOW]]Kaivanto: -mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn on tyhjätty. -mcPlayerListener.MyspawnNotExist=[[RED]]Määrää myspawnisi ensin laittamalla sänky maahan. -mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn on asetettu tämänhetkiseen sijaintiisi. -mcPlayerListener.MyspawnTimeNotice=Sinun pitää odottaa {0}m {1}s käyttääksesi myspawnia -mcPlayerListener.NoPermission=Puutteelliset oikeudet (mcPermissions) -mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Jos sinulla ei ole käyttöoikeutta johonkin taitoon, sitä ei näytetä täällä. -mcPlayerListener.NotInParty=[[RED]]Et ole ryhmässä. -mcPlayerListener.InviteSuccess=[[GREEN]]Kutsu lähetetty. -mcPlayerListener.ReceivedInvite1=[[RED]]HUOMIO: [[GREEN]]Olet saanut ryhmäkutsun ryhmään {0} pelaajalta {1} -mcPlayerListener.ReceivedInvite2=[[YELLOW]]Kirjoita [[GREEN]]/{0}[[YELLOW]] hyväksyäksesi kutsun -mcPlayerListener.InviteAccepted=[[GREEN]]Kutsu hyväksytty. Olet liittynyt ryhmään {0} -mcPlayerListener.NoInvites=[[RED]]Sinulla ei ole kutsuja -mcPlayerListener.YouAreInParty=[[GREEN]]Olet ryhmässä {0} -mcPlayerListener.PartyMembers=[[GREEN]]Ryhmän jäsenet -mcPlayerListener.LeftParty=[[RED]]Olet lähtenyt ryhmästä -mcPlayerListener.JoinedParty=Liityit ryhmään: {0} -mcPlayerListener.PartyChatOn=Vain ryhmäjuttelu [[GREEN]]Päällä -mcPlayerListener.PartyChatOff=Vain ryhmäjuttelu [[RED]]Pois päältä -mcPlayerListener.AdminChatOn=Vain admin juttelu [[GREEN]]Päällä -mcPlayerListener.AdminChatOff=Vain admin juttelu [[RED]]Pois päältä -mcPlayerListener.MOTD=[[BLUE]]Tällä serverillä on mcMMO {0} kirjoita [[YELLOW]]/{1}[[BLUE]] apua varten. -mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]VOIMATASO: -mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Voimataso [[YELLOW]]Tulostaulukko-- -mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Tulostaulukko-- -mcPlayerListener.RepairSkill=[[YELLOW]]Korjaus: -mcPlayerListener.SwordsSkill=[[YELLOW]]Miekat: -mcPlayerListener.TamingSkill=[[YELLOW]]Kesytys: -mcPlayerListener.UnarmedSkill=[[YELLOW]]Aseistamattomuus: -mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Puunkaato: -mcPlayerListener.YourStats=[[GREEN]]Sinun MMO tilastosi -Party.InformedOnJoin={0} [[GREEN]] on liittynyt ryhmään -Party.InformedOnQuit={0} [[GREEN]] on lähtenyt ryhmästä -Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed! -Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed! -Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed! -Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed! -Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed! -Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed! -Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed! -Skills.TooTired=[[RED]]You are too tired to use that ability again. -Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE** -Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE** -Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE** -Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE** -Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS** -Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS** -Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE** -Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE** -Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL** -Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL** -Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD** -Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD** -Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED** -Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk! -Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED** -Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra! -Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED** -Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller! -Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED** -Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker! -Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED** -Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes! -Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED** -Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter! -Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED** -Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker! -Skills.GreenTerraOff=[[RED]]**Green Terra has worn off** -Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off** -Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off** -Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off** -Skills.BerserkOff=[[RED]]**Berserk has worn off** -Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off** -Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off** -Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1}) -Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1}) -Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1}) -Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1}) -Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1}) -Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1}) -Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1}) -Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1}) -Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1}) -Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1}) -Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1}) -mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com -Party.Locked=[[RED]]Party is locked, only party leader may invite. -Party.IsntLocked=[[GRAY]]Party is not locked -Party.Unlocked=[[GRAY]]Party is unlocked -Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]][[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit -Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]] -Party.Help3=[[RED]]Consult /{0} ? for more information -Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit -Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock -Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock -Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password -Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick -Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner -Party.NotOwner=[[DARK_RED]]You are not the party owner -Party.InvalidName=[[DARK_RED]]That is not a valid party name -Party.PasswordSet=[[GREEN]]Party password set to {0} -Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} -Party.NotInYourParty=[[DARK_RED]]{0} is not in your party -Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} -Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] -Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal -Commands.xprate.proper3=[[RED]]Enter true or false for the second value -Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! -Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! -Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! -Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! -Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! -Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining -m.SkillAlchemy=ALCHEMY -m.SkillEnchanting=ENCHANTING -m.SkillFishing=FISHING -mcPlayerListener.AlchemySkill=Alchemy: -mcPlayerListener.EnchantingSkill=Enchanting: -mcPlayerListener.FishingSkill=Fishing: -Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) -Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) -Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) -Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. -Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. -Repair.Downgraded=[[RED]]Arcane power has decreased for this item. -Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. -m.EffectsRepair5_0=Arcane Forging -m.EffectsRepair5_1=Repair magic items -m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 -m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% -m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% -m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, -m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... -Fishing.ItemFound=[[GRAY]]Treasure found! -m.SkillFishing=FISHING -m.XPGainFishing=Fishing (Go figure!) -m.EffectsFishing1_0=Treasure Hunter (Passive) -m.EffectsFishing1_1=Fish up misc objects -m.EffectsFishing2_0=Magic Hunter -m.EffectsFishing2_1=Find Enchanted Items -m.EffectsFishing3_0=Shake (vs. Entities) -m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole -m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 -m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** -m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; -m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) -m.TamingSummon=[[GREEN]]Summoning complete -m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. -m.EffectsTaming7_0=Call of the Wild -m.EffectsTaming7_1=Summon a wolf to your side +Combat.WolfExamine=[[GREEN]]**Tutkit sutta käyttämällä Pedon Tarinaa** +Combat.WolfShowMaster=[[DARK_GREEN]]Pedon isäntä : {0} +Combat.Ignition=[[RED]]**SYTYTYS** +Combat.BurningArrowHit=[[DARK_RED]]Palava nuoli osui sinuun\! +Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy. +Combat.TargetDazed=Kohde [[DARK_RED]]tyrmätty +Combat.WolfNoMaster=[[GRAY]]Tällä pedolla ei ole isäntää... +Combat.WolfHealth=[[GREEN]]Tämän pedon terveys on {0} +Combat.StruckByGore=[[RED]]**SINUA ON PISTETTY** +Combat.Gore=[[GREEN]]**PISTO** +Combat.ArrowDeflect=[[WHITE]]**NUOLI TORJUTTU** +Item.ChimaeraWingFail=**KHIMAIRAN SIIVEN KÄYTTÖ EPÄONNISTUI\!** +Item.ChimaeraWingPass=**KHIMAIRAN SIIPI** +Item.InjuredWait=Sinua on haavoitettu äskettäin joten joudut odottaa tämän käyttöä. [[YELLOW]]({0}s) +Item.NeedFeathers=[[GRAY]]Tarvitset lisää sulkia.. +m.mccPartyCommands=[[GREEN]]--RYHMÄKOMENNOT-- +m.mccParty=[party name] [[RED]]- Luo/liity nimettyyn ryhmään +m.mccPartyQ=[[RED]]- Lähde ryhmästä +m.mccPartyToggle=[[RED]] - Laita ryhmäjuttelu päälle/pois +m.mccPartyInvite=[player name] [[RED]]- Lähetä ryhmäkutsu +m.mccPartyAccept=[[RED]]- Hyväksy ryhmäkutsu +m.mccPartyTeleport=[party member name] [[RED]]- Siirry ryhmän jäsenen luo +m.mccOtherCommands=[[GREEN]]--MUUT KOMENNOT-- +m.mccStats=- Näytä mcMMO tilastosi +m.mccLeaderboards=- Tulostaulukko +m.mccMySpawn=- Siirtää sinut myspawniin +m.mccClearMySpawn=- Tyhjää myspawnisi +m.mccToggleAbility=- Laita taitojen aktivointi oikealla näppäimellä päälle/pois +m.mccAdminToggle=- Laita admin juttelu päälle/pois +m.mccWhois=[playername] [[RED]]- Näytä yksityiskohtaiset tiedot pelaajasta +m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Muokkaa kohdetta +m.mccMcGod=- "God Mode" +m.mccSkillInfo=[skillname] [[RED]]- Näytä ykistyiskohtaiset tiedot taidosta +m.mccModDescription=[[RED]]- Lue lyhyt kuvaus modista +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]KOKEMUSPISTEIDEN MÄÄRÄ: [[WHITE]]{0} +m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} +m.AbilityLockTemplate=[[GRAY]]{0} +m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} +m.Effects=EFEKTIT +m.YourStats=TILASTOSI +m.SkillTaming=KESYTTÄMINEN +m.XPGainTaming=Susien satuttaminen +m.EffectsTaming1_0=Pedon Tarina +m.EffectsTaming1_1=Luulla lyöminen tutkii susia +m.EffectsTaming2_0=Pisto +m.EffectsTaming2_1=Kriittinen Isku joka lisää Verenvuodon +m.EffectsTaming3_0=Teroitetut Kynnet +m.EffectsTaming3_1=Tuhoamis Bonus +m.EffectsTaming4_0=Ympäristötietoinen +m.EffectsTaming4_1=Kaktus/Laavapelko, immuuni Putousvahingolle +m.EffectsTaming5_0=Paksu Turkki +m.EffectsTaming5_1=Vahingon vähennys, Tulenkestävä +m.EffectsTaming6_0=Räjähdyskestävä +m.EffectsTaming6_1=Räjähdysvahingon vähennys +m.AbilLockTaming1=LUKITTU KUNNES 100+ TAITO (YMPÄRISTÖTIETOINEN) +m.AbilLockTaming2=LUKITTU KUNNES 250+ TAITO (PAKSU TURKKI) +m.AbilLockTaming3=LUKITTU KUNNES 500+ TAITO (RÄJÄHDYSKESTÄVÄ) +m.AbilLockTaming4=LUKITTU KUNNES 750+ TAITO (TEROITETUT KYNNET) +m.AbilBonusTaming1_0=Ympäristötietoinen +m.AbilBonusTaming1_1=Sudet karttavat vaaraa +m.AbilBonusTaming2_0=Paksu Turkki +m.AbilBonusTaming2_1=Puolitettu vahinko, Tulenkestävä +m.AbilBonusTaming3_0=Räjähdyskestävä +m.AbilBonusTaming3_1=Räjähteet vahingoittavat 1/6 vähemmän +m.AbilBonusTaming4_0=Teroitetut Kynnet +m.AbilBonusTaming4_1=+2 Vahinko +m.TamingGoreChance=[[RED]]Piston todennäköisyys: [[YELLOW]]{0}% +m.SkillWoodCutting=PUUN KAATO +m.XPGainWoodCutting=Puiden pilkkominen +m.EffectsWoodCutting1_0=Puunkaataja (TAITO) +m.EffectsWoodCutting1_1=Räjäytä puita +m.EffectsWoodCutting2_0=Lehdenpuhallin +m.EffectsWoodCutting2_1=Puhalla lehtiä pois +m.EffectsWoodCutting3_0=Tuplasaalis +m.EffectsWoodCutting3_1=Tuplaa normaali saalis +m.AbilLockWoodCutting1=LUKITTU KUNNES 100+ TAITO (LEHDENPUHALLIN) +m.AbilBonusWoodCutting1_0=Lehdenpuhallin +m.AbilBonusWoodCutting1_1=Puhalla lehtiä pois +m.WoodCuttingDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Puunkaatajan kesto: [[YELLOW]]{0}s +m.SkillArchery=JOUSIAMMUNTA +m.XPGainArchery=Hyökkäämällä hirviöiden kimppuun +m.EffectsArchery1_0=Sytytys +m.EffectsArchery1_1=25% Todennäköisyys että vihollinen syttyy tuleen +m.EffectsArchery2_0=Pökerrys (Pelaajat) +m.EffectsArchery2_1=Saa viholliset pois tolaltaan +m.EffectsArchery3_0=Vahinko+ +m.EffectsArchery3_1=Muokkaa vahinkoa +m.EffectsArchery4_0=Nuolenkeräys +m.EffectsArchery4_1=Todennäköisyys kerätä nuolia raadoista +m.ArcheryDazeChance=[[RED]]Todennäköisyys Pökerryttää: [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Todennäköisyys kerätä nuolia: [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Sytytyksen kesto: [[YELLOW]]{0} sekuntia +m.ArcheryDamagePlus=[[RED]]Vahinko+ (Rank{0}): [[YELLOW]]Bonus {0} vahinko +m.SkillAxes=KIRVEET +m.XPGainAxes=Hyökkäämällä hirviöiden kimppuun +m.EffectsAxes1_0=Kallonhalkoja (TAITO) +m.EffectsAxes1_1=Tee aluevahinkoa +m.EffectsAxes2_0=Kriittiset Iskut +m.EffectsAxes2_1=Tuplavahinko +m.EffectsAxes3_0=Kirveiden Herra (500 TAITO) +m.EffectsAxes3_1=Muokkaa vahinkoa +m.AbilLockAxes1=LUKITTU KUNNES 500+ TAITO (KIRVEIDEN HERRA) +m.AbilBonusAxes1_0=Kirveiden Herra +m.AbilBonusAxes1_1=+4 Vahinko +m.AxesCritChance=[[RED]]Todennäköisyys iskeä kriittisesti: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Kallonhalkojan kesto: [[YELLOW]]{0}s +m.SkillSwords=MIEKAT +m.XPGainSwords=Hyökkäämällä hirviöiden kimppuun +m.EffectsSwords1_0=Vastaisku +m.EffectsSwords1_1=Kimmota 50% saadusta vahingosta +m.EffectsSwords2_0=Sahalaitaiset Iskut (TAITO) +m.EffectsSwords2_1=25% Aluevahinko, Verenvuoto+ Aluevahinko +m.EffectsSwords3_0=Sahalaitaiset Iskut Verenvuoto+ +m.EffectsSwords3_1=5 Aiheuta Verenvuotoa +m.EffectsSwords4_0=Torjuminen +m.EffectsSwords4_1=Estää saadun vahingon +m.EffectsSwords5_0=Verenvuoto +m.EffectsSwords5_1=Lisää Verenvuoto +m.SwordsCounterAttChance=[[RED]]Vastaiskun todennäköisyys: [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Verenvuodon kesto: [[YELLOW]]{0} vuotoa +m.SwordsBleedChance=[[RED]]Verenvuodon todennäköisyys: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Torjumisen todennäköisyys: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Sahalaitaisten Iskujen kesto: [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]HUOMAA: [[YELLOW]]1 vuoto tapahtuu joka kahdes sekunti +m.SkillAcrobatics=AKROBATIA +m.XPGainAcrobatics=Tippumalla +m.EffectsAcrobatics1_0=Kieriminen +m.EffectsAcrobatics1_1=Vähentää tai estää vahinkoa +m.EffectsAcrobatics2_0=Sulava Kieriminen +m.EffectsAcrobatics2_1=Tuplasti tehokkaampi kuin Kieriminen +m.EffectsAcrobatics3_0=Väistö +m.EffectsAcrobatics3_1=Vähentää vahingon määrän puoleen +m.AcrobaticsRollChance=[[RED]]Kierimisen todennäköisyys: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Sulavan Kierimisen todennäköisyys: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Väistön todennäköisyys: [[YELLOW]]{0}% +m.SkillMining=LOUHINTA +m.XPGainMining=Louhimalla kiveä ja malmia +m.EffectsMining1_0=Supermurskain (TAITO) +m.EffectsMining1_1=Nopeus+, Triplaa saaliin tippumistodennäköisyys +m.EffectsMining2_0=Tuplasaalis +m.EffectsMining2_1=Tuplaa normaali saaliin määrä +m.MiningDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Supermurskaimen kesto: [[YELLOW]]{0}s +m.SkillRepair=KORJAUS +m.XPGainRepair=Korjaamalla +m.EffectsRepair1_0=Korjaa +m.EffectsRepair1_1=Korjaa rautatyökaluja ja haarniskoja +m.EffectsRepair2_0=Korjausten Herra +m.EffectsRepair2_1=Lisätty korjausten määrä +m.EffectsRepair3_0=Superkorjaus +m.EffectsRepair3_1=Tuplatehokkuus +m.EffectsRepair4_0=Timanttikorjaus ({0}+ TAITO) +m.EffectsRepair4_1=Korjaa timanttityökaluja ja haarniskoja +m.RepairRepairMastery=[[RED]]Korjausten Herra: [[YELLOW]]Extra {0}% kestävyyttä palautettu +m.RepairSuperRepairChance=[[RED]]Superkorjauksen todennäköisyys: [[YELLOW]]{0}% +m.SkillUnarmed=ASEISTAMATON +m.XPGainUnarmed=Hyökkäämällä hirviöiden kimppuun +m.EffectsUnarmed1_0=Raivopää (TAITO) +m.EffectsUnarmed1_1=+50% vahinko, rikkoo heikkoja materiaaleja +m.EffectsUnarmed2_0=Aseista riisuminen (Pelaajat) +m.EffectsUnarmed2_1=Pudottaa vihollisen esineen kädestä +m.EffectsUnarmed3_0=Aseistamattomuuden Herra +m.EffectsUnarmed3_1=Suuri vahingonlisäys +m.EffectsUnarmed4_0=Aseistamattomuuden Aloittelija +m.EffectsUnarmed4_1=Vahingonlisäys +m.EffectsUnarmed5_0=Nuolentorjunta +m.EffectsUnarmed5_1=Torjuu nuolia +m.AbilLockUnarmed1=LUKITTU KUNNES 250+ TAITO (ASEISTAMATTOMUUDEN ALOITTELIJA) +m.AbilLockUnarmed2=LUKITTU KUNNES 500+ TAITO (ASEISTAMATTOMUUDEN HERRA) +m.AbilBonusUnarmed1_0=Aseistamattomuuden Aloittelija +m.AbilBonusUnarmed1_1=+2 Vahinko +m.AbilBonusUnarmed2_0=Aseistamattomuuden Herra +m.AbilBonusUnarmed2_1=+4 Vahinko +m.UnarmedArrowDeflectChance=[[RED]]Nuolentorjunnan todennäköisyys: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Aseista riisumisen todennäköisyys: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Raivopään kesto: [[YELLOW]]{0}s +m.SkillHerbalism=YRTTIHOITO +m.XPGainHerbalism=Keräämällä yrttejä +m.EffectsHerbalism1_0=Vihermaa (TAITO) +m.EffectsHerbalism1_1=Levitä vihreyttä, 3x saalis +m.EffectsHerbalism2_0=Viherpeukalo (Vehnä) +m.EffectsHerbalism2_1=Istuttaa vehnää automaattisesti kun keräät vehnää +m.EffectsHerbalism3_0=Viherpeukalo (Mukulakivi) +m.EffectsHerbalism3_1=Mukulakivi -> Sammaleinen mukulakivi ja siemeniä +m.EffectsHerbalism4_0=Ruoka+ +m.EffectsHerbalism4_1=Muokkaa terveyttä jota saat leivästä/muhennoksesta +m.EffectsHerbalism5_0=Tuplasaalis (Kaikki yrtit) +m.EffectsHerbalism5_1=Tuplaa normaali saaliin määrä +m.HerbalismGreenTerraLength=[[RED]]Vihermaan kesto: [[YELLOW]]{0}s +m.HerbalismGreenThumbChance=[[RED]]Viherpeukalon todennäköisyys: [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Viherpeukalon vaihe: [[YELLOW]] Vehnä kasvaa {0}:ssa vaiheessa +m.HerbalismDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Ruoka+ (Rank{0}): [[YELLOW]]Bonus {0} terveyden määrä +m.SkillExcavation=KAIVANTO +m.XPGainExcavation=Kaivamalla ja löytämällä aarteita +m.EffectsExcavation1_0=Giga Drill Breaker (TAITO) +m.EffectsExcavation1_1=3x saaliin määrä, 3x kokemuspisteiden määrä, +Nopeus +m.EffectsExcavation2_0=Aarteenmetsästäjä +m.EffectsExcavation2_1=Taito jonka avulla voit kaivaa aarteita +m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker kesto: [[YELLOW]]{0}s +mcBlockListener.PlacedAnvil=[[DARK_RED]]Olet asettanut alasimen maahan, sillä voit korjata työkaluja ja haarniskoja. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]Sutesi kipittää takaisin luoksesi... +mcPlayerListener.AbilitiesOff=Taitojen käyttö pois päältä +mcPlayerListener.AbilitiesOn=Taitojen käyttö päällä +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**TAIDOT PÄIVITETTY\!** +mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Akrobatia: +mcPlayerListener.ArcherySkill=[[YELLOW]]Jousiammunta: +mcPlayerListener.AxesSkill=[[YELLOW]]Kirveet: +mcPlayerListener.ExcavationSkill=[[YELLOW]]Kaivanto: +mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode pois päältä +mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode päällä +mcPlayerListener.GreenThumb=[[GREEN]]**VIHERPEUKALO** +mcPlayerListener.GreenThumbFail=[[RED]]**VIHERPEUKALO EPÄONNISTUI** +mcPlayerListener.HerbalismSkill=[[YELLOW]]Yrttihoito: +mcPlayerListener.MiningSkill=[[YELLOW]]Kaivanto: +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn on tyhjätty. +mcPlayerListener.MyspawnNotExist=[[RED]]Määrää myspawnisi ensin laittamalla sänky maahan. +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn on asetettu tämänhetkiseen sijaintiisi. +mcPlayerListener.MyspawnTimeNotice=Sinun pitää odottaa {0}m {1}s käyttääksesi myspawnia +mcPlayerListener.NoPermission=Puutteelliset oikeudet (mcPermissions) +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Jos sinulla ei ole käyttöoikeutta johonkin taitoon, sitä ei näytetä täällä. +mcPlayerListener.NotInParty=[[RED]]Et ole ryhmässä. +mcPlayerListener.InviteSuccess=[[GREEN]]Kutsu lähetetty. +mcPlayerListener.ReceivedInvite1=[[RED]]HUOMIO: [[GREEN]]Olet saanut ryhmäkutsun ryhmään {0} pelaajalta {1} +mcPlayerListener.ReceivedInvite2=[[YELLOW]]Kirjoita [[GREEN]]/{0}[[YELLOW]] hyväksyäksesi kutsun +mcPlayerListener.InviteAccepted=[[GREEN]]Kutsu hyväksytty. Olet liittynyt ryhmään {0} +mcPlayerListener.NoInvites=[[RED]]Sinulla ei ole kutsuja +mcPlayerListener.YouAreInParty=[[GREEN]]Olet ryhmässä {0} +mcPlayerListener.PartyMembers=[[GREEN]]Ryhmän jäsenet +mcPlayerListener.LeftParty=[[RED]]Olet lähtenyt ryhmästä +mcPlayerListener.JoinedParty=Liityit ryhmään: {0} +mcPlayerListener.PartyChatOn=Vain ryhmäjuttelu [[GREEN]]Päällä +mcPlayerListener.PartyChatOff=Vain ryhmäjuttelu [[RED]]Pois päältä +mcPlayerListener.AdminChatOn=Vain admin juttelu [[GREEN]]Päällä +mcPlayerListener.AdminChatOff=Vain admin juttelu [[RED]]Pois päältä +mcPlayerListener.MOTD=[[BLUE]]Tällä serverillä on mcMMO {0} kirjoita [[YELLOW]]/{1}[[BLUE]] apua varten. +mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki +mcPlayerListener.PowerLevel=[[DARK_RED]]VOIMATASO: +mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Voimataso [[YELLOW]]Tulostaulukko-- +mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Tulostaulukko-- +mcPlayerListener.RepairSkill=[[YELLOW]]Korjaus: +mcPlayerListener.SwordsSkill=[[YELLOW]]Miekat: +mcPlayerListener.TamingSkill=[[YELLOW]]Kesytys: +mcPlayerListener.UnarmedSkill=[[YELLOW]]Aseistamattomuus: +mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Puunkaato: +mcPlayerListener.YourStats=[[GREEN]]Sinun MMO tilastosi +Party.InformedOnJoin={0} [[GREEN]] on liittynyt ryhmään +Party.InformedOnQuit={0} [[GREEN]] on lähtenyt ryhmästä +Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed! +Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed! +Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed! +Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed! +Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed! +Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed! +Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed! +Skills.TooTired=[[RED]]You are too tired to use that ability again. +Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE** +Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE** +Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE** +Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE** +Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS** +Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS** +Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE** +Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE** +Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL** +Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL** +Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD** +Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD** +Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED** +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk! +Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra! +Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller! +Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker! +Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes! +Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter! +Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker! +Skills.GreenTerraOff=[[RED]]**Green Terra has worn off** +Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off** +Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off** +Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off** +Skills.BerserkOff=[[RED]]**Berserk has worn off** +Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off** +Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off** +Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1}) +Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1}) +Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1}) +Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1}) +Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1}) +Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1}) +Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1}) +Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1}) +Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1}) +Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1}) +Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1}) +mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com +Party.Locked=[[RED]]Party is locked, only party leader may invite. +Party.IsntLocked=[[GRAY]]Party is not locked +Party.Unlocked=[[GRAY]]Party is unlocked +Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]][[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit +Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]] +Party.Help3=[[RED]]Consult /{0} ? for more information +Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit +Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock +Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock +Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password +Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick +Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner +Party.NotOwner=[[DARK_RED]]You are not the party owner +Party.InvalidName=[[DARK_RED]]That is not a valid party name +Party.PasswordSet=[[GREEN]]Party password set to {0} +Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} +Party.NotInYourParty=[[DARK_RED]]{0} is not in your party +Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} +Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] +Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal +Commands.xprate.proper3=[[RED]]Enter true or false for the second value +Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! +Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! +Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! +Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! +Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! +Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining +m.SkillAlchemy=ALCHEMY +m.SkillEnchanting=ENCHANTING +m.SkillFishing=FISHING +mcPlayerListener.AlchemySkill=Alchemy: +mcPlayerListener.EnchantingSkill=Enchanting: +mcPlayerListener.FishingSkill=Fishing: +Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) +Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) +Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) +Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. +Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. +Repair.Downgraded=[[RED]]Arcane power has decreased for this item. +Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. +m.EffectsRepair5_0=Arcane Forging +m.EffectsRepair5_1=Repair magic items +m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 +m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% +m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% +m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, +m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ +Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.ItemFound=[[GRAY]]Treasure found! +m.SkillFishing=FISHING +m.XPGainFishing=Fishing (Go figure!) +m.EffectsFishing1_0=Treasure Hunter (Passive) +m.EffectsFishing1_1=Fish up misc objects +m.EffectsFishing2_0=Magic Hunter +m.EffectsFishing2_1=Find Enchanted Items +m.EffectsFishing3_0=Shake (vs. Entities) +m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole +m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 +m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** +m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; +m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) +m.TamingSummon=[[GREEN]]Summoning complete +m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. +m.EffectsTaming7_0=Call of the Wild +m.EffectsTaming7_1=Summon a wolf to your side m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand \ No newline at end of file diff --git a/src/com/gmail/nossr50/locale/locale_fr.properties b/src/main/java/com/gmail/nossr50/locale/locale_fr.properties similarity index 98% rename from src/com/gmail/nossr50/locale/locale_fr.properties rename to src/main/java/com/gmail/nossr50/locale/locale_fr.properties index 2ab284cf0..31f3a2c3f 100644 --- a/src/com/gmail/nossr50/locale/locale_fr.properties +++ b/src/main/java/com/gmail/nossr50/locale/locale_fr.properties @@ -1,390 +1,390 @@ -Combat.WolfExamine=[[GREEN]]**Vous examinez le loup avec le Beast Lore** -Combat.WolfShowMaster=[[DARK_GREEN]]Le Maître des bêtes \: {0} -Combat.Ignition=[[RED]]**ALLUMAGE** -Combat.BurningArrowHit=[[DARK_RED]]Vous avez été frappé par une flèche brûlante\! -Combat.TouchedFuzzy=[[DARK_RED]]Vous voyez flou. Vous vous sentez étourdi. -Combat.TargetDazed=La cible a été [[DARK_RED]]Étourdi -Combat.WolfNoMaster=[[GRAY]]Cette bête n'a pas de maître... -Combat.WolfHealth=[[GREEN]]Cette bête a {0} points de vie -Combat.StruckByGore=[[RED]]**FRAPPÉ JUSQU'AU SANG** -Combat.Gore=[[GREEN]]**SANG** -Combat.ArrowDeflect=[[WHITE]]**FLÈCHE DEVIÉE** -Item.ChimaeraWingFail=**CHIMAERA WING a échoué \!** -Item.ChimaeraWingPass=**CHIMAERA WING** -Item.InjuredWait=Vous avez été blessé récemment et vous devez attendre pour utiliser ça. [[YELLOW]]({0}s) -Item.NeedFeathers=[[GRAY]]Vous avez besoin de plus de plumes.. -m.mccPartyCommands=[[GREEN]]--COMMANDES GROUPE-- -m.mccParty=[party name] [[RED]]- Créer / Rejoindre un groupe -m.mccPartyQ=[[RED]]- Vous quitter la partie en cours -m.mccPartyToggle=[[RED]] - Active le Chat de groupe -m.mccPartyInvite=[player name] [[RED]]- Envoyer une invitation -m.mccPartyAccept=[[RED]]- Accepter l'invitation -m.mccPartyTeleport=[party member name] [[RED]]- Vous téléporte à un membre du groupe -m.mccOtherCommands=[[GREEN]]--AUTRES COMMANDES-- -m.mccStats=- Voir vos statistiques -m.mccLeaderboards=- Classements -m.mccMySpawn=- Vous téléporte à votre spawn -m.mccClearMySpawn=- Éfface votre point de spawn -m.mccToggleAbility=- Active les capacités spéciales avec clic droit -m.mccAdminToggle=- Active le chat admin -m.mccWhois=[playername] [[RED]]- Voir les infos détaillées du joueur -m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifier -m.mccMcGod=- Mode dieu -m.mccSkillInfo=[skillname] [[RED]]- Afficher des informations détaillées d'une compétence -m.mccModDescription=[[RED]]- Affiche la description de mcMMO -m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- -m.XPGain=[[DARK_GRAY]]POUR GAGNER DE l'XP: [[WHITE]]{0} -m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} -m.AbilityLockTemplate=[[GRAY]]{0} -m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} -m.Effects=EFFETS -m.YourStats=VOS STATS -m.SkillTaming=DRESSAGE -m.XPGainTaming=Attaquer avec un loup -m.EffectsTaming1_0=Connaissance des bêtes -m.EffectsTaming1_1=Inspecte un loup avec un os -m.EffectsTaming2_0=Morsures -m.EffectsTaming2_1=Des coups critiques lors d'une morsure -m.EffectsTaming3_0=Griffes aiguisées -m.EffectsTaming3_1=Bonus de dégâts -m.EffectsTaming4_0=Conscient de l'environnement -m.EffectsTaming4_1=Resistance aux Cactus, à la lave et aux chutes. -m.EffectsTaming5_0=Epaisse fourrure -m.EffectsTaming5_1=Réduction dégâts, Résistance au feu -m.EffectsTaming6_0=Résistance aux chocs -m.EffectsTaming6_1=Réduction des dommages explosifs -m.AbilLockTaming1=Débloqué au niveau 100 (Conscient de l'environnement) -m.AbilLockTaming2=Débloqué au niveau 250 (Épaisse fourrure) -m.AbilLockTaming3=Débloqué au niveau 500 (Résistance aux chocs) -m.AbilLockTaming4=Débloqué au niveau 750 (Griffes aiguisées) -m.AbilBonusTaming1_0=Conscient de l'environnement -m.AbilBonusTaming1_1=Le loup évite le danger -m.AbilBonusTaming2_0=Epaisse fourrure -m.AbilBonusTaming2_1=Réduit de moitié les dommages \+ résistance au feu -m.AbilBonusTaming3_0=Résistance aux chocs -m.AbilBonusTaming3_1=divise par 6 les dégats d'explosions -m.AbilBonusTaming4_0=Griffes aiguisées -m.AbilBonusTaming4_1=+2 Dommages -m.TamingGoreChance=[[RED]]Chances de Morsure: [[YELLOW]]{0}% -m.SkillWoodCutting=BÛCHERONNAGE -m.XPGainWoodCutting=Abattre des arbres -m.EffectsWoodCutting1_0=L'abatteur d'arbres (capacité spéciale) -m.EffectsWoodCutting1_1=Faire exploser les arbres -m.EffectsWoodCutting2_0=Souffleur de feuilles -m.EffectsWoodCutting2_1=Détruire plus de feuilles -m.EffectsWoodCutting3_0=Double Butin -m.EffectsWoodCutting3_1=Double le butin normal -m.AbilLockWoodCutting1=Débloqué au niveau 100 (Souffleur de feuilles) -m.AbilBonusWoodCutting1_0=Soufler les feuilles -m.AbilBonusWoodCutting1_1=Détruire plus de feuilles -m.WoodCuttingDoubleDropChance=[[RED]]Chance de double butin: [[YELLOW]]{0}% -m.WoodCuttingTreeFellerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s -m.SkillArchery=TIR À L'ARC -m.XPGainArchery=Attaquer les monstres -m.EffectsArchery1_0=Allumage -m.EffectsArchery1_1=25% de chances que l'ennemi s'enflamme -m.EffectsArchery2_0=Étourdir (les joueurs) -m.EffectsArchery2_1=Étourdi les joueurs -m.EffectsArchery3_0=Dégâts+ -m.EffectsArchery3_1=Augmente les dégâts -m.EffectsArchery4_0=Récupération de flèches -m.EffectsArchery4_1=Chances de récupérer vos flèches sur un cadavre -m.ArcheryDazeChance=[[RED]]Chances d'étourdir : [[YELLOW]]{0}% -m.ArcheryRetrieveChance=[[RED]]Chances de récupération des flèches : [[YELLOW]]{0}% -m.ArcheryIgnitionLength=[[RED]]Durée du feu : [[YELLOW]]{0} secondes -m.ArcheryDamagePlus=[[RED]]Dégâts+ (Rang {0}): [[YELLOW]]Bonus de {0} dommages -m.SkillAxes=HACHE -m.XPGainAxes=Attaquer des monstres -m.EffectsAxes1_0=Fendeur de crânes (capacité spéciale) -m.EffectsAxes1_1=provoque des dégâts de zone -m.EffectsAxes2_0=Coup critiques -m.EffectsAxes2_1=double les dégâts -m.EffectsAxes3_0=Maîtrise de la hache (niveau 500) -m.EffectsAxes3_1=Augmente les dégâts -m.AbilLockAxes1=Débloqué au niveau 500 (Maîtrise de la hache) -m.AbilBonusAxes1_0=Maîtrise de la hache -m.AbilBonusAxes1_1=4 Blessures en bonus -m.AxesCritChance=[[RED]]Chances de coup critique : [[YELLOW]]{0}% -m.AxesSkullLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s -m.SkillSwords=ÉPÉE -m.XPGainSwords=Attaque des monstres -m.EffectsSwords1_0=Contre-Attaque -m.EffectsSwords1_1=Renvoie 50% des degats subis -m.EffectsSwords2_0=Lame crantée (capacité spéciale) -m.EffectsSwords2_1=25% de dégâts et saignements succesifs. -m.EffectsSwords3_0=Lame crantée avec saignement+ -m.EffectsSwords3_1=5 saignements -m.EffectsSwords4_0=Parer -m.EffectsSwords4_1=Annule les dommages -m.EffectsSwords5_0=Saignement -m.EffectsSwords5_1=provoque un saignement répété -m.SwordsCounterAttChance=[[RED]]Chances de Contre-Attaque : [[YELLOW]]{0}% -m.SwordsBleedLength=[[RED]]Nombre de saignements : [[YELLOW]]{0} -m.SwordsBleedChance=[[RED]]Chances de provoquer des saignements : [[YELLOW]]{0} % -m.SwordsParryChance=[[RED]]Chances de parer : [[YELLOW]]{0} % -m.SwordsSSLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s -m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 saignement va durer 2 secondes -m.SkillAcrobatics=ACROBATIE -m.XPGainAcrobatics=Chuter -m.EffectsAcrobatics1_0=Roulade -m.EffectsAcrobatics1_1=Réduit ou annule les dommages -m.EffectsAcrobatics2_0=Super roulade -m.EffectsAcrobatics2_1=Roulade deux fois plus efficace -m.EffectsAcrobatics3_0=Esquive -m.EffectsAcrobatics3_1=Dommages reduits de moitié -m.AcrobaticsRollChance=[[RED]]Chances de roulade : [[YELLOW]]{0}% -m.AcrobaticsGracefulRollChance=[[RED]]Chances de super roulade: [[YELLOW]]{0}% -m.AcrobaticsDodgeChance=[[RED]]Chances d'esquiver : [[YELLOW]]{0}% -m.SkillMining=MINAGE -m.XPGainMining=Miner de la roche et des minerais -m.EffectsMining1_0=Super Breaker (capacité spéciale) -m.EffectsMining1_1=Augmente la vitesse et triple les chances de trouver un butin -m.EffectsMining2_0=Double Butin -m.EffectsMining2_1=Double le butin normal -m.MiningDoubleDropChance=[[RED]]Chances de Double Butin: [[YELLOW]]{0}% -m.MiningSuperBreakerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s -m.SkillRepair=RÉPARATION -m.XPGainRepair=Réparer des objets -m.EffectsRepair1_0=Réparer -m.EffectsRepair1_1=Réparation d'outils & Armures en Fer -m.EffectsRepair2_0=Maître en réparation -m.EffectsRepair2_1=Augmente le nombre de réparations possibles -m.EffectsRepair3_0=Super Réparation -m.EffectsRepair3_1=Double l'efficacité -m.EffectsRepair4_0=Réparation du Diamant (requiert niveau {0}) -m.EffectsRepair4_1=Réparation des outils & armures en diamant -m.RepairRepairMastery=[[RED]]Maître en réparation : [[YELLOW]]{0}% de durabilité restaurée -m.RepairSuperRepairChance=[[RED]]Chances de Super Réparation : [[YELLOW]]{0}% -m.SkillUnarmed=MAINS NUES -m.XPGainUnarmed=Attaquer des monstres sans armes -m.EffectsUnarmed1_0=Berserk (capacité spéciale) -m.EffectsUnarmed1_1=+50% de dégâts, brise les matériaux faibles -m.EffectsUnarmed2_0=Désarmer (les joueurs) -m.EffectsUnarmed2_1=Vole l'objet que l'ennemi a dans la main -m.EffectsUnarmed3_0=Apprenti du désarmement -m.EffectsUnarmed3_1=Plus de dégâts -m.EffectsUnarmed4_0=Maîtrise du désarmement -m.EffectsUnarmed4_1=Beaucoup plus de dégâts -m.EffectsUnarmed5_0=Déviation des flèches -m.EffectsUnarmed5_1=Dévie les flèches qui vous foncent dessus -m.AbilLockUnarmed1=Débloqué au niveau 250 (Apprenti du désarmement) -m.AbilLockUnarmed2=Débloqué au niveau 500 (Maîtrise du désarmement) -m.AbilBonusUnarmed1_0=Apprenti du désarmement -m.AbilBonusUnarmed1_1=+2 dégâts -m.AbilBonusUnarmed2_0=Maîtrise du désarmement -m.AbilBonusUnarmed2_1=+4 dégâts -m.UnarmedArrowDeflectChance=[[RED]]Chances dévier les flèches : [[YELLOW]]{0}% -m.UnarmedDisarmChance=[[RED]]Chances de Désarmer : [[YELLOW]]{0}% -m.UnarmedBerserkLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s -m.SkillHerbalism=Herboristerie -m.XPGainHerbalism=Récoler des herbes -m.EffectsHerbalism1_0=Main verte (capacité spéciale) -m.EffectsHerbalism1_1=répand la main verte, 3x Butin -m.EffectsHerbalism2_0=Main verte (Blé) -m.EffectsHerbalism2_1=Auto-plantes du blé lors de la récolte -m.EffectsHerbalism3_0=Main verte (Cobblestone) -m.EffectsHerbalism3_1=Transforme la Cobble en Mossy avec des graines -m.EffectsHerbalism4_0=Nouriture+ -m.EffectsHerbalism4_1=Modifie la santé reçue via le pain / ragoût -m.EffectsHerbalism5_0=Double butin (Toutes cultures) -m.EffectsHerbalism5_1=Double les récoltes -m.HerbalismGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s -m.HerbalismGreenThumbChance=[[RED]]Cances d'obtenir la main verte : [[YELLOW]]{0}% -m.HerbalismGreenThumbStage=[[RED]]Main verte par niveaux : [[YELLOW]] Wheat grows in stage {0} -m.HerbalismDoubleDropChance=[[RED]]Chances du Double Butin : [[YELLOW]]{0}% -m.HerbalismFoodPlus=[[RED]]Nourriture+ (Rang {0}): [[YELLOW]]{0} plus nourissant -m.SkillExcavation=EXCAVATION -m.XPGainExcavation=Creuser et trouver des trésors -m.EffectsExcavation1_0=Super broyeur (capacité spéciale) -m.EffectsExcavation1_1=3x Butin, 3x XP, +Vitesse -m.EffectsExcavation2_0=Chercheur de trésors -m.EffectsExcavation2_1=Capacité de trouver un trésor -m.ExcavationGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s -mcBlockListener.PlacedAnvil=[[DARK_RED]]Vous avez placé une enclume, Les enclumes peuvent réparer les outils et l'armure. -mcEntityListener.WolfComesBack=[[DARK_GRAY]]Votre loup revient vers vous... -mcPlayerListener.AbilitiesOff=Capacité spéciale désactivée -mcPlayerListener.AbilitiesOn=Capacité spéciale activée -mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**CAPACITÉ RECHARGÉE** -mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Acrobatie (/Acrobatics) : -mcPlayerListener.ArcherySkill=[[YELLOW]]Tir a l'arc (/Archery) : -mcPlayerListener.AxesSkill=[[YELLOW]]Hache (/Axes) : -mcPlayerListener.ExcavationSkill=[[YELLOW]]Excavation (/Excavation): -mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO godMode désactivé -mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO godMode activé -mcPlayerListener.GreenThumb=[[GREEN]]**MAIN VERTE** -mcPlayerListener.GreenThumbFail=[[RED]]**MAIN VERTE A ECHOUÉ** -mcPlayerListener.HerbalismSkill=[[YELLOW]]Herboriste (/Herbalism) : -mcPlayerListener.MiningSkill=[[YELLOW]]Minage (/Mining): -mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Votre point de spawn a été éffacé. -mcPlayerListener.MyspawnNotExist=[[RED]]Dormez dans un lit pour définir votre point de spawn. -mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Votre point de spawn a été enregistré ici. -mcPlayerListener.MyspawnTimeNotice=Vous devez attendre {0}m {1}s avant d'utiliser votre spawn -mcPlayerListener.NoPermission=Vous n'avez pas les permissions nécessaires. -mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Si vous n'avez pas accès à une compé, elle ne sera pas affichée ici. -mcPlayerListener.NotInParty=[[RED]]Vous n'êtes pas dans un groupe. -mcPlayerListener.InviteSuccess=[[GREEN]]L'invitation a été envoyée avec succès. -mcPlayerListener.ReceivedInvite1=[[RED]]ALERTE: [[GREEN]]Vous avez reçu une invitation pour le groupe {0} de la part de {1} -mcPlayerListener.ReceivedInvite2=[[YELLOW]]Tapez [[GREEN]]/{0}[[YELLOW]] pour accepter l'invitation -mcPlayerListener.InviteAccepted=[[GREEN]]Invite acceptée. Vous avez rejoint le groupe {0} -mcPlayerListener.NoInvites=[[RED]]Vous n'avez pas d'invitation pour le moment -mcPlayerListener.YouAreInParty=[[GREEN]]Vous êtes dans le groupe {0} -mcPlayerListener.PartyMembers=[[GREEN]]Membres du groupe -mcPlayerListener.LeftParty=[[RED]]Vous avez quitté le groupe -mcPlayerListener.JoinedParty=Votre groupe: {0} -mcPlayerListener.PartyChatOn=Chat de Groupe uniquement [[GREEN]]On -mcPlayerListener.PartyChatOff=Chat de Groupe uniquement [[RED]]Off -mcPlayerListener.AdminChatOn=Admin Chat uniquement [[GREEN]]On -mcPlayerListener.AdminChatOff=Admin Chat uniquement [[RED]]Off -mcPlayerListener.MOTD=[[BLUE]]Ce serveur fonctionne avec mcMMO {0} [[YELLOW]]/{1}[[BLUE]] pour voir l'aide. -mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki - [[YELLOW]]Traduit par avalondrey & Misa -mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: -mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard-- -mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard-- -mcPlayerListener.RepairSkill=[[YELLOW]]Réparation (/Repair) : -mcPlayerListener.SwordsSkill=[[YELLOW]]Epee (/Swords) : -mcPlayerListener.TamingSkill=[[YELLOW]]Dressage (/Taming) : -mcPlayerListener.UnarmedSkill=[[YELLOW]]Mains nues (/Unarmed) : -mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Bucheron (/Woodcutting): -mcPlayerListener.YourStats=[[GREEN]]Vos statistiques -Party.InformedOnJoin={0} [[GREEN]] a rejoint votre groupe -Party.InformedOnQuit={0} [[GREEN]] a quitté votre groupe -Skills.YourGreenTerra=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Main verte [[GREEN]]est rechargée -Skills.YourTreeFeller=[[GREEN]]Votre capacitée spéciale [[YELLOW]]L'abatteur d'arbres [[GREEN]]est rechargée -Skills.YourSuperBreaker=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Super Breaker[[GREEN]]est rechargée -Skills.YourSerratedStrikes=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Epee cranté [[GREEN]]est rechargée -Skills.YourBerserk=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Berserk [[GREEN]]est rechargée -Skills.YourSkullSplitter=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Fendeur de crânes [[GREEN]]est rechargée -Skills.YourGigaDrillBreaker=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Super broyeur [[GREEN]]est rechargée -Skills.TooTired=[[RED]]Vous êtes trop fatigué pour utiliser cette capacité pour l'instant. -Skills.ReadyHoe=[[GREEN]]**Votre bêche est chargée** -Skills.LowerHoe=[[GRAY]]Votre bêche s'est déchargée.. -Skills.ReadyAxe=[[GREEN]]**Votre hache est chargée** -Skills.LowerAxe=[[GRAY]]Votre hache s'est déchargée.. -Skills.ReadyFists=[[GREEN]]**Vos poings sont chargés** -Skills.LowerFists=[[GRAY]]Vos poings se sont déchargés.. -Skills.ReadyPickAxe=[[GREEN]]**Votre pioche est chargée** -Skills.LowerPickAxe=[[GRAY]]Votre pioche s'est déchargée.. -Skills.ReadyShovel=[[GREEN]]**Votre pelle est chargée** -Skills.LowerShovel=[[GRAY]]Votre pelle s'est déchargée.. -Skills.ReadySword=[[GREEN]]**Votre épée est chargée** -Skills.LowerSword=[[GRAY]]Votre épée s'est déchargée.. -Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED** -Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk! -Skills.GreenTerraOn=[[GREEN]]**Compétence [[YELLOW]]Main Verte [[GREEN]]activée** -Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Main verte ! -Skills.TreeFellerOn=[[GREEN]]**Compétence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]activée** -Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Abatteur d'Arbres ! -Skills.SuperBreakerOn=[[GREEN]]**Compétence [[YELLOW]]Super Breaker [[GREEN]]activée** -Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Super Breaker ! -Skills.SerratedStrikesOn=[[GREEN]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]activée** -Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Lame crantée ! -Skills.SkullSplitterOn=[[GREEN]]**Compétence [[YELLOW]]Fendeur de crânes [[GREEN]]activée** -Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Fendeur de crânes ! -Skills.GigaDrillBreakerOn=[[GREEN]]**Compétence [[YELLOW]]Super Broyeur [[GREEN]]activée** -Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Super broyeur ! -Skills.GreenTerraOff=[[RED]]**Compétence [[YELLOW]]Main Verte [[GREEN]]terminée** -Skills.TreeFellerOff=[[RED]]**Compétence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]terminée** -Skills.SuperBreakerOff=[[RED]]**Compétence [[YELLOW]]Super Breaker [[GREEN]]terminée** -Skills.SerratedStrikesOff=[[RED]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]terminée** -Skills.BerserkOff=[[RED]]**Berserk est fini** -Skills.SkullSplitterOff=[[RED]]**Casseur de tete est fini** -Skills.GigaDrillBreakerOff=[[RED]]**Super broyeur est fini** -Skills.TamingUp=[[YELLOW]]La competence du dressage a augmenté de {0}. Total ({1}) -Skills.AcrobaticsUp=[[YELLOW]]La competence acrobatie a augmenté de {0}. Total ({1}) -Skills.ArcheryUp=[[YELLOW]]La competence tir a l'arc a augmenté de {0}. Total ({1}) -Skills.SwordsUp=[[YELLOW]]La competence épée a augmenté de {0}. Total ({1}) -Skills.AxesUp=[[YELLOW]]La competence hache a augmenté de {0}. Total ({1}) -Skills.UnarmedUp=[[YELLOW]]La compétence de combat à mains nues a augmenté de {0}. Total ({1}) -Skills.HerbalismUp=[[YELLOW]]La competence herboriste a augmenté de {0}. Total ({1}) -Skills.MiningUp=[[YELLOW]]La competence minage a augmenté de {0}. Total ({1}) -Skills.WoodcuttingUp=[[YELLOW]]La competence bucherônage a augmenté de {0}. Total ({1}) -Skills.RepairUp=[[YELLOW]]La competence réparation a augmenté de {0}. Total ({1}) -Skills.ExcavationUp=[[YELLOW]]La competence excavation a augmenté de {0}. Total ({1}) -Skills.FeltEasy=[[GRAY]]That felt easy. -Skills.StackedItems=[[DARK_RED]]Vous ne pouvez pas réparer les objets empilés -Skills.NeedMore=[[DARK_RED]]Vous devez en avoir plus -Skills.AdeptDiamond=[[DARK_RED]]Vous n'avez pas encore le niveau nécessaire pour réparer du diamant -Skills.FullDurability=[[GRAY]]Cet objet est déjà en bonne état. -Skills.Disarmed=[[DARK_RED]]Vous avez été désarmé ! -mcPlayerListener.SorcerySkill=Sorcery: -m.SkillSorcery=SORCERY -Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]] -Sorcery.Current_Mana=[[DARK_AQUA]]MP -Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) -Sorcery.Cost=[[RED]][COST] {0} MP -Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) -Sorcery.Water.Thunder=THUNDER -Sorcery.Curative.Self=CURE SELF -Sorcery.Curative.Other=CURE OTHER -m.LVL=NIVEAU [[GREEN]]{0} - [[DARK_AQUA]]XP : [[YELLOW]][[[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]] -Combat.BeastLore=[[GREEN]]**Connaissances des bêtes** -Combat.BeastLoreOwner=[[DARK_AQUA]]Propriétaire ([[RED]]{0}[[DARK_AQUA]]) -Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/20) -Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/8) -mcMMO.Description=[[DARK_AQUA]]Q: QU'EST-CE QUE C'EST ?,[[GOLD]]mcMMO est un plugin RPG [[RED]]OPEN SOURCE[[GOLD]] pour Bukkit créé par [[BLUE]]nossr50,[[GOLD]]mcMMO ajoute beaucoup de compétences dans Minecraft,[[GOLD]]Vous pouvez gagner de l'expérience de différentes façons,[[GOLD]]Vous devriez taper [[GREEN]]/NOM_COMPETENCE[[GOLD]] pour en savoir plus.,[[DARK_AQUA]]Q: QU'EST-CE QUE ÇA FAIT?,[[GOLD]]Par exemple... en [[DARK_AQUA]]Minant[[GOLD]] Vous allez recevoir des bénéfices comme,[[RED]]le Double Butin[[GOLD]] ou la compétence [[RED]]Super Breaker[[GOLD]] qui lorsqu'elle est,[[GOLD]]activée avec clique droit permet de miner vite, sa durée,[[GOLD]]dépend du niveau de votre compétence. Améliorer [[BLUE]]Le Minage,[[GOLD]]Est aussi simple que de mine des ressources précieuses !,[[DARK_AQUA]]Q: QU'EST-CE QUE ÇA VEUT DIRE ?,[[GOLD]]Presque toutes les compétences dans [[GREEN]]mcMMO[[GOLD]] Sont des nouveaux trucs cools!.,[[GOLD]]Tapez [[GREEN]]/{0}[[GOLD]] pour trouver les commandes,[[GOLD]]Le but de mcMMO est de créer une expérience RPG de qualité.,[[DARK_AQUA]]Q: OÙ JE PEUX SUGGÉRER DES IDÉES !?,[[DARK_AQUA]]bit.ly/MCmmoIDEA,[[DARK_AQUA]]Q: COMMENT JE FAIS CI ET ÇA?,[[RED]]MERCI [[GOLD]]d'aller voir le wiki ! [[DARK_AQUA]]mcmmo.wikia.com -Party.Locked=[[RED]]Party is locked, only party leader may invite. -Party.IsntLocked=[[GRAY]]Party is not locked -Party.Unlocked=[[GRAY]]Party is unlocked -Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]][[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit -Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]] -Party.Help3=[[RED]]Consult /{0} ? for more information -Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit -Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock -Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock -Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password -Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick -Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner -Party.NotOwner=[[DARK_RED]]You are not the party owner -Party.InvalidName=[[DARK_RED]]That is not a valid party name -Party.PasswordSet=[[GREEN]]Party password set to {0} -Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} -Party.NotInYourParty=[[DARK_RED]]{0} is not in your party -Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} -Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] -Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal -Commands.xprate.proper3=[[RED]]Enter true or false for the second value -Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! -Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! -Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! -Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! -Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! -Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining -m.SkillAlchemy=ALCHEMY -m.SkillEnchanting=ENCHANTING -m.SkillFishing=FISHING -mcPlayerListener.AlchemySkill=Alchemy: -mcPlayerListener.EnchantingSkill=Enchanting: -mcPlayerListener.FishingSkill=Fishing: -Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) -Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) -Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) -Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. -Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. -Repair.Downgraded=[[RED]]Arcane power has decreased for this item. -Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. -m.EffectsRepair5_0=Arcane Forging -m.EffectsRepair5_1=Repair magic items -m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 -m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% -m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% -m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, -m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... -Fishing.ItemFound=[[GRAY]]Treasure found! -m.SkillFishing=FISHING -m.XPGainFishing=Fishing (Go figure!) -m.EffectsFishing1_0=Treasure Hunter (Passive) -m.EffectsFishing1_1=Fish up misc objects -m.EffectsFishing2_0=Magic Hunter -m.EffectsFishing2_1=Find Enchanted Items -m.EffectsFishing3_0=Shake (vs. Entities) -m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole -m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 -m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** -m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; -m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) -m.TamingSummon=[[GREEN]]Summoning complete -m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. -m.EffectsTaming7_0=Call of the Wild -m.EffectsTaming7_1=Summon a wolf to your side +Combat.WolfExamine=[[GREEN]]**Vous examinez le loup avec le Beast Lore** +Combat.WolfShowMaster=[[DARK_GREEN]]Le Maître des bêtes \: {0} +Combat.Ignition=[[RED]]**ALLUMAGE** +Combat.BurningArrowHit=[[DARK_RED]]Vous avez été frappé par une flèche brûlante\! +Combat.TouchedFuzzy=[[DARK_RED]]Vous voyez flou. Vous vous sentez étourdi. +Combat.TargetDazed=La cible a été [[DARK_RED]]Étourdi +Combat.WolfNoMaster=[[GRAY]]Cette bête n'a pas de maître... +Combat.WolfHealth=[[GREEN]]Cette bête a {0} points de vie +Combat.StruckByGore=[[RED]]**FRAPPÉ JUSQU'AU SANG** +Combat.Gore=[[GREEN]]**SANG** +Combat.ArrowDeflect=[[WHITE]]**FLÈCHE DEVIÉE** +Item.ChimaeraWingFail=**CHIMAERA WING a échoué \!** +Item.ChimaeraWingPass=**CHIMAERA WING** +Item.InjuredWait=Vous avez été blessé récemment et vous devez attendre pour utiliser ça. [[YELLOW]]({0}s) +Item.NeedFeathers=[[GRAY]]Vous avez besoin de plus de plumes.. +m.mccPartyCommands=[[GREEN]]--COMMANDES GROUPE-- +m.mccParty=[party name] [[RED]]- Créer / Rejoindre un groupe +m.mccPartyQ=[[RED]]- Vous quitter la partie en cours +m.mccPartyToggle=[[RED]] - Active le Chat de groupe +m.mccPartyInvite=[player name] [[RED]]- Envoyer une invitation +m.mccPartyAccept=[[RED]]- Accepter l'invitation +m.mccPartyTeleport=[party member name] [[RED]]- Vous téléporte à un membre du groupe +m.mccOtherCommands=[[GREEN]]--AUTRES COMMANDES-- +m.mccStats=- Voir vos statistiques +m.mccLeaderboards=- Classements +m.mccMySpawn=- Vous téléporte à votre spawn +m.mccClearMySpawn=- Éfface votre point de spawn +m.mccToggleAbility=- Active les capacités spéciales avec clic droit +m.mccAdminToggle=- Active le chat admin +m.mccWhois=[playername] [[RED]]- Voir les infos détaillées du joueur +m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifier +m.mccMcGod=- Mode dieu +m.mccSkillInfo=[skillname] [[RED]]- Afficher des informations détaillées d'une compétence +m.mccModDescription=[[RED]]- Affiche la description de mcMMO +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]POUR GAGNER DE l'XP: [[WHITE]]{0} +m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} +m.AbilityLockTemplate=[[GRAY]]{0} +m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} +m.Effects=EFFETS +m.YourStats=VOS STATS +m.SkillTaming=DRESSAGE +m.XPGainTaming=Attaquer avec un loup +m.EffectsTaming1_0=Connaissance des bêtes +m.EffectsTaming1_1=Inspecte un loup avec un os +m.EffectsTaming2_0=Morsures +m.EffectsTaming2_1=Des coups critiques lors d'une morsure +m.EffectsTaming3_0=Griffes aiguisées +m.EffectsTaming3_1=Bonus de dégâts +m.EffectsTaming4_0=Conscient de l'environnement +m.EffectsTaming4_1=Resistance aux Cactus, à la lave et aux chutes. +m.EffectsTaming5_0=Epaisse fourrure +m.EffectsTaming5_1=Réduction dégâts, Résistance au feu +m.EffectsTaming6_0=Résistance aux chocs +m.EffectsTaming6_1=Réduction des dommages explosifs +m.AbilLockTaming1=Débloqué au niveau 100 (Conscient de l'environnement) +m.AbilLockTaming2=Débloqué au niveau 250 (Épaisse fourrure) +m.AbilLockTaming3=Débloqué au niveau 500 (Résistance aux chocs) +m.AbilLockTaming4=Débloqué au niveau 750 (Griffes aiguisées) +m.AbilBonusTaming1_0=Conscient de l'environnement +m.AbilBonusTaming1_1=Le loup évite le danger +m.AbilBonusTaming2_0=Epaisse fourrure +m.AbilBonusTaming2_1=Réduit de moitié les dommages \+ résistance au feu +m.AbilBonusTaming3_0=Résistance aux chocs +m.AbilBonusTaming3_1=divise par 6 les dégats d'explosions +m.AbilBonusTaming4_0=Griffes aiguisées +m.AbilBonusTaming4_1=+2 Dommages +m.TamingGoreChance=[[RED]]Chances de Morsure: [[YELLOW]]{0}% +m.SkillWoodCutting=BÛCHERONNAGE +m.XPGainWoodCutting=Abattre des arbres +m.EffectsWoodCutting1_0=L'abatteur d'arbres (capacité spéciale) +m.EffectsWoodCutting1_1=Faire exploser les arbres +m.EffectsWoodCutting2_0=Souffleur de feuilles +m.EffectsWoodCutting2_1=Détruire plus de feuilles +m.EffectsWoodCutting3_0=Double Butin +m.EffectsWoodCutting3_1=Double le butin normal +m.AbilLockWoodCutting1=Débloqué au niveau 100 (Souffleur de feuilles) +m.AbilBonusWoodCutting1_0=Soufler les feuilles +m.AbilBonusWoodCutting1_1=Détruire plus de feuilles +m.WoodCuttingDoubleDropChance=[[RED]]Chance de double butin: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s +m.SkillArchery=TIR À L'ARC +m.XPGainArchery=Attaquer les monstres +m.EffectsArchery1_0=Allumage +m.EffectsArchery1_1=25% de chances que l'ennemi s'enflamme +m.EffectsArchery2_0=Étourdir (les joueurs) +m.EffectsArchery2_1=Étourdi les joueurs +m.EffectsArchery3_0=Dégâts+ +m.EffectsArchery3_1=Augmente les dégâts +m.EffectsArchery4_0=Récupération de flèches +m.EffectsArchery4_1=Chances de récupérer vos flèches sur un cadavre +m.ArcheryDazeChance=[[RED]]Chances d'étourdir : [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Chances de récupération des flèches : [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Durée du feu : [[YELLOW]]{0} secondes +m.ArcheryDamagePlus=[[RED]]Dégâts+ (Rang {0}): [[YELLOW]]Bonus de {0} dommages +m.SkillAxes=HACHE +m.XPGainAxes=Attaquer des monstres +m.EffectsAxes1_0=Fendeur de crânes (capacité spéciale) +m.EffectsAxes1_1=provoque des dégâts de zone +m.EffectsAxes2_0=Coup critiques +m.EffectsAxes2_1=double les dégâts +m.EffectsAxes3_0=Maîtrise de la hache (niveau 500) +m.EffectsAxes3_1=Augmente les dégâts +m.AbilLockAxes1=Débloqué au niveau 500 (Maîtrise de la hache) +m.AbilBonusAxes1_0=Maîtrise de la hache +m.AbilBonusAxes1_1=4 Blessures en bonus +m.AxesCritChance=[[RED]]Chances de coup critique : [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s +m.SkillSwords=ÉPÉE +m.XPGainSwords=Attaque des monstres +m.EffectsSwords1_0=Contre-Attaque +m.EffectsSwords1_1=Renvoie 50% des degats subis +m.EffectsSwords2_0=Lame crantée (capacité spéciale) +m.EffectsSwords2_1=25% de dégâts et saignements succesifs. +m.EffectsSwords3_0=Lame crantée avec saignement+ +m.EffectsSwords3_1=5 saignements +m.EffectsSwords4_0=Parer +m.EffectsSwords4_1=Annule les dommages +m.EffectsSwords5_0=Saignement +m.EffectsSwords5_1=provoque un saignement répété +m.SwordsCounterAttChance=[[RED]]Chances de Contre-Attaque : [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Nombre de saignements : [[YELLOW]]{0} +m.SwordsBleedChance=[[RED]]Chances de provoquer des saignements : [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Chances de parer : [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 saignement va durer 2 secondes +m.SkillAcrobatics=ACROBATIE +m.XPGainAcrobatics=Chuter +m.EffectsAcrobatics1_0=Roulade +m.EffectsAcrobatics1_1=Réduit ou annule les dommages +m.EffectsAcrobatics2_0=Super roulade +m.EffectsAcrobatics2_1=Roulade deux fois plus efficace +m.EffectsAcrobatics3_0=Esquive +m.EffectsAcrobatics3_1=Dommages reduits de moitié +m.AcrobaticsRollChance=[[RED]]Chances de roulade : [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Chances de super roulade: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Chances d'esquiver : [[YELLOW]]{0}% +m.SkillMining=MINAGE +m.XPGainMining=Miner de la roche et des minerais +m.EffectsMining1_0=Super Breaker (capacité spéciale) +m.EffectsMining1_1=Augmente la vitesse et triple les chances de trouver un butin +m.EffectsMining2_0=Double Butin +m.EffectsMining2_1=Double le butin normal +m.MiningDoubleDropChance=[[RED]]Chances de Double Butin: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s +m.SkillRepair=RÉPARATION +m.XPGainRepair=Réparer des objets +m.EffectsRepair1_0=Réparer +m.EffectsRepair1_1=Réparation d'outils & Armures en Fer +m.EffectsRepair2_0=Maître en réparation +m.EffectsRepair2_1=Augmente le nombre de réparations possibles +m.EffectsRepair3_0=Super Réparation +m.EffectsRepair3_1=Double l'efficacité +m.EffectsRepair4_0=Réparation du Diamant (requiert niveau {0}) +m.EffectsRepair4_1=Réparation des outils & armures en diamant +m.RepairRepairMastery=[[RED]]Maître en réparation : [[YELLOW]]{0}% de durabilité restaurée +m.RepairSuperRepairChance=[[RED]]Chances de Super Réparation : [[YELLOW]]{0}% +m.SkillUnarmed=MAINS NUES +m.XPGainUnarmed=Attaquer des monstres sans armes +m.EffectsUnarmed1_0=Berserk (capacité spéciale) +m.EffectsUnarmed1_1=+50% de dégâts, brise les matériaux faibles +m.EffectsUnarmed2_0=Désarmer (les joueurs) +m.EffectsUnarmed2_1=Vole l'objet que l'ennemi a dans la main +m.EffectsUnarmed3_0=Apprenti du désarmement +m.EffectsUnarmed3_1=Plus de dégâts +m.EffectsUnarmed4_0=Maîtrise du désarmement +m.EffectsUnarmed4_1=Beaucoup plus de dégâts +m.EffectsUnarmed5_0=Déviation des flèches +m.EffectsUnarmed5_1=Dévie les flèches qui vous foncent dessus +m.AbilLockUnarmed1=Débloqué au niveau 250 (Apprenti du désarmement) +m.AbilLockUnarmed2=Débloqué au niveau 500 (Maîtrise du désarmement) +m.AbilBonusUnarmed1_0=Apprenti du désarmement +m.AbilBonusUnarmed1_1=+2 dégâts +m.AbilBonusUnarmed2_0=Maîtrise du désarmement +m.AbilBonusUnarmed2_1=+4 dégâts +m.UnarmedArrowDeflectChance=[[RED]]Chances dévier les flèches : [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Chances de Désarmer : [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s +m.SkillHerbalism=Herboristerie +m.XPGainHerbalism=Récoler des herbes +m.EffectsHerbalism1_0=Main verte (capacité spéciale) +m.EffectsHerbalism1_1=répand la main verte, 3x Butin +m.EffectsHerbalism2_0=Main verte (Blé) +m.EffectsHerbalism2_1=Auto-plantes du blé lors de la récolte +m.EffectsHerbalism3_0=Main verte (Cobblestone) +m.EffectsHerbalism3_1=Transforme la Cobble en Mossy avec des graines +m.EffectsHerbalism4_0=Nouriture+ +m.EffectsHerbalism4_1=Modifie la santé reçue via le pain / ragoût +m.EffectsHerbalism5_0=Double butin (Toutes cultures) +m.EffectsHerbalism5_1=Double les récoltes +m.HerbalismGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s +m.HerbalismGreenThumbChance=[[RED]]Cances d'obtenir la main verte : [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Main verte par niveaux : [[YELLOW]] Wheat grows in stage {0} +m.HerbalismDoubleDropChance=[[RED]]Chances du Double Butin : [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Nourriture+ (Rang {0}): [[YELLOW]]{0} plus nourissant +m.SkillExcavation=EXCAVATION +m.XPGainExcavation=Creuser et trouver des trésors +m.EffectsExcavation1_0=Super broyeur (capacité spéciale) +m.EffectsExcavation1_1=3x Butin, 3x XP, +Vitesse +m.EffectsExcavation2_0=Chercheur de trésors +m.EffectsExcavation2_1=Capacité de trouver un trésor +m.ExcavationGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s +mcBlockListener.PlacedAnvil=[[DARK_RED]]Vous avez placé une enclume, Les enclumes peuvent réparer les outils et l'armure. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]Votre loup revient vers vous... +mcPlayerListener.AbilitiesOff=Capacité spéciale désactivée +mcPlayerListener.AbilitiesOn=Capacité spéciale activée +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**CAPACITÉ RECHARGÉE** +mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Acrobatie (/Acrobatics) : +mcPlayerListener.ArcherySkill=[[YELLOW]]Tir a l'arc (/Archery) : +mcPlayerListener.AxesSkill=[[YELLOW]]Hache (/Axes) : +mcPlayerListener.ExcavationSkill=[[YELLOW]]Excavation (/Excavation): +mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO godMode désactivé +mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO godMode activé +mcPlayerListener.GreenThumb=[[GREEN]]**MAIN VERTE** +mcPlayerListener.GreenThumbFail=[[RED]]**MAIN VERTE A ECHOUÉ** +mcPlayerListener.HerbalismSkill=[[YELLOW]]Herboriste (/Herbalism) : +mcPlayerListener.MiningSkill=[[YELLOW]]Minage (/Mining): +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Votre point de spawn a été éffacé. +mcPlayerListener.MyspawnNotExist=[[RED]]Dormez dans un lit pour définir votre point de spawn. +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Votre point de spawn a été enregistré ici. +mcPlayerListener.MyspawnTimeNotice=Vous devez attendre {0}m {1}s avant d'utiliser votre spawn +mcPlayerListener.NoPermission=Vous n'avez pas les permissions nécessaires. +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Si vous n'avez pas accès à une compé, elle ne sera pas affichée ici. +mcPlayerListener.NotInParty=[[RED]]Vous n'êtes pas dans un groupe. +mcPlayerListener.InviteSuccess=[[GREEN]]L'invitation a été envoyée avec succès. +mcPlayerListener.ReceivedInvite1=[[RED]]ALERTE: [[GREEN]]Vous avez reçu une invitation pour le groupe {0} de la part de {1} +mcPlayerListener.ReceivedInvite2=[[YELLOW]]Tapez [[GREEN]]/{0}[[YELLOW]] pour accepter l'invitation +mcPlayerListener.InviteAccepted=[[GREEN]]Invite acceptée. Vous avez rejoint le groupe {0} +mcPlayerListener.NoInvites=[[RED]]Vous n'avez pas d'invitation pour le moment +mcPlayerListener.YouAreInParty=[[GREEN]]Vous êtes dans le groupe {0} +mcPlayerListener.PartyMembers=[[GREEN]]Membres du groupe +mcPlayerListener.LeftParty=[[RED]]Vous avez quitté le groupe +mcPlayerListener.JoinedParty=Votre groupe: {0} +mcPlayerListener.PartyChatOn=Chat de Groupe uniquement [[GREEN]]On +mcPlayerListener.PartyChatOff=Chat de Groupe uniquement [[RED]]Off +mcPlayerListener.AdminChatOn=Admin Chat uniquement [[GREEN]]On +mcPlayerListener.AdminChatOff=Admin Chat uniquement [[RED]]Off +mcPlayerListener.MOTD=[[BLUE]]Ce serveur fonctionne avec mcMMO {0} [[YELLOW]]/{1}[[BLUE]] pour voir l'aide. +mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki - [[YELLOW]]Traduit par avalondrey & Misa +mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: +mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard-- +mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard-- +mcPlayerListener.RepairSkill=[[YELLOW]]Réparation (/Repair) : +mcPlayerListener.SwordsSkill=[[YELLOW]]Epee (/Swords) : +mcPlayerListener.TamingSkill=[[YELLOW]]Dressage (/Taming) : +mcPlayerListener.UnarmedSkill=[[YELLOW]]Mains nues (/Unarmed) : +mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Bucheron (/Woodcutting): +mcPlayerListener.YourStats=[[GREEN]]Vos statistiques +Party.InformedOnJoin={0} [[GREEN]] a rejoint votre groupe +Party.InformedOnQuit={0} [[GREEN]] a quitté votre groupe +Skills.YourGreenTerra=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Main verte [[GREEN]]est rechargée +Skills.YourTreeFeller=[[GREEN]]Votre capacitée spéciale [[YELLOW]]L'abatteur d'arbres [[GREEN]]est rechargée +Skills.YourSuperBreaker=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Super Breaker[[GREEN]]est rechargée +Skills.YourSerratedStrikes=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Epee cranté [[GREEN]]est rechargée +Skills.YourBerserk=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Berserk [[GREEN]]est rechargée +Skills.YourSkullSplitter=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Fendeur de crânes [[GREEN]]est rechargée +Skills.YourGigaDrillBreaker=[[GREEN]]Votre capacitée spéciale [[YELLOW]]Super broyeur [[GREEN]]est rechargée +Skills.TooTired=[[RED]]Vous êtes trop fatigué pour utiliser cette capacité pour l'instant. +Skills.ReadyHoe=[[GREEN]]**Votre bêche est chargée** +Skills.LowerHoe=[[GRAY]]Votre bêche s'est déchargée.. +Skills.ReadyAxe=[[GREEN]]**Votre hache est chargée** +Skills.LowerAxe=[[GRAY]]Votre hache s'est déchargée.. +Skills.ReadyFists=[[GREEN]]**Vos poings sont chargés** +Skills.LowerFists=[[GRAY]]Vos poings se sont déchargés.. +Skills.ReadyPickAxe=[[GREEN]]**Votre pioche est chargée** +Skills.LowerPickAxe=[[GRAY]]Votre pioche s'est déchargée.. +Skills.ReadyShovel=[[GREEN]]**Votre pelle est chargée** +Skills.LowerShovel=[[GRAY]]Votre pelle s'est déchargée.. +Skills.ReadySword=[[GREEN]]**Votre épée est chargée** +Skills.LowerSword=[[GRAY]]Votre épée s'est déchargée.. +Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED** +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk! +Skills.GreenTerraOn=[[GREEN]]**Compétence [[YELLOW]]Main Verte [[GREEN]]activée** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Main verte ! +Skills.TreeFellerOn=[[GREEN]]**Compétence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]activée** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Abatteur d'Arbres ! +Skills.SuperBreakerOn=[[GREEN]]**Compétence [[YELLOW]]Super Breaker [[GREEN]]activée** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Super Breaker ! +Skills.SerratedStrikesOn=[[GREEN]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]activée** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Lame crantée ! +Skills.SkullSplitterOn=[[GREEN]]**Compétence [[YELLOW]]Fendeur de crânes [[GREEN]]activée** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Fendeur de crânes ! +Skills.GigaDrillBreakerOn=[[GREEN]]**Compétence [[YELLOW]]Super Broyeur [[GREEN]]activée** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé la compétence spéciale [[RED]]Super broyeur ! +Skills.GreenTerraOff=[[RED]]**Compétence [[YELLOW]]Main Verte [[GREEN]]terminée** +Skills.TreeFellerOff=[[RED]]**Compétence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]terminée** +Skills.SuperBreakerOff=[[RED]]**Compétence [[YELLOW]]Super Breaker [[GREEN]]terminée** +Skills.SerratedStrikesOff=[[RED]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]terminée** +Skills.BerserkOff=[[RED]]**Berserk est fini** +Skills.SkullSplitterOff=[[RED]]**Casseur de tete est fini** +Skills.GigaDrillBreakerOff=[[RED]]**Super broyeur est fini** +Skills.TamingUp=[[YELLOW]]La competence du dressage a augmenté de {0}. Total ({1}) +Skills.AcrobaticsUp=[[YELLOW]]La competence acrobatie a augmenté de {0}. Total ({1}) +Skills.ArcheryUp=[[YELLOW]]La competence tir a l'arc a augmenté de {0}. Total ({1}) +Skills.SwordsUp=[[YELLOW]]La competence épée a augmenté de {0}. Total ({1}) +Skills.AxesUp=[[YELLOW]]La competence hache a augmenté de {0}. Total ({1}) +Skills.UnarmedUp=[[YELLOW]]La compétence de combat à mains nues a augmenté de {0}. Total ({1}) +Skills.HerbalismUp=[[YELLOW]]La competence herboriste a augmenté de {0}. Total ({1}) +Skills.MiningUp=[[YELLOW]]La competence minage a augmenté de {0}. Total ({1}) +Skills.WoodcuttingUp=[[YELLOW]]La competence bucherônage a augmenté de {0}. Total ({1}) +Skills.RepairUp=[[YELLOW]]La competence réparation a augmenté de {0}. Total ({1}) +Skills.ExcavationUp=[[YELLOW]]La competence excavation a augmenté de {0}. Total ({1}) +Skills.FeltEasy=[[GRAY]]That felt easy. +Skills.StackedItems=[[DARK_RED]]Vous ne pouvez pas réparer les objets empilés +Skills.NeedMore=[[DARK_RED]]Vous devez en avoir plus +Skills.AdeptDiamond=[[DARK_RED]]Vous n'avez pas encore le niveau nécessaire pour réparer du diamant +Skills.FullDurability=[[GRAY]]Cet objet est déjà en bonne état. +Skills.Disarmed=[[DARK_RED]]Vous avez été désarmé ! +mcPlayerListener.SorcerySkill=Sorcery: +m.SkillSorcery=SORCERY +Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]] +Sorcery.Current_Mana=[[DARK_AQUA]]MP +Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) +Sorcery.Cost=[[RED]][COST] {0} MP +Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) +Sorcery.Water.Thunder=THUNDER +Sorcery.Curative.Self=CURE SELF +Sorcery.Curative.Other=CURE OTHER +m.LVL=NIVEAU [[GREEN]]{0} - [[DARK_AQUA]]XP : [[YELLOW]][[[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]] +Combat.BeastLore=[[GREEN]]**Connaissances des bêtes** +Combat.BeastLoreOwner=[[DARK_AQUA]]Propriétaire ([[RED]]{0}[[DARK_AQUA]]) +Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/20) +Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/8) +mcMMO.Description=[[DARK_AQUA]]Q: QU'EST-CE QUE C'EST ?,[[GOLD]]mcMMO est un plugin RPG [[RED]]OPEN SOURCE[[GOLD]] pour Bukkit créé par [[BLUE]]nossr50,[[GOLD]]mcMMO ajoute beaucoup de compétences dans Minecraft,[[GOLD]]Vous pouvez gagner de l'expérience de différentes façons,[[GOLD]]Vous devriez taper [[GREEN]]/NOM_COMPETENCE[[GOLD]] pour en savoir plus.,[[DARK_AQUA]]Q: QU'EST-CE QUE ÇA FAIT?,[[GOLD]]Par exemple... en [[DARK_AQUA]]Minant[[GOLD]] Vous allez recevoir des bénéfices comme,[[RED]]le Double Butin[[GOLD]] ou la compétence [[RED]]Super Breaker[[GOLD]] qui lorsqu'elle est,[[GOLD]]activée avec clique droit permet de miner vite, sa durée,[[GOLD]]dépend du niveau de votre compétence. Améliorer [[BLUE]]Le Minage,[[GOLD]]Est aussi simple que de mine des ressources précieuses !,[[DARK_AQUA]]Q: QU'EST-CE QUE ÇA VEUT DIRE ?,[[GOLD]]Presque toutes les compétences dans [[GREEN]]mcMMO[[GOLD]] Sont des nouveaux trucs cools!.,[[GOLD]]Tapez [[GREEN]]/{0}[[GOLD]] pour trouver les commandes,[[GOLD]]Le but de mcMMO est de créer une expérience RPG de qualité.,[[DARK_AQUA]]Q: OÙ JE PEUX SUGGÉRER DES IDÉES !?,[[DARK_AQUA]]bit.ly/MCmmoIDEA,[[DARK_AQUA]]Q: COMMENT JE FAIS CI ET ÇA?,[[RED]]MERCI [[GOLD]]d'aller voir le wiki ! [[DARK_AQUA]]mcmmo.wikia.com +Party.Locked=[[RED]]Party is locked, only party leader may invite. +Party.IsntLocked=[[GRAY]]Party is not locked +Party.Unlocked=[[GRAY]]Party is unlocked +Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]][[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit +Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]] +Party.Help3=[[RED]]Consult /{0} ? for more information +Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit +Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock +Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock +Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password +Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick +Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner +Party.NotOwner=[[DARK_RED]]You are not the party owner +Party.InvalidName=[[DARK_RED]]That is not a valid party name +Party.PasswordSet=[[GREEN]]Party password set to {0} +Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} +Party.NotInYourParty=[[DARK_RED]]{0} is not in your party +Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} +Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] +Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal +Commands.xprate.proper3=[[RED]]Enter true or false for the second value +Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! +Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! +Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! +Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! +Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! +Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining +m.SkillAlchemy=ALCHEMY +m.SkillEnchanting=ENCHANTING +m.SkillFishing=FISHING +mcPlayerListener.AlchemySkill=Alchemy: +mcPlayerListener.EnchantingSkill=Enchanting: +mcPlayerListener.FishingSkill=Fishing: +Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) +Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) +Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) +Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. +Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. +Repair.Downgraded=[[RED]]Arcane power has decreased for this item. +Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. +m.EffectsRepair5_0=Arcane Forging +m.EffectsRepair5_1=Repair magic items +m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 +m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% +m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% +m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, +m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ +Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.ItemFound=[[GRAY]]Treasure found! +m.SkillFishing=FISHING +m.XPGainFishing=Fishing (Go figure!) +m.EffectsFishing1_0=Treasure Hunter (Passive) +m.EffectsFishing1_1=Fish up misc objects +m.EffectsFishing2_0=Magic Hunter +m.EffectsFishing2_1=Find Enchanted Items +m.EffectsFishing3_0=Shake (vs. Entities) +m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole +m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 +m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** +m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; +m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) +m.TamingSummon=[[GREEN]]Summoning complete +m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. +m.EffectsTaming7_0=Call of the Wild +m.EffectsTaming7_1=Summon a wolf to your side m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand \ No newline at end of file diff --git a/src/com/gmail/nossr50/locale/locale_nl.properties b/src/main/java/com/gmail/nossr50/locale/locale_nl.properties similarity index 98% rename from src/com/gmail/nossr50/locale/locale_nl.properties rename to src/main/java/com/gmail/nossr50/locale/locale_nl.properties index e88df5a39..1af8c2798 100644 --- a/src/com/gmail/nossr50/locale/locale_nl.properties +++ b/src/main/java/com/gmail/nossr50/locale/locale_nl.properties @@ -1,396 +1,396 @@ -# Dutch translation by Pluis65 v1.1 -# To use: Set locale to nl -# DO NOT EDIT THIS FILE WITH NORMAL NOTEPAD, use Notepad++ -# Verander deze file alleen met Notepad++ -# Geef fouten door aan pluis65@hotmail.com -# Last official edit: 8-7-2011 -Combat.WolfExamine=[[GREEN]]**Je bekijkt de wolf met Wolfinspectie** -Combat.WolfShowMaster=[[DARK_GREEN]]Eigenaar van de wolf \: {0} -Combat.Ignition=[[RED]]**IGNITION** -Combat.BurningArrowHit=[[DARK_RED]]Je bent geraakt door een brandende pijl\! -Combat.TouchedFuzzy=[[DARK_RED]]Je raakte Fuzzy aan. Je voelt je duizelig. -Combat.TargetDazed=Doelwit was [[DARK_RED]]versuft -Combat.WolfNoMaster=[[GRAY]]Deze wolf heeft geen eigenaar... -Combat.WolfHealth=[[GREEN]]Deze wolf heeft {0} levens -Combat.StruckByGore=[[RED]]**VAST DOOR GESTOLD BLOED** -Combat.Gore=[[GREEN]]**GESTOLD BLOED** -Combat.ArrowDeflect=[[WHITE]]**PIJL AFWIJKING** -Item.ChimaeraWingFail=**CHIMAERA WING MISLUKT\!** -Item.ChimaeraWingPass=**CHIMAERA WING** -Item.InjuredWait=Je bent gewond en moet wachten. [[YELLOW]]({0}s) -Item.NeedFeathers=[[GRAY]]Je hebt meer veren nodig.. -m.mccPartyCommands=[[GREEN]]--PARTY COMMANDOS-- -m.mccParty=[party name] [[RED]]- Maak/Join getypte party -m.mccPartyQ=[[RED]]- Verlaat je huidige party -m.mccPartyToggle=[[RED]] - Doe party chat aan/uit -m.mccPartyInvite=[player name] [[RED]]- Stuur een uitnodiging voor je party -m.mccPartyAccept=[[RED]]- Accepteer party uitnodiging -m.mccPartyTeleport=[party member name] [[RED]]- Teleporteer naar je party medelid -m.mccOtherCommands=[[GREEN]]--ANDERE COMMANDOS-- -m.mccStats=- Laat je levels zien -m.mccLeaderboards=- Topscores -m.mccMySpawn=- Teleporteer naar MySpawn -m.mccClearMySpawn=- Verwijder je MySpawn -m.mccToggleAbility=- Doe ability activatie aan/uit -m.mccAdminToggle=- Doe admin chat aan/uit -m.mccWhois=[playername] [[RED]]- Laat informatie zien over speler -m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Verander levels -m.mccMcGod=- God Modus -m.mccSkillInfo=[skillname] [[RED]]- Laat informatie zien over een skill -m.mccModDescription=[[RED]]- Lees MOD beschrijving -m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- -m.XPGain=[[DARK_GRAY]]XP: [[WHITE]]{0} -m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} -m.AbilityLockTemplate=[[GRAY]]{0} -m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} -m.Effects=EFFECTEN -m.YourStats=JOUW STATUS -m.SkillTaming=TEMMEN -m.XPGainTaming=Wolven krijgen schade -m.EffectsTaming1_0=Wolfinspectie -m.EffectsTaming1_1=Bone-meal inspecteert wolven -m.EffectsTaming2_0=Gestold bloed -m.EffectsTaming2_1=Critical Strike zorgt voor bloedingen -m.EffectsTaming3_0=Scherpere klauwen -m.EffectsTaming3_1=Geeft meer schade -m.EffectsTaming4_0=Mileukennis -m.EffectsTaming4_1=Geen cactus/lava schade, geen falldamage -m.EffectsTaming5_0=Dikke huis -m.EffectsTaming5_1=Minder schade, kan tegen vuur -m.EffectsTaming6_0=Explosieschild -m.EffectsTaming6_1=Minder explosie schade -m.AbilLockTaming1=GEBLOKEERD TOT 100+ SKILL (MILIEUKENNIS) -m.AbilLockTaming2=GEBLOKEERD TOT 250+ SKILL (DIKKE HUIS) -m.AbilLockTaming3=GEBLOKEERD TOT 500+ SKILL (EXPLOSIESCHILD) -m.AbilLockTaming4=GEBLOKEERD TOT 750+ SKILL (SCHERPERE KLAUWEN) -m.AbilBonusTaming1_0=Milieukennis -m.AbilBonusTaming1_1=Wolven ontwijken gevaar (cactus, lava) -m.AbilBonusTaming2_0=Dikkere huid -m.AbilBonusTaming2_1=Halve schade, kan tegen vuur -m.AbilBonusTaming3_0=Explosieschild -m.AbilBonusTaming3_1=Explosies geven 1/6 van de normale schade -m.AbilBonusTaming4_0=Scherpere klauwen -m.AbilBonusTaming4_1=+2 Schade -m.TamingGoreChance=[[RED]]Kans op gestold bloed: [[YELLOW]]{0}% -m.SkillWoodCutting=HOUTHAKKEN -m.XPGainWoodCutting=Bomen omhakken -m.EffectsWoodCutting1_0=Tree Feller (ABILITY) -m.EffectsWoodCutting1_1=Laat bomen deels exploderen -m.EffectsWoodCutting2_0=Leaf Blower -m.EffectsWoodCutting2_1=Laat leaves verdwijnen -m.EffectsWoodCutting3_0=Dubbele Drop -m.EffectsWoodCutting3_1=Geeft een dubbele drop -m.AbilLockWoodCutting1=GEBLOKEERD TOT 100+ SKILL (LEAF BLOWER) -m.AbilBonusWoodCutting1_0=Leaf Blower -m.AbilBonusWoodCutting1_1=Laat leaves verdwijnen -m.WoodCuttingDoubleDropChance=[[RED]]Dubbele Drop kans: [[YELLOW]]{0}% -m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller lengte: [[YELLOW]]{0}s -m.SkillArchery=BOOGSCHIETEN -m.XPGainArchery=Schiet op vijanden -m.EffectsArchery1_0=Brandende pijl -m.EffectsArchery1_1=25% kans dat een vijand verbrand -m.EffectsArchery2_0=Verdoof (Players) -m.EffectsArchery2_1=Gedesorienteerde vijanden -m.EffectsArchery3_0=Schade+ -m.EffectsArchery3_1=Verhoogt schade -m.EffectsArchery4_0=Pijlen terugkrijgen -m.EffectsArchery4_1=Kans dat dode vijanden pijlen droppen -m.ArcheryDazeChance=[[RED]]Kans op verdoving: [[YELLOW]]{0}% -m.ArcheryRetrieveChance=[[RED]]Kans om pijlen terug te krijgen: [[YELLOW]]{0}% -m.ArcheryIgnitionLength=[[RED]]Lengte van Brandende pijl: [[YELLOW]]{0} seconds -m.ArcheryDamagePlus=[[RED]]Schade+ (Rank{0}): [[YELLOW]]Bonus {0} schade -m.SkillAxes=BIJLEN -m.XPGainAxes=Val monsters aan met een bijl -m.EffectsAxes1_0=Schedelsplijter (ABILITY) -m.EffectsAxes1_1=Geef schade rond om je heen -m.EffectsAxes2_0=Critical Strikes -m.EffectsAxes2_1=Dubbele schade -m.EffectsAxes3_0=Bijl Master (500 SKILL) -m.EffectsAxes3_1=Verhoogt schade -m.AbilLockAxes1=GEBLOKEERD TOT 500+ SKILL (BIJL MASTER) -m.AbilBonusAxes1_0=Bijl Master -m.AbilBonusAxes1_1=4 schade extra -m.AxesCritChance=[[RED]]Kans op Critical Strikes: [[YELLOW]]{0}% -m.AxesSkullLength=[[RED]]Schedelsplijter lengte: [[YELLOW]]{0}s -m.SkillSwords=ZWAARDEN -m.XPGainSwords=Val monsters aan met een zwaard -m.EffectsSwords1_0=Terugkaats Aanval -m.EffectsSwords1_1=Kaats 50% van de schade terug -m.EffectsSwords2_0=Serrated Strikes (ABILITY) -m.EffectsSwords2_1=25% meer schade, kans op Bloeding+ om je heen -m.EffectsSwords3_0=Serrated Strikes Bloeding+ -m.EffectsSwords3_1=Kans op extra bloeding bij vijanden -m.EffectsSwords4_0=Pareren -m.EffectsSwords4_1=Blokkeer vijandelijke aanval -m.EffectsSwords5_0=5 Tikken van Bloeding -m.EffectsSwords5_1=Laat anderen bloeden -m.SwordsCounterAttChance=[[RED]]Kans op Terugkeer Aanval: [[YELLOW]]{0}% -m.SwordsBleedLength=[[RED]]Bloeding lengte: [[YELLOW]]{0} ticks -m.SwordsBleedChance=[[RED]]Kans op Bloeding: [[YELLOW]]{0} % -m.SwordsParryChance=[[RED]]Kans op Pareren: [[YELLOW]]{0} % -m.SwordsSSLength=[[RED]]Serrated Strikes lengte: [[YELLOW]]{0}s -m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 tik per 2 seconden -m.SkillAcrobatics=ACROBATIEK -m.XPGainAcrobatics=Vallen -m.EffectsAcrobatics1_0=Rollen -m.EffectsAcrobatics1_1=Verminderd of voorkomt schade -m.EffectsAcrobatics2_0=Perfecte Rol -m.EffectsAcrobatics2_1=Twee keer zo effectief als Rollen -m.EffectsAcrobatics3_0=Ontwijken -m.EffectsAcrobatics3_1=50% minder schade -m.AcrobaticsRollChance=[[RED]]Kans om te rollen: [[YELLOW]]{0}% -m.AcrobaticsGracefulRollChance=[[RED]]Kans op Perfecte Rol: [[YELLOW]]{0}% -m.AcrobaticsDodgeChance=[[RED]]Kans om te ontwijken: [[YELLOW]]{0}% -m.SkillMining=MIJNBOUW -m.XPGainMining=Hak steen & erts met een pickaxe -m.EffectsMining1_0=Super Breeker (ABILITY) -m.EffectsMining1_1=Hogere snelheid, Kans op 3x drop -m.EffectsMining2_0=Dubbele Drops -m.EffectsMining2_1=Dubbele van normale drop -m.MiningDoubleDropChance=[[RED]]Kans op Dubbele Drop: [[YELLOW]]{0}% -m.MiningSuperBreakerLength=[[RED]]Super Breeker lengte: [[YELLOW]]{0}s -m.SkillRepair=REPAREREN -m.XPGainRepair=Repareer tools en armor -m.EffectsRepair1_0=Repareer -m.EffectsRepair1_1=Repareer Iron Tools & Armor -m.EffectsRepair2_0=Repareer Master -m.EffectsRepair2_1=Vergroot de reparatiehoeveelheid -m.EffectsRepair3_0=Super Repareren -m.EffectsRepair3_1=Dubbel effectief -m.EffectsRepair4_0=Diamond Repareren ({0}+ SKILL) -m.EffectsRepair4_1=Repareer Diamond Tools & Armor -m.RepairRepairMastery=[[RED]]Repareer Master: [[YELLOW]]Extra {0}% durability restored -m.RepairSuperRepairChance=[[RED]]Kans op Super Repareren: [[YELLOW]]{0}% -m.SkillUnarmed=ONBEWAPEND -m.XPGainUnarmed=Val monsters aan met hand -m.EffectsUnarmed1_0=Onbewapende gek (ABILITY) -m.EffectsUnarmed1_1=+50% schade, hak zachte materialen weg -m.EffectsUnarmed2_0=Ontwapen (Players) -m.EffectsUnarmed2_1=Dropt het wapen van de vijand -m.EffectsUnarmed3_0=Onbewapende held -m.EffectsUnarmed3_1=Nog meer schade -m.EffectsUnarmed4_0=Onbewapende leerling -m.EffectsUnarmed4_1=Meer schade -m.EffectsUnarmed5_0=Pijlafwijking -m.EffectsUnarmed5_1=Laat pijlen afwijken -m.AbilLockUnarmed1=GEBLOKEERD TOT 250+ SKILL (Onbewapende leerling) -m.AbilLockUnarmed2=GEBLOKEERD TOT 500+ SKILL (Onbewapende held) -m.AbilBonusUnarmed1_0=Onbewapende leerling -m.AbilBonusUnarmed1_1=+2 meer schade -m.AbilBonusUnarmed2_0=Onbewapende held -m.AbilBonusUnarmed2_1=+4 meer schade -m.UnarmedArrowDeflectChance=[[RED]]Kans op Pijlafwijking: [[YELLOW]]{0}% -m.UnarmedDisarmChance=[[RED]]Kans op Ontwapening: [[YELLOW]]{0}% -m.UnarmedBerserkLength=[[RED]]Lengte van Onbewapende gek: [[YELLOW]]{0}s -m.SkillHerbalism=LANDBOUW -m.XPGainHerbalism=Verzamel kruiden en planten -m.EffectsHerbalism1_0=Groene Aarde (ABILITY) -m.EffectsHerbalism1_1=3x meer XP en kans op 3x drop -m.EffectsHerbalism2_0=Groene vingers (Wheat) -m.EffectsHerbalism2_1=Plant wheat bij het oogsten -m.EffectsHerbalism3_0=Groene vingers (Cobble) -m.EffectsHerbalism3_1=Maakt van cobblestone moss-stone met seeds -m.EffectsHerbalism4_0=Voedsel+ -m.EffectsHerbalism4_1=Verhoogt de heling van brood en stews -m.EffectsHerbalism5_0=Dubbele Drop (Alle planten) -m.EffectsHerbalism5_1=Dubbele drop van planten -m.HerbalismGreenTerraLength=[[RED]]Groene Aarde lengte: [[YELLOW]]{0}s -m.HerbalismGreenThumbChance=[[RED]]Kans op Groene vingers: [[YELLOW]]{0}% -m.HerbalismGreenThumbStage=[[RED]]Groene vingers periode: [[YELLOW]] Wheat groeit in periode {0} -m.HerbalismDoubleDropChance=[[RED]]Kans op Dubbele Drop: [[YELLOW]]{0}% -m.HerbalismFoodPlus=[[RED]]Voedsel+ (Rank{0}): [[YELLOW]]Bonus {0} heling -m.SkillExcavation=UITGRAVING -m.XPGainExcavation=Graven -m.EffectsExcavation1_0=Giga Drilboor (ABILITY) -m.EffectsExcavation1_1=3x drop, 3x XP, hogere snelheid -m.EffectsExcavation2_0=Schatzoeker -m.EffectsExcavation2_1=Mogelijkheid om schatten te zoeken -m.ExcavationGreenTerraLength=[[RED]]Giga Drilboor lengte: [[YELLOW]]{0}s -mcBlockListener.PlacedAnvil=[[DARK_RED]]Je hebt een aambeeld geplaatst. Hierop kun je tools en armor repareren. -mcEntityListener.WolfComesBack=[[DARK_GRAY]]Je wolf dribbelt terug naar je... -mcPlayerListener.AbilitiesOff=Ability activatie is uit -mcPlayerListener.AbilitiesOn=Ability activatie is aan -mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES HERLADEN\!** -mcPlayerListener.AcrobaticsSkill=Acrobatiek: -mcPlayerListener.ArcherySkill=Boogschieten: -mcPlayerListener.AxesSkill=Bijlen: -mcPlayerListener.ExcavationSkill=Uitgraving: -mcPlayerListener.GodModeDisabled=[[YELLOW]]Godmodus uitgeschakeld -mcPlayerListener.GodModeEnabled=[[YELLOW]]Godmodus ingeschakeld -mcPlayerListener.GreenThumb=[[GREEN]]**GROENE VINGERS** -mcPlayerListener.GreenThumbFail=[[RED]]**GROENE VINNGERS MISLUKT** -mcPlayerListener.HerbalismSkill=Landbouw: -mcPlayerListener.MiningSkill=Mijnbouw: -mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn is verwijderd. -mcPlayerListener.MyspawnNotExist=[[RED]]Plaats Myspawn eerst door op een bed te drukken. -mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn is geplaatst op je huidige locatie. -mcPlayerListener.MyspawnTimeNotice=Je moet {0}m {1}s wachten voordat je myspawn kan gebruiken. -mcPlayerListener.NoPermission=Je hebt geen permissie. -mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Als je geen toegang hebt tot een skill wordt hij hier niet weergegeven. -mcPlayerListener.NotInParty=[[RED]]Je zit niet in een party. -mcPlayerListener.InviteSuccess=[[GREEN]]Uitnodiging succesvol verzonden. -mcPlayerListener.ReceivedInvite1=[[RED]]BERICHT: [[GREEN]]Je bent uitgenodigd voor de party {0} door {1} -mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] om de uitnodiging te accepteren. -mcPlayerListener.InviteAccepted=[[GREEN]]Uitnodiging geaccepteerd. Je bent nu lid van {0} -mcPlayerListener.NoInvites=[[RED]]Je hebt geen uitnodigingen -mcPlayerListener.YouAreInParty=[[GREEN]]Je zit in de party {0} -mcPlayerListener.PartyMembers=[[GREEN]]Party Leden -mcPlayerListener.LeftParty=[[RED]]Je hebt de party verlaten -mcPlayerListener.JoinedParty=Lid geworden van: {0} -mcPlayerListener.PartyChatOn=Alleen Party Chat [[GREEN]]aan -mcPlayerListener.PartyChatOff=Alleen Party Chat [[RED]]uit -mcPlayerListener.AdminChatOn=Alleen Admin Chat [[GREEN]]aan -mcPlayerListener.AdminChatOff=Alleen Admin Chat [[RED]]uit -mcPlayerListener.MOTD=[[BLUE]]Deze server werkt op mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] voor hulp. -mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: -mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Highscore-- -mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Highscore-- -mcPlayerListener.RepairSkill=Repareren: -mcPlayerListener.SwordsSkill=Zwaarden: -mcPlayerListener.TamingSkill=Temmen: -mcPlayerListener.UnarmedSkill=Onbewapend: -mcPlayerListener.WoodcuttingSkill=Houthakken: -mcPlayerListener.YourStats=[[GREEN]][mcMMO] Status -Party.InformedOnJoin={0} [[GREEN]] heeft je party gejoined -Party.InformedOnQuit={0} [[GREEN]] heeft je party verlaten -Skills.YourGreenTerra=[[GREEN]]Je [[YELLOW]]Groene Aarde [[GREEN]]ability is opgeladen! -Skills.YourTreeFeller=[[GREEN]]Je [[YELLOW]]Tree Feller [[GREEN]]ability is opgeladen! -Skills.YourSuperBreaker=[[GREEN]]Je [[YELLOW]]Super Breeker [[GREEN]]ability is opgeladen! -Skills.YourSerratedStrikes=[[GREEN]]Je [[YELLOW]]Serrated Strikes [[GREEN]]ability is opgeladen! -Skills.YourBerserk=[[GREEN]]Je [[YELLOW]]Onbewapende gek [[GREEN]]ability is opgeladen! -Skills.YourSkullSplitter=[[GREEN]]Je [[YELLOW]]Schedelsplijter [[GREEN]]ability is opgeladen! -Skills.YourGigaDrillBreaker=[[GREEN]]Je [[YELLOW]]Giga Drilboor [[GREEN]]ability is opgeladen! -Skills.TooTired=[[RED]]Je bent te moe om die ability te gebruiken. -Skills.ReadyHoe=[[GREEN]]**JE TILT JE SCHOFFEL OP** -Skills.LowerHoe=[[GRAY]]**JE LAAT JE SCHOFFEL ZAKKEN** -Skills.ReadyAxe=[[GREEN]]**JE TILT JE BIJL OP** -Skills.LowerAxe=[[GRAY]]**JE LAAT JE BIJL ZAKKEN** -Skills.ReadyFists=[[GREEN]]**JE BALT JE VUISTEN** -Skills.LowerFists=[[GRAY]]**JE LAAT JE VUISTEN ZAKKEN** -Skills.ReadyPickAxe=[[GREEN]]**JE TILT JE PICKAXE OP** -Skills.LowerPickAxe=[[GRAY]]**JE LAAT JE PICKAXE ZAKKEN** -Skills.ReadyShovel=[[GREEN]]**JE TILT JE SCHEP OP** -Skills.LowerShovel=[[GRAY]]**JE LAAT JE SCHEP ZAKKEN** -Skills.ReadySword=[[GREEN]]**JE TILT JE ZWAARD OP** -Skills.LowerSword=[[GRAY]]**JE LAAT JE ZWAARD ZAKKEN** -Skills.BerserkOn=[[GREEN]]**ONBEWAPENDE GEK GEACTIVEERD** -Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Onbewapende gek! -Skills.GreenTerraOn=[[GREEN]]**GROENE AARDE GEACTIVEERD** -Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Groene Aarde! -Skills.TreeFellerOn=[[GREEN]]**TREE FELLER GEACTIVEERD** -Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Tree Feller! -Skills.SuperBreakerOn=[[GREEN]]**SUPER BREEKER GEACTIVEERD** -Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Super Breeker! -Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES GEACTIVEERD** -Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Serrated Strikes! -Skills.SkullSplitterOn=[[GREEN]]**SCHEDELSPLIJTER GEACTIVEERD** -Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Schedelsplijter! -Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILBOOR GEACTIVEERD** -Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Giga Drilboor! -Skills.GreenTerraOff=[[RED]]**Groene Aarde is uitgewerkt** -Skills.TreeFellerOff=[[RED]]**Tree Feller is uitgewerkt** -Skills.SuperBreakerOff=[[RED]]**Super Breeker is uitgewerkt** -Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes is uitgewerkt** -Skills.BerserkOff=[[RED]]**Onbewapende gek is uitgewerkt** -Skills.SkullSplitterOff=[[RED]]**Schedelsplijter is uitgewerkt** -Skills.GigaDrillBreakerOff=[[RED]]**Giga Drilboor is uitgewerkt** -Skills.TamingUp=[[YELLOW]]Temmen skill verhoogt met {0}. Totaal ({1}) -Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill verhoogt met {0}. Total ({1}) -Skills.ArcheryUp=[[YELLOW]]Boogschieten skill verhoogt met {0}. Totaal ({1}) -Skills.SwordsUp=[[YELLOW]]Zwaarden skill verhoogt met {0}. Totaal ({1}) -Skills.AxesUp=[[YELLOW]]Bijlen skill verhoogt met {0}. Totaal ({1}) -Skills.UnarmedUp=[[YELLOW]]Onbewapend skill verhoogt met {0}. Totaal ({1}) -Skills.HerbalismUp=[[YELLOW]]Landbouw skill verhoogt met {0}. Totaal ({1}) -Skills.MiningUp=[[YELLOW]]Mijnbouw skill verhoogt met {0}. Totaal ({1}) -Skills.WoodcuttingUp=[[YELLOW]]Houthakken skill verhoogt met {0}. Totaal ({1}) -Skills.RepairUp=[[YELLOW]]Repareren skill verhoogt met {0}. Totaal ({1}) -Skills.ExcavationUp=[[YELLOW]]Uitgraven skill verhoogt met {0}. Totaal ({1}) -Skills.FeltEasy=[[GRAY]]Dat was makkelijk. -Skills.StackedItems=[[DARK_RED]]Je kan geen gestackte items repareren -Skills.NeedMore=[[DARK_RED]]Je hebt te weinig -Skills.AdeptDiamond=[[DARK_RED]]Je bent niet goed genoeg om diamond te repareren. -Skills.FullDurability=[[GRAY]]Dat is nog helemaal heel. -Skills.Disarmed=[[DARK_RED]]Je bent ontwapend! -mcPlayerListener.SorcerySkill=Tovenarij: -m.SkillSorcery=TOVERNARIJ -Sorcery.HasCast=[[GREEN]]**UITROEPEN VAN**[[GOLD]] -Sorcery.Current_Mana=[[DARK_AQUA]]MP -Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) -Sorcery.Cost=[[RED]][COST] {0} MP -Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Geen Mana meer [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) -Sorcery.Water.Thunder=DONDER -Sorcery.Curative.Self=HEEL JEZELF -Sorcery.Curative.Other=HEEL EEN ANDER -m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) -Combat.BeastLore=[[GREEN]]**WOLFINSPECTIE** -Combat.BeastLoreOwner=[[DARK_AQUA]]Eigenaar ([[RED]]{0}[[DARK_AQUA]]) -Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Levens ([[GREEN]]{0}[[DARK_AQUA]]/20) -Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Levens ([[GREEN]]{0}[[DARK_AQUA]]/8) -mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com -Party.Locked=[[RED]]Party is locked, only party leader may invite. -Party.IsntLocked=[[GRAY]]Party is not locked -Party.Unlocked=[[GRAY]]Party is unlocked -Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]][[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit -Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]] -Party.Help3=[[RED]]Consult /{0} ? for more information -Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit -Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock -Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock -Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password -Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick -Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner -Party.NotOwner=[[DARK_RED]]You are not the party owner -Party.InvalidName=[[DARK_RED]]That is not a valid party name -Party.PasswordSet=[[GREEN]]Party password set to {0} -Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} -Party.NotInYourParty=[[DARK_RED]]{0} is not in your party -Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} -Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] -Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal -Commands.xprate.proper3=[[RED]]Enter true or false for the second value -Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! -Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! -Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! -Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! -Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! -Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining -m.SkillAlchemy=ALCHEMY -m.SkillEnchanting=ENCHANTING -m.SkillFishing=FISHING -mcPlayerListener.AlchemySkill=Alchemy: -mcPlayerListener.EnchantingSkill=Enchanting: -mcPlayerListener.FishingSkill=Fishing: -Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) -Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) -Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) -Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. -Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. -Repair.Downgraded=[[RED]]Arcane power has decreased for this item. -Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. -m.EffectsRepair5_0=Arcane Forging -m.EffectsRepair5_1=Repair magic items -m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 -m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% -m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% -m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, -m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... -Fishing.ItemFound=[[GRAY]]Treasure found! -m.SkillFishing=FISHING -m.XPGainFishing=Fishing (Go figure!) -m.EffectsFishing1_0=Treasure Hunter (Passive) -m.EffectsFishing1_1=Fish up misc objects -m.EffectsFishing2_0=Magic Hunter -m.EffectsFishing2_1=Find Enchanted Items -m.EffectsFishing3_0=Shake (vs. Entities) -m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole -m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 -m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** -m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; -m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) -m.TamingSummon=[[GREEN]]Summoning complete -m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. -m.EffectsTaming7_0=Call of the Wild -m.EffectsTaming7_1=Summon a wolf to your side +# Dutch translation by Pluis65 v1.1 +# To use: Set locale to nl +# DO NOT EDIT THIS FILE WITH NORMAL NOTEPAD, use Notepad++ +# Verander deze file alleen met Notepad++ +# Geef fouten door aan pluis65@hotmail.com +# Last official edit: 8-7-2011 +Combat.WolfExamine=[[GREEN]]**Je bekijkt de wolf met Wolfinspectie** +Combat.WolfShowMaster=[[DARK_GREEN]]Eigenaar van de wolf \: {0} +Combat.Ignition=[[RED]]**IGNITION** +Combat.BurningArrowHit=[[DARK_RED]]Je bent geraakt door een brandende pijl\! +Combat.TouchedFuzzy=[[DARK_RED]]Je raakte Fuzzy aan. Je voelt je duizelig. +Combat.TargetDazed=Doelwit was [[DARK_RED]]versuft +Combat.WolfNoMaster=[[GRAY]]Deze wolf heeft geen eigenaar... +Combat.WolfHealth=[[GREEN]]Deze wolf heeft {0} levens +Combat.StruckByGore=[[RED]]**VAST DOOR GESTOLD BLOED** +Combat.Gore=[[GREEN]]**GESTOLD BLOED** +Combat.ArrowDeflect=[[WHITE]]**PIJL AFWIJKING** +Item.ChimaeraWingFail=**CHIMAERA WING MISLUKT\!** +Item.ChimaeraWingPass=**CHIMAERA WING** +Item.InjuredWait=Je bent gewond en moet wachten. [[YELLOW]]({0}s) +Item.NeedFeathers=[[GRAY]]Je hebt meer veren nodig.. +m.mccPartyCommands=[[GREEN]]--PARTY COMMANDOS-- +m.mccParty=[party name] [[RED]]- Maak/Join getypte party +m.mccPartyQ=[[RED]]- Verlaat je huidige party +m.mccPartyToggle=[[RED]] - Doe party chat aan/uit +m.mccPartyInvite=[player name] [[RED]]- Stuur een uitnodiging voor je party +m.mccPartyAccept=[[RED]]- Accepteer party uitnodiging +m.mccPartyTeleport=[party member name] [[RED]]- Teleporteer naar je party medelid +m.mccOtherCommands=[[GREEN]]--ANDERE COMMANDOS-- +m.mccStats=- Laat je levels zien +m.mccLeaderboards=- Topscores +m.mccMySpawn=- Teleporteer naar MySpawn +m.mccClearMySpawn=- Verwijder je MySpawn +m.mccToggleAbility=- Doe ability activatie aan/uit +m.mccAdminToggle=- Doe admin chat aan/uit +m.mccWhois=[playername] [[RED]]- Laat informatie zien over speler +m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Verander levels +m.mccMcGod=- God Modus +m.mccSkillInfo=[skillname] [[RED]]- Laat informatie zien over een skill +m.mccModDescription=[[RED]]- Lees MOD beschrijving +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]XP: [[WHITE]]{0} +m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} +m.AbilityLockTemplate=[[GRAY]]{0} +m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} +m.Effects=EFFECTEN +m.YourStats=JOUW STATUS +m.SkillTaming=TEMMEN +m.XPGainTaming=Wolven krijgen schade +m.EffectsTaming1_0=Wolfinspectie +m.EffectsTaming1_1=Bone-meal inspecteert wolven +m.EffectsTaming2_0=Gestold bloed +m.EffectsTaming2_1=Critical Strike zorgt voor bloedingen +m.EffectsTaming3_0=Scherpere klauwen +m.EffectsTaming3_1=Geeft meer schade +m.EffectsTaming4_0=Mileukennis +m.EffectsTaming4_1=Geen cactus/lava schade, geen falldamage +m.EffectsTaming5_0=Dikke huis +m.EffectsTaming5_1=Minder schade, kan tegen vuur +m.EffectsTaming6_0=Explosieschild +m.EffectsTaming6_1=Minder explosie schade +m.AbilLockTaming1=GEBLOKEERD TOT 100+ SKILL (MILIEUKENNIS) +m.AbilLockTaming2=GEBLOKEERD TOT 250+ SKILL (DIKKE HUIS) +m.AbilLockTaming3=GEBLOKEERD TOT 500+ SKILL (EXPLOSIESCHILD) +m.AbilLockTaming4=GEBLOKEERD TOT 750+ SKILL (SCHERPERE KLAUWEN) +m.AbilBonusTaming1_0=Milieukennis +m.AbilBonusTaming1_1=Wolven ontwijken gevaar (cactus, lava) +m.AbilBonusTaming2_0=Dikkere huid +m.AbilBonusTaming2_1=Halve schade, kan tegen vuur +m.AbilBonusTaming3_0=Explosieschild +m.AbilBonusTaming3_1=Explosies geven 1/6 van de normale schade +m.AbilBonusTaming4_0=Scherpere klauwen +m.AbilBonusTaming4_1=+2 Schade +m.TamingGoreChance=[[RED]]Kans op gestold bloed: [[YELLOW]]{0}% +m.SkillWoodCutting=HOUTHAKKEN +m.XPGainWoodCutting=Bomen omhakken +m.EffectsWoodCutting1_0=Tree Feller (ABILITY) +m.EffectsWoodCutting1_1=Laat bomen deels exploderen +m.EffectsWoodCutting2_0=Leaf Blower +m.EffectsWoodCutting2_1=Laat leaves verdwijnen +m.EffectsWoodCutting3_0=Dubbele Drop +m.EffectsWoodCutting3_1=Geeft een dubbele drop +m.AbilLockWoodCutting1=GEBLOKEERD TOT 100+ SKILL (LEAF BLOWER) +m.AbilBonusWoodCutting1_0=Leaf Blower +m.AbilBonusWoodCutting1_1=Laat leaves verdwijnen +m.WoodCuttingDoubleDropChance=[[RED]]Dubbele Drop kans: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller lengte: [[YELLOW]]{0}s +m.SkillArchery=BOOGSCHIETEN +m.XPGainArchery=Schiet op vijanden +m.EffectsArchery1_0=Brandende pijl +m.EffectsArchery1_1=25% kans dat een vijand verbrand +m.EffectsArchery2_0=Verdoof (Players) +m.EffectsArchery2_1=Gedesorienteerde vijanden +m.EffectsArchery3_0=Schade+ +m.EffectsArchery3_1=Verhoogt schade +m.EffectsArchery4_0=Pijlen terugkrijgen +m.EffectsArchery4_1=Kans dat dode vijanden pijlen droppen +m.ArcheryDazeChance=[[RED]]Kans op verdoving: [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Kans om pijlen terug te krijgen: [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Lengte van Brandende pijl: [[YELLOW]]{0} seconds +m.ArcheryDamagePlus=[[RED]]Schade+ (Rank{0}): [[YELLOW]]Bonus {0} schade +m.SkillAxes=BIJLEN +m.XPGainAxes=Val monsters aan met een bijl +m.EffectsAxes1_0=Schedelsplijter (ABILITY) +m.EffectsAxes1_1=Geef schade rond om je heen +m.EffectsAxes2_0=Critical Strikes +m.EffectsAxes2_1=Dubbele schade +m.EffectsAxes3_0=Bijl Master (500 SKILL) +m.EffectsAxes3_1=Verhoogt schade +m.AbilLockAxes1=GEBLOKEERD TOT 500+ SKILL (BIJL MASTER) +m.AbilBonusAxes1_0=Bijl Master +m.AbilBonusAxes1_1=4 schade extra +m.AxesCritChance=[[RED]]Kans op Critical Strikes: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Schedelsplijter lengte: [[YELLOW]]{0}s +m.SkillSwords=ZWAARDEN +m.XPGainSwords=Val monsters aan met een zwaard +m.EffectsSwords1_0=Terugkaats Aanval +m.EffectsSwords1_1=Kaats 50% van de schade terug +m.EffectsSwords2_0=Serrated Strikes (ABILITY) +m.EffectsSwords2_1=25% meer schade, kans op Bloeding+ om je heen +m.EffectsSwords3_0=Serrated Strikes Bloeding+ +m.EffectsSwords3_1=Kans op extra bloeding bij vijanden +m.EffectsSwords4_0=Pareren +m.EffectsSwords4_1=Blokkeer vijandelijke aanval +m.EffectsSwords5_0=5 Tikken van Bloeding +m.EffectsSwords5_1=Laat anderen bloeden +m.SwordsCounterAttChance=[[RED]]Kans op Terugkeer Aanval: [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Bloeding lengte: [[YELLOW]]{0} ticks +m.SwordsBleedChance=[[RED]]Kans op Bloeding: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Kans op Pareren: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Serrated Strikes lengte: [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 tik per 2 seconden +m.SkillAcrobatics=ACROBATIEK +m.XPGainAcrobatics=Vallen +m.EffectsAcrobatics1_0=Rollen +m.EffectsAcrobatics1_1=Verminderd of voorkomt schade +m.EffectsAcrobatics2_0=Perfecte Rol +m.EffectsAcrobatics2_1=Twee keer zo effectief als Rollen +m.EffectsAcrobatics3_0=Ontwijken +m.EffectsAcrobatics3_1=50% minder schade +m.AcrobaticsRollChance=[[RED]]Kans om te rollen: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Kans op Perfecte Rol: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Kans om te ontwijken: [[YELLOW]]{0}% +m.SkillMining=MIJNBOUW +m.XPGainMining=Hak steen & erts met een pickaxe +m.EffectsMining1_0=Super Breeker (ABILITY) +m.EffectsMining1_1=Hogere snelheid, Kans op 3x drop +m.EffectsMining2_0=Dubbele Drops +m.EffectsMining2_1=Dubbele van normale drop +m.MiningDoubleDropChance=[[RED]]Kans op Dubbele Drop: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Super Breeker lengte: [[YELLOW]]{0}s +m.SkillRepair=REPAREREN +m.XPGainRepair=Repareer tools en armor +m.EffectsRepair1_0=Repareer +m.EffectsRepair1_1=Repareer Iron Tools & Armor +m.EffectsRepair2_0=Repareer Master +m.EffectsRepair2_1=Vergroot de reparatiehoeveelheid +m.EffectsRepair3_0=Super Repareren +m.EffectsRepair3_1=Dubbel effectief +m.EffectsRepair4_0=Diamond Repareren ({0}+ SKILL) +m.EffectsRepair4_1=Repareer Diamond Tools & Armor +m.RepairRepairMastery=[[RED]]Repareer Master: [[YELLOW]]Extra {0}% durability restored +m.RepairSuperRepairChance=[[RED]]Kans op Super Repareren: [[YELLOW]]{0}% +m.SkillUnarmed=ONBEWAPEND +m.XPGainUnarmed=Val monsters aan met hand +m.EffectsUnarmed1_0=Onbewapende gek (ABILITY) +m.EffectsUnarmed1_1=+50% schade, hak zachte materialen weg +m.EffectsUnarmed2_0=Ontwapen (Players) +m.EffectsUnarmed2_1=Dropt het wapen van de vijand +m.EffectsUnarmed3_0=Onbewapende held +m.EffectsUnarmed3_1=Nog meer schade +m.EffectsUnarmed4_0=Onbewapende leerling +m.EffectsUnarmed4_1=Meer schade +m.EffectsUnarmed5_0=Pijlafwijking +m.EffectsUnarmed5_1=Laat pijlen afwijken +m.AbilLockUnarmed1=GEBLOKEERD TOT 250+ SKILL (Onbewapende leerling) +m.AbilLockUnarmed2=GEBLOKEERD TOT 500+ SKILL (Onbewapende held) +m.AbilBonusUnarmed1_0=Onbewapende leerling +m.AbilBonusUnarmed1_1=+2 meer schade +m.AbilBonusUnarmed2_0=Onbewapende held +m.AbilBonusUnarmed2_1=+4 meer schade +m.UnarmedArrowDeflectChance=[[RED]]Kans op Pijlafwijking: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Kans op Ontwapening: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Lengte van Onbewapende gek: [[YELLOW]]{0}s +m.SkillHerbalism=LANDBOUW +m.XPGainHerbalism=Verzamel kruiden en planten +m.EffectsHerbalism1_0=Groene Aarde (ABILITY) +m.EffectsHerbalism1_1=3x meer XP en kans op 3x drop +m.EffectsHerbalism2_0=Groene vingers (Wheat) +m.EffectsHerbalism2_1=Plant wheat bij het oogsten +m.EffectsHerbalism3_0=Groene vingers (Cobble) +m.EffectsHerbalism3_1=Maakt van cobblestone moss-stone met seeds +m.EffectsHerbalism4_0=Voedsel+ +m.EffectsHerbalism4_1=Verhoogt de heling van brood en stews +m.EffectsHerbalism5_0=Dubbele Drop (Alle planten) +m.EffectsHerbalism5_1=Dubbele drop van planten +m.HerbalismGreenTerraLength=[[RED]]Groene Aarde lengte: [[YELLOW]]{0}s +m.HerbalismGreenThumbChance=[[RED]]Kans op Groene vingers: [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Groene vingers periode: [[YELLOW]] Wheat groeit in periode {0} +m.HerbalismDoubleDropChance=[[RED]]Kans op Dubbele Drop: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Voedsel+ (Rank{0}): [[YELLOW]]Bonus {0} heling +m.SkillExcavation=UITGRAVING +m.XPGainExcavation=Graven +m.EffectsExcavation1_0=Giga Drilboor (ABILITY) +m.EffectsExcavation1_1=3x drop, 3x XP, hogere snelheid +m.EffectsExcavation2_0=Schatzoeker +m.EffectsExcavation2_1=Mogelijkheid om schatten te zoeken +m.ExcavationGreenTerraLength=[[RED]]Giga Drilboor lengte: [[YELLOW]]{0}s +mcBlockListener.PlacedAnvil=[[DARK_RED]]Je hebt een aambeeld geplaatst. Hierop kun je tools en armor repareren. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]Je wolf dribbelt terug naar je... +mcPlayerListener.AbilitiesOff=Ability activatie is uit +mcPlayerListener.AbilitiesOn=Ability activatie is aan +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES HERLADEN\!** +mcPlayerListener.AcrobaticsSkill=Acrobatiek: +mcPlayerListener.ArcherySkill=Boogschieten: +mcPlayerListener.AxesSkill=Bijlen: +mcPlayerListener.ExcavationSkill=Uitgraving: +mcPlayerListener.GodModeDisabled=[[YELLOW]]Godmodus uitgeschakeld +mcPlayerListener.GodModeEnabled=[[YELLOW]]Godmodus ingeschakeld +mcPlayerListener.GreenThumb=[[GREEN]]**GROENE VINGERS** +mcPlayerListener.GreenThumbFail=[[RED]]**GROENE VINNGERS MISLUKT** +mcPlayerListener.HerbalismSkill=Landbouw: +mcPlayerListener.MiningSkill=Mijnbouw: +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn is verwijderd. +mcPlayerListener.MyspawnNotExist=[[RED]]Plaats Myspawn eerst door op een bed te drukken. +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn is geplaatst op je huidige locatie. +mcPlayerListener.MyspawnTimeNotice=Je moet {0}m {1}s wachten voordat je myspawn kan gebruiken. +mcPlayerListener.NoPermission=Je hebt geen permissie. +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Als je geen toegang hebt tot een skill wordt hij hier niet weergegeven. +mcPlayerListener.NotInParty=[[RED]]Je zit niet in een party. +mcPlayerListener.InviteSuccess=[[GREEN]]Uitnodiging succesvol verzonden. +mcPlayerListener.ReceivedInvite1=[[RED]]BERICHT: [[GREEN]]Je bent uitgenodigd voor de party {0} door {1} +mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] om de uitnodiging te accepteren. +mcPlayerListener.InviteAccepted=[[GREEN]]Uitnodiging geaccepteerd. Je bent nu lid van {0} +mcPlayerListener.NoInvites=[[RED]]Je hebt geen uitnodigingen +mcPlayerListener.YouAreInParty=[[GREEN]]Je zit in de party {0} +mcPlayerListener.PartyMembers=[[GREEN]]Party Leden +mcPlayerListener.LeftParty=[[RED]]Je hebt de party verlaten +mcPlayerListener.JoinedParty=Lid geworden van: {0} +mcPlayerListener.PartyChatOn=Alleen Party Chat [[GREEN]]aan +mcPlayerListener.PartyChatOff=Alleen Party Chat [[RED]]uit +mcPlayerListener.AdminChatOn=Alleen Admin Chat [[GREEN]]aan +mcPlayerListener.AdminChatOff=Alleen Admin Chat [[RED]]uit +mcPlayerListener.MOTD=[[BLUE]]Deze server werkt op mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] voor hulp. +mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki +mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: +mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Highscore-- +mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Highscore-- +mcPlayerListener.RepairSkill=Repareren: +mcPlayerListener.SwordsSkill=Zwaarden: +mcPlayerListener.TamingSkill=Temmen: +mcPlayerListener.UnarmedSkill=Onbewapend: +mcPlayerListener.WoodcuttingSkill=Houthakken: +mcPlayerListener.YourStats=[[GREEN]][mcMMO] Status +Party.InformedOnJoin={0} [[GREEN]] heeft je party gejoined +Party.InformedOnQuit={0} [[GREEN]] heeft je party verlaten +Skills.YourGreenTerra=[[GREEN]]Je [[YELLOW]]Groene Aarde [[GREEN]]ability is opgeladen! +Skills.YourTreeFeller=[[GREEN]]Je [[YELLOW]]Tree Feller [[GREEN]]ability is opgeladen! +Skills.YourSuperBreaker=[[GREEN]]Je [[YELLOW]]Super Breeker [[GREEN]]ability is opgeladen! +Skills.YourSerratedStrikes=[[GREEN]]Je [[YELLOW]]Serrated Strikes [[GREEN]]ability is opgeladen! +Skills.YourBerserk=[[GREEN]]Je [[YELLOW]]Onbewapende gek [[GREEN]]ability is opgeladen! +Skills.YourSkullSplitter=[[GREEN]]Je [[YELLOW]]Schedelsplijter [[GREEN]]ability is opgeladen! +Skills.YourGigaDrillBreaker=[[GREEN]]Je [[YELLOW]]Giga Drilboor [[GREEN]]ability is opgeladen! +Skills.TooTired=[[RED]]Je bent te moe om die ability te gebruiken. +Skills.ReadyHoe=[[GREEN]]**JE TILT JE SCHOFFEL OP** +Skills.LowerHoe=[[GRAY]]**JE LAAT JE SCHOFFEL ZAKKEN** +Skills.ReadyAxe=[[GREEN]]**JE TILT JE BIJL OP** +Skills.LowerAxe=[[GRAY]]**JE LAAT JE BIJL ZAKKEN** +Skills.ReadyFists=[[GREEN]]**JE BALT JE VUISTEN** +Skills.LowerFists=[[GRAY]]**JE LAAT JE VUISTEN ZAKKEN** +Skills.ReadyPickAxe=[[GREEN]]**JE TILT JE PICKAXE OP** +Skills.LowerPickAxe=[[GRAY]]**JE LAAT JE PICKAXE ZAKKEN** +Skills.ReadyShovel=[[GREEN]]**JE TILT JE SCHEP OP** +Skills.LowerShovel=[[GRAY]]**JE LAAT JE SCHEP ZAKKEN** +Skills.ReadySword=[[GREEN]]**JE TILT JE ZWAARD OP** +Skills.LowerSword=[[GRAY]]**JE LAAT JE ZWAARD ZAKKEN** +Skills.BerserkOn=[[GREEN]]**ONBEWAPENDE GEK GEACTIVEERD** +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Onbewapende gek! +Skills.GreenTerraOn=[[GREEN]]**GROENE AARDE GEACTIVEERD** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Groene Aarde! +Skills.TreeFellerOn=[[GREEN]]**TREE FELLER GEACTIVEERD** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Tree Feller! +Skills.SuperBreakerOn=[[GREEN]]**SUPER BREEKER GEACTIVEERD** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Super Breeker! +Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES GEACTIVEERD** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Serrated Strikes! +Skills.SkullSplitterOn=[[GREEN]]**SCHEDELSPLIJTER GEACTIVEERD** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Schedelsplijter! +Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILBOOR GEACTIVEERD** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] gebruikt [[RED]]Giga Drilboor! +Skills.GreenTerraOff=[[RED]]**Groene Aarde is uitgewerkt** +Skills.TreeFellerOff=[[RED]]**Tree Feller is uitgewerkt** +Skills.SuperBreakerOff=[[RED]]**Super Breeker is uitgewerkt** +Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes is uitgewerkt** +Skills.BerserkOff=[[RED]]**Onbewapende gek is uitgewerkt** +Skills.SkullSplitterOff=[[RED]]**Schedelsplijter is uitgewerkt** +Skills.GigaDrillBreakerOff=[[RED]]**Giga Drilboor is uitgewerkt** +Skills.TamingUp=[[YELLOW]]Temmen skill verhoogt met {0}. Totaal ({1}) +Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill verhoogt met {0}. Total ({1}) +Skills.ArcheryUp=[[YELLOW]]Boogschieten skill verhoogt met {0}. Totaal ({1}) +Skills.SwordsUp=[[YELLOW]]Zwaarden skill verhoogt met {0}. Totaal ({1}) +Skills.AxesUp=[[YELLOW]]Bijlen skill verhoogt met {0}. Totaal ({1}) +Skills.UnarmedUp=[[YELLOW]]Onbewapend skill verhoogt met {0}. Totaal ({1}) +Skills.HerbalismUp=[[YELLOW]]Landbouw skill verhoogt met {0}. Totaal ({1}) +Skills.MiningUp=[[YELLOW]]Mijnbouw skill verhoogt met {0}. Totaal ({1}) +Skills.WoodcuttingUp=[[YELLOW]]Houthakken skill verhoogt met {0}. Totaal ({1}) +Skills.RepairUp=[[YELLOW]]Repareren skill verhoogt met {0}. Totaal ({1}) +Skills.ExcavationUp=[[YELLOW]]Uitgraven skill verhoogt met {0}. Totaal ({1}) +Skills.FeltEasy=[[GRAY]]Dat was makkelijk. +Skills.StackedItems=[[DARK_RED]]Je kan geen gestackte items repareren +Skills.NeedMore=[[DARK_RED]]Je hebt te weinig +Skills.AdeptDiamond=[[DARK_RED]]Je bent niet goed genoeg om diamond te repareren. +Skills.FullDurability=[[GRAY]]Dat is nog helemaal heel. +Skills.Disarmed=[[DARK_RED]]Je bent ontwapend! +mcPlayerListener.SorcerySkill=Tovenarij: +m.SkillSorcery=TOVERNARIJ +Sorcery.HasCast=[[GREEN]]**UITROEPEN VAN**[[GOLD]] +Sorcery.Current_Mana=[[DARK_AQUA]]MP +Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) +Sorcery.Cost=[[RED]][COST] {0} MP +Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Geen Mana meer [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) +Sorcery.Water.Thunder=DONDER +Sorcery.Curative.Self=HEEL JEZELF +Sorcery.Curative.Other=HEEL EEN ANDER +m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) +Combat.BeastLore=[[GREEN]]**WOLFINSPECTIE** +Combat.BeastLoreOwner=[[DARK_AQUA]]Eigenaar ([[RED]]{0}[[DARK_AQUA]]) +Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Levens ([[GREEN]]{0}[[DARK_AQUA]]/20) +Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Levens ([[GREEN]]{0}[[DARK_AQUA]]/8) +mcMMO.Description=[[DARK_AQUA]]Q: WHAT IS IT?,[[GOLD]]mcMMO is an [[RED]]OPEN SOURCE[[GOLD]] RPG mod for Bukkit by [[BLUE]]nossr50,[[GOLD]]There are many skills added by mcMMO to Minecraft.,[[GOLD]]You can gain experience in many different ways,[[GOLD]]You will want to type [[GREEN]]/SKILLNAME[[GOLD]] to find out more about a skill.,[[DARK_AQUA]]Q: WHAT DOES IT DO?,[[GOLD]]As an example... in [[DARK_AQUA]]Mining[[GOLD]] you will receive benefits like,[[RED]]Double Drops[[GOLD]] or the ability [[RED]]Super Breaker[[GOLD]] which when,[[GOLD]]activated by right-click allows fast Mining during its duration,[[GOLD]]which is related to your skill level. Leveling [[BLUE]]Mining,[[GOLD]]is as simple as mining precious materials!,[[DARK_AQUA]]Q: WHAT DOES THIS MEAN?,[[GOLD]]Almost all of the skills in [[GREEN]]mcMMO[[GOLD]] add cool new things!.,[[GOLD]]You can also type [[GREEN]]/{0}[[GOLD]] to find out commands,[[GOLD]]The goal of mcMMO is to provide a quality RPG experience.,[[DARK_AQUA]]Q: WHERE DO I SUGGEST NEW STUFF!?,[[GOLD]]On the mcMMO thread in the bukkit forums!,[[DARK_AQUA]]Q: HOW DO I DO THIS AND THAT?,[[RED]]PLEASE [[GOLD]]checkout the wiki! [[DARK_AQUA]]mcmmo.wikia.com +Party.Locked=[[RED]]Party is locked, only party leader may invite. +Party.IsntLocked=[[GRAY]]Party is not locked +Party.Unlocked=[[GRAY]]Party is unlocked +Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]][[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit +Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]] +Party.Help3=[[RED]]Consult /{0} ? for more information +Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit +Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock +Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock +Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password +Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick +Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner +Party.NotOwner=[[DARK_RED]]You are not the party owner +Party.InvalidName=[[DARK_RED]]That is not a valid party name +Party.PasswordSet=[[GREEN]]Party password set to {0} +Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} +Party.NotInYourParty=[[DARK_RED]]{0} is not in your party +Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} +Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] +Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal +Commands.xprate.proper3=[[RED]]Enter true or false for the second value +Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! +Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! +Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! +Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! +Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! +Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining +m.SkillAlchemy=ALCHEMY +m.SkillEnchanting=ENCHANTING +m.SkillFishing=FISHING +mcPlayerListener.AlchemySkill=Alchemy: +mcPlayerListener.EnchantingSkill=Enchanting: +mcPlayerListener.FishingSkill=Fishing: +Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) +Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) +Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) +Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. +Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. +Repair.Downgraded=[[RED]]Arcane power has decreased for this item. +Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. +m.EffectsRepair5_0=Arcane Forging +m.EffectsRepair5_1=Repair magic items +m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 +m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% +m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% +m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, +m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ +Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.ItemFound=[[GRAY]]Treasure found! +m.SkillFishing=FISHING +m.XPGainFishing=Fishing (Go figure!) +m.EffectsFishing1_0=Treasure Hunter (Passive) +m.EffectsFishing1_1=Fish up misc objects +m.EffectsFishing2_0=Magic Hunter +m.EffectsFishing2_1=Find Enchanted Items +m.EffectsFishing3_0=Shake (vs. Entities) +m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole +m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 +m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** +m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; +m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) +m.TamingSummon=[[GREEN]]Summoning complete +m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. +m.EffectsTaming7_0=Call of the Wild +m.EffectsTaming7_1=Summon a wolf to your side m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand \ No newline at end of file diff --git a/src/com/gmail/nossr50/locale/locale_pl.properties b/src/main/java/com/gmail/nossr50/locale/locale_pl.properties similarity index 98% rename from src/com/gmail/nossr50/locale/locale_pl.properties rename to src/main/java/com/gmail/nossr50/locale/locale_pl.properties index d4cafca5e..d54dc7cad 100644 --- a/src/com/gmail/nossr50/locale/locale_pl.properties +++ b/src/main/java/com/gmail/nossr50/locale/locale_pl.properties @@ -1,390 +1,390 @@ -Combat.WolfExamine=[[GREEN]]**Zbadales wilka uzywajac wiedzy o zwierzetach** -Combat.WolfShowMaster=[[DARK_GREEN]]Wlascicielem wilka jest \: {0} -Combat.Ignition=[[RED]]**PODPALENIE** -Combat.BurningArrowHit=[[DARK_RED]]Zostales trafiony plonaca strzala\! -Combat.TouchedFuzzy=[[DARK_RED]]Zostales oszolomiony. -Combat.TargetDazed=Cel zostal [[DARK_RED]]oszolomiony. -Combat.WolfNoMaster=[[GRAY]]Ten wilk nie ma wlasciciela... -Combat.WolfHealth=[[GREEN]]Ten wilk ma {0} zycia. -Combat.StruckByGore=[[RED]]**WYKRWAWIENIE** -Combat.Gore=[[GREEN]]**KRWOTOK** -Combat.ArrowDeflect=[[WHITE]]**ODBICIE STRZALY** -Item.ChimaeraWingFail=**UZYCIE SKRZYDLA CHIMERY NIE POWIODLO SIE\!** -Item.ChimaeraWingPass=**UZYLES SKRZYDLA CHIMERY** -Item.InjuredWait=Zostales ranny. Musisz poczekac [[YELLOW]]{0}[[WHITE]] sekund przed uzyciem. -Item.NeedFeathers=[[GRAY]]Potrzebujesz wiecej pior. -m.mccPartyCommands=[[GREEN]]--KOMENDY DRUZYNOWE-- -m.mccParty=[party name] [[RED]]- Tworzy lub dolacza do danej druzyny. -m.mccPartyQ=[[RED]]- Pozwala opuscic druzyne. -m.mccPartyToggle=[[RED]] - Wlacza chat druzynowy. -m.mccPartyInvite=[player name] [[RED]]- Wysyla zaproszenie do druzyny. -m.mccPartyAccept=[[RED]]- Akceptuje zaproszenie do druzyny. -m.mccPartyTeleport=[imie czlonka druzyny] [[RED]]- Teleportuje cie do czlonka druzyny. -m.mccOtherCommands=[[GREEN]]--INNE KOMENDY-- -m.mccStats=- Pokazuje twoje statystyki. -m.mccLeaderboards=- Pokazuje najlepszych graczy. -m.mccMySpawn=- Teleportuje do twojego spawna. -m.mccClearMySpawn=- Kasuje twoj spawn i zmienia na domyslny. -m.mccToggleAbility=- Wlacza specjalna umiejetnosc prawym przyciskiem myszy. -m.mccAdminToggle=- Wlacza chat adminow. -m.mccWhois=[nazwa gracza] [[RED]]- Zobacz szczegolowe informacje o graczu. -m.mccMmoedit=[nazwa gracza] [umiejetnosc] [nowa wartosc] [[RED]]- Modyfikuje cel. -m.mccMcGod=- Niesmiertelnosc. -m.mccSkillInfo=/[nazwa umiejetnosci (np. Mining)] [[RED]]- Wyswietla informacje na temat umiejetnosci. -m.mccModDescription=[[RED]]- Wyswietla opis moda. -m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- -m.XPGain=[[DARK_GRAY]]Dostajesz doswiadczenie za: [[WHITE]]{0} -m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} -m.AbilityLockTemplate=[[GRAY]]{0} -m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} -m.Effects=EFEKTY -m.YourStats=TWOJE STATYSTYKI -m.SkillTaming=OSWAJANIE -m.XPGainTaming=Utrate zdrowia wilkow. -m.EffectsTaming1_0=Wiedza o zwierzetach -m.EffectsTaming1_1=Uderz koscia aby sprawdzic wilka. -m.EffectsTaming2_0=Krwotok -m.EffectsTaming2_1=Atak krytyczny powodujacy silny krwotok. -m.EffectsTaming3_0=Ostre pazury -m.EffectsTaming3_1=Zwiekszenie obrazen. -m.EffectsTaming4_0=Sztuka przetrwania -m.EffectsTaming4_1=Unikanie kaktusow i lawy. Zawsze spada na 4 lapy. -m.EffectsTaming5_0=Grube futro -m.EffectsTaming5_1=Wieksza odpornosc na obrazenia i ogien. -m.EffectsTaming6_0=Odpornosc na eksplozje -m.EffectsTaming6_1=Wieksza odpornosc na obrazenia od wybuchow. -m.AbilLockTaming1=Aby odblokowac sztuke przetrwania, zdobadz 100 poziom. -m.AbilLockTaming2=Aby odblokowac grube futro, zdobadz 250 poziom. -m.AbilLockTaming3=Aby odblokowac odpornosc na eksplozje, zdobadz 500 poziom. -m.AbilLockTaming4=Aby odblokowac ostre pazury, zdobadz 750 poziom. -m.AbilBonusTaming1_0=Sztuka przetrwania -m.AbilBonusTaming1_1=Wilki unikaja zagrozen. -m.AbilBonusTaming2_0=Grube futro -m.AbilBonusTaming2_1=Obrazenia ogolne i od ognia zmniejszone do polowy. -m.AbilBonusTaming3_0=Odpornosc na eksplozje -m.AbilBonusTaming3_1=Wybuchy zadaja 1/6 obrazen. -m.AbilBonusTaming4_0=Ostre pazury -m.AbilBonusTaming4_1=+2 do obrazen -m.TamingGoreChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0}% -m.SkillWoodCutting=DRWALNICTWO -m.XPGainWoodCutting=Scinanie drzew -m.EffectsWoodCutting1_0=Powalacz drzew (UMIEJETNOSC) -m.EffectsWoodCutting1_1=Blyskawicznie scina drzewa. -m.EffectsWoodCutting2_0=Zdmuchiwacz lisci -m.EffectsWoodCutting2_1=Zdmuchuje wszystkie liscie. -m.EffectsWoodCutting3_0=Fachowa wycinka -m.EffectsWoodCutting3_1=Pozyskujesz dwa razy wiecej drewna z jednego drzewa. Nic sie nie zmarnuje. -m.AbilLockWoodCutting1=Aby odblokowac zdmuchiwacza lisci, zdobadz 100 poziom. -m.AbilBonusWoodCutting1_0=Zdmuchiwacz lisci -m.AbilBonusWoodCutting1_1=Zdmuchuje wszystkie liscie. -m.WoodCuttingDoubleDropChance=[[RED]]Szansa na fachowa wycinke: [[YELLOW]]{0}% -m.WoodCuttingTreeFellerLength=[[RED]]Czas trwania powalacza drzew: [[YELLOW]]{0} sekund -m.SkillArchery=LUCZNICTWO -m.XPGainArchery=Atakowanie potworow przy uzyciu luku. -m.EffectsArchery1_0=Podpalenie -m.EffectsArchery1_1=25% szansa na podpalenie wroga. -m.EffectsArchery2_0=Oszolomienie(Tylko na graczy) -m.EffectsArchery2_1=Dezorientuje przeciwnika. -m.EffectsArchery3_0=Wieksze obrazenia -m.EffectsArchery3_1=Zwieksza obrazenia zadawane lukiem. -m.EffectsArchery4_0=Odzyskiwanie strzal -m.EffectsArchery4_1=Szansa na odzyskanie strzal z cial wrogow. -m.ArcheryDazeChance=[[RED]]Szansa na oszolomienie: [[YELLOW]]{0}% -m.ArcheryRetrieveChance=[[RED]]Szansa na odzyskanie strzal: [[YELLOW]]{0}% -m.ArcheryIgnitionLength=[[RED]]Dlugosc podpalenia: [[YELLOW]]{0} sekund -m.ArcheryDamagePlus=[[RED]]Wieksze obrazenia (Rank{0}): [[YELLOW]]Obrazenia zwiekszone o {0} -m.SkillAxes=TOPORY -m.XPGainAxes=Atakowanie potworow przy uzyciu toporow. -m.EffectsAxes1_0=Berserk (UMIEJETNOSC) -m.EffectsAxes1_1=Zadaje obrazenia wszystkiemu dookola. -m.EffectsAxes2_0=Krytyczne uderzenie -m.EffectsAxes2_1=Potrafisz trafic wroga tam gdzie boli, zadajac podwojne obrazenia. -m.EffectsAxes3_0=Doswiadczony wojownik -m.EffectsAxes3_1=Mordowanie setek potworow zwiekszylo twoja sile i celnosc. Zadajesz wiecej obrazen. -m.AbilLockAxes1=Aby odblokowac doswiadczonego wojownika, zdobadz 500 poziom. -m.AbilBonusAxes1_0=Doswiadczony wojownik -m.AbilBonusAxes1_1=Zadajesz dodatkowe 4 punkty obrazen. -m.AxesCritChance=[[RED]]Szansa na krytyczne uderzenie: [[YELLOW]]{0}% -m.AxesSkullLength=[[RED]]Dlugosc berserku: [[YELLOW]]{0} sekund -m.SkillSwords=MIECZE -m.XPGainSwords=Atakowanie potworow przy uzyciu mieczy. -m.EffectsSwords1_0=Kontratak -m.EffectsSwords1_1=Nikt bezkarnie cie nie zrani. Oddajesz przeciwnikowi 50% otrzymanych obrazen. -m.EffectsSwords2_0=Furia ostrzy (UMIEJETNOSC) -m.EffectsSwords2_1=25% obrazen obszarowych powodujacych krwotok. -m.EffectsSwords3_0=Krwawa furia ostrzy -m.EffectsSwords3_1=Celujesz w zyly i tetnice, pododujac jak najwiecej ran. -m.EffectsSwords4_0=Blok -m.EffectsSwords4_1=Calkowicie blokujesz cios. -m.EffectsSwords5_0=Krwotok -m.EffectsSwords5_1=Powoduje krwawiace otwarte rany. -m.SwordsCounterAttChance=[[RED]]Szansa na kontratak: [[YELLOW]]{0}% -m.SwordsBleedLength=[[RED]]Rany zadawane krwotokiem: [[YELLOW]]{0} ran. -m.SwordsBleedChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0} % -m.SwordsParryChance=[[RED]]Szansa na blok: [[YELLOW]]{0} % -m.SwordsSSLength=[[RED]]Dlugosc furii ostrzy: [[YELLOW]]{0} sekund -m.SwordsTickNote=[[GRAY]]UWAGA: [[YELLOW]]1 rana goi sie co 2 sekundy. -m.SkillAcrobatics=AKROBATYKA -m.XPGainAcrobatics=Spadanie -m.EffectsAcrobatics1_0=Przewrot -m.EffectsAcrobatics1_1=Zmniejsza badz niweluje obrazenia. -m.EffectsAcrobatics2_0=Idealny przewrot -m.EffectsAcrobatics2_1=Dwa razy skuteczniejszy od normalnego. -m.EffectsAcrobatics3_0=Unik -m.EffectsAcrobatics3_1=Redukuje obrazenia o polowe. -m.AcrobaticsRollChance=[[RED]]Szansa na przewrot: [[YELLOW]]{0}% -m.AcrobaticsGracefulRollChance=[[RED]]Szansa na idealny przewrot: [[YELLOW]]{0}% -m.AcrobaticsDodgeChance=[[RED]]Szansa na unik: [[YELLOW]]{0}% -m.SkillMining=GORNICTWO -m.XPGainMining=Wykopywanie kamienia i roznych rud. -m.EffectsMining1_0=Super kopacz (UMIEJETNOSC) -m.EffectsMining1_1=Kopiesz sybciej i marnujesz trzy razy mniej rudy. -m.EffectsMining2_0=Fachowy wykop -m.EffectsMining2_1=Pozyskujesz dwa razy wiecej rudy. Nic sie nie marnuje. -m.MiningDoubleDropChance=[[RED]]Szansa na fachowy wykop: [[YELLOW]]{0}% -m.MiningSuperBreakerLength=[[RED]]Dlugosc super kopania: [[YELLOW]]{0} sekund -m.SkillRepair=NAPRAWA -m.XPGainRepair=Naprawianie przedmiotow. -m.EffectsRepair1_0=Naprawa -m.EffectsRepair1_1=Naprawianie zelaznych przedmiotow. -m.EffectsRepair2_0=Mistrz naprawy -m.EffectsRepair2_1=Zwiekszona liczba napraw. -m.EffectsRepair3_0=Fachowa naprawa -m.EffectsRepair3_1=Naprawiles przedmiot dwa razy lepiej niz zwykle. -m.EffectsRepair4_0=Diamentowa odnowa ({0}+ UMIEJETNOSC) -m.EffectsRepair4_1=Naprawia diamentowe przedmioty. -m.RepairRepairMastery=[[RED]]Mistrz naprawy: [[YELLOW]]Dodatkowe {0}% wytrzymalosci odzyskane. -m.RepairSuperRepairChance=[[RED]]Szansa na fachowa naprawe: [[YELLOW]]{0}% -m.SkillUnarmed=KUNG-FU -m.XPGainUnarmed=Atakowanie potworow bez broni. -m.EffectsUnarmed1_0=Wejscie Smoka (UMIEJETNOSC) -m.EffectsUnarmed1_1=Polowe wieksze obrazenia, niszczy slabe przedmioty. -m.EffectsUnarmed2_0=Rozbrojenie (Tylko graczy) -m.EffectsUnarmed2_1=Przeciwnik upuszcza trzymany w reku przedmiot. -m.EffectsUnarmed3_0=Wsciekle Piesci -m.EffectsUnarmed3_1=Znaczne zwiekszenie zadawanych obrazen. -m.EffectsUnarmed4_0=Droga Smoka -m.EffectsUnarmed4_1=Zwiekszenie zadawanych obrazen. -m.EffectsUnarmed5_0=Odbicie strzaly -m.EffectsUnarmed5_1=Golymi rekoma potrafisz odbic nadlatujaca strzale. -m.AbilLockUnarmed1=Aby odblokowac Droge Smoka, zdobadz 250 poziom. -m.AbilLockUnarmed2=Aby odblokowac Wsciekle Piesci, zdobadz 500 poziom. -m.AbilBonusUnarmed1_0=Droga Smoka -m.AbilBonusUnarmed1_1=Zadawane obrazenia zwiekszone o 2. -m.AbilBonusUnarmed2_0=Wsciekle Piesci -m.AbilBonusUnarmed2_1=Zadawane obrazenia zwiekszone o 4. -m.UnarmedArrowDeflectChance=[[RED]]Szansa na odbicie strzaly: [[YELLOW]]{0}% -m.UnarmedDisarmChance=[[RED]]Szansa na rozbrojenie: [[YELLOW]]{0}% -m.UnarmedBerserkLength=[[RED]]Dlugosc Wejscia Smoka: [[YELLOW]]{0} sekund. -m.SkillHerbalism=ZIELARSTWO -m.XPGainHerbalism=Zbieranie ziol. -m.EffectsHerbalism1_0=Zielona ziemia (UMIEJETNOSC) -m.EffectsHerbalism1_1=Rozprzestrzenia ziemie, potraja plony. -m.EffectsHerbalism2_0=Wprawne rece (zboze) -m.EffectsHerbalism2_1=Zbierajac zboze, od razu sadzisz nasiona. -m.EffectsHerbalism3_0=Wprawne rece (bruk) -m.EffectsHerbalism3_1=Zamienia bruk w porosniety mchem kamien z nasionami. -m.EffectsHerbalism4_0=Lepsze jedzenie -m.EffectsHerbalism4_1=Modyfikowana genetycznie zywnosc jest zdrowsza. Chleb i zupa chlebowa regeneruja wiecej zdrowia. -m.EffectsHerbalism5_0=Udane zbiory -m.EffectsHerbalism5_1=Dwa razy wieksze plony wszystkich roslin. -m.HerbalismGreenTerraLength=[[RED]]Czas trwania zielonej ziemi: [[YELLOW]]{0} sekund -m.HerbalismGreenThumbChance=[[RED]]Szansa na wprawne rece: [[YELLOW]]{0}% -m.HerbalismGreenThumbStage=[[RED]]Poziom wprawnych rak: [[YELLOW]] Zboze rosnie na poziomie {0} -m.HerbalismDoubleDropChance=[[RED]]Szansa na udane zbiory: [[YELLOW]]{0}% -m.HerbalismFoodPlus=[[RED]]Lepsze jedzenie (Ranga{0}): [[YELLOW]]Dodatkowe {0} zdrowia -m.SkillExcavation=WYKOPALISKA -m.XPGainExcavation=Kopanie i odnajdywanie skarbow. -m.EffectsExcavation1_0=Super Szybka Saperka (UMIEJETNOSC) -m.EffectsExcavation1_1=Zwiekszona szybkosc kopania i trzykrotnie wiekszy urobek i zdobyte doswiadczenie. -m.EffectsExcavation2_0=Lowca Skarbow -m.EffectsExcavation2_1=Umiejetnosc znajdywania skarbow -m.ExcavationGreenTerraLength=[[RED]]Czas trwania Super Szybkiej Saperki: [[YELLOW]]{0} sekund. -mcBlockListener.PlacedAnvil=[[DARK_RED]]Polozyles kowadlo, ktore pozwala na naprawe przedmiotow. -mcEntityListener.WolfComesBack=[[DARK_GRAY]]Twoj wilk przybiega z powrotem. -mcPlayerListener.AbilitiesOff=Uzywanie umiejetnosci wylaczone -mcPlayerListener.AbilitiesOn=Uzywanie umiejetnosci wlaczone -mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**UMIEJETNOSCI ODSWIEZONE\!** -mcPlayerListener.AcrobaticsSkill=Akrobatyka: -mcPlayerListener.ArcherySkill=Lucznictwo: -mcPlayerListener.AxesSkill=Topory: -mcPlayerListener.ExcavationSkill=Wykopaliska: -mcPlayerListener.GodModeDisabled=[[YELLOW]]Niesmiertelnosc wylaczona -mcPlayerListener.GodModeEnabled=[[YELLOW]]Niesmiertelnosc wlaczona -mcPlayerListener.GreenThumb=[[GREEN]]**UZYLES ZIELONEJ ZIEMI** -mcPlayerListener.GreenThumbFail=[[RED]]**UZYWANIE ZIELONEJ ZIEMI NIE POWIODLO SIE** -mcPlayerListener.HerbalismSkill=Zielarstwo: -mcPlayerListener.MiningSkill=Gornictwo: -mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Twoj spawn zostal usuniety. -mcPlayerListener.MyspawnNotExist=[[RED]]Musisz ustawic swoj spawn za pomoca lozka. -mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Twoj spawn zostal ustawiony na twoje aktualne polozenie. -mcPlayerListener.MyspawnTimeNotice=Musisz zaczekac {0} minut i {1} sekund aby przeteleportowac sie na spawn. -mcPlayerListener.NoPermission=Brak mcPermissions. -mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Umiejetnosci, ktorych nie mozesz uzyc nie sa wyswietlane. -mcPlayerListener.NotInParty=[[RED]]Nie jestes w grupie. -mcPlayerListener.InviteSuccess=[[GREEN]]Zaproszenie wyslane. -mcPlayerListener.ReceivedInvite1=[[RED]]UWAGA: [[GREEN]]Dostales zaproszenie do grupy {0} od {1}. -mcPlayerListener.ReceivedInvite2=[[YELLOW]Wpisz [[GREEN]]/{0}[[YELLOW]] aby zaakceptowac zaproszenie. -mcPlayerListener.InviteAccepted=[[GREEN]]Zaproszenie akceptowane. Doszles do grupy {0}. -mcPlayerListener.NoInvites=[[RED]]Nie masz zaproszen do zadnej grupy. -mcPlayerListener.YouAreInParty=[[GREEN]]Jestes w grupie {0}. -mcPlayerListener.PartyMembers=[[GREEN]]Czlonkowie grupy -mcPlayerListener.LeftParty=[[RED]]Wyszles z tej grupy. -mcPlayerListener.JoinedParty=Doszedles do grupy: {0} -mcPlayerListener.PartyChatOn=Chat tylko dla grupy [[GREEN]]WLACZONY -mcPlayerListener.PartyChatOff=Chat tylko dla grupy [[RED]]WYLACZONY -mcPlayerListener.AdminChatOn=Chat tylko dla adminow [[GREEN]]WLACZONY -mcPlayerListener.AdminChatOff=Chat tylko dla adminow [[RED]]WYLACZONY -mcPlayerListener.MOTD=[[BLUE]]Ten server uzywa plugina mcMMO {0} wpisz [[YELLOW]]/{1}[[BLUE]] aby uzyskac pomoc. -mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]POZIOM MOCY: -mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--Ranking [[BLUE]]poziomu mocy [[YELLOW]]mcMMO-- -mcPlayerListener.SkillLeaderboard=[[YELLOW]]--Ranking [[BLUE]]{0}[[YELLOW]] mcMMO-- -mcPlayerListener.RepairSkill=Naprawa: -mcPlayerListener.SwordsSkill=Miecze: -mcPlayerListener.TamingSkill=Oswajanie: -mcPlayerListener.UnarmedSkill=Kung-fu: -mcPlayerListener.WoodcuttingSkill=Drwalnictwo: -mcPlayerListener.YourStats=[[GREEN]][mcMMO] Statystyki -Party.InformedOnJoin={0} [[GREEN]] dolaczyl do twojej grupy. -Party.InformedOnQuit={0} [[GREEN]] wyszedl z twojej grupy. -Skills.YourGreenTerra=[[GREEN]]Twoja umiejetnosc [[YELLOW]]zielona ziemia [[GREEN]]zostala naladowana! -Skills.YourTreeFeller=[[GREEN]]Twoja umiejetnosc [[YELLOW]]powalacz drzew [[GREEN]]zostala naladowana! -Skills.YourSuperBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Super kopacz [[GREEN]]zostala naladowana! -Skills.YourSerratedStrikes=[[GREEN]]Twoja umiejetnosc [[YELLOW]]furia ostrzy [[GREEN]]zostala naladowana! -Skills.YourBerserk=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Wejscie Smoka [[GREEN]]zostala naladowana! -Skills.YourSkullSplitter=[[GREEN]]Twoja umiejetnosc [[YELLOW]]berserk [[GREEN]]zostala naladowana! -Skills.YourGigaDrillBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Super Szybka Saperka [[GREEN]]zostala naladowana! -Skills.TooTired=[[RED]]Musisz odpoczac zanim ponownie uzyjesz tej umiejetnosci. -Skills.ReadyHoe=[[GREEN]]**PODNOSISZ SWOJA MOTYKE** -Skills.LowerHoe=[[GRAY]]**OPUSZCZASZ SWOJA MOTYKE** -Skills.ReadyAxe=[[GREEN]]**PODNOSISZ SWOJ TOPOR** -Skills.LowerAxe=[[GRAY]]**OPUSZCZASZ SWOJ TOPOR** -Skills.ReadyFists=[[GREEN]]**PODNOSISZ SWOJE PIESCI** -Skills.LowerFists=[[GRAY]]**OPUSZCZASZ SWOJE PIESCI** -Skills.ReadyPickAxe=[[GREEN]]**PODNOSISZ SWOJ KILOF** -Skills.LowerPickAxe=[[GRAY]]**OPUSZCZASZ SWOJ KILOF** -Skills.ReadyShovel=[[GREEN]]**PODNOSISZ SWOJA LOPATE** -Skills.LowerShovel=[[GRAY]]**OPUSZCZASZ SWOJA LOPATE** -Skills.ReadySword=[[GREEN]]**PODNOSISZ SWOJ MIECZ** -Skills.LowerSword=[[GRAY]]**OPUSZCZASZ SWOJ MIECZ** -Skills.BerserkOn=[[GREEN]]**ROBISZ WEJSCIE SMOKA** -Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] zrobil [[RED]]Wejscie Smoka! -Skills.GreenTerraOn=[[GREEN]]**ZIELONA ZIEMIA** -Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]zielonej ziemi! -Skills.TreeFellerOn=[[GREEN]]**POWALACZ DRZEW** -Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]powalacza drzew! -Skills.SuperBreakerOn=[[GREEN]]**SUPER KOPACZ** -Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Kopacza! -Skills.SerratedStrikesOn=[[GREEN]]**FURIA OSTRZY** -Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]furii ostrzy! -Skills.SkullSplitterOn=[[GREEN]]**BERSERK** -Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] wpadl w [[RED]]berserk! -Skills.GigaDrillBreakerOn=[[GREEN]]**SUPER SZYBKA SAPERKA** -Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Szybkiej Saperki! -Skills.GreenTerraOff=[[RED]]**Zielona ziemia zostala zuzyta** -Skills.TreeFellerOff=[[RED]]**Powalacz drzew zostal zuzyty** -Skills.SuperBreakerOff=[[RED]]**Super Kopacz zostal zuzyty** -Skills.SerratedStrikesOff=[[RED]]**Furia ostrzy zostala zuzyta** -Skills.BerserkOff=[[RED]]**Wejscie Smoka zostalo zuzyte** -Skills.SkullSplitterOff=[[RED]]**Berserk zostal zuzyty** -Skills.GigaDrillBreakerOff=[[RED]]**Super Szybka Saperka zostala zuzyta** -Skills.TamingUp=[[YELLOW]]Umiejetnosc oswajania wzrosla o {0}. Razem ({1}) -Skills.AcrobaticsUp=[[YELLOW]]Umiejetnosci akrobatyczne wzrosly o {0}. Razem ({1}) -Skills.ArcheryUp=[[YELLOW]]Umiejetnosci lucznicze wzrosly o {0}. Razem ({1}) -Skills.SwordsUp=[[YELLOW]]Umiejetnosc uzywania mieczy wzrosla o {0}. Razem ({1}) -Skills.AxesUp=[[YELLOW]]Umiejetnosc uzywania toporow wzrosla o {0}. Razem ({1}) -Skills.UnarmedUp=[[YELLOW]]Znajomosc Kung-Fu wzrosla o {0}. Razem ({1}) -Skills.HerbalismUp=[[YELLOW]]Znajomosc zielarstwa wzrosla o {0}. Razem ({1}) -Skills.MiningUp=[[YELLOW]]Umiejetnosci gornicze wzrosly o {0}. Razem ({1}) -Skills.WoodcuttingUp=[[YELLOW]]Umiejetnosci drwalnicze wzrosly o {0}. Razem ({1}) -Skills.RepairUp=[[YELLOW]]Umiejetnosc naprawy wzrosla o {0}. Razem ({1}) -Skills.ExcavationUp=[[YELLOW]]Umiejetnosci wykopaliskowe wzrosly o {0}. Razem ({1}) -Skills.FeltEasy=[[GRAY]]To bylo proste. -Skills.StackedItems=[[DARK_RED]]Nie mozesz naprawiac grup przedmiotow. -Skills.NeedMore=[[DARK_RED]]Potrzebujesz wiecej -Skills.AdeptDiamond=[[DARK_RED]]Nie potrafisz jeszcze naprawiac diamentow -Skills.FullDurability=[[GRAY]]Ten przedmiot nie wymaga naprawy. -Skills.Disarmed=[[DARK_RED]]Zostales rozbrojony! -mcPlayerListener.SorcerySkill=Magia: -m.SkillSorcery=MAGIA -Sorcery.HasCast=[[GREEN]]**RZUCANIE ZAKLECIA**[[GOLD]] -Sorcery.Current_Mana=[[DARK_AQUA]]Mana -Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) -Sorcery.Cost=[[RED]][COST] {0} Many -Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Brak Many [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) -Sorcery.Water.Thunder=PIORUN -Sorcery.Curative.Self=ULECZ SIEBIE -Sorcery.Curative.Other=ULECZ INNYCH -m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]Doswiadczenia[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) -Combat.BeastLore=[[GREEN]]**WIEDZA O ZWIERZETACH** -Combat.BeastLoreOwner=[[DARK_AQUA]]Wlasciciel ([[RED]]{0}[[DARK_AQUA]]) -Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/20) -Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/8) -mcMMO.Description=[[DARK_AQUA]]P: Czym jest mcMMO?,[[GOLD]]mcMMO jest [[RED]]open source'owym[[GOLD]] RPG modem korzystajacym z Bukkita, autorstwa [[BLUE]]nossr50,[[GOLD]]mcMMO dodaje wiele umiejetnosci do Minecrafta.,[[GOLD]]Mozna rowniez zbierac doswiadczenie na rozne sposoby,[[GOLD]]Najlepiej wpisac [[GREEN]]/nazwaumiejetnosci[[GOLD]] aby dowiedziec sie wiecej o niej.,[[DARK_AQUA]]P: A co robi mcMMO?,[[GOLD]]Dla przykladu, [[DARK_AQUA]]gornictwo[[GOLD]] pozwala na [[RED]]zwiekszone zyski[[GOLD]] oraz daje mozliwosc [[RED]]szybszego kopania[[GOLD]], ktore mozna [[GOLD]]aktywowac prawym przyciskiem myszy i trwa dluzej [[GOLD]]im wyzszy masz poziom. Zdobywanie poziomow w [[BLUE]]gornictwie[[GOLD]] odbywa sie przez zwyczajne wykopywanie roznych mineralow.,[[DARK_AQUA]]P: Co to wszystko daje?,[[GOLD]]Prawie wszystkie umiejetnosci w [[GREEN]]mcMMO[[GOLD]] dodaja nowe fajne rzeczy!.,[[GOLD]]Wpisujac [[GREEN]]/{0}[[GOLD]] poznasz wszystkie dostepne polecenia,[[GOLD]]Celem mcMMO jest sprawienie aby Minecraft stal sie prawie eRPeGiem.,[[DARK_AQUA]]P: Mam genialny pomysl, dodasz to!?,[[GOLD]]Napisz w temacie mcMMO na forum bukkit i zobaczymy!,[[DARK_AQUA]]Q: A jak zrobic to albo tamto?,[[RED]]CZYTAJ [[GOLD]]strone wiki moda! [[DARK_AQUA]]mcmmo.wikia.com -Party.Locked=[[RED]]Grupa jest zamknieta, tylko wlasciciel moze dodac graczy. -Party.IsntLocked=[[GRAY]]Grupa jest otwarta dla wszystkich. -Party.Unlocked=[[GRAY]]Grupa jest otwarta dla wszystkich. -Party.Help1=[[RED]]Prawidlowe polecenie to [[YELLOW]]/{0} [[WHITE]][[YELLOW]] lub [[WHITE]]'q' [[YELLOW]]aby wyjsc. -Party.Help2=[[RED]]Aby dolaczyc do grupy zabezpieczonej haslem wpisz[[YELLOW]]/{0} [[WHITE]] -Party.Help3=[[RED]]Sprawdz /{0} ? aby dowiedziec sie wiecej. -Party.Help4=[[RED]]Wpisz [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]aby dolaczyc do grupy lub [[WHITE]]'q' [[YELLOW]]aby z niej wyjsc. -Party.Help5=[[RED]]Aby zamknac grupe wpisz [[YELLOW]]/{0} [[WHITE]]lock -Party.Help6=[[RED]]Aby otworzyc zamknieta grupe wpisz [[YELLOW]]/{0} [[WHITE]]unlock -Party.Help7=[[RED]]Aby zabezpieczyc grupe haslem wpisz [[YELLOW]]/{0} [[WHITE]]password -Party.Help8=[[RED]]Aby wyrzucic gracza z grupy wpisz [[YELLOW]]/{0} [[WHITE]]kick -Party.Help9=[[RED]]Aby przekazac wladze w grupie innej osobie wpisz [[YELLOW]]/{0} [[WHITE]]owner -Party.NotOwner=[[DARK_RED]]Nie jestes wlascicielem tej grupy. -Party.InvalidName=[[DARK_RED]]To nie jest dozwolona nazwa grupy. -Party.PasswordSet=[[GREEN]]Haslo grupy zmienione na: {0} -Party.CouldNotKick=[[DARK_RED]]Nie mozna wyrzucic gracza {0} -Party.NotInYourParty=[[DARK_RED]]{0} nie jest czlonkiem twojej grupy. -Party.CouldNotSetOwner=[[DARK_RED]]Nie mozna przekazac grupy do {0} -Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] -Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal -Commands.xprate.proper3=[[RED]]Enter true or false for the second value -Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! -Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! -Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! -Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! -Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! -Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining -m.SkillAlchemy=ALCHEMY -m.SkillEnchanting=ENCHANTING -m.SkillFishing=FISHING -mcPlayerListener.AlchemySkill=Alchemy: -mcPlayerListener.EnchantingSkill=Enchanting: -mcPlayerListener.FishingSkill=Fishing: -Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) -Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) -Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) -Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. -Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. -Repair.Downgraded=[[RED]]Arcane power has decreased for this item. -Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. -m.EffectsRepair5_0=Arcane Forging -m.EffectsRepair5_1=Repair magic items -m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 -m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% -m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% -m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, -m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... -Fishing.ItemFound=[[GRAY]]Treasure found! -m.SkillFishing=FISHING -m.XPGainFishing=Fishing (Go figure!) -m.EffectsFishing1_0=Treasure Hunter (Passive) -m.EffectsFishing1_1=Fish up misc objects -m.EffectsFishing2_0=Magic Hunter -m.EffectsFishing2_1=Find Enchanted Items -m.EffectsFishing3_0=Shake (vs. Entities) -m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole -m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 -m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** -m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; -m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) -m.TamingSummon=[[GREEN]]Summoning complete -m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. -m.EffectsTaming7_0=Call of the Wild -m.EffectsTaming7_1=Summon a wolf to your side +Combat.WolfExamine=[[GREEN]]**Zbadales wilka uzywajac wiedzy o zwierzetach** +Combat.WolfShowMaster=[[DARK_GREEN]]Wlascicielem wilka jest \: {0} +Combat.Ignition=[[RED]]**PODPALENIE** +Combat.BurningArrowHit=[[DARK_RED]]Zostales trafiony plonaca strzala\! +Combat.TouchedFuzzy=[[DARK_RED]]Zostales oszolomiony. +Combat.TargetDazed=Cel zostal [[DARK_RED]]oszolomiony. +Combat.WolfNoMaster=[[GRAY]]Ten wilk nie ma wlasciciela... +Combat.WolfHealth=[[GREEN]]Ten wilk ma {0} zycia. +Combat.StruckByGore=[[RED]]**WYKRWAWIENIE** +Combat.Gore=[[GREEN]]**KRWOTOK** +Combat.ArrowDeflect=[[WHITE]]**ODBICIE STRZALY** +Item.ChimaeraWingFail=**UZYCIE SKRZYDLA CHIMERY NIE POWIODLO SIE\!** +Item.ChimaeraWingPass=**UZYLES SKRZYDLA CHIMERY** +Item.InjuredWait=Zostales ranny. Musisz poczekac [[YELLOW]]{0}[[WHITE]] sekund przed uzyciem. +Item.NeedFeathers=[[GRAY]]Potrzebujesz wiecej pior. +m.mccPartyCommands=[[GREEN]]--KOMENDY DRUZYNOWE-- +m.mccParty=[party name] [[RED]]- Tworzy lub dolacza do danej druzyny. +m.mccPartyQ=[[RED]]- Pozwala opuscic druzyne. +m.mccPartyToggle=[[RED]] - Wlacza chat druzynowy. +m.mccPartyInvite=[player name] [[RED]]- Wysyla zaproszenie do druzyny. +m.mccPartyAccept=[[RED]]- Akceptuje zaproszenie do druzyny. +m.mccPartyTeleport=[imie czlonka druzyny] [[RED]]- Teleportuje cie do czlonka druzyny. +m.mccOtherCommands=[[GREEN]]--INNE KOMENDY-- +m.mccStats=- Pokazuje twoje statystyki. +m.mccLeaderboards=- Pokazuje najlepszych graczy. +m.mccMySpawn=- Teleportuje do twojego spawna. +m.mccClearMySpawn=- Kasuje twoj spawn i zmienia na domyslny. +m.mccToggleAbility=- Wlacza specjalna umiejetnosc prawym przyciskiem myszy. +m.mccAdminToggle=- Wlacza chat adminow. +m.mccWhois=[nazwa gracza] [[RED]]- Zobacz szczegolowe informacje o graczu. +m.mccMmoedit=[nazwa gracza] [umiejetnosc] [nowa wartosc] [[RED]]- Modyfikuje cel. +m.mccMcGod=- Niesmiertelnosc. +m.mccSkillInfo=/[nazwa umiejetnosci (np. Mining)] [[RED]]- Wyswietla informacje na temat umiejetnosci. +m.mccModDescription=[[RED]]- Wyswietla opis moda. +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]Dostajesz doswiadczenie za: [[WHITE]]{0} +m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} +m.AbilityLockTemplate=[[GRAY]]{0} +m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} +m.Effects=EFEKTY +m.YourStats=TWOJE STATYSTYKI +m.SkillTaming=OSWAJANIE +m.XPGainTaming=Utrate zdrowia wilkow. +m.EffectsTaming1_0=Wiedza o zwierzetach +m.EffectsTaming1_1=Uderz koscia aby sprawdzic wilka. +m.EffectsTaming2_0=Krwotok +m.EffectsTaming2_1=Atak krytyczny powodujacy silny krwotok. +m.EffectsTaming3_0=Ostre pazury +m.EffectsTaming3_1=Zwiekszenie obrazen. +m.EffectsTaming4_0=Sztuka przetrwania +m.EffectsTaming4_1=Unikanie kaktusow i lawy. Zawsze spada na 4 lapy. +m.EffectsTaming5_0=Grube futro +m.EffectsTaming5_1=Wieksza odpornosc na obrazenia i ogien. +m.EffectsTaming6_0=Odpornosc na eksplozje +m.EffectsTaming6_1=Wieksza odpornosc na obrazenia od wybuchow. +m.AbilLockTaming1=Aby odblokowac sztuke przetrwania, zdobadz 100 poziom. +m.AbilLockTaming2=Aby odblokowac grube futro, zdobadz 250 poziom. +m.AbilLockTaming3=Aby odblokowac odpornosc na eksplozje, zdobadz 500 poziom. +m.AbilLockTaming4=Aby odblokowac ostre pazury, zdobadz 750 poziom. +m.AbilBonusTaming1_0=Sztuka przetrwania +m.AbilBonusTaming1_1=Wilki unikaja zagrozen. +m.AbilBonusTaming2_0=Grube futro +m.AbilBonusTaming2_1=Obrazenia ogolne i od ognia zmniejszone do polowy. +m.AbilBonusTaming3_0=Odpornosc na eksplozje +m.AbilBonusTaming3_1=Wybuchy zadaja 1/6 obrazen. +m.AbilBonusTaming4_0=Ostre pazury +m.AbilBonusTaming4_1=+2 do obrazen +m.TamingGoreChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0}% +m.SkillWoodCutting=DRWALNICTWO +m.XPGainWoodCutting=Scinanie drzew +m.EffectsWoodCutting1_0=Powalacz drzew (UMIEJETNOSC) +m.EffectsWoodCutting1_1=Blyskawicznie scina drzewa. +m.EffectsWoodCutting2_0=Zdmuchiwacz lisci +m.EffectsWoodCutting2_1=Zdmuchuje wszystkie liscie. +m.EffectsWoodCutting3_0=Fachowa wycinka +m.EffectsWoodCutting3_1=Pozyskujesz dwa razy wiecej drewna z jednego drzewa. Nic sie nie zmarnuje. +m.AbilLockWoodCutting1=Aby odblokowac zdmuchiwacza lisci, zdobadz 100 poziom. +m.AbilBonusWoodCutting1_0=Zdmuchiwacz lisci +m.AbilBonusWoodCutting1_1=Zdmuchuje wszystkie liscie. +m.WoodCuttingDoubleDropChance=[[RED]]Szansa na fachowa wycinke: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Czas trwania powalacza drzew: [[YELLOW]]{0} sekund +m.SkillArchery=LUCZNICTWO +m.XPGainArchery=Atakowanie potworow przy uzyciu luku. +m.EffectsArchery1_0=Podpalenie +m.EffectsArchery1_1=25% szansa na podpalenie wroga. +m.EffectsArchery2_0=Oszolomienie(Tylko na graczy) +m.EffectsArchery2_1=Dezorientuje przeciwnika. +m.EffectsArchery3_0=Wieksze obrazenia +m.EffectsArchery3_1=Zwieksza obrazenia zadawane lukiem. +m.EffectsArchery4_0=Odzyskiwanie strzal +m.EffectsArchery4_1=Szansa na odzyskanie strzal z cial wrogow. +m.ArcheryDazeChance=[[RED]]Szansa na oszolomienie: [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Szansa na odzyskanie strzal: [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Dlugosc podpalenia: [[YELLOW]]{0} sekund +m.ArcheryDamagePlus=[[RED]]Wieksze obrazenia (Rank{0}): [[YELLOW]]Obrazenia zwiekszone o {0} +m.SkillAxes=TOPORY +m.XPGainAxes=Atakowanie potworow przy uzyciu toporow. +m.EffectsAxes1_0=Berserk (UMIEJETNOSC) +m.EffectsAxes1_1=Zadaje obrazenia wszystkiemu dookola. +m.EffectsAxes2_0=Krytyczne uderzenie +m.EffectsAxes2_1=Potrafisz trafic wroga tam gdzie boli, zadajac podwojne obrazenia. +m.EffectsAxes3_0=Doswiadczony wojownik +m.EffectsAxes3_1=Mordowanie setek potworow zwiekszylo twoja sile i celnosc. Zadajesz wiecej obrazen. +m.AbilLockAxes1=Aby odblokowac doswiadczonego wojownika, zdobadz 500 poziom. +m.AbilBonusAxes1_0=Doswiadczony wojownik +m.AbilBonusAxes1_1=Zadajesz dodatkowe 4 punkty obrazen. +m.AxesCritChance=[[RED]]Szansa na krytyczne uderzenie: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Dlugosc berserku: [[YELLOW]]{0} sekund +m.SkillSwords=MIECZE +m.XPGainSwords=Atakowanie potworow przy uzyciu mieczy. +m.EffectsSwords1_0=Kontratak +m.EffectsSwords1_1=Nikt bezkarnie cie nie zrani. Oddajesz przeciwnikowi 50% otrzymanych obrazen. +m.EffectsSwords2_0=Furia ostrzy (UMIEJETNOSC) +m.EffectsSwords2_1=25% obrazen obszarowych powodujacych krwotok. +m.EffectsSwords3_0=Krwawa furia ostrzy +m.EffectsSwords3_1=Celujesz w zyly i tetnice, pododujac jak najwiecej ran. +m.EffectsSwords4_0=Blok +m.EffectsSwords4_1=Calkowicie blokujesz cios. +m.EffectsSwords5_0=Krwotok +m.EffectsSwords5_1=Powoduje krwawiace otwarte rany. +m.SwordsCounterAttChance=[[RED]]Szansa na kontratak: [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Rany zadawane krwotokiem: [[YELLOW]]{0} ran. +m.SwordsBleedChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Szansa na blok: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Dlugosc furii ostrzy: [[YELLOW]]{0} sekund +m.SwordsTickNote=[[GRAY]]UWAGA: [[YELLOW]]1 rana goi sie co 2 sekundy. +m.SkillAcrobatics=AKROBATYKA +m.XPGainAcrobatics=Spadanie +m.EffectsAcrobatics1_0=Przewrot +m.EffectsAcrobatics1_1=Zmniejsza badz niweluje obrazenia. +m.EffectsAcrobatics2_0=Idealny przewrot +m.EffectsAcrobatics2_1=Dwa razy skuteczniejszy od normalnego. +m.EffectsAcrobatics3_0=Unik +m.EffectsAcrobatics3_1=Redukuje obrazenia o polowe. +m.AcrobaticsRollChance=[[RED]]Szansa na przewrot: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Szansa na idealny przewrot: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Szansa na unik: [[YELLOW]]{0}% +m.SkillMining=GORNICTWO +m.XPGainMining=Wykopywanie kamienia i roznych rud. +m.EffectsMining1_0=Super kopacz (UMIEJETNOSC) +m.EffectsMining1_1=Kopiesz sybciej i marnujesz trzy razy mniej rudy. +m.EffectsMining2_0=Fachowy wykop +m.EffectsMining2_1=Pozyskujesz dwa razy wiecej rudy. Nic sie nie marnuje. +m.MiningDoubleDropChance=[[RED]]Szansa na fachowy wykop: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Dlugosc super kopania: [[YELLOW]]{0} sekund +m.SkillRepair=NAPRAWA +m.XPGainRepair=Naprawianie przedmiotow. +m.EffectsRepair1_0=Naprawa +m.EffectsRepair1_1=Naprawianie zelaznych przedmiotow. +m.EffectsRepair2_0=Mistrz naprawy +m.EffectsRepair2_1=Zwiekszona liczba napraw. +m.EffectsRepair3_0=Fachowa naprawa +m.EffectsRepair3_1=Naprawiles przedmiot dwa razy lepiej niz zwykle. +m.EffectsRepair4_0=Diamentowa odnowa ({0}+ UMIEJETNOSC) +m.EffectsRepair4_1=Naprawia diamentowe przedmioty. +m.RepairRepairMastery=[[RED]]Mistrz naprawy: [[YELLOW]]Dodatkowe {0}% wytrzymalosci odzyskane. +m.RepairSuperRepairChance=[[RED]]Szansa na fachowa naprawe: [[YELLOW]]{0}% +m.SkillUnarmed=KUNG-FU +m.XPGainUnarmed=Atakowanie potworow bez broni. +m.EffectsUnarmed1_0=Wejscie Smoka (UMIEJETNOSC) +m.EffectsUnarmed1_1=Polowe wieksze obrazenia, niszczy slabe przedmioty. +m.EffectsUnarmed2_0=Rozbrojenie (Tylko graczy) +m.EffectsUnarmed2_1=Przeciwnik upuszcza trzymany w reku przedmiot. +m.EffectsUnarmed3_0=Wsciekle Piesci +m.EffectsUnarmed3_1=Znaczne zwiekszenie zadawanych obrazen. +m.EffectsUnarmed4_0=Droga Smoka +m.EffectsUnarmed4_1=Zwiekszenie zadawanych obrazen. +m.EffectsUnarmed5_0=Odbicie strzaly +m.EffectsUnarmed5_1=Golymi rekoma potrafisz odbic nadlatujaca strzale. +m.AbilLockUnarmed1=Aby odblokowac Droge Smoka, zdobadz 250 poziom. +m.AbilLockUnarmed2=Aby odblokowac Wsciekle Piesci, zdobadz 500 poziom. +m.AbilBonusUnarmed1_0=Droga Smoka +m.AbilBonusUnarmed1_1=Zadawane obrazenia zwiekszone o 2. +m.AbilBonusUnarmed2_0=Wsciekle Piesci +m.AbilBonusUnarmed2_1=Zadawane obrazenia zwiekszone o 4. +m.UnarmedArrowDeflectChance=[[RED]]Szansa na odbicie strzaly: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Szansa na rozbrojenie: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Dlugosc Wejscia Smoka: [[YELLOW]]{0} sekund. +m.SkillHerbalism=ZIELARSTWO +m.XPGainHerbalism=Zbieranie ziol. +m.EffectsHerbalism1_0=Zielona ziemia (UMIEJETNOSC) +m.EffectsHerbalism1_1=Rozprzestrzenia ziemie, potraja plony. +m.EffectsHerbalism2_0=Wprawne rece (zboze) +m.EffectsHerbalism2_1=Zbierajac zboze, od razu sadzisz nasiona. +m.EffectsHerbalism3_0=Wprawne rece (bruk) +m.EffectsHerbalism3_1=Zamienia bruk w porosniety mchem kamien z nasionami. +m.EffectsHerbalism4_0=Lepsze jedzenie +m.EffectsHerbalism4_1=Modyfikowana genetycznie zywnosc jest zdrowsza. Chleb i zupa chlebowa regeneruja wiecej zdrowia. +m.EffectsHerbalism5_0=Udane zbiory +m.EffectsHerbalism5_1=Dwa razy wieksze plony wszystkich roslin. +m.HerbalismGreenTerraLength=[[RED]]Czas trwania zielonej ziemi: [[YELLOW]]{0} sekund +m.HerbalismGreenThumbChance=[[RED]]Szansa na wprawne rece: [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Poziom wprawnych rak: [[YELLOW]] Zboze rosnie na poziomie {0} +m.HerbalismDoubleDropChance=[[RED]]Szansa na udane zbiory: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Lepsze jedzenie (Ranga{0}): [[YELLOW]]Dodatkowe {0} zdrowia +m.SkillExcavation=WYKOPALISKA +m.XPGainExcavation=Kopanie i odnajdywanie skarbow. +m.EffectsExcavation1_0=Super Szybka Saperka (UMIEJETNOSC) +m.EffectsExcavation1_1=Zwiekszona szybkosc kopania i trzykrotnie wiekszy urobek i zdobyte doswiadczenie. +m.EffectsExcavation2_0=Lowca Skarbow +m.EffectsExcavation2_1=Umiejetnosc znajdywania skarbow +m.ExcavationGreenTerraLength=[[RED]]Czas trwania Super Szybkiej Saperki: [[YELLOW]]{0} sekund. +mcBlockListener.PlacedAnvil=[[DARK_RED]]Polozyles kowadlo, ktore pozwala na naprawe przedmiotow. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]Twoj wilk przybiega z powrotem. +mcPlayerListener.AbilitiesOff=Uzywanie umiejetnosci wylaczone +mcPlayerListener.AbilitiesOn=Uzywanie umiejetnosci wlaczone +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**UMIEJETNOSCI ODSWIEZONE\!** +mcPlayerListener.AcrobaticsSkill=Akrobatyka: +mcPlayerListener.ArcherySkill=Lucznictwo: +mcPlayerListener.AxesSkill=Topory: +mcPlayerListener.ExcavationSkill=Wykopaliska: +mcPlayerListener.GodModeDisabled=[[YELLOW]]Niesmiertelnosc wylaczona +mcPlayerListener.GodModeEnabled=[[YELLOW]]Niesmiertelnosc wlaczona +mcPlayerListener.GreenThumb=[[GREEN]]**UZYLES ZIELONEJ ZIEMI** +mcPlayerListener.GreenThumbFail=[[RED]]**UZYWANIE ZIELONEJ ZIEMI NIE POWIODLO SIE** +mcPlayerListener.HerbalismSkill=Zielarstwo: +mcPlayerListener.MiningSkill=Gornictwo: +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Twoj spawn zostal usuniety. +mcPlayerListener.MyspawnNotExist=[[RED]]Musisz ustawic swoj spawn za pomoca lozka. +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Twoj spawn zostal ustawiony na twoje aktualne polozenie. +mcPlayerListener.MyspawnTimeNotice=Musisz zaczekac {0} minut i {1} sekund aby przeteleportowac sie na spawn. +mcPlayerListener.NoPermission=Brak mcPermissions. +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Umiejetnosci, ktorych nie mozesz uzyc nie sa wyswietlane. +mcPlayerListener.NotInParty=[[RED]]Nie jestes w grupie. +mcPlayerListener.InviteSuccess=[[GREEN]]Zaproszenie wyslane. +mcPlayerListener.ReceivedInvite1=[[RED]]UWAGA: [[GREEN]]Dostales zaproszenie do grupy {0} od {1}. +mcPlayerListener.ReceivedInvite2=[[YELLOW]Wpisz [[GREEN]]/{0}[[YELLOW]] aby zaakceptowac zaproszenie. +mcPlayerListener.InviteAccepted=[[GREEN]]Zaproszenie akceptowane. Doszles do grupy {0}. +mcPlayerListener.NoInvites=[[RED]]Nie masz zaproszen do zadnej grupy. +mcPlayerListener.YouAreInParty=[[GREEN]]Jestes w grupie {0}. +mcPlayerListener.PartyMembers=[[GREEN]]Czlonkowie grupy +mcPlayerListener.LeftParty=[[RED]]Wyszles z tej grupy. +mcPlayerListener.JoinedParty=Doszedles do grupy: {0} +mcPlayerListener.PartyChatOn=Chat tylko dla grupy [[GREEN]]WLACZONY +mcPlayerListener.PartyChatOff=Chat tylko dla grupy [[RED]]WYLACZONY +mcPlayerListener.AdminChatOn=Chat tylko dla adminow [[GREEN]]WLACZONY +mcPlayerListener.AdminChatOff=Chat tylko dla adminow [[RED]]WYLACZONY +mcPlayerListener.MOTD=[[BLUE]]Ten server uzywa plugina mcMMO {0} wpisz [[YELLOW]]/{1}[[BLUE]] aby uzyskac pomoc. +mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki +mcPlayerListener.PowerLevel=[[DARK_RED]]POZIOM MOCY: +mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--Ranking [[BLUE]]poziomu mocy [[YELLOW]]mcMMO-- +mcPlayerListener.SkillLeaderboard=[[YELLOW]]--Ranking [[BLUE]]{0}[[YELLOW]] mcMMO-- +mcPlayerListener.RepairSkill=Naprawa: +mcPlayerListener.SwordsSkill=Miecze: +mcPlayerListener.TamingSkill=Oswajanie: +mcPlayerListener.UnarmedSkill=Kung-fu: +mcPlayerListener.WoodcuttingSkill=Drwalnictwo: +mcPlayerListener.YourStats=[[GREEN]][mcMMO] Statystyki +Party.InformedOnJoin={0} [[GREEN]] dolaczyl do twojej grupy. +Party.InformedOnQuit={0} [[GREEN]] wyszedl z twojej grupy. +Skills.YourGreenTerra=[[GREEN]]Twoja umiejetnosc [[YELLOW]]zielona ziemia [[GREEN]]zostala naladowana! +Skills.YourTreeFeller=[[GREEN]]Twoja umiejetnosc [[YELLOW]]powalacz drzew [[GREEN]]zostala naladowana! +Skills.YourSuperBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Super kopacz [[GREEN]]zostala naladowana! +Skills.YourSerratedStrikes=[[GREEN]]Twoja umiejetnosc [[YELLOW]]furia ostrzy [[GREEN]]zostala naladowana! +Skills.YourBerserk=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Wejscie Smoka [[GREEN]]zostala naladowana! +Skills.YourSkullSplitter=[[GREEN]]Twoja umiejetnosc [[YELLOW]]berserk [[GREEN]]zostala naladowana! +Skills.YourGigaDrillBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Super Szybka Saperka [[GREEN]]zostala naladowana! +Skills.TooTired=[[RED]]Musisz odpoczac zanim ponownie uzyjesz tej umiejetnosci. +Skills.ReadyHoe=[[GREEN]]**PODNOSISZ SWOJA MOTYKE** +Skills.LowerHoe=[[GRAY]]**OPUSZCZASZ SWOJA MOTYKE** +Skills.ReadyAxe=[[GREEN]]**PODNOSISZ SWOJ TOPOR** +Skills.LowerAxe=[[GRAY]]**OPUSZCZASZ SWOJ TOPOR** +Skills.ReadyFists=[[GREEN]]**PODNOSISZ SWOJE PIESCI** +Skills.LowerFists=[[GRAY]]**OPUSZCZASZ SWOJE PIESCI** +Skills.ReadyPickAxe=[[GREEN]]**PODNOSISZ SWOJ KILOF** +Skills.LowerPickAxe=[[GRAY]]**OPUSZCZASZ SWOJ KILOF** +Skills.ReadyShovel=[[GREEN]]**PODNOSISZ SWOJA LOPATE** +Skills.LowerShovel=[[GRAY]]**OPUSZCZASZ SWOJA LOPATE** +Skills.ReadySword=[[GREEN]]**PODNOSISZ SWOJ MIECZ** +Skills.LowerSword=[[GRAY]]**OPUSZCZASZ SWOJ MIECZ** +Skills.BerserkOn=[[GREEN]]**ROBISZ WEJSCIE SMOKA** +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] zrobil [[RED]]Wejscie Smoka! +Skills.GreenTerraOn=[[GREEN]]**ZIELONA ZIEMIA** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]zielonej ziemi! +Skills.TreeFellerOn=[[GREEN]]**POWALACZ DRZEW** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]powalacza drzew! +Skills.SuperBreakerOn=[[GREEN]]**SUPER KOPACZ** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Kopacza! +Skills.SerratedStrikesOn=[[GREEN]]**FURIA OSTRZY** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]furii ostrzy! +Skills.SkullSplitterOn=[[GREEN]]**BERSERK** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] wpadl w [[RED]]berserk! +Skills.GigaDrillBreakerOn=[[GREEN]]**SUPER SZYBKA SAPERKA** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Szybkiej Saperki! +Skills.GreenTerraOff=[[RED]]**Zielona ziemia zostala zuzyta** +Skills.TreeFellerOff=[[RED]]**Powalacz drzew zostal zuzyty** +Skills.SuperBreakerOff=[[RED]]**Super Kopacz zostal zuzyty** +Skills.SerratedStrikesOff=[[RED]]**Furia ostrzy zostala zuzyta** +Skills.BerserkOff=[[RED]]**Wejscie Smoka zostalo zuzyte** +Skills.SkullSplitterOff=[[RED]]**Berserk zostal zuzyty** +Skills.GigaDrillBreakerOff=[[RED]]**Super Szybka Saperka zostala zuzyta** +Skills.TamingUp=[[YELLOW]]Umiejetnosc oswajania wzrosla o {0}. Razem ({1}) +Skills.AcrobaticsUp=[[YELLOW]]Umiejetnosci akrobatyczne wzrosly o {0}. Razem ({1}) +Skills.ArcheryUp=[[YELLOW]]Umiejetnosci lucznicze wzrosly o {0}. Razem ({1}) +Skills.SwordsUp=[[YELLOW]]Umiejetnosc uzywania mieczy wzrosla o {0}. Razem ({1}) +Skills.AxesUp=[[YELLOW]]Umiejetnosc uzywania toporow wzrosla o {0}. Razem ({1}) +Skills.UnarmedUp=[[YELLOW]]Znajomosc Kung-Fu wzrosla o {0}. Razem ({1}) +Skills.HerbalismUp=[[YELLOW]]Znajomosc zielarstwa wzrosla o {0}. Razem ({1}) +Skills.MiningUp=[[YELLOW]]Umiejetnosci gornicze wzrosly o {0}. Razem ({1}) +Skills.WoodcuttingUp=[[YELLOW]]Umiejetnosci drwalnicze wzrosly o {0}. Razem ({1}) +Skills.RepairUp=[[YELLOW]]Umiejetnosc naprawy wzrosla o {0}. Razem ({1}) +Skills.ExcavationUp=[[YELLOW]]Umiejetnosci wykopaliskowe wzrosly o {0}. Razem ({1}) +Skills.FeltEasy=[[GRAY]]To bylo proste. +Skills.StackedItems=[[DARK_RED]]Nie mozesz naprawiac grup przedmiotow. +Skills.NeedMore=[[DARK_RED]]Potrzebujesz wiecej +Skills.AdeptDiamond=[[DARK_RED]]Nie potrafisz jeszcze naprawiac diamentow +Skills.FullDurability=[[GRAY]]Ten przedmiot nie wymaga naprawy. +Skills.Disarmed=[[DARK_RED]]Zostales rozbrojony! +mcPlayerListener.SorcerySkill=Magia: +m.SkillSorcery=MAGIA +Sorcery.HasCast=[[GREEN]]**RZUCANIE ZAKLECIA**[[GOLD]] +Sorcery.Current_Mana=[[DARK_AQUA]]Mana +Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) +Sorcery.Cost=[[RED]][COST] {0} Many +Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Brak Many [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) +Sorcery.Water.Thunder=PIORUN +Sorcery.Curative.Self=ULECZ SIEBIE +Sorcery.Curative.Other=ULECZ INNYCH +m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]Doswiadczenia[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) +Combat.BeastLore=[[GREEN]]**WIEDZA O ZWIERZETACH** +Combat.BeastLoreOwner=[[DARK_AQUA]]Wlasciciel ([[RED]]{0}[[DARK_AQUA]]) +Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/20) +Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/8) +mcMMO.Description=[[DARK_AQUA]]P: Czym jest mcMMO?,[[GOLD]]mcMMO jest [[RED]]open source'owym[[GOLD]] RPG modem korzystajacym z Bukkita, autorstwa [[BLUE]]nossr50,[[GOLD]]mcMMO dodaje wiele umiejetnosci do Minecrafta.,[[GOLD]]Mozna rowniez zbierac doswiadczenie na rozne sposoby,[[GOLD]]Najlepiej wpisac [[GREEN]]/nazwaumiejetnosci[[GOLD]] aby dowiedziec sie wiecej o niej.,[[DARK_AQUA]]P: A co robi mcMMO?,[[GOLD]]Dla przykladu, [[DARK_AQUA]]gornictwo[[GOLD]] pozwala na [[RED]]zwiekszone zyski[[GOLD]] oraz daje mozliwosc [[RED]]szybszego kopania[[GOLD]], ktore mozna [[GOLD]]aktywowac prawym przyciskiem myszy i trwa dluzej [[GOLD]]im wyzszy masz poziom. Zdobywanie poziomow w [[BLUE]]gornictwie[[GOLD]] odbywa sie przez zwyczajne wykopywanie roznych mineralow.,[[DARK_AQUA]]P: Co to wszystko daje?,[[GOLD]]Prawie wszystkie umiejetnosci w [[GREEN]]mcMMO[[GOLD]] dodaja nowe fajne rzeczy!.,[[GOLD]]Wpisujac [[GREEN]]/{0}[[GOLD]] poznasz wszystkie dostepne polecenia,[[GOLD]]Celem mcMMO jest sprawienie aby Minecraft stal sie prawie eRPeGiem.,[[DARK_AQUA]]P: Mam genialny pomysl, dodasz to!?,[[GOLD]]Napisz w temacie mcMMO na forum bukkit i zobaczymy!,[[DARK_AQUA]]Q: A jak zrobic to albo tamto?,[[RED]]CZYTAJ [[GOLD]]strone wiki moda! [[DARK_AQUA]]mcmmo.wikia.com +Party.Locked=[[RED]]Grupa jest zamknieta, tylko wlasciciel moze dodac graczy. +Party.IsntLocked=[[GRAY]]Grupa jest otwarta dla wszystkich. +Party.Unlocked=[[GRAY]]Grupa jest otwarta dla wszystkich. +Party.Help1=[[RED]]Prawidlowe polecenie to [[YELLOW]]/{0} [[WHITE]][[YELLOW]] lub [[WHITE]]'q' [[YELLOW]]aby wyjsc. +Party.Help2=[[RED]]Aby dolaczyc do grupy zabezpieczonej haslem wpisz[[YELLOW]]/{0} [[WHITE]] +Party.Help3=[[RED]]Sprawdz /{0} ? aby dowiedziec sie wiecej. +Party.Help4=[[RED]]Wpisz [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]aby dolaczyc do grupy lub [[WHITE]]'q' [[YELLOW]]aby z niej wyjsc. +Party.Help5=[[RED]]Aby zamknac grupe wpisz [[YELLOW]]/{0} [[WHITE]]lock +Party.Help6=[[RED]]Aby otworzyc zamknieta grupe wpisz [[YELLOW]]/{0} [[WHITE]]unlock +Party.Help7=[[RED]]Aby zabezpieczyc grupe haslem wpisz [[YELLOW]]/{0} [[WHITE]]password +Party.Help8=[[RED]]Aby wyrzucic gracza z grupy wpisz [[YELLOW]]/{0} [[WHITE]]kick +Party.Help9=[[RED]]Aby przekazac wladze w grupie innej osobie wpisz [[YELLOW]]/{0} [[WHITE]]owner +Party.NotOwner=[[DARK_RED]]Nie jestes wlascicielem tej grupy. +Party.InvalidName=[[DARK_RED]]To nie jest dozwolona nazwa grupy. +Party.PasswordSet=[[GREEN]]Haslo grupy zmienione na: {0} +Party.CouldNotKick=[[DARK_RED]]Nie mozna wyrzucic gracza {0} +Party.NotInYourParty=[[DARK_RED]]{0} nie jest czlonkiem twojej grupy. +Party.CouldNotSetOwner=[[DARK_RED]]Nie mozna przekazac grupy do {0} +Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] +Commands.xprate.proper2=[[DARK_AQUA]]Also you can type /{0} reset to turn everything back to normal +Commands.xprate.proper3=[[RED]]Enter true or false for the second value +Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! +Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! +Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! +Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! +Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! +Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining +m.SkillAlchemy=ALCHEMY +m.SkillEnchanting=ENCHANTING +m.SkillFishing=FISHING +mcPlayerListener.AlchemySkill=Alchemy: +mcPlayerListener.EnchantingSkill=Enchanting: +mcPlayerListener.FishingSkill=Fishing: +Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) +Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) +Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) +Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. +Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. +Repair.Downgraded=[[RED]]Arcane power has decreased for this item. +Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. +m.EffectsRepair5_0=Arcane Forging +m.EffectsRepair5_1=Repair magic items +m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 +m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% +m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% +m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, +m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ +Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.ItemFound=[[GRAY]]Treasure found! +m.SkillFishing=FISHING +m.XPGainFishing=Fishing (Go figure!) +m.EffectsFishing1_0=Treasure Hunter (Passive) +m.EffectsFishing1_1=Fish up misc objects +m.EffectsFishing2_0=Magic Hunter +m.EffectsFishing2_1=Find Enchanted Items +m.EffectsFishing3_0=Shake (vs. Entities) +m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole +m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 +m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** +m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; +m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) +m.TamingSummon=[[GREEN]]Summoning complete +m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. +m.EffectsTaming7_0=Call of the Wild +m.EffectsTaming7_1=Summon a wolf to your side m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand \ No newline at end of file diff --git a/src/com/gmail/nossr50/locale/locale_pt_br.properties b/src/main/java/com/gmail/nossr50/locale/locale_pt_br.properties similarity index 98% rename from src/com/gmail/nossr50/locale/locale_pt_br.properties rename to src/main/java/com/gmail/nossr50/locale/locale_pt_br.properties index 3e84442fe..7b5bae22a 100644 --- a/src/com/gmail/nossr50/locale/locale_pt_br.properties +++ b/src/main/java/com/gmail/nossr50/locale/locale_pt_br.properties @@ -1,404 +1,404 @@ -Combat.WolfExamine=[[GREEN]]*Você examinou um lobo usando Conhecimento de Feras* -Combat.WolfShowMaster=[[DARK_GREEN]]O Mestre das Feras \: {0} -Combat.Ignition=[[RED]]*IGNIÇAO* -Combat.BurningArrowHit=[[DARK_RED]]Você foi atingido por uma flecha flamejante\! -Combat.TouchedFuzzy=[[DARK_RED]]Visao turva. Sente Tonturas. -Combat.TargetDazed=Alvo foi [[DARK_RED]]Atordoado -Combat.WolfNoMaster=[[GRAY]]Esse Animal nao tem um mestre... -Combat.WolfHealth=[[GREEN]]Esse animal tem {0} de vida -Combat.StruckByGore=[[RED]]*ATINGIDO POR MORDIDA* -Combat.Gore=[[GREEN]]*MORDIDA* -Combat.ArrowDeflect=[[WHITE]]*DESVIOU A FLECHA* -Item.ChimaeraWingFail=*ASA QUIMERA FALHOU\!* -Item.ChimaeraWingPass=*ASA QUIMERA* -Item.InjuredWait=Você foi ferido recentemente e tem que esperar para usar isto. [[YELLOW]]({0}s) -Item.NeedFeathers=[[GRAY]]Você precisa de mais penas... -m.mccPartyCommands=[[GREEN]]--COMANDOS DE EQUIPES-- -m.mccParty=[party name] [[RED]]- Criar/Juntar-se a uma equipe -m.mccPartyQ=[[RED]]- Sair da equipe atual -m.mccPartyToggle=[[RED]] - Ligar/Desligar chat da equipe -m.mccPartyInvite=[player name] [[RED]]- Enviar um convite -m.mccPartyAccept=[[RED]]- Aceitar convite -m.mccPartyTeleport=[party member name] [[RED]]- Teleportar para um membro de equipe -m.mccOtherCommands=[[GREEN]]--OUTROS COMANDOS-- -m.mccStats=- Ver seus status -m.mccLeaderboards=- Classificaçao -m.mccMySpawn=- Teleportar para o spawn -m.mccClearMySpawn=- Remove o Ponto de Spawn -m.mccToggleAbility=- Ativa habilidades especiais com botao direito -m.mccAdminToggle=- Ativa o chat dos admin -m.mccWhois=[playername] [[RED]]- Ver informaçoes do jogador -m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modificar atributos do jogador -m.mccMcGod=- Modo Deus -m.mccSkillInfo=[skillname] [[RED]]- Ver informaçoes sobre a habilidade -m.mccModDescription=[[RED]]- Breve descriçao do Mod -m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- -m.XPGain=[[DARK_GRAY]]COMO GANHA XP: [[WHITE]]{0} -m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} -m.AbilityLockTemplate=[[GRAY]]{0} -m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} -m.Effects=EFEITOS -m.YourStats=SUAS ESTATISTICAS -m.SkillTaming=DOMESTICAR -m.XPGainTaming=Ataque com um lobo -m.EffectsTaming1_0=Conhecimento de Feras -m.EffectsTaming1_1=Inspeciona um lobo com um osso -m.EffectsTaming2_0=Mordida -m.EffectsTaming2_1=Ataque crítico que causa hemorragia -m.EffectsTaming3_0=Garras afiadas -m.EffectsTaming3_1=Bônus de Dano -m.EffectsTaming4_0=Consciência do Ambiente -m.EffectsTaming4_1=Medo de Cactos e Lava, Imune a Dano por queda -m.EffectsTaming5_0=Pele Grossa -m.EffectsTaming5_1=Reduçao nos Danos, Resistência ao fogo -m.EffectsTaming6_0=A Prova de Choque -m.EffectsTaming6_1=Reduz danos tomados com explosivos -m.AbilLockTaming1=DESBLOQUEIE NO NIVEL 100 (Conciência do ambiente) -m.AbilLockTaming2=DESBLOQUEIE NO NIVEL 250 (Pele grossa) -m.AbilLockTaming3=DESBLOQUEIE NO NIVEL 500 (A prova de choque) -m.AbilLockTaming4=DESBLOQUEIE NO NIVEL 750 (Garras afiadas) -m.AbilBonusTaming1_0=Conciência do ambiente -m.AbilBonusTaming1_1=Lobos evitam perigo -m.AbilBonusTaming2_0=Pele grossa -m.AbilBonusTaming2_1=Danos pela metade, Resistência ao fogo -m.AbilBonusTaming3_0=A prova de choque -m.AbilBonusTaming3_1=Explosivos causam 1/6 do dano normal -m.AbilBonusTaming4_0=Garras afiadas -m.AbilBonusTaming4_1=+2 Dano -m.TamingGoreChance=[[RED]]Chance de Mordida: [[YELLOW]]{0}% - -m.SkillWoodCutting=LENHADOR -m.XPGainWoodCutting=Cortando árvores -m.EffectsWoodCutting1_0=Derrubador de árvores (HABILIDADE ESPECIAL) -m.EffectsWoodCutting1_1=Explode árvores -m.EffectsWoodCutting2_0=Soprador de Folhas -m.EffectsWoodCutting2_1=Destrói folhas rapidamente -m.EffectsWoodCutting3_0=Drop x2 -m.EffectsWoodCutting3_1=Dobra a quantidade de item dropados -m.AbilLockWoodCutting1=DESBLOQUEIE NO NIVEL 100 (SOPRADOR DE FOLHAS) -m.AbilBonusWoodCutting1_0=Soprador de Folhas -m.AbilBonusWoodCutting1_1=Destrói folhas rapidamente -m.WoodCuttingDoubleDropChance=[[RED]]Chance de Drop x2: [[YELLOW]]{0}% -m.WoodCuttingTreeFellerLength=[[RED]]Duraçao do Derrubador de árvores: [[YELLOW]]{0}s - -m.SkillArchery=ARCO E FLECHA -m.XPGainArchery=Atacando monstros/ -m.EffectsArchery1_0=Igniçao -m.EffectsArchery1_1=25% de chance dos inimigos pegarem fogo -m.EffectsArchery2_0=Atordoar (Jogadores) -m.EffectsArchery2_1=Desorienta os adversários -m.EffectsArchery3_0=+Dano -m.EffectsArchery3_1=Aumenta o Dano -m.EffectsArchery4_0=Recuperar Flechas -m.EffectsArchery4_1=Chance de recuperar flechas de corpos -m.ArcheryDazeChance=[[RED]]Chance de atordoar: [[YELLOW]]{0}% -m.ArcheryRetrieveChance=[[RED]]Chance de recuperar flechas: [[YELLOW]]{0}% -m.ArcheryIgnitionLength=[[RED]]Duraçao da Igniçao: [[YELLOW]]{0}s -m.ArcheryDamagePlus=[[RED]]+Dano (Rank{0}): [[YELLOW]]Bonus de {0} dano - -m.SkillAxes=MACHADOS -m.XPGainAxes=Atacando monstros -m.EffectsAxes1_0=Rachador de Crânios (HABILIDADE ESPECIAL) -m.EffectsAxes1_1=Causa Danos em Area -m.EffectsAxes2_0=Ataques Críticos -m.EffectsAxes2_1=Dobra o Dano -m.EffectsAxes3_0=Mestre com Machados (NIVEL 500) -m.EffectsAxes3_1=Aumenta o Dano -m.AbilLockAxes1=DESBLOQUEIE NO NIVEL 500 (Mestre com Machados) -m.AbilBonusAxes1_0=Mestre com Machados/ -m.AbilBonusAxes1_1=Bônus de 4 de dano -m.AxesCritChance=[[RED]]Chance ataque crítico: [[YELLOW]]{0}% -m.AxesSkullLength=[[RED]]Duraçao do Rachador de Crânios: [[YELLOW]]{0}s - -m.SkillSwords=ESPADAS -m.XPGainSwords=Atacando monstros -m.EffectsSwords1_0=Contra-Ataque -m.EffectsSwords1_1=Retorna 50% do dano tomado -m.EffectsSwords2_0=Ataques Cortantes (HABILIDADE ESPECIAL) -m.EffectsSwords2_1=25% de Danos em Area, e Efeito de Hemorraria -m.EffectsSwords3_0=Ataque Cortante com Hemorragia -m.EffectsSwords3_1=5 Sangramentos -m.EffectsSwords4_0=Desviar -m.EffectsSwords4_1=Anula o Dano -m.EffectsSwords5_0=Hemorragia -m.EffectsSwords5_1=Causa sangramentos repetidos ao longo do tempo -m.SwordsCounterAttChance=[[RED]]Chance de Contra-Ataque: [[YELLOW]]{0}% -m.SwordsBleedLength=[[RED]]Duraçao da Hemorragia: [[YELLOW]]{0} ticks -m.SwordsBleedChance=[[RED]]Chance de Hemorragia: [[YELLOW]]{0} % -m.SwordsParryChance=[[RED]]Chance de Desviar: [[YELLOW]]{0} % -m.SwordsSSLength=[[RED]]Duraçao do Ataques Cortantes: [[YELLOW]]{0}s -m.SwordsTickNote=[[GRAY]]NOTA: [[YELLOW]]1 sangramento a cada 2 segundos - -m.SkillAcrobatics=ACROBACIA -m.XPGainAcrobatics=Caindo -m.EffectsAcrobatics1_0=Rolar -m.EffectsAcrobatics1_1=Reduz ou anula o dano -m.EffectsAcrobatics2_0=Rolar com estilo -m.EffectsAcrobatics2_1=2 vezes mais efetivo de que "Rolar" -m.EffectsAcrobatics3_0=Esquivar -m.EffectsAcrobatics3_1=Reduz o dano pela metade -m.AcrobaticsRollChance=[[RED]]Chance de Rolar: [[YELLOW]]{0}% -m.AcrobaticsGracefulRollChance=[[RED]]Chance de Rolar com estilo: [[YELLOW]]{0}% -m.AcrobaticsDodgeChance=[[RED]]Chance de Esquivar: [[YELLOW]]{0}% - -m.SkillMining=MINERAÇAO -m.XPGainMining=Minerando Pedras e Minérios -m.EffectsMining1_0=Super Britadeira (HABILIDADE ESPECIAL) -m.EffectsMining1_1=+ Velocidade, Chance de Drop x3 -m.EffectsMining2_0=Drop x2 -m.EffectsMining2_1=Dobra a quantia de itens obtidos minerando -m.MiningDoubleDropChance=[[RED]]Chance de D/rop x2: [[YELLOW]]{0}% -m.MiningSuperBreakerLength=[[RED]]Duraçao da Super Britadeira: [[YELLOW]]{0}s - -m.SkillRepair=REPARAÇAO -m.XPGainRepair=Reparando itens -m.EffectsRepair1_0=Reparar -m.EffectsRepair1_1=Reparando Ferramentas e Armaduras de Ferro -m.EffectsRepair2_0=Mestre em Raparaçao -m.EffectsRepair2_1=Aumenta a quantia reparada -m.EffectsRepair3_0=Super Reparaçao -m.EffectsRepair3_1=Dobra a efetividade da Reparaçao -m.EffectsRepair4_0=Reparaçao de diamantes (Nível {0}) -m.EffectsRepair4_1=Rapara Ferramentas e Armaduras de Diamante -m.RepairRepairMastery=[[RED]]Mestre em Raparaçao: [[YELLOW]]{0}% extra restaurado -m.RepairSuperRepairChance=[[RED]]Chance de Super Reparaçao: [[YELLOW]]{0}% - -m.SkillUnarmed=DESARMADO -m.XPGainUnarmed=Atacando monstros -m.EffectsUnarmed1_0=Fúria (HABILIDADE ESPECIAL) -m.EffectsUnarmed1_1=+50% de Dano, Quebra materiais frágeis -m.EffectsUnarmed2_0=Desarmar (Jogadores) -m.EffectsUnarmed2_1=Derruba a arma que o adversário está segurando -m.EffectsUnarmed3_0=Mestre do Desarmamento -m.EffectsUnarmed3_1=Aumenta muito o Dano -m.EffectsUnarmed4_0=Aprendiz do Desarmamento -m.EffectsUnarmed4_1=Aumenta o Dano -m.EffectsUnarmed5_0=Desviar Flechas -m.EffectsUnarmed5_1=Desvia Flechas jogadas em você -m.AbilLockUnarmed1=DESBLOQUEIE NO NIVEL 250 (APRENDIZ DE DESARMAMENTO) -m.AbilLockUnarmed2=DESBLOQUEIE NO NIVEL 500 (MESTRE DE DESARMAMENTO) -m.AbilBonusUnarmed1_0=Aprendiz do Desarmamento -m.AbilBonusUnarmed1_1=+2 de Danos -m.AbilBonusUnarmed2_0=Mestre do Desarmamento -m.AbilBonusUnarmed2_1=+4 de Danos -m.UnarmedArrowDeflectChance=[[RED]]Chance de Desviar Flechas: [[YELLOW]]{0}% -m.UnarmedDisarmChance=[[RED]]Chance de Desarmar: [[YELLOW]]{0}% -m.UnarmedBerserkLength=[[RED]]Duraçao da Fúria: [[YELLOW]]{0}s - -m.SkillHerbalism=HERBALISMO -m.XPGainHerbalism=Colhendo Ervas -m.EffectsHerbalism1_0=Green Terra (HABILIDADE ESPECIAL) -m.EffectsHerbalism1_1=EXP x3, Drop x3 -m.EffectsHerbalism2_0=Dedos Verdes (Trigo) -m.EffectsHerbalism2_1=Planta automaticamente, ao colher trigo -m.EffectsHerbalism3_0=Dedos Verdes (Pedras) -m.EffectsHerbalism3_1=Transforma Cobblestone em Moss Stone (usa sementes) -m.EffectsHerbalism4_0=Comida+ -m.EffectsHerbalism4_1=Aumenta a vida recebida comendo pao ou sopa -m.EffectsHerbalism5_0=Drop x2 (Todas Ervas) -m.EffectsHerbalism5_1=Dobra a quantia de itens obtidos colhendo -m.HerbalismGreenTerraLength=[[RED]]Duraçao do Green Terra: [[YELLOW]]{0}s -m.HerbalismGreenThumbChance=[[RED]]Chance do Dedos Verdes: [[YELLOW]]{0}% -m.HerbalismGreenThumbStage=[[RED]]Nível do Dedos Verdes: [[YELLOW]] Trigo Cresce no Nível {0} -m.HerbalismDoubleDropChance=[[RED]]Chance de Drop x2: [[YELLOW]]{0}% -m.HerbalismFoodPlus=[[RED]]Comida+ (Rank{0}): [[YELLOW]]Bônus de {0} de vida - -m.SkillExcavation=ESCAVAÇAO -m.XPGainExcavation=Cavando e encontrando tesouros -m.EffectsExcavation1_0=Super Broca (HABILIDADE ESPECIAL) -m.EffectsExcavation1_1=Drop x3, EXP x3, mais velocidade -m.EffectsExcavation2_0=Caçad/or de Tesouros -m.EffectsExcavation2_1=Encontra itens raros enquanto cava -m.ExcavationGreenTerraLength=[[RED]]Duraçao da Super Broca: [[YELLOW]]{0}s - -mcBlockListener.PlacedAnvil=[[DARK_RED]] Você colocou uma bigorna, a bigorna pode reparar ferramentas e armaduras. -mcEntityListener.WolfComesBack=[[DARK_GRAY]]Seu lobo voltou para você... -mcPlayerListener.AbilitiesOff=Habilidade especial desabilitada -mcPlayerListener.AbilitiesOn=Habilidade especial ativada -mcPlayerListener.AbilitiesRefreshed=[[GREEN]]*HABILIDAE DISPONIVEL\!* -mcPlayerListener.AcrobaticsSkill=Acrobacia (Acrobatics): -mcPlayerListener.ArcherySkill=Arqueiro (Archery): -mcPlayerListener.AxesSkill=Machado (Axes): -mcPlayerListener.ExcavationSkill=Escavaçao (Excavation): -mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Modo Deus Desabilitado -mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Modo Deus Ativo -mcPlayerListener.GreenThumb=[[GREEN]]*DEDOS VERDES* -mcPlayerListener.GreenThumbFail=[[RED]]*DEDOS VERDES FALHOU* -mcPlayerListener.HerbalismSkill=Herbalismo (Herbalism): -mcPlayerListener.MiningSkill=Mineraçao (Mining): -mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Ponto de Spawn foi apagado. -mcPlayerListener.MyspawnNotExist=[[RED]]Primeiro crie um spawn durmindo na cama. -mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Spawn foi gravado neste local. -mcPlayerListener.MyspawnTimeNotice=Você precisa esperar {0}m {1}s para usar "myspawn" -mcPlayerListener.NoPermission=Nao tem permissao para realizar esta açao. -mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Se você nao tem acesso a uma habilidade, ela nao será exibida aqui. -mcPlayerListener.NotInParty=[[RED]]Você nao está em nenhuma equipe. -mcPlayerListener.InviteSuccess=[[GREEN]]Convite enviado. -mcPlayerListener.ReceivedInvite1=[[RED]]ALERTA: [[GREEN]]Você recebeu um convite do {1} para a equipe {0}. -mcPlayerListener.ReceivedInvite2=[[YELLOW]]Digite [[GREEN]]/{0}[[YELLOW]] para aceitar o convite -mcPlayerListener.InviteAccepted=[[GREEN]]Convite aceito. Você se juntou a equipe {0} -mcPlayerListener.NoInvites=[[RED]]Você nao tem convites pendentes. -mcPlayerListener.YouAreInParty=[[GREEN]]Você está na equipe {0} -mcPlayerListener.PartyMembers=[[GREEN]]Membros da Equipe -mcPlayerListener.LeftParty=[[RED]]Você saiu da equipe -mcPlayerListener.JoinedParty=Sua Equipe: {0} -mcPlayerListener.PartyChatOn=Chat da Equipe [[GREEN]]On -mcPlayerListener.PartyChatOff=Chat da Equipe [[RED]]Off -mcPlayerListener.AdminChatOn=Chat do Admin [[GREEN]]On -mcPlayerListener.AdminChatOff=Chat do Admin [[RED]]Off -mcPlayerListener.MOTD=[[BLUE]]Esse Server está rodando o mcMMO {0} digite [[YELLOW]]/{1}[[BLUE]] para obter ajuda. -mcPlayerListener.WIKI=[[BLUE]]Para mais informaçoes - [[GREEN]]http://mcmmo.wikia.com -mcPlayerListener.PowerLevel=[[RED]]NIVEL TOTAL: -mcPlayerListener.PowerLevelLeaderboard=[[BLUE]]-Classificaçao - [[GREEN]]Nível - [[WHITE]]Jogador- -mcPlayerListener.SkillLeaderboard=[[BLUE]]-Classificaçao em [[GREEN]]{0} -mcPlayerListener.RepairSkill=Reparaçao (Repair): -mcPlayerListener.SwordsSkill=Espadas (Swords): -mcPlayerListener.TamingSkill=Domar (Taming): -mcPlayerListener.UnarmedSkill=Desarmado (Unarmed): -mcPlayerListener.WoodcuttingSkill=Lenhador (Woodcutting): -mcPlayerListener.YourStats=[[GREEN]][mcMMO] Estatísticas -Party.InformedOnJoin={0} [[GREEN]] entrou na equipe -Party.InformedOnQuit={0} [[GREEN]] saiu da equipe - -Skills.YourGreenTerra=[[GREEN]]Sua habilidade [[YELLOW]]Green Terra [[GREEN]]está disponível! -Skills.YourTreeFeller=[[GREEN]]Sua habilidade [[YELLOW]]Derrubador de Arvores [[GREEN]]está disponível! -Skills.YourSuperBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Britadeira [[GREEN]]está disponível! -Skills.YourSerratedStrikes=[[GREEN]]Sua habilidade [[YELLOW]]Ataques Cortantes [[GREEN]]está disponível! -Skills.YourBerserk=[[GREEN]]Sua habilidade [[YELLOW]]Fúria [[GREEN]]está disponível! -Skills.YourSkullSplitter=[[GREEN]]Sua habilidade [[YELLOW]]Rachador de Crânios [[GREEN]]está disponível! -Skills.YourGigaDrillBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Broca [[GREEN]]está disponível! -Skills.TooTired=[[RED]]Você está cansado pra usar essa habilidade. -Skills.ReadyHoe=[[GREEN]]*ENXADA PRONTA PARA USAR GREEN TERRA* -Skills.LowerHoe=[[GRAY]]*DESCARREGOU A ENXADA* -Skills.ReadyAxe=[[GREEN]]*MACHADO PRONTO PARA USAR DERRUBADOR DE ARVORES* -Skills.LowerAxe=[[GRAY]]*DESCARREGOU O MACHADO* -Skills.ReadyFists=[[GREEN]]*PUNHO PRONTO PARA USAR FURIA* -Skills.LowerFists=[[GRAY]]*DESCARREGOU O PUNHO* -Skills.ReadyPickAxe=[[GREEN]]*PICARETA PRONTA PARA USAR SUPER BRITADEIRA* -Skills.LowerPickAxe=[[GRAY]]*DESCARREGOU A PICARETA* -Skills.ReadyShovel=[[GREEN]]*PA PRONTA PARA USAR SUPER BROCA* -Skills.LowerShovel=[[GRAY]]*DESCARREGOU A PA* -Skills.ReadySword=[[GREEN]]*ESPADA PRONTA PARA USAR ATAQUES CORTANTES* -Skills.LowerSword=[[GRAY]]*DESCARREGOU A ESPADA* -Skills.BerserkOn=[[GREEN]]*FURIA ATIVADA* -Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] Usou a [[RED]]Fúria! -Skills.GreenTerraOn=[[GREEN]]*GREEN TERRA ATIVADO* -Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Green Terra! -Skills.TreeFellerOn=[[GREEN]]*DERRUBADOR E ARVORES ATIVADO* -Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Tree Feller! -Skills.SuperBreakerOn=[[GREEN]]*SUPER BRITADEIRA ATIVADA* -Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Super Britadeira! -Skills.SerratedStrikesOn=[[GREEN]]*ATAQUES CORTANTES ATIVADO* -Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Ataques Cortantes! -Skills.SkullSplitterOn=[[GREEN]]*RACHADOR DE CRANIOS ATIVADO* -Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Rachador de Crânios! -Skills.GigaDrillBreakerOn=[[GREEN]]*SUPER BROCA ATIVADO* -Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Super Broca! -Skills.GreenTerraOff=[[RED]]*Green Terra acabou* -Skills.TreeFellerOff=[[RED]]*Derrubador de Arvores acabou* -Skills.SuperBreakerOff=[[RED]]*Super Britadeira acabou* -Skills.SerratedStrikesOff=[[RED]]*Ataques Cortantes acabou* -Skills.BerserkOff=[[RED]]*Fúria acabou* -Skills.SkullSplitterOff=[[RED]]*Rachador de Crânios acabou* -Skills.GigaDrillBreakerOff=[[RED]]*Super Broca acabou* -Skills.TamingUp=[[YELLOW]]Habilidade de Domar aumentada em {0}. Total ({1}) -Skills.AcrobaticsUp=[[YELLOW]]Habilidade Acrobacia aumentada em {0}. Total ({1}) -Skills.ArcheryUp=[[YELLOW]]Habilidade de Arqueiro aumentada em {0}. Total ({1}) -Skills.SwordsUp=[[YELLOW]]Habilidade com Espadas aumentada em {0}. Total ({1}) -Skills.AxesUp=[[YELLOW]]Habilidade com Machados aumentada em {0}. Total ({1}) -Skills.UnarmedUp=[[YELLOW]]Habilidade Desarmado aumentada em {0}. Total ({1}) -Skills.HerbalismUp=[[YELLOW]]Habilidade Herbalismo aumentada em {0}. Total ({1}) -Skills.MiningUp=[[YELLOW]]Habilidade de Mineraçao aumentada em {0}. Total ({1}) -Skills.WoodcuttingUp=[[YELLOW]]Habilidade de Lenhador aumentada em {0}. Total ({1}) -Skills.RepairUp=[[YELLOW]]Habilidade de Reparaçao aumentada em {0}. Total ({1}) -Skills.ExcavationUp=[[YELLOW]]Habilidade de Escavaçao aumentada em {0}. Total ({1}) -Skills.FeltEasy=[[GRAY]]Essa foi fácil. -Skills.StackedItems=[[DARK_RED]]Nao pode reparar itens empilhados juntos. -Skills.NeedMore=[[DARK_RED]]Você precisa de mais -Skills.AdeptDiamond=[[DARK_RED]]Você nao tem o nível necessário para reparar Diamante -Skills.FullDurability=[[GRAY]]Já está com Durabilidade cheia. -Skills.Disarmed=[[DARK_RED]]Você foi Desarmado! -mcPlayerListener.SorcerySkill=Feitiçaria (Sorcery): - -m.SkillSorcery=FEITIÇARIA -Sorcery.HasCast=[[GREEN]]*CASTING*[[GOLD]] -Sorcery.Current_Mana=[[DARK_AQUA]]MP -Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) -Sorcery.Cost=[[RED]][COST] {0} MP -Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Sem Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) -Sorcery.Water.Thunder=TROVAO -Sorcery.Curative.Self=CURAR-SE -Sorcery.Curative.Other=CURAR AMIGOS - -m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) -Combat.BeastLore=[[GREEN]]*CONHECIMENTO DE FERAS* -Combat.BeastLoreOwner=[[DARK_AQUA]]Dono ([[RED]]{0}[[DARK_AQUA]]) -Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20) -Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Vida ([[GREEN]]{0}[[DARK_AQUA]]/8) -mcMMO.Description=[[DARK_AQUA]]Q: O QUE E? [[GOLD]]mcMMO é um mod [[RED]]OPEN SOURCE[[GOLD]] de RPG para a plataforma "Bukkit" feito por [[BLUE]]nossr50.[[GOLD]] Ele acresenta uma série de habilidades ao Minecraft. [[GOLD]]Você pode ganhar experiência de muitas maneiras.,[[GOLD]]Digite [[GREEN]]/NOME_DA_HABILIDADE[[GOLD]] para obter informaçoes sobre a habilidade.,[[DARK_AQUA]]Q: O QUE ELE FAZ? [[GOLD]]Por exemplo... em [[DARK_AQUA]]Mineraçao[[GOLD]] você receberá benefícios tais como [[RED]]Drop x2[[GOLD]] ou a habilidade [[RED]]Super Esmagador.[[GOLD]] que quando ativada com o clique direito permite minerar rapidamente durante sua duraçao. [[GOLD]]que depende do nível da sua habilidade. Aumentar o nível de [[BLUE]]Mineraçao[[GOLD]] é simples. basta minerar pedras ou minérios!,[[GOLD]]O objetivo do mcMMO é criar uma experiência de RPG de qualidade.,[[GOLD]]Digite [[GREEN]]/{0}[[GOLD]] para uma lista de comandos possíveis.,[[DARK_AQUA]]Q: ONDE POSSO SUGERIR IDEIAS!?,[[GOLD]]No tópico do mcMMO no fórum bukkit! (www.bit.ly/MCmmoIDEA),[[DARK_AQUA]]Q: Para mais informaçoes. leia a wiki do McMMO: [[RED]]mcmmo.wikia.com -Party.Locked=[[RED]]Equipe está trancada, só o líder pode convidar. -Party.IsntLocked=[[GRAY]]Equipe nao está trancada -Party.Unlocked=[[GRAY]]Equipe foi Destrancada -Party.Help1=[[RED]]O uso certo é [[YELLOW]]/{0} [[WHITE]][[YELLOW]] ou [[WHITE]]'q' [[YELLOW]]para sair -Party.Help2=[[RED]]Para entrar em uma equipe com senha use [[YELLOW]]/{0} [[WHITE]] -Party.Help3=[[RED]]Consulte /{0} ? para mais informaçoes -Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]para entrar em uma equipe ou [[WHITE]]'q' [[YELLOW]]para sair -Party.Help5=[[RED]]Para trancar sua equipe use [[YELLOW]]/{0} [[WHITE]]lock -Party.Help6=[[RED]]Para destrancar sua equipe use [[YELLOW]]/{0} [[WHITE]]unlock -Party.Help7=[[RED]]Para colocar senha na sua equipe use [[YELLOW]]/{0} [[WHITE]]password -Party.Help8=[[RED]]Para excluir um jogador da equipe use [[YELLOW]]/{0} [[WHITE]]kick -Party.Help9=[[RED]]Para transferir a liderança da equipe use [[YELLOW]]/{0} [[WHITE]]owner -Party.NotOwner=[[DARK_RED]]Você nao é o líder da equipe -Party.InvalidName=[[DARK_RED]]Este nome nao é valido -Party.PasswordSet=[[GREEN]]Senha da equipe: {0} -Party.CouldNotKick=[[DARK_RED]]Nao foi possível excluir o jogador {0} -Party.NotInYourParty=[[DARK_RED]]{0} nao está na sua equipe -Party.CouldNotSetOwner=[[DARK_RED]]Nao foi possível passar a liderança para {0} -Commands.xprate.proper=[[DARK_AQUA]]Uso certo é /{0} [integer] [true:false] -Commands.xprate.proper2=[[DARK_AQUA]]Também pode digitar /{0} reset para voltar tudo ao padrao -Commands.xprate.proper3=[[RED]]Enter true or false for the second value -Commands.xprate.over=[[RED]]Evento de XP Rate acabou!! -Commands.xprate.started=[[GOLD]]EVENTO DE XP COMEÇOU! -Commands.xprate.started2=[[GOLD]]XP RATE AGORA é {0}x!! -Commands.xplock.locked=[[GOLD]]Sua barra de XP BAR está travada em {0}! -Commands.xplock.unlocked=[[GOLD]]Sua barra de XP foi [[GREEN]]DESTRAVADA[[GOLD]]! -Commands.xplock.invalid=[[RED]]Nao existe habilidade com esse nome! Tente /xplock mining -m.SkillAlchemy=ALCHEMY -m.SkillEnchanting=ENCHANTING -m.SkillFishing=FISHING -mcPlayerListener.AlchemySkill=Alchemy: -mcPlayerListener.EnchantingSkill=Enchanting: -mcPlayerListener.FishingSkill=Fishing: -Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) -Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) -Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) -Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. -Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. -Repair.Downgraded=[[RED]]Arcane power has decreased for this item. -Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. -m.EffectsRepair5_0=Arcane Forging -m.EffectsRepair5_1=Repair magic items -m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 -m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% -m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% -m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, -m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... -Fishing.ItemFound=[[GRAY]]Treasure found! -m.SkillFishing=FISHING -m.XPGainFishing=Fishing (Go figure!) -m.EffectsFishing1_0=Treasure Hunter (Passive) -m.EffectsFishing1_1=Fish up misc objects -m.EffectsFishing2_0=Magic Hunter -m.EffectsFishing2_1=Find Enchanted Items -m.EffectsFishing3_0=Shake (vs. Entities) -m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole -m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 -m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** -m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; -m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) -m.TamingSummon=[[GREEN]]Summoning complete -m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. -m.EffectsTaming7_0=Call of the Wild -m.EffectsTaming7_1=Summon a wolf to your side +Combat.WolfExamine=[[GREEN]]*Você examinou um lobo usando Conhecimento de Feras* +Combat.WolfShowMaster=[[DARK_GREEN]]O Mestre das Feras \: {0} +Combat.Ignition=[[RED]]*IGNIÇAO* +Combat.BurningArrowHit=[[DARK_RED]]Você foi atingido por uma flecha flamejante\! +Combat.TouchedFuzzy=[[DARK_RED]]Visao turva. Sente Tonturas. +Combat.TargetDazed=Alvo foi [[DARK_RED]]Atordoado +Combat.WolfNoMaster=[[GRAY]]Esse Animal nao tem um mestre... +Combat.WolfHealth=[[GREEN]]Esse animal tem {0} de vida +Combat.StruckByGore=[[RED]]*ATINGIDO POR MORDIDA* +Combat.Gore=[[GREEN]]*MORDIDA* +Combat.ArrowDeflect=[[WHITE]]*DESVIOU A FLECHA* +Item.ChimaeraWingFail=*ASA QUIMERA FALHOU\!* +Item.ChimaeraWingPass=*ASA QUIMERA* +Item.InjuredWait=Você foi ferido recentemente e tem que esperar para usar isto. [[YELLOW]]({0}s) +Item.NeedFeathers=[[GRAY]]Você precisa de mais penas... +m.mccPartyCommands=[[GREEN]]--COMANDOS DE EQUIPES-- +m.mccParty=[party name] [[RED]]- Criar/Juntar-se a uma equipe +m.mccPartyQ=[[RED]]- Sair da equipe atual +m.mccPartyToggle=[[RED]] - Ligar/Desligar chat da equipe +m.mccPartyInvite=[player name] [[RED]]- Enviar um convite +m.mccPartyAccept=[[RED]]- Aceitar convite +m.mccPartyTeleport=[party member name] [[RED]]- Teleportar para um membro de equipe +m.mccOtherCommands=[[GREEN]]--OUTROS COMANDOS-- +m.mccStats=- Ver seus status +m.mccLeaderboards=- Classificaçao +m.mccMySpawn=- Teleportar para o spawn +m.mccClearMySpawn=- Remove o Ponto de Spawn +m.mccToggleAbility=- Ativa habilidades especiais com botao direito +m.mccAdminToggle=- Ativa o chat dos admin +m.mccWhois=[playername] [[RED]]- Ver informaçoes do jogador +m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modificar atributos do jogador +m.mccMcGod=- Modo Deus +m.mccSkillInfo=[skillname] [[RED]]- Ver informaçoes sobre a habilidade +m.mccModDescription=[[RED]]- Breve descriçao do Mod +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]COMO GANHA XP: [[WHITE]]{0} +m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} +m.AbilityLockTemplate=[[GRAY]]{0} +m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} +m.Effects=EFEITOS +m.YourStats=SUAS ESTATISTICAS +m.SkillTaming=DOMESTICAR +m.XPGainTaming=Ataque com um lobo +m.EffectsTaming1_0=Conhecimento de Feras +m.EffectsTaming1_1=Inspeciona um lobo com um osso +m.EffectsTaming2_0=Mordida +m.EffectsTaming2_1=Ataque crítico que causa hemorragia +m.EffectsTaming3_0=Garras afiadas +m.EffectsTaming3_1=Bônus de Dano +m.EffectsTaming4_0=Consciência do Ambiente +m.EffectsTaming4_1=Medo de Cactos e Lava, Imune a Dano por queda +m.EffectsTaming5_0=Pele Grossa +m.EffectsTaming5_1=Reduçao nos Danos, Resistência ao fogo +m.EffectsTaming6_0=A Prova de Choque +m.EffectsTaming6_1=Reduz danos tomados com explosivos +m.AbilLockTaming1=DESBLOQUEIE NO NIVEL 100 (Conciência do ambiente) +m.AbilLockTaming2=DESBLOQUEIE NO NIVEL 250 (Pele grossa) +m.AbilLockTaming3=DESBLOQUEIE NO NIVEL 500 (A prova de choque) +m.AbilLockTaming4=DESBLOQUEIE NO NIVEL 750 (Garras afiadas) +m.AbilBonusTaming1_0=Conciência do ambiente +m.AbilBonusTaming1_1=Lobos evitam perigo +m.AbilBonusTaming2_0=Pele grossa +m.AbilBonusTaming2_1=Danos pela metade, Resistência ao fogo +m.AbilBonusTaming3_0=A prova de choque +m.AbilBonusTaming3_1=Explosivos causam 1/6 do dano normal +m.AbilBonusTaming4_0=Garras afiadas +m.AbilBonusTaming4_1=+2 Dano +m.TamingGoreChance=[[RED]]Chance de Mordida: [[YELLOW]]{0}% + +m.SkillWoodCutting=LENHADOR +m.XPGainWoodCutting=Cortando árvores +m.EffectsWoodCutting1_0=Derrubador de árvores (HABILIDADE ESPECIAL) +m.EffectsWoodCutting1_1=Explode árvores +m.EffectsWoodCutting2_0=Soprador de Folhas +m.EffectsWoodCutting2_1=Destrói folhas rapidamente +m.EffectsWoodCutting3_0=Drop x2 +m.EffectsWoodCutting3_1=Dobra a quantidade de item dropados +m.AbilLockWoodCutting1=DESBLOQUEIE NO NIVEL 100 (SOPRADOR DE FOLHAS) +m.AbilBonusWoodCutting1_0=Soprador de Folhas +m.AbilBonusWoodCutting1_1=Destrói folhas rapidamente +m.WoodCuttingDoubleDropChance=[[RED]]Chance de Drop x2: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Duraçao do Derrubador de árvores: [[YELLOW]]{0}s + +m.SkillArchery=ARCO E FLECHA +m.XPGainArchery=Atacando monstros/ +m.EffectsArchery1_0=Igniçao +m.EffectsArchery1_1=25% de chance dos inimigos pegarem fogo +m.EffectsArchery2_0=Atordoar (Jogadores) +m.EffectsArchery2_1=Desorienta os adversários +m.EffectsArchery3_0=+Dano +m.EffectsArchery3_1=Aumenta o Dano +m.EffectsArchery4_0=Recuperar Flechas +m.EffectsArchery4_1=Chance de recuperar flechas de corpos +m.ArcheryDazeChance=[[RED]]Chance de atordoar: [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Chance de recuperar flechas: [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Duraçao da Igniçao: [[YELLOW]]{0}s +m.ArcheryDamagePlus=[[RED]]+Dano (Rank{0}): [[YELLOW]]Bonus de {0} dano + +m.SkillAxes=MACHADOS +m.XPGainAxes=Atacando monstros +m.EffectsAxes1_0=Rachador de Crânios (HABILIDADE ESPECIAL) +m.EffectsAxes1_1=Causa Danos em Area +m.EffectsAxes2_0=Ataques Críticos +m.EffectsAxes2_1=Dobra o Dano +m.EffectsAxes3_0=Mestre com Machados (NIVEL 500) +m.EffectsAxes3_1=Aumenta o Dano +m.AbilLockAxes1=DESBLOQUEIE NO NIVEL 500 (Mestre com Machados) +m.AbilBonusAxes1_0=Mestre com Machados/ +m.AbilBonusAxes1_1=Bônus de 4 de dano +m.AxesCritChance=[[RED]]Chance ataque crítico: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Duraçao do Rachador de Crânios: [[YELLOW]]{0}s + +m.SkillSwords=ESPADAS +m.XPGainSwords=Atacando monstros +m.EffectsSwords1_0=Contra-Ataque +m.EffectsSwords1_1=Retorna 50% do dano tomado +m.EffectsSwords2_0=Ataques Cortantes (HABILIDADE ESPECIAL) +m.EffectsSwords2_1=25% de Danos em Area, e Efeito de Hemorraria +m.EffectsSwords3_0=Ataque Cortante com Hemorragia +m.EffectsSwords3_1=5 Sangramentos +m.EffectsSwords4_0=Desviar +m.EffectsSwords4_1=Anula o Dano +m.EffectsSwords5_0=Hemorragia +m.EffectsSwords5_1=Causa sangramentos repetidos ao longo do tempo +m.SwordsCounterAttChance=[[RED]]Chance de Contra-Ataque: [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Duraçao da Hemorragia: [[YELLOW]]{0} ticks +m.SwordsBleedChance=[[RED]]Chance de Hemorragia: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Chance de Desviar: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Duraçao do Ataques Cortantes: [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]NOTA: [[YELLOW]]1 sangramento a cada 2 segundos + +m.SkillAcrobatics=ACROBACIA +m.XPGainAcrobatics=Caindo +m.EffectsAcrobatics1_0=Rolar +m.EffectsAcrobatics1_1=Reduz ou anula o dano +m.EffectsAcrobatics2_0=Rolar com estilo +m.EffectsAcrobatics2_1=2 vezes mais efetivo de que "Rolar" +m.EffectsAcrobatics3_0=Esquivar +m.EffectsAcrobatics3_1=Reduz o dano pela metade +m.AcrobaticsRollChance=[[RED]]Chance de Rolar: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Chance de Rolar com estilo: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Chance de Esquivar: [[YELLOW]]{0}% + +m.SkillMining=MINERAÇAO +m.XPGainMining=Minerando Pedras e Minérios +m.EffectsMining1_0=Super Britadeira (HABILIDADE ESPECIAL) +m.EffectsMining1_1=+ Velocidade, Chance de Drop x3 +m.EffectsMining2_0=Drop x2 +m.EffectsMining2_1=Dobra a quantia de itens obtidos minerando +m.MiningDoubleDropChance=[[RED]]Chance de D/rop x2: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Duraçao da Super Britadeira: [[YELLOW]]{0}s + +m.SkillRepair=REPARAÇAO +m.XPGainRepair=Reparando itens +m.EffectsRepair1_0=Reparar +m.EffectsRepair1_1=Reparando Ferramentas e Armaduras de Ferro +m.EffectsRepair2_0=Mestre em Raparaçao +m.EffectsRepair2_1=Aumenta a quantia reparada +m.EffectsRepair3_0=Super Reparaçao +m.EffectsRepair3_1=Dobra a efetividade da Reparaçao +m.EffectsRepair4_0=Reparaçao de diamantes (Nível {0}) +m.EffectsRepair4_1=Rapara Ferramentas e Armaduras de Diamante +m.RepairRepairMastery=[[RED]]Mestre em Raparaçao: [[YELLOW]]{0}% extra restaurado +m.RepairSuperRepairChance=[[RED]]Chance de Super Reparaçao: [[YELLOW]]{0}% + +m.SkillUnarmed=DESARMADO +m.XPGainUnarmed=Atacando monstros +m.EffectsUnarmed1_0=Fúria (HABILIDADE ESPECIAL) +m.EffectsUnarmed1_1=+50% de Dano, Quebra materiais frágeis +m.EffectsUnarmed2_0=Desarmar (Jogadores) +m.EffectsUnarmed2_1=Derruba a arma que o adversário está segurando +m.EffectsUnarmed3_0=Mestre do Desarmamento +m.EffectsUnarmed3_1=Aumenta muito o Dano +m.EffectsUnarmed4_0=Aprendiz do Desarmamento +m.EffectsUnarmed4_1=Aumenta o Dano +m.EffectsUnarmed5_0=Desviar Flechas +m.EffectsUnarmed5_1=Desvia Flechas jogadas em você +m.AbilLockUnarmed1=DESBLOQUEIE NO NIVEL 250 (APRENDIZ DE DESARMAMENTO) +m.AbilLockUnarmed2=DESBLOQUEIE NO NIVEL 500 (MESTRE DE DESARMAMENTO) +m.AbilBonusUnarmed1_0=Aprendiz do Desarmamento +m.AbilBonusUnarmed1_1=+2 de Danos +m.AbilBonusUnarmed2_0=Mestre do Desarmamento +m.AbilBonusUnarmed2_1=+4 de Danos +m.UnarmedArrowDeflectChance=[[RED]]Chance de Desviar Flechas: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Chance de Desarmar: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Duraçao da Fúria: [[YELLOW]]{0}s + +m.SkillHerbalism=HERBALISMO +m.XPGainHerbalism=Colhendo Ervas +m.EffectsHerbalism1_0=Green Terra (HABILIDADE ESPECIAL) +m.EffectsHerbalism1_1=EXP x3, Drop x3 +m.EffectsHerbalism2_0=Dedos Verdes (Trigo) +m.EffectsHerbalism2_1=Planta automaticamente, ao colher trigo +m.EffectsHerbalism3_0=Dedos Verdes (Pedras) +m.EffectsHerbalism3_1=Transforma Cobblestone em Moss Stone (usa sementes) +m.EffectsHerbalism4_0=Comida+ +m.EffectsHerbalism4_1=Aumenta a vida recebida comendo pao ou sopa +m.EffectsHerbalism5_0=Drop x2 (Todas Ervas) +m.EffectsHerbalism5_1=Dobra a quantia de itens obtidos colhendo +m.HerbalismGreenTerraLength=[[RED]]Duraçao do Green Terra: [[YELLOW]]{0}s +m.HerbalismGreenThumbChance=[[RED]]Chance do Dedos Verdes: [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Nível do Dedos Verdes: [[YELLOW]] Trigo Cresce no Nível {0} +m.HerbalismDoubleDropChance=[[RED]]Chance de Drop x2: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Comida+ (Rank{0}): [[YELLOW]]Bônus de {0} de vida + +m.SkillExcavation=ESCAVAÇAO +m.XPGainExcavation=Cavando e encontrando tesouros +m.EffectsExcavation1_0=Super Broca (HABILIDADE ESPECIAL) +m.EffectsExcavation1_1=Drop x3, EXP x3, mais velocidade +m.EffectsExcavation2_0=Caçad/or de Tesouros +m.EffectsExcavation2_1=Encontra itens raros enquanto cava +m.ExcavationGreenTerraLength=[[RED]]Duraçao da Super Broca: [[YELLOW]]{0}s + +mcBlockListener.PlacedAnvil=[[DARK_RED]] Você colocou uma bigorna, a bigorna pode reparar ferramentas e armaduras. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]Seu lobo voltou para você... +mcPlayerListener.AbilitiesOff=Habilidade especial desabilitada +mcPlayerListener.AbilitiesOn=Habilidade especial ativada +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]*HABILIDAE DISPONIVEL\!* +mcPlayerListener.AcrobaticsSkill=Acrobacia (Acrobatics): +mcPlayerListener.ArcherySkill=Arqueiro (Archery): +mcPlayerListener.AxesSkill=Machado (Axes): +mcPlayerListener.ExcavationSkill=Escavaçao (Excavation): +mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Modo Deus Desabilitado +mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Modo Deus Ativo +mcPlayerListener.GreenThumb=[[GREEN]]*DEDOS VERDES* +mcPlayerListener.GreenThumbFail=[[RED]]*DEDOS VERDES FALHOU* +mcPlayerListener.HerbalismSkill=Herbalismo (Herbalism): +mcPlayerListener.MiningSkill=Mineraçao (Mining): +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Ponto de Spawn foi apagado. +mcPlayerListener.MyspawnNotExist=[[RED]]Primeiro crie um spawn durmindo na cama. +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Spawn foi gravado neste local. +mcPlayerListener.MyspawnTimeNotice=Você precisa esperar {0}m {1}s para usar "myspawn" +mcPlayerListener.NoPermission=Nao tem permissao para realizar esta açao. +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Se você nao tem acesso a uma habilidade, ela nao será exibida aqui. +mcPlayerListener.NotInParty=[[RED]]Você nao está em nenhuma equipe. +mcPlayerListener.InviteSuccess=[[GREEN]]Convite enviado. +mcPlayerListener.ReceivedInvite1=[[RED]]ALERTA: [[GREEN]]Você recebeu um convite do {1} para a equipe {0}. +mcPlayerListener.ReceivedInvite2=[[YELLOW]]Digite [[GREEN]]/{0}[[YELLOW]] para aceitar o convite +mcPlayerListener.InviteAccepted=[[GREEN]]Convite aceito. Você se juntou a equipe {0} +mcPlayerListener.NoInvites=[[RED]]Você nao tem convites pendentes. +mcPlayerListener.YouAreInParty=[[GREEN]]Você está na equipe {0} +mcPlayerListener.PartyMembers=[[GREEN]]Membros da Equipe +mcPlayerListener.LeftParty=[[RED]]Você saiu da equipe +mcPlayerListener.JoinedParty=Sua Equipe: {0} +mcPlayerListener.PartyChatOn=Chat da Equipe [[GREEN]]On +mcPlayerListener.PartyChatOff=Chat da Equipe [[RED]]Off +mcPlayerListener.AdminChatOn=Chat do Admin [[GREEN]]On +mcPlayerListener.AdminChatOff=Chat do Admin [[RED]]Off +mcPlayerListener.MOTD=[[BLUE]]Esse Server está rodando o mcMMO {0} digite [[YELLOW]]/{1}[[BLUE]] para obter ajuda. +mcPlayerListener.WIKI=[[BLUE]]Para mais informaçoes - [[GREEN]]http://mcmmo.wikia.com +mcPlayerListener.PowerLevel=[[RED]]NIVEL TOTAL: +mcPlayerListener.PowerLevelLeaderboard=[[BLUE]]-Classificaçao - [[GREEN]]Nível - [[WHITE]]Jogador- +mcPlayerListener.SkillLeaderboard=[[BLUE]]-Classificaçao em [[GREEN]]{0} +mcPlayerListener.RepairSkill=Reparaçao (Repair): +mcPlayerListener.SwordsSkill=Espadas (Swords): +mcPlayerListener.TamingSkill=Domar (Taming): +mcPlayerListener.UnarmedSkill=Desarmado (Unarmed): +mcPlayerListener.WoodcuttingSkill=Lenhador (Woodcutting): +mcPlayerListener.YourStats=[[GREEN]][mcMMO] Estatísticas +Party.InformedOnJoin={0} [[GREEN]] entrou na equipe +Party.InformedOnQuit={0} [[GREEN]] saiu da equipe + +Skills.YourGreenTerra=[[GREEN]]Sua habilidade [[YELLOW]]Green Terra [[GREEN]]está disponível! +Skills.YourTreeFeller=[[GREEN]]Sua habilidade [[YELLOW]]Derrubador de Arvores [[GREEN]]está disponível! +Skills.YourSuperBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Britadeira [[GREEN]]está disponível! +Skills.YourSerratedStrikes=[[GREEN]]Sua habilidade [[YELLOW]]Ataques Cortantes [[GREEN]]está disponível! +Skills.YourBerserk=[[GREEN]]Sua habilidade [[YELLOW]]Fúria [[GREEN]]está disponível! +Skills.YourSkullSplitter=[[GREEN]]Sua habilidade [[YELLOW]]Rachador de Crânios [[GREEN]]está disponível! +Skills.YourGigaDrillBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Broca [[GREEN]]está disponível! +Skills.TooTired=[[RED]]Você está cansado pra usar essa habilidade. +Skills.ReadyHoe=[[GREEN]]*ENXADA PRONTA PARA USAR GREEN TERRA* +Skills.LowerHoe=[[GRAY]]*DESCARREGOU A ENXADA* +Skills.ReadyAxe=[[GREEN]]*MACHADO PRONTO PARA USAR DERRUBADOR DE ARVORES* +Skills.LowerAxe=[[GRAY]]*DESCARREGOU O MACHADO* +Skills.ReadyFists=[[GREEN]]*PUNHO PRONTO PARA USAR FURIA* +Skills.LowerFists=[[GRAY]]*DESCARREGOU O PUNHO* +Skills.ReadyPickAxe=[[GREEN]]*PICARETA PRONTA PARA USAR SUPER BRITADEIRA* +Skills.LowerPickAxe=[[GRAY]]*DESCARREGOU A PICARETA* +Skills.ReadyShovel=[[GREEN]]*PA PRONTA PARA USAR SUPER BROCA* +Skills.LowerShovel=[[GRAY]]*DESCARREGOU A PA* +Skills.ReadySword=[[GREEN]]*ESPADA PRONTA PARA USAR ATAQUES CORTANTES* +Skills.LowerSword=[[GRAY]]*DESCARREGOU A ESPADA* +Skills.BerserkOn=[[GREEN]]*FURIA ATIVADA* +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] Usou a [[RED]]Fúria! +Skills.GreenTerraOn=[[GREEN]]*GREEN TERRA ATIVADO* +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Green Terra! +Skills.TreeFellerOn=[[GREEN]]*DERRUBADOR E ARVORES ATIVADO* +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Tree Feller! +Skills.SuperBreakerOn=[[GREEN]]*SUPER BRITADEIRA ATIVADA* +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Super Britadeira! +Skills.SerratedStrikesOn=[[GREEN]]*ATAQUES CORTANTES ATIVADO* +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Ataques Cortantes! +Skills.SkullSplitterOn=[[GREEN]]*RACHADOR DE CRANIOS ATIVADO* +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Rachador de Crânios! +Skills.GigaDrillBreakerOn=[[GREEN]]*SUPER BROCA ATIVADO* +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] usou [[RED]]Super Broca! +Skills.GreenTerraOff=[[RED]]*Green Terra acabou* +Skills.TreeFellerOff=[[RED]]*Derrubador de Arvores acabou* +Skills.SuperBreakerOff=[[RED]]*Super Britadeira acabou* +Skills.SerratedStrikesOff=[[RED]]*Ataques Cortantes acabou* +Skills.BerserkOff=[[RED]]*Fúria acabou* +Skills.SkullSplitterOff=[[RED]]*Rachador de Crânios acabou* +Skills.GigaDrillBreakerOff=[[RED]]*Super Broca acabou* +Skills.TamingUp=[[YELLOW]]Habilidade de Domar aumentada em {0}. Total ({1}) +Skills.AcrobaticsUp=[[YELLOW]]Habilidade Acrobacia aumentada em {0}. Total ({1}) +Skills.ArcheryUp=[[YELLOW]]Habilidade de Arqueiro aumentada em {0}. Total ({1}) +Skills.SwordsUp=[[YELLOW]]Habilidade com Espadas aumentada em {0}. Total ({1}) +Skills.AxesUp=[[YELLOW]]Habilidade com Machados aumentada em {0}. Total ({1}) +Skills.UnarmedUp=[[YELLOW]]Habilidade Desarmado aumentada em {0}. Total ({1}) +Skills.HerbalismUp=[[YELLOW]]Habilidade Herbalismo aumentada em {0}. Total ({1}) +Skills.MiningUp=[[YELLOW]]Habilidade de Mineraçao aumentada em {0}. Total ({1}) +Skills.WoodcuttingUp=[[YELLOW]]Habilidade de Lenhador aumentada em {0}. Total ({1}) +Skills.RepairUp=[[YELLOW]]Habilidade de Reparaçao aumentada em {0}. Total ({1}) +Skills.ExcavationUp=[[YELLOW]]Habilidade de Escavaçao aumentada em {0}. Total ({1}) +Skills.FeltEasy=[[GRAY]]Essa foi fácil. +Skills.StackedItems=[[DARK_RED]]Nao pode reparar itens empilhados juntos. +Skills.NeedMore=[[DARK_RED]]Você precisa de mais +Skills.AdeptDiamond=[[DARK_RED]]Você nao tem o nível necessário para reparar Diamante +Skills.FullDurability=[[GRAY]]Já está com Durabilidade cheia. +Skills.Disarmed=[[DARK_RED]]Você foi Desarmado! +mcPlayerListener.SorcerySkill=Feitiçaria (Sorcery): + +m.SkillSorcery=FEITIÇARIA +Sorcery.HasCast=[[GREEN]]*CASTING*[[GOLD]] +Sorcery.Current_Mana=[[DARK_AQUA]]MP +Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) +Sorcery.Cost=[[RED]][COST] {0} MP +Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Sem Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) +Sorcery.Water.Thunder=TROVAO +Sorcery.Curative.Self=CURAR-SE +Sorcery.Curative.Other=CURAR AMIGOS + +m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) +Combat.BeastLore=[[GREEN]]*CONHECIMENTO DE FERAS* +Combat.BeastLoreOwner=[[DARK_AQUA]]Dono ([[RED]]{0}[[DARK_AQUA]]) +Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20) +Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Vida ([[GREEN]]{0}[[DARK_AQUA]]/8) +mcMMO.Description=[[DARK_AQUA]]Q: O QUE E? [[GOLD]]mcMMO é um mod [[RED]]OPEN SOURCE[[GOLD]] de RPG para a plataforma "Bukkit" feito por [[BLUE]]nossr50.[[GOLD]] Ele acresenta uma série de habilidades ao Minecraft. [[GOLD]]Você pode ganhar experiência de muitas maneiras.,[[GOLD]]Digite [[GREEN]]/NOME_DA_HABILIDADE[[GOLD]] para obter informaçoes sobre a habilidade.,[[DARK_AQUA]]Q: O QUE ELE FAZ? [[GOLD]]Por exemplo... em [[DARK_AQUA]]Mineraçao[[GOLD]] você receberá benefícios tais como [[RED]]Drop x2[[GOLD]] ou a habilidade [[RED]]Super Esmagador.[[GOLD]] que quando ativada com o clique direito permite minerar rapidamente durante sua duraçao. [[GOLD]]que depende do nível da sua habilidade. Aumentar o nível de [[BLUE]]Mineraçao[[GOLD]] é simples. basta minerar pedras ou minérios!,[[GOLD]]O objetivo do mcMMO é criar uma experiência de RPG de qualidade.,[[GOLD]]Digite [[GREEN]]/{0}[[GOLD]] para uma lista de comandos possíveis.,[[DARK_AQUA]]Q: ONDE POSSO SUGERIR IDEIAS!?,[[GOLD]]No tópico do mcMMO no fórum bukkit! (www.bit.ly/MCmmoIDEA),[[DARK_AQUA]]Q: Para mais informaçoes. leia a wiki do McMMO: [[RED]]mcmmo.wikia.com +Party.Locked=[[RED]]Equipe está trancada, só o líder pode convidar. +Party.IsntLocked=[[GRAY]]Equipe nao está trancada +Party.Unlocked=[[GRAY]]Equipe foi Destrancada +Party.Help1=[[RED]]O uso certo é [[YELLOW]]/{0} [[WHITE]][[YELLOW]] ou [[WHITE]]'q' [[YELLOW]]para sair +Party.Help2=[[RED]]Para entrar em uma equipe com senha use [[YELLOW]]/{0} [[WHITE]] +Party.Help3=[[RED]]Consulte /{0} ? para mais informaçoes +Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]] [[YELLOW]]para entrar em uma equipe ou [[WHITE]]'q' [[YELLOW]]para sair +Party.Help5=[[RED]]Para trancar sua equipe use [[YELLOW]]/{0} [[WHITE]]lock +Party.Help6=[[RED]]Para destrancar sua equipe use [[YELLOW]]/{0} [[WHITE]]unlock +Party.Help7=[[RED]]Para colocar senha na sua equipe use [[YELLOW]]/{0} [[WHITE]]password +Party.Help8=[[RED]]Para excluir um jogador da equipe use [[YELLOW]]/{0} [[WHITE]]kick +Party.Help9=[[RED]]Para transferir a liderança da equipe use [[YELLOW]]/{0} [[WHITE]]owner +Party.NotOwner=[[DARK_RED]]Você nao é o líder da equipe +Party.InvalidName=[[DARK_RED]]Este nome nao é valido +Party.PasswordSet=[[GREEN]]Senha da equipe: {0} +Party.CouldNotKick=[[DARK_RED]]Nao foi possível excluir o jogador {0} +Party.NotInYourParty=[[DARK_RED]]{0} nao está na sua equipe +Party.CouldNotSetOwner=[[DARK_RED]]Nao foi possível passar a liderança para {0} +Commands.xprate.proper=[[DARK_AQUA]]Uso certo é /{0} [integer] [true:false] +Commands.xprate.proper2=[[DARK_AQUA]]Também pode digitar /{0} reset para voltar tudo ao padrao +Commands.xprate.proper3=[[RED]]Enter true or false for the second value +Commands.xprate.over=[[RED]]Evento de XP Rate acabou!! +Commands.xprate.started=[[GOLD]]EVENTO DE XP COMEÇOU! +Commands.xprate.started2=[[GOLD]]XP RATE AGORA é {0}x!! +Commands.xplock.locked=[[GOLD]]Sua barra de XP BAR está travada em {0}! +Commands.xplock.unlocked=[[GOLD]]Sua barra de XP foi [[GREEN]]DESTRAVADA[[GOLD]]! +Commands.xplock.invalid=[[RED]]Nao existe habilidade com esse nome! Tente /xplock mining +m.SkillAlchemy=ALCHEMY +m.SkillEnchanting=ENCHANTING +m.SkillFishing=FISHING +mcPlayerListener.AlchemySkill=Alchemy: +mcPlayerListener.EnchantingSkill=Enchanting: +mcPlayerListener.FishingSkill=Fishing: +Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) +Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) +Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) +Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. +Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. +Repair.Downgraded=[[RED]]Arcane power has decreased for this item. +Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. +m.EffectsRepair5_0=Arcane Forging +m.EffectsRepair5_1=Repair magic items +m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 +m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% +m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% +m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, +m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ +Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.ItemFound=[[GRAY]]Treasure found! +m.SkillFishing=FISHING +m.XPGainFishing=Fishing (Go figure!) +m.EffectsFishing1_0=Treasure Hunter (Passive) +m.EffectsFishing1_1=Fish up misc objects +m.EffectsFishing2_0=Magic Hunter +m.EffectsFishing2_1=Find Enchanted Items +m.EffectsFishing3_0=Shake (vs. Entities) +m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole +m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 +m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** +m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; +m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) +m.TamingSummon=[[GREEN]]Summoning complete +m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. +m.EffectsTaming7_0=Call of the Wild +m.EffectsTaming7_1=Summon a wolf to your side m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand \ No newline at end of file diff --git a/src/com/gmail/nossr50/locale/locale_ru.properties b/src/main/java/com/gmail/nossr50/locale/locale_ru.properties similarity index 98% rename from src/com/gmail/nossr50/locale/locale_ru.properties rename to src/main/java/com/gmail/nossr50/locale/locale_ru.properties index 842e64821..676f518a3 100644 --- a/src/com/gmail/nossr50/locale/locale_ru.properties +++ b/src/main/java/com/gmail/nossr50/locale/locale_ru.properties @@ -1,382 +1,382 @@ -Combat.WolfExamine=[[GREEN]]**Âû íàó÷èëè Âîëêà èñïîëüçîâàíèþ "Óäàðà âîëêà"** -Combat.WolfExamine=[[GREEN]]**Âû íàó÷èëè Âîëêà èñïîëüçîâàíèþ "Óäàðà âîëêà"** -Combat.WolfShowMaster=[[DARK_GREEN]]Ìàñòåð ïî ïðèðó÷åíèþ Âîëêîâ \: {0} -Combat.Ignition=[[RED]]**Âû ïîäîæãëè ïðîòèâíèêà ñòðåëîé!!** -Combat.BurningArrowHit=[[DARK_RED]]Âû áûëè ïîðàæåíû ãîðÿùåé ñòðåëîé\! -Combat.TouchedFuzzy=[[DARK_RED]]Âû èñòåêàåòå êðîâüþ. Êðóæèòñÿ ãîëîâà. -Combat.TargetDazed=Âàøà öåëü [[DARK_RED]]Øîêèðîâàíà -Combat.WolfNoMaster=[[GRAY]]Ó ýòîãî Âîëêà íåò õîçÿèíà -Combat.WolfHealth=[[GREEN]]Ó ýòîãî Âîëêà {0} Çäîðîâüÿ -Combat.StruckByGore=[[RED]]**Îêðàâëåíèå íåóäà÷íî** -Combat.Gore=[[GREEN]]**Îêðàâëåíèå** -Combat.ArrowDeflect=[[WHITE]]**Ñòðåëà îòñêî÷èëà** -Item.ChimaeraWingFail=**Êðûëüÿ Õèìåðû íå ñìîãëè âàñ óíåñòè\!** -Item.ChimaeraWingPass=**Êðûëüÿ Õèìåðû óíîñÿò âàñ...** -Item.InjuredWait=Âû ðàíåíû è íå ñìîæåòå ïîêà èñïîëüçîâàòü ýòî. [[YELLOW]]({0}s) -Item.NeedFeathers=[[GRAY]]Âàì íóæíî áîëüøå ïåðüåâ.. -m.mccPartyCommands=[[GREEN]]--Ãðóïïîâûå êîìàíäû-- -m.mccParty=[party name] [[RED]]- Ñîçäàíèå ãðóïïû -m.mccPartyQ=[[RED]]- Ïîêèíüòå òåêóùóþ ãðóïïó -m.mccPartyToggle=[[RED]] - Âêëþ÷èòü ãðóïïîâîé ÷àò -m.mccPartyInvite=[player name] [[RED]]- Ïðèñëàòü ïðèãëàøåíèå â ãðóïïó -m.mccPartyAccept=[[RED]]- Ïîäòâåðäèòü ïðèãëàøåíèå â ãðóïïó -m.mccPartyTeleport=[party member name] [[RED]]- Òåëåïîðòèðîâàòüñÿ ê ÷ëåíó ãðóïïû -m.mccOtherCommands=[[GREEN]]--Äðóãèå êîìàíäû-- -m.mccStats=- Ïîñìîòðåòü âàøè McMMo õàðàêòåðèñòèêè -m.mccLeaderboards=- Äîñêà Ëèäåðîâ -m.mccMySpawn=- Òåëåïîðòèðóåò ê âàøåé êðîâàòè -m.mccClearMySpawn=- Óáèðàåò âàøó êðîâàòü -m.mccToggleAbility=- Àêòèâèðîâàòü âîçìîæíîñòü ïðàâûì êëèêîì ìûøè -m.mccAdminToggle=- Âêëþ÷èòü àäìèíñêèé ÷àò -m.mccWhois=[playername] [[RED]]- Ïîñìîòðåòü äåòàëüíóþ èíôîðìàöèþ -m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Èçìåíèòü öåëü -m.mccMcGod=- Ðåæèì Áîãà -m.mccSkillInfo=[skillname] [[RED]]- Ïîñìîòðåòü äåòàëüíóþ èíôîðìàöèþ î óìåíèè -m.mccModDescription=[[RED]]- Ïðî÷èòàòü èíôîðìàöèþ î ìîäå McMMo -m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- -m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0} -m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} -m.AbilityLockTemplate=[[GRAY]]{0} -m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} -m.Effects=ÝÔÔÅÊÒÛ -m.YourStats=ÂÀØÈ ÕÀÐÀÊÒÅÐÈÑÒÈÊÈ -m.SkillTaming=Ïðèðó÷åíèå -m.XPGainTaming=Âîëêè ïðè÷èíÿþò óùåðá -m.EffectsTaming1_0=Óäàð Âîëêà -m.EffectsTaming1_1=Óìåíüøåíèå êîëè÷åñòâà êîñòåé -m.EffectsTaming2_0=Îêðàâëåíèå -m.EffectsTaming2_1=Êðèòè÷åñêèé óäàð âî âðåìÿ èñòåêàíèÿ êðîâüþ -m.EffectsTaming3_0=Îñòðûå Êîãòè -m.EffectsTaming3_1=Áîíóñ ê óðîíó -m.EffectsTaming4_0=Íåçàâèñèìîñòü îò ýêîëîãèè -m.EffectsTaming4_1=Èìóíèòåò ê ïàäåíèþ, áîÿçíü ëàâû/êàêòóñîâ -m.EffectsTaming5_0=Ãóñòîé ìåõ -m.EffectsTaming5_1=Ñîêðàùåíèå óðîíà, îãíåóñòîé÷èâîñòü -m.EffectsTaming6_0=Íàäåæíàÿ çàùèòà îò ïîâðåæäåíèé -m.EffectsTaming6_1=Ñíèæåíèå óðîíà îò âçðûâîâ -m.AbilLockTaming1=Áëîêèðóåòñÿ äî 100+ óðîâíÿ(Íåçàâèñèìîñòü îò ýêîëîãèè) -m.AbilLockTaming2=Áëîêèðóåòñÿ äî 250+ óðîâíÿ (Ãóñòîé ìåõ) -m.AbilLockTaming3=Áëîêèðóåòñÿ äî 500+ óðîâíÿ (Íàäåæíàÿ çàùèòà îò ïîâðåæäåíèé) -m.AbilLockTaming4=Áëîêèðóåòñÿ äî 700+ óðîâíÿ (Îñòðûå Êîãòè) -m.AbilBonusTaming1_0=Íåçàâèñèìîñòü îò ýêîëîãèè -m.AbilBonusTaming1_1=Âîëêè èçáåãàþò îïàñíîñòåé -m.AbilBonusTaming2_0=Ãóñòîé ìåõ -m.AbilBonusTaming2_1=Óðîí íàïîëîâèíó, Îãíåóñòîé÷èâîñòü -m.AbilBonusTaming3_0=Íàäåæíàÿ çàùèòà îò ïîâðåæäåíèé -m.AbilBonusTaming3_1=Âçðûâû ïðè÷èíÿþò 1/6 íîðìàëüíîãî óðîíà -m.AbilBonusTaming4_0=Îñòðûå Êîãòè -m.AbilBonusTaming4_1=+2 Óðîíà -m.TamingGoreChance=[[RED]]Øàíñ îêðàâëåíèÿ: [[YELLOW]]{0}% -m.SkillWoodCutting=Äåðåâîîáðàáîòêà -m.XPGainWoodCutting=Ðóáèòü äåðåâüÿ -m.EffectsWoodCutting1_0=Ëþáèòåëü äåðåâüåâ(ñïîñîáíîñòü) -m.EffectsWoodCutting1_1=Äåëàòü âçðûâû äåðåâüåâ -m.EffectsWoodCutting2_0=Áûñòðîå ñðåçàíèå ëèñòüåâ -m.EffectsWoodCutting2_1=Ñäóâàòü ëèñòüÿ -m.EffectsWoodCutting3_0=Äâîéíîé äðîï -m.EffectsWoodCutting3_1=Íîðìàëüíûé äâîéíîé äðîï -m.AbilLockWoodCutting1=Áëîêèðóåòñÿ äî 100+ óðîâíÿ(Áûñòðîå ñðåçàíèå ëèñòüåâ) -m.AbilBonusWoodCutting1_0=Áûñòðîå ñðåçàíèå ëèñòüåâ -m.AbilBonusWoodCutting1_1=Ñäóâàòü ëèñòüÿ -m.WoodCuttingDoubleDropChance=[[RED]]Øàíñ äâîéíîãî äðîïà: [[YELLOW]]{0}% -m.WoodCuttingTreeFellerLength=[[RED]]Ïðîäîëæèòåëüíîñòü Ëþáèòåëÿ äåðåâüåâ: [[YELLOW]]{0}s -m.SkillArchery=Ñòðåëüáà èç ëóêà -m.XPGainArchery=Àòàêîâàòü ìîíñòðîâ èç ëóêà -m.EffectsArchery1_0=Ïîäæ¸ã -m.EffectsArchery1_1=25% øàíñ, ÷òî öåëü ïîäîæã¸òñÿ -m.EffectsArchery2_0=Øîêèðîâàíèå(Èãðîêîâ) -m.EffectsArchery2_1=Äåçîðèåíòèðóåò âðàãîâ -m.EffectsArchery3_0=Óðîí+ -m.EffectsArchery3_1=Óëó÷øàåò Óðîí -m.EffectsArchery4_0=Ïîëó÷åíèå ñòðåë -m.EffectsArchery4_1=Øàíñ ïîëó÷èòü ñòðåëû èç òðóïîâ -m.ArcheryDazeChance=[[RED]]Øàíñ øîêèðîâàòü: [[YELLOW]]{0}% -m.ArcheryRetrieveChance=[[RED]]Øàíñ ïîëó÷èòü ñòðåëû: [[YELLOW]]{0}% -m.ArcheryIgnitionLength=[[RED]]Äëèòåëüíîñòü ïîäæ¸ãà: [[YELLOW]]{0} ñåêóíä -m.ArcheryDamagePlus=[[RED]]Óðîí+ (Rank{0}): [[YELLOW]]Bonus {0} damage -m.SkillAxes=Òîïîðû -m.XPGainAxes=Àòàêîâàòü ìîíñòðîâ òîïîðîì -m.EffectsAxes1_0=Ðàçðóøèòåëü ÷åðåïîâ(ñïîñîáíîñòü) -m.EffectsAxes1_1=Óâåëè÷åíèå óðîíà îò òîïîðà -m.EffectsAxes2_0=Êðèòè÷åñêèå óäàðû -m.EffectsAxes2_1=Äâîéíîé óðîí -m.EffectsAxes3_0=Ìàñòåðñòâî òîïîðà(500 óðîâåíü) -m.EffectsAxes3_1=Óëó÷øåíèå óðîíà -m.AbilLockAxes1=Áëîêèðóåòñÿ äî 500+ óðîâíÿ(Ìàñòåðñòâî òîïîðà) -m.AbilBonusAxes1_0=Ìàñòåðñòâî òîïîðà -m.AbilBonusAxes1_1=Äàåò áîíóñ â 4 óðîíà -m.AxesCritChance=[[RED]]Øàíñ êðèòè÷åñêîãî óäàðà: [[YELLOW]]{0}% -m.AxesSkullLength=[[RED]]Ïðîäîëæèòåëüíîñòü Ðàçðóøèòåëÿ ×åðåïîâ: [[YELLOW]]{0}s -m.SkillSwords=Ìå÷è -m.XPGainSwords=Àòàêîâàòü ìîíñòðîâ ìå÷îì -m.EffectsSwords1_0=Êîíòð-Àòàêà -m.EffectsSwords1_1=Îòðàæàåò 50% ïîëó÷åííîãî óðîíà -m.EffectsSwords2_0=Çàçóáðåííûå ìå÷è(ñïîñîáíîñòü) -m.EffectsSwords2_1=25% Óðîíà+ è êðîâîòå÷åíèå îò óäàðà -m.EffectsSwords3_0=Óâåëå÷åíèå äëèòåëüíîñòè ñïîñîáíîñòè "Çàçóáðåííûå ìå÷è" -m.EffectsSwords3_1=Êðîâîòå÷åíèå 5 ðàç -m.EffectsSwords4_0=Ïàðèðîâàíèå -m.EffectsSwords4_1=Îòðèöàòåëüíûé óðîí -m.EffectsSwords5_0=Êðîâîòå÷åíèå -m.EffectsSwords5_1=Çàñòàâëÿåò âðàãà êðîâîòî÷èòü -m.SwordsCounterAttChance=[[RED]]Øàíñ Êîíòð-Àòàêè: [[YELLOW]]{0}% -m.SwordsBleedLength=[[RED]]Äëèòåëüíîñòü êðîâîòå÷åíèÿ: [[YELLOW]]{0} ðàç -m.SwordsBleedChance=[[RED]]Øàíñ êðîâîòå÷åíèÿ: [[YELLOW]]{0} % -m.SwordsParryChance=[[RED]]Øàíñ ïàðèðîâàíèÿ: [[YELLOW]]{0} % -m.SwordsSSLength=[[RED]]Äëèòåëüíîñòü "Çàçóáðåííûx ìå÷åé": [[YELLOW]]{0}s -m.SwordsTickNote=[[GRAY]]Çàìåòêà: [[YELLOW]]1 ðàç äëèòüñÿ 2 ñåêóíäû -m.SkillAcrobatics=Àêðîáàòèêà -m.XPGainAcrobatics=Íóæíî Ïàäàòü ñ ãîð -m.EffectsAcrobatics1_0=Ïåðåâîðîò -m.EffectsAcrobatics1_1=Ïîãëîùàåò èëè óìåíüøàåò óðîí -m.EffectsAcrobatics2_0=Ïðåâîñõîäíûé ïåðåâîðîò -m.EffectsAcrobatics2_1=Äâàæäû ýôôåêòèâíåå ïåðåâîðîòà -m.EffectsAcrobatics3_0=Óâîðîò -m.EffectsAcrobatics3_1=Óìåíüøàåò óðîí íàïîëîâèíó îò ñòðåëû -m.AcrobaticsRollChance=[[RED]]Øàíñ ïåðåâîðîòà: [[YELLOW]]{0}% -m.AcrobaticsGracefulRollChance=[[RED]]Øàíñ ïðåâîñõîäíîãî ïåðåâîðîòà: [[YELLOW]]{0}% -m.AcrobaticsDodgeChance=[[RED]]Øàíñ óâîðîòà: [[YELLOW]]{0}% -m.SkillMining=Øàõò¸ðñòâî -m.XPGainMining=Äîáûâàòü ðóäó è êàìíè â øàõòàõ -m.EffectsMining1_0=Ñóïåð ðàçðóøèòåëü(ñïîñîáíîñòü) -m.EffectsMining1_1=Óâåëè÷åíèå ñêîðîñòè, Øàíñ òðîéíîãî äðîïà -m.EffectsMining2_0=Äâîéíîé äðîï -m.EffectsMining2_1=Äâîéíîé äðîï ñòàíîâèòñÿ íîðìàëüíûì -m.MiningDoubleDropChance=[[RED]]Øàíñ äâîéíîãî äðîïà: [[YELLOW]]{0}% -m.MiningSuperBreakerLength=[[RED]]Äëèòåëüíîñòü ñïîñîáíîñòè "Ñóïåð Ðàçðóøèòåëü": [[YELLOW]]{0}s -m.SkillRepair=Ïî÷èíêà -m.XPGainRepair=×èíèòü âåùè -m.EffectsRepair1_0=Ïî÷èíêà -m.EffectsRepair1_1=×èíèò Æåëåçíûå èíñòðóìåíòû è áðîíþ -m.EffectsRepair2_0=Ìàñòåðñòâî ïî÷èíêè -m.EffectsRepair2_1=Óâåëè÷èâàåò êà÷åñòâî ðåìîíòà -m.EffectsRepair3_0=Ñóïåð ïî÷èíêà -m.EffectsRepair3_1=Äâîéíàÿ ýôôåêòèâíîñòü âåùåé -m.EffectsRepair4_0=Ïî÷èíêà Àëìàçíûõ âåùåé ({0}+ óðîâåíü) -m.EffectsRepair4_1=×èíèòü Àëìàçíûå èíñòðóìåíòû è áðîíþ -m.RepairRepairMastery=[[RED]]Ìàñòåðñòâî ïî÷èíêè: [[YELLOW]]Äîïîëíèòåëüíî {0}% äîëãîâå÷íîñòè âîññòàíîâëåíî -m.RepairSuperRepairChance=[[RED]]Øàíñ Ñóïåð ïî÷èíêè: [[YELLOW]]{0}% -m.SkillUnarmed=Ðóêîïàøíûé áîé -m.XPGainUnarmed=Àòàêîâàòü ìîíñòðîâ ãîëûìè ðóêàìè -m.EffectsUnarmed1_0=Áåðñåðê(ñïîñîáíîñòü) -m.EffectsUnarmed1_1=+50% Óðîíà, Ëîìàòü ñëàáûå ìàòåðèàëû -m.EffectsUnarmed2_0=Îáåçîðóæåíèå(Èãðîêè) -m.EffectsUnarmed2_1=Ïàäàåò îðóæèå ïðîòèâíèêà íà çåìëþ, êîòîðîå íàõîäèòñÿ â ðóêàõ ó íåãî. -m.EffectsUnarmed3_0=Ìàñòåð Ðóêîïàøíîãî áîÿ -m.EffectsUnarmed3_1=Óëó÷øåíèå óðîíà îò êóëàêîâ -m.EffectsUnarmed4_0=Ó÷åíèê ðóêîïàøíîãî áîÿ -m.EffectsUnarmed4_1=Óâåëè÷åíèå óðîíà îò êóëàêîâ -m.EffectsUnarmed5_0=Îòðàæåíèå ñòðåë -m.EffectsUnarmed5_1=Ñòðåëû îòðàæàþòñÿ -m.AbilLockUnarmed1=Áëîêèðóåòñÿ äî 250+ óðîâíÿ(Ó÷åíèê ðóêîïàøíîãî áîÿ) -m.AbilLockUnarmed2=Áëîêèðóåòñÿ äî 500+ óðîâíÿ(Ìàñòåð Ðóêîïàøíîãî áîÿ) -m.AbilBonusUnarmed1_0=Ó÷åíèê ðóêîïàøíîãî áîÿ -m.AbilBonusUnarmed1_1=+2 áîíóñ ê óðîíó -m.AbilBonusUnarmed2_0=Ìàñòåð Ðóêîïàøíîãî áîÿ -m.AbilBonusUnarmed2_1=+4 áîíóñ ê óðîíó -m.UnarmedArrowDeflectChance=[[RED]]Øàíñ îòðàçèòü ñòðåëû: [[YELLOW]]{0}% -m.UnarmedDisarmChance=[[RED]]Øàíñ îáåçîðóæèòü: [[YELLOW]]{0}% -m.UnarmedBerserkLength=[[RED]]Äëèòåëüíîñòü "Áåðñåðêà": [[YELLOW]]{0}s -m.SkillHerbalism=Òðàâîâåäåíèå -m.XPGainHerbalism=Âûðàùèâàòü ðàñòåíèÿ -m.EffectsHerbalism1_0=Îçåëåíèòåëü(ñïîñîáíîñòü) -m.EffectsHerbalism1_1=Ðàñïðîñòðîíåíèå îçåëåíåíèé, 3-îé äðîï -m.EffectsHerbalism2_0="Çåëåíûé ôåðìåð"(Ïùåíèöà) -m.EffectsHerbalism2_1=Àâòî âûðàùèâàíèå ïùåíèöû ïîñëå ïîñàäêè -m.EffectsHerbalism3_0="Çåëåíûé ôåðìåð"(Ìîõ) -m.EffectsHerbalism3_1=Êàìåíü -> Çàìøåëûé êàìåíü + ñåìåíà -m.EffectsHerbalism4_0=Óëó÷øåíèå åäû -m.EffectsHerbalism4_1=Óëó÷øàåò êîëè÷åñòâî çäîðîâüÿ îò õëåáà è ãðèáíîãî ñóïà -m.EffectsHerbalism5_0=Äðîéíîé äðîï(Âñå ðàñòåíèÿ) -m.EffectsHerbalism5_1=Äâîéíîé äðîï ñòàíîâèòñÿ íîðìàëüíûì -m.HerbalismGreenTerraLength=[[RED]]Ïðîäîëæèòåëüíîñòü "Îçåëåíèòåëÿ": [[YELLOW]]{0}s -m.HerbalismGreenThumbChance=[[RED]]Øàíñ "Çåëåíîãî ôåðìåðà": [[YELLOW]]{0}% -m.HerbalismGreenThumbStage=[[RED]]Óðîâåíü "Çåëåíîãî ôåðìåðà": [[YELLOW]] Ïùåíèöà ðàñòåò ïî-óðîâíåâî {0} -m.HerbalismDoubleDropChance=[[RED]]Øàíñ äâîéíîãî äðîïà: [[YELLOW]]{0}% -m.HerbalismFoodPlus=[[RED]]Åäà+ (Rank{0}): [[YELLOW]]Áîíóñ {0} ëå÷åíèÿ -m.SkillExcavation=Ðàñêîïêà -m.XPGainExcavation=Ðàñêàïûâàòü è èñêàòü ñîêðîâèùà -m.EffectsExcavation1_0=Ìåãà äðåëü(ñïîñîáíîñòü) -m.EffectsExcavation1_1=3-îé äðîï, 3-îé îïûò, Óâåëè÷åíèå ñêîðîñòè -m.EffectsExcavation2_0=Îõîòíèê çà ñîêðîâèùàìè -m.EffectsExcavation2_1=Ñïîñîáíîñòü êîïàòü ñîêðîâèùà -m.ExcavationGreenTerraLength=[[RED]]Ïðîäîëæèòåëüíîñòü "Ìåãà äðåëè": [[YELLOW]]{0}s -mcBlockListener.PlacedAnvil=[[DARK_RED]]Âû ðàçìåñòèëè íàêîâàëüíè è òåïåðü ìîæåòå ÷èíèòü âåùè. -mcEntityListener.WolfComesBack=[[DARK_GRAY]]Âàø âîëê õî÷åò âåðíóòüñÿ ê âàì -mcPlayerListener.AbilitiesOff=Èñïîëüçîâàíèå ñïîñîáíîñòåé âûêëþ÷åíî -mcPlayerListener.AbilitiesOn=Èñïîëüçîâàíèå ñïîñîáíîñòåé âêëþ÷åíî -mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**Ñïîñîáíîñòè âîññòàíîâëåíû\!** -mcPlayerListener.AcrobaticsSkill=Àêðîáàòèêà: -mcPlayerListener.ArcherySkill=Ñòðåëüáà èç ëóêà: -mcPlayerListener.AxesSkill=Òîïîðû: -mcPlayerListener.ExcavationSkill=Ðàñêîïêà: -mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO ðåæèì áîãà âûêëþ÷åí -mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO ðåæèì áîãà âêëþ÷¸í -mcPlayerListener.GreenThumb=[[GREEN]]**"Çåëåíûé ôåðìåð"** -mcPlayerListener.GreenThumbFail=[[RED]]**"Çåëåíûé ôåðìåð" íåóäàëñÿ** -mcPlayerListener.HerbalismSkill=Òðàâîâåäåíèå: -mcPlayerListener.MiningSkill=Øàõò¸ðñòâî: -mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Âàøà êðîâàòü óáðàíà. -mcPlayerListener.MyspawnNotExist=[[RED]]Ñäåëàéòå âàøó òî÷êó ïîÿâëåíèÿ âîçëå êðîâàòè, ïîñïàâ íà êðîâàòè. -mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Ìîÿ òî÷êà ïîÿâëåíèÿ ñîõðàíåíà â ýòîé ëîêàöèè. -mcPlayerListener.MyspawnTimeNotice=Âû äîëæíû ïîäîæäàòü {0}m {1}s ÷òîáû èñïîëüçîâàòü ïîÿâëåíèå îêîëî êðîâàòè -mcPlayerListener.NoPermission=Íåäîñòàòî÷íûå ïðàâà. -mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Åñëè ó âàñ íåò äîñòóïà ê óìåíèþ, òî îíî çäåñü íå îòîáðàçèòñÿ. -mcPlayerListener.NotInParty=[[RED]]Âû íå â ãðóïïå! -mcPlayerListener.InviteSuccess=[[GREEN]]Ïðèãëàøåíèå óñïåøíî ïîñëàíî. -mcPlayerListener.ReceivedInvite1=[[RED]]ÒÐÅÂÎÃÀ: [[GREEN]]Âû ïîëó÷èëè ïðèãëàøåíèå íà âñòóïëåíèå â ãðóïïó {0} îò {1} -mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] ÷òîáû îäîáðèòü âñòóïëåíèå -mcPlayerListener.InviteAccepted=[[GREEN]]Ïðèãëàøåíèå îäîáðåíî. Âû âñòóïèëè â ãðóïïó {0} -mcPlayerListener.NoInvites=[[RED]]Ó âàñ íåò ïðèãëàøåíèé â ãðóïïó ñåé÷àñ -mcPlayerListener.YouAreInParty=[[GREEN]]Âû óæå â ãðóïïå {0} -mcPlayerListener.PartyMembers=[[GREEN]]×ëåíû ãðóïïû -mcPlayerListener.LeftParty=[[RED]]Âû âûøëè èç ãðóïïû -mcPlayerListener.JoinedParty=Ïðèñîåäèííûå ãðóïïû: {0} -mcPlayerListener.PartyChatOn=Òîëüêî ÷àò ãðóïïû [[GREEN]]Âêëþ÷åíî -mcPlayerListener.PartyChatOff=Òîëüêî ÷àò ãðóïïû [[RED]]Âûêëþ÷åíî -mcPlayerListener.AdminChatOn=Òîëüêî àäìèí ÷àò [[GREEN]]Âêëþ÷åíî -mcPlayerListener.AdminChatOff=Òîëüêî àäìèí ÷àò [[RED]]Âûêëþ÷åíî -mcPlayerListener.MOTD=[[BLUE]]Íà ýòîì ñåðâåðå óñòàíîâëåí ïëàãèí McMMO {0} type [[YELLOW]]/{1}[[BLUE]] äëÿ ïîìîùè. -mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Âèêèïåäèÿ -mcPlayerListener.PowerLevel=[[DARK_RED]]Óðîâåíü óìåíèé: -mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Óðîâåíü óìåíèé [[YELLOW]]Äîñêà Ëèäåðîâ-- -mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Äîñêà Ëèäåðîâ-- -mcPlayerListener.RepairSkill=Ïî÷èíêà: -mcPlayerListener.SwordsSkill=Ìå÷è: -mcPlayerListener.TamingSkill=Ïðèðó÷åíèå âîëêîâ: -mcPlayerListener.UnarmedSkill=Ðóêîïàøíûé áîé: -mcPlayerListener.WoodcuttingSkill=Äåðåâîîáðàáîòêà: -mcPlayerListener.YourStats=[[GREEN]][mcMMO] Õàðàêòåðèñòèêè -Party.InformedOnJoin={0} [[GREEN]] ïðèñîåäèíèëñÿ ê ãðóïïå -Party.InformedOnQuit={0} [[GREEN]] óø¸ë èç ãðóïïû -Skills.YourGreenTerra=[[GREEN]]Âàøà ñïîñîáíîñòü[[YELLOW]]"Îçåëåíåíèå" [[GREEN]]âîññòàíîâëåíà! -Skills.YourTreeFeller=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Ëþáèòåëü äåðåâüåâ" [[GREEN]]âîññòàíîâëåíà! -Skills.YourSuperBreaker=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Ñóïåð ðàçðóøèòåëü" [[GREEN]]âîññòàíîâëåíà! -Skills.YourSerratedStrikes=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Çàçóáðåííûå ìå÷è" [[GREEN]]âîññòàíîâëåíà! -Skills.YourBerserk=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Áåðñåðê" [[GREEN]]âîññòàíîâëåíà! -Skills.YourSkullSplitter=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Ðàçðóøèòåëü ÷åðåïîâ" [[GREEN]]âîññòàíîâëåíà! -Skills.YourGigaDrillBreaker=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Ìåãà äðåëü" [[GREEN]]âîññòàíîâëåíà! -Skills.TooTired=[[RED]]Âû ñëèøêîì óñòàëè, ÷òîáû èñïîëüçîâàòü ñïîñîáíîñòü åù¸ ðàç. -Skills.ReadyHoe=[[GREEN]]**Ïðèãîòîâüòå âàøó Ìîòûãó** -Skills.LowerHoe=[[GRAY]]**Îïóñòèòå âàøó Ìîòûãó** -Skills.ReadyAxe=[[GREEN]]**Ïðèãîòîâüòå âàø Òîïîð** -Skills.LowerAxe=[[GRAY]]**Îïóñòèòå âàø Òîïîð** -Skills.ReadyFists=[[GREEN]]**Ïðèãîòîâüòå âàøè Êóëàêè** -Skills.LowerFists=[[GRAY]]**Îïóñòèòå âàøè Êóëàêè** -Skills.ReadyPickAxe=[[GREEN]]**Ïðèãîòîâüòå âàøó Êèðêó** -Skills.LowerPickAxe=[[GRAY]]**Îïóñòèòå âàøó Êèðêó** -Skills.ReadyShovel=[[GREEN]]**Ïðèãîòîâüòå âàøó Ëîïàòó** -Skills.LowerShovel=[[GRAY]]**Îïóñòèòå âàøó Ëîïàòó** -Skills.ReadySword=[[GREEN]]**Ïðèãîòîâüòå âàø Ìå÷** -Skills.LowerSword=[[GRAY]]**Îïóñòèòå âàø Ìå÷** -Skills.BerserkOn=[[GREEN]]**Ñïîñîáíîñòü "Áåðñåðê" àêòèâèðîâàíà** -Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Áåðñåðê"! -Skills.GreenTerraOn=[[GREEN]]**Ñïîñîáíîñòü "Îçåëåíåíèå" àêòèâèðîâàíà** -Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Îçåëåíåíèå"! -Skills.TreeFellerOn=[[GREEN]]**Ñïîñîáíîñòü "Ëþáèòåëü Äåðåâüåâ" àêòèâèðîâàíà** -Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Ëþáèòåëü Äåðåâüåâ"! -Skills.SuperBreakerOn=[[GREEN]]**Ñïîñîáíîñòü "Ñóïåð Ðàçðóøèòåëü" àêòèâèðîâàíà** -Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Ñóïåð Ðàçðóøèòåëü"! -Skills.SerratedStrikesOn=[[GREEN]]**Ñïîñîáíîñòü "Çàçóáðåííûå ìå÷è" àêòèâèðîâàíà** -Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Çàçóáðåííûå ìå÷è"! -Skills.SkullSplitterOn=[[GREEN]]**Ñïîñîáíîñòü "Ðàçðåøèòåëü ÷åðåïîâ" àêòèâèðîâàíà** -Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Ðàçðóøèòåëü ÷åðåïîâ"! -Skills.GigaDrillBreakerOn=[[GREEN]]**Ñïîñîáíîñòü "Ìåãà äðåëü" àêòèâèðîâàíà** -Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Ìåãà äðåëü"! -Skills.GreenTerraOff=[[RED]]**Ñïîñîáíîñòü "Îçåëåíåíèå" äåàêòèâèðîâàíà** -Skills.TreeFellerOff=[[RED]]**Ñïîñîáíîñòü "Ëþáèòåëü Äåðåâüåâ" äåàêòèâèðîâàíà** -Skills.SuperBreakerOff=[[RED]]**Ñïîñîáíîñòü "Ñóïåð Ðàçðóøèòåëü" äåàêòèâèðîâàíà** -Skills.SerratedStrikesOff=[[RED]]**Ñïîñîáíîñòü "Çàçóáðåííûå ìå÷è" äåàêòèâèðîâàíà** -Skills.BerserkOff=[[RED]]**Ñïîñîáíîñòü "Áåðñåðê" äåàêòèâèðîâàíà** -Skills.SkullSplitterOff=[[RED]]**Ñïîñîáíîñòü "Ðàçðåøèòåëü ÷åðåïîâ" äåàêòèâèðîâàíà** -Skills.GigaDrillBreakerOff=[[RED]]**Ñïîñîáíîñòü "Ìåãà äðåëü" äåàêòèâèðîâàíà** -Skills.TamingUp=[[YELLOW]]Óìåíèå "Ïðèðó÷åíèå âîëêîâ" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.AcrobaticsUp=[[YELLOW]]Óìåíèå "Àêðîáàòèêà" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.ArcheryUp=[[YELLOW]]Óìåíèå "Ñòðåëüáà èç ëóêà" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.SwordsUp=[[YELLOW]]Óìåíèå "Ìå÷è" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.AxesUp=[[YELLOW]]Óìåíèå "Òîïîðû" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.UnarmedUp=[[YELLOW]]Óìåíèå "Ðóêîïàøíûé áîé" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.HerbalismUp=[[YELLOW]]Óìåíèå "Òðàâîâåäåíèå" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.MiningUp=[[YELLOW]]Óìåíèå "Øàõò¸ðñòâî" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.WoodcuttingUp=[[YELLOW]]Óìåíèå "Äåðåâîîáðàáîòêà" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.RepairUp=[[YELLOW]]Óìåíèå "Ïî÷èíêà" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.ExcavationUp=[[YELLOW]]Óìåíèå "Ðàñêîïêà" ïîâûøåíî íà {0}. Âñåãî ({1}) -Skills.FeltEasy=[[GRAY]]Ýòî áûëî ëåãêî. -Skills.StackedItems=[[DARK_RED]]Âû íå ìîæåòå ÷èíèòü ñòàêóþùèåñÿ ïðåäìåòû -Skills.NeedMore=[[DARK_RED]]Íóæíî áîëüøå ìàòåðèàëà -Skills.AdeptDiamond=[[DARK_RED]]Âû íå îáó÷åíû ÷èíèòü àëìàçíûå èíñòðóìåíòû è áðîíþ -Skills.FullDurability=[[GRAY]]Âåùü íå íóæäàåòñÿ â ïî÷èíêå. -Skills.Disarmed=[[DARK_RED]]Âû îáåçîðóæåíû! -mcPlayerListener.SorcerySkill=Êîëäîâñòâî: -m.SkillSorcery=Êîëäîâñòâî -Sorcery.HasCast=[[GREEN]]**Èñïîëüçóþ "Êîëäîâñòâî"**[[GOLD]] -Sorcery.Current_Mana=[[DARK_AQUA]] Ìàíû -Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) -Sorcery.Cost=[[RED]][COST] {0} Ìàíû -Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Íå õâàòàåò ìàíû [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) -Sorcery.Water.Thunder=Ãðîì -Sorcery.Curative.Self=Âûëå÷èòü ñåáÿ -Sorcery.Curative.Other=Âûëå÷èòü äðóãèõ -m.LVL=[[DARK_GRAY]]Óðîâåíü: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) -Combat.BeastLore=[[GREEN]]**Óìåíèå "Óäàð âîëêà" àêòèâèðîâàíî** -Combat.BeastLoreOwner=[[DARK_AQUA]]Âëàäåëåö ([[RED]]{0}[[DARK_AQUA]]) -Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Çäîðîâüÿ ([[GREEN]]{0}[[DARK_AQUA]]/20) -Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Çäîðîâüÿ ([[GREEN]]{0}[[DARK_AQUA]]/8) -Party.Locked=[[RED]]Ãðóïïà çàïàðîëåíà, òîëüêî ëèäåð ãðóïïû ìîæåò ïðèãëàøàòü. -Party.IsntLocked=[[GRAY]]Ãðóïïà ðàçáëîêèðîâàíà -Party.Unlocked=[[GRAY]]Ãðóïïà ðàçáëîêèðîâàíà -Party.Help1=[[RED]]Èñïîëüçîâàíèå [[YELLOW]]/{0} [[WHITE]][[YELLOW]] èëè [[WHITE]]'q' [[YELLOW]]äëÿ âûõîäà -Party.Help2=[[RED]]×òîáû ïðèñîåäèíèòñÿ ê çàïàðîëåííîé ãðóïïå ââåäèòå [[YELLOW]]/{0} [[WHITE]]<èìÿ> <ïàðîëü> -Party.Help3=[[RED]]Ââåäèòå /{0} ? äëÿ áîëüøåé èíôîðìàöèè -Party.Help4=[[RED]]Èñïîëüçóéòå [[YELLOW]]/{0} [[WHITE]]<èìÿ> [[YELLOW]]÷òîáû ïðèñîåäèíèòñÿ ê ãðóïïå èëè [[WHITE]]'q' [[YELLOW]]äëÿ âûõîäà -Party.Help5=[[RED]]×òîáû çàáëîêèðîâàòü ãðóïïó ââåäèòå [[YELLOW]]/{0} [[WHITE]]lock -Party.Help6=[[RED]]×òîáû ðàçáëîêèðîâàòü ãðóïïó ââåäèòå [[YELLOW]]/{0} [[WHITE]]unlock -Party.Help7=[[RED]]×òîáû çàïàðîëèòü ãðóïïó ââåäèòå [[YELLOW]]/{0} [[WHITE]]password <ïàðîëü> -Party.Help8=[[RED]]×òîáû âûêèíóòü èãðîêà èç ãðóïïû ââåäèòå [[YELLOW]]/{0} [[WHITE]]kick <èãðîê> -Party.Help9=[[RED]]×òîáû îòäàòü ëèäåðñòâî ãðóïïû ââåäèòå [[YELLOW]]/{0} [[WHITE]]owner <èãðîê> -Party.NotOwner=[[DARK_RED]]Âû òåïåðü íå ëèäåð ãðóïïû -Party.InvalidName=[[DARK_RED]]Íåêîððåêòíîå èìÿ ãðóïïû -Party.PasswordSet=[[GREEN]]Ïàðîëü ãðóïïû íàçíà÷åí {0} -Party.CouldNotKick=[[DARK_RED]]Âû íå ìîæåòå óáðàòü èãðîêà èç ãðóïïû {0} -Party.NotInYourParty=[[DARK_RED]]{0} íå â ãðóïïå -Party.CouldNotSetOwner=[[DARK_RED]]Âû íå ìîæåòå îòäàòü ëèäåðñòâî èãðîêó {0} -mcMMO.Description=[[DARK_AQUA]]Q: ×òî ýòî?,[[GOLD]]mcMMO ýòî [[RED]]ÎÏÅÍ ÑÓÐÑ[[GOLD]] RPG ìîä äëÿ ñåðâåðà Bukkit îò ïîëüçîâàòåëÿ [[BLUE]]nossr50,[[GOLD]]Çäåñü áûëî äîáàâëåíî ìíîãî óìåíèé äëÿ Minecraft ñåðâåðà.,[[GOLD]]Âû ìîæåòå ïðîêà÷àòü èõ ðàçíûìè ñïîñîáàìè,[[GOLD]]Âû õîòèòå íàéòè áîëüøå èíôîðìàöèè î óìåíèè [[GREEN]]/SKILLNAME[[GOLD]] ?,[[DARK_AQUA]]Q: ×òî ÿ äîëæåí ñäåëàòü?,[[GOLD]]Äëÿ ïðèìåðà... in [[DARK_AQUA]]Øàõò¸ðñòâî[[GOLD]] âû ïîëó÷èòå [[RED]]2-îé äðîï[[GOLD]] èëè ñïîñîáíîñòü [[RED]]"Ñóïåð ðàçðóøèòåëü"[[GOLD]] ,êîòîðàÿ àêòèâèðóåòñÿ [[GOLD]]íàæàòèåì ïðàâîé êíîïêè ìûøè íà íåêîòîðîå âðåìÿ,[[GOLD]]ñâÿçàííîå ñ âàøèì óðîâíåì óìåíèÿ. Ïîäíÿòü óðîâåíü [[BLUE]]Øàõò¸ðñòâà,[[GOLD]]ëåãêî ïðîñòî êîïàéòå ðóäû è êàìíè! -m.SkillAlchemy=ALCHEMY -m.SkillEnchanting=ENCHANTING -m.SkillFishing=FISHING -mcPlayerListener.AlchemySkill=Alchemy: -mcPlayerListener.EnchantingSkill=Enchanting: -mcPlayerListener.FishingSkill=Fishing: -Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) -Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) -Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) -Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. -Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. -Repair.Downgraded=[[RED]]Arcane power has decreased for this item. -Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. -m.EffectsRepair5_0=Arcane Forging -m.EffectsRepair5_1=Repair magic items -m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 -m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% -m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% -m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, -m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... -Fishing.ItemFound=[[GRAY]]Treasure found! -m.SkillFishing=FISHING -m.XPGainFishing=Fishing (Go figure!) -m.EffectsFishing1_0=Treasure Hunter (Passive) -m.EffectsFishing1_1=Fish up misc objects -m.EffectsFishing2_0=Magic Hunter -m.EffectsFishing2_1=Find Enchanted Items -m.EffectsFishing3_0=Shake (vs. Entities) -m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole -m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 -m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** -m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; -m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) -m.TamingSummon=[[GREEN]]Summoning complete -m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. -m.EffectsTaming7_0=Call of the Wild -m.EffectsTaming7_1=Summon a wolf to your side +Combat.WolfExamine=[[GREEN]]**Âû íàó÷èëè Âîëêà èñïîëüçîâàíèþ "Óäàðà âîëêà"** +Combat.WolfExamine=[[GREEN]]**Âû íàó÷èëè Âîëêà èñïîëüçîâàíèþ "Óäàðà âîëêà"** +Combat.WolfShowMaster=[[DARK_GREEN]]Ìàñòåð ïî ïðèðó÷åíèþ Âîëêîâ \: {0} +Combat.Ignition=[[RED]]**Âû ïîäîæãëè ïðîòèâíèêà ñòðåëîé!!** +Combat.BurningArrowHit=[[DARK_RED]]Âû áûëè ïîðàæåíû ãîðÿùåé ñòðåëîé\! +Combat.TouchedFuzzy=[[DARK_RED]]Âû èñòåêàåòå êðîâüþ. Êðóæèòñÿ ãîëîâà. +Combat.TargetDazed=Âàøà öåëü [[DARK_RED]]Øîêèðîâàíà +Combat.WolfNoMaster=[[GRAY]]Ó ýòîãî Âîëêà íåò õîçÿèíà +Combat.WolfHealth=[[GREEN]]Ó ýòîãî Âîëêà {0} Çäîðîâüÿ +Combat.StruckByGore=[[RED]]**Îêðàâëåíèå íåóäà÷íî** +Combat.Gore=[[GREEN]]**Îêðàâëåíèå** +Combat.ArrowDeflect=[[WHITE]]**Ñòðåëà îòñêî÷èëà** +Item.ChimaeraWingFail=**Êðûëüÿ Õèìåðû íå ñìîãëè âàñ óíåñòè\!** +Item.ChimaeraWingPass=**Êðûëüÿ Õèìåðû óíîñÿò âàñ...** +Item.InjuredWait=Âû ðàíåíû è íå ñìîæåòå ïîêà èñïîëüçîâàòü ýòî. [[YELLOW]]({0}s) +Item.NeedFeathers=[[GRAY]]Âàì íóæíî áîëüøå ïåðüåâ.. +m.mccPartyCommands=[[GREEN]]--Ãðóïïîâûå êîìàíäû-- +m.mccParty=[party name] [[RED]]- Ñîçäàíèå ãðóïïû +m.mccPartyQ=[[RED]]- Ïîêèíüòå òåêóùóþ ãðóïïó +m.mccPartyToggle=[[RED]] - Âêëþ÷èòü ãðóïïîâîé ÷àò +m.mccPartyInvite=[player name] [[RED]]- Ïðèñëàòü ïðèãëàøåíèå â ãðóïïó +m.mccPartyAccept=[[RED]]- Ïîäòâåðäèòü ïðèãëàøåíèå â ãðóïïó +m.mccPartyTeleport=[party member name] [[RED]]- Òåëåïîðòèðîâàòüñÿ ê ÷ëåíó ãðóïïû +m.mccOtherCommands=[[GREEN]]--Äðóãèå êîìàíäû-- +m.mccStats=- Ïîñìîòðåòü âàøè McMMo õàðàêòåðèñòèêè +m.mccLeaderboards=- Äîñêà Ëèäåðîâ +m.mccMySpawn=- Òåëåïîðòèðóåò ê âàøåé êðîâàòè +m.mccClearMySpawn=- Óáèðàåò âàøó êðîâàòü +m.mccToggleAbility=- Àêòèâèðîâàòü âîçìîæíîñòü ïðàâûì êëèêîì ìûøè +m.mccAdminToggle=- Âêëþ÷èòü àäìèíñêèé ÷àò +m.mccWhois=[playername] [[RED]]- Ïîñìîòðåòü äåòàëüíóþ èíôîðìàöèþ +m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Èçìåíèòü öåëü +m.mccMcGod=- Ðåæèì Áîãà +m.mccSkillInfo=[skillname] [[RED]]- Ïîñìîòðåòü äåòàëüíóþ èíôîðìàöèþ î óìåíèè +m.mccModDescription=[[RED]]- Ïðî÷èòàòü èíôîðìàöèþ î ìîäå McMMo +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0} +m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} +m.AbilityLockTemplate=[[GRAY]]{0} +m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} +m.Effects=ÝÔÔÅÊÒÛ +m.YourStats=ÂÀØÈ ÕÀÐÀÊÒÅÐÈÑÒÈÊÈ +m.SkillTaming=Ïðèðó÷åíèå +m.XPGainTaming=Âîëêè ïðè÷èíÿþò óùåðá +m.EffectsTaming1_0=Óäàð Âîëêà +m.EffectsTaming1_1=Óìåíüøåíèå êîëè÷åñòâà êîñòåé +m.EffectsTaming2_0=Îêðàâëåíèå +m.EffectsTaming2_1=Êðèòè÷åñêèé óäàð âî âðåìÿ èñòåêàíèÿ êðîâüþ +m.EffectsTaming3_0=Îñòðûå Êîãòè +m.EffectsTaming3_1=Áîíóñ ê óðîíó +m.EffectsTaming4_0=Íåçàâèñèìîñòü îò ýêîëîãèè +m.EffectsTaming4_1=Èìóíèòåò ê ïàäåíèþ, áîÿçíü ëàâû/êàêòóñîâ +m.EffectsTaming5_0=Ãóñòîé ìåõ +m.EffectsTaming5_1=Ñîêðàùåíèå óðîíà, îãíåóñòîé÷èâîñòü +m.EffectsTaming6_0=Íàäåæíàÿ çàùèòà îò ïîâðåæäåíèé +m.EffectsTaming6_1=Ñíèæåíèå óðîíà îò âçðûâîâ +m.AbilLockTaming1=Áëîêèðóåòñÿ äî 100+ óðîâíÿ(Íåçàâèñèìîñòü îò ýêîëîãèè) +m.AbilLockTaming2=Áëîêèðóåòñÿ äî 250+ óðîâíÿ (Ãóñòîé ìåõ) +m.AbilLockTaming3=Áëîêèðóåòñÿ äî 500+ óðîâíÿ (Íàäåæíàÿ çàùèòà îò ïîâðåæäåíèé) +m.AbilLockTaming4=Áëîêèðóåòñÿ äî 700+ óðîâíÿ (Îñòðûå Êîãòè) +m.AbilBonusTaming1_0=Íåçàâèñèìîñòü îò ýêîëîãèè +m.AbilBonusTaming1_1=Âîëêè èçáåãàþò îïàñíîñòåé +m.AbilBonusTaming2_0=Ãóñòîé ìåõ +m.AbilBonusTaming2_1=Óðîí íàïîëîâèíó, Îãíåóñòîé÷èâîñòü +m.AbilBonusTaming3_0=Íàäåæíàÿ çàùèòà îò ïîâðåæäåíèé +m.AbilBonusTaming3_1=Âçðûâû ïðè÷èíÿþò 1/6 íîðìàëüíîãî óðîíà +m.AbilBonusTaming4_0=Îñòðûå Êîãòè +m.AbilBonusTaming4_1=+2 Óðîíà +m.TamingGoreChance=[[RED]]Øàíñ îêðàâëåíèÿ: [[YELLOW]]{0}% +m.SkillWoodCutting=Äåðåâîîáðàáîòêà +m.XPGainWoodCutting=Ðóáèòü äåðåâüÿ +m.EffectsWoodCutting1_0=Ëþáèòåëü äåðåâüåâ(ñïîñîáíîñòü) +m.EffectsWoodCutting1_1=Äåëàòü âçðûâû äåðåâüåâ +m.EffectsWoodCutting2_0=Áûñòðîå ñðåçàíèå ëèñòüåâ +m.EffectsWoodCutting2_1=Ñäóâàòü ëèñòüÿ +m.EffectsWoodCutting3_0=Äâîéíîé äðîï +m.EffectsWoodCutting3_1=Íîðìàëüíûé äâîéíîé äðîï +m.AbilLockWoodCutting1=Áëîêèðóåòñÿ äî 100+ óðîâíÿ(Áûñòðîå ñðåçàíèå ëèñòüåâ) +m.AbilBonusWoodCutting1_0=Áûñòðîå ñðåçàíèå ëèñòüåâ +m.AbilBonusWoodCutting1_1=Ñäóâàòü ëèñòüÿ +m.WoodCuttingDoubleDropChance=[[RED]]Øàíñ äâîéíîãî äðîïà: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Ïðîäîëæèòåëüíîñòü Ëþáèòåëÿ äåðåâüåâ: [[YELLOW]]{0}s +m.SkillArchery=Ñòðåëüáà èç ëóêà +m.XPGainArchery=Àòàêîâàòü ìîíñòðîâ èç ëóêà +m.EffectsArchery1_0=Ïîäæ¸ã +m.EffectsArchery1_1=25% øàíñ, ÷òî öåëü ïîäîæã¸òñÿ +m.EffectsArchery2_0=Øîêèðîâàíèå(Èãðîêîâ) +m.EffectsArchery2_1=Äåçîðèåíòèðóåò âðàãîâ +m.EffectsArchery3_0=Óðîí+ +m.EffectsArchery3_1=Óëó÷øàåò Óðîí +m.EffectsArchery4_0=Ïîëó÷åíèå ñòðåë +m.EffectsArchery4_1=Øàíñ ïîëó÷èòü ñòðåëû èç òðóïîâ +m.ArcheryDazeChance=[[RED]]Øàíñ øîêèðîâàòü: [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Øàíñ ïîëó÷èòü ñòðåëû: [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Äëèòåëüíîñòü ïîäæ¸ãà: [[YELLOW]]{0} ñåêóíä +m.ArcheryDamagePlus=[[RED]]Óðîí+ (Rank{0}): [[YELLOW]]Bonus {0} damage +m.SkillAxes=Òîïîðû +m.XPGainAxes=Àòàêîâàòü ìîíñòðîâ òîïîðîì +m.EffectsAxes1_0=Ðàçðóøèòåëü ÷åðåïîâ(ñïîñîáíîñòü) +m.EffectsAxes1_1=Óâåëè÷åíèå óðîíà îò òîïîðà +m.EffectsAxes2_0=Êðèòè÷åñêèå óäàðû +m.EffectsAxes2_1=Äâîéíîé óðîí +m.EffectsAxes3_0=Ìàñòåðñòâî òîïîðà(500 óðîâåíü) +m.EffectsAxes3_1=Óëó÷øåíèå óðîíà +m.AbilLockAxes1=Áëîêèðóåòñÿ äî 500+ óðîâíÿ(Ìàñòåðñòâî òîïîðà) +m.AbilBonusAxes1_0=Ìàñòåðñòâî òîïîðà +m.AbilBonusAxes1_1=Äàåò áîíóñ â 4 óðîíà +m.AxesCritChance=[[RED]]Øàíñ êðèòè÷åñêîãî óäàðà: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Ïðîäîëæèòåëüíîñòü Ðàçðóøèòåëÿ ×åðåïîâ: [[YELLOW]]{0}s +m.SkillSwords=Ìå÷è +m.XPGainSwords=Àòàêîâàòü ìîíñòðîâ ìå÷îì +m.EffectsSwords1_0=Êîíòð-Àòàêà +m.EffectsSwords1_1=Îòðàæàåò 50% ïîëó÷åííîãî óðîíà +m.EffectsSwords2_0=Çàçóáðåííûå ìå÷è(ñïîñîáíîñòü) +m.EffectsSwords2_1=25% Óðîíà+ è êðîâîòå÷åíèå îò óäàðà +m.EffectsSwords3_0=Óâåëå÷åíèå äëèòåëüíîñòè ñïîñîáíîñòè "Çàçóáðåííûå ìå÷è" +m.EffectsSwords3_1=Êðîâîòå÷åíèå 5 ðàç +m.EffectsSwords4_0=Ïàðèðîâàíèå +m.EffectsSwords4_1=Îòðèöàòåëüíûé óðîí +m.EffectsSwords5_0=Êðîâîòå÷åíèå +m.EffectsSwords5_1=Çàñòàâëÿåò âðàãà êðîâîòî÷èòü +m.SwordsCounterAttChance=[[RED]]Øàíñ Êîíòð-Àòàêè: [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Äëèòåëüíîñòü êðîâîòå÷åíèÿ: [[YELLOW]]{0} ðàç +m.SwordsBleedChance=[[RED]]Øàíñ êðîâîòå÷åíèÿ: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Øàíñ ïàðèðîâàíèÿ: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Äëèòåëüíîñòü "Çàçóáðåííûx ìå÷åé": [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]Çàìåòêà: [[YELLOW]]1 ðàç äëèòüñÿ 2 ñåêóíäû +m.SkillAcrobatics=Àêðîáàòèêà +m.XPGainAcrobatics=Íóæíî Ïàäàòü ñ ãîð +m.EffectsAcrobatics1_0=Ïåðåâîðîò +m.EffectsAcrobatics1_1=Ïîãëîùàåò èëè óìåíüøàåò óðîí +m.EffectsAcrobatics2_0=Ïðåâîñõîäíûé ïåðåâîðîò +m.EffectsAcrobatics2_1=Äâàæäû ýôôåêòèâíåå ïåðåâîðîòà +m.EffectsAcrobatics3_0=Óâîðîò +m.EffectsAcrobatics3_1=Óìåíüøàåò óðîí íàïîëîâèíó îò ñòðåëû +m.AcrobaticsRollChance=[[RED]]Øàíñ ïåðåâîðîòà: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Øàíñ ïðåâîñõîäíîãî ïåðåâîðîòà: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Øàíñ óâîðîòà: [[YELLOW]]{0}% +m.SkillMining=Øàõò¸ðñòâî +m.XPGainMining=Äîáûâàòü ðóäó è êàìíè â øàõòàõ +m.EffectsMining1_0=Ñóïåð ðàçðóøèòåëü(ñïîñîáíîñòü) +m.EffectsMining1_1=Óâåëè÷åíèå ñêîðîñòè, Øàíñ òðîéíîãî äðîïà +m.EffectsMining2_0=Äâîéíîé äðîï +m.EffectsMining2_1=Äâîéíîé äðîï ñòàíîâèòñÿ íîðìàëüíûì +m.MiningDoubleDropChance=[[RED]]Øàíñ äâîéíîãî äðîïà: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Äëèòåëüíîñòü ñïîñîáíîñòè "Ñóïåð Ðàçðóøèòåëü": [[YELLOW]]{0}s +m.SkillRepair=Ïî÷èíêà +m.XPGainRepair=×èíèòü âåùè +m.EffectsRepair1_0=Ïî÷èíêà +m.EffectsRepair1_1=×èíèò Æåëåçíûå èíñòðóìåíòû è áðîíþ +m.EffectsRepair2_0=Ìàñòåðñòâî ïî÷èíêè +m.EffectsRepair2_1=Óâåëè÷èâàåò êà÷åñòâî ðåìîíòà +m.EffectsRepair3_0=Ñóïåð ïî÷èíêà +m.EffectsRepair3_1=Äâîéíàÿ ýôôåêòèâíîñòü âåùåé +m.EffectsRepair4_0=Ïî÷èíêà Àëìàçíûõ âåùåé ({0}+ óðîâåíü) +m.EffectsRepair4_1=×èíèòü Àëìàçíûå èíñòðóìåíòû è áðîíþ +m.RepairRepairMastery=[[RED]]Ìàñòåðñòâî ïî÷èíêè: [[YELLOW]]Äîïîëíèòåëüíî {0}% äîëãîâå÷íîñòè âîññòàíîâëåíî +m.RepairSuperRepairChance=[[RED]]Øàíñ Ñóïåð ïî÷èíêè: [[YELLOW]]{0}% +m.SkillUnarmed=Ðóêîïàøíûé áîé +m.XPGainUnarmed=Àòàêîâàòü ìîíñòðîâ ãîëûìè ðóêàìè +m.EffectsUnarmed1_0=Áåðñåðê(ñïîñîáíîñòü) +m.EffectsUnarmed1_1=+50% Óðîíà, Ëîìàòü ñëàáûå ìàòåðèàëû +m.EffectsUnarmed2_0=Îáåçîðóæåíèå(Èãðîêè) +m.EffectsUnarmed2_1=Ïàäàåò îðóæèå ïðîòèâíèêà íà çåìëþ, êîòîðîå íàõîäèòñÿ â ðóêàõ ó íåãî. +m.EffectsUnarmed3_0=Ìàñòåð Ðóêîïàøíîãî áîÿ +m.EffectsUnarmed3_1=Óëó÷øåíèå óðîíà îò êóëàêîâ +m.EffectsUnarmed4_0=Ó÷åíèê ðóêîïàøíîãî áîÿ +m.EffectsUnarmed4_1=Óâåëè÷åíèå óðîíà îò êóëàêîâ +m.EffectsUnarmed5_0=Îòðàæåíèå ñòðåë +m.EffectsUnarmed5_1=Ñòðåëû îòðàæàþòñÿ +m.AbilLockUnarmed1=Áëîêèðóåòñÿ äî 250+ óðîâíÿ(Ó÷åíèê ðóêîïàøíîãî áîÿ) +m.AbilLockUnarmed2=Áëîêèðóåòñÿ äî 500+ óðîâíÿ(Ìàñòåð Ðóêîïàøíîãî áîÿ) +m.AbilBonusUnarmed1_0=Ó÷åíèê ðóêîïàøíîãî áîÿ +m.AbilBonusUnarmed1_1=+2 áîíóñ ê óðîíó +m.AbilBonusUnarmed2_0=Ìàñòåð Ðóêîïàøíîãî áîÿ +m.AbilBonusUnarmed2_1=+4 áîíóñ ê óðîíó +m.UnarmedArrowDeflectChance=[[RED]]Øàíñ îòðàçèòü ñòðåëû: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Øàíñ îáåçîðóæèòü: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Äëèòåëüíîñòü "Áåðñåðêà": [[YELLOW]]{0}s +m.SkillHerbalism=Òðàâîâåäåíèå +m.XPGainHerbalism=Âûðàùèâàòü ðàñòåíèÿ +m.EffectsHerbalism1_0=Îçåëåíèòåëü(ñïîñîáíîñòü) +m.EffectsHerbalism1_1=Ðàñïðîñòðîíåíèå îçåëåíåíèé, 3-îé äðîï +m.EffectsHerbalism2_0="Çåëåíûé ôåðìåð"(Ïùåíèöà) +m.EffectsHerbalism2_1=Àâòî âûðàùèâàíèå ïùåíèöû ïîñëå ïîñàäêè +m.EffectsHerbalism3_0="Çåëåíûé ôåðìåð"(Ìîõ) +m.EffectsHerbalism3_1=Êàìåíü -> Çàìøåëûé êàìåíü + ñåìåíà +m.EffectsHerbalism4_0=Óëó÷øåíèå åäû +m.EffectsHerbalism4_1=Óëó÷øàåò êîëè÷åñòâî çäîðîâüÿ îò õëåáà è ãðèáíîãî ñóïà +m.EffectsHerbalism5_0=Äðîéíîé äðîï(Âñå ðàñòåíèÿ) +m.EffectsHerbalism5_1=Äâîéíîé äðîï ñòàíîâèòñÿ íîðìàëüíûì +m.HerbalismGreenTerraLength=[[RED]]Ïðîäîëæèòåëüíîñòü "Îçåëåíèòåëÿ": [[YELLOW]]{0}s +m.HerbalismGreenThumbChance=[[RED]]Øàíñ "Çåëåíîãî ôåðìåðà": [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Óðîâåíü "Çåëåíîãî ôåðìåðà": [[YELLOW]] Ïùåíèöà ðàñòåò ïî-óðîâíåâî {0} +m.HerbalismDoubleDropChance=[[RED]]Øàíñ äâîéíîãî äðîïà: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Åäà+ (Rank{0}): [[YELLOW]]Áîíóñ {0} ëå÷åíèÿ +m.SkillExcavation=Ðàñêîïêà +m.XPGainExcavation=Ðàñêàïûâàòü è èñêàòü ñîêðîâèùà +m.EffectsExcavation1_0=Ìåãà äðåëü(ñïîñîáíîñòü) +m.EffectsExcavation1_1=3-îé äðîï, 3-îé îïûò, Óâåëè÷åíèå ñêîðîñòè +m.EffectsExcavation2_0=Îõîòíèê çà ñîêðîâèùàìè +m.EffectsExcavation2_1=Ñïîñîáíîñòü êîïàòü ñîêðîâèùà +m.ExcavationGreenTerraLength=[[RED]]Ïðîäîëæèòåëüíîñòü "Ìåãà äðåëè": [[YELLOW]]{0}s +mcBlockListener.PlacedAnvil=[[DARK_RED]]Âû ðàçìåñòèëè íàêîâàëüíè è òåïåðü ìîæåòå ÷èíèòü âåùè. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]Âàø âîëê õî÷åò âåðíóòüñÿ ê âàì +mcPlayerListener.AbilitiesOff=Èñïîëüçîâàíèå ñïîñîáíîñòåé âûêëþ÷åíî +mcPlayerListener.AbilitiesOn=Èñïîëüçîâàíèå ñïîñîáíîñòåé âêëþ÷åíî +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**Ñïîñîáíîñòè âîññòàíîâëåíû\!** +mcPlayerListener.AcrobaticsSkill=Àêðîáàòèêà: +mcPlayerListener.ArcherySkill=Ñòðåëüáà èç ëóêà: +mcPlayerListener.AxesSkill=Òîïîðû: +mcPlayerListener.ExcavationSkill=Ðàñêîïêà: +mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO ðåæèì áîãà âûêëþ÷åí +mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO ðåæèì áîãà âêëþ÷¸í +mcPlayerListener.GreenThumb=[[GREEN]]**"Çåëåíûé ôåðìåð"** +mcPlayerListener.GreenThumbFail=[[RED]]**"Çåëåíûé ôåðìåð" íåóäàëñÿ** +mcPlayerListener.HerbalismSkill=Òðàâîâåäåíèå: +mcPlayerListener.MiningSkill=Øàõò¸ðñòâî: +mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Âàøà êðîâàòü óáðàíà. +mcPlayerListener.MyspawnNotExist=[[RED]]Ñäåëàéòå âàøó òî÷êó ïîÿâëåíèÿ âîçëå êðîâàòè, ïîñïàâ íà êðîâàòè. +mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Ìîÿ òî÷êà ïîÿâëåíèÿ ñîõðàíåíà â ýòîé ëîêàöèè. +mcPlayerListener.MyspawnTimeNotice=Âû äîëæíû ïîäîæäàòü {0}m {1}s ÷òîáû èñïîëüçîâàòü ïîÿâëåíèå îêîëî êðîâàòè +mcPlayerListener.NoPermission=Íåäîñòàòî÷íûå ïðàâà. +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Åñëè ó âàñ íåò äîñòóïà ê óìåíèþ, òî îíî çäåñü íå îòîáðàçèòñÿ. +mcPlayerListener.NotInParty=[[RED]]Âû íå â ãðóïïå! +mcPlayerListener.InviteSuccess=[[GREEN]]Ïðèãëàøåíèå óñïåøíî ïîñëàíî. +mcPlayerListener.ReceivedInvite1=[[RED]]ÒÐÅÂÎÃÀ: [[GREEN]]Âû ïîëó÷èëè ïðèãëàøåíèå íà âñòóïëåíèå â ãðóïïó {0} îò {1} +mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] ÷òîáû îäîáðèòü âñòóïëåíèå +mcPlayerListener.InviteAccepted=[[GREEN]]Ïðèãëàøåíèå îäîáðåíî. Âû âñòóïèëè â ãðóïïó {0} +mcPlayerListener.NoInvites=[[RED]]Ó âàñ íåò ïðèãëàøåíèé â ãðóïïó ñåé÷àñ +mcPlayerListener.YouAreInParty=[[GREEN]]Âû óæå â ãðóïïå {0} +mcPlayerListener.PartyMembers=[[GREEN]]×ëåíû ãðóïïû +mcPlayerListener.LeftParty=[[RED]]Âû âûøëè èç ãðóïïû +mcPlayerListener.JoinedParty=Ïðèñîåäèííûå ãðóïïû: {0} +mcPlayerListener.PartyChatOn=Òîëüêî ÷àò ãðóïïû [[GREEN]]Âêëþ÷åíî +mcPlayerListener.PartyChatOff=Òîëüêî ÷àò ãðóïïû [[RED]]Âûêëþ÷åíî +mcPlayerListener.AdminChatOn=Òîëüêî àäìèí ÷àò [[GREEN]]Âêëþ÷åíî +mcPlayerListener.AdminChatOff=Òîëüêî àäìèí ÷àò [[RED]]Âûêëþ÷åíî +mcPlayerListener.MOTD=[[BLUE]]Íà ýòîì ñåðâåðå óñòàíîâëåí ïëàãèí McMMO {0} type [[YELLOW]]/{1}[[BLUE]] äëÿ ïîìîùè. +mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Âèêèïåäèÿ +mcPlayerListener.PowerLevel=[[DARK_RED]]Óðîâåíü óìåíèé: +mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Óðîâåíü óìåíèé [[YELLOW]]Äîñêà Ëèäåðîâ-- +mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Äîñêà Ëèäåðîâ-- +mcPlayerListener.RepairSkill=Ïî÷èíêà: +mcPlayerListener.SwordsSkill=Ìå÷è: +mcPlayerListener.TamingSkill=Ïðèðó÷åíèå âîëêîâ: +mcPlayerListener.UnarmedSkill=Ðóêîïàøíûé áîé: +mcPlayerListener.WoodcuttingSkill=Äåðåâîîáðàáîòêà: +mcPlayerListener.YourStats=[[GREEN]][mcMMO] Õàðàêòåðèñòèêè +Party.InformedOnJoin={0} [[GREEN]] ïðèñîåäèíèëñÿ ê ãðóïïå +Party.InformedOnQuit={0} [[GREEN]] óø¸ë èç ãðóïïû +Skills.YourGreenTerra=[[GREEN]]Âàøà ñïîñîáíîñòü[[YELLOW]]"Îçåëåíåíèå" [[GREEN]]âîññòàíîâëåíà! +Skills.YourTreeFeller=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Ëþáèòåëü äåðåâüåâ" [[GREEN]]âîññòàíîâëåíà! +Skills.YourSuperBreaker=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Ñóïåð ðàçðóøèòåëü" [[GREEN]]âîññòàíîâëåíà! +Skills.YourSerratedStrikes=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Çàçóáðåííûå ìå÷è" [[GREEN]]âîññòàíîâëåíà! +Skills.YourBerserk=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Áåðñåðê" [[GREEN]]âîññòàíîâëåíà! +Skills.YourSkullSplitter=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Ðàçðóøèòåëü ÷åðåïîâ" [[GREEN]]âîññòàíîâëåíà! +Skills.YourGigaDrillBreaker=[[GREEN]]Âàøà ñïîñîáíîñòü [[YELLOW]]"Ìåãà äðåëü" [[GREEN]]âîññòàíîâëåíà! +Skills.TooTired=[[RED]]Âû ñëèøêîì óñòàëè, ÷òîáû èñïîëüçîâàòü ñïîñîáíîñòü åù¸ ðàç. +Skills.ReadyHoe=[[GREEN]]**Ïðèãîòîâüòå âàøó Ìîòûãó** +Skills.LowerHoe=[[GRAY]]**Îïóñòèòå âàøó Ìîòûãó** +Skills.ReadyAxe=[[GREEN]]**Ïðèãîòîâüòå âàø Òîïîð** +Skills.LowerAxe=[[GRAY]]**Îïóñòèòå âàø Òîïîð** +Skills.ReadyFists=[[GREEN]]**Ïðèãîòîâüòå âàøè Êóëàêè** +Skills.LowerFists=[[GRAY]]**Îïóñòèòå âàøè Êóëàêè** +Skills.ReadyPickAxe=[[GREEN]]**Ïðèãîòîâüòå âàøó Êèðêó** +Skills.LowerPickAxe=[[GRAY]]**Îïóñòèòå âàøó Êèðêó** +Skills.ReadyShovel=[[GREEN]]**Ïðèãîòîâüòå âàøó Ëîïàòó** +Skills.LowerShovel=[[GRAY]]**Îïóñòèòå âàøó Ëîïàòó** +Skills.ReadySword=[[GREEN]]**Ïðèãîòîâüòå âàø Ìå÷** +Skills.LowerSword=[[GRAY]]**Îïóñòèòå âàø Ìå÷** +Skills.BerserkOn=[[GREEN]]**Ñïîñîáíîñòü "Áåðñåðê" àêòèâèðîâàíà** +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Áåðñåðê"! +Skills.GreenTerraOn=[[GREEN]]**Ñïîñîáíîñòü "Îçåëåíåíèå" àêòèâèðîâàíà** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Îçåëåíåíèå"! +Skills.TreeFellerOn=[[GREEN]]**Ñïîñîáíîñòü "Ëþáèòåëü Äåðåâüåâ" àêòèâèðîâàíà** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Ëþáèòåëü Äåðåâüåâ"! +Skills.SuperBreakerOn=[[GREEN]]**Ñïîñîáíîñòü "Ñóïåð Ðàçðóøèòåëü" àêòèâèðîâàíà** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Ñóïåð Ðàçðóøèòåëü"! +Skills.SerratedStrikesOn=[[GREEN]]**Ñïîñîáíîñòü "Çàçóáðåííûå ìå÷è" àêòèâèðîâàíà** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Çàçóáðåííûå ìå÷è"! +Skills.SkullSplitterOn=[[GREEN]]**Ñïîñîáíîñòü "Ðàçðåøèòåëü ÷åðåïîâ" àêòèâèðîâàíà** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Ðàçðóøèòåëü ÷åðåïîâ"! +Skills.GigaDrillBreakerOn=[[GREEN]]**Ñïîñîáíîñòü "Ìåãà äðåëü" àêòèâèðîâàíà** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] èñïîëüçîâàë ñïîñîáíîñòü [[RED]]"Ìåãà äðåëü"! +Skills.GreenTerraOff=[[RED]]**Ñïîñîáíîñòü "Îçåëåíåíèå" äåàêòèâèðîâàíà** +Skills.TreeFellerOff=[[RED]]**Ñïîñîáíîñòü "Ëþáèòåëü Äåðåâüåâ" äåàêòèâèðîâàíà** +Skills.SuperBreakerOff=[[RED]]**Ñïîñîáíîñòü "Ñóïåð Ðàçðóøèòåëü" äåàêòèâèðîâàíà** +Skills.SerratedStrikesOff=[[RED]]**Ñïîñîáíîñòü "Çàçóáðåííûå ìå÷è" äåàêòèâèðîâàíà** +Skills.BerserkOff=[[RED]]**Ñïîñîáíîñòü "Áåðñåðê" äåàêòèâèðîâàíà** +Skills.SkullSplitterOff=[[RED]]**Ñïîñîáíîñòü "Ðàçðåøèòåëü ÷åðåïîâ" äåàêòèâèðîâàíà** +Skills.GigaDrillBreakerOff=[[RED]]**Ñïîñîáíîñòü "Ìåãà äðåëü" äåàêòèâèðîâàíà** +Skills.TamingUp=[[YELLOW]]Óìåíèå "Ïðèðó÷åíèå âîëêîâ" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.AcrobaticsUp=[[YELLOW]]Óìåíèå "Àêðîáàòèêà" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.ArcheryUp=[[YELLOW]]Óìåíèå "Ñòðåëüáà èç ëóêà" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.SwordsUp=[[YELLOW]]Óìåíèå "Ìå÷è" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.AxesUp=[[YELLOW]]Óìåíèå "Òîïîðû" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.UnarmedUp=[[YELLOW]]Óìåíèå "Ðóêîïàøíûé áîé" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.HerbalismUp=[[YELLOW]]Óìåíèå "Òðàâîâåäåíèå" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.MiningUp=[[YELLOW]]Óìåíèå "Øàõò¸ðñòâî" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.WoodcuttingUp=[[YELLOW]]Óìåíèå "Äåðåâîîáðàáîòêà" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.RepairUp=[[YELLOW]]Óìåíèå "Ïî÷èíêà" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.ExcavationUp=[[YELLOW]]Óìåíèå "Ðàñêîïêà" ïîâûøåíî íà {0}. Âñåãî ({1}) +Skills.FeltEasy=[[GRAY]]Ýòî áûëî ëåãêî. +Skills.StackedItems=[[DARK_RED]]Âû íå ìîæåòå ÷èíèòü ñòàêóþùèåñÿ ïðåäìåòû +Skills.NeedMore=[[DARK_RED]]Íóæíî áîëüøå ìàòåðèàëà +Skills.AdeptDiamond=[[DARK_RED]]Âû íå îáó÷åíû ÷èíèòü àëìàçíûå èíñòðóìåíòû è áðîíþ +Skills.FullDurability=[[GRAY]]Âåùü íå íóæäàåòñÿ â ïî÷èíêå. +Skills.Disarmed=[[DARK_RED]]Âû îáåçîðóæåíû! +mcPlayerListener.SorcerySkill=Êîëäîâñòâî: +m.SkillSorcery=Êîëäîâñòâî +Sorcery.HasCast=[[GREEN]]**Èñïîëüçóþ "Êîëäîâñòâî"**[[GOLD]] +Sorcery.Current_Mana=[[DARK_AQUA]] Ìàíû +Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) +Sorcery.Cost=[[RED]][COST] {0} Ìàíû +Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Íå õâàòàåò ìàíû [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) +Sorcery.Water.Thunder=Ãðîì +Sorcery.Curative.Self=Âûëå÷èòü ñåáÿ +Sorcery.Curative.Other=Âûëå÷èòü äðóãèõ +m.LVL=[[DARK_GRAY]]Óðîâåíü: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) +Combat.BeastLore=[[GREEN]]**Óìåíèå "Óäàð âîëêà" àêòèâèðîâàíî** +Combat.BeastLoreOwner=[[DARK_AQUA]]Âëàäåëåö ([[RED]]{0}[[DARK_AQUA]]) +Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Çäîðîâüÿ ([[GREEN]]{0}[[DARK_AQUA]]/20) +Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Çäîðîâüÿ ([[GREEN]]{0}[[DARK_AQUA]]/8) +Party.Locked=[[RED]]Ãðóïïà çàïàðîëåíà, òîëüêî ëèäåð ãðóïïû ìîæåò ïðèãëàøàòü. +Party.IsntLocked=[[GRAY]]Ãðóïïà ðàçáëîêèðîâàíà +Party.Unlocked=[[GRAY]]Ãðóïïà ðàçáëîêèðîâàíà +Party.Help1=[[RED]]Èñïîëüçîâàíèå [[YELLOW]]/{0} [[WHITE]][[YELLOW]] èëè [[WHITE]]'q' [[YELLOW]]äëÿ âûõîäà +Party.Help2=[[RED]]×òîáû ïðèñîåäèíèòñÿ ê çàïàðîëåííîé ãðóïïå ââåäèòå [[YELLOW]]/{0} [[WHITE]]<èìÿ> <ïàðîëü> +Party.Help3=[[RED]]Ââåäèòå /{0} ? äëÿ áîëüøåé èíôîðìàöèè +Party.Help4=[[RED]]Èñïîëüçóéòå [[YELLOW]]/{0} [[WHITE]]<èìÿ> [[YELLOW]]÷òîáû ïðèñîåäèíèòñÿ ê ãðóïïå èëè [[WHITE]]'q' [[YELLOW]]äëÿ âûõîäà +Party.Help5=[[RED]]×òîáû çàáëîêèðîâàòü ãðóïïó ââåäèòå [[YELLOW]]/{0} [[WHITE]]lock +Party.Help6=[[RED]]×òîáû ðàçáëîêèðîâàòü ãðóïïó ââåäèòå [[YELLOW]]/{0} [[WHITE]]unlock +Party.Help7=[[RED]]×òîáû çàïàðîëèòü ãðóïïó ââåäèòå [[YELLOW]]/{0} [[WHITE]]password <ïàðîëü> +Party.Help8=[[RED]]×òîáû âûêèíóòü èãðîêà èç ãðóïïû ââåäèòå [[YELLOW]]/{0} [[WHITE]]kick <èãðîê> +Party.Help9=[[RED]]×òîáû îòäàòü ëèäåðñòâî ãðóïïû ââåäèòå [[YELLOW]]/{0} [[WHITE]]owner <èãðîê> +Party.NotOwner=[[DARK_RED]]Âû òåïåðü íå ëèäåð ãðóïïû +Party.InvalidName=[[DARK_RED]]Íåêîððåêòíîå èìÿ ãðóïïû +Party.PasswordSet=[[GREEN]]Ïàðîëü ãðóïïû íàçíà÷åí {0} +Party.CouldNotKick=[[DARK_RED]]Âû íå ìîæåòå óáðàòü èãðîêà èç ãðóïïû {0} +Party.NotInYourParty=[[DARK_RED]]{0} íå â ãðóïïå +Party.CouldNotSetOwner=[[DARK_RED]]Âû íå ìîæåòå îòäàòü ëèäåðñòâî èãðîêó {0} +mcMMO.Description=[[DARK_AQUA]]Q: ×òî ýòî?,[[GOLD]]mcMMO ýòî [[RED]]ÎÏÅÍ ÑÓÐÑ[[GOLD]] RPG ìîä äëÿ ñåðâåðà Bukkit îò ïîëüçîâàòåëÿ [[BLUE]]nossr50,[[GOLD]]Çäåñü áûëî äîáàâëåíî ìíîãî óìåíèé äëÿ Minecraft ñåðâåðà.,[[GOLD]]Âû ìîæåòå ïðîêà÷àòü èõ ðàçíûìè ñïîñîáàìè,[[GOLD]]Âû õîòèòå íàéòè áîëüøå èíôîðìàöèè î óìåíèè [[GREEN]]/SKILLNAME[[GOLD]] ?,[[DARK_AQUA]]Q: ×òî ÿ äîëæåí ñäåëàòü?,[[GOLD]]Äëÿ ïðèìåðà... in [[DARK_AQUA]]Øàõò¸ðñòâî[[GOLD]] âû ïîëó÷èòå [[RED]]2-îé äðîï[[GOLD]] èëè ñïîñîáíîñòü [[RED]]"Ñóïåð ðàçðóøèòåëü"[[GOLD]] ,êîòîðàÿ àêòèâèðóåòñÿ [[GOLD]]íàæàòèåì ïðàâîé êíîïêè ìûøè íà íåêîòîðîå âðåìÿ,[[GOLD]]ñâÿçàííîå ñ âàøèì óðîâíåì óìåíèÿ. Ïîäíÿòü óðîâåíü [[BLUE]]Øàõò¸ðñòâà,[[GOLD]]ëåãêî ïðîñòî êîïàéòå ðóäû è êàìíè! +m.SkillAlchemy=ALCHEMY +m.SkillEnchanting=ENCHANTING +m.SkillFishing=FISHING +mcPlayerListener.AlchemySkill=Alchemy: +mcPlayerListener.EnchantingSkill=Enchanting: +mcPlayerListener.FishingSkill=Fishing: +Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) +Skills.EnchantingUp=[[YELLOW]]Enchanting skill increased by {0}. Total ({1}) +Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) +Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. +Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. +Repair.Downgraded=[[RED]]Arcane power has decreased for this item. +Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. +m.EffectsRepair5_0=Arcane Forging +m.EffectsRepair5_1=Repair magic items +m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 +m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% +m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% +m.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+, +m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ +Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.ItemFound=[[GRAY]]Treasure found! +m.SkillFishing=FISHING +m.XPGainFishing=Fishing (Go figure!) +m.EffectsFishing1_0=Treasure Hunter (Passive) +m.EffectsFishing1_1=Fish up misc objects +m.EffectsFishing2_0=Magic Hunter +m.EffectsFishing2_1=Find Enchanted Items +m.EffectsFishing3_0=Shake (vs. Entities) +m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole +m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 +m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** +m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; +m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) +m.TamingSummon=[[GREEN]]Summoning complete +m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. +m.EffectsTaming7_0=Call of the Wild +m.EffectsTaming7_1=Summon a wolf to your side m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand \ No newline at end of file diff --git a/src/com/gmail/nossr50/locale/mcLocale.java b/src/main/java/com/gmail/nossr50/locale/mcLocale.java similarity index 97% rename from src/com/gmail/nossr50/locale/mcLocale.java rename to src/main/java/com/gmail/nossr50/locale/mcLocale.java index 78fdf96bf..2146a477c 100644 --- a/src/com/gmail/nossr50/locale/mcLocale.java +++ b/src/main/java/com/gmail/nossr50/locale/mcLocale.java @@ -1,91 +1,91 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -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; - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +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/src/com/gmail/nossr50/m.java b/src/main/java/com/gmail/nossr50/m.java similarity index 97% rename from src/com/gmail/nossr50/m.java rename to src/main/java/com/gmail/nossr50/m.java index 619a26ebc..675daffbc 100644 --- a/src/com/gmail/nossr50/m.java +++ b/src/main/java/com/gmail/nossr50/m.java @@ -1,521 +1,521 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -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.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.*; -import org.bukkit.inventory.ItemStack; -import com.gmail.nossr50.config.*; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.FakeBlockBreakEvent; -import com.gmail.nossr50.datatypes.SkillType; - -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! - */ - - public static String getCapitalized(String target) - { - String firstLetter = target.substring(0,1); - String remainder = target.substring(1); - String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); - - return capitalized; - } - 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(); - return id == 103 || id == 82 || id == 16 || id == 73 || 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; - } - - public static int getPowerLevel(Player player) - { - PlayerProfile PP = Users.getProfile(player); - int x = 0; - if(mcPermissions.getInstance().taming(player)) - x+=PP.getSkillLevel(SkillType.TAMING); - if(mcPermissions.getInstance().mining(player)) - x+=PP.getSkillLevel(SkillType.MINING); - if(mcPermissions.getInstance().woodcutting(player)) - x+=PP.getSkillLevel(SkillType.WOODCUTTING); - if(mcPermissions.getInstance().unarmed(player)) - x+=PP.getSkillLevel(SkillType.UNARMED); - if(mcPermissions.getInstance().herbalism(player)) - x+=PP.getSkillLevel(SkillType.HERBALISM); - if(mcPermissions.getInstance().excavation(player)) - x+=PP.getSkillLevel(SkillType.EXCAVATION); - if(mcPermissions.getInstance().archery(player)) - x+=PP.getSkillLevel(SkillType.ARCHERY); - if(mcPermissions.getInstance().swords(player)) - x+=PP.getSkillLevel(SkillType.SWORDS); - if(mcPermissions.getInstance().axes(player)) - x+=PP.getSkillLevel(SkillType.AXES); - if(mcPermissions.getInstance().acrobatics(player)) - x+=PP.getSkillLevel(SkillType.ACROBATICS); - if(mcPermissions.getInstance().repair(player)) - x+=PP.getSkillLevel(SkillType.REPAIR); - if(mcPermissions.getInstance().fishing(player)) - x+=PP.getSkillLevel(SkillType.FISHING); - return x; - } - - public static boolean blockBreakSimulate(Block block, Player player) - { - FakeBlockBreakEvent event = new FakeBlockBreakEvent(block, player); - if(block != null && player != null){ - Bukkit.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 == 107 ||i == 117 || i == 116 || 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) - { - return is.getTypeId() == 268 || is.getTypeId() == 267 || is.getTypeId() == 272 || is.getTypeId() == 283 || is.getTypeId() == 276; - } - - public static boolean isHoe(ItemStack is) - { - int id = is.getTypeId(); - return id == 290 || id == 291 || id == 292 || id == 293 || id == 294; - } - - public static boolean isShovel(ItemStack is){ - return is.getTypeId() == 269 || is.getTypeId() == 273 || is.getTypeId() == 277 || is.getTypeId() == 284 || is.getTypeId() == 256; - } - - 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() - { - if(!LoadProperties.useMySQL) - return; - - Bukkit.getScheduler().scheduleAsyncDelayedTask(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), new Runnable(){ - public void run() { - String location = "plugins/mcMMO/FlatFileStuff/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, fishing = null, fishingXP = 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]; - if (character.length > 34) - fishing = character[34]; - if (character.length > 35) - fishingXP = character[35]; - - //Check to see if the user is in the DB - id = mcMMO.database.GetInt("SELECT id FROM " - + LoadProperties.MySQLtablePrefix - + "users WHERE user = '" + playerName + "'"); - - 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) - + ", fishing = fishing+" + getInt(fishing) - + " 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) + ", fishing = " - + getInt(fishingXP) + " 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) + ", fishing = " - + getInt(fishing) + " 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) + ", fishing = " - + getInt(fishingXP) + " 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); - } - } - }, 1); - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +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.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.*; +import org.bukkit.inventory.ItemStack; +import com.gmail.nossr50.config.*; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.FakeBlockBreakEvent; +import com.gmail.nossr50.datatypes.SkillType; + +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! + */ + + public static String getCapitalized(String target) + { + String firstLetter = target.substring(0,1); + String remainder = target.substring(1); + String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); + + return capitalized; + } + 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(); + return id == 103 || id == 82 || id == 16 || id == 73 || 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; + } + + public static int getPowerLevel(Player player) + { + PlayerProfile PP = Users.getProfile(player); + int x = 0; + if(mcPermissions.getInstance().taming(player)) + x+=PP.getSkillLevel(SkillType.TAMING); + if(mcPermissions.getInstance().mining(player)) + x+=PP.getSkillLevel(SkillType.MINING); + if(mcPermissions.getInstance().woodcutting(player)) + x+=PP.getSkillLevel(SkillType.WOODCUTTING); + if(mcPermissions.getInstance().unarmed(player)) + x+=PP.getSkillLevel(SkillType.UNARMED); + if(mcPermissions.getInstance().herbalism(player)) + x+=PP.getSkillLevel(SkillType.HERBALISM); + if(mcPermissions.getInstance().excavation(player)) + x+=PP.getSkillLevel(SkillType.EXCAVATION); + if(mcPermissions.getInstance().archery(player)) + x+=PP.getSkillLevel(SkillType.ARCHERY); + if(mcPermissions.getInstance().swords(player)) + x+=PP.getSkillLevel(SkillType.SWORDS); + if(mcPermissions.getInstance().axes(player)) + x+=PP.getSkillLevel(SkillType.AXES); + if(mcPermissions.getInstance().acrobatics(player)) + x+=PP.getSkillLevel(SkillType.ACROBATICS); + if(mcPermissions.getInstance().repair(player)) + x+=PP.getSkillLevel(SkillType.REPAIR); + if(mcPermissions.getInstance().fishing(player)) + x+=PP.getSkillLevel(SkillType.FISHING); + return x; + } + + public static boolean blockBreakSimulate(Block block, Player player) + { + FakeBlockBreakEvent event = new FakeBlockBreakEvent(block, player); + if(block != null && player != null){ + Bukkit.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 == 107 ||i == 117 || i == 116 || 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) + { + return is.getTypeId() == 268 || is.getTypeId() == 267 || is.getTypeId() == 272 || is.getTypeId() == 283 || is.getTypeId() == 276; + } + + public static boolean isHoe(ItemStack is) + { + int id = is.getTypeId(); + return id == 290 || id == 291 || id == 292 || id == 293 || id == 294; + } + + public static boolean isShovel(ItemStack is){ + return is.getTypeId() == 269 || is.getTypeId() == 273 || is.getTypeId() == 277 || is.getTypeId() == 284 || is.getTypeId() == 256; + } + + 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() + { + if(!LoadProperties.useMySQL) + return; + + Bukkit.getScheduler().scheduleAsyncDelayedTask(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), new Runnable(){ + public void run() { + String location = "plugins/mcMMO/FlatFileStuff/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, fishing = null, fishingXP = 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]; + if (character.length > 34) + fishing = character[34]; + if (character.length > 35) + fishingXP = character[35]; + + //Check to see if the user is in the DB + id = mcMMO.database.GetInt("SELECT id FROM " + + LoadProperties.MySQLtablePrefix + + "users WHERE user = '" + playerName + "'"); + + 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) + + ", fishing = fishing+" + getInt(fishing) + + " 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) + ", fishing = " + + getInt(fishingXP) + " 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) + ", fishing = " + + getInt(fishing) + " 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) + ", fishing = " + + getInt(fishingXP) + " 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); + } + } + }, 1); + } +} diff --git a/src/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java similarity index 97% rename from src/com/gmail/nossr50/mcMMO.java rename to src/main/java/com/gmail/nossr50/mcMMO.java index b8aad4f8b..4b03f60f8 100644 --- a/src/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -1,418 +1,418 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50; - -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.commands.skills.*; -import com.gmail.nossr50.commands.spout.*; -import com.gmail.nossr50.commands.mc.*; -import com.gmail.nossr50.commands.party.*; -import com.gmail.nossr50.commands.general.*; -import com.gmail.nossr50.config.*; -import com.gmail.nossr50.runnables.mcTimer; -import com.gmail.nossr50.spout.SpoutStuff; -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 org.bukkit.Bukkit; -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -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; -import org.getspout.spoutapi.SpoutManager; -import org.getspout.spoutapi.player.FileManager; - - -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" + File.separator + "mcMMO"; - File file = new File(maindirectory + File.separator + "config.yml"); - static File versionFile = new File(maindirectory + File.separator + "VERSION"); - 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 mcPermissions permissionHandler = new mcPermissions(); - private Permissions permissions; - - private Runnable mcMMO_Timer = new mcTimer(this); //BLEED AND REGENERATION - //private Timer mcMMO_SpellTimer = new Timer(true); - - //Alias - Command - public HashMap aliasMap = new HashMap(); - - public static Database database = null; - public Misc misc = new Misc(this); - - //Config file stuff - LoadProperties config = new LoadProperties(); - //Jar stuff - public static File mcmmo; - - public void onEnable() - { - mcmmo = this.getFile(); - new File(maindirectory).mkdir(); - - if(!versionFile.exists()) - { - updateVersion(); - } else - { - String vnum = readVersion(); - //This will be changed to whatever version preceded when we actually need updater code. - //Version 1.0.48 is the first to implement this, no checking before that version can be done. - if(vnum.equalsIgnoreCase("1.0.48")) { - updateFrom(1); - } - //Just add in more else if blocks for versions that need updater code. Increment the updateFrom age int as we do so. - //Catch all for versions not matching and no specific code being needed - else if(!vnum.equalsIgnoreCase(this.getDescription().getVersion())) updateFrom(-1); - } - - mcPermissions.initialize(getServer()); - - config.configCheck(); - - Party.getInstance().loadParties(); - new Party(this); - - if(!LoadProperties.useMySQL) - Users.getInstance().loadUsers(); //Load Users file - /* - * REGISTER EVENTS - */ - - PluginManager pm = getServer().getPluginManager(); - - if(pm.getPlugin("Spout") != null) - LoadProperties.spoutEnabled = true; - else - LoadProperties.spoutEnabled = false; - - //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_PICKUP_ITEM, playerListener, Priority.Normal, this); - pm.registerEvent(Event.Type.PLAYER_FISH, playerListener, Priority.Normal, this); - pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Lowest, this); - - //Block Stuff - pm.registerEvent(Event.Type.BLOCK_DAMAGE, blockListener, Priority.Highest, this); - pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Monitor, 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_DEATH, entityListener, Priority.Normal, this); - pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Monitor, 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!" ); - - Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, mcMMO_Timer, 0, 20); - - registerCommands(); - - //Spout Stuff - if(LoadProperties.spoutEnabled) - { - SpoutStuff.setupSpoutConfigs(); - SpoutStuff.registerCustomEvent(); - SpoutStuff.extractFiles(); //Extract source materials - - FileManager FM = SpoutManager.getFileManager(); - FM.addToPreLoginCache(this, SpoutStuff.getFiles()); - - /* - Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, - new Runnable() { - - @Override - public void run() { - mmoHelper.updateAll(); - } - }, 20, 20); - */ - } - } - - public PlayerProfile getPlayerProfile(Player player) - { - return Users.getProfile(player); - } - - public void checkXp(Player player, SkillType skillType) - { - if(skillType == SkillType.ALL) - Skills.XpCheckAll(player); - else - Skills.XpCheckSkill(skillType, player); - } - - 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 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() { - Bukkit.getServer().getScheduler().cancelTasks(this); - System.out.println("mcMMO was disabled."); - } - - private void registerCommands() { - //Register aliases with the aliasmap (used in the playercommandpreprocessevent to ugly alias them to actual commands) - //Skills commands - aliasMap.put(mcLocale.getString("m.SkillAcrobatics").toLowerCase(), "acrobatics"); - aliasMap.put(mcLocale.getString("m.SkillArchery").toLowerCase(), "archery"); - aliasMap.put(mcLocale.getString("m.SkillAxes").toLowerCase(), "axes"); - aliasMap.put(mcLocale.getString("m.SkillExcavation").toLowerCase(), "excavation"); - aliasMap.put(mcLocale.getString("m.SkillFishing").toLowerCase(), "fishing"); - aliasMap.put(mcLocale.getString("m.SkillHerbalism").toLowerCase(), "herbalism"); - aliasMap.put(mcLocale.getString("m.SkillMining").toLowerCase(), "mining"); - aliasMap.put(mcLocale.getString("m.SkillRepair").toLowerCase(), "repair"); - aliasMap.put(mcLocale.getString("m.SkillSwords").toLowerCase(), "swords"); - aliasMap.put(mcLocale.getString("m.SkillTaming").toLowerCase(), "taming"); - aliasMap.put(mcLocale.getString("m.SkillUnarmed").toLowerCase(), "unarmed"); - aliasMap.put(mcLocale.getString("m.SkillWoodCutting").toLowerCase(), "woodcutting"); - - //Mc* commands - aliasMap.put(LoadProperties.mcability, "mcability"); - aliasMap.put(LoadProperties.mcc, "mcc"); - aliasMap.put(LoadProperties.mcgod, "mcgod"); - aliasMap.put(LoadProperties.mcmmo, "mcmmo"); - aliasMap.put(LoadProperties.mcrefresh, "mcrefresh"); - aliasMap.put(LoadProperties.mctop, "mctop"); - - //Party commands - aliasMap.put(LoadProperties.accept, "accept"); - //aliasMap.put(null, "a"); - aliasMap.put(LoadProperties.invite, "invite"); - aliasMap.put(LoadProperties.party, "party"); - //aliasMap.put(null, "p"); - aliasMap.put(LoadProperties.ptp, "ptp"); - - //Other commands - aliasMap.put(LoadProperties.addxp, "addxp"); - aliasMap.put(LoadProperties.clearmyspawn, "clearmyspawn"); - aliasMap.put(LoadProperties.mmoedit, "mmoedit"); - //aliasMap.put(key, "mmoupdate"); - aliasMap.put(LoadProperties.myspawn, "myspawn"); - aliasMap.put(LoadProperties.stats, "stats"); - aliasMap.put(LoadProperties.whois, "whois"); - aliasMap.put(LoadProperties.xprate, "xprate"); - - //Spout commands - //aliasMap.put(null, "mchud"); - aliasMap.put(LoadProperties.xplock, "xplock"); - - - //Register commands - //Skills commands - getCommand("acrobatics").setExecutor(new AcrobaticsCommand()); - getCommand("archery").setExecutor(new ArcheryCommand()); - getCommand("axes").setExecutor(new AxesCommand()); - getCommand("excavation").setExecutor(new ExcavationCommand()); - getCommand("fishing").setExecutor(new FishingCommand()); - getCommand("herbalism").setExecutor(new HerbalismCommand()); - getCommand("mining").setExecutor(new MiningCommand()); - getCommand("repair").setExecutor(new RepairCommand()); - getCommand("swords").setExecutor(new SwordsCommand()); - getCommand("taming").setExecutor(new TamingCommand()); - getCommand("unarmed").setExecutor(new UnarmedCommand()); - getCommand("woodcutting").setExecutor(new WoodcuttingCommand()); - - //Mc* commands - getCommand("mcability").setExecutor(new McabilityCommand()); - getCommand("mcc").setExecutor(new MccCommand()); - getCommand("mcgod").setExecutor(new McgodCommand()); - getCommand("mcmmo").setExecutor(new McmmoCommand()); - getCommand("mcrefresh").setExecutor(new McrefreshCommand(this)); - getCommand("mctop").setExecutor(new MctopCommand()); - - //Party commands - getCommand("accept").setExecutor(new AcceptCommand()); - getCommand("a").setExecutor(new ACommand()); - getCommand("invite").setExecutor(new InviteCommand(this)); - getCommand("party").setExecutor(new PartyCommand()); - getCommand("p").setExecutor(new PCommand()); - getCommand("ptp").setExecutor(new PtpCommand(this)); - - //Other commands - getCommand("addxp").setExecutor(new AddxpCommand(this)); - getCommand("clearmyspawn").setExecutor(new ClearmyspawnCommand()); - getCommand("mmoedit").setExecutor(new MmoeditCommand(this)); - getCommand("mmoupdate").setExecutor(new MmoupdateCommand()); - getCommand("myspawn").setExecutor(new MyspawnCommand()); - getCommand("stats").setExecutor(new StatsCommand()); - getCommand("whois").setExecutor(new WhoisCommand(this)); - getCommand("xprate").setExecutor(new XprateCommand()); - - //Spout commands - getCommand("mchud").setExecutor(new MchudCommand()); - getCommand("xplock").setExecutor(new XplockCommand()); - - } - - /* - * It is important to always assume that you are updating from the lowest possible version. - * Thus, every block of updater code should be complete and self-contained; finishing all - * SQL transactions and closing all file handlers, such that the next block of updater code - * if called will handle updating as expected. - */ - public void updateFrom(int age) { - //No updater code needed, just update the version. - if(age == -1) { - updateVersion(); - return; - } - //Updater code from age 1 goes here - if(age <= 1) { - //Since age 1 is an example for now, we will just let it do nothing. - - } - //If we are updating from age 1 but we need more to reach age 2, this will run too. - if(age <= 2) { - - } - updateVersion(); - } - - public void updateVersion() { - try { - versionFile.createNewFile(); - BufferedWriter vout = new BufferedWriter(new FileWriter(versionFile)); - vout.write(this.getDescription().getVersion()); - vout.close(); - } catch (IOException ex) { - ex.printStackTrace(); - } catch (SecurityException ex) { - ex.printStackTrace(); - } - } - - public String readVersion() { - byte[] buffer = new byte[(int) versionFile.length()]; - BufferedInputStream f = null; - try { - f = new BufferedInputStream(new FileInputStream(versionFile)); - f.read(buffer); - } catch (FileNotFoundException ex) { - ex.printStackTrace(); - } catch (IOException ex) { - ex.printStackTrace(); - } finally { - if (f != null) try { f.close(); } catch (IOException ignored) { } - } - - return new String(buffer); - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50; + +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.commands.skills.*; +import com.gmail.nossr50.commands.spout.*; +import com.gmail.nossr50.commands.mc.*; +import com.gmail.nossr50.commands.party.*; +import com.gmail.nossr50.commands.general.*; +import com.gmail.nossr50.config.*; +import com.gmail.nossr50.runnables.mcTimer; +import com.gmail.nossr50.spout.SpoutStuff; +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 org.bukkit.Bukkit; +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +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; +import org.getspout.spoutapi.SpoutManager; +import org.getspout.spoutapi.player.FileManager; + + +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" + File.separator + "mcMMO"; + File file = new File(maindirectory + File.separator + "config.yml"); + static File versionFile = new File(maindirectory + File.separator + "VERSION"); + 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 mcPermissions permissionHandler = new mcPermissions(); + private Permissions permissions; + + private Runnable mcMMO_Timer = new mcTimer(this); //BLEED AND REGENERATION + //private Timer mcMMO_SpellTimer = new Timer(true); + + //Alias - Command + public HashMap aliasMap = new HashMap(); + + public static Database database = null; + public Misc misc = new Misc(this); + + //Config file stuff + LoadProperties config = new LoadProperties(); + //Jar stuff + public static File mcmmo; + + public void onEnable() + { + mcmmo = this.getFile(); + new File(maindirectory).mkdir(); + + if(!versionFile.exists()) + { + updateVersion(); + } else + { + String vnum = readVersion(); + //This will be changed to whatever version preceded when we actually need updater code. + //Version 1.0.48 is the first to implement this, no checking before that version can be done. + if(vnum.equalsIgnoreCase("1.0.48")) { + updateFrom(1); + } + //Just add in more else if blocks for versions that need updater code. Increment the updateFrom age int as we do so. + //Catch all for versions not matching and no specific code being needed + else if(!vnum.equalsIgnoreCase(this.getDescription().getVersion())) updateFrom(-1); + } + + mcPermissions.initialize(getServer()); + + config.configCheck(); + + Party.getInstance().loadParties(); + new Party(this); + + if(!LoadProperties.useMySQL) + Users.getInstance().loadUsers(); //Load Users file + /* + * REGISTER EVENTS + */ + + PluginManager pm = getServer().getPluginManager(); + + if(pm.getPlugin("Spout") != null) + LoadProperties.spoutEnabled = true; + else + LoadProperties.spoutEnabled = false; + + //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_PICKUP_ITEM, playerListener, Priority.Normal, this); + pm.registerEvent(Event.Type.PLAYER_FISH, playerListener, Priority.Normal, this); + pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Lowest, this); + + //Block Stuff + pm.registerEvent(Event.Type.BLOCK_DAMAGE, blockListener, Priority.Highest, this); + pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Monitor, 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_DEATH, entityListener, Priority.Normal, this); + pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Monitor, 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!" ); + + Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, mcMMO_Timer, 0, 20); + + registerCommands(); + + //Spout Stuff + if(LoadProperties.spoutEnabled) + { + SpoutStuff.setupSpoutConfigs(); + SpoutStuff.registerCustomEvent(); + SpoutStuff.extractFiles(); //Extract source materials + + FileManager FM = SpoutManager.getFileManager(); + FM.addToPreLoginCache(this, SpoutStuff.getFiles()); + + /* + Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, + new Runnable() { + + @Override + public void run() { + mmoHelper.updateAll(); + } + }, 20, 20); + */ + } + } + + public PlayerProfile getPlayerProfile(Player player) + { + return Users.getProfile(player); + } + + public void checkXp(Player player, SkillType skillType) + { + if(skillType == SkillType.ALL) + Skills.XpCheckAll(player); + else + Skills.XpCheckSkill(skillType, player); + } + + 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 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() { + Bukkit.getServer().getScheduler().cancelTasks(this); + System.out.println("mcMMO was disabled."); + } + + private void registerCommands() { + //Register aliases with the aliasmap (used in the playercommandpreprocessevent to ugly alias them to actual commands) + //Skills commands + aliasMap.put(mcLocale.getString("m.SkillAcrobatics").toLowerCase(), "acrobatics"); + aliasMap.put(mcLocale.getString("m.SkillArchery").toLowerCase(), "archery"); + aliasMap.put(mcLocale.getString("m.SkillAxes").toLowerCase(), "axes"); + aliasMap.put(mcLocale.getString("m.SkillExcavation").toLowerCase(), "excavation"); + aliasMap.put(mcLocale.getString("m.SkillFishing").toLowerCase(), "fishing"); + aliasMap.put(mcLocale.getString("m.SkillHerbalism").toLowerCase(), "herbalism"); + aliasMap.put(mcLocale.getString("m.SkillMining").toLowerCase(), "mining"); + aliasMap.put(mcLocale.getString("m.SkillRepair").toLowerCase(), "repair"); + aliasMap.put(mcLocale.getString("m.SkillSwords").toLowerCase(), "swords"); + aliasMap.put(mcLocale.getString("m.SkillTaming").toLowerCase(), "taming"); + aliasMap.put(mcLocale.getString("m.SkillUnarmed").toLowerCase(), "unarmed"); + aliasMap.put(mcLocale.getString("m.SkillWoodCutting").toLowerCase(), "woodcutting"); + + //Mc* commands + aliasMap.put(LoadProperties.mcability, "mcability"); + aliasMap.put(LoadProperties.mcc, "mcc"); + aliasMap.put(LoadProperties.mcgod, "mcgod"); + aliasMap.put(LoadProperties.mcmmo, "mcmmo"); + aliasMap.put(LoadProperties.mcrefresh, "mcrefresh"); + aliasMap.put(LoadProperties.mctop, "mctop"); + + //Party commands + aliasMap.put(LoadProperties.accept, "accept"); + //aliasMap.put(null, "a"); + aliasMap.put(LoadProperties.invite, "invite"); + aliasMap.put(LoadProperties.party, "party"); + //aliasMap.put(null, "p"); + aliasMap.put(LoadProperties.ptp, "ptp"); + + //Other commands + aliasMap.put(LoadProperties.addxp, "addxp"); + aliasMap.put(LoadProperties.clearmyspawn, "clearmyspawn"); + aliasMap.put(LoadProperties.mmoedit, "mmoedit"); + //aliasMap.put(key, "mmoupdate"); + aliasMap.put(LoadProperties.myspawn, "myspawn"); + aliasMap.put(LoadProperties.stats, "stats"); + aliasMap.put(LoadProperties.whois, "whois"); + aliasMap.put(LoadProperties.xprate, "xprate"); + + //Spout commands + //aliasMap.put(null, "mchud"); + aliasMap.put(LoadProperties.xplock, "xplock"); + + + //Register commands + //Skills commands + getCommand("acrobatics").setExecutor(new AcrobaticsCommand()); + getCommand("archery").setExecutor(new ArcheryCommand()); + getCommand("axes").setExecutor(new AxesCommand()); + getCommand("excavation").setExecutor(new ExcavationCommand()); + getCommand("fishing").setExecutor(new FishingCommand()); + getCommand("herbalism").setExecutor(new HerbalismCommand()); + getCommand("mining").setExecutor(new MiningCommand()); + getCommand("repair").setExecutor(new RepairCommand()); + getCommand("swords").setExecutor(new SwordsCommand()); + getCommand("taming").setExecutor(new TamingCommand()); + getCommand("unarmed").setExecutor(new UnarmedCommand()); + getCommand("woodcutting").setExecutor(new WoodcuttingCommand()); + + //Mc* commands + getCommand("mcability").setExecutor(new McabilityCommand()); + getCommand("mcc").setExecutor(new MccCommand()); + getCommand("mcgod").setExecutor(new McgodCommand()); + getCommand("mcmmo").setExecutor(new McmmoCommand()); + getCommand("mcrefresh").setExecutor(new McrefreshCommand(this)); + getCommand("mctop").setExecutor(new MctopCommand()); + + //Party commands + getCommand("accept").setExecutor(new AcceptCommand()); + getCommand("a").setExecutor(new ACommand()); + getCommand("invite").setExecutor(new InviteCommand(this)); + getCommand("party").setExecutor(new PartyCommand()); + getCommand("p").setExecutor(new PCommand()); + getCommand("ptp").setExecutor(new PtpCommand(this)); + + //Other commands + getCommand("addxp").setExecutor(new AddxpCommand(this)); + getCommand("clearmyspawn").setExecutor(new ClearmyspawnCommand()); + getCommand("mmoedit").setExecutor(new MmoeditCommand(this)); + getCommand("mmoupdate").setExecutor(new MmoupdateCommand()); + getCommand("myspawn").setExecutor(new MyspawnCommand()); + getCommand("stats").setExecutor(new StatsCommand()); + getCommand("whois").setExecutor(new WhoisCommand(this)); + getCommand("xprate").setExecutor(new XprateCommand()); + + //Spout commands + getCommand("mchud").setExecutor(new MchudCommand()); + getCommand("xplock").setExecutor(new XplockCommand()); + + } + + /* + * It is important to always assume that you are updating from the lowest possible version. + * Thus, every block of updater code should be complete and self-contained; finishing all + * SQL transactions and closing all file handlers, such that the next block of updater code + * if called will handle updating as expected. + */ + public void updateFrom(int age) { + //No updater code needed, just update the version. + if(age == -1) { + updateVersion(); + return; + } + //Updater code from age 1 goes here + if(age <= 1) { + //Since age 1 is an example for now, we will just let it do nothing. + + } + //If we are updating from age 1 but we need more to reach age 2, this will run too. + if(age <= 2) { + + } + updateVersion(); + } + + public void updateVersion() { + try { + versionFile.createNewFile(); + BufferedWriter vout = new BufferedWriter(new FileWriter(versionFile)); + vout.write(this.getDescription().getVersion()); + vout.close(); + } catch (IOException ex) { + ex.printStackTrace(); + } catch (SecurityException ex) { + ex.printStackTrace(); + } + } + + public String readVersion() { + byte[] buffer = new byte[(int) versionFile.length()]; + BufferedInputStream f = null; + try { + f = new BufferedInputStream(new FileInputStream(versionFile)); + f.read(buffer); + } catch (FileNotFoundException ex) { + ex.printStackTrace(); + } catch (IOException ex) { + ex.printStackTrace(); + } finally { + if (f != null) try { f.close(); } catch (IOException ignored) { } + } + + return new String(buffer); + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/mcPermissions.java b/src/main/java/com/gmail/nossr50/mcPermissions.java similarity index 96% rename from src/com/gmail/nossr50/mcPermissions.java rename to src/main/java/com/gmail/nossr50/mcPermissions.java index ed0a13247..a5bcb42fa 100644 --- a/src/com/gmail/nossr50/mcPermissions.java +++ b/src/main/java/com/gmail/nossr50/mcPermissions.java @@ -1,352 +1,352 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50; - -import java.util.logging.Logger; - -import org.bukkit.Server; -import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; - -import ru.tehkode.permissions.PermissionManager; -import ru.tehkode.permissions.bukkit.PermissionsEx; - -import com.nijiko.permissions.PermissionHandler; -import com.nijikokun.bukkit.Permissions.Permissions; - -public class mcPermissions -{ - private static volatile mcPermissions instance; - - private enum PermissionType { - PEX, PERMISSIONS, BUKKIT - } - - private static PermissionType permissionType; - private static Object PHandle; - public static boolean permissionsEnabled = false; - - public static void initialize(Server server) - { - Logger log = Logger.getLogger("Minecraft"); - - if(permissionsEnabled && permissionType != PermissionType.PERMISSIONS) return; - - Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx"); - Plugin test = server.getPluginManager().getPlugin("Permissions"); - if(PEXtest != null) { - PHandle = (PermissionManager) PermissionsEx.getPermissionManager(); - permissionType = PermissionType.PEX; - permissionsEnabled = true; - log.info("[mcMMO] PermissionsEx found, using PermissionsEx."); - } else if(test != null) { - PHandle = (PermissionHandler) ((Permissions) test).getHandler(); - permissionType = PermissionType.PERMISSIONS; - permissionsEnabled = true; - log.info("[mcMMO] Permissions version "+test.getDescription().getVersion()+" found, using Permissions."); - } else { - permissionType = PermissionType.BUKKIT; - permissionsEnabled = true; - log.info("[mcMMO] Using Bukkit Permissions."); - } - } - - public static boolean getEnabled() - { - return permissionsEnabled; - } - - public static boolean permission(Player player, String permission) - { - if(!permissionsEnabled) return player.isOp(); - switch(permissionType) { - case PEX: - return ((PermissionManager) PHandle).has(player, permission); - case PERMISSIONS: - return ((PermissionHandler) PHandle).has(player, permission); - case BUKKIT: - return player.hasPermission(permission); - default: - return true; - } - } - public boolean admin(Player player){ - if (permissionsEnabled) { - return permission(player, "mcmmo.admin"); - } else { - return true; - } - } - public boolean mcrefresh(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.tools.mcrefresh"); - } else { - return true; - } - } - public boolean mmoedit(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.tools.mmoedit"); - } else { - return true; - } - } - public boolean herbalismAbility(Player player){ - if (permissionsEnabled) { - return permission(player, "mcmmo.ability.herbalism"); - } else { - return true; - } - } - public boolean excavationAbility(Player player){ - if (permissionsEnabled) { - return permission(player, "mcmmo.ability.excavation"); - } else { - return true; - } - } - public boolean unarmedAbility(Player player){ - if (permissionsEnabled) { - return permission(player, "mcmmo.ability.unarmed"); - } else { - return true; - } - } - public boolean chimaeraWing(Player player){ - if (permissionsEnabled) { - return permission(player, "mcmmo.item.chimaerawing"); - } else { - return true; - } - } - public boolean miningAbility(Player player){ - if (permissionsEnabled) { - return permission(player, "mcmmo.ability.mining"); - } else { - return true; - } - } - public boolean axesAbility(Player player){ - if (permissionsEnabled) { - return permission(player, "mcmmo.ability.axes"); - } else { - return true; - } - } - public boolean swordsAbility(Player player){ - if (permissionsEnabled) { - return permission(player, "mcmmo.ability.swords"); - } else { - return true; - } - } - public boolean woodCuttingAbility(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.ability.woodcutting"); - } else { - return true; - } - } - public boolean mcgod(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.tools.mcgod"); - } else { - return true; - } - } - public boolean regeneration(Player player){ - if (permissionsEnabled) { - return permission(player, "mcmmo.regeneration"); - } else { - return true; - } - } - public boolean motd(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.motd"); - } else { - return true; - } - } - public boolean mcAbility(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.commands.ability"); - } else { - return true; - } - } - public boolean mySpawn(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.commands.myspawn"); - } else { - return true; - } - } - public boolean setMySpawn(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.commands.setmyspawn"); - } else { - return true; - } - } - public boolean partyChat(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.chat.partychat"); - } else { - return true; - } - } - public boolean partyLock(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.chat.partylock"); - } else { - return true; - } - } - public boolean partyTeleport(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.commands.ptp"); - } else { - return true; - } - } - public boolean whois(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.commands.whois"); - } else { - return true; - } - } - public boolean party(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.commands.party"); - } else { - return true; - } - } - public boolean adminChat(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.chat.adminchat"); - } else { - return true; - } - } - public static mcPermissions getInstance() { - if (instance == null) { - instance = new mcPermissions(); - } - return instance; - } - public boolean taming(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.taming"); - } else { - return true; - } - } - public boolean mining(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.mining"); - } else { - return true; - } - } - public boolean fishing(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.fishing"); - } else { - return true; - } - } - public boolean alchemy(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.alchemy"); - } else { - return true; - } - } - public boolean enchanting(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.enchanting"); - } else { - return true; - } - } - public boolean woodcutting(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.woodcutting"); - } else { - return true; - } - } - public boolean repair(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.repair"); - } else { - return true; - } - } - public boolean unarmed(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.unarmed"); - } else { - return true; - } - } - public boolean archery(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.archery"); - } else { - return true; - } - } - public boolean herbalism(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.herbalism"); - } else { - return true; - } - } - public boolean excavation(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.excavation"); - } else { - return true; - } - } - public boolean swords(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.swords"); - } else { - return true; - } - } - public boolean axes(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.axes"); - } else { - return true; - } - } - public boolean acrobatics(Player player) { - if (permissionsEnabled) { - return permission(player, "mcmmo.skills.acrobatics"); - } else { - return true; - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50; + +import java.util.logging.Logger; + +import org.bukkit.Server; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + +import ru.tehkode.permissions.PermissionManager; +import ru.tehkode.permissions.bukkit.PermissionsEx; + +import com.nijiko.permissions.PermissionHandler; +import com.nijikokun.bukkit.Permissions.Permissions; + +public class mcPermissions +{ + private static volatile mcPermissions instance; + + private enum PermissionType { + PEX, PERMISSIONS, BUKKIT + } + + private static PermissionType permissionType; + private static Object PHandle; + public static boolean permissionsEnabled = false; + + public static void initialize(Server server) + { + Logger log = Logger.getLogger("Minecraft"); + + if(permissionsEnabled && permissionType != PermissionType.PERMISSIONS) return; + + Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx"); + Plugin test = server.getPluginManager().getPlugin("Permissions"); + if(PEXtest != null) { + PHandle = (PermissionManager) PermissionsEx.getPermissionManager(); + permissionType = PermissionType.PEX; + permissionsEnabled = true; + log.info("[mcMMO] PermissionsEx found, using PermissionsEx."); + } else if(test != null) { + PHandle = (PermissionHandler) ((Permissions) test).getHandler(); + permissionType = PermissionType.PERMISSIONS; + permissionsEnabled = true; + log.info("[mcMMO] Permissions version "+test.getDescription().getVersion()+" found, using Permissions."); + } else { + permissionType = PermissionType.BUKKIT; + permissionsEnabled = true; + log.info("[mcMMO] Using Bukkit Permissions."); + } + } + + public static boolean getEnabled() + { + return permissionsEnabled; + } + + public static boolean permission(Player player, String permission) + { + if(!permissionsEnabled) return player.isOp(); + switch(permissionType) { + case PEX: + return ((PermissionManager) PHandle).has(player, permission); + case PERMISSIONS: + return ((PermissionHandler) PHandle).has(player, permission); + case BUKKIT: + return player.hasPermission(permission); + default: + return true; + } + } + public boolean admin(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.admin"); + } else { + return true; + } + } + public boolean mcrefresh(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.tools.mcrefresh"); + } else { + return true; + } + } + public boolean mmoedit(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.tools.mmoedit"); + } else { + return true; + } + } + public boolean herbalismAbility(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.ability.herbalism"); + } else { + return true; + } + } + public boolean excavationAbility(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.ability.excavation"); + } else { + return true; + } + } + public boolean unarmedAbility(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.ability.unarmed"); + } else { + return true; + } + } + public boolean chimaeraWing(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.item.chimaerawing"); + } else { + return true; + } + } + public boolean miningAbility(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.ability.mining"); + } else { + return true; + } + } + public boolean axesAbility(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.ability.axes"); + } else { + return true; + } + } + public boolean swordsAbility(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.ability.swords"); + } else { + return true; + } + } + public boolean woodCuttingAbility(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.ability.woodcutting"); + } else { + return true; + } + } + public boolean mcgod(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.tools.mcgod"); + } else { + return true; + } + } + public boolean regeneration(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.regeneration"); + } else { + return true; + } + } + public boolean motd(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.motd"); + } else { + return true; + } + } + public boolean mcAbility(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.commands.ability"); + } else { + return true; + } + } + public boolean mySpawn(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.commands.myspawn"); + } else { + return true; + } + } + public boolean setMySpawn(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.commands.setmyspawn"); + } else { + return true; + } + } + public boolean partyChat(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.chat.partychat"); + } else { + return true; + } + } + public boolean partyLock(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.chat.partylock"); + } else { + return true; + } + } + public boolean partyTeleport(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.commands.ptp"); + } else { + return true; + } + } + public boolean whois(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.commands.whois"); + } else { + return true; + } + } + public boolean party(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.commands.party"); + } else { + return true; + } + } + public boolean adminChat(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.chat.adminchat"); + } else { + return true; + } + } + public static mcPermissions getInstance() { + if (instance == null) { + instance = new mcPermissions(); + } + return instance; + } + public boolean taming(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.taming"); + } else { + return true; + } + } + public boolean mining(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.mining"); + } else { + return true; + } + } + public boolean fishing(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.fishing"); + } else { + return true; + } + } + public boolean alchemy(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.alchemy"); + } else { + return true; + } + } + public boolean enchanting(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.enchanting"); + } else { + return true; + } + } + public boolean woodcutting(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.woodcutting"); + } else { + return true; + } + } + public boolean repair(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.repair"); + } else { + return true; + } + } + public boolean unarmed(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.unarmed"); + } else { + return true; + } + } + public boolean archery(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.archery"); + } else { + return true; + } + } + public boolean herbalism(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.herbalism"); + } else { + return true; + } + } + public boolean excavation(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.excavation"); + } else { + return true; + } + } + public boolean swords(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.swords"); + } else { + return true; + } + } + public boolean axes(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.axes"); + } else { + return true; + } + } + public boolean acrobatics(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.skills.acrobatics"); + } else { + return true; + } + } +} diff --git a/src/com/gmail/nossr50/party/Party.java b/src/main/java/com/gmail/nossr50/party/Party.java similarity index 97% rename from src/com/gmail/nossr50/party/Party.java rename to src/main/java/com/gmail/nossr50/party/Party.java index 948d7e194..771ffff89 100644 --- a/src/com/gmail/nossr50/party/Party.java +++ b/src/main/java/com/gmail/nossr50/party/Party.java @@ -1,481 +1,481 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.party; - -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -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.spout.util.ArrayListString; - - -public class Party -{ - /* - * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/). - * - * mmoMinecraft is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - public static String partyPlayersFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyPlayers"; - public static String partyLocksFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyLocks"; - public static String partyPasswordsFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyPasswords"; - - HashMap> partyPlayers = new HashMap>(); - HashMap partyLocks = new HashMap(); - HashMap partyPasswords = new HashMap(); - - private static mcMMO plugin; - public Party(mcMMO instance) { - new File(mcMMO.maindirectory + File.separator + "FlatFileStuff").mkdir(); - plugin = instance; - } - private static volatile Party instance; - - public static Party getInstance() - { - if (instance == null) { - instance = new Party(plugin); - } - return instance; - } - - 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 int partyCount(Player player, Player[] players) - { - int x = 0; - 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) - { - informPartyMembers(player, Bukkit.getServer().getOnlinePlayers()); - } - - - 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(mcLocale.getString("Party.InformedOnJoin", new Object[] {player.getName()})); - x++; - } - } - } - } - - public ArrayList getPartyMembers(Player player) - { - ArrayList players = new ArrayList(); - - for(Player p : Bukkit.getServer().getOnlinePlayers()) - { - if(p.isOnline() && player != null && p != null) - { - if(inSameParty(player, p) && !p.getName().equals(player.getName())) - { - players.add(p); - } - } - } - return players; - } - public ArrayListString getPartyMembersByName(Player player) - { - ArrayListString players = new ArrayListString(); - - for(Player p : Bukkit.getServer().getOnlinePlayers()) - { - if(p.isOnline()) - { - if(inSameParty(player, p)) - { - players.add(p.getName()); - } - } - } - return players; - } - - public void informPartyMembersOwnerChange(String newOwner) { - Player newOwnerPlayer = plugin.getServer().getPlayer(newOwner); - informPartyMembersOwnerChange(newOwnerPlayer, Bukkit.getServer().getOnlinePlayers()); - } - - public void informPartyMembersOwnerChange(Player newOwner, Player[] players) { - int x = 0; - for(Player p : players){ - if(newOwner != null && p != null){ - if(inSameParty(newOwner, p)) - { - //TODO: Needs more locale. - p.sendMessage(newOwner.getName()+" is the new party owner."); - x++; - } - } - } - } - - public void informPartyMembersQuit(Player player) - { - informPartyMembersQuit(player, Bukkit.getServer().getOnlinePlayers()); - } - - public void informPartyMembersQuit(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(mcLocale.getString("Party.InformedOnQuit", new Object[] {player.getName()})); - x++; - } - } - } - } - - public void removeFromParty(Player player, PlayerProfile PP) - { - //Stop NPE... hopefully - if(!isParty(PP.getParty()) || !isInParty(player, PP)) - addToParty(player, PP, PP.getParty(), false); - - informPartyMembersQuit(player); - String party = PP.getParty(); - if(isPartyLeader(player.getName(), party)) - { - if(isPartyLocked(party)) { - unlockParty(party); - } - } - - this.partyPlayers.get(party).remove(player.getName()); - if(isPartyEmpty(party)) deleteParty(party); - PP.removeParty(); - savePartyPlayers(); - } - - public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite) { - newParty = newParty.replace(":", "."); - addToParty(player, PP, newParty, invite, null); - } - - - public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite, String password) - { - //Fix for FFS - newParty = newParty.replace(":", "."); - - //Don't care about passwords on invites - if(!invite) - { - //Don't care about passwords if it isn't locked - if(isPartyLocked(newParty)) - { - if(isPartyPasswordProtected(newParty)) - { - if(password == null) - { - //TODO: Needs more locale. - player.sendMessage("This party requires a password. Use "+LoadProperties.party+" to join it."); - return; - } else if(!password.equalsIgnoreCase(getPartyPassword(newParty))) - { - //TODO: Needs more locale. - player.sendMessage("Party password incorrect."); - return; - } - } else - { - //TODO: Needs more locale. - player.sendMessage("Party is locked."); - return; - } - } - } else - { - PP.acceptInvite(); - } - //New party? - if(!isParty(newParty)) - { - putNestedEntry(this.partyPlayers, newParty, player.getName(), true); - - //Get default locking behavior from config? - this.partyLocks.put(newParty, false); - this.partyPasswords.put(newParty, null); - saveParties(); - } else - { - putNestedEntry(this.partyPlayers, newParty, player.getName(), false); - - savePartyPlayers(); - } - PP.setParty(newParty); - informPartyMembers(player); - - if(!invite) - { - player.sendMessage(mcLocale.getString("mcPlayerListener.JoinedParty", new Object[] { newParty })); - } else - { - player.sendMessage(mcLocale.getString("mcPlayerListener.InviteAccepted", new Object[]{ PP.getParty() })); - } - } - - private static W putNestedEntry( - HashMap> nest, - U nestKey, - V nestedKey, - W nestedValue) - { - HashMap nested = nest.get(nestKey); - - if (nested == null) { - nested = new HashMap(); - nest.put(nestKey, nested); - } - - return nested.put(nestedKey, nestedValue); - } - - public void dump(Player player) { - player.sendMessage(partyPlayers.toString()); - player.sendMessage(partyLocks.toString()); - player.sendMessage(partyPasswords.toString()); - Iterator i = partyPlayers.keySet().iterator(); - while(i.hasNext()) { - String nestkey = i.next(); - player.sendMessage(nestkey); - Iterator j = partyPlayers.get(nestkey).keySet().iterator(); - while(j.hasNext()) { - String nestedkey = j.next(); - player.sendMessage("."+nestedkey); - if(partyPlayers.get(nestkey).get(nestedkey)) { - player.sendMessage("..True"); - } else { - player.sendMessage("..False"); - } - } - } - } - - public void lockParty(String partyName) { - this.partyLocks.put(partyName, true); - savePartyLocks(); - } - - public void unlockParty(String partyName) { - this.partyLocks.put(partyName, false); - savePartyLocks(); - } - - public void deleteParty(String partyName) { - this.partyPlayers.remove(partyName); - this.partyLocks.remove(partyName); - this.partyPasswords.remove(partyName); - saveParties(); - } - - public void setPartyPassword(String partyName, String password) { - if(password.equalsIgnoreCase("\"\"")) password = null; - this.partyPasswords.put(partyName, password); - savePartyPasswords(); - } - - public void setPartyLeader(String partyName, String playerName) { - Iterator i = partyPlayers.get(partyName).keySet().iterator(); - while(i.hasNext()) { - String playerKey = i.next(); - if(playerKey.equalsIgnoreCase(playerName)) { - partyPlayers.get(partyName).put(playerName, true); - informPartyMembersOwnerChange(playerName); - //TODO: Needs more locale. - plugin.getServer().getPlayer(playerName).sendMessage("You are now the party owner."); - continue; - } - if(partyPlayers.get(partyName).get(playerKey)) { - //TODO: Needs more locale. - plugin.getServer().getPlayer(playerKey).sendMessage("You are no longer party owner."); - partyPlayers.get(partyName).put(playerKey, false); - } - } - } - - public String getPartyPassword(String partyName) { - return this.partyPasswords.get(partyName); - } - - public boolean canInvite(Player player, PlayerProfile PP) { - return (isPartyLocked(PP.getParty()) && !isPartyLeader(player.getName(), PP.getParty())) ? false : true; - } - - public boolean isParty(String partyName) { - return this.partyPlayers.containsKey(partyName); - } - - public boolean isPartyEmpty(String partyName) { - return this.partyPlayers.get(partyName).isEmpty(); - } - - public boolean isPartyLeader(String playerName, String partyName) { - if(this.partyPlayers.get(partyName) != null) - { - if(this.partyPlayers.get(partyName).get(playerName) == null) return false; - return this.partyPlayers.get(partyName).get(playerName); - } - else - return false; - } - - public boolean isPartyLocked(String partyName) { - if(this.partyLocks.get(partyName) == null) return false; - return this.partyLocks.get(partyName); - } - - public boolean isPartyPasswordProtected(String partyName) { - return !(this.partyPasswords.get(partyName) == null); - } - - public boolean isInParty(Player player, PlayerProfile PP) { - return partyPlayers.get(PP.getParty()).containsKey(player.getName()); - } - - @SuppressWarnings("unchecked") - public void loadParties() { - if(new File(partyPlayersFile).exists()) { - try { - ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyPlayersFile)); - this.partyPlayers = (HashMap>)obj.readObject(); - } catch (FileNotFoundException e) { e.printStackTrace(); - } catch (EOFException e) { mcMMO.log.info("partyPlayersFile empty."); - } catch (IOException e) { e.printStackTrace(); - } catch (ClassNotFoundException e) { e.printStackTrace(); } - } - - if(new File(partyLocksFile).exists()) { - try { - ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyLocksFile)); - this.partyLocks = (HashMap)obj.readObject(); - } catch (FileNotFoundException e) { e.printStackTrace(); - } catch (EOFException e) { mcMMO.log.info("partyLocksFile empty."); - } catch (IOException e) { e.printStackTrace(); - } catch (ClassNotFoundException e) { e.printStackTrace(); } - } - - if(new File(partyPasswordsFile).exists()) { - try { - ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyPasswordsFile)); - this.partyPasswords = (HashMap)obj.readObject(); - } catch (FileNotFoundException e) { e.printStackTrace(); - } catch (EOFException e) { mcMMO.log.info("partyPasswordsFile empty."); - } catch (IOException e) { e.printStackTrace(); - } catch (ClassNotFoundException e) { e.printStackTrace(); } - } - } - - public void saveParties() { - savePartyPlayers(); - savePartyLocks(); - savePartyPasswords(); - } - - public void savePartyPlayers() { - try { - new File(partyPlayersFile).createNewFile(); - ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyPlayersFile)); - obj.writeObject(this.partyPlayers); - obj.close(); - } catch (FileNotFoundException e) { e.printStackTrace(); - } catch (IOException e) { e.printStackTrace(); } - } - - public void savePartyLocks() { - try { - new File(partyLocksFile).createNewFile(); - ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyLocksFile)); - obj.writeObject(this.partyLocks); - obj.close(); - } catch (FileNotFoundException e) { e.printStackTrace(); - } catch (IOException e) { e.printStackTrace(); } - } - - public void savePartyPasswords() { - try { - new File(partyPasswordsFile).createNewFile(); - ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyPasswordsFile)); - obj.writeObject(this.partyPasswords); - obj.close(); - } catch (FileNotFoundException e) { e.printStackTrace(); - } catch (IOException e) { e.printStackTrace(); } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.party; + +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +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.spout.util.ArrayListString; + + +public class Party +{ + /* + * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/). + * + * mmoMinecraft is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + public static String partyPlayersFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyPlayers"; + public static String partyLocksFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyLocks"; + public static String partyPasswordsFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyPasswords"; + + HashMap> partyPlayers = new HashMap>(); + HashMap partyLocks = new HashMap(); + HashMap partyPasswords = new HashMap(); + + private static mcMMO plugin; + public Party(mcMMO instance) { + new File(mcMMO.maindirectory + File.separator + "FlatFileStuff").mkdir(); + plugin = instance; + } + private static volatile Party instance; + + public static Party getInstance() + { + if (instance == null) { + instance = new Party(plugin); + } + return instance; + } + + 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 int partyCount(Player player, Player[] players) + { + int x = 0; + 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) + { + informPartyMembers(player, Bukkit.getServer().getOnlinePlayers()); + } + + + 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(mcLocale.getString("Party.InformedOnJoin", new Object[] {player.getName()})); + x++; + } + } + } + } + + public ArrayList getPartyMembers(Player player) + { + ArrayList players = new ArrayList(); + + for(Player p : Bukkit.getServer().getOnlinePlayers()) + { + if(p.isOnline() && player != null && p != null) + { + if(inSameParty(player, p) && !p.getName().equals(player.getName())) + { + players.add(p); + } + } + } + return players; + } + public ArrayListString getPartyMembersByName(Player player) + { + ArrayListString players = new ArrayListString(); + + for(Player p : Bukkit.getServer().getOnlinePlayers()) + { + if(p.isOnline()) + { + if(inSameParty(player, p)) + { + players.add(p.getName()); + } + } + } + return players; + } + + public void informPartyMembersOwnerChange(String newOwner) { + Player newOwnerPlayer = plugin.getServer().getPlayer(newOwner); + informPartyMembersOwnerChange(newOwnerPlayer, Bukkit.getServer().getOnlinePlayers()); + } + + public void informPartyMembersOwnerChange(Player newOwner, Player[] players) { + int x = 0; + for(Player p : players){ + if(newOwner != null && p != null){ + if(inSameParty(newOwner, p)) + { + //TODO: Needs more locale. + p.sendMessage(newOwner.getName()+" is the new party owner."); + x++; + } + } + } + } + + public void informPartyMembersQuit(Player player) + { + informPartyMembersQuit(player, Bukkit.getServer().getOnlinePlayers()); + } + + public void informPartyMembersQuit(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(mcLocale.getString("Party.InformedOnQuit", new Object[] {player.getName()})); + x++; + } + } + } + } + + public void removeFromParty(Player player, PlayerProfile PP) + { + //Stop NPE... hopefully + if(!isParty(PP.getParty()) || !isInParty(player, PP)) + addToParty(player, PP, PP.getParty(), false); + + informPartyMembersQuit(player); + String party = PP.getParty(); + if(isPartyLeader(player.getName(), party)) + { + if(isPartyLocked(party)) { + unlockParty(party); + } + } + + this.partyPlayers.get(party).remove(player.getName()); + if(isPartyEmpty(party)) deleteParty(party); + PP.removeParty(); + savePartyPlayers(); + } + + public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite) { + newParty = newParty.replace(":", "."); + addToParty(player, PP, newParty, invite, null); + } + + + public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite, String password) + { + //Fix for FFS + newParty = newParty.replace(":", "."); + + //Don't care about passwords on invites + if(!invite) + { + //Don't care about passwords if it isn't locked + if(isPartyLocked(newParty)) + { + if(isPartyPasswordProtected(newParty)) + { + if(password == null) + { + //TODO: Needs more locale. + player.sendMessage("This party requires a password. Use "+LoadProperties.party+" to join it."); + return; + } else if(!password.equalsIgnoreCase(getPartyPassword(newParty))) + { + //TODO: Needs more locale. + player.sendMessage("Party password incorrect."); + return; + } + } else + { + //TODO: Needs more locale. + player.sendMessage("Party is locked."); + return; + } + } + } else + { + PP.acceptInvite(); + } + //New party? + if(!isParty(newParty)) + { + putNestedEntry(this.partyPlayers, newParty, player.getName(), true); + + //Get default locking behavior from config? + this.partyLocks.put(newParty, false); + this.partyPasswords.put(newParty, null); + saveParties(); + } else + { + putNestedEntry(this.partyPlayers, newParty, player.getName(), false); + + savePartyPlayers(); + } + PP.setParty(newParty); + informPartyMembers(player); + + if(!invite) + { + player.sendMessage(mcLocale.getString("mcPlayerListener.JoinedParty", new Object[] { newParty })); + } else + { + player.sendMessage(mcLocale.getString("mcPlayerListener.InviteAccepted", new Object[]{ PP.getParty() })); + } + } + + private static W putNestedEntry( + HashMap> nest, + U nestKey, + V nestedKey, + W nestedValue) + { + HashMap nested = nest.get(nestKey); + + if (nested == null) { + nested = new HashMap(); + nest.put(nestKey, nested); + } + + return nested.put(nestedKey, nestedValue); + } + + public void dump(Player player) { + player.sendMessage(partyPlayers.toString()); + player.sendMessage(partyLocks.toString()); + player.sendMessage(partyPasswords.toString()); + Iterator i = partyPlayers.keySet().iterator(); + while(i.hasNext()) { + String nestkey = i.next(); + player.sendMessage(nestkey); + Iterator j = partyPlayers.get(nestkey).keySet().iterator(); + while(j.hasNext()) { + String nestedkey = j.next(); + player.sendMessage("."+nestedkey); + if(partyPlayers.get(nestkey).get(nestedkey)) { + player.sendMessage("..True"); + } else { + player.sendMessage("..False"); + } + } + } + } + + public void lockParty(String partyName) { + this.partyLocks.put(partyName, true); + savePartyLocks(); + } + + public void unlockParty(String partyName) { + this.partyLocks.put(partyName, false); + savePartyLocks(); + } + + public void deleteParty(String partyName) { + this.partyPlayers.remove(partyName); + this.partyLocks.remove(partyName); + this.partyPasswords.remove(partyName); + saveParties(); + } + + public void setPartyPassword(String partyName, String password) { + if(password.equalsIgnoreCase("\"\"")) password = null; + this.partyPasswords.put(partyName, password); + savePartyPasswords(); + } + + public void setPartyLeader(String partyName, String playerName) { + Iterator i = partyPlayers.get(partyName).keySet().iterator(); + while(i.hasNext()) { + String playerKey = i.next(); + if(playerKey.equalsIgnoreCase(playerName)) { + partyPlayers.get(partyName).put(playerName, true); + informPartyMembersOwnerChange(playerName); + //TODO: Needs more locale. + plugin.getServer().getPlayer(playerName).sendMessage("You are now the party owner."); + continue; + } + if(partyPlayers.get(partyName).get(playerKey)) { + //TODO: Needs more locale. + plugin.getServer().getPlayer(playerKey).sendMessage("You are no longer party owner."); + partyPlayers.get(partyName).put(playerKey, false); + } + } + } + + public String getPartyPassword(String partyName) { + return this.partyPasswords.get(partyName); + } + + public boolean canInvite(Player player, PlayerProfile PP) { + return (isPartyLocked(PP.getParty()) && !isPartyLeader(player.getName(), PP.getParty())) ? false : true; + } + + public boolean isParty(String partyName) { + return this.partyPlayers.containsKey(partyName); + } + + public boolean isPartyEmpty(String partyName) { + return this.partyPlayers.get(partyName).isEmpty(); + } + + public boolean isPartyLeader(String playerName, String partyName) { + if(this.partyPlayers.get(partyName) != null) + { + if(this.partyPlayers.get(partyName).get(playerName) == null) return false; + return this.partyPlayers.get(partyName).get(playerName); + } + else + return false; + } + + public boolean isPartyLocked(String partyName) { + if(this.partyLocks.get(partyName) == null) return false; + return this.partyLocks.get(partyName); + } + + public boolean isPartyPasswordProtected(String partyName) { + return !(this.partyPasswords.get(partyName) == null); + } + + public boolean isInParty(Player player, PlayerProfile PP) { + return partyPlayers.get(PP.getParty()).containsKey(player.getName()); + } + + @SuppressWarnings("unchecked") + public void loadParties() { + if(new File(partyPlayersFile).exists()) { + try { + ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyPlayersFile)); + this.partyPlayers = (HashMap>)obj.readObject(); + } catch (FileNotFoundException e) { e.printStackTrace(); + } catch (EOFException e) { mcMMO.log.info("partyPlayersFile empty."); + } catch (IOException e) { e.printStackTrace(); + } catch (ClassNotFoundException e) { e.printStackTrace(); } + } + + if(new File(partyLocksFile).exists()) { + try { + ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyLocksFile)); + this.partyLocks = (HashMap)obj.readObject(); + } catch (FileNotFoundException e) { e.printStackTrace(); + } catch (EOFException e) { mcMMO.log.info("partyLocksFile empty."); + } catch (IOException e) { e.printStackTrace(); + } catch (ClassNotFoundException e) { e.printStackTrace(); } + } + + if(new File(partyPasswordsFile).exists()) { + try { + ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyPasswordsFile)); + this.partyPasswords = (HashMap)obj.readObject(); + } catch (FileNotFoundException e) { e.printStackTrace(); + } catch (EOFException e) { mcMMO.log.info("partyPasswordsFile empty."); + } catch (IOException e) { e.printStackTrace(); + } catch (ClassNotFoundException e) { e.printStackTrace(); } + } + } + + public void saveParties() { + savePartyPlayers(); + savePartyLocks(); + savePartyPasswords(); + } + + public void savePartyPlayers() { + try { + new File(partyPlayersFile).createNewFile(); + ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyPlayersFile)); + obj.writeObject(this.partyPlayers); + obj.close(); + } catch (FileNotFoundException e) { e.printStackTrace(); + } catch (IOException e) { e.printStackTrace(); } + } + + public void savePartyLocks() { + try { + new File(partyLocksFile).createNewFile(); + ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyLocksFile)); + obj.writeObject(this.partyLocks); + obj.close(); + } catch (FileNotFoundException e) { e.printStackTrace(); + } catch (IOException e) { e.printStackTrace(); } + } + + public void savePartyPasswords() { + try { + new File(partyPasswordsFile).createNewFile(); + ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyPasswordsFile)); + obj.writeObject(this.partyPasswords); + obj.close(); + } catch (FileNotFoundException e) { e.printStackTrace(); + } catch (IOException e) { e.printStackTrace(); } + } +} diff --git a/src/com/gmail/nossr50/runnables/mcTimer.java b/src/main/java/com/gmail/nossr50/runnables/mcTimer.java similarity index 95% rename from src/com/gmail/nossr50/runnables/mcTimer.java rename to src/main/java/com/gmail/nossr50/runnables/mcTimer.java index 286f5d4cd..6b41db742 100644 --- a/src/com/gmail/nossr50/runnables/mcTimer.java +++ b/src/main/java/com/gmail/nossr50/runnables/mcTimer.java @@ -1,80 +1,80 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.runnables; -import org.bukkit.entity.*; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.skills.Skills; -import com.gmail.nossr50.skills.Swords; - - -public class mcTimer implements Runnable -{ - private final mcMMO plugin; - int thecount = 1; - - public mcTimer(final mcMMO plugin) - { - this.plugin = plugin; - } - - public void run() - { - for(Player player : plugin.getServer().getOnlinePlayers()) - { - if(player == null) - continue; - PlayerProfile PP = Users.getProfile(player); - - if(PP == null) - continue; - - /* - * MONITOR SKILLS - */ - Skills.monitorSkills(player); - - /* - * COOLDOWN MONITORING - */ - Skills.watchCooldowns(player); - - /* - * PLAYER BLEED MONITORING - */ - if(thecount % 2 == 0 && PP.getBleedTicks() >= 1) - { - player.damage(2); - PP.decreaseBleedTicks(); - } - - /* - * NON-PLAYER BLEED MONITORING - */ - - if(thecount % 2 == 0) - Swords.bleedSimulate(plugin); - - //SETUP FOR HP REGEN/BLEED - thecount++; - if(thecount >= 81) - thecount = 1; - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.runnables; +import org.bukkit.entity.*; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.skills.Skills; +import com.gmail.nossr50.skills.Swords; + + +public class mcTimer implements Runnable +{ + private final mcMMO plugin; + int thecount = 1; + + public mcTimer(final mcMMO plugin) + { + this.plugin = plugin; + } + + public void run() + { + for(Player player : plugin.getServer().getOnlinePlayers()) + { + if(player == null) + continue; + PlayerProfile PP = Users.getProfile(player); + + if(PP == null) + continue; + + /* + * MONITOR SKILLS + */ + Skills.monitorSkills(player); + + /* + * COOLDOWN MONITORING + */ + Skills.watchCooldowns(player); + + /* + * PLAYER BLEED MONITORING + */ + if(thecount % 2 == 0 && PP.getBleedTicks() >= 1) + { + player.damage(2); + PP.decreaseBleedTicks(); + } + + /* + * NON-PLAYER BLEED MONITORING + */ + + if(thecount % 2 == 0) + Swords.bleedSimulate(plugin); + + //SETUP FOR HP REGEN/BLEED + thecount++; + if(thecount >= 81) + thecount = 1; + } + } +} diff --git a/src/com/gmail/nossr50/skills/Acrobatics.java b/src/main/java/com/gmail/nossr50/skills/Acrobatics.java similarity index 97% rename from src/com/gmail/nossr50/skills/Acrobatics.java rename to src/main/java/com/gmail/nossr50/skills/Acrobatics.java index b2402bf71..3a871c9c4 100644 --- a/src/com/gmail/nossr50/skills/Acrobatics.java +++ b/src/main/java/com/gmail/nossr50/skills/Acrobatics.java @@ -1,105 +1,105 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDamageEvent; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; - - -public class Acrobatics { - public static void acrobaticsCheck(Player player, EntityDamageEvent event) - { - if(player != null && mcPermissions.getInstance().acrobatics(player)) - { - PlayerProfile PP = Users.getProfile(player); - int acrovar = PP.getSkillLevel(SkillType.ACROBATICS); - - if(player.isSneaking()) - acrovar = acrovar * 2; - - if(Math.random() * 1000 <= acrovar && !event.isCancelled()) - { - int threshold = 7; - if(player.isSneaking()) - threshold = 14; - - int newDamage = event.getDamage() - threshold; - if(newDamage < 0) - newDamage = 0; - /* - * Check for death - */ - if(player.getHealth() - newDamage >= 1){ - if(!event.isCancelled()) - PP.addXP(SkillType.ACROBATICS, (event.getDamage() * 8)*10, player); - Skills.XpCheckSkill(SkillType.ACROBATICS, player); - event.setDamage(newDamage); - if(event.getDamage() <= 0) - event.setCancelled(true); - if(player.isSneaking()){ - player.sendMessage(ChatColor.GREEN+"**GRACEFUL ROLL**"); - } else { - player.sendMessage("**ROLL**"); - } - } - } else if (!event.isCancelled()){ - if(player.getHealth() - event.getDamage() >= 1){ - PP.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*10, player); - Skills.XpCheckSkill(SkillType.ACROBATICS, player); - } - } - } - } - public static void dodgeChecks(EntityDamageByEntityEvent event){ - Player defender = (Player) event.getEntity(); - PlayerProfile PPd = Users.getProfile(defender); - - if(mcPermissions.getInstance().acrobatics(defender)){ - if(PPd.getSkillLevel(SkillType.ACROBATICS) <= 800){ - if(Math.random() * 4000 <= PPd.getSkillLevel(SkillType.ACROBATICS)){ - defender.sendMessage(ChatColor.GREEN+"**DODGE**"); - if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){ - PPd.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*1, defender); - Skills.XpCheckSkill(SkillType.ACROBATICS, defender); - } - event.setDamage(event.getDamage() / 2); - //Needs to do minimal damage - if(event.getDamage() <= 0) - event.setDamage(1); - } - } else if(Math.random() * 4000 <= 800) { - defender.sendMessage(ChatColor.GREEN+"**DODGE**"); - if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){ - PPd.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*10, defender); - Skills.XpCheckSkill(SkillType.ACROBATICS, defender); - } - event.setDamage(event.getDamage() / 2); - //Needs to deal minimal damage - if(event.getDamage() <= 0) - event.setDamage(1); - } - } - } - -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; + + +public class Acrobatics { + public static void acrobaticsCheck(Player player, EntityDamageEvent event) + { + if(player != null && mcPermissions.getInstance().acrobatics(player)) + { + PlayerProfile PP = Users.getProfile(player); + int acrovar = PP.getSkillLevel(SkillType.ACROBATICS); + + if(player.isSneaking()) + acrovar = acrovar * 2; + + if(Math.random() * 1000 <= acrovar && !event.isCancelled()) + { + int threshold = 7; + if(player.isSneaking()) + threshold = 14; + + int newDamage = event.getDamage() - threshold; + if(newDamage < 0) + newDamage = 0; + /* + * Check for death + */ + if(player.getHealth() - newDamage >= 1){ + if(!event.isCancelled()) + PP.addXP(SkillType.ACROBATICS, (event.getDamage() * 8)*10, player); + Skills.XpCheckSkill(SkillType.ACROBATICS, player); + event.setDamage(newDamage); + if(event.getDamage() <= 0) + event.setCancelled(true); + if(player.isSneaking()){ + player.sendMessage(ChatColor.GREEN+"**GRACEFUL ROLL**"); + } else { + player.sendMessage("**ROLL**"); + } + } + } else if (!event.isCancelled()){ + if(player.getHealth() - event.getDamage() >= 1){ + PP.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*10, player); + Skills.XpCheckSkill(SkillType.ACROBATICS, player); + } + } + } + } + public static void dodgeChecks(EntityDamageByEntityEvent event){ + Player defender = (Player) event.getEntity(); + PlayerProfile PPd = Users.getProfile(defender); + + if(mcPermissions.getInstance().acrobatics(defender)){ + if(PPd.getSkillLevel(SkillType.ACROBATICS) <= 800){ + if(Math.random() * 4000 <= PPd.getSkillLevel(SkillType.ACROBATICS)){ + defender.sendMessage(ChatColor.GREEN+"**DODGE**"); + if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){ + PPd.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*1, defender); + Skills.XpCheckSkill(SkillType.ACROBATICS, defender); + } + event.setDamage(event.getDamage() / 2); + //Needs to do minimal damage + if(event.getDamage() <= 0) + event.setDamage(1); + } + } else if(Math.random() * 4000 <= 800) { + defender.sendMessage(ChatColor.GREEN+"**DODGE**"); + if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){ + PPd.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*10, defender); + Skills.XpCheckSkill(SkillType.ACROBATICS, defender); + } + event.setDamage(event.getDamage() / 2); + //Needs to deal minimal damage + if(event.getDamage() <= 0) + event.setDamage(1); + } + } + } + +} diff --git a/src/com/gmail/nossr50/skills/Alchemy.java b/src/main/java/com/gmail/nossr50/skills/Alchemy.java similarity index 100% rename from src/com/gmail/nossr50/skills/Alchemy.java rename to src/main/java/com/gmail/nossr50/skills/Alchemy.java diff --git a/src/com/gmail/nossr50/skills/Archery.java b/src/main/java/com/gmail/nossr50/skills/Archery.java similarity index 96% rename from src/com/gmail/nossr50/skills/Archery.java rename to src/main/java/com/gmail/nossr50/skills/Archery.java index 490ea9db0..3620c1cde 100644 --- a/src/com/gmail/nossr50/skills/Archery.java +++ b/src/main/java/com/gmail/nossr50/skills/Archery.java @@ -1,119 +1,119 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import org.bukkit.Location; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import com.gmail.nossr50.Users; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.party.Party; - -public class Archery -{ - public static void trackArrows(mcMMO pluginx, Entity x, EntityDamageByEntityEvent event, Player attacker) - { - PlayerProfile PPa = Users.getProfile(attacker); - if(!pluginx.misc.arrowTracker.containsKey(x) && event.getDamage() > 0) - { - pluginx.misc.arrowTracker.put(x, 0); - if(attacker != null) - { - if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY)) - { - pluginx.misc.arrowTracker.put(x, 1); - } - } - } else - { - if(event.getDamage() > 0) - { - if(attacker != null) - { - if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY)) - { - pluginx.misc.arrowTracker.put(x, 1); - } - } - } - } - } - public static void ignitionCheck(Entity x, EntityDamageByEntityEvent event, Player attacker) - { - //Check to see if PVP for this world is disabled before executing - if(!x.getWorld().getPVP()) - return; - - PlayerProfile PPa = Users.getProfile(attacker); - if(Math.random() * 100 >= 75) - { - - int ignition = 20; - if(PPa.getSkillLevel(SkillType.ARCHERY) >= 200) - ignition+=20; - if(PPa.getSkillLevel(SkillType.ARCHERY) >= 400) - ignition+=20; - if(PPa.getSkillLevel(SkillType.ARCHERY) >= 600) - ignition+=20; - if(PPa.getSkillLevel(SkillType.ARCHERY) >= 800) - ignition+=20; - if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000) - ignition+=20; - - if(x instanceof Player) - { - Player Defender = (Player)x; - if(!Party.getInstance().inSameParty(attacker, Defender)) - { - event.getEntity().setFireTicks(ignition); - attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$ - Defender.sendMessage(mcLocale.getString("Combat.BurningArrowHit")); //$NON-NLS-1$ - } - } else { - event.getEntity().setFireTicks(ignition); - attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$ - } - } - } - public static void dazeCheck(Player defender, Player attacker) - { - PlayerProfile PPa = Users.getProfile(attacker); - - Location loc = defender.getLocation(); - if(Math.random() * 10 > 5) - { - loc.setPitch(90); - } else { - loc.setPitch(-90); - } - if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000){ - if(Math.random() * 1000 <= 500){ - defender.teleport(loc); - defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$ - attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$ - } - } else if(Math.random() * 2000 <= PPa.getSkillLevel(SkillType.ARCHERY)){ - defender.teleport(loc); - defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$ - attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$ - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import org.bukkit.Location; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.party.Party; + +public class Archery +{ + public static void trackArrows(mcMMO pluginx, Entity x, EntityDamageByEntityEvent event, Player attacker) + { + PlayerProfile PPa = Users.getProfile(attacker); + if(!pluginx.misc.arrowTracker.containsKey(x) && event.getDamage() > 0) + { + pluginx.misc.arrowTracker.put(x, 0); + if(attacker != null) + { + if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY)) + { + pluginx.misc.arrowTracker.put(x, 1); + } + } + } else + { + if(event.getDamage() > 0) + { + if(attacker != null) + { + if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY)) + { + pluginx.misc.arrowTracker.put(x, 1); + } + } + } + } + } + public static void ignitionCheck(Entity x, EntityDamageByEntityEvent event, Player attacker) + { + //Check to see if PVP for this world is disabled before executing + if(!x.getWorld().getPVP()) + return; + + PlayerProfile PPa = Users.getProfile(attacker); + if(Math.random() * 100 >= 75) + { + + int ignition = 20; + if(PPa.getSkillLevel(SkillType.ARCHERY) >= 200) + ignition+=20; + if(PPa.getSkillLevel(SkillType.ARCHERY) >= 400) + ignition+=20; + if(PPa.getSkillLevel(SkillType.ARCHERY) >= 600) + ignition+=20; + if(PPa.getSkillLevel(SkillType.ARCHERY) >= 800) + ignition+=20; + if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000) + ignition+=20; + + if(x instanceof Player) + { + Player Defender = (Player)x; + if(!Party.getInstance().inSameParty(attacker, Defender)) + { + event.getEntity().setFireTicks(ignition); + attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$ + Defender.sendMessage(mcLocale.getString("Combat.BurningArrowHit")); //$NON-NLS-1$ + } + } else { + event.getEntity().setFireTicks(ignition); + attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$ + } + } + } + public static void dazeCheck(Player defender, Player attacker) + { + PlayerProfile PPa = Users.getProfile(attacker); + + Location loc = defender.getLocation(); + if(Math.random() * 10 > 5) + { + loc.setPitch(90); + } else { + loc.setPitch(-90); + } + if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000){ + if(Math.random() * 1000 <= 500){ + defender.teleport(loc); + defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$ + attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$ + } + } else if(Math.random() * 2000 <= PPa.getSkillLevel(SkillType.ARCHERY)){ + defender.teleport(loc); + defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$ + attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$ + } + } +} diff --git a/src/com/gmail/nossr50/skills/Axes.java b/src/main/java/com/gmail/nossr50/skills/Axes.java similarity index 97% rename from src/com/gmail/nossr50/skills/Axes.java rename to src/main/java/com/gmail/nossr50/skills/Axes.java index 99bbb8bcd..3561cb178 100644 --- a/src/com/gmail/nossr50/skills/Axes.java +++ b/src/main/java/com/gmail/nossr50/skills/Axes.java @@ -1,172 +1,172 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Wolf; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.plugin.Plugin; - -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.party.Party; - -public class Axes { - public static void skullSplitterCheck(Player player){ - PlayerProfile PP = Users.getProfile(player); - if(m.isAxes(player.getItemInHand()) && mcPermissions.getInstance().axesAbility(player)){ - /* - * CHECK FOR AXE PREP MODE - */ - if(PP.getAxePreparationMode()) - { - PP.setAxePreparationMode(false); - } - int ticks = 2; - int x = PP.getSkillLevel(SkillType.AXES); - while(x >= 50){ - x-=50; - ticks++; - } - - if(!PP.getSkullSplitterMode() && Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)) - { - player.sendMessage(mcLocale.getString("Skills.SkullSplitterOn")); - for(Player y : player.getWorld().getPlayers()){ - if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(mcLocale.getString("Skills.SkullSplitterPlayer", new Object[] {player.getName()})); - } - PP.setSkullSplitterActivatedTimeStamp(System.currentTimeMillis()); - PP.setSkullSplitterDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); - PP.setSkullSplitterMode(true); - } - if(!PP.getSkullSplitterMode() && !Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)){ - player.sendMessage(mcLocale.getString("Skills.TooTired") - +ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)+"s)"); - } - } - } - public static void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx) - { - Entity x = event.getEntity(); - if(x instanceof Wolf){ - Wolf wolf = (Wolf)x; - if(Taming.getOwner(wolf, pluginx) != null) - { - if(Taming.getOwner(wolf, pluginx) == attacker) - return; - if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx))) - return; - } - } - PlayerProfile PPa = Users.getProfile(attacker); - if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){ - if(PPa.getSkillLevel(SkillType.AXES) >= 750){ - if(Math.random() * 1000 <= 750){ - if(x instanceof Player){ - Player player = (Player)x; - player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); - } - if(x instanceof Player){ - event.setDamage(event.getDamage() * 2 - event.getDamage() / 2); - } else { - event.setDamage(event.getDamage() * 2); - } - attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!"); - } - } else if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.AXES)){ - if(x instanceof Player){ - Player player = (Player)x; - player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); - } - if(x instanceof Player){ - event.setDamage(event.getDamage() * 2 - event.getDamage() / 2); - } else { - event.setDamage(event.getDamage() * 2); - } - attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!"); - } - } - } - - public static void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx) - { - int targets = 0; - - if(event.getEntity() instanceof LivingEntity) - { - LivingEntity x = (LivingEntity) event.getEntity(); - targets = m.getTier(attacker); - - for(Entity derp : x.getWorld().getEntities()) - { - if(m.getDistance(x.getLocation(), derp.getLocation()) < 5) - { - - - //Make sure the Wolf is not friendly - if(derp instanceof Wolf) - { - Wolf hurrDurr = (Wolf)derp; - if(Taming.getOwner(hurrDurr, pluginx) == attacker) - continue; - if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx))) - continue; - } - //Damage nearby LivingEntities - if(derp instanceof LivingEntity && targets >= 1) - { - if(derp instanceof Player) - { - Player target = (Player)derp; - - if(Users.getProfile(target).getGodMode()) - continue; - - if(target.getName().equals(attacker.getName())) - continue; - - if(Party.getInstance().inSameParty(attacker, target)) - continue; - if(targets >= 1 && derp.getWorld().getPVP()) - { - target.damage(event.getDamage() / 2); - target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!"); - targets--; - continue; - } - } - else - { - LivingEntity target = (LivingEntity)derp; - target.damage(event.getDamage() / 2); - targets--; - } - } - } - } - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Wolf; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.plugin.Plugin; + +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.party.Party; + +public class Axes { + public static void skullSplitterCheck(Player player){ + PlayerProfile PP = Users.getProfile(player); + if(m.isAxes(player.getItemInHand()) && mcPermissions.getInstance().axesAbility(player)){ + /* + * CHECK FOR AXE PREP MODE + */ + if(PP.getAxePreparationMode()) + { + PP.setAxePreparationMode(false); + } + int ticks = 2; + int x = PP.getSkillLevel(SkillType.AXES); + while(x >= 50){ + x-=50; + ticks++; + } + + if(!PP.getSkullSplitterMode() && Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)) + { + player.sendMessage(mcLocale.getString("Skills.SkullSplitterOn")); + for(Player y : player.getWorld().getPlayers()){ + if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) + y.sendMessage(mcLocale.getString("Skills.SkullSplitterPlayer", new Object[] {player.getName()})); + } + PP.setSkullSplitterActivatedTimeStamp(System.currentTimeMillis()); + PP.setSkullSplitterDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); + PP.setSkullSplitterMode(true); + } + if(!PP.getSkullSplitterMode() && !Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)){ + player.sendMessage(mcLocale.getString("Skills.TooTired") + +ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)+"s)"); + } + } + } + public static void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx) + { + Entity x = event.getEntity(); + if(x instanceof Wolf){ + Wolf wolf = (Wolf)x; + if(Taming.getOwner(wolf, pluginx) != null) + { + if(Taming.getOwner(wolf, pluginx) == attacker) + return; + if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx))) + return; + } + } + PlayerProfile PPa = Users.getProfile(attacker); + if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){ + if(PPa.getSkillLevel(SkillType.AXES) >= 750){ + if(Math.random() * 1000 <= 750){ + if(x instanceof Player){ + Player player = (Player)x; + player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); + } + if(x instanceof Player){ + event.setDamage(event.getDamage() * 2 - event.getDamage() / 2); + } else { + event.setDamage(event.getDamage() * 2); + } + attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!"); + } + } else if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.AXES)){ + if(x instanceof Player){ + Player player = (Player)x; + player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); + } + if(x instanceof Player){ + event.setDamage(event.getDamage() * 2 - event.getDamage() / 2); + } else { + event.setDamage(event.getDamage() * 2); + } + attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!"); + } + } + } + + public static void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx) + { + int targets = 0; + + if(event.getEntity() instanceof LivingEntity) + { + LivingEntity x = (LivingEntity) event.getEntity(); + targets = m.getTier(attacker); + + for(Entity derp : x.getWorld().getEntities()) + { + if(m.getDistance(x.getLocation(), derp.getLocation()) < 5) + { + + + //Make sure the Wolf is not friendly + if(derp instanceof Wolf) + { + Wolf hurrDurr = (Wolf)derp; + if(Taming.getOwner(hurrDurr, pluginx) == attacker) + continue; + if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx))) + continue; + } + //Damage nearby LivingEntities + if(derp instanceof LivingEntity && targets >= 1) + { + if(derp instanceof Player) + { + Player target = (Player)derp; + + if(Users.getProfile(target).getGodMode()) + continue; + + if(target.getName().equals(attacker.getName())) + continue; + + if(Party.getInstance().inSameParty(attacker, target)) + continue; + if(targets >= 1 && derp.getWorld().getPVP()) + { + target.damage(event.getDamage() / 2); + target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!"); + targets--; + continue; + } + } + else + { + LivingEntity target = (LivingEntity)derp; + target.damage(event.getDamage() / 2); + targets--; + } + } + } + } + } + } +} diff --git a/src/com/gmail/nossr50/skills/Enchanting.java b/src/main/java/com/gmail/nossr50/skills/Enchanting.java similarity index 100% rename from src/com/gmail/nossr50/skills/Enchanting.java rename to src/main/java/com/gmail/nossr50/skills/Enchanting.java diff --git a/src/com/gmail/nossr50/skills/Excavation.java b/src/main/java/com/gmail/nossr50/skills/Excavation.java similarity index 97% rename from src/com/gmail/nossr50/skills/Excavation.java rename to src/main/java/com/gmail/nossr50/skills/Excavation.java index 0581d96ac..b80a5f6ff 100644 --- a/src/com/gmail/nossr50/skills/Excavation.java +++ b/src/main/java/com/gmail/nossr50/skills/Excavation.java @@ -1,279 +1,279 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import java.util.ArrayList; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; - - -public class Excavation -{ - public static void gigaDrillBreakerActivationCheck(Player player, Block block) - { - PlayerProfile PP = Users.getProfile(player); - if(m.isShovel(player.getItemInHand())) - { - if(block != null) - { - if(!m.abilityBlockCheck(block)) - return; - } - if(PP.getShovelPreparationMode()) - { - PP.setShovelPreparationMode(false); - } - int ticks = 2; - int x = PP.getSkillLevel(SkillType.EXCAVATION); - while(x >= 50) - { - x-=50; - ticks++; - } - - if(!PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerDeactivatedTimeStamp() < System.currentTimeMillis()) - { - player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOn")); - for(Player y : player.getWorld().getPlayers()) - { - if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerPlayer", new Object[] {player.getName()})); - } - PP.setGigaDrillBreakerActivatedTimeStamp(System.currentTimeMillis()); - PP.setGigaDrillBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); - PP.setGigaDrillBreakerMode(true); - } - - } - } - public static boolean canBeGigaDrillBroken(Block block) - { - return block.getType() == Material.DIRT || block.getType() == Material.GRASS || block.getType() == Material.SAND || block.getType() == Material.GRAVEL || block.getType() == Material.CLAY; - } - public static void excavationProcCheck(byte data, Material type, Location loc, Player player) - { - if(LoadProperties.excavationRequiresShovel && !m.isShovel(player.getItemInHand())) - return; - - PlayerProfile PP = Users.getProfile(player); - ArrayList is = new ArrayList(); - - int xp = 0; - - switch(type) - { - case GRASS: - if(PP.getSkillLevel(SkillType.EXCAVATION) >= 250) - { - //CHANCE TO GET EGGS - if(LoadProperties.eggs == true && Math.random() * 100 > 99) - { - xp+= LoadProperties.meggs; - is.add(new ItemStack(Material.EGG, 1, (byte)0, (byte)0)); - } - //CHANCE TO GET APPLES - if(LoadProperties.apples == true && Math.random() * 100 > 99) - { - xp+= LoadProperties.mapple; - is.add(new ItemStack(Material.APPLE, 1, (byte)0, (byte)0)); - } - } - break; - case GRAVEL: - //CHANCE TO GET NETHERRACK - if(LoadProperties.netherrack == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 850 && Math.random() * 200 > 199) - { - xp+= LoadProperties.mnetherrack; - is.add(new ItemStack(Material.NETHERRACK, 1, (byte)0, (byte)0)); - - } - //CHANCE TO GET SULPHUR - if(LoadProperties.sulphur == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 75) - { - if(Math.random() * 10 > 9) - { - xp+= LoadProperties.msulphur; - is.add(new ItemStack(Material.SULPHUR, 1, (byte)0, (byte)0)); - } - } - //CHANCE TO GET BONES - if(LoadProperties.bones == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 175) - { - if(Math.random() * 10 > 9) - { - xp+= LoadProperties.mbones; - is.add(new ItemStack(Material.BONE, 1, (byte)0, (byte)0)); - } - } - break; - case SAND: - //CHANCE TO GET GLOWSTONE - if(LoadProperties.glowstone == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 50 && Math.random() * 100 > 95) - { - xp+= LoadProperties.mglowstone2; - is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); - - } - //CHANCE TO GET SOUL SAND - if(LoadProperties.slowsand == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 650 && Math.random() * 200 > 199) - { - xp+= LoadProperties.mslowsand; - is.add(new ItemStack(Material.SOUL_SAND, 1, (byte)0, (byte)0)); - } - break; - case CLAY: - if(LoadProperties.slimeballs && PP.getSkillLevel(SkillType.EXCAVATION) >= 50) - { - if(Math.random() * 20 > 19) - { - xp+= LoadProperties.mslimeballs; - is.add(new ItemStack(Material.SLIME_BALL, 1, (byte)0, (byte)0)); - } - } - if(LoadProperties.string && PP.getSkillLevel(SkillType.EXCAVATION) >= 250) - { - if(Math.random() * 20 > 19) - { - xp+= LoadProperties.mstring; - is.add(new ItemStack(Material.STRING, 1, (byte)0, (byte)0)); - } - } - if(LoadProperties.watch && PP.getSkillLevel(SkillType.EXCAVATION) >= 500) - { - if(Math.random() * 100 > 99) - { - xp+= LoadProperties.mwatch; - is.add(new ItemStack(Material.WATCH, 1, (byte)0)); - } - } - if(LoadProperties.bucket && PP.getSkillLevel(SkillType.EXCAVATION) >= 500) - { - if(Math.random() * 100 > 99) - { - xp+= LoadProperties.mbucket; - is.add(new ItemStack(Material.BUCKET, 1, (byte)0, (byte)0)); - } - } - if(LoadProperties.web && PP.getSkillLevel(SkillType.EXCAVATION) >= 750) - { - if(Math.random() * 20 > 19) - { - xp+= LoadProperties.mweb; - is.add(new ItemStack(Material.WEB, 1, (byte)0, (byte)0)); - } - } - break; - } - - //DIRT SAND OR GRAVEL - if(type == Material.GRASS || type == Material.DIRT || type == Material.GRAVEL || type == Material.SAND || type == Material.CLAY) - { - xp+= LoadProperties.mbase; - if(PP.getSkillLevel(SkillType.EXCAVATION) >= 750) - { - //CHANCE TO GET CAKE - if(LoadProperties.cake == true && Math.random() * 2000 > 1999) - { - xp+= LoadProperties.mcake; - is.add(new ItemStack(Material.CAKE, 1, (byte)0, (byte)0)); - } - } - if(PP.getSkillLevel(SkillType.EXCAVATION) >= 350) - { - //CHANCE TO GET DIAMOND - if(LoadProperties.diamond == true && Math.random() * 750 > 749) - { - xp+= LoadProperties.mdiamond2; - is.add(new ItemStack(Material.DIAMOND, 1, (byte)0, (byte)0)); - } - } - if(PP.getSkillLevel(SkillType.EXCAVATION) >= 250) - { - //CHANCE TO GET YELLOW MUSIC - if(LoadProperties.music == true && Math.random() * 2000 > 1999) - { - xp+= LoadProperties.mmusic; - is.add(new ItemStack(Material.GOLD_RECORD, 1, (byte)0, (byte)0)); - } - } - if(PP.getSkillLevel(SkillType.EXCAVATION) >= 350) - { - //CHANCE TO GET GREEN MUSIC - if(LoadProperties.music == true && Math.random() * 2000 > 1999) - { - xp+= LoadProperties.mmusic; - is.add(new ItemStack(Material.GREEN_RECORD, 1, (byte)0, (byte)0)); - } - } - } - - //GRASS OR DIRT - if(type == Material.DIRT || type == Material.GRASS) - { - if(PP.getSkillLevel(SkillType.EXCAVATION) >= 50) - { - //CHANCE FOR COCOA BEANS - if(LoadProperties.cocoabeans == true && Math.random() * 75 > 74) - { - xp+= LoadProperties.mcocoa; - is.add(new ItemStack(Material.getMaterial(351), 1, (byte)0, (byte)3)); - } - } - //CHANCE FOR SHROOMS - if(LoadProperties.mushrooms == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 500 && Math.random() * 200 > 199) - { - xp+= LoadProperties.mmushroom2; - switch((int) Math.random() * 1) - { - case 0: - is.add(new ItemStack(Material.BROWN_MUSHROOM, 1, (byte)0, (byte)0)); - break; - case 1: - is.add(new ItemStack(Material.RED_MUSHROOM, 1, (byte)0, (byte)0)); - break; - } - - } - //CHANCE TO GET GLOWSTONE - if(LoadProperties.glowstone == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 25 && Math.random() * 100 > 95) - { - xp+= LoadProperties.mglowstone2; - is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); - } - } - - //Drop items - for(ItemStack x : is) - { - if(x != null) - loc.getWorld().dropItemNaturally(loc, x); - } - - //Handle XP related tasks - PP.addXP(SkillType.EXCAVATION, xp, player); - Skills.XpCheckSkill(SkillType.EXCAVATION, player); - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import java.util.ArrayList; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; + + +public class Excavation +{ + public static void gigaDrillBreakerActivationCheck(Player player, Block block) + { + PlayerProfile PP = Users.getProfile(player); + if(m.isShovel(player.getItemInHand())) + { + if(block != null) + { + if(!m.abilityBlockCheck(block)) + return; + } + if(PP.getShovelPreparationMode()) + { + PP.setShovelPreparationMode(false); + } + int ticks = 2; + int x = PP.getSkillLevel(SkillType.EXCAVATION); + while(x >= 50) + { + x-=50; + ticks++; + } + + if(!PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerDeactivatedTimeStamp() < System.currentTimeMillis()) + { + player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOn")); + for(Player y : player.getWorld().getPlayers()) + { + if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) + y.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerPlayer", new Object[] {player.getName()})); + } + PP.setGigaDrillBreakerActivatedTimeStamp(System.currentTimeMillis()); + PP.setGigaDrillBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); + PP.setGigaDrillBreakerMode(true); + } + + } + } + public static boolean canBeGigaDrillBroken(Block block) + { + return block.getType() == Material.DIRT || block.getType() == Material.GRASS || block.getType() == Material.SAND || block.getType() == Material.GRAVEL || block.getType() == Material.CLAY; + } + public static void excavationProcCheck(byte data, Material type, Location loc, Player player) + { + if(LoadProperties.excavationRequiresShovel && !m.isShovel(player.getItemInHand())) + return; + + PlayerProfile PP = Users.getProfile(player); + ArrayList is = new ArrayList(); + + int xp = 0; + + switch(type) + { + case GRASS: + if(PP.getSkillLevel(SkillType.EXCAVATION) >= 250) + { + //CHANCE TO GET EGGS + if(LoadProperties.eggs == true && Math.random() * 100 > 99) + { + xp+= LoadProperties.meggs; + is.add(new ItemStack(Material.EGG, 1, (byte)0, (byte)0)); + } + //CHANCE TO GET APPLES + if(LoadProperties.apples == true && Math.random() * 100 > 99) + { + xp+= LoadProperties.mapple; + is.add(new ItemStack(Material.APPLE, 1, (byte)0, (byte)0)); + } + } + break; + case GRAVEL: + //CHANCE TO GET NETHERRACK + if(LoadProperties.netherrack == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 850 && Math.random() * 200 > 199) + { + xp+= LoadProperties.mnetherrack; + is.add(new ItemStack(Material.NETHERRACK, 1, (byte)0, (byte)0)); + + } + //CHANCE TO GET SULPHUR + if(LoadProperties.sulphur == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 75) + { + if(Math.random() * 10 > 9) + { + xp+= LoadProperties.msulphur; + is.add(new ItemStack(Material.SULPHUR, 1, (byte)0, (byte)0)); + } + } + //CHANCE TO GET BONES + if(LoadProperties.bones == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 175) + { + if(Math.random() * 10 > 9) + { + xp+= LoadProperties.mbones; + is.add(new ItemStack(Material.BONE, 1, (byte)0, (byte)0)); + } + } + break; + case SAND: + //CHANCE TO GET GLOWSTONE + if(LoadProperties.glowstone == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 50 && Math.random() * 100 > 95) + { + xp+= LoadProperties.mglowstone2; + is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); + + } + //CHANCE TO GET SOUL SAND + if(LoadProperties.slowsand == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 650 && Math.random() * 200 > 199) + { + xp+= LoadProperties.mslowsand; + is.add(new ItemStack(Material.SOUL_SAND, 1, (byte)0, (byte)0)); + } + break; + case CLAY: + if(LoadProperties.slimeballs && PP.getSkillLevel(SkillType.EXCAVATION) >= 50) + { + if(Math.random() * 20 > 19) + { + xp+= LoadProperties.mslimeballs; + is.add(new ItemStack(Material.SLIME_BALL, 1, (byte)0, (byte)0)); + } + } + if(LoadProperties.string && PP.getSkillLevel(SkillType.EXCAVATION) >= 250) + { + if(Math.random() * 20 > 19) + { + xp+= LoadProperties.mstring; + is.add(new ItemStack(Material.STRING, 1, (byte)0, (byte)0)); + } + } + if(LoadProperties.watch && PP.getSkillLevel(SkillType.EXCAVATION) >= 500) + { + if(Math.random() * 100 > 99) + { + xp+= LoadProperties.mwatch; + is.add(new ItemStack(Material.WATCH, 1, (byte)0)); + } + } + if(LoadProperties.bucket && PP.getSkillLevel(SkillType.EXCAVATION) >= 500) + { + if(Math.random() * 100 > 99) + { + xp+= LoadProperties.mbucket; + is.add(new ItemStack(Material.BUCKET, 1, (byte)0, (byte)0)); + } + } + if(LoadProperties.web && PP.getSkillLevel(SkillType.EXCAVATION) >= 750) + { + if(Math.random() * 20 > 19) + { + xp+= LoadProperties.mweb; + is.add(new ItemStack(Material.WEB, 1, (byte)0, (byte)0)); + } + } + break; + } + + //DIRT SAND OR GRAVEL + if(type == Material.GRASS || type == Material.DIRT || type == Material.GRAVEL || type == Material.SAND || type == Material.CLAY) + { + xp+= LoadProperties.mbase; + if(PP.getSkillLevel(SkillType.EXCAVATION) >= 750) + { + //CHANCE TO GET CAKE + if(LoadProperties.cake == true && Math.random() * 2000 > 1999) + { + xp+= LoadProperties.mcake; + is.add(new ItemStack(Material.CAKE, 1, (byte)0, (byte)0)); + } + } + if(PP.getSkillLevel(SkillType.EXCAVATION) >= 350) + { + //CHANCE TO GET DIAMOND + if(LoadProperties.diamond == true && Math.random() * 750 > 749) + { + xp+= LoadProperties.mdiamond2; + is.add(new ItemStack(Material.DIAMOND, 1, (byte)0, (byte)0)); + } + } + if(PP.getSkillLevel(SkillType.EXCAVATION) >= 250) + { + //CHANCE TO GET YELLOW MUSIC + if(LoadProperties.music == true && Math.random() * 2000 > 1999) + { + xp+= LoadProperties.mmusic; + is.add(new ItemStack(Material.GOLD_RECORD, 1, (byte)0, (byte)0)); + } + } + if(PP.getSkillLevel(SkillType.EXCAVATION) >= 350) + { + //CHANCE TO GET GREEN MUSIC + if(LoadProperties.music == true && Math.random() * 2000 > 1999) + { + xp+= LoadProperties.mmusic; + is.add(new ItemStack(Material.GREEN_RECORD, 1, (byte)0, (byte)0)); + } + } + } + + //GRASS OR DIRT + if(type == Material.DIRT || type == Material.GRASS) + { + if(PP.getSkillLevel(SkillType.EXCAVATION) >= 50) + { + //CHANCE FOR COCOA BEANS + if(LoadProperties.cocoabeans == true && Math.random() * 75 > 74) + { + xp+= LoadProperties.mcocoa; + is.add(new ItemStack(Material.getMaterial(351), 1, (byte)0, (byte)3)); + } + } + //CHANCE FOR SHROOMS + if(LoadProperties.mushrooms == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 500 && Math.random() * 200 > 199) + { + xp+= LoadProperties.mmushroom2; + switch((int) Math.random() * 1) + { + case 0: + is.add(new ItemStack(Material.BROWN_MUSHROOM, 1, (byte)0, (byte)0)); + break; + case 1: + is.add(new ItemStack(Material.RED_MUSHROOM, 1, (byte)0, (byte)0)); + break; + } + + } + //CHANCE TO GET GLOWSTONE + if(LoadProperties.glowstone == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 25 && Math.random() * 100 > 95) + { + xp+= LoadProperties.mglowstone2; + is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); + } + } + + //Drop items + for(ItemStack x : is) + { + if(x != null) + loc.getWorld().dropItemNaturally(loc, x); + } + + //Handle XP related tasks + PP.addXP(SkillType.EXCAVATION, xp, player); + Skills.XpCheckSkill(SkillType.EXCAVATION, player); + } +} diff --git a/src/com/gmail/nossr50/skills/Fishing.java b/src/main/java/com/gmail/nossr50/skills/Fishing.java similarity index 100% rename from src/com/gmail/nossr50/skills/Fishing.java rename to src/main/java/com/gmail/nossr50/skills/Fishing.java diff --git a/src/com/gmail/nossr50/skills/Herbalism.java b/src/main/java/com/gmail/nossr50/skills/Herbalism.java similarity index 97% rename from src/com/gmail/nossr50/skills/Herbalism.java rename to src/main/java/com/gmail/nossr50/skills/Herbalism.java index 5fe84b11d..ae00e5665 100644 --- a/src/com/gmail/nossr50/skills/Herbalism.java +++ b/src/main/java/com/gmail/nossr50/skills/Herbalism.java @@ -1,338 +1,338 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.inventory.ItemStack; -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.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - - -public class Herbalism -{ - - public static void greenTerraCheck(Player player, Block block) - { - PlayerProfile PP = Users.getProfile(player); - if(m.isHoe(player.getItemInHand())) - { - if(block != null) - { - if(!m.abilityBlockCheck(block)) - return; - } - if(PP.getHoePreparationMode()) - { - PP.setHoePreparationMode(false); - } - int ticks = 2; - int x = PP.getSkillLevel(SkillType.HERBALISM); - while(x >= 50) - { - x-=50; - ticks++; - } - - if(!PP.getGreenTerraMode() && Skills.cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)) - { - player.sendMessage(mcLocale.getString("Skills.GreenTerraOn")); - for(Player y : player.getWorld().getPlayers()) - { - if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(mcLocale.getString("Skills.GreenTerraPlayer", new Object[] {player.getName()})); - } - PP.setGreenTerraActivatedTimeStamp(System.currentTimeMillis()); - PP.setGreenTerraDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); - PP.setGreenTerraMode(true); - } - - } - } - public static void greenTerraWheat(Player player, Block block, BlockBreakEvent event, mcMMO plugin) - { - if(block.getType() == Material.WHEAT && block.getData() == (byte) 0x07) - { - event.setCancelled(true); - PlayerProfile PP = Users.getProfile(player); - Material mat = Material.getMaterial(296); - Location loc = block.getLocation(); - ItemStack is = new ItemStack(mat, 1, (byte)0, (byte)0); - PP.addXP(SkillType.HERBALISM, LoadProperties.mwheat, player); - loc.getWorld().dropItemNaturally(loc, is); - - //DROP SOME SEEDS - mat = Material.SEEDS; - is = new ItemStack(mat, 1, (byte)0, (byte)0); - loc.getWorld().dropItemNaturally(loc, is); - - herbalismProcCheck(block, player, event, plugin); - herbalismProcCheck(block, player, event, plugin); - block.setData((byte) 0x03); - } - } - - public static void greenTerra(Player player, Block block){ - if(block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT){ - if(!hasSeeds(player)) - player.sendMessage("You need more seeds to spread Green Terra"); - if(hasSeeds(player) && block.getType() != Material.WHEAT) - { - removeSeeds(player); - if(block.getType() == Material.SMOOTH_BRICK) - block.setData((byte)1); - if(block.getType() == Material.DIRT) - block.setType(Material.GRASS); - if(LoadProperties.enableCobbleToMossy && block.getType() == Material.COBBLESTONE) - block.setType(Material.MOSSY_COBBLESTONE); - } - } - } - - public static Boolean canBeGreenTerra(Block block){ - int t = block.getTypeId(); - if(t == 103 || t == 4 || t == 3 || t == 59 || t == 81 || t == 83 || t == 91 || t == 86 || t == 39 || t == 46 || t == 37 || t == 38){ - return true; - } else { - return false; - } - } - public static boolean hasSeeds(Player player){ - ItemStack[] inventory = player.getInventory().getContents(); - for(ItemStack x : inventory){ - if(x != null && x.getTypeId() == 295){ - return true; - } - } - return false; - } - public static void removeSeeds(Player player){ - ItemStack[] inventory = player.getInventory().getContents(); - for(ItemStack x : inventory){ - if(x != null && x.getTypeId() == 295){ - if(x.getAmount() == 1){ - x.setTypeId(0); - x.setAmount(0); - player.getInventory().setContents(inventory); - } else{ - x.setAmount(x.getAmount() - 1); - player.getInventory().setContents(inventory); - } - return; - } - } - } - public static void herbalismProcCheck(Block block, Player player, BlockBreakEvent event, mcMMO plugin) - { - PlayerProfile PP = Users.getProfile(player); - int type = block.getTypeId(); - Location loc = block.getLocation(); - ItemStack is = null; - Material mat = null; - - if(plugin.misc.blockWatchList.contains(block)) - { - return; - } - if(type == 59 && block.getData() == (byte) 0x7) - { - mat = Material.getMaterial(296); - is = new ItemStack(mat, 1, (byte)0, (byte)0); - PP.addXP(SkillType.HERBALISM, LoadProperties.mwheat, player); - if(player != null) - { - if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) - { - loc.getWorld().dropItemNaturally(loc, is); - } - } - //GREEN THUMB - if(Math.random() * 1500 <= PP.getSkillLevel(SkillType.HERBALISM)) - { - event.setCancelled(true); - loc.getWorld().dropItemNaturally(loc, is); - //DROP SOME SEEDS - mat = Material.SEEDS; - is = new ItemStack(mat, 1, (byte)0, (byte)0); - loc.getWorld().dropItemNaturally(loc, is); - - block.setData((byte) 0x1); //Change it to first stage - - //Setup the bonuses - int bonus = 0; - if(PP.getSkillLevel(SkillType.HERBALISM) >= 200) - bonus++; - if(PP.getSkillLevel(SkillType.HERBALISM) >= 400) - bonus++; - if(PP.getSkillLevel(SkillType.HERBALISM) >= 600) - bonus++; - - //Change wheat to be whatever stage based on the bonus - if(bonus == 1) - block.setData((byte) 0x2); - if(bonus == 2) - block.setData((byte) 0x3); - if(bonus == 3) - block.setData((byte) 0x4); - } - } - /* - * We need to check not-wheat stuff for if it was placed by the player or not - */ - if(block.getData() != (byte) 5) - { - //Cactus - if(type == 81){ - //Setup the loop - World world = block.getWorld(); - Block[] blockArray = new Block[3]; - blockArray[0] = block; - blockArray[1] = world.getBlockAt(block.getX(), block.getY()+1, block.getZ()); - blockArray[2] = world.getBlockAt(block.getX(), block.getY()+2, block.getZ()); - - Material[] materialArray = new Material[3]; - materialArray[0] = blockArray[0].getType(); - materialArray[1] = blockArray[1].getType(); - materialArray[2] = blockArray[2].getType(); - - byte[] byteArray = new byte[3]; - byteArray[0] = blockArray[0].getData(); - byteArray[1] = blockArray[0].getData(); - byteArray[2] = blockArray[0].getData(); - - int x = 0; - for(Block target : blockArray) - { - if(materialArray[x] == Material.CACTUS) - { - is = new ItemStack(Material.CACTUS, 1, (byte)0, (byte)0); - if(byteArray[x] != (byte) 5) - { - if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) - { - loc.getWorld().dropItemNaturally(target.getLocation(), is); - } - PP.addXP(SkillType.HERBALISM, LoadProperties.mcactus, player); - } - } - x++; - } - } - //Sugar Canes - if(type == 83) - { - //Setup the loop - World world = block.getWorld(); - Block[] blockArray = new Block[3]; - blockArray[0] = block; - blockArray[1] = world.getBlockAt(block.getX(), block.getY()+1, block.getZ()); - blockArray[2] = world.getBlockAt(block.getX(), block.getY()+2, block.getZ()); - - Material[] materialArray = new Material[3]; - materialArray[0] = blockArray[0].getType(); - materialArray[1] = blockArray[1].getType(); - materialArray[2] = blockArray[2].getType(); - - byte[] byteArray = new byte[3]; - byteArray[0] = blockArray[0].getData(); - byteArray[1] = blockArray[0].getData(); - byteArray[2] = blockArray[0].getData(); - - int x = 0; - for(Block target : blockArray) - { - if(materialArray[x] == Material.SUGAR_CANE_BLOCK) - { - is = new ItemStack(Material.SUGAR_CANE, 1, (byte)0, (byte)0); - //Check for being placed by the player - if(byteArray[x] != (byte) 5) - { - if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) - { - loc.getWorld().dropItemNaturally(target.getLocation(), is); - } - PP.addXP(SkillType.HERBALISM, LoadProperties.msugar, player); - } - } - x++; - } - } - - //Pumpkins - if((type == 91 || type == 86)) - { - mat = Material.getMaterial(block.getTypeId()); - is = new ItemStack(mat, 1, (byte)0, (byte)0); - if(player != null) - { - if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) - { - loc.getWorld().dropItemNaturally(loc, is); - } - } - PP.addXP(SkillType.HERBALISM, LoadProperties.mpumpkin, player); - } - //Melon - if(type == 103) - { - mat = Material.getMaterial(block.getTypeId()); - is = new ItemStack(mat, 1, (byte)0, (byte)0); - - if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) - { - loc.getWorld().dropItemNaturally(loc, is); - } - PP.addXP(SkillType.HERBALISM, LoadProperties.mmelon, player); - } - //Mushroom - if(type == 39 || type == 40) - { - mat = Material.getMaterial(block.getTypeId()); - is = new ItemStack(mat, 1, (byte)0, (byte)0); - if(player != null) - { - if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) - { - loc.getWorld().dropItemNaturally(loc, is); - } - } - PP.addXP(SkillType.HERBALISM, LoadProperties.mmushroom, player); - } - //Flower - if(type == 37 || type == 38){ - mat = Material.getMaterial(block.getTypeId()); - is = new ItemStack(mat, 1, (byte)0, (byte)0); - if(player != null){ - if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)){ - loc.getWorld().dropItemNaturally(loc, is); - } - } - PP.addXP(SkillType.HERBALISM, LoadProperties.mflower, player); - } - } - Skills.XpCheckSkill(SkillType.HERBALISM, player); - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.inventory.ItemStack; +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.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + + +public class Herbalism +{ + + public static void greenTerraCheck(Player player, Block block) + { + PlayerProfile PP = Users.getProfile(player); + if(m.isHoe(player.getItemInHand())) + { + if(block != null) + { + if(!m.abilityBlockCheck(block)) + return; + } + if(PP.getHoePreparationMode()) + { + PP.setHoePreparationMode(false); + } + int ticks = 2; + int x = PP.getSkillLevel(SkillType.HERBALISM); + while(x >= 50) + { + x-=50; + ticks++; + } + + if(!PP.getGreenTerraMode() && Skills.cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)) + { + player.sendMessage(mcLocale.getString("Skills.GreenTerraOn")); + for(Player y : player.getWorld().getPlayers()) + { + if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) + y.sendMessage(mcLocale.getString("Skills.GreenTerraPlayer", new Object[] {player.getName()})); + } + PP.setGreenTerraActivatedTimeStamp(System.currentTimeMillis()); + PP.setGreenTerraDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); + PP.setGreenTerraMode(true); + } + + } + } + public static void greenTerraWheat(Player player, Block block, BlockBreakEvent event, mcMMO plugin) + { + if(block.getType() == Material.WHEAT && block.getData() == (byte) 0x07) + { + event.setCancelled(true); + PlayerProfile PP = Users.getProfile(player); + Material mat = Material.getMaterial(296); + Location loc = block.getLocation(); + ItemStack is = new ItemStack(mat, 1, (byte)0, (byte)0); + PP.addXP(SkillType.HERBALISM, LoadProperties.mwheat, player); + loc.getWorld().dropItemNaturally(loc, is); + + //DROP SOME SEEDS + mat = Material.SEEDS; + is = new ItemStack(mat, 1, (byte)0, (byte)0); + loc.getWorld().dropItemNaturally(loc, is); + + herbalismProcCheck(block, player, event, plugin); + herbalismProcCheck(block, player, event, plugin); + block.setData((byte) 0x03); + } + } + + public static void greenTerra(Player player, Block block){ + if(block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT){ + if(!hasSeeds(player)) + player.sendMessage("You need more seeds to spread Green Terra"); + if(hasSeeds(player) && block.getType() != Material.WHEAT) + { + removeSeeds(player); + if(block.getType() == Material.SMOOTH_BRICK) + block.setData((byte)1); + if(block.getType() == Material.DIRT) + block.setType(Material.GRASS); + if(LoadProperties.enableCobbleToMossy && block.getType() == Material.COBBLESTONE) + block.setType(Material.MOSSY_COBBLESTONE); + } + } + } + + public static Boolean canBeGreenTerra(Block block){ + int t = block.getTypeId(); + if(t == 103 || t == 4 || t == 3 || t == 59 || t == 81 || t == 83 || t == 91 || t == 86 || t == 39 || t == 46 || t == 37 || t == 38){ + return true; + } else { + return false; + } + } + public static boolean hasSeeds(Player player){ + ItemStack[] inventory = player.getInventory().getContents(); + for(ItemStack x : inventory){ + if(x != null && x.getTypeId() == 295){ + return true; + } + } + return false; + } + public static void removeSeeds(Player player){ + ItemStack[] inventory = player.getInventory().getContents(); + for(ItemStack x : inventory){ + if(x != null && x.getTypeId() == 295){ + if(x.getAmount() == 1){ + x.setTypeId(0); + x.setAmount(0); + player.getInventory().setContents(inventory); + } else{ + x.setAmount(x.getAmount() - 1); + player.getInventory().setContents(inventory); + } + return; + } + } + } + public static void herbalismProcCheck(Block block, Player player, BlockBreakEvent event, mcMMO plugin) + { + PlayerProfile PP = Users.getProfile(player); + int type = block.getTypeId(); + Location loc = block.getLocation(); + ItemStack is = null; + Material mat = null; + + if(plugin.misc.blockWatchList.contains(block)) + { + return; + } + if(type == 59 && block.getData() == (byte) 0x7) + { + mat = Material.getMaterial(296); + is = new ItemStack(mat, 1, (byte)0, (byte)0); + PP.addXP(SkillType.HERBALISM, LoadProperties.mwheat, player); + if(player != null) + { + if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) + { + loc.getWorld().dropItemNaturally(loc, is); + } + } + //GREEN THUMB + if(Math.random() * 1500 <= PP.getSkillLevel(SkillType.HERBALISM)) + { + event.setCancelled(true); + loc.getWorld().dropItemNaturally(loc, is); + //DROP SOME SEEDS + mat = Material.SEEDS; + is = new ItemStack(mat, 1, (byte)0, (byte)0); + loc.getWorld().dropItemNaturally(loc, is); + + block.setData((byte) 0x1); //Change it to first stage + + //Setup the bonuses + int bonus = 0; + if(PP.getSkillLevel(SkillType.HERBALISM) >= 200) + bonus++; + if(PP.getSkillLevel(SkillType.HERBALISM) >= 400) + bonus++; + if(PP.getSkillLevel(SkillType.HERBALISM) >= 600) + bonus++; + + //Change wheat to be whatever stage based on the bonus + if(bonus == 1) + block.setData((byte) 0x2); + if(bonus == 2) + block.setData((byte) 0x3); + if(bonus == 3) + block.setData((byte) 0x4); + } + } + /* + * We need to check not-wheat stuff for if it was placed by the player or not + */ + if(block.getData() != (byte) 5) + { + //Cactus + if(type == 81){ + //Setup the loop + World world = block.getWorld(); + Block[] blockArray = new Block[3]; + blockArray[0] = block; + blockArray[1] = world.getBlockAt(block.getX(), block.getY()+1, block.getZ()); + blockArray[2] = world.getBlockAt(block.getX(), block.getY()+2, block.getZ()); + + Material[] materialArray = new Material[3]; + materialArray[0] = blockArray[0].getType(); + materialArray[1] = blockArray[1].getType(); + materialArray[2] = blockArray[2].getType(); + + byte[] byteArray = new byte[3]; + byteArray[0] = blockArray[0].getData(); + byteArray[1] = blockArray[0].getData(); + byteArray[2] = blockArray[0].getData(); + + int x = 0; + for(Block target : blockArray) + { + if(materialArray[x] == Material.CACTUS) + { + is = new ItemStack(Material.CACTUS, 1, (byte)0, (byte)0); + if(byteArray[x] != (byte) 5) + { + if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) + { + loc.getWorld().dropItemNaturally(target.getLocation(), is); + } + PP.addXP(SkillType.HERBALISM, LoadProperties.mcactus, player); + } + } + x++; + } + } + //Sugar Canes + if(type == 83) + { + //Setup the loop + World world = block.getWorld(); + Block[] blockArray = new Block[3]; + blockArray[0] = block; + blockArray[1] = world.getBlockAt(block.getX(), block.getY()+1, block.getZ()); + blockArray[2] = world.getBlockAt(block.getX(), block.getY()+2, block.getZ()); + + Material[] materialArray = new Material[3]; + materialArray[0] = blockArray[0].getType(); + materialArray[1] = blockArray[1].getType(); + materialArray[2] = blockArray[2].getType(); + + byte[] byteArray = new byte[3]; + byteArray[0] = blockArray[0].getData(); + byteArray[1] = blockArray[0].getData(); + byteArray[2] = blockArray[0].getData(); + + int x = 0; + for(Block target : blockArray) + { + if(materialArray[x] == Material.SUGAR_CANE_BLOCK) + { + is = new ItemStack(Material.SUGAR_CANE, 1, (byte)0, (byte)0); + //Check for being placed by the player + if(byteArray[x] != (byte) 5) + { + if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) + { + loc.getWorld().dropItemNaturally(target.getLocation(), is); + } + PP.addXP(SkillType.HERBALISM, LoadProperties.msugar, player); + } + } + x++; + } + } + + //Pumpkins + if((type == 91 || type == 86)) + { + mat = Material.getMaterial(block.getTypeId()); + is = new ItemStack(mat, 1, (byte)0, (byte)0); + if(player != null) + { + if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) + { + loc.getWorld().dropItemNaturally(loc, is); + } + } + PP.addXP(SkillType.HERBALISM, LoadProperties.mpumpkin, player); + } + //Melon + if(type == 103) + { + mat = Material.getMaterial(block.getTypeId()); + is = new ItemStack(mat, 1, (byte)0, (byte)0); + + if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) + { + loc.getWorld().dropItemNaturally(loc, is); + } + PP.addXP(SkillType.HERBALISM, LoadProperties.mmelon, player); + } + //Mushroom + if(type == 39 || type == 40) + { + mat = Material.getMaterial(block.getTypeId()); + is = new ItemStack(mat, 1, (byte)0, (byte)0); + if(player != null) + { + if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) + { + loc.getWorld().dropItemNaturally(loc, is); + } + } + PP.addXP(SkillType.HERBALISM, LoadProperties.mmushroom, player); + } + //Flower + if(type == 37 || type == 38){ + mat = Material.getMaterial(block.getTypeId()); + is = new ItemStack(mat, 1, (byte)0, (byte)0); + if(player != null){ + if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)){ + loc.getWorld().dropItemNaturally(loc, is); + } + } + PP.addXP(SkillType.HERBALISM, LoadProperties.mflower, player); + } + } + Skills.XpCheckSkill(SkillType.HERBALISM, player); + } +} diff --git a/src/com/gmail/nossr50/skills/Mining.java b/src/main/java/com/gmail/nossr50/skills/Mining.java similarity index 97% rename from src/com/gmail/nossr50/skills/Mining.java rename to src/main/java/com/gmail/nossr50/skills/Mining.java index 6ec3e2004..7ab661518 100644 --- a/src/com/gmail/nossr50/skills/Mining.java +++ b/src/main/java/com/gmail/nossr50/skills/Mining.java @@ -1,440 +1,440 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import net.minecraft.server.Enchantment; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Statistic; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.getspout.spoutapi.sound.SoundEffect; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.spout.SpoutStuff; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - - -public class Mining -{ - public static void superBreakerCheck(Player player, Block block) - { - PlayerProfile PP = Users.getProfile(player); - if(m.isMiningPick(player.getItemInHand())) - { - if(block != null) - { - if(!m.abilityBlockCheck(block)) - return; - } - if(PP.getPickaxePreparationMode()) - { - PP.setPickaxePreparationMode(false); - } - - int ticks = 2; - int x = PP.getSkillLevel(SkillType.MINING); - - while(x >= 50) - { - x-=50; - ticks++; - } - - if(!PP.getSuperBreakerMode() && Skills.cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)){ - player.sendMessage(mcLocale.getString("Skills.SuperBreakerOn")); - for(Player y : player.getWorld().getPlayers()) - { - if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(mcLocale.getString("Skills.SuperBreakerPlayer", new Object[] {player.getName()})); - } - PP.setSuperBreakerActivatedTimeStamp(System.currentTimeMillis()); - PP.setSuperBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); - PP.setSuperBreakerMode(true); - } - - } - } - public static void blockProcSimulate(Block block) - { - Location loc = block.getLocation(); - Material mat = Material.getMaterial(block.getTypeId()); - byte damage = 0; - ItemStack item = new ItemStack(mat, 1, (byte)0, damage); - if(block.getTypeId() != 89 && block.getTypeId() != 73 && block.getTypeId() != 74 && block.getTypeId() != 56 - && block.getTypeId() != 21 && block.getTypeId() != 1 && block.getTypeId() != 16) - loc.getWorld().dropItemNaturally(loc, item); - if(block.getTypeId() == 89) - { - mat = Material.getMaterial(348); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - } - if(block.getTypeId() == 73 || block.getTypeId() == 74) - { - mat = Material.getMaterial(331); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - if(Math.random() * 10 > 5){ - loc.getWorld().dropItemNaturally(loc, item); - } - } - if(block.getTypeId() == 21) - { - mat = Material.getMaterial(351); - item = new ItemStack(mat, 1, (byte)0,(byte)0x4); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - } - if(block.getTypeId() == 56) - { - mat = Material.getMaterial(264); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - } - if(block.getTypeId() == 1) - { - mat = Material.getMaterial(4); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - } - if(block.getTypeId() == 16) - { - mat = Material.getMaterial(263); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - } - } - public static void blockProcCheck(Block block, Player player) - { - PlayerProfile PP = Users.getProfile(player); - - if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.MINING)) - { - blockProcSimulate(block); - return; - } - } - - public static void miningBlockCheck(Boolean smelt, Player player, Block block, mcMMO plugin) - { - PlayerProfile PP = Users.getProfile(player); - if(plugin.misc.blockWatchList.contains(block) || block.getData() == (byte) 5) - return; - int xp = 0; - if(block.getTypeId() == 1 || block.getTypeId() == 24) - { - xp += LoadProperties.mstone; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - //OBSIDIAN - if(block.getTypeId() == 49) - { - xp += LoadProperties.mobsidian; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - //NETHERRACK - if(block.getTypeId() == 87) - { - xp += LoadProperties.mnetherrack; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - //GLOWSTONE - if(block.getTypeId() == 89) - { - xp += LoadProperties.mglowstone; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - //COAL - if(block.getTypeId() == 16) - { - xp += LoadProperties.mcoal; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - //GOLD - if(block.getTypeId() == 14) - { - xp += LoadProperties.mgold; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - //DIAMOND - if(block.getTypeId() == 56){ - xp += LoadProperties.mdiamond; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - //IRON - if(block.getTypeId() == 15) - { - xp += LoadProperties.miron; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - //REDSTONE - if(block.getTypeId() == 73 || block.getTypeId() == 74) - { - xp += LoadProperties.mredstone; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - //LAPUS - if(block.getTypeId() == 21) - { - xp += LoadProperties.mlapis; - if(smelt = false) - blockProcCheck(block, player); - else - blockProcCheck(block, player); - } - PP.addXP(SkillType.MINING, xp, player); - Skills.XpCheckSkill(SkillType.MINING, player); - } - /* - * Handling SuperBreaker stuff - */ - public static Boolean canBeSuperBroken(Block block) - { - int t = block.getTypeId(); - if(t == 49 || t == 87 || t == 89 || t == 73 || t == 74 || t == 56 || t == 21 || t == 1 || t == 16 || t == 14 || t == 15) - { - return true; - } else { - return false; - } - } - - public static void SuperBreakerBlockCheck(Player player, Block block, mcMMO plugin) - { - PlayerProfile PP = Users.getProfile(player); - if(LoadProperties.toolsLoseDurabilityFromAbilities) - { - if(player.getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) - { - - } - m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); - } - - Location loc = block.getLocation(); - Material mat = Material.getMaterial(block.getTypeId()); - int xp = 0; - byte damage = 0; - ItemStack item = new ItemStack(mat, 1, (byte)0, damage); - if(block.getTypeId() == 1 || block.getTypeId() == 24) - { - if(block.getTypeId() == 1) - { - mat = Material.COBBLESTONE; - if(!plugin.misc.blockWatchList.contains(block) && block.getData() != (byte) 5) - { - xp += LoadProperties.mstone; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - } else - { - mat = Material.SANDSTONE; - if(!plugin.misc.blockWatchList.contains(block) && block.getData() != (byte) 5) - { - xp += LoadProperties.msandstone; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - } - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - //NETHERRACK - if(block.getTypeId() == 87) - { - if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ - xp += LoadProperties.mnetherrack; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - mat = Material.getMaterial(87); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - //GLOWSTONE - if(block.getTypeId() == 89) - { - if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ - xp += LoadProperties.mglowstone; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - mat = Material.getMaterial(348); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - //COAL - if(block.getTypeId() == 16) - { - if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ - xp += LoadProperties.mcoal; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - mat = Material.getMaterial(263); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - //GOLD - if(block.getTypeId() == 14 && m.getTier(player) >= 3) - { - if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ - xp += LoadProperties.mgold; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - //OBSIDIAN - if(block.getTypeId() == 49 && m.getTier(player) >= 4) - { - if(LoadProperties.toolsLoseDurabilityFromAbilities) - m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); - if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ - xp += LoadProperties.mobsidian; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - mat = Material.getMaterial(49); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - //DIAMOND - if(block.getTypeId() == 56 && m.getTier(player) >= 3) - { - if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ - xp += LoadProperties.mdiamond; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - mat = Material.getMaterial(264); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - //IRON - if(block.getTypeId() == 15 && m.getTier(player) >= 2) - { - if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ - xp += LoadProperties.miron; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - //REDSTONE - if((block.getTypeId() == 73 || block.getTypeId() == 74) && m.getTier(player) >= 4) - { - if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5) - { - xp += LoadProperties.mredstone; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - mat = Material.getMaterial(331); - item = new ItemStack(mat, 1, (byte)0, damage); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - if(Math.random() * 10 > 5) - { - loc.getWorld().dropItemNaturally(loc, item); - } - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - //LAPUS - if(block.getTypeId() == 21 && m.getTier(player) >= 3){ - if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ - xp += LoadProperties.mlapis; - blockProcCheck(block, player); - blockProcCheck(block, player); - } - mat = Material.getMaterial(351); - item = new ItemStack(mat, 1, (byte)0,(byte)0x4); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - loc.getWorld().dropItemNaturally(loc, item); - player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); - block.setType(Material.AIR); - } - if(block.getData() != (byte) 5) - PP.addXP(SkillType.MINING, xp, player); - if(LoadProperties.spoutEnabled) - SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation()); - - Skills.XpCheckSkill(SkillType.MINING, player); - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import net.minecraft.server.Enchantment; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Statistic; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.getspout.spoutapi.sound.SoundEffect; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.spout.SpoutStuff; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + + +public class Mining +{ + public static void superBreakerCheck(Player player, Block block) + { + PlayerProfile PP = Users.getProfile(player); + if(m.isMiningPick(player.getItemInHand())) + { + if(block != null) + { + if(!m.abilityBlockCheck(block)) + return; + } + if(PP.getPickaxePreparationMode()) + { + PP.setPickaxePreparationMode(false); + } + + int ticks = 2; + int x = PP.getSkillLevel(SkillType.MINING); + + while(x >= 50) + { + x-=50; + ticks++; + } + + if(!PP.getSuperBreakerMode() && Skills.cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)){ + player.sendMessage(mcLocale.getString("Skills.SuperBreakerOn")); + for(Player y : player.getWorld().getPlayers()) + { + if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) + y.sendMessage(mcLocale.getString("Skills.SuperBreakerPlayer", new Object[] {player.getName()})); + } + PP.setSuperBreakerActivatedTimeStamp(System.currentTimeMillis()); + PP.setSuperBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); + PP.setSuperBreakerMode(true); + } + + } + } + public static void blockProcSimulate(Block block) + { + Location loc = block.getLocation(); + Material mat = Material.getMaterial(block.getTypeId()); + byte damage = 0; + ItemStack item = new ItemStack(mat, 1, (byte)0, damage); + if(block.getTypeId() != 89 && block.getTypeId() != 73 && block.getTypeId() != 74 && block.getTypeId() != 56 + && block.getTypeId() != 21 && block.getTypeId() != 1 && block.getTypeId() != 16) + loc.getWorld().dropItemNaturally(loc, item); + if(block.getTypeId() == 89) + { + mat = Material.getMaterial(348); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + } + if(block.getTypeId() == 73 || block.getTypeId() == 74) + { + mat = Material.getMaterial(331); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + if(Math.random() * 10 > 5){ + loc.getWorld().dropItemNaturally(loc, item); + } + } + if(block.getTypeId() == 21) + { + mat = Material.getMaterial(351); + item = new ItemStack(mat, 1, (byte)0,(byte)0x4); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + } + if(block.getTypeId() == 56) + { + mat = Material.getMaterial(264); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + } + if(block.getTypeId() == 1) + { + mat = Material.getMaterial(4); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + } + if(block.getTypeId() == 16) + { + mat = Material.getMaterial(263); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + } + } + public static void blockProcCheck(Block block, Player player) + { + PlayerProfile PP = Users.getProfile(player); + + if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.MINING)) + { + blockProcSimulate(block); + return; + } + } + + public static void miningBlockCheck(Boolean smelt, Player player, Block block, mcMMO plugin) + { + PlayerProfile PP = Users.getProfile(player); + if(plugin.misc.blockWatchList.contains(block) || block.getData() == (byte) 5) + return; + int xp = 0; + if(block.getTypeId() == 1 || block.getTypeId() == 24) + { + xp += LoadProperties.mstone; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + //OBSIDIAN + if(block.getTypeId() == 49) + { + xp += LoadProperties.mobsidian; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + //NETHERRACK + if(block.getTypeId() == 87) + { + xp += LoadProperties.mnetherrack; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + //GLOWSTONE + if(block.getTypeId() == 89) + { + xp += LoadProperties.mglowstone; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + //COAL + if(block.getTypeId() == 16) + { + xp += LoadProperties.mcoal; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + //GOLD + if(block.getTypeId() == 14) + { + xp += LoadProperties.mgold; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + //DIAMOND + if(block.getTypeId() == 56){ + xp += LoadProperties.mdiamond; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + //IRON + if(block.getTypeId() == 15) + { + xp += LoadProperties.miron; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + //REDSTONE + if(block.getTypeId() == 73 || block.getTypeId() == 74) + { + xp += LoadProperties.mredstone; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + //LAPUS + if(block.getTypeId() == 21) + { + xp += LoadProperties.mlapis; + if(smelt = false) + blockProcCheck(block, player); + else + blockProcCheck(block, player); + } + PP.addXP(SkillType.MINING, xp, player); + Skills.XpCheckSkill(SkillType.MINING, player); + } + /* + * Handling SuperBreaker stuff + */ + public static Boolean canBeSuperBroken(Block block) + { + int t = block.getTypeId(); + if(t == 49 || t == 87 || t == 89 || t == 73 || t == 74 || t == 56 || t == 21 || t == 1 || t == 16 || t == 14 || t == 15) + { + return true; + } else { + return false; + } + } + + public static void SuperBreakerBlockCheck(Player player, Block block, mcMMO plugin) + { + PlayerProfile PP = Users.getProfile(player); + if(LoadProperties.toolsLoseDurabilityFromAbilities) + { + if(player.getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) + { + + } + m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); + } + + Location loc = block.getLocation(); + Material mat = Material.getMaterial(block.getTypeId()); + int xp = 0; + byte damage = 0; + ItemStack item = new ItemStack(mat, 1, (byte)0, damage); + if(block.getTypeId() == 1 || block.getTypeId() == 24) + { + if(block.getTypeId() == 1) + { + mat = Material.COBBLESTONE; + if(!plugin.misc.blockWatchList.contains(block) && block.getData() != (byte) 5) + { + xp += LoadProperties.mstone; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + } else + { + mat = Material.SANDSTONE; + if(!plugin.misc.blockWatchList.contains(block) && block.getData() != (byte) 5) + { + xp += LoadProperties.msandstone; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + } + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + //NETHERRACK + if(block.getTypeId() == 87) + { + if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ + xp += LoadProperties.mnetherrack; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + mat = Material.getMaterial(87); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + //GLOWSTONE + if(block.getTypeId() == 89) + { + if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ + xp += LoadProperties.mglowstone; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + mat = Material.getMaterial(348); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + //COAL + if(block.getTypeId() == 16) + { + if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ + xp += LoadProperties.mcoal; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + mat = Material.getMaterial(263); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + //GOLD + if(block.getTypeId() == 14 && m.getTier(player) >= 3) + { + if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ + xp += LoadProperties.mgold; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + //OBSIDIAN + if(block.getTypeId() == 49 && m.getTier(player) >= 4) + { + if(LoadProperties.toolsLoseDurabilityFromAbilities) + m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); + if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ + xp += LoadProperties.mobsidian; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + mat = Material.getMaterial(49); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + //DIAMOND + if(block.getTypeId() == 56 && m.getTier(player) >= 3) + { + if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ + xp += LoadProperties.mdiamond; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + mat = Material.getMaterial(264); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + //IRON + if(block.getTypeId() == 15 && m.getTier(player) >= 2) + { + if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ + xp += LoadProperties.miron; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + //REDSTONE + if((block.getTypeId() == 73 || block.getTypeId() == 74) && m.getTier(player) >= 4) + { + if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5) + { + xp += LoadProperties.mredstone; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + mat = Material.getMaterial(331); + item = new ItemStack(mat, 1, (byte)0, damage); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + if(Math.random() * 10 > 5) + { + loc.getWorld().dropItemNaturally(loc, item); + } + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + //LAPUS + if(block.getTypeId() == 21 && m.getTier(player) >= 3){ + if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ + xp += LoadProperties.mlapis; + blockProcCheck(block, player); + blockProcCheck(block, player); + } + mat = Material.getMaterial(351); + item = new ItemStack(mat, 1, (byte)0,(byte)0x4); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + loc.getWorld().dropItemNaturally(loc, item); + player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); + block.setType(Material.AIR); + } + if(block.getData() != (byte) 5) + PP.addXP(SkillType.MINING, xp, player); + if(LoadProperties.spoutEnabled) + SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation()); + + Skills.XpCheckSkill(SkillType.MINING, player); + } +} diff --git a/src/com/gmail/nossr50/skills/Repair.java b/src/main/java/com/gmail/nossr50/skills/Repair.java similarity index 96% rename from src/com/gmail/nossr50/skills/Repair.java rename to src/main/java/com/gmail/nossr50/skills/Repair.java index a9d7c700a..04a13cae3 100644 --- a/src/com/gmail/nossr50/skills/Repair.java +++ b/src/main/java/com/gmail/nossr50/skills/Repair.java @@ -1,624 +1,624 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import org.bukkit.ChatColor; -import org.bukkit.block.Block; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -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.spout.SpoutStuff; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - - -public class Repair { - - /* - * Repair requirements for each material - */ - private static int rGold = LoadProperties.rGold; - private static String nGold = LoadProperties.nGold; - private static int rStone = LoadProperties.rStone; - private static String nStone = LoadProperties.nStone; - private static int rWood = LoadProperties.rWood; - private static String nWood = LoadProperties.nWood; - private static int rDiamond = LoadProperties.rDiamond; - private static String nDiamond = LoadProperties.nDiamond; - private static int rIron = LoadProperties.rIron; - private static String nIron = LoadProperties.nIron; - - - public static void repairCheck(Player player, ItemStack is, Block block){ - PlayerProfile PP = Users.getProfile(player); - short durabilityBefore = player.getItemInHand().getDurability(); - short durabilityAfter = 0; - short dif = 0; - - //Stuff for keeping enchants - Enchantment[] enchants = new Enchantment[is.getEnchantments().size()]; - int[] enchantsLevel = new int[is.getEnchantments().size()]; - - int pos = 0; - for(Enchantment x : is.getEnchantments().keySet()) - { - enchants[pos] = x; - enchantsLevel[pos] = is.getEnchantmentLevel(x); - pos++; - } - - if(block != null && mcPermissions.getInstance().repair(player)) - { - if(player.getItemInHand().getDurability() > 0 && player.getItemInHand().getAmount() < 2){ - /* - * ARMOR - */ - if(isArmor(is)){ - /* - * DIAMOND ARMOR - */ - if(isDiamondArmor(is) && hasItem(player, rDiamond) && PP.getSkillLevel(SkillType.REPAIR) >= LoadProperties.repairdiamondlevel){ - removeItem(player, rDiamond); - repairItem(player, enchants, enchantsLevel); - - durabilityAfter = player.getItemInHand().getDurability(); - dif = (short) (durabilityBefore - durabilityAfter); - dif = (short) (dif * 6); //Boost XP - PP.addXP(SkillType.REPAIR, dif*10, player); - - //CLANG CLANG - if(LoadProperties.spoutEnabled) - SpoutStuff.playRepairNoise(player); - } - else if (isIronArmor(is) && hasItem(player, rIron)){ - /* - * IRON ARMOR - */ - removeItem(player, rIron); - repairItem(player, enchants, enchantsLevel); - - durabilityAfter = player.getItemInHand().getDurability(); - dif = (short) (durabilityBefore - durabilityAfter); - dif = (short) (dif * 2); //Boost XP - PP.addXP(SkillType.REPAIR, dif*10, player); - - //CLANG CLANG - if(LoadProperties.spoutEnabled) - SpoutStuff.playRepairNoise(player); - //GOLD ARMOR - } else if (isGoldArmor(is) && hasItem(player, rGold)){ - removeItem(player, rGold); - repairItem(player, enchants, enchantsLevel); - - durabilityAfter = player.getItemInHand().getDurability(); - dif = (short) (durabilityBefore - durabilityAfter); - dif = (short) (dif * 4); //Boost XP of Gold to around Iron - PP.addXP(SkillType.REPAIR, dif*10, player); - - //CLANG CLANG - if(LoadProperties.spoutEnabled) - SpoutStuff.playRepairNoise(player); - } else { - needMoreVespeneGas(is, player); - } - } - /* - * TOOLS - */ - if(isTools(is)){ - if(isStoneTools(is) && hasItem(player, rStone)){ - removeItem(player, rStone); - repairItem(player, enchants, enchantsLevel); - - durabilityAfter = player.getItemInHand().getDurability(); - dif = (short) (durabilityBefore - durabilityAfter); - if(m.isShovel(is)) - dif = (short) (dif / 3); - if(m.isSwords(is)) - dif = (short) (dif / 2); - if(m.isHoe(is)) - dif = (short) (dif / 2); - //STONE NERF - dif = (short) (dif / 2); - - PP.addXP(SkillType.REPAIR, dif*10, player); - } else if(isWoodTools(is) && hasItem(player,rWood)){ - removeItem(player,rWood); - repairItem(player, enchants, enchantsLevel); - - durabilityAfter = player.getItemInHand().getDurability(); - dif = (short) (durabilityBefore - durabilityAfter); - if(m.isShovel(is)) - dif = (short) (dif / 3); - if(m.isSwords(is)) - dif = (short) (dif / 2); - if(m.isHoe(is)) - dif = (short) (dif / 2); - //WOOD NERF - dif = (short) (dif / 2); - - PP.addXP(SkillType.REPAIR, dif*10, player); - } else if(isIronTools(is) && hasItem(player, rIron)){ - removeItem(player, rIron); - repairItem(player, enchants, enchantsLevel); - - durabilityAfter = (short) (player.getItemInHand().getDurability()-getRepairAmount(is, player)); - dif = (short) (durabilityBefore - durabilityAfter); - if(m.isShovel(is)) - dif = (short) (dif / 3); - if(m.isSwords(is)) - dif = (short) (dif / 2); - if(m.isHoe(is)) - dif = (short) (dif / 2); - PP.addXP(SkillType.REPAIR, dif*10, player); - - //CLANG CLANG - if(LoadProperties.spoutEnabled) - SpoutStuff.playRepairNoise(player); - } else if (isDiamondTools(is) && hasItem(player, rDiamond) && PP.getSkillLevel(SkillType.REPAIR) >= LoadProperties.repairdiamondlevel){ - removeItem(player, rDiamond); - repairItem(player, enchants, enchantsLevel); - - durabilityAfter = player.getItemInHand().getDurability(); - dif = (short) (durabilityBefore - durabilityAfter); - if(m.isShovel(is)) - dif = (short) (dif / 3); - if(m.isSwords(is)) - dif = (short) (dif / 2); - if(m.isHoe(is)) - dif = (short) (dif / 2); - PP.addXP(SkillType.REPAIR, dif*10, player); - - //CLANG CLANG - if(LoadProperties.spoutEnabled) - SpoutStuff.playRepairNoise(player); - } else if(isGoldTools(is) && hasItem(player, rGold)){ - removeItem(player, rGold); - repairItem(player, enchants, enchantsLevel); - - durabilityAfter = player.getItemInHand().getDurability(); - dif = (short) (durabilityBefore - durabilityAfter); - dif = (short) (dif * 7.6); //Boost XP for Gold to that of around Iron - if(m.isShovel(is)) - dif = (short) (dif / 3); - if(m.isSwords(is)) - dif = (short) (dif / 2); - if(m.isHoe(is)) - dif = (short) (dif / 2); - PP.addXP(SkillType.REPAIR, dif*10, player); - - //CLANG CLANG - if(LoadProperties.spoutEnabled) - SpoutStuff.playRepairNoise(player); - } else { - needMoreVespeneGas(is, player); - } - } - - } else { - player.sendMessage(mcLocale.getString("Skills.FullDurability")); - } - //player.updateInventory(); - /* - * GIVE SKILL IF THERE IS ENOUGH XP - */ - Skills.XpCheckSkill(SkillType.REPAIR, player); - } - } - public static int getArcaneForgingRank(PlayerProfile PP) - { - int rank = 0; - - if(PP.getSkillLevel(SkillType.REPAIR) >= 750) - { - rank = 4; - } else if (PP.getSkillLevel(SkillType.REPAIR) >= 500) - { - rank = 3; - } else if(PP.getSkillLevel(SkillType.REPAIR) >= 250) - { - rank = 2; - } else if (PP.getSkillLevel(SkillType.REPAIR) >= 100) - { - rank = 1; - } - return rank; - } - public static void addEnchants(ItemStack is, Enchantment[] enchants, int[] enchantsLvl, PlayerProfile PP, Player player) - { - if(is.getEnchantments().keySet().size() == 0) - return; - - int pos = 0; - int rank = getArcaneForgingRank(PP); - - if(rank == 0) - { - player.sendMessage(mcLocale.getString("Repair.LostEnchants")); - for(Enchantment x : enchants) - { - is.removeEnchantment(x); - } - return; - } - - boolean failure = false, downgrade = false; - - for(Enchantment x : enchants) - { - //Remove enchant - is.removeEnchantment(x); - - if(x.canEnchantItem(is)) - { - if(Math.random() * 100 <= getEnchantChance(rank)) - { - if(enchantsLvl[pos] > 1) - { - if(Math.random() * 100 <= getDowngradeChance(rank)) - { - is.addEnchantment(x, enchantsLvl[pos]-1); - downgrade = true; - } else - { - is.addEnchantment(x, enchantsLvl[pos]); - } - } - else { - is.addEnchantment(x, enchantsLvl[pos]); - } - } else { - failure = true; - } - } - pos++; - } - - if(failure == false && downgrade == false) - { - player.sendMessage(mcLocale.getString("Repair.ArcanePerfect")); - } else { - if(failure == true) - player.sendMessage(mcLocale.getString("Repair.ArcaneFailed")); - if(downgrade == true) - player.sendMessage(mcLocale.getString("Repair.Downgraded")); - } - } - public static int getEnchantChance(int rank) - { - switch(rank) - { - case 4: - return 40; - case 3: - return 30; - case 2: - return 20; - case 1: - return 10; - default: - return 0; - } - } - public static int getDowngradeChance(int rank) - { - switch(rank) - { - case 4: - return 15; - case 3: - return 25; - case 2: - return 50; - case 1: - return 75; - default: - return 100; - } - } - public static boolean isArmor(ItemStack is){ - return is.getTypeId() == 306 || is.getTypeId() == 307 ||is.getTypeId() == 308 ||is.getTypeId() == 309 || - is.getTypeId() == 310 ||is.getTypeId() == 311 ||is.getTypeId() == 312 ||is.getTypeId() == 313 || - is.getTypeId() == 314 || is.getTypeId() == 315 || is.getTypeId() == 316 || is.getTypeId() == 317; - } - public static boolean isGoldArmor(ItemStack is){ - return is.getTypeId() == 314 || is.getTypeId() == 315 || is.getTypeId() == 316 || is.getTypeId() == 317; - } - public static boolean isIronArmor(ItemStack is){ - return is.getTypeId() == 306 || is.getTypeId() == 307 || is.getTypeId() == 308 || is.getTypeId() == 309; - } - public static boolean isDiamondArmor(ItemStack is){ - return is.getTypeId() == 310 || is.getTypeId() == 311 || is.getTypeId() == 312 || is.getTypeId() == 313; - } - public static boolean isTools(ItemStack is) - { - return is.getTypeId() == 359 || is.getTypeId() == 256 || is.getTypeId() == 257 || is.getTypeId() == 258 || is.getTypeId() == 267 || is.getTypeId() == 292 || //IRON - is.getTypeId() == 276 || is.getTypeId() == 277 || is.getTypeId() == 278 || is.getTypeId() == 279 || is.getTypeId() == 293 || //DIAMOND - is.getTypeId() == 283 || is.getTypeId() == 285 || is.getTypeId() == 286 || is.getTypeId() == 284 || //GOLD - is.getTypeId() == 268 || is.getTypeId() == 269 || is.getTypeId() == 270 || is.getTypeId() == 271 || is.getTypeId() == 290 ||//WOOD - is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275|| is.getTypeId() == 291; //STONE - } - public static boolean isStoneTools(ItemStack is){ - return is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275 || is.getTypeId() == 291; - } - public static boolean isWoodTools(ItemStack is){ - return is.getTypeId() == 268 || is.getTypeId() == 269 || is.getTypeId() == 270 || is.getTypeId() == 271 || is.getTypeId() == 290; - } - public static boolean isGoldTools(ItemStack is){ - return is.getTypeId() == 283 || is.getTypeId() == 285 || is.getTypeId() == 286 || is.getTypeId() == 284 || is.getTypeId() == 294; - } - public static boolean isIronTools(ItemStack is){ - return is.getTypeId() == 359 || is.getTypeId() == 256 || is.getTypeId() == 257 || is.getTypeId() == 258 || is.getTypeId() == 267 || is.getTypeId() == 292; - } - - public static boolean isDiamondTools(ItemStack is){ - if(is.getTypeId() == 276 || is.getTypeId() == 277 || is.getTypeId() == 278 || is.getTypeId() == 279 || is.getTypeId() == 293) - { - return true; - } else { - return false; - } - } - public static void removeItem(Player player, int typeid) - { - ItemStack[] inventory = player.getInventory().getContents(); - for(ItemStack x : inventory){ - if(x != null && x.getTypeId() == typeid){ - if(x.getAmount() == 1){ - x.setTypeId(0); - x.setAmount(0); - player.getInventory().setContents(inventory); - } else{ - x.setAmount(x.getAmount() - 1); - player.getInventory().setContents(inventory); - } - return; - } - } - } - public static boolean hasItem(Player player, int typeid){ - ItemStack[] inventory = player.getInventory().getContents(); - for(ItemStack x : inventory){ - if(x != null && x.getTypeId() == typeid){ - return true; - } - } - return false; - } - public static short repairCalculate(Player player, short durability, short ramt){ - PlayerProfile PP = Users.getProfile(player); - float bonus = (PP.getSkillLevel(SkillType.REPAIR) / 500); - bonus = (ramt * bonus); - ramt = ramt+=bonus; - if(checkPlayerProcRepair(player)){ - ramt = (short) (ramt * 2); - } - //player.sendMessage(ChatColor.DARK_RED + "test " +ChatColor.BLUE+ ); - durability-=ramt; - // player.sendMessage(ChatColor.DARK_RED + "durability " +ChatColor.BLUE+ durability); - if(durability < 0){ - durability = 0; - } - return durability; - } - public static short getRepairAmount(ItemStack is, Player player){ - short durability = is.getDurability(); - short ramt = 0; - switch(is.getTypeId()) - { - /* - * TOOLS - */ - //SHEARS - case 359: - ramt = 119; - break; - //WOOD SWORD - case 268: - ramt = 30; - break; - //WOOD SHOVEL - case 269: - ramt = 60; - break; - //WOOD PICKAXE - case 270: - ramt = 20; - break; - //WOOD AXE - case 271: - ramt = 20; - break; - //WOOD HOE - case 290: - ramt = 30; - break; - //STONE SWORD - case 272: - ramt = 66; - break; - //STONE SHOVEL - case 273: - ramt = 132; - break; - //STONE PICKAXE - case 274: - ramt = 44; - break; - //STONE AXE - case 275: - ramt = 44; - break; - //STONE HOE - case 291: - ramt = 66; - break; - //GOLD SHOVEL - case 284: - ramt = 33; - break; - //IRON SHOVEL - case 256: - ramt = 251; - break; - //DIAMOND SHOVEL - case 277: - ramt = 1562; - break; - //IRON PICK - case 257: - ramt = 84; - break; - //IRON AXE - case 258: - ramt = 84; - break; - //IRON SWORD - case 267: - ramt = 126; - break; - //IRON HOE - case 292: - ramt = 126; - break; - //DIAMOND SWORD - case 276: - ramt = 781; - break; - //DIAMOND PICK - case 278: - ramt = 521; - break; - //DIAMOND AXE - case 279: - ramt = 521; - break; - //DIAMOND HOE - case 293: - ramt = 781; - break; - //GOLD SWORD - case 283: - ramt = 17; - break; - //GOLD PICK - case 285: - ramt = 11; - break; - //GOLD AXE - case 286: - ramt = 11; - break; - //GOLD HOE - case 294: - ramt = 17; - break; - /* - * ARMOR - */ - case 306: - ramt = 27; - break; - case 310: - ramt = 55; - break; - case 307: - ramt = 24; - break; - case 311: - ramt = 48; - break; - case 308: - ramt = 27; - break; - case 312: - ramt = 53; - break; - case 309: - ramt = 40; - break; - case 313: - ramt = 80; - break; - case 314: - ramt = 13; - break; - case 315: - ramt = 12; - break; - case 316: - ramt = 14; - break; - case 317: - ramt = 20; - break; - } - return repairCalculate(player, durability, ramt); - } - public static void needMoreVespeneGas(ItemStack is, Player player) - { - PlayerProfile PP = Users.getProfile(player); - if ((isDiamondTools(is) || isDiamondArmor(is)) && PP.getSkillLevel(SkillType.REPAIR) < LoadProperties.repairdiamondlevel) - { - player.sendMessage(mcLocale.getString("Skills.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(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond); - if(isIronTools(is) && !hasItem(player, rIron)) - player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron); - if(isGoldTools(is) && !hasItem(player, rGold)) - player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GOLD+nGold); - if(isWoodTools(is) && !hasItem(player,rWood)) - player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.DARK_GREEN+ nWood); - if(isStoneTools(is) && !hasItem(player, rStone)) - player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+nStone); - } else if (isDiamondArmor(is) && !hasItem(player, rDiamond)){ - player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond); - } else if (isIronArmor(is) && !hasItem(player, rIron)){ - player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron); - } else if (isGoldArmor(is) && !hasItem(player, rGold)){ - player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GOLD+ nGold); - } else if (is.getAmount() > 1) - 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.getSkillLevel(SkillType.REPAIR)) - { - player.sendMessage(mcLocale.getString("Skills.FeltEasy")); - return true; - } - } - return false; - } - public static void repairItem(Player player, Enchantment[] enchants, int[] enchantsLevel) - { - PlayerProfile PP = Users.getProfile(player); - ItemStack is = player.getItemInHand(); - //Handle the enchantments - addEnchants(player.getItemInHand(), enchants, enchantsLevel, PP, player); - player.getItemInHand().setDurability(getRepairAmount(is, player)); - } +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +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.spout.SpoutStuff; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + + +public class Repair { + + /* + * Repair requirements for each material + */ + private static int rGold = LoadProperties.rGold; + private static String nGold = LoadProperties.nGold; + private static int rStone = LoadProperties.rStone; + private static String nStone = LoadProperties.nStone; + private static int rWood = LoadProperties.rWood; + private static String nWood = LoadProperties.nWood; + private static int rDiamond = LoadProperties.rDiamond; + private static String nDiamond = LoadProperties.nDiamond; + private static int rIron = LoadProperties.rIron; + private static String nIron = LoadProperties.nIron; + + + public static void repairCheck(Player player, ItemStack is, Block block){ + PlayerProfile PP = Users.getProfile(player); + short durabilityBefore = player.getItemInHand().getDurability(); + short durabilityAfter = 0; + short dif = 0; + + //Stuff for keeping enchants + Enchantment[] enchants = new Enchantment[is.getEnchantments().size()]; + int[] enchantsLevel = new int[is.getEnchantments().size()]; + + int pos = 0; + for(Enchantment x : is.getEnchantments().keySet()) + { + enchants[pos] = x; + enchantsLevel[pos] = is.getEnchantmentLevel(x); + pos++; + } + + if(block != null && mcPermissions.getInstance().repair(player)) + { + if(player.getItemInHand().getDurability() > 0 && player.getItemInHand().getAmount() < 2){ + /* + * ARMOR + */ + if(isArmor(is)){ + /* + * DIAMOND ARMOR + */ + if(isDiamondArmor(is) && hasItem(player, rDiamond) && PP.getSkillLevel(SkillType.REPAIR) >= LoadProperties.repairdiamondlevel){ + removeItem(player, rDiamond); + repairItem(player, enchants, enchantsLevel); + + durabilityAfter = player.getItemInHand().getDurability(); + dif = (short) (durabilityBefore - durabilityAfter); + dif = (short) (dif * 6); //Boost XP + PP.addXP(SkillType.REPAIR, dif*10, player); + + //CLANG CLANG + if(LoadProperties.spoutEnabled) + SpoutStuff.playRepairNoise(player); + } + else if (isIronArmor(is) && hasItem(player, rIron)){ + /* + * IRON ARMOR + */ + removeItem(player, rIron); + repairItem(player, enchants, enchantsLevel); + + durabilityAfter = player.getItemInHand().getDurability(); + dif = (short) (durabilityBefore - durabilityAfter); + dif = (short) (dif * 2); //Boost XP + PP.addXP(SkillType.REPAIR, dif*10, player); + + //CLANG CLANG + if(LoadProperties.spoutEnabled) + SpoutStuff.playRepairNoise(player); + //GOLD ARMOR + } else if (isGoldArmor(is) && hasItem(player, rGold)){ + removeItem(player, rGold); + repairItem(player, enchants, enchantsLevel); + + durabilityAfter = player.getItemInHand().getDurability(); + dif = (short) (durabilityBefore - durabilityAfter); + dif = (short) (dif * 4); //Boost XP of Gold to around Iron + PP.addXP(SkillType.REPAIR, dif*10, player); + + //CLANG CLANG + if(LoadProperties.spoutEnabled) + SpoutStuff.playRepairNoise(player); + } else { + needMoreVespeneGas(is, player); + } + } + /* + * TOOLS + */ + if(isTools(is)){ + if(isStoneTools(is) && hasItem(player, rStone)){ + removeItem(player, rStone); + repairItem(player, enchants, enchantsLevel); + + durabilityAfter = player.getItemInHand().getDurability(); + dif = (short) (durabilityBefore - durabilityAfter); + if(m.isShovel(is)) + dif = (short) (dif / 3); + if(m.isSwords(is)) + dif = (short) (dif / 2); + if(m.isHoe(is)) + dif = (short) (dif / 2); + //STONE NERF + dif = (short) (dif / 2); + + PP.addXP(SkillType.REPAIR, dif*10, player); + } else if(isWoodTools(is) && hasItem(player,rWood)){ + removeItem(player,rWood); + repairItem(player, enchants, enchantsLevel); + + durabilityAfter = player.getItemInHand().getDurability(); + dif = (short) (durabilityBefore - durabilityAfter); + if(m.isShovel(is)) + dif = (short) (dif / 3); + if(m.isSwords(is)) + dif = (short) (dif / 2); + if(m.isHoe(is)) + dif = (short) (dif / 2); + //WOOD NERF + dif = (short) (dif / 2); + + PP.addXP(SkillType.REPAIR, dif*10, player); + } else if(isIronTools(is) && hasItem(player, rIron)){ + removeItem(player, rIron); + repairItem(player, enchants, enchantsLevel); + + durabilityAfter = (short) (player.getItemInHand().getDurability()-getRepairAmount(is, player)); + dif = (short) (durabilityBefore - durabilityAfter); + if(m.isShovel(is)) + dif = (short) (dif / 3); + if(m.isSwords(is)) + dif = (short) (dif / 2); + if(m.isHoe(is)) + dif = (short) (dif / 2); + PP.addXP(SkillType.REPAIR, dif*10, player); + + //CLANG CLANG + if(LoadProperties.spoutEnabled) + SpoutStuff.playRepairNoise(player); + } else if (isDiamondTools(is) && hasItem(player, rDiamond) && PP.getSkillLevel(SkillType.REPAIR) >= LoadProperties.repairdiamondlevel){ + removeItem(player, rDiamond); + repairItem(player, enchants, enchantsLevel); + + durabilityAfter = player.getItemInHand().getDurability(); + dif = (short) (durabilityBefore - durabilityAfter); + if(m.isShovel(is)) + dif = (short) (dif / 3); + if(m.isSwords(is)) + dif = (short) (dif / 2); + if(m.isHoe(is)) + dif = (short) (dif / 2); + PP.addXP(SkillType.REPAIR, dif*10, player); + + //CLANG CLANG + if(LoadProperties.spoutEnabled) + SpoutStuff.playRepairNoise(player); + } else if(isGoldTools(is) && hasItem(player, rGold)){ + removeItem(player, rGold); + repairItem(player, enchants, enchantsLevel); + + durabilityAfter = player.getItemInHand().getDurability(); + dif = (short) (durabilityBefore - durabilityAfter); + dif = (short) (dif * 7.6); //Boost XP for Gold to that of around Iron + if(m.isShovel(is)) + dif = (short) (dif / 3); + if(m.isSwords(is)) + dif = (short) (dif / 2); + if(m.isHoe(is)) + dif = (short) (dif / 2); + PP.addXP(SkillType.REPAIR, dif*10, player); + + //CLANG CLANG + if(LoadProperties.spoutEnabled) + SpoutStuff.playRepairNoise(player); + } else { + needMoreVespeneGas(is, player); + } + } + + } else { + player.sendMessage(mcLocale.getString("Skills.FullDurability")); + } + //player.updateInventory(); + /* + * GIVE SKILL IF THERE IS ENOUGH XP + */ + Skills.XpCheckSkill(SkillType.REPAIR, player); + } + } + public static int getArcaneForgingRank(PlayerProfile PP) + { + int rank = 0; + + if(PP.getSkillLevel(SkillType.REPAIR) >= 750) + { + rank = 4; + } else if (PP.getSkillLevel(SkillType.REPAIR) >= 500) + { + rank = 3; + } else if(PP.getSkillLevel(SkillType.REPAIR) >= 250) + { + rank = 2; + } else if (PP.getSkillLevel(SkillType.REPAIR) >= 100) + { + rank = 1; + } + return rank; + } + public static void addEnchants(ItemStack is, Enchantment[] enchants, int[] enchantsLvl, PlayerProfile PP, Player player) + { + if(is.getEnchantments().keySet().size() == 0) + return; + + int pos = 0; + int rank = getArcaneForgingRank(PP); + + if(rank == 0) + { + player.sendMessage(mcLocale.getString("Repair.LostEnchants")); + for(Enchantment x : enchants) + { + is.removeEnchantment(x); + } + return; + } + + boolean failure = false, downgrade = false; + + for(Enchantment x : enchants) + { + //Remove enchant + is.removeEnchantment(x); + + if(x.canEnchantItem(is)) + { + if(Math.random() * 100 <= getEnchantChance(rank)) + { + if(enchantsLvl[pos] > 1) + { + if(Math.random() * 100 <= getDowngradeChance(rank)) + { + is.addEnchantment(x, enchantsLvl[pos]-1); + downgrade = true; + } else + { + is.addEnchantment(x, enchantsLvl[pos]); + } + } + else { + is.addEnchantment(x, enchantsLvl[pos]); + } + } else { + failure = true; + } + } + pos++; + } + + if(failure == false && downgrade == false) + { + player.sendMessage(mcLocale.getString("Repair.ArcanePerfect")); + } else { + if(failure == true) + player.sendMessage(mcLocale.getString("Repair.ArcaneFailed")); + if(downgrade == true) + player.sendMessage(mcLocale.getString("Repair.Downgraded")); + } + } + public static int getEnchantChance(int rank) + { + switch(rank) + { + case 4: + return 40; + case 3: + return 30; + case 2: + return 20; + case 1: + return 10; + default: + return 0; + } + } + public static int getDowngradeChance(int rank) + { + switch(rank) + { + case 4: + return 15; + case 3: + return 25; + case 2: + return 50; + case 1: + return 75; + default: + return 100; + } + } + public static boolean isArmor(ItemStack is){ + return is.getTypeId() == 306 || is.getTypeId() == 307 ||is.getTypeId() == 308 ||is.getTypeId() == 309 || + is.getTypeId() == 310 ||is.getTypeId() == 311 ||is.getTypeId() == 312 ||is.getTypeId() == 313 || + is.getTypeId() == 314 || is.getTypeId() == 315 || is.getTypeId() == 316 || is.getTypeId() == 317; + } + public static boolean isGoldArmor(ItemStack is){ + return is.getTypeId() == 314 || is.getTypeId() == 315 || is.getTypeId() == 316 || is.getTypeId() == 317; + } + public static boolean isIronArmor(ItemStack is){ + return is.getTypeId() == 306 || is.getTypeId() == 307 || is.getTypeId() == 308 || is.getTypeId() == 309; + } + public static boolean isDiamondArmor(ItemStack is){ + return is.getTypeId() == 310 || is.getTypeId() == 311 || is.getTypeId() == 312 || is.getTypeId() == 313; + } + public static boolean isTools(ItemStack is) + { + return is.getTypeId() == 359 || is.getTypeId() == 256 || is.getTypeId() == 257 || is.getTypeId() == 258 || is.getTypeId() == 267 || is.getTypeId() == 292 || //IRON + is.getTypeId() == 276 || is.getTypeId() == 277 || is.getTypeId() == 278 || is.getTypeId() == 279 || is.getTypeId() == 293 || //DIAMOND + is.getTypeId() == 283 || is.getTypeId() == 285 || is.getTypeId() == 286 || is.getTypeId() == 284 || //GOLD + is.getTypeId() == 268 || is.getTypeId() == 269 || is.getTypeId() == 270 || is.getTypeId() == 271 || is.getTypeId() == 290 ||//WOOD + is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275|| is.getTypeId() == 291; //STONE + } + public static boolean isStoneTools(ItemStack is){ + return is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275 || is.getTypeId() == 291; + } + public static boolean isWoodTools(ItemStack is){ + return is.getTypeId() == 268 || is.getTypeId() == 269 || is.getTypeId() == 270 || is.getTypeId() == 271 || is.getTypeId() == 290; + } + public static boolean isGoldTools(ItemStack is){ + return is.getTypeId() == 283 || is.getTypeId() == 285 || is.getTypeId() == 286 || is.getTypeId() == 284 || is.getTypeId() == 294; + } + public static boolean isIronTools(ItemStack is){ + return is.getTypeId() == 359 || is.getTypeId() == 256 || is.getTypeId() == 257 || is.getTypeId() == 258 || is.getTypeId() == 267 || is.getTypeId() == 292; + } + + public static boolean isDiamondTools(ItemStack is){ + if(is.getTypeId() == 276 || is.getTypeId() == 277 || is.getTypeId() == 278 || is.getTypeId() == 279 || is.getTypeId() == 293) + { + return true; + } else { + return false; + } + } + public static void removeItem(Player player, int typeid) + { + ItemStack[] inventory = player.getInventory().getContents(); + for(ItemStack x : inventory){ + if(x != null && x.getTypeId() == typeid){ + if(x.getAmount() == 1){ + x.setTypeId(0); + x.setAmount(0); + player.getInventory().setContents(inventory); + } else{ + x.setAmount(x.getAmount() - 1); + player.getInventory().setContents(inventory); + } + return; + } + } + } + public static boolean hasItem(Player player, int typeid){ + ItemStack[] inventory = player.getInventory().getContents(); + for(ItemStack x : inventory){ + if(x != null && x.getTypeId() == typeid){ + return true; + } + } + return false; + } + public static short repairCalculate(Player player, short durability, short ramt){ + PlayerProfile PP = Users.getProfile(player); + float bonus = (PP.getSkillLevel(SkillType.REPAIR) / 500); + bonus = (ramt * bonus); + ramt = ramt+=bonus; + if(checkPlayerProcRepair(player)){ + ramt = (short) (ramt * 2); + } + //player.sendMessage(ChatColor.DARK_RED + "test " +ChatColor.BLUE+ ); + durability-=ramt; + // player.sendMessage(ChatColor.DARK_RED + "durability " +ChatColor.BLUE+ durability); + if(durability < 0){ + durability = 0; + } + return durability; + } + public static short getRepairAmount(ItemStack is, Player player){ + short durability = is.getDurability(); + short ramt = 0; + switch(is.getTypeId()) + { + /* + * TOOLS + */ + //SHEARS + case 359: + ramt = 119; + break; + //WOOD SWORD + case 268: + ramt = 30; + break; + //WOOD SHOVEL + case 269: + ramt = 60; + break; + //WOOD PICKAXE + case 270: + ramt = 20; + break; + //WOOD AXE + case 271: + ramt = 20; + break; + //WOOD HOE + case 290: + ramt = 30; + break; + //STONE SWORD + case 272: + ramt = 66; + break; + //STONE SHOVEL + case 273: + ramt = 132; + break; + //STONE PICKAXE + case 274: + ramt = 44; + break; + //STONE AXE + case 275: + ramt = 44; + break; + //STONE HOE + case 291: + ramt = 66; + break; + //GOLD SHOVEL + case 284: + ramt = 33; + break; + //IRON SHOVEL + case 256: + ramt = 251; + break; + //DIAMOND SHOVEL + case 277: + ramt = 1562; + break; + //IRON PICK + case 257: + ramt = 84; + break; + //IRON AXE + case 258: + ramt = 84; + break; + //IRON SWORD + case 267: + ramt = 126; + break; + //IRON HOE + case 292: + ramt = 126; + break; + //DIAMOND SWORD + case 276: + ramt = 781; + break; + //DIAMOND PICK + case 278: + ramt = 521; + break; + //DIAMOND AXE + case 279: + ramt = 521; + break; + //DIAMOND HOE + case 293: + ramt = 781; + break; + //GOLD SWORD + case 283: + ramt = 17; + break; + //GOLD PICK + case 285: + ramt = 11; + break; + //GOLD AXE + case 286: + ramt = 11; + break; + //GOLD HOE + case 294: + ramt = 17; + break; + /* + * ARMOR + */ + case 306: + ramt = 27; + break; + case 310: + ramt = 55; + break; + case 307: + ramt = 24; + break; + case 311: + ramt = 48; + break; + case 308: + ramt = 27; + break; + case 312: + ramt = 53; + break; + case 309: + ramt = 40; + break; + case 313: + ramt = 80; + break; + case 314: + ramt = 13; + break; + case 315: + ramt = 12; + break; + case 316: + ramt = 14; + break; + case 317: + ramt = 20; + break; + } + return repairCalculate(player, durability, ramt); + } + public static void needMoreVespeneGas(ItemStack is, Player player) + { + PlayerProfile PP = Users.getProfile(player); + if ((isDiamondTools(is) || isDiamondArmor(is)) && PP.getSkillLevel(SkillType.REPAIR) < LoadProperties.repairdiamondlevel) + { + player.sendMessage(mcLocale.getString("Skills.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(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond); + if(isIronTools(is) && !hasItem(player, rIron)) + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron); + if(isGoldTools(is) && !hasItem(player, rGold)) + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GOLD+nGold); + if(isWoodTools(is) && !hasItem(player,rWood)) + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.DARK_GREEN+ nWood); + if(isStoneTools(is) && !hasItem(player, rStone)) + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+nStone); + } else if (isDiamondArmor(is) && !hasItem(player, rDiamond)){ + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond); + } else if (isIronArmor(is) && !hasItem(player, rIron)){ + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron); + } else if (isGoldArmor(is) && !hasItem(player, rGold)){ + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GOLD+ nGold); + } else if (is.getAmount() > 1) + 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.getSkillLevel(SkillType.REPAIR)) + { + player.sendMessage(mcLocale.getString("Skills.FeltEasy")); + return true; + } + } + return false; + } + public static void repairItem(Player player, Enchantment[] enchants, int[] enchantsLevel) + { + PlayerProfile PP = Users.getProfile(player); + ItemStack is = player.getItemInHand(); + //Handle the enchantments + addEnchants(player.getItemInHand(), enchants, enchantsLevel, PP, player); + player.getItemInHand().setDurability(getRepairAmount(is, player)); + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/skills/Skills.java b/src/main/java/com/gmail/nossr50/skills/Skills.java similarity index 97% rename from src/com/gmail/nossr50/skills/Skills.java rename to src/main/java/com/gmail/nossr50/skills/Skills.java index b0d8fda40..b8dd5db30 100644 --- a/src/com/gmail/nossr50/skills/Skills.java +++ b/src/main/java/com/gmail/nossr50/skills/Skills.java @@ -1,437 +1,437 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import java.util.logging.Logger; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.getspout.spoutapi.SpoutManager; -import org.getspout.spoutapi.player.SpoutPlayer; - -import com.gmail.nossr50.Leaderboard; -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.spout.SpoutStuff; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.PlayerStat; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - - -public class Skills -{ - protected static final Logger log = Logger.getLogger("Minecraft"); - - public void updateSQLfromFile(Player player){ - - } - public static boolean cooldownOver(Player player, long oldTime, int cooldown){ - long currentTime = System.currentTimeMillis(); - if(currentTime - oldTime >= (cooldown * 1000)){ - return true; - } else { - return false; - } - } - public boolean hasArrows(Player player){ - for(ItemStack x : player.getInventory().getContents()){ - if (x.getTypeId() == 262){ - return true; - } - } - return false; - } - public void addArrows(Player player){ - for(ItemStack x : player.getInventory().getContents()){ - if (x.getTypeId() == 262){ - x.setAmount(x.getAmount() + 1); - return; - } - } - } - - public static int calculateTimeLeft(Player player, long deactivatedTimeStamp, int cooldown) - { - return (int) (((deactivatedTimeStamp + (cooldown * 1000)) - System.currentTimeMillis())/1000); - } - - public static void watchCooldowns(Player player){ - PlayerProfile PP = Users.getProfile(player); - if(!PP.getGreenTerraInformed() && System.currentTimeMillis() - (PP.getGreenTerraDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){ - PP.setGreenTerraInformed(true); - player.sendMessage(mcLocale.getString("Skills.YourGreenTerra")); - } - if(!PP.getTreeFellerInformed() && System.currentTimeMillis() - (PP.getTreeFellerDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){ - PP.setTreeFellerInformed(true); - player.sendMessage(mcLocale.getString("Skills.YourTreeFeller")); - } - if(!PP.getSuperBreakerInformed() && System.currentTimeMillis() - (PP.getSuperBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.superBreakerCooldown * 1000)){ - PP.setSuperBreakerInformed(true); - player.sendMessage(mcLocale.getString("Skills.YourSuperBreaker")); - } - if(!PP.getSerratedStrikesInformed() && System.currentTimeMillis() - (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) >= (LoadProperties.serratedStrikeCooldown * 1000)){ - PP.setSerratedStrikesInformed(true); - player.sendMessage(mcLocale.getString("Skills.YourSerratedStrikes")); - } - if(!PP.getBerserkInformed() && System.currentTimeMillis() - (PP.getBerserkDeactivatedTimeStamp()*1000) >= (LoadProperties.berserkCooldown * 1000)){ - PP.setBerserkInformed(true); - player.sendMessage(mcLocale.getString("Skills.YourBerserk")); - } - if(!PP.getSkullSplitterInformed() && System.currentTimeMillis() - (PP.getSkullSplitterDeactivatedTimeStamp()*1000) >= (LoadProperties.skullSplitterCooldown * 1000)){ - PP.setSkullSplitterInformed(true); - player.sendMessage(mcLocale.getString("Skills.YourSkullSplitter")); - } - if(!PP.getGigaDrillBreakerInformed() && System.currentTimeMillis() - (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.gigaDrillBreakerCooldown * 1000)){ - PP.setGigaDrillBreakerInformed(true); - player.sendMessage(mcLocale.getString("Skills.YourGigaDrillBreaker")); - } - } - public static void hoeReadinessCheck(Player player) - { - if(LoadProperties.enableOnlyActivateWhenSneaking && !player.isSneaking()) - return; - - PlayerProfile PP = Users.getProfile(player); - if(mcPermissions.getInstance().herbalismAbility(player) && m.isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){ - if(!PP.getGreenTerraMode() && !cooldownOver(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)){ - player.sendMessage(mcLocale.getString("Skills.TooTired") - +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)+"s)"); - return; - } - if(LoadProperties.enableAbilityMessages) - player.sendMessage(mcLocale.getString("Skills.ReadyHoe")); - PP.setHoePreparationATS(System.currentTimeMillis()); - PP.setHoePreparationMode(true); - } - } - public static void monitorSkills(Player player){ - PlayerProfile PP = Users.getProfile(player); - if(PP != null) - { - if(PP.getHoePreparationMode() && System.currentTimeMillis() - (PP.getHoePreparationATS()*1000) >= 4000){ - PP.setHoePreparationMode(false); - player.sendMessage(mcLocale.getString("Skills.LowerHoe")); - } - if(PP.getAxePreparationMode() && System.currentTimeMillis() - (PP.getAxePreparationATS()*1000) >= 4000){ - PP.setAxePreparationMode(false); - player.sendMessage(mcLocale.getString("Skills.LowerAxe")); - } - if(PP.getPickaxePreparationMode() && System.currentTimeMillis() - (PP.getPickaxePreparationATS()*1000) >= 4000){ - PP.setPickaxePreparationMode(false); - player.sendMessage(mcLocale.getString("Skills.LowerPickAxe")); - } - if(PP.getSwordsPreparationMode() && System.currentTimeMillis() - (PP.getSwordsPreparationATS()*1000) >= 4000){ - PP.setSwordsPreparationMode(false); - player.sendMessage(mcLocale.getString("Skills.LowerSword")); - } - if(PP.getFistsPreparationMode() && System.currentTimeMillis() - (PP.getFistsPreparationATS()*1000) >= 4000){ - PP.setFistsPreparationMode(false); - player.sendMessage(mcLocale.getString("Skills.LowerFists")); - } - if(PP.getShovelPreparationMode() && System.currentTimeMillis() - (PP.getShovelPreparationATS()*1000) >= 4000){ - PP.setShovelPreparationMode(false); - player.sendMessage(mcLocale.getString("Skills.LowerShovel")); - } - - /* - * HERBALISM ABILITY - */ - if(mcPermissions.getInstance().herbalismAbility(player)){ - if(PP.getGreenTerraMode() && (PP.getGreenTerraDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ - PP.setGreenTerraMode(false); - PP.setGreenTerraInformed(false); - player.sendMessage(mcLocale.getString("Skills.GreenTerraOff")); - } - } - /* - * AXES ABILITY - */ - if(mcPermissions.getInstance().axesAbility(player)){ - if(PP.getSkullSplitterMode() && (PP.getSkullSplitterDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ - PP.setSkullSplitterMode(false); - PP.setSkullSplitterInformed(false); - player.sendMessage(mcLocale.getString("Skills.SkullSplitterOff")); - } - } - /* - * WOODCUTTING ABILITY - */ - if(mcPermissions.getInstance().woodCuttingAbility(player)){ - if(PP.getTreeFellerMode() && (PP.getTreeFellerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ - PP.setTreeFellerMode(false); - PP.setTreeFellerInformed(false); - player.sendMessage(mcLocale.getString("Skills.TreeFellerOff")); - } - } - /* - * MINING ABILITY - */ - if(mcPermissions.getInstance().miningAbility(player)){ - if(PP.getSuperBreakerMode() && (PP.getSuperBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ - PP.setSuperBreakerMode(false); - PP.setSuperBreakerInformed(false); - player.sendMessage(mcLocale.getString("Skills.SuperBreakerOff")); - } - } - /* - * EXCAVATION ABILITY - */ - if(mcPermissions.getInstance().excavationAbility(player)){ - if(PP.getGigaDrillBreakerMode() && (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ - PP.setGigaDrillBreakerMode(false); - PP.setGigaDrillBreakerInformed(false); - player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOff")); - } - } - /* - * SWORDS ABILITY - */ - if(mcPermissions.getInstance().swordsAbility(player)){ - if(PP.getSerratedStrikesMode() && (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ - PP.setSerratedStrikesMode(false); - PP.setSerratedStrikesInformed(false); - player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOff")); - } - } - /* - * UNARMED ABILITY - */ - if(mcPermissions.getInstance().unarmedAbility(player)){ - if(PP.getBerserkMode() && (PP.getBerserkDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ - PP.setBerserkMode(false); - PP.setBerserkInformed(false); - player.sendMessage(mcLocale.getString("Skills.BerserkOff")); - } - } - } - } - public static void abilityActivationCheck(Player player) - { - if(LoadProperties.enableOnlyActivateWhenSneaking && !player.isSneaking()) - return; - - PlayerProfile PP = Users.getProfile(player); - if(PP != null) - { - if(!PP.getAbilityUse() || PP.getSuperBreakerMode() || PP.getSerratedStrikesMode() || PP.getTreeFellerMode() || PP.getGreenTerraMode() || PP.getBerserkMode() || PP.getGigaDrillBreakerMode()) - return; - if(mcPermissions.getInstance().miningAbility(player) && m.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode()) - { - if(!PP.getSuperBreakerMode() && !cooldownOver(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown)) - { - player.sendMessage(mcLocale.getString("Skills.TooTired") - +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown)+"s)"); - return; - } - if(LoadProperties.enableAbilityMessages) - 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()*1000), LoadProperties.gigaDrillBreakerCooldown)) - { - player.sendMessage(mcLocale.getString("Skills.TooTired") - +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000), LoadProperties.gigaDrillBreakerCooldown)+"s)"); - return; - } - if(LoadProperties.enableAbilityMessages) - 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()*1000), LoadProperties.serratedStrikeCooldown)) - { - player.sendMessage(mcLocale.getString("Skills.TooTired") - +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSerratedStrikesDeactivatedTimeStamp()*1000), LoadProperties.serratedStrikeCooldown)+"s)"); - return; - } - if(LoadProperties.enableAbilityMessages) - 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()*1000), LoadProperties.berserkCooldown)) - { - player.sendMessage(mcLocale.getString("Skills.TooTired") - +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getBerserkDeactivatedTimeStamp()*1000), LoadProperties.berserkCooldown)+"s)"); - return; - } - if(LoadProperties.enableAbilityMessages) - player.sendMessage(mcLocale.getString("Skills.ReadyFists")); - PP.setFistsPreparationATS(System.currentTimeMillis()); - PP.setFistsPreparationMode(true); - } - if((mcPermissions.getInstance().axesAbility(player) || mcPermissions.getInstance().woodCuttingAbility(player)) && !PP.getAxePreparationMode()) - { - if(m.isAxes(player.getItemInHand())) - { - if(LoadProperties.enableAbilityMessages) - player.sendMessage(mcLocale.getString("Skills.ReadyAxe")); - PP.setAxePreparationATS(System.currentTimeMillis()); - PP.setAxePreparationMode(true); - } - } - } - } - - public static void ProcessLeaderboardUpdate(SkillType skillType, Player player) - { - PlayerProfile PP = Users.getProfile(player); - - PlayerStat ps = new PlayerStat(); - if(skillType != SkillType.ALL) - ps.statVal = PP.getSkillLevel(skillType); - else - ps.statVal = m.getPowerLevel(player); - ps.name = player.getName(); - Leaderboard.updateLeaderboard(ps, skillType); - } - - public static void XpCheckSkill(SkillType skillType, Player player) - { - PlayerProfile PP = Users.getProfile(player); - - if(PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) - { - int skillups = 0; - - while(PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) - { - skillups++; - PP.removeXP(skillType, PP.getXpToLevel(skillType)); - PP.skillUp(skillType, 1); - } - - if(!LoadProperties.useMySQL) - { - ProcessLeaderboardUpdate(skillType, player); - ProcessLeaderboardUpdate(SkillType.ALL, player); - } - - String capitalized = m.getCapitalized(skillType.toString()); - - //Contrib stuff - - if(LoadProperties.spoutEnabled && player instanceof SpoutPlayer) - { - SpoutPlayer sPlayer = SpoutManager.getPlayer(player); - if(sPlayer.isSpoutCraftEnabled()) - { - SpoutStuff.levelUpNotification(skillType, sPlayer); - } else - { - player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); - } - } - else - player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); - } - if(LoadProperties.xpbar && LoadProperties.spoutEnabled) - { - SpoutPlayer sPlayer = SpoutManager.getPlayer(player); - if(sPlayer.isSpoutCraftEnabled()) - { - SpoutStuff.updateXpBar(sPlayer); - } - } - } - - public static void XpCheckAll(Player player) - { - for(SkillType x : SkillType.values()) - { - //Don't want to do anything with this one - if(x == SkillType.ALL) - continue; - - XpCheckSkill(x, player); - } - } - public static SkillType getSkillType(String skillName) - { - for(SkillType x : SkillType.values()) - { - if(x.toString().equals(skillName.toUpperCase())) - return x; - } - return null; - } - public static boolean isSkill(String skillname){ - skillname = skillname.toUpperCase(); - for(SkillType x : SkillType.values()) - { - if(x.toString().equals(skillname)) - return true; - } - return false; - } - public static void arrowRetrievalCheck(Entity entity, mcMMO plugin) - { - if(plugin.misc.arrowTracker.containsKey(entity)) - { - Integer x = 0; - while(x < plugin.misc.arrowTracker.get(entity)) - { - m.mcDropItem(entity.getLocation(), 262); - x++; - } - } - plugin.misc.arrowTracker.remove(entity); - } - public static String getSkillStats(String skillname, Integer level, Integer XP, Integer XPToLevel) - { - ChatColor parColor = ChatColor.DARK_AQUA; - ChatColor xpColor = ChatColor.GRAY; - ChatColor LvlColor = ChatColor.GREEN; - ChatColor skillColor = ChatColor.YELLOW; - - return skillColor+skillname+LvlColor+level+parColor+" XP"+"("+xpColor+XP+parColor+"/"+xpColor+XPToLevel+parColor+")"; - } - public static boolean hasCombatSkills(Player player) - { - if(mcPermissions.getInstance().axes(player) || mcPermissions.getInstance().archery(player) || mcPermissions.getInstance().swords(player) || mcPermissions.getInstance().taming(player) || mcPermissions.getInstance().unarmed(player)) - return true; - else - return false; - } - public static boolean hasGatheringSkills(Player player) - { - if(mcPermissions.getInstance().excavation(player) || mcPermissions.getInstance().herbalism(player) || mcPermissions.getInstance().mining(player) || mcPermissions.getInstance().woodcutting(player)) - return true; - else - return false; - } - public static boolean hasMiscSkills(Player player) - { - if(mcPermissions.getInstance().acrobatics(player) || mcPermissions.getInstance().repair(player)) - return true; - else - return false; - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import java.util.logging.Logger; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.getspout.spoutapi.SpoutManager; +import org.getspout.spoutapi.player.SpoutPlayer; + +import com.gmail.nossr50.Leaderboard; +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.spout.SpoutStuff; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.PlayerStat; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + + +public class Skills +{ + protected static final Logger log = Logger.getLogger("Minecraft"); + + public void updateSQLfromFile(Player player){ + + } + public static boolean cooldownOver(Player player, long oldTime, int cooldown){ + long currentTime = System.currentTimeMillis(); + if(currentTime - oldTime >= (cooldown * 1000)){ + return true; + } else { + return false; + } + } + public boolean hasArrows(Player player){ + for(ItemStack x : player.getInventory().getContents()){ + if (x.getTypeId() == 262){ + return true; + } + } + return false; + } + public void addArrows(Player player){ + for(ItemStack x : player.getInventory().getContents()){ + if (x.getTypeId() == 262){ + x.setAmount(x.getAmount() + 1); + return; + } + } + } + + public static int calculateTimeLeft(Player player, long deactivatedTimeStamp, int cooldown) + { + return (int) (((deactivatedTimeStamp + (cooldown * 1000)) - System.currentTimeMillis())/1000); + } + + public static void watchCooldowns(Player player){ + PlayerProfile PP = Users.getProfile(player); + if(!PP.getGreenTerraInformed() && System.currentTimeMillis() - (PP.getGreenTerraDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){ + PP.setGreenTerraInformed(true); + player.sendMessage(mcLocale.getString("Skills.YourGreenTerra")); + } + if(!PP.getTreeFellerInformed() && System.currentTimeMillis() - (PP.getTreeFellerDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){ + PP.setTreeFellerInformed(true); + player.sendMessage(mcLocale.getString("Skills.YourTreeFeller")); + } + if(!PP.getSuperBreakerInformed() && System.currentTimeMillis() - (PP.getSuperBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.superBreakerCooldown * 1000)){ + PP.setSuperBreakerInformed(true); + player.sendMessage(mcLocale.getString("Skills.YourSuperBreaker")); + } + if(!PP.getSerratedStrikesInformed() && System.currentTimeMillis() - (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) >= (LoadProperties.serratedStrikeCooldown * 1000)){ + PP.setSerratedStrikesInformed(true); + player.sendMessage(mcLocale.getString("Skills.YourSerratedStrikes")); + } + if(!PP.getBerserkInformed() && System.currentTimeMillis() - (PP.getBerserkDeactivatedTimeStamp()*1000) >= (LoadProperties.berserkCooldown * 1000)){ + PP.setBerserkInformed(true); + player.sendMessage(mcLocale.getString("Skills.YourBerserk")); + } + if(!PP.getSkullSplitterInformed() && System.currentTimeMillis() - (PP.getSkullSplitterDeactivatedTimeStamp()*1000) >= (LoadProperties.skullSplitterCooldown * 1000)){ + PP.setSkullSplitterInformed(true); + player.sendMessage(mcLocale.getString("Skills.YourSkullSplitter")); + } + if(!PP.getGigaDrillBreakerInformed() && System.currentTimeMillis() - (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.gigaDrillBreakerCooldown * 1000)){ + PP.setGigaDrillBreakerInformed(true); + player.sendMessage(mcLocale.getString("Skills.YourGigaDrillBreaker")); + } + } + public static void hoeReadinessCheck(Player player) + { + if(LoadProperties.enableOnlyActivateWhenSneaking && !player.isSneaking()) + return; + + PlayerProfile PP = Users.getProfile(player); + if(mcPermissions.getInstance().herbalismAbility(player) && m.isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){ + if(!PP.getGreenTerraMode() && !cooldownOver(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)){ + player.sendMessage(mcLocale.getString("Skills.TooTired") + +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)+"s)"); + return; + } + if(LoadProperties.enableAbilityMessages) + player.sendMessage(mcLocale.getString("Skills.ReadyHoe")); + PP.setHoePreparationATS(System.currentTimeMillis()); + PP.setHoePreparationMode(true); + } + } + public static void monitorSkills(Player player){ + PlayerProfile PP = Users.getProfile(player); + if(PP != null) + { + if(PP.getHoePreparationMode() && System.currentTimeMillis() - (PP.getHoePreparationATS()*1000) >= 4000){ + PP.setHoePreparationMode(false); + player.sendMessage(mcLocale.getString("Skills.LowerHoe")); + } + if(PP.getAxePreparationMode() && System.currentTimeMillis() - (PP.getAxePreparationATS()*1000) >= 4000){ + PP.setAxePreparationMode(false); + player.sendMessage(mcLocale.getString("Skills.LowerAxe")); + } + if(PP.getPickaxePreparationMode() && System.currentTimeMillis() - (PP.getPickaxePreparationATS()*1000) >= 4000){ + PP.setPickaxePreparationMode(false); + player.sendMessage(mcLocale.getString("Skills.LowerPickAxe")); + } + if(PP.getSwordsPreparationMode() && System.currentTimeMillis() - (PP.getSwordsPreparationATS()*1000) >= 4000){ + PP.setSwordsPreparationMode(false); + player.sendMessage(mcLocale.getString("Skills.LowerSword")); + } + if(PP.getFistsPreparationMode() && System.currentTimeMillis() - (PP.getFistsPreparationATS()*1000) >= 4000){ + PP.setFistsPreparationMode(false); + player.sendMessage(mcLocale.getString("Skills.LowerFists")); + } + if(PP.getShovelPreparationMode() && System.currentTimeMillis() - (PP.getShovelPreparationATS()*1000) >= 4000){ + PP.setShovelPreparationMode(false); + player.sendMessage(mcLocale.getString("Skills.LowerShovel")); + } + + /* + * HERBALISM ABILITY + */ + if(mcPermissions.getInstance().herbalismAbility(player)){ + if(PP.getGreenTerraMode() && (PP.getGreenTerraDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ + PP.setGreenTerraMode(false); + PP.setGreenTerraInformed(false); + player.sendMessage(mcLocale.getString("Skills.GreenTerraOff")); + } + } + /* + * AXES ABILITY + */ + if(mcPermissions.getInstance().axesAbility(player)){ + if(PP.getSkullSplitterMode() && (PP.getSkullSplitterDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ + PP.setSkullSplitterMode(false); + PP.setSkullSplitterInformed(false); + player.sendMessage(mcLocale.getString("Skills.SkullSplitterOff")); + } + } + /* + * WOODCUTTING ABILITY + */ + if(mcPermissions.getInstance().woodCuttingAbility(player)){ + if(PP.getTreeFellerMode() && (PP.getTreeFellerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ + PP.setTreeFellerMode(false); + PP.setTreeFellerInformed(false); + player.sendMessage(mcLocale.getString("Skills.TreeFellerOff")); + } + } + /* + * MINING ABILITY + */ + if(mcPermissions.getInstance().miningAbility(player)){ + if(PP.getSuperBreakerMode() && (PP.getSuperBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ + PP.setSuperBreakerMode(false); + PP.setSuperBreakerInformed(false); + player.sendMessage(mcLocale.getString("Skills.SuperBreakerOff")); + } + } + /* + * EXCAVATION ABILITY + */ + if(mcPermissions.getInstance().excavationAbility(player)){ + if(PP.getGigaDrillBreakerMode() && (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ + PP.setGigaDrillBreakerMode(false); + PP.setGigaDrillBreakerInformed(false); + player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOff")); + } + } + /* + * SWORDS ABILITY + */ + if(mcPermissions.getInstance().swordsAbility(player)){ + if(PP.getSerratedStrikesMode() && (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ + PP.setSerratedStrikesMode(false); + PP.setSerratedStrikesInformed(false); + player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOff")); + } + } + /* + * UNARMED ABILITY + */ + if(mcPermissions.getInstance().unarmedAbility(player)){ + if(PP.getBerserkMode() && (PP.getBerserkDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ + PP.setBerserkMode(false); + PP.setBerserkInformed(false); + player.sendMessage(mcLocale.getString("Skills.BerserkOff")); + } + } + } + } + public static void abilityActivationCheck(Player player) + { + if(LoadProperties.enableOnlyActivateWhenSneaking && !player.isSneaking()) + return; + + PlayerProfile PP = Users.getProfile(player); + if(PP != null) + { + if(!PP.getAbilityUse() || PP.getSuperBreakerMode() || PP.getSerratedStrikesMode() || PP.getTreeFellerMode() || PP.getGreenTerraMode() || PP.getBerserkMode() || PP.getGigaDrillBreakerMode()) + return; + if(mcPermissions.getInstance().miningAbility(player) && m.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode()) + { + if(!PP.getSuperBreakerMode() && !cooldownOver(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown)) + { + player.sendMessage(mcLocale.getString("Skills.TooTired") + +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown)+"s)"); + return; + } + if(LoadProperties.enableAbilityMessages) + 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()*1000), LoadProperties.gigaDrillBreakerCooldown)) + { + player.sendMessage(mcLocale.getString("Skills.TooTired") + +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000), LoadProperties.gigaDrillBreakerCooldown)+"s)"); + return; + } + if(LoadProperties.enableAbilityMessages) + 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()*1000), LoadProperties.serratedStrikeCooldown)) + { + player.sendMessage(mcLocale.getString("Skills.TooTired") + +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSerratedStrikesDeactivatedTimeStamp()*1000), LoadProperties.serratedStrikeCooldown)+"s)"); + return; + } + if(LoadProperties.enableAbilityMessages) + 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()*1000), LoadProperties.berserkCooldown)) + { + player.sendMessage(mcLocale.getString("Skills.TooTired") + +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getBerserkDeactivatedTimeStamp()*1000), LoadProperties.berserkCooldown)+"s)"); + return; + } + if(LoadProperties.enableAbilityMessages) + player.sendMessage(mcLocale.getString("Skills.ReadyFists")); + PP.setFistsPreparationATS(System.currentTimeMillis()); + PP.setFistsPreparationMode(true); + } + if((mcPermissions.getInstance().axesAbility(player) || mcPermissions.getInstance().woodCuttingAbility(player)) && !PP.getAxePreparationMode()) + { + if(m.isAxes(player.getItemInHand())) + { + if(LoadProperties.enableAbilityMessages) + player.sendMessage(mcLocale.getString("Skills.ReadyAxe")); + PP.setAxePreparationATS(System.currentTimeMillis()); + PP.setAxePreparationMode(true); + } + } + } + } + + public static void ProcessLeaderboardUpdate(SkillType skillType, Player player) + { + PlayerProfile PP = Users.getProfile(player); + + PlayerStat ps = new PlayerStat(); + if(skillType != SkillType.ALL) + ps.statVal = PP.getSkillLevel(skillType); + else + ps.statVal = m.getPowerLevel(player); + ps.name = player.getName(); + Leaderboard.updateLeaderboard(ps, skillType); + } + + public static void XpCheckSkill(SkillType skillType, Player player) + { + PlayerProfile PP = Users.getProfile(player); + + if(PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) + { + int skillups = 0; + + while(PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) + { + skillups++; + PP.removeXP(skillType, PP.getXpToLevel(skillType)); + PP.skillUp(skillType, 1); + } + + if(!LoadProperties.useMySQL) + { + ProcessLeaderboardUpdate(skillType, player); + ProcessLeaderboardUpdate(SkillType.ALL, player); + } + + String capitalized = m.getCapitalized(skillType.toString()); + + //Contrib stuff + + if(LoadProperties.spoutEnabled && player instanceof SpoutPlayer) + { + SpoutPlayer sPlayer = SpoutManager.getPlayer(player); + if(sPlayer.isSpoutCraftEnabled()) + { + SpoutStuff.levelUpNotification(skillType, sPlayer); + } else + { + player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); + } + } + else + player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); + } + if(LoadProperties.xpbar && LoadProperties.spoutEnabled) + { + SpoutPlayer sPlayer = SpoutManager.getPlayer(player); + if(sPlayer.isSpoutCraftEnabled()) + { + SpoutStuff.updateXpBar(sPlayer); + } + } + } + + public static void XpCheckAll(Player player) + { + for(SkillType x : SkillType.values()) + { + //Don't want to do anything with this one + if(x == SkillType.ALL) + continue; + + XpCheckSkill(x, player); + } + } + public static SkillType getSkillType(String skillName) + { + for(SkillType x : SkillType.values()) + { + if(x.toString().equals(skillName.toUpperCase())) + return x; + } + return null; + } + public static boolean isSkill(String skillname){ + skillname = skillname.toUpperCase(); + for(SkillType x : SkillType.values()) + { + if(x.toString().equals(skillname)) + return true; + } + return false; + } + public static void arrowRetrievalCheck(Entity entity, mcMMO plugin) + { + if(plugin.misc.arrowTracker.containsKey(entity)) + { + Integer x = 0; + while(x < plugin.misc.arrowTracker.get(entity)) + { + m.mcDropItem(entity.getLocation(), 262); + x++; + } + } + plugin.misc.arrowTracker.remove(entity); + } + public static String getSkillStats(String skillname, Integer level, Integer XP, Integer XPToLevel) + { + ChatColor parColor = ChatColor.DARK_AQUA; + ChatColor xpColor = ChatColor.GRAY; + ChatColor LvlColor = ChatColor.GREEN; + ChatColor skillColor = ChatColor.YELLOW; + + return skillColor+skillname+LvlColor+level+parColor+" XP"+"("+xpColor+XP+parColor+"/"+xpColor+XPToLevel+parColor+")"; + } + public static boolean hasCombatSkills(Player player) + { + if(mcPermissions.getInstance().axes(player) || mcPermissions.getInstance().archery(player) || mcPermissions.getInstance().swords(player) || mcPermissions.getInstance().taming(player) || mcPermissions.getInstance().unarmed(player)) + return true; + else + return false; + } + public static boolean hasGatheringSkills(Player player) + { + if(mcPermissions.getInstance().excavation(player) || mcPermissions.getInstance().herbalism(player) || mcPermissions.getInstance().mining(player) || mcPermissions.getInstance().woodcutting(player)) + return true; + else + return false; + } + public static boolean hasMiscSkills(Player player) + { + if(mcPermissions.getInstance().acrobatics(player) || mcPermissions.getInstance().repair(player)) + return true; + else + return false; + } +} diff --git a/src/com/gmail/nossr50/skills/Swords.java b/src/main/java/com/gmail/nossr50/skills/Swords.java similarity index 96% rename from src/com/gmail/nossr50/skills/Swords.java rename to src/main/java/com/gmail/nossr50/skills/Swords.java index 1f614ad84..204f98363 100644 --- a/src/com/gmail/nossr50/skills/Swords.java +++ b/src/main/java/com/gmail/nossr50/skills/Swords.java @@ -1,252 +1,252 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Arrow; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Wolf; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import com.gmail.nossr50.Combat; -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.mcPermissions; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.party.Party; - -public class Swords -{ - public static void serratedStrikesActivationCheck(Player player){ - PlayerProfile PP = Users.getProfile(player); - if(m.isSwords(player.getItemInHand())) - { - if(PP.getSwordsPreparationMode()) - { - PP.setSwordsPreparationMode(false); - } - int ticks = 2; - int x = PP.getSkillLevel(SkillType.SWORDS); - while(x >= 50) - { - x-=50; - ticks++; - } - - if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() < System.currentTimeMillis()) - { - player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOn")); - for(Player y : player.getWorld().getPlayers()) - { - if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(mcLocale.getString("Skills.SerratedStrikesPlayer", new Object[] {player.getName()})); - } - PP.setSerratedStrikesActivatedTimeStamp(System.currentTimeMillis()); - PP.setSerratedStrikesDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); - PP.setSerratedStrikesMode(true); - } - - } - } - - public static void bleedCheck(Player attacker, LivingEntity x, mcMMO pluginx) - { - PlayerProfile PPa = Users.getProfile(attacker); - - if(x instanceof Wolf) - { - Wolf wolf = (Wolf)x; - if(Taming.getOwner(wolf, pluginx) != null) - { - if(Taming.getOwner(wolf, pluginx) == attacker) - return; - if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx))) - return; - } - } - if(mcPermissions.getInstance().swords(attacker) && m.isSwords(attacker.getItemInHand())){ - if(PPa.getSkillLevel(SkillType.SWORDS) >= 750) - { - if(Math.random() * 1000 >= 750) - { - if(!(x instanceof Player)) - pluginx.misc.addToBleedQue(x); - if(x instanceof Player) - { - Player target = (Player)x; - Users.getProfile(target).addBleedTicks(3); - } - attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**"); - } - } - else if (Math.random() * 1000 <= PPa.getSkillLevel(SkillType.SWORDS)) - { - if(!(x instanceof Player)) - pluginx.misc.addToBleedQue(x); - if(x instanceof Player) - { - Player target = (Player)x; - Users.getProfile(target).addBleedTicks(2); - } - attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**"); - } - } - } - public static void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, mcMMO pluginx) - { - int targets = 0; - - if(event.getEntity() instanceof LivingEntity) - { - LivingEntity x = (LivingEntity) event.getEntity(); - targets = m.getTier(attacker); - - for(Entity derp : x.getWorld().getEntities()) - { - if(m.getDistance(x.getLocation(), derp.getLocation()) < 5) - { - - - //Make sure the Wolf is not friendly - if(derp instanceof Wolf) - { - Wolf hurrDurr = (Wolf)derp; - if(Taming.getOwner(hurrDurr, pluginx) == attacker) - continue; - if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx))) - continue; - } - //Damage nearby LivingEntities - if(derp instanceof LivingEntity && targets >= 1) - { - if(derp instanceof Player) - { - Player target = (Player)derp; - - if(target.getName().equals(attacker.getName())) - continue; - - if(Users.getProfile(target).getGodMode()) - continue; - - if(Party.getInstance().inSameParty(attacker, target)) - continue; - if(targets >= 1 && derp.getWorld().getPVP()) - { - target.damage(event.getDamage() / 4); - target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!"); - Users.getProfile(target).addBleedTicks(5); - targets--; - continue; - } - } - else - { - if(!pluginx.misc.bleedTracker.contains(derp)) - pluginx.misc.addToBleedQue((LivingEntity)derp); - - LivingEntity target = (LivingEntity)derp; - target.damage(event.getDamage() / 4); - targets--; - } - } - } - } - } - } - - public static void counterAttackChecks(EntityDamageByEntityEvent event) - { - //Don't want to counter attack arrows - - if(event.getDamager() instanceof Arrow) - return; - - if(event instanceof EntityDamageByEntityEvent) - { - Entity f = ((EntityDamageByEntityEvent) event).getDamager(); - if(event.getEntity() instanceof Player) - { - Player defender = (Player)event.getEntity(); - PlayerProfile PPd = Users.getProfile(defender); - if(m.isSwords(defender.getItemInHand()) && mcPermissions.getInstance().swords(defender)) - { - if(PPd.getSkillLevel(SkillType.SWORDS) >= 600) - { - if(Math.random() * 2000 <= 600) - { - Combat.dealDamage(f, event.getDamage() / 2); - defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**"); - if(f instanceof Player) - ((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!"); - } - } - else if (Math.random() * 2000 <= PPd.getSkillLevel(SkillType.SWORDS)) - { - Combat.dealDamage(f, event.getDamage() / 2); - defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**"); - if(f instanceof Player) - ((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!"); - } - } - } - } - } - public static void bleedSimulate(mcMMO plugin) - { - //Add items from Que list to BleedTrack list - - for(LivingEntity x : plugin.misc.bleedQue) - { - plugin.misc.bleedTracker.add(x); - } - - //Clear list - plugin.misc.bleedQue = new LivingEntity[plugin.misc.bleedQue.length]; - plugin.misc.bleedQuePos = 0; - - //Cleanup any dead entities from the list - for(LivingEntity x : plugin.misc.bleedRemovalQue) - { - plugin.misc.bleedTracker.remove(x); - } - - //Clear bleed removal list - plugin.misc.bleedRemovalQue = new LivingEntity[plugin.misc.bleedRemovalQue.length]; - plugin.misc.bleedRemovalQuePos = 0; - - //Bleed monsters/animals - for(LivingEntity x : plugin.misc.bleedTracker) - { - if(x == null){continue;} - - if(x.getHealth() <= 0) - { - plugin.misc.addToBleedRemovalQue(x); - continue; - } - else - { - x.damage(2); - } - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Wolf; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import com.gmail.nossr50.Combat; +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.party.Party; + +public class Swords +{ + public static void serratedStrikesActivationCheck(Player player){ + PlayerProfile PP = Users.getProfile(player); + if(m.isSwords(player.getItemInHand())) + { + if(PP.getSwordsPreparationMode()) + { + PP.setSwordsPreparationMode(false); + } + int ticks = 2; + int x = PP.getSkillLevel(SkillType.SWORDS); + while(x >= 50) + { + x-=50; + ticks++; + } + + if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() < System.currentTimeMillis()) + { + player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOn")); + for(Player y : player.getWorld().getPlayers()) + { + if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) + y.sendMessage(mcLocale.getString("Skills.SerratedStrikesPlayer", new Object[] {player.getName()})); + } + PP.setSerratedStrikesActivatedTimeStamp(System.currentTimeMillis()); + PP.setSerratedStrikesDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); + PP.setSerratedStrikesMode(true); + } + + } + } + + public static void bleedCheck(Player attacker, LivingEntity x, mcMMO pluginx) + { + PlayerProfile PPa = Users.getProfile(attacker); + + if(x instanceof Wolf) + { + Wolf wolf = (Wolf)x; + if(Taming.getOwner(wolf, pluginx) != null) + { + if(Taming.getOwner(wolf, pluginx) == attacker) + return; + if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx))) + return; + } + } + if(mcPermissions.getInstance().swords(attacker) && m.isSwords(attacker.getItemInHand())){ + if(PPa.getSkillLevel(SkillType.SWORDS) >= 750) + { + if(Math.random() * 1000 >= 750) + { + if(!(x instanceof Player)) + pluginx.misc.addToBleedQue(x); + if(x instanceof Player) + { + Player target = (Player)x; + Users.getProfile(target).addBleedTicks(3); + } + attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**"); + } + } + else if (Math.random() * 1000 <= PPa.getSkillLevel(SkillType.SWORDS)) + { + if(!(x instanceof Player)) + pluginx.misc.addToBleedQue(x); + if(x instanceof Player) + { + Player target = (Player)x; + Users.getProfile(target).addBleedTicks(2); + } + attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**"); + } + } + } + public static void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, mcMMO pluginx) + { + int targets = 0; + + if(event.getEntity() instanceof LivingEntity) + { + LivingEntity x = (LivingEntity) event.getEntity(); + targets = m.getTier(attacker); + + for(Entity derp : x.getWorld().getEntities()) + { + if(m.getDistance(x.getLocation(), derp.getLocation()) < 5) + { + + + //Make sure the Wolf is not friendly + if(derp instanceof Wolf) + { + Wolf hurrDurr = (Wolf)derp; + if(Taming.getOwner(hurrDurr, pluginx) == attacker) + continue; + if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx))) + continue; + } + //Damage nearby LivingEntities + if(derp instanceof LivingEntity && targets >= 1) + { + if(derp instanceof Player) + { + Player target = (Player)derp; + + if(target.getName().equals(attacker.getName())) + continue; + + if(Users.getProfile(target).getGodMode()) + continue; + + if(Party.getInstance().inSameParty(attacker, target)) + continue; + if(targets >= 1 && derp.getWorld().getPVP()) + { + target.damage(event.getDamage() / 4); + target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!"); + Users.getProfile(target).addBleedTicks(5); + targets--; + continue; + } + } + else + { + if(!pluginx.misc.bleedTracker.contains(derp)) + pluginx.misc.addToBleedQue((LivingEntity)derp); + + LivingEntity target = (LivingEntity)derp; + target.damage(event.getDamage() / 4); + targets--; + } + } + } + } + } + } + + public static void counterAttackChecks(EntityDamageByEntityEvent event) + { + //Don't want to counter attack arrows + + if(event.getDamager() instanceof Arrow) + return; + + if(event instanceof EntityDamageByEntityEvent) + { + Entity f = ((EntityDamageByEntityEvent) event).getDamager(); + if(event.getEntity() instanceof Player) + { + Player defender = (Player)event.getEntity(); + PlayerProfile PPd = Users.getProfile(defender); + if(m.isSwords(defender.getItemInHand()) && mcPermissions.getInstance().swords(defender)) + { + if(PPd.getSkillLevel(SkillType.SWORDS) >= 600) + { + if(Math.random() * 2000 <= 600) + { + Combat.dealDamage(f, event.getDamage() / 2); + defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**"); + if(f instanceof Player) + ((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!"); + } + } + else if (Math.random() * 2000 <= PPd.getSkillLevel(SkillType.SWORDS)) + { + Combat.dealDamage(f, event.getDamage() / 2); + defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**"); + if(f instanceof Player) + ((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!"); + } + } + } + } + } + public static void bleedSimulate(mcMMO plugin) + { + //Add items from Que list to BleedTrack list + + for(LivingEntity x : plugin.misc.bleedQue) + { + plugin.misc.bleedTracker.add(x); + } + + //Clear list + plugin.misc.bleedQue = new LivingEntity[plugin.misc.bleedQue.length]; + plugin.misc.bleedQuePos = 0; + + //Cleanup any dead entities from the list + for(LivingEntity x : plugin.misc.bleedRemovalQue) + { + plugin.misc.bleedTracker.remove(x); + } + + //Clear bleed removal list + plugin.misc.bleedRemovalQue = new LivingEntity[plugin.misc.bleedRemovalQue.length]; + plugin.misc.bleedRemovalQuePos = 0; + + //Bleed monsters/animals + for(LivingEntity x : plugin.misc.bleedTracker) + { + if(x == null){continue;} + + if(x.getHealth() <= 0) + { + plugin.misc.addToBleedRemovalQue(x); + continue; + } + else + { + x.damage(2); + } + } + } +} diff --git a/src/com/gmail/nossr50/skills/Taming.java b/src/main/java/com/gmail/nossr50/skills/Taming.java similarity index 96% rename from src/com/gmail/nossr50/skills/Taming.java rename to src/main/java/com/gmail/nossr50/skills/Taming.java index 06e3bfabe..8bcf69476 100644 --- a/src/com/gmail/nossr50/skills/Taming.java +++ b/src/main/java/com/gmail/nossr50/skills/Taming.java @@ -1,70 +1,70 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import org.bukkit.entity.AnimalTamer; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Wolf; -import org.bukkit.plugin.Plugin; - -public class Taming -{ - public static boolean ownerOnline(Wolf theWolf, Plugin pluginx) - { - for(Player x : pluginx.getServer().getOnlinePlayers()) - { - if(x instanceof AnimalTamer) - { - AnimalTamer tamer = (AnimalTamer)x; - if(theWolf.getOwner() == tamer) - return true; - } - } - return false; - } - - public static Player getOwner(Entity wolf, Plugin pluginx) - { - if(wolf instanceof Wolf) - { - Wolf theWolf = (Wolf)wolf; - for(Player x : pluginx.getServer().getOnlinePlayers()) - { - if(x instanceof AnimalTamer && x.isOnline()) - { - AnimalTamer tamer = (AnimalTamer)x; - if(theWolf.getOwner() == tamer) - return x; - } - } - return null; - } - return null; - } - - public static String getOwnerName(Wolf theWolf) - { - Player owner = (Player)theWolf.getOwner(); - if(owner != null) - { - return owner.getName(); - } - else - return "Offline Master"; - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import org.bukkit.entity.AnimalTamer; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Wolf; +import org.bukkit.plugin.Plugin; + +public class Taming +{ + public static boolean ownerOnline(Wolf theWolf, Plugin pluginx) + { + for(Player x : pluginx.getServer().getOnlinePlayers()) + { + if(x instanceof AnimalTamer) + { + AnimalTamer tamer = (AnimalTamer)x; + if(theWolf.getOwner() == tamer) + return true; + } + } + return false; + } + + public static Player getOwner(Entity wolf, Plugin pluginx) + { + if(wolf instanceof Wolf) + { + Wolf theWolf = (Wolf)wolf; + for(Player x : pluginx.getServer().getOnlinePlayers()) + { + if(x instanceof AnimalTamer && x.isOnline()) + { + AnimalTamer tamer = (AnimalTamer)x; + if(theWolf.getOwner() == tamer) + return x; + } + } + return null; + } + return null; + } + + public static String getOwnerName(Wolf theWolf) + { + Player owner = (Player)theWolf.getOwner(); + if(owner != null) + { + return owner.getName(); + } + else + return "Offline Master"; + } +} diff --git a/src/com/gmail/nossr50/skills/Unarmed.java b/src/main/java/com/gmail/nossr50/skills/Unarmed.java similarity index 97% rename from src/com/gmail/nossr50/skills/Unarmed.java rename to src/main/java/com/gmail/nossr50/skills/Unarmed.java index 07fdfe56a..63e3be592 100644 --- a/src/com/gmail/nossr50/skills/Unarmed.java +++ b/src/main/java/com/gmail/nossr50/skills/Unarmed.java @@ -1,111 +1,111 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.inventory.ItemStack; -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; - -public class Unarmed { - public static void berserkActivationCheck(Player player) - { - PlayerProfile PP = Users.getProfile(player); - if(player.getItemInHand().getTypeId() == 0) - { - if(PP.getFistsPreparationMode()) - { - PP.setFistsPreparationMode(false); - } - int ticks = 2; - int x = PP.getSkillLevel(SkillType.UNARMED); - while(x >= 50){ - x-=50; - ticks++; - } - - if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)) - { - player.sendMessage(mcLocale.getString("Skills.BerserkOn")); - for(Player y : player.getWorld().getPlayers()) - { - if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(mcLocale.getString("Skills.BerserkPlayer", new Object[] {player.getName()})); - } - PP.setBerserkActivatedTimeStamp(System.currentTimeMillis()); - PP.setBerserkDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); - PP.setBerserkMode(true); - } - } - } - public static void unarmedBonus(Player attacker, EntityDamageByEntityEvent event) - { - PlayerProfile PPa = Users.getProfile(attacker); - int bonus = 0; - if (PPa.getSkillLevel(SkillType.UNARMED) >= 250) - bonus+=2; - if (PPa.getSkillLevel(SkillType.UNARMED) >= 500) - bonus+=4; - event.setDamage(event.getDamage()+bonus); - } - public static void disarmProcCheck(Player attacker, Player defender) - { - PlayerProfile PP = Users.getProfile(attacker); - if(attacker.getItemInHand().getTypeId() == 0) - { - if(PP.getSkillLevel(SkillType.UNARMED) >= 1000) - { - if(Math.random() * 4000 <= 1000) - { - Location loc = defender.getLocation(); - if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0) - { - defender.sendMessage(mcLocale.getString("Skills.Disarmed")); - ItemStack item = defender.getItemInHand(); - if(item != null) - { - loc.getWorld().dropItemNaturally(loc, item); - ItemStack itemx = null; - defender.setItemInHand(itemx); - } - } - } - } else { - if(Math.random() * 4000 <= PP.getSkillLevel(SkillType.UNARMED)){ - Location loc = defender.getLocation(); - if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0) - { - defender.sendMessage(mcLocale.getString("Skills.Disarmed")); - ItemStack item = defender.getItemInHand(); - if(item != null) - { - loc.getWorld().dropItemNaturally(loc, item); - ItemStack itemx = null; - defender.setItemInHand(itemx); - } - } - } - } - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.inventory.ItemStack; +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; + +public class Unarmed { + public static void berserkActivationCheck(Player player) + { + PlayerProfile PP = Users.getProfile(player); + if(player.getItemInHand().getTypeId() == 0) + { + if(PP.getFistsPreparationMode()) + { + PP.setFistsPreparationMode(false); + } + int ticks = 2; + int x = PP.getSkillLevel(SkillType.UNARMED); + while(x >= 50){ + x-=50; + ticks++; + } + + if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)) + { + player.sendMessage(mcLocale.getString("Skills.BerserkOn")); + for(Player y : player.getWorld().getPlayers()) + { + if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) + y.sendMessage(mcLocale.getString("Skills.BerserkPlayer", new Object[] {player.getName()})); + } + PP.setBerserkActivatedTimeStamp(System.currentTimeMillis()); + PP.setBerserkDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); + PP.setBerserkMode(true); + } + } + } + public static void unarmedBonus(Player attacker, EntityDamageByEntityEvent event) + { + PlayerProfile PPa = Users.getProfile(attacker); + int bonus = 0; + if (PPa.getSkillLevel(SkillType.UNARMED) >= 250) + bonus+=2; + if (PPa.getSkillLevel(SkillType.UNARMED) >= 500) + bonus+=4; + event.setDamage(event.getDamage()+bonus); + } + public static void disarmProcCheck(Player attacker, Player defender) + { + PlayerProfile PP = Users.getProfile(attacker); + if(attacker.getItemInHand().getTypeId() == 0) + { + if(PP.getSkillLevel(SkillType.UNARMED) >= 1000) + { + if(Math.random() * 4000 <= 1000) + { + Location loc = defender.getLocation(); + if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0) + { + defender.sendMessage(mcLocale.getString("Skills.Disarmed")); + ItemStack item = defender.getItemInHand(); + if(item != null) + { + loc.getWorld().dropItemNaturally(loc, item); + ItemStack itemx = null; + defender.setItemInHand(itemx); + } + } + } + } else { + if(Math.random() * 4000 <= PP.getSkillLevel(SkillType.UNARMED)){ + Location loc = defender.getLocation(); + if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0) + { + defender.sendMessage(mcLocale.getString("Skills.Disarmed")); + ItemStack item = defender.getItemInHand(); + if(item != null) + { + loc.getWorld().dropItemNaturally(loc, item); + ItemStack itemx = null; + defender.setItemInHand(itemx); + } + } + } + } + } + } +} diff --git a/src/com/gmail/nossr50/skills/WoodCutting.java b/src/main/java/com/gmail/nossr50/skills/WoodCutting.java similarity index 97% rename from src/com/gmail/nossr50/skills/WoodCutting.java rename to src/main/java/com/gmail/nossr50/skills/WoodCutting.java index 5c4453370..104698f9d 100644 --- a/src/com/gmail/nossr50/skills/WoodCutting.java +++ b/src/main/java/com/gmail/nossr50/skills/WoodCutting.java @@ -1,169 +1,169 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.skills; - -import java.util.ArrayList; - -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.inventory.ItemStack; -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.datatypes.SkillType; -import com.gmail.nossr50.locale.mcLocale; -import com.gmail.nossr50.config.*; - - -public class WoodCutting -{ - static int w = 0; - private static boolean isdone = false; - - public static void woodCuttingProcCheck(Player player, Block block) - { - PlayerProfile PP = Users.getProfile(player); - byte type = block.getData(); - Material mat = Material.getMaterial(block.getTypeId()); - if(player != null) - { - if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.WOODCUTTING)) - { - ItemStack item = new ItemStack(mat, 1, (short) 0, type); - block.getWorld().dropItemNaturally(block.getLocation(), item); - } - } - } - public static void treeFellerCheck(Player player, Block block) - { - PlayerProfile PP = Users.getProfile(player); - if(m.isAxes(player.getItemInHand())) - { - if(block != null) - { - if(!m.abilityBlockCheck(block)) - return; - } - /* - * CHECK FOR AXE PREP MODE - */ - if(PP.getAxePreparationMode()) - { - PP.setAxePreparationMode(false); - } - int ticks = 2; - int x = PP.getSkillLevel(SkillType.WOODCUTTING); - while(x >= 50) - { - x-=50; - ticks++; - } - - if(!PP.getTreeFellerMode() && Skills.cooldownOver(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)) - { - player.sendMessage(mcLocale.getString("Skills.TreeFellerOn")); - for(Player y : player.getWorld().getPlayers()) - { - if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) - y.sendMessage(mcLocale.getString("Skills.TreeFellerPlayer", new Object[] {player.getName()})); - } - PP.setTreeFellerActivatedTimeStamp(System.currentTimeMillis()); - PP.setTreeFellerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); - PP.setTreeFellerMode(true); - } - if(!PP.getTreeFellerMode() && !Skills.cooldownOver(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)){ - player.sendMessage(ChatColor.RED+"You are too tired to use that ability again." - +ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)+"s)"); - } - } - } - public static void treeFeller(Block block, Player player, mcMMO plugin){ - PlayerProfile PP = Users.getProfile(player); - int radius = 1; - if(PP.getSkillLevel(SkillType.WOODCUTTING) >= 500) - radius++; - if(PP.getSkillLevel(SkillType.WOODCUTTING) >= 950) - radius++; - ArrayList blocklist = new ArrayList(); - ArrayList toAdd = new ArrayList(); - if(block != null) - blocklist.add(block); - while(isdone == false){ - addBlocksToTreeFelling(blocklist, toAdd, radius); - } - //This needs to be a hashmap too! - isdone = false; - /* - * Add blocks from the temporary 'toAdd' array list into the 'treeFeller' array list - * We use this temporary list to prevent concurrent modification exceptions - */ - for(Block x : toAdd) - { - if(!plugin.misc.treeFeller.contains(x)) - plugin.misc.treeFeller.add(x); - } - toAdd.clear(); - } - public static void addBlocksToTreeFelling(ArrayList blocklist, ArrayList toAdd, Integer radius) - { - int u = 0; - for (Block x : blocklist) - { - u++; - if(toAdd.contains(x)) - continue; - w = 0; - Location loc = x.getLocation(); - int vx = x.getX(); - int vy = x.getY(); - int vz = x.getZ(); - - /* - * Run through the blocks around the broken block to see if they qualify to be 'felled' - */ - for (int cx = -radius; cx <= radius; cx++) { - for (int cy = -radius; cy <= radius; cy++) { - for (int cz = -radius; cz <= radius; cz++) { - Block blocktarget = loc.getWorld().getBlockAt(vx + cx, vy + cy, vz + cz); - if (!blocklist.contains(blocktarget) && !toAdd.contains(blocktarget) && (blocktarget.getTypeId() == 17 || blocktarget.getTypeId() == 18)) { - toAdd.add(blocktarget); - w++; - } - } - } - } - } - /* - * Add more blocks to blocklist so they can be 'felled' - */ - for(Block xx : toAdd) - { - if(!blocklist.contains(xx)) - blocklist.add(xx); - } - if(u >= blocklist.size()) - { - isdone = true; - } else { - isdone = false; - } - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.skills; + +import java.util.ArrayList; + +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.inventory.ItemStack; +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.datatypes.SkillType; +import com.gmail.nossr50.locale.mcLocale; +import com.gmail.nossr50.config.*; + + +public class WoodCutting +{ + static int w = 0; + private static boolean isdone = false; + + public static void woodCuttingProcCheck(Player player, Block block) + { + PlayerProfile PP = Users.getProfile(player); + byte type = block.getData(); + Material mat = Material.getMaterial(block.getTypeId()); + if(player != null) + { + if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.WOODCUTTING)) + { + ItemStack item = new ItemStack(mat, 1, (short) 0, type); + block.getWorld().dropItemNaturally(block.getLocation(), item); + } + } + } + public static void treeFellerCheck(Player player, Block block) + { + PlayerProfile PP = Users.getProfile(player); + if(m.isAxes(player.getItemInHand())) + { + if(block != null) + { + if(!m.abilityBlockCheck(block)) + return; + } + /* + * CHECK FOR AXE PREP MODE + */ + if(PP.getAxePreparationMode()) + { + PP.setAxePreparationMode(false); + } + int ticks = 2; + int x = PP.getSkillLevel(SkillType.WOODCUTTING); + while(x >= 50) + { + x-=50; + ticks++; + } + + if(!PP.getTreeFellerMode() && Skills.cooldownOver(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)) + { + player.sendMessage(mcLocale.getString("Skills.TreeFellerOn")); + for(Player y : player.getWorld().getPlayers()) + { + if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) + y.sendMessage(mcLocale.getString("Skills.TreeFellerPlayer", new Object[] {player.getName()})); + } + PP.setTreeFellerActivatedTimeStamp(System.currentTimeMillis()); + PP.setTreeFellerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); + PP.setTreeFellerMode(true); + } + if(!PP.getTreeFellerMode() && !Skills.cooldownOver(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)){ + player.sendMessage(ChatColor.RED+"You are too tired to use that ability again." + +ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)+"s)"); + } + } + } + public static void treeFeller(Block block, Player player, mcMMO plugin){ + PlayerProfile PP = Users.getProfile(player); + int radius = 1; + if(PP.getSkillLevel(SkillType.WOODCUTTING) >= 500) + radius++; + if(PP.getSkillLevel(SkillType.WOODCUTTING) >= 950) + radius++; + ArrayList blocklist = new ArrayList(); + ArrayList toAdd = new ArrayList(); + if(block != null) + blocklist.add(block); + while(isdone == false){ + addBlocksToTreeFelling(blocklist, toAdd, radius); + } + //This needs to be a hashmap too! + isdone = false; + /* + * Add blocks from the temporary 'toAdd' array list into the 'treeFeller' array list + * We use this temporary list to prevent concurrent modification exceptions + */ + for(Block x : toAdd) + { + if(!plugin.misc.treeFeller.contains(x)) + plugin.misc.treeFeller.add(x); + } + toAdd.clear(); + } + public static void addBlocksToTreeFelling(ArrayList blocklist, ArrayList toAdd, Integer radius) + { + int u = 0; + for (Block x : blocklist) + { + u++; + if(toAdd.contains(x)) + continue; + w = 0; + Location loc = x.getLocation(); + int vx = x.getX(); + int vy = x.getY(); + int vz = x.getZ(); + + /* + * Run through the blocks around the broken block to see if they qualify to be 'felled' + */ + for (int cx = -radius; cx <= radius; cx++) { + for (int cy = -radius; cy <= radius; cy++) { + for (int cz = -radius; cz <= radius; cz++) { + Block blocktarget = loc.getWorld().getBlockAt(vx + cx, vy + cy, vz + cz); + if (!blocklist.contains(blocktarget) && !toAdd.contains(blocktarget) && (blocktarget.getTypeId() == 17 || blocktarget.getTypeId() == 18)) { + toAdd.add(blocktarget); + w++; + } + } + } + } + } + /* + * Add more blocks to blocklist so they can be 'felled' + */ + for(Block xx : toAdd) + { + if(!blocklist.contains(xx)) + blocklist.add(xx); + } + if(u >= blocklist.size()) + { + isdone = true; + } else { + isdone = false; + } + } +} diff --git a/src/com/gmail/nossr50/spout/SpoutStuff.java b/src/main/java/com/gmail/nossr50/spout/SpoutStuff.java similarity index 96% rename from src/com/gmail/nossr50/spout/SpoutStuff.java rename to src/main/java/com/gmail/nossr50/spout/SpoutStuff.java index 6f81d995b..b82c81843 100644 --- a/src/com/gmail/nossr50/spout/SpoutStuff.java +++ b/src/main/java/com/gmail/nossr50/spout/SpoutStuff.java @@ -1,577 +1,577 @@ -/* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . -*/ -package com.gmail.nossr50.spout; - -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.Event; -import org.bukkit.event.Event.Priority; -import org.getspout.spoutapi.SpoutManager; -import org.getspout.spoutapi.gui.Color; -import org.getspout.spoutapi.keyboard.Keyboard; -import org.getspout.spoutapi.player.SpoutPlayer; -import org.getspout.spoutapi.sound.SoundEffect; -import org.getspout.spoutapi.sound.SoundManager; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.m; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.datatypes.HUDType; -import com.gmail.nossr50.datatypes.HUDmmo; -import com.gmail.nossr50.datatypes.PlayerProfile; -import com.gmail.nossr50.datatypes.popups.PopupMMO; -import com.gmail.nossr50.datatypes.SkillType; -import com.gmail.nossr50.listeners.mcSpoutInputListener; -import com.gmail.nossr50.listeners.mcSpoutListener; -import com.gmail.nossr50.listeners.mcSpoutScreenListener; - -public class SpoutStuff -{ - static mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO"); - - private final static mcSpoutListener spoutListener = new mcSpoutListener(plugin); - private final static mcSpoutInputListener spoutInputListener = new mcSpoutInputListener(plugin); - private final static mcSpoutScreenListener spoutScreenListener = new mcSpoutScreenListener(plugin); - - public static HashMap playerHUDs = new HashMap(); - public static HashMap playerScreens = new HashMap(); - - public static Keyboard keypress; - - public static void writeFile(String theFileName, String theFilePath) - { - try { - File currentFile = new File("plugins/mcMMO/Resources/"+theFilePath+theFileName); - @SuppressWarnings("static-access") - JarFile jar = new JarFile(plugin.mcmmo); - JarEntry entry = jar.getJarEntry("resources/"+theFileName); - InputStream is = jar.getInputStream(entry); - byte[] buf = new byte[2048]; - int nbRead; - OutputStream os = new BufferedOutputStream(new FileOutputStream(currentFile)); - while((nbRead = is.read(buf)) != -1) { - os.write(buf, 0, nbRead); - } - os.flush(); - os.close(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public static void extractFiles() - { - //Setup directories - new File("plugins/mcMMO/Resources/").mkdir(); - new File("plugins/mcMMO/Resources/HUD/").mkdir(); - new File("plugins/mcMMO/Resources/HUD/Standard/").mkdir(); - new File("plugins/mcMMO/Resources/HUD/Retro/").mkdir(); - new File("plugins/mcMMO/Resources/Sound/").mkdir(); - - //Xp Bar images - for(int x =0; x < 255; x++) - { - //String s = File.separator; - String theFilePath = "HUD/Standard/"; - if(x < 10) - { - String theFileName = "xpbar_inc00"+x+".png"; - writeFile(theFileName, theFilePath); - } else if (x < 100) - { - String theFileName = "xpbar_inc0"+x+".png"; - writeFile(theFileName, theFilePath); - } else - { - String theFileName = "xpbar_inc"+x+".png"; - writeFile(theFileName, theFilePath); - } - } - - //Standard XP Icons - - String theFilePathA = "HUD/Standard/"; - String theFilePathB = "HUD/Retro/"; - - for(SkillType y : SkillType.values()) - { - if(y == SkillType.ALL || y == SkillType.ENCHANTING || y == SkillType.ALCHEMY) - continue; - - String theFileNameA = m.getCapitalized(y.toString())+".png"; - String theFileNameB = m.getCapitalized(y.toString())+"_r.png"; - - writeFile(theFileNameA, theFilePathA); - writeFile(theFileNameB, theFilePathB); - } - - //Blank icons - - writeFile("Icon.png", theFilePathA); - writeFile("Icon_r.png", theFilePathB); - - String theSoundFilePath = "Sound/"; - //Repair SFX - writeFile("repair.wav", theSoundFilePath); - writeFile("level.wav", theSoundFilePath); - } - - public static void setupSpoutConfigs() - { - String temp = LoadProperties.readString("Spout.Menu.Key", "KEY_M"); - - for(Keyboard x : Keyboard.values()) - { - if(x.toString().equalsIgnoreCase(temp)) - { - keypress = x; - } - } - - if(keypress == null) - { - System.out.println("Invalid KEY for Spout.Menu.Key, using KEY_M"); - keypress = Keyboard.KEY_M; - } - } - public static ArrayList getFiles() - { - ArrayList files = new ArrayList(); - String dir = "plugins/mcMMO/Resources/"; - int x = 0; - - //XP BAR - while(x < 255) - { - if(x < 10) - { - files.add(new File(dir+"HUD/Standard/xpbar_inc00"+x+".png")); - } else if (x < 100) - { - files.add(new File(dir+"HUD/Standard/xpbar_inc0"+x+".png")); - } else - { - files.add(new File(dir+"HUD/Standard/xpbar_inc"+x+".png")); - } - x++; - } - - //Standard XP Icons - for(SkillType y : SkillType.values()) - { - if(y == SkillType.ALL || y == SkillType.ENCHANTING || y == SkillType.ALCHEMY) - continue; - files.add(new File(dir+"HUD/Standard/"+m.getCapitalized(y.toString())+".png")); - files.add(new File(dir+"HUD/Retro/"+m.getCapitalized(y.toString())+"_r.png")); - } - - //Blank icons - files.add(new File(dir+"HUD/Standard/Icon.png")); - files.add(new File(dir+"HUD/Retro/Icon_r.png")); - //Repair SFX - files.add(new File(dir+"Sound/repair.wav")); - //Level SFX - files.add(new File(dir+"Sound/level.wav")); - - return files; - } - public static void registerCustomEvent() - { - Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutListener, Priority.Normal, plugin); - Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutInputListener, Priority.Normal, plugin); - Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutScreenListener, Priority.Normal, plugin); - } - - public static Color getRetroColor(SkillType type) - { - switch(type) - { - case ACROBATICS: - return new Color((float) LoadProperties.acrobatics_r, (float) LoadProperties.acrobatics_g, (float) LoadProperties.acrobatics_b, 1); - case ARCHERY: - return new Color((float) LoadProperties.archery_r, (float)LoadProperties.archery_g, (float)LoadProperties.archery_b, 1f); - case AXES: - return new Color((float) LoadProperties.axes_r, (float)LoadProperties.axes_g, (float)LoadProperties.axes_b, 1f); - case EXCAVATION: - return new Color((float)LoadProperties.excavation_r, (float)LoadProperties.excavation_g, (float)LoadProperties.excavation_b, 1f); - case HERBALISM: - return new Color((float)LoadProperties.herbalism_r, (float)LoadProperties.herbalism_g, (float)LoadProperties.herbalism_b, 1f); - case MINING: - return new Color((float)LoadProperties.mining_r, (float)LoadProperties.mining_g, (float)LoadProperties.mining_b, 1f); - case REPAIR: - return new Color((float)LoadProperties.repair_r, (float)LoadProperties.repair_g, (float)LoadProperties.repair_b, 1f); - case SWORDS: - return new Color((float)LoadProperties.swords_r, (float)LoadProperties.swords_g, (float)LoadProperties.swords_b, 1f); - case TAMING: - return new Color((float)LoadProperties.taming_r, (float)LoadProperties.taming_g, (float)LoadProperties.taming_b, 1f); - case UNARMED: - return new Color((float)LoadProperties.unarmed_r, (float)LoadProperties.unarmed_g, (float)LoadProperties.unarmed_b, 1f); - case WOODCUTTING: - return new Color((float)LoadProperties.woodcutting_r, (float)LoadProperties.woodcutting_g, (float)LoadProperties.woodcutting_b, 1f); - case FISHING: - return new Color((float)LoadProperties.fishing_r, (float)LoadProperties.fishing_g, (float)LoadProperties.fishing_b, 1f); - default: - return new Color(0.3f, 0.3f, 0.75f, 1f); - } - } - public static SpoutPlayer getSpoutPlayer(String playerName) - { - for(Player x : Bukkit.getServer().getOnlinePlayers()) - { - if(x.getName().equalsIgnoreCase(playerName)) - { - return SpoutManager.getPlayer(x); - } - } - return null; - } - - public static void playSoundForPlayer(SoundEffect effect, Player player, Location location) - { - //Contrib stuff - SoundManager SM = SpoutManager.getSoundManager(); - SpoutPlayer sPlayer = SpoutManager.getPlayer(player); - SM.playSoundEffect(sPlayer, effect, location); - } - - public static void playRepairNoise(Player player) - { - SoundManager SM = SpoutManager.getSoundManager(); - SpoutPlayer sPlayer = SpoutManager.getPlayer(player); - SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "http://mcmmo.rycochet.net/mcmmo/Sound/repair.wav", false); - } - - public static void playLevelUpNoise(Player player) - { - SoundManager SM = SpoutManager.getSoundManager(); - SpoutPlayer sPlayer = SpoutManager.getPlayer(player); - SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "http://mcmmo.rycochet.net/mcmmo/Sound/level.wav", false); - } - - public static void levelUpNotification(SkillType skillType, SpoutPlayer sPlayer) - { - PlayerProfile PP = Users.getProfile(sPlayer); - - Material mat = null; - switch(skillType) - { - case TAMING: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.PORK; - break; - case 2: - mat = Material.PORK; - break; - case 3: - mat = Material.GRILLED_PORK; - break; - case 4: - mat = Material.GRILLED_PORK; - break; - case 5: - mat = Material.BONE; - break; - } - break; - case MINING: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.COAL_ORE; - break; - case 2: - mat = Material.IRON_ORE; - break; - case 3: - mat = Material.GOLD_ORE; - break; - case 4: - mat = Material.LAPIS_ORE; - break; - case 5: - mat = Material.DIAMOND_ORE; - break; - } - break; - case WOODCUTTING: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.WOOD; - break; - case 2: - mat = Material.WOOD; - break; - case 3: - mat = Material.WOOD; - break; - case 4: - mat = Material.LOG; - break; - case 5: - mat = Material.LOG; - break; - } - break; - case REPAIR: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.COBBLESTONE; - break; - case 2: - mat = Material.IRON_BLOCK; - break; - case 3: - mat = Material.GOLD_BLOCK; - break; - case 4: - mat = Material.LAPIS_BLOCK; - break; - case 5: - mat = Material.DIAMOND_BLOCK; - break; - } - break; - case HERBALISM: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.YELLOW_FLOWER; - break; - case 2: - mat = Material.RED_ROSE; - break; - case 3: - mat = Material.BROWN_MUSHROOM; - break; - case 4: - mat = Material.RED_MUSHROOM; - break; - case 5: - mat = Material.PUMPKIN; - break; - } - break; - case ACROBATICS: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.LEATHER_BOOTS; - break; - case 2: - mat = Material.CHAINMAIL_BOOTS; - break; - case 3: - mat = Material.IRON_BOOTS; - break; - case 4: - mat = Material.GOLD_BOOTS; - break; - case 5: - mat = Material.DIAMOND_BOOTS; - break; - } - break; - case SWORDS: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.WOOD_SWORD; - break; - case 2: - mat = Material.STONE_SWORD; - break; - case 3: - mat = Material.IRON_SWORD; - break; - case 4: - mat = Material.GOLD_SWORD; - break; - case 5: - mat = Material.DIAMOND_SWORD; - break; - } - break; - case ARCHERY: - mat = Material.ARROW; - break; - case UNARMED: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.LEATHER_HELMET; - break; - case 2: - mat = Material.CHAINMAIL_HELMET; - break; - case 3: - mat = Material.IRON_HELMET; - break; - case 4: - mat = Material.GOLD_HELMET; - break; - case 5: - mat = Material.DIAMOND_HELMET; - break; - } - break; - case EXCAVATION: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.WOOD_SPADE; - break; - case 2: - mat = Material.STONE_SPADE; - break; - case 3: - mat = Material.IRON_SPADE; - break; - case 4: - mat = Material.GOLD_SPADE; - break; - case 5: - mat = Material.DIAMOND_SPADE; - break; - } - break; - case AXES: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.WOOD_AXE; - break; - case 2: - mat = Material.STONE_AXE; - break; - case 3: - mat = Material.IRON_AXE; - break; - case 4: - mat = Material.GOLD_AXE; - break; - case 5: - mat = Material.DIAMOND_AXE; - break; - } - break; - case FISHING: - switch(getNotificationTier(PP.getSkillLevel(skillType))) - { - case 1: - mat = Material.RAW_FISH; - break; - case 2: - mat = Material.RAW_FISH; - break; - case 3: - mat = Material.COOKED_FISH; - break; - case 4: - mat = Material.COOKED_FISH; - break; - case 5: - mat = Material.FISHING_ROD; - break; - } - default: - mat = Material.WATCH; - break; - } - sPlayer.sendNotification(ChatColor.GREEN+"Level Up!", ChatColor.YELLOW+m.getCapitalized(skillType.toString())+ChatColor.DARK_AQUA+" ("+ChatColor.GREEN+PP.getSkillLevel(skillType)+ChatColor.DARK_AQUA+")", mat); - playLevelUpNoise(sPlayer); - } - - public static Integer getNotificationTier(Integer level) - { - if(level < 200) - return 1; - else if (level >= 200 && level < 400) - return 2; - else if (level >= 400 && level < 600) - return 3; - else if (level >= 600 && level < 800) - return 4; - else - return 5; - } - - public static Integer getXpInc(int skillxp, int xptolevel, HUDType hud) - { - if(hud == HUDType.STANDARD) - { - double percentage = (double) skillxp/xptolevel; - double inc = 0.0039370078740157; - return (int) (percentage/inc); - } else if (hud == HUDType.RETRO) - { - double percentage = (double) skillxp/xptolevel; - double inc = 0.0079365079365079; - return (int) (percentage/inc); - } else { - return 1; - } - } - - public static void updateXpBar(Player player) - { - playerHUDs.get(player).updateXpBarDisplay(Users.getProfile(player).getHUDType(), player); - } - - public static String getUrlBar(Integer number) - { - if(number.toString().toCharArray().length == 1) - { - return "xpbar_inc00"+number+".png"; - } else if (number.toString().toCharArray().length == 2) - { - return "xpbar_inc0"+number+".png"; - } else { - return "xpbar_inc"+number+".png"; - } - } - - public static String getUrlIcon(SkillType skillType) - { - return m.getCapitalized(skillType.toString())+".png"; - } - public static boolean shouldBeFilled(PlayerProfile PP) - { - return PP.getXpBarInc() < getXpInc(PP.getSkillXpLevel(PP.getLastGained()), PP.getXpToLevel(PP.getLastGained()), HUDType.STANDARD); - } -} +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.spout; + +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.Event.Priority; +import org.getspout.spoutapi.SpoutManager; +import org.getspout.spoutapi.gui.Color; +import org.getspout.spoutapi.keyboard.Keyboard; +import org.getspout.spoutapi.player.SpoutPlayer; +import org.getspout.spoutapi.sound.SoundEffect; +import org.getspout.spoutapi.sound.SoundManager; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.m; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.datatypes.HUDType; +import com.gmail.nossr50.datatypes.HUDmmo; +import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.datatypes.popups.PopupMMO; +import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.listeners.mcSpoutInputListener; +import com.gmail.nossr50.listeners.mcSpoutListener; +import com.gmail.nossr50.listeners.mcSpoutScreenListener; + +public class SpoutStuff +{ + static mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO"); + + private final static mcSpoutListener spoutListener = new mcSpoutListener(plugin); + private final static mcSpoutInputListener spoutInputListener = new mcSpoutInputListener(plugin); + private final static mcSpoutScreenListener spoutScreenListener = new mcSpoutScreenListener(plugin); + + public static HashMap playerHUDs = new HashMap(); + public static HashMap playerScreens = new HashMap(); + + public static Keyboard keypress; + + public static void writeFile(String theFileName, String theFilePath) + { + try { + File currentFile = new File("plugins/mcMMO/Resources/"+theFilePath+theFileName); + @SuppressWarnings("static-access") + JarFile jar = new JarFile(plugin.mcmmo); + JarEntry entry = jar.getJarEntry("resources/"+theFileName); + InputStream is = jar.getInputStream(entry); + byte[] buf = new byte[2048]; + int nbRead; + OutputStream os = new BufferedOutputStream(new FileOutputStream(currentFile)); + while((nbRead = is.read(buf)) != -1) { + os.write(buf, 0, nbRead); + } + os.flush(); + os.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void extractFiles() + { + //Setup directories + new File("plugins/mcMMO/Resources/").mkdir(); + new File("plugins/mcMMO/Resources/HUD/").mkdir(); + new File("plugins/mcMMO/Resources/HUD/Standard/").mkdir(); + new File("plugins/mcMMO/Resources/HUD/Retro/").mkdir(); + new File("plugins/mcMMO/Resources/Sound/").mkdir(); + + //Xp Bar images + for(int x =0; x < 255; x++) + { + //String s = File.separator; + String theFilePath = "HUD/Standard/"; + if(x < 10) + { + String theFileName = "xpbar_inc00"+x+".png"; + writeFile(theFileName, theFilePath); + } else if (x < 100) + { + String theFileName = "xpbar_inc0"+x+".png"; + writeFile(theFileName, theFilePath); + } else + { + String theFileName = "xpbar_inc"+x+".png"; + writeFile(theFileName, theFilePath); + } + } + + //Standard XP Icons + + String theFilePathA = "HUD/Standard/"; + String theFilePathB = "HUD/Retro/"; + + for(SkillType y : SkillType.values()) + { + if(y == SkillType.ALL || y == SkillType.ENCHANTING || y == SkillType.ALCHEMY) + continue; + + String theFileNameA = m.getCapitalized(y.toString())+".png"; + String theFileNameB = m.getCapitalized(y.toString())+"_r.png"; + + writeFile(theFileNameA, theFilePathA); + writeFile(theFileNameB, theFilePathB); + } + + //Blank icons + + writeFile("Icon.png", theFilePathA); + writeFile("Icon_r.png", theFilePathB); + + String theSoundFilePath = "Sound/"; + //Repair SFX + writeFile("repair.wav", theSoundFilePath); + writeFile("level.wav", theSoundFilePath); + } + + public static void setupSpoutConfigs() + { + String temp = LoadProperties.readString("Spout.Menu.Key", "KEY_M"); + + for(Keyboard x : Keyboard.values()) + { + if(x.toString().equalsIgnoreCase(temp)) + { + keypress = x; + } + } + + if(keypress == null) + { + System.out.println("Invalid KEY for Spout.Menu.Key, using KEY_M"); + keypress = Keyboard.KEY_M; + } + } + public static ArrayList getFiles() + { + ArrayList files = new ArrayList(); + String dir = "plugins/mcMMO/Resources/"; + int x = 0; + + //XP BAR + while(x < 255) + { + if(x < 10) + { + files.add(new File(dir+"HUD/Standard/xpbar_inc00"+x+".png")); + } else if (x < 100) + { + files.add(new File(dir+"HUD/Standard/xpbar_inc0"+x+".png")); + } else + { + files.add(new File(dir+"HUD/Standard/xpbar_inc"+x+".png")); + } + x++; + } + + //Standard XP Icons + for(SkillType y : SkillType.values()) + { + if(y == SkillType.ALL || y == SkillType.ENCHANTING || y == SkillType.ALCHEMY) + continue; + files.add(new File(dir+"HUD/Standard/"+m.getCapitalized(y.toString())+".png")); + files.add(new File(dir+"HUD/Retro/"+m.getCapitalized(y.toString())+"_r.png")); + } + + //Blank icons + files.add(new File(dir+"HUD/Standard/Icon.png")); + files.add(new File(dir+"HUD/Retro/Icon_r.png")); + //Repair SFX + files.add(new File(dir+"Sound/repair.wav")); + //Level SFX + files.add(new File(dir+"Sound/level.wav")); + + return files; + } + public static void registerCustomEvent() + { + Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutListener, Priority.Normal, plugin); + Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutInputListener, Priority.Normal, plugin); + Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutScreenListener, Priority.Normal, plugin); + } + + public static Color getRetroColor(SkillType type) + { + switch(type) + { + case ACROBATICS: + return new Color((float) LoadProperties.acrobatics_r, (float) LoadProperties.acrobatics_g, (float) LoadProperties.acrobatics_b, 1); + case ARCHERY: + return new Color((float) LoadProperties.archery_r, (float)LoadProperties.archery_g, (float)LoadProperties.archery_b, 1f); + case AXES: + return new Color((float) LoadProperties.axes_r, (float)LoadProperties.axes_g, (float)LoadProperties.axes_b, 1f); + case EXCAVATION: + return new Color((float)LoadProperties.excavation_r, (float)LoadProperties.excavation_g, (float)LoadProperties.excavation_b, 1f); + case HERBALISM: + return new Color((float)LoadProperties.herbalism_r, (float)LoadProperties.herbalism_g, (float)LoadProperties.herbalism_b, 1f); + case MINING: + return new Color((float)LoadProperties.mining_r, (float)LoadProperties.mining_g, (float)LoadProperties.mining_b, 1f); + case REPAIR: + return new Color((float)LoadProperties.repair_r, (float)LoadProperties.repair_g, (float)LoadProperties.repair_b, 1f); + case SWORDS: + return new Color((float)LoadProperties.swords_r, (float)LoadProperties.swords_g, (float)LoadProperties.swords_b, 1f); + case TAMING: + return new Color((float)LoadProperties.taming_r, (float)LoadProperties.taming_g, (float)LoadProperties.taming_b, 1f); + case UNARMED: + return new Color((float)LoadProperties.unarmed_r, (float)LoadProperties.unarmed_g, (float)LoadProperties.unarmed_b, 1f); + case WOODCUTTING: + return new Color((float)LoadProperties.woodcutting_r, (float)LoadProperties.woodcutting_g, (float)LoadProperties.woodcutting_b, 1f); + case FISHING: + return new Color((float)LoadProperties.fishing_r, (float)LoadProperties.fishing_g, (float)LoadProperties.fishing_b, 1f); + default: + return new Color(0.3f, 0.3f, 0.75f, 1f); + } + } + public static SpoutPlayer getSpoutPlayer(String playerName) + { + for(Player x : Bukkit.getServer().getOnlinePlayers()) + { + if(x.getName().equalsIgnoreCase(playerName)) + { + return SpoutManager.getPlayer(x); + } + } + return null; + } + + public static void playSoundForPlayer(SoundEffect effect, Player player, Location location) + { + //Contrib stuff + SoundManager SM = SpoutManager.getSoundManager(); + SpoutPlayer sPlayer = SpoutManager.getPlayer(player); + SM.playSoundEffect(sPlayer, effect, location); + } + + public static void playRepairNoise(Player player) + { + SoundManager SM = SpoutManager.getSoundManager(); + SpoutPlayer sPlayer = SpoutManager.getPlayer(player); + SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "http://mcmmo.rycochet.net/mcmmo/Sound/repair.wav", false); + } + + public static void playLevelUpNoise(Player player) + { + SoundManager SM = SpoutManager.getSoundManager(); + SpoutPlayer sPlayer = SpoutManager.getPlayer(player); + SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "http://mcmmo.rycochet.net/mcmmo/Sound/level.wav", false); + } + + public static void levelUpNotification(SkillType skillType, SpoutPlayer sPlayer) + { + PlayerProfile PP = Users.getProfile(sPlayer); + + Material mat = null; + switch(skillType) + { + case TAMING: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.PORK; + break; + case 2: + mat = Material.PORK; + break; + case 3: + mat = Material.GRILLED_PORK; + break; + case 4: + mat = Material.GRILLED_PORK; + break; + case 5: + mat = Material.BONE; + break; + } + break; + case MINING: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.COAL_ORE; + break; + case 2: + mat = Material.IRON_ORE; + break; + case 3: + mat = Material.GOLD_ORE; + break; + case 4: + mat = Material.LAPIS_ORE; + break; + case 5: + mat = Material.DIAMOND_ORE; + break; + } + break; + case WOODCUTTING: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.WOOD; + break; + case 2: + mat = Material.WOOD; + break; + case 3: + mat = Material.WOOD; + break; + case 4: + mat = Material.LOG; + break; + case 5: + mat = Material.LOG; + break; + } + break; + case REPAIR: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.COBBLESTONE; + break; + case 2: + mat = Material.IRON_BLOCK; + break; + case 3: + mat = Material.GOLD_BLOCK; + break; + case 4: + mat = Material.LAPIS_BLOCK; + break; + case 5: + mat = Material.DIAMOND_BLOCK; + break; + } + break; + case HERBALISM: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.YELLOW_FLOWER; + break; + case 2: + mat = Material.RED_ROSE; + break; + case 3: + mat = Material.BROWN_MUSHROOM; + break; + case 4: + mat = Material.RED_MUSHROOM; + break; + case 5: + mat = Material.PUMPKIN; + break; + } + break; + case ACROBATICS: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.LEATHER_BOOTS; + break; + case 2: + mat = Material.CHAINMAIL_BOOTS; + break; + case 3: + mat = Material.IRON_BOOTS; + break; + case 4: + mat = Material.GOLD_BOOTS; + break; + case 5: + mat = Material.DIAMOND_BOOTS; + break; + } + break; + case SWORDS: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.WOOD_SWORD; + break; + case 2: + mat = Material.STONE_SWORD; + break; + case 3: + mat = Material.IRON_SWORD; + break; + case 4: + mat = Material.GOLD_SWORD; + break; + case 5: + mat = Material.DIAMOND_SWORD; + break; + } + break; + case ARCHERY: + mat = Material.ARROW; + break; + case UNARMED: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.LEATHER_HELMET; + break; + case 2: + mat = Material.CHAINMAIL_HELMET; + break; + case 3: + mat = Material.IRON_HELMET; + break; + case 4: + mat = Material.GOLD_HELMET; + break; + case 5: + mat = Material.DIAMOND_HELMET; + break; + } + break; + case EXCAVATION: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.WOOD_SPADE; + break; + case 2: + mat = Material.STONE_SPADE; + break; + case 3: + mat = Material.IRON_SPADE; + break; + case 4: + mat = Material.GOLD_SPADE; + break; + case 5: + mat = Material.DIAMOND_SPADE; + break; + } + break; + case AXES: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.WOOD_AXE; + break; + case 2: + mat = Material.STONE_AXE; + break; + case 3: + mat = Material.IRON_AXE; + break; + case 4: + mat = Material.GOLD_AXE; + break; + case 5: + mat = Material.DIAMOND_AXE; + break; + } + break; + case FISHING: + switch(getNotificationTier(PP.getSkillLevel(skillType))) + { + case 1: + mat = Material.RAW_FISH; + break; + case 2: + mat = Material.RAW_FISH; + break; + case 3: + mat = Material.COOKED_FISH; + break; + case 4: + mat = Material.COOKED_FISH; + break; + case 5: + mat = Material.FISHING_ROD; + break; + } + default: + mat = Material.WATCH; + break; + } + sPlayer.sendNotification(ChatColor.GREEN+"Level Up!", ChatColor.YELLOW+m.getCapitalized(skillType.toString())+ChatColor.DARK_AQUA+" ("+ChatColor.GREEN+PP.getSkillLevel(skillType)+ChatColor.DARK_AQUA+")", mat); + playLevelUpNoise(sPlayer); + } + + public static Integer getNotificationTier(Integer level) + { + if(level < 200) + return 1; + else if (level >= 200 && level < 400) + return 2; + else if (level >= 400 && level < 600) + return 3; + else if (level >= 600 && level < 800) + return 4; + else + return 5; + } + + public static Integer getXpInc(int skillxp, int xptolevel, HUDType hud) + { + if(hud == HUDType.STANDARD) + { + double percentage = (double) skillxp/xptolevel; + double inc = 0.0039370078740157; + return (int) (percentage/inc); + } else if (hud == HUDType.RETRO) + { + double percentage = (double) skillxp/xptolevel; + double inc = 0.0079365079365079; + return (int) (percentage/inc); + } else { + return 1; + } + } + + public static void updateXpBar(Player player) + { + playerHUDs.get(player).updateXpBarDisplay(Users.getProfile(player).getHUDType(), player); + } + + public static String getUrlBar(Integer number) + { + if(number.toString().toCharArray().length == 1) + { + return "xpbar_inc00"+number+".png"; + } else if (number.toString().toCharArray().length == 2) + { + return "xpbar_inc0"+number+".png"; + } else { + return "xpbar_inc"+number+".png"; + } + } + + public static String getUrlIcon(SkillType skillType) + { + return m.getCapitalized(skillType.toString())+".png"; + } + public static boolean shouldBeFilled(PlayerProfile PP) + { + return PP.getXpBarInc() < getXpInc(PP.getSkillXpLevel(PP.getLastGained()), PP.getXpToLevel(PP.getLastGained()), HUDType.STANDARD); + } +} diff --git a/src/com/gmail/nossr50/spout/mmoHelper.java b/src/main/java/com/gmail/nossr50/spout/mmoHelper.java similarity index 96% rename from src/com/gmail/nossr50/spout/mmoHelper.java rename to src/main/java/com/gmail/nossr50/spout/mmoHelper.java index 09a088b6a..ee9667c63 100644 --- a/src/com/gmail/nossr50/spout/mmoHelper.java +++ b/src/main/java/com/gmail/nossr50/spout/mmoHelper.java @@ -1,269 +1,269 @@ -/* - * This file is from mmoMinecraft (http://code.google.com/p/mmo-minecraft/). - * - * mmoMinecraft is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.gmail.nossr50.spout; - -import java.util.ArrayList; -import java.util.HashMap; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.World; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Tameable; -import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.Plugin; -import org.bukkit.entity.*; -import org.getspout.spoutapi.gui.Container; -import org.getspout.spoutapi.gui.GenericContainer; -import org.getspout.spoutapi.gui.Widget; -import org.getspout.spoutapi.gui.WidgetAnchor; -import org.getspout.spoutapi.player.SpoutPlayer; - -import com.gmail.nossr50.Users; -import com.gmail.nossr50.config.LoadProperties; -import com.gmail.nossr50.party.Party; -import com.gmail.nossr50.spout.util.GenericLivingEntity; - -public class mmoHelper -{ - - /** - * A map of player containers, each container is their party bar - */ - public static HashMap containers = new HashMap(); - - /** - * Get the percentage health of a Player. - * @param player The Player we're interested in - * @return The percentage of max health - */ - public static int getHealth(Entity player) { - if (player != null && player instanceof LivingEntity) { - try { - return Math.min(((LivingEntity) player).getHealth() * 5, 100); - } catch (Exception e) { - } - } - return 0; - } - - /** - * Get the colour of a LivingEntity target from a player's point of view. - * @param player The player viewing the target - * @param target The target to name - * @return The name to use - */ - public static String getColor(Player player, LivingEntity target) { - if (target instanceof Player) { - if (((Player) target).isOp()) { - return ChatColor.GOLD.toString(); - } - return ChatColor.YELLOW.toString(); - } else { - if (target instanceof Monster) { - if (player != null && player.equals(((Monster) target).getTarget())) { - return ChatColor.RED.toString(); - } else { - return ChatColor.YELLOW.toString(); - } - } else if (target instanceof WaterMob) { - return ChatColor.GREEN.toString(); - } else if (target instanceof Flying) { - return ChatColor.YELLOW.toString(); - } else if (target instanceof Animals) { - if (player != null && player.equals(((Animals) target).getTarget())) { - return ChatColor.RED.toString(); - } else if (target instanceof Tameable) { - Tameable pet = (Tameable) target; - if (pet.isTamed()) { - return ChatColor.GREEN.toString(); - } else { - return ChatColor.YELLOW.toString(); - } - } else { - return ChatColor.GRAY.toString(); - } - } else { - return ChatColor.GRAY.toString(); - } - } - } - - /** - * Get the percentage armour of a Player. - * @param player The Player we're interested in - * @return The percentage of max armour - */ - public static int getArmor(Entity player) { - if (player != null && player instanceof Player) { - int armor = 0, max, multi[] = {15, 30, 40, 15}; - ItemStack inv[] = ((Player) player).getInventory().getArmorContents(); - for (int i = 0; i < inv.length; i++) { - max = inv[i].getType().getMaxDurability(); - if (max >= 0) { - armor += multi[i] * (max - inv[i].getDurability()) / max; - } - } - return armor; - } - return 0; - } - - public static String getSimpleName(LivingEntity target, boolean showOwner) { - String name = ""; - if (target instanceof Player) { - if (LoadProperties.showDisplayName) { - name += ((Player) target).getName(); - } else { - name += ((Player) target).getDisplayName(); - } - } else if (target instanceof HumanEntity) { - name += ((HumanEntity) target).getName(); - } else { - if (target instanceof Tameable) { - if (((Tameable) target).isTamed()) { - if (showOwner && ((Tameable) target).getOwner() instanceof Player) { - if (LoadProperties.showDisplayName) { - name += ((Player) ((Tameable) target).getOwner()).getName() + "'s "; - } else { - name += ((Player) ((Tameable) target).getOwner()).getDisplayName() + "'s "; - } - } else { - name += "Pet "; - } - } - } - if (target instanceof Chicken) { - name += "Chicken"; - } else if (target instanceof Cow) { - name += "Cow"; - } else if (target instanceof Creeper) { - name += "Creeper"; - } else if (target instanceof Ghast) { - name += "Ghast"; - } else if (target instanceof Giant) { - name += "Giant"; - } else if (target instanceof Pig) { - name += "Pig"; - } else if (target instanceof PigZombie) { - name += "PigZombie"; - } else if (target instanceof Sheep) { - name += "Sheep"; - } else if (target instanceof Slime) { - name += "Slime"; - } else if (target instanceof Skeleton) { - name += "Skeleton"; - } else if (target instanceof Spider) { - name += "Spider"; - } else if (target instanceof Squid) { - name += "Squid"; - } else if (target instanceof Wolf) { - name += "Wolf"; - } else if (target instanceof Zombie) { - name += "Zombie"; - } else if (target instanceof Monster) { - name += "Monster"; - } else if (target instanceof Creature) { - name += "Creature"; - } else { - name += "Unknown"; - } - } - return name; - } - - public static LivingEntity[] getPets(HumanEntity player) { - ArrayList pets = new ArrayList(); - if (player != null && (!(player instanceof Player) || ((Player) player).isOnline())) { - String name = player.getName(); - for (World world : Bukkit.getServer().getWorlds()) { - for (LivingEntity entity : world.getLivingEntities()) { - if (entity instanceof Tameable && ((Tameable) entity).isTamed() && ((Tameable) entity).getOwner() instanceof Player) { - if (name.equals(((Player) ((Tameable) entity).getOwner()).getName())) { - pets.add(entity); - } - } - } - } - } - LivingEntity[] list = new LivingEntity[pets.size()]; - pets.toArray(list); - return list; - } - - public static void update(Player player) - { - //boolean show_pets = true; - Container container = containers.get(player); - - if (container != null) - { - int index = 0; - Widget[] bars = container.getChildren(); - for (String name : Party.getInstance().getPartyMembersByName(player).meFirst(player.getName())) - { - GenericLivingEntity bar; - if (index >= bars.length) - { - container.addChild(bar = new GenericLivingEntity()); - } else { - bar = (GenericLivingEntity)bars[index]; - } - bar.setEntity(name, Party.getInstance().isPartyLeader(name, Users.getProfile(Bukkit.getServer().getPlayer(name)).getParty()) ? ChatColor.GREEN + "@" : ""); - //bar.setTargets(show_pets ? getPets(Bukkit.getServer().getPlayer(name)) : null); - index++; - } - while (index < bars.length) { - container.removeChild(bars[index++]); - } - container.updateLayout(); - } - } - - public static void initialize(SpoutPlayer sPlayer, Plugin plugin) - { - GenericContainer container = new GenericContainer(); - - container.setAlign(WidgetAnchor.TOP_LEFT) - .setAnchor(WidgetAnchor.TOP_LEFT) - .setX(3) - .setY(3) - .setWidth(427) - .setHeight(240) - .setFixed(true); - - mmoHelper.containers.put(sPlayer, container); - - sPlayer.getMainScreen().attachWidget(plugin, container); - } - /** - * Update all parties. - */ - public static void updateAll() { - for(Player x : Bukkit.getServer().getOnlinePlayers()) - { - if(Users.getProfile(x).inParty()) - { - update(x); - } - } - } - -} +/* + * This file is from mmoMinecraft (http://code.google.com/p/mmo-minecraft/). + * + * mmoMinecraft is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.gmail.nossr50.spout; + +import java.util.ArrayList; +import java.util.HashMap; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.World; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Tameable; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.entity.*; +import org.getspout.spoutapi.gui.Container; +import org.getspout.spoutapi.gui.GenericContainer; +import org.getspout.spoutapi.gui.Widget; +import org.getspout.spoutapi.gui.WidgetAnchor; +import org.getspout.spoutapi.player.SpoutPlayer; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.party.Party; +import com.gmail.nossr50.spout.util.GenericLivingEntity; + +public class mmoHelper +{ + + /** + * A map of player containers, each container is their party bar + */ + public static HashMap containers = new HashMap(); + + /** + * Get the percentage health of a Player. + * @param player The Player we're interested in + * @return The percentage of max health + */ + public static int getHealth(Entity player) { + if (player != null && player instanceof LivingEntity) { + try { + return Math.min(((LivingEntity) player).getHealth() * 5, 100); + } catch (Exception e) { + } + } + return 0; + } + + /** + * Get the colour of a LivingEntity target from a player's point of view. + * @param player The player viewing the target + * @param target The target to name + * @return The name to use + */ + public static String getColor(Player player, LivingEntity target) { + if (target instanceof Player) { + if (((Player) target).isOp()) { + return ChatColor.GOLD.toString(); + } + return ChatColor.YELLOW.toString(); + } else { + if (target instanceof Monster) { + if (player != null && player.equals(((Monster) target).getTarget())) { + return ChatColor.RED.toString(); + } else { + return ChatColor.YELLOW.toString(); + } + } else if (target instanceof WaterMob) { + return ChatColor.GREEN.toString(); + } else if (target instanceof Flying) { + return ChatColor.YELLOW.toString(); + } else if (target instanceof Animals) { + if (player != null && player.equals(((Animals) target).getTarget())) { + return ChatColor.RED.toString(); + } else if (target instanceof Tameable) { + Tameable pet = (Tameable) target; + if (pet.isTamed()) { + return ChatColor.GREEN.toString(); + } else { + return ChatColor.YELLOW.toString(); + } + } else { + return ChatColor.GRAY.toString(); + } + } else { + return ChatColor.GRAY.toString(); + } + } + } + + /** + * Get the percentage armour of a Player. + * @param player The Player we're interested in + * @return The percentage of max armour + */ + public static int getArmor(Entity player) { + if (player != null && player instanceof Player) { + int armor = 0, max, multi[] = {15, 30, 40, 15}; + ItemStack inv[] = ((Player) player).getInventory().getArmorContents(); + for (int i = 0; i < inv.length; i++) { + max = inv[i].getType().getMaxDurability(); + if (max >= 0) { + armor += multi[i] * (max - inv[i].getDurability()) / max; + } + } + return armor; + } + return 0; + } + + public static String getSimpleName(LivingEntity target, boolean showOwner) { + String name = ""; + if (target instanceof Player) { + if (LoadProperties.showDisplayName) { + name += ((Player) target).getName(); + } else { + name += ((Player) target).getDisplayName(); + } + } else if (target instanceof HumanEntity) { + name += ((HumanEntity) target).getName(); + } else { + if (target instanceof Tameable) { + if (((Tameable) target).isTamed()) { + if (showOwner && ((Tameable) target).getOwner() instanceof Player) { + if (LoadProperties.showDisplayName) { + name += ((Player) ((Tameable) target).getOwner()).getName() + "'s "; + } else { + name += ((Player) ((Tameable) target).getOwner()).getDisplayName() + "'s "; + } + } else { + name += "Pet "; + } + } + } + if (target instanceof Chicken) { + name += "Chicken"; + } else if (target instanceof Cow) { + name += "Cow"; + } else if (target instanceof Creeper) { + name += "Creeper"; + } else if (target instanceof Ghast) { + name += "Ghast"; + } else if (target instanceof Giant) { + name += "Giant"; + } else if (target instanceof Pig) { + name += "Pig"; + } else if (target instanceof PigZombie) { + name += "PigZombie"; + } else if (target instanceof Sheep) { + name += "Sheep"; + } else if (target instanceof Slime) { + name += "Slime"; + } else if (target instanceof Skeleton) { + name += "Skeleton"; + } else if (target instanceof Spider) { + name += "Spider"; + } else if (target instanceof Squid) { + name += "Squid"; + } else if (target instanceof Wolf) { + name += "Wolf"; + } else if (target instanceof Zombie) { + name += "Zombie"; + } else if (target instanceof Monster) { + name += "Monster"; + } else if (target instanceof Creature) { + name += "Creature"; + } else { + name += "Unknown"; + } + } + return name; + } + + public static LivingEntity[] getPets(HumanEntity player) { + ArrayList pets = new ArrayList(); + if (player != null && (!(player instanceof Player) || ((Player) player).isOnline())) { + String name = player.getName(); + for (World world : Bukkit.getServer().getWorlds()) { + for (LivingEntity entity : world.getLivingEntities()) { + if (entity instanceof Tameable && ((Tameable) entity).isTamed() && ((Tameable) entity).getOwner() instanceof Player) { + if (name.equals(((Player) ((Tameable) entity).getOwner()).getName())) { + pets.add(entity); + } + } + } + } + } + LivingEntity[] list = new LivingEntity[pets.size()]; + pets.toArray(list); + return list; + } + + public static void update(Player player) + { + //boolean show_pets = true; + Container container = containers.get(player); + + if (container != null) + { + int index = 0; + Widget[] bars = container.getChildren(); + for (String name : Party.getInstance().getPartyMembersByName(player).meFirst(player.getName())) + { + GenericLivingEntity bar; + if (index >= bars.length) + { + container.addChild(bar = new GenericLivingEntity()); + } else { + bar = (GenericLivingEntity)bars[index]; + } + bar.setEntity(name, Party.getInstance().isPartyLeader(name, Users.getProfile(Bukkit.getServer().getPlayer(name)).getParty()) ? ChatColor.GREEN + "@" : ""); + //bar.setTargets(show_pets ? getPets(Bukkit.getServer().getPlayer(name)) : null); + index++; + } + while (index < bars.length) { + container.removeChild(bars[index++]); + } + container.updateLayout(); + } + } + + public static void initialize(SpoutPlayer sPlayer, Plugin plugin) + { + GenericContainer container = new GenericContainer(); + + container.setAlign(WidgetAnchor.TOP_LEFT) + .setAnchor(WidgetAnchor.TOP_LEFT) + .setX(3) + .setY(3) + .setWidth(427) + .setHeight(240) + .setFixed(true); + + mmoHelper.containers.put(sPlayer, container); + + sPlayer.getMainScreen().attachWidget(plugin, container); + } + /** + * Update all parties. + */ + public static void updateAll() { + for(Player x : Bukkit.getServer().getOnlinePlayers()) + { + if(Users.getProfile(x).inParty()) + { + update(x); + } + } + } + +} diff --git a/src/com/gmail/nossr50/spout/util/ArrayListString.java b/src/main/java/com/gmail/nossr50/spout/util/ArrayListString.java similarity index 96% rename from src/com/gmail/nossr50/spout/util/ArrayListString.java rename to src/main/java/com/gmail/nossr50/spout/util/ArrayListString.java index 1b6d0c0ae..53a52f353 100644 --- a/src/com/gmail/nossr50/spout/util/ArrayListString.java +++ b/src/main/java/com/gmail/nossr50/spout/util/ArrayListString.java @@ -1,112 +1,112 @@ -/* - * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/). - * - * mmoMinecraft is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.gmail.nossr50.spout.util; - -import java.util.ArrayList; - -/** - * Case insensitive ArrayList. - * Overrides the .contains(), .indexOf(), .lastIndexOf() and .remove() methods. - */ -public class ArrayListString extends ArrayList { - - private static final long serialVersionUID = -8111006526598412404L; - - /** - * Returns true if this list contains the specified string. - * @param o String whose presence in this list is to be tested - * @return true if this list contains the specified string - */ - public boolean contains(String o) { - for (String e : this) { - if (o == null ? e == null : o.equalsIgnoreCase(e)) { - return true; - } - } - return false; - } - - /** - * Returns the index of the first occurrence of the specified string in this list, or -1 if this list does not contain the string. - * @param o String to search for - * @return The index of the first occurrence of the specified string in this list, or -1 if this list does not contain the string - */ - public int indexOf(String o) { - for (int i = 0; i < this.size(); i++) { - if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) { - return i; - } - } - return -1; - } - - /** - * Returns the index of the last occurrence of the specified string in this list, or -1 if this list does not contain the string. - * @param o String to search for - * @return The index of the last occurrence of the specified string in this list, or -1 if this list does not contain the string - */ - public int lastIndexOf(String o) { - for (int i = size() - 1; i >= 0; i--) { - if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) { - return i; - } - } - return -1; - } - - /** - * Removes the first occurrence of the specified string from this list, if it is present. If the list does not contain the string, it is unchanged. - * @param o String to be removed from this list, if present - * @return true if this list contained the specified string - */ - public boolean remove(String o) { - int i = indexOf(o); - if (i != -1) { - remove(i); - return true; - } - return false; - } - - /** - * Returns the element at the specified position in this list. - * This is for finding the correct capitalisation of an element. - * @param index String to search for - * @return the correctly capitalised element - */ - public String get(String index) { - int i = this.indexOf(index); - if (i != -1) { - return this.get(i); - } - return null; - } - - public ArrayListString meFirst(String name) { - ArrayListString copy = new ArrayListString(); - if (this.contains(name)) { - copy.add(name); - } - for (String next : this) { - if (!next.equalsIgnoreCase(name)) { - copy.add(next); - } - } - return copy; - } +/* + * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/). + * + * mmoMinecraft is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.gmail.nossr50.spout.util; + +import java.util.ArrayList; + +/** + * Case insensitive ArrayList. + * Overrides the .contains(), .indexOf(), .lastIndexOf() and .remove() methods. + */ +public class ArrayListString extends ArrayList { + + private static final long serialVersionUID = -8111006526598412404L; + + /** + * Returns true if this list contains the specified string. + * @param o String whose presence in this list is to be tested + * @return true if this list contains the specified string + */ + public boolean contains(String o) { + for (String e : this) { + if (o == null ? e == null : o.equalsIgnoreCase(e)) { + return true; + } + } + return false; + } + + /** + * Returns the index of the first occurrence of the specified string in this list, or -1 if this list does not contain the string. + * @param o String to search for + * @return The index of the first occurrence of the specified string in this list, or -1 if this list does not contain the string + */ + public int indexOf(String o) { + for (int i = 0; i < this.size(); i++) { + if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) { + return i; + } + } + return -1; + } + + /** + * Returns the index of the last occurrence of the specified string in this list, or -1 if this list does not contain the string. + * @param o String to search for + * @return The index of the last occurrence of the specified string in this list, or -1 if this list does not contain the string + */ + public int lastIndexOf(String o) { + for (int i = size() - 1; i >= 0; i--) { + if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) { + return i; + } + } + return -1; + } + + /** + * Removes the first occurrence of the specified string from this list, if it is present. If the list does not contain the string, it is unchanged. + * @param o String to be removed from this list, if present + * @return true if this list contained the specified string + */ + public boolean remove(String o) { + int i = indexOf(o); + if (i != -1) { + remove(i); + return true; + } + return false; + } + + /** + * Returns the element at the specified position in this list. + * This is for finding the correct capitalisation of an element. + * @param index String to search for + * @return the correctly capitalised element + */ + public String get(String index) { + int i = this.indexOf(index); + if (i != -1) { + return this.get(i); + } + return null; + } + + public ArrayListString meFirst(String name) { + ArrayListString copy = new ArrayListString(); + if (this.contains(name)) { + copy.add(name); + } + for (String next : this) { + if (!next.equalsIgnoreCase(name)) { + copy.add(next); + } + } + return copy; + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/spout/util/GenericFace.java b/src/main/java/com/gmail/nossr50/spout/util/GenericFace.java similarity index 96% rename from src/com/gmail/nossr50/spout/util/GenericFace.java rename to src/main/java/com/gmail/nossr50/spout/util/GenericFace.java index 6a1ca0d56..e061604ae 100644 --- a/src/com/gmail/nossr50/spout/util/GenericFace.java +++ b/src/main/java/com/gmail/nossr50/spout/util/GenericFace.java @@ -1,65 +1,65 @@ -/* - * This file is part of mmoMinecraft (https://github.com/mmoMinecraftDev). - * - * mmoMinecraft is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.gmail.nossr50.spout.util; - -import org.getspout.spoutapi.gui.GenericTexture; - -import com.gmail.nossr50.config.LoadProperties; - -public final class GenericFace extends GenericTexture { - - private static String facePath = "http://face.rycochet.net/"; - private static int defaultSize = 8; - private String name; - - public GenericFace() { - this("", defaultSize); - } - - public GenericFace(String name) { - this(name, defaultSize); - } - - public GenericFace(String name, int size) { - if (LoadProperties.showFaces) { - this.setWidth(size).setHeight(size).setFixed(true); - setName(name); - } else { - this.setVisible(false); - } - } - - public String getName() { - return name; - } - - public GenericFace setName(String name) { - if (LoadProperties.showFaces) { - this.name = name == null ? "" : name; - super.setUrl(facePath + this.name + ".png"); - super.setDirty(true); - } - return this; - } - - public GenericFace setSize(int size) { - if (LoadProperties.showFaces) { - super.setWidth(size).setHeight(size); - } - return this; - } +/* + * This file is part of mmoMinecraft (https://github.com/mmoMinecraftDev). + * + * mmoMinecraft is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.gmail.nossr50.spout.util; + +import org.getspout.spoutapi.gui.GenericTexture; + +import com.gmail.nossr50.config.LoadProperties; + +public final class GenericFace extends GenericTexture { + + private static String facePath = "http://face.rycochet.net/"; + private static int defaultSize = 8; + private String name; + + public GenericFace() { + this("", defaultSize); + } + + public GenericFace(String name) { + this(name, defaultSize); + } + + public GenericFace(String name, int size) { + if (LoadProperties.showFaces) { + this.setWidth(size).setHeight(size).setFixed(true); + setName(name); + } else { + this.setVisible(false); + } + } + + public String getName() { + return name; + } + + public GenericFace setName(String name) { + if (LoadProperties.showFaces) { + this.name = name == null ? "" : name; + super.setUrl(facePath + this.name + ".png"); + super.setDirty(true); + } + return this; + } + + public GenericFace setSize(int size) { + if (LoadProperties.showFaces) { + super.setWidth(size).setHeight(size); + } + return this; + } } \ No newline at end of file diff --git a/src/com/gmail/nossr50/spout/util/GenericLivingEntity.java b/src/main/java/com/gmail/nossr50/spout/util/GenericLivingEntity.java similarity index 96% rename from src/com/gmail/nossr50/spout/util/GenericLivingEntity.java rename to src/main/java/com/gmail/nossr50/spout/util/GenericLivingEntity.java index e972efb66..0594bee02 100644 --- a/src/com/gmail/nossr50/spout/util/GenericLivingEntity.java +++ b/src/main/java/com/gmail/nossr50/spout/util/GenericLivingEntity.java @@ -1,227 +1,227 @@ -/* - * This file is part of mmoHelperMinecraft (https://github.com/mmoHelperMinecraftDev). - * - * mmoHelperMinecraft is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.gmail.nossr50.spout.util; - -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.getspout.spoutapi.gui.*; - -import com.gmail.nossr50.spout.mmoHelper; - -public class GenericLivingEntity extends GenericContainer { - - private Container _space; - private Label _label; - private Gradient _health; - private Gradient _armor; - private GenericFace _face; - private int health = 100; - private int armor = 100; - private int def_width = 80; - private int def_height = 14; - private boolean target = false; - String face = "~"; - String label = ""; - - public GenericLivingEntity() { - super(); - Color black = new Color(0, 0, 0, 0.75f); - - this.addChildren( - new GenericContainer( // Used for the bar, this.children with an index 1+ are targets - _space = (Container) new GenericContainer() - .setMinWidth(def_width / 4) - .setMaxWidth(def_width / 4) - .setVisible(target), - new GenericContainer( - new GenericGradient() - .setTopColor(black) - .setBottomColor(black) - .setPriority(RenderPriority.Highest), - new GenericContainer( - _health = (Gradient) new GenericGradient(), - _armor = (Gradient) new GenericGradient() - ) .setMargin(1) - .setPriority(RenderPriority.High), - new GenericContainer( - _face = (GenericFace) new GenericFace() - .setMargin(3, 0, 3, 3), - _label = (Label) new GenericLabel() - .setMargin(3) - ) .setLayout(ContainerType.HORIZONTAL) - ) .setLayout(ContainerType.OVERLAY) - ) .setLayout(ContainerType.HORIZONTAL) - .setMargin(0, 0, 1, 0) - .setFixed(true) - .setWidth(def_width) - .setHeight(def_height) - ) .setAlign(WidgetAnchor.TOP_LEFT) - .setFixed(true) - .setWidth(def_width) - .setHeight(def_height + 1); - - this.setHealthColor(new Color(1f, 0, 0, 0.75f)); - this.setArmorColor(new Color(0.75f, 0.75f, 0.75f, 0.75f)); - } - - /** - * Set the display from a possibly offline player - * @param name - * @return - */ - public GenericLivingEntity setEntity(String name) { - return setEntity(name, ""); - } - - /** - * Set the display from a possibly offline player - * @param name - * @param prefix Place before the name - * @return - */ - public GenericLivingEntity setEntity(String name, String prefix) { - Player player = this.getPlugin().getServer().getPlayer(name); - if (player != null && player.isOnline()) { - return setEntity(player, prefix); - } - setHealth(0); - setArmor(0); - setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, null) + name); - setFace("~" + name); - return this; - } - - /** - * Set the display from a player or living entity - * @param entity - * @return - */ - public GenericLivingEntity setEntity(LivingEntity entity) { - return setEntity(entity, ""); - } - - /** - * Set the display from a player or living entity - * @param entity - * @param prefix Place before the name - * @return - */ - public GenericLivingEntity setEntity(LivingEntity entity, String prefix) { - if (entity != null && entity instanceof LivingEntity) { - setHealth(mmoHelper.getHealth(entity)); // Needs a maxHealth() check - setArmor(mmoHelper.getArmor(entity)); - setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, entity) + mmoHelper.getSimpleName(entity, !target)); - setFace(entity instanceof Player ? ((Player)entity).getName() : "+" + mmoHelper.getSimpleName(entity,false).replaceAll(" ", "")); - } else { - setHealth(0); - setArmor(0); - setLabel(""); - setFace(""); - } - return this; - } - - /** - * Set the targets of this entity - either actual targets, or pets etc - * @param targets - * @return - */ - public GenericLivingEntity setTargets(LivingEntity... targets) { - Widget[] widgets = this.getChildren(); - if (targets == null) { - targets = new LivingEntity[0]; // zero-length array is easier to handle - } - for (int i=targets.length + 1; i i + 1) { - child = (GenericLivingEntity) widgets[i+1]; - } else { - this.addChild(child = new GenericLivingEntity()); - } - child.setTarget(true); - child.setEntity(targets[i]); - } - setHeight((targets.length + 1) * (def_height + 1)); - updateLayout(); - return this; - } - - public GenericLivingEntity setTarget(boolean target) { - if (this.target != target) { - this.target = target; - _space.setVisible(target); - updateLayout(); - } - return this; - } - - public GenericLivingEntity setHealth(int health) { - if (this.health != health) { - this.health = health; - updateLayout(); - } - return this; - } - - public GenericLivingEntity setHealthColor(Color color) { - _health.setTopColor(color).setBottomColor(color); - return this; - } - - public GenericLivingEntity setArmor(int armor) { - if (this.armor != armor) { - this.armor = armor; - updateLayout(); - } - return this; - } - - public GenericLivingEntity setArmorColor(Color color) { - _armor.setTopColor(color).setBottomColor(color); - return this; - } - - public GenericLivingEntity setLabel(String label) { - if (!this.label.equals(label)) { - this.label = label; - _label.setText(label).setDirty(true); - updateLayout(); - } - return this; - } - - public GenericLivingEntity setFace(String name) { - if (!this.face.equals(name)) { - this.face = name; - _face.setVisible(!name.isEmpty()); - _face.setName(name); - updateLayout(); - } - return this; - } - - @Override - public Container updateLayout() { - super.updateLayout(); - _armor.setWidth((_armor.getContainer().getWidth() * armor) / 100).setDirty(true); - _health.setWidth((_health.getContainer().getWidth() * health) / 100).setDirty(true); - return this; - } +/* + * This file is part of mmoHelperMinecraft (https://github.com/mmoHelperMinecraftDev). + * + * mmoHelperMinecraft is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.gmail.nossr50.spout.util; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.getspout.spoutapi.gui.*; + +import com.gmail.nossr50.spout.mmoHelper; + +public class GenericLivingEntity extends GenericContainer { + + private Container _space; + private Label _label; + private Gradient _health; + private Gradient _armor; + private GenericFace _face; + private int health = 100; + private int armor = 100; + private int def_width = 80; + private int def_height = 14; + private boolean target = false; + String face = "~"; + String label = ""; + + public GenericLivingEntity() { + super(); + Color black = new Color(0, 0, 0, 0.75f); + + this.addChildren( + new GenericContainer( // Used for the bar, this.children with an index 1+ are targets + _space = (Container) new GenericContainer() + .setMinWidth(def_width / 4) + .setMaxWidth(def_width / 4) + .setVisible(target), + new GenericContainer( + new GenericGradient() + .setTopColor(black) + .setBottomColor(black) + .setPriority(RenderPriority.Highest), + new GenericContainer( + _health = (Gradient) new GenericGradient(), + _armor = (Gradient) new GenericGradient() + ) .setMargin(1) + .setPriority(RenderPriority.High), + new GenericContainer( + _face = (GenericFace) new GenericFace() + .setMargin(3, 0, 3, 3), + _label = (Label) new GenericLabel() + .setMargin(3) + ) .setLayout(ContainerType.HORIZONTAL) + ) .setLayout(ContainerType.OVERLAY) + ) .setLayout(ContainerType.HORIZONTAL) + .setMargin(0, 0, 1, 0) + .setFixed(true) + .setWidth(def_width) + .setHeight(def_height) + ) .setAlign(WidgetAnchor.TOP_LEFT) + .setFixed(true) + .setWidth(def_width) + .setHeight(def_height + 1); + + this.setHealthColor(new Color(1f, 0, 0, 0.75f)); + this.setArmorColor(new Color(0.75f, 0.75f, 0.75f, 0.75f)); + } + + /** + * Set the display from a possibly offline player + * @param name + * @return + */ + public GenericLivingEntity setEntity(String name) { + return setEntity(name, ""); + } + + /** + * Set the display from a possibly offline player + * @param name + * @param prefix Place before the name + * @return + */ + public GenericLivingEntity setEntity(String name, String prefix) { + Player player = this.getPlugin().getServer().getPlayer(name); + if (player != null && player.isOnline()) { + return setEntity(player, prefix); + } + setHealth(0); + setArmor(0); + setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, null) + name); + setFace("~" + name); + return this; + } + + /** + * Set the display from a player or living entity + * @param entity + * @return + */ + public GenericLivingEntity setEntity(LivingEntity entity) { + return setEntity(entity, ""); + } + + /** + * Set the display from a player or living entity + * @param entity + * @param prefix Place before the name + * @return + */ + public GenericLivingEntity setEntity(LivingEntity entity, String prefix) { + if (entity != null && entity instanceof LivingEntity) { + setHealth(mmoHelper.getHealth(entity)); // Needs a maxHealth() check + setArmor(mmoHelper.getArmor(entity)); + setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, entity) + mmoHelper.getSimpleName(entity, !target)); + setFace(entity instanceof Player ? ((Player)entity).getName() : "+" + mmoHelper.getSimpleName(entity,false).replaceAll(" ", "")); + } else { + setHealth(0); + setArmor(0); + setLabel(""); + setFace(""); + } + return this; + } + + /** + * Set the targets of this entity - either actual targets, or pets etc + * @param targets + * @return + */ + public GenericLivingEntity setTargets(LivingEntity... targets) { + Widget[] widgets = this.getChildren(); + if (targets == null) { + targets = new LivingEntity[0]; // zero-length array is easier to handle + } + for (int i=targets.length + 1; i i + 1) { + child = (GenericLivingEntity) widgets[i+1]; + } else { + this.addChild(child = new GenericLivingEntity()); + } + child.setTarget(true); + child.setEntity(targets[i]); + } + setHeight((targets.length + 1) * (def_height + 1)); + updateLayout(); + return this; + } + + public GenericLivingEntity setTarget(boolean target) { + if (this.target != target) { + this.target = target; + _space.setVisible(target); + updateLayout(); + } + return this; + } + + public GenericLivingEntity setHealth(int health) { + if (this.health != health) { + this.health = health; + updateLayout(); + } + return this; + } + + public GenericLivingEntity setHealthColor(Color color) { + _health.setTopColor(color).setBottomColor(color); + return this; + } + + public GenericLivingEntity setArmor(int armor) { + if (this.armor != armor) { + this.armor = armor; + updateLayout(); + } + return this; + } + + public GenericLivingEntity setArmorColor(Color color) { + _armor.setTopColor(color).setBottomColor(color); + return this; + } + + public GenericLivingEntity setLabel(String label) { + if (!this.label.equals(label)) { + this.label = label; + _label.setText(label).setDirty(true); + updateLayout(); + } + return this; + } + + public GenericLivingEntity setFace(String name) { + if (!this.face.equals(name)) { + this.face = name; + _face.setVisible(!name.isEmpty()); + _face.setName(name); + updateLayout(); + } + return this; + } + + @Override + public Container updateLayout() { + super.updateLayout(); + _armor.setWidth((_armor.getContainer().getWidth() * armor) / 100).setDirty(true); + _health.setWidth((_health.getContainer().getWidth() * health) / 100).setDirty(true); + return this; + } } \ No newline at end of file diff --git a/src/plugin.yml b/src/main/java/plugin.yml similarity index 97% rename from src/plugin.yml rename to src/main/java/plugin.yml index a001eebb6..1dc5919f7 100644 --- a/src/plugin.yml +++ b/src/main/java/plugin.yml @@ -1,236 +1,236 @@ -name: mcMMO -main: com.gmail.nossr50.mcMMO -version: 1.2.07 -softdepend: [Spout] -author: nossr50 -description: mcMMO takes core Minecraft game mechanics and expands them to add an extensive RPG experience, the goal of the project has always been a quality RPG experience. Everything in mcMMO is carefully thought out and is constantly improving. mcMMO adds eleven skills to train in and level in, while also offering a high level of customization for server admins. There are countless features, including custom sounds, graphical elements, and more added when running mcMMO in conjunction with Spout. I carefully read feedback and evaluate the mechanics of mcMMO in every update to provide an ever-evolving experience. -commands: - mchud: - description: Change your HUD - xplock: - description: Lock your xp bar - xprate: - description: Modify the xp rate or start an event - 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 - permission: mcmmo.tools.mmoedit - mcability: - description: Toggle whether or not abilities get readied on right click - permission: mcmmo.commands.ability - mcrefresh: - description: Refresh all cooldowns for mcMMO - permission: mcmmo.tools.mcrefresh - mcgod: - description: Make yourself invulnerable - permission: mcmmo.tools.mcgod - stats: - description: Shows your mcMMO stats and xp - mmoedit: - description: Edit the skill values for a user - permission: mcmmo.tools.mmoedit - ptp: - description: Teleport to a party member - permission: mcmmo.commands.ptp - party: - description: Create/join a party - permission: mcmmo.commands.party - myspawn: - description: Teleport to your MySpawn - permission: mcmmo.commands.myspawn - whois: - description: View mcMMO stats of another player - invite: - description: Invite a player into your party - permission: mcmmo.chat.partychat - accept: - description: Accept a party invite - permission: mcmmo.chat.partychat - clearmyspawn: - description: Clear your MySpawn location - permission: mcmmo.commands.myspawn - mmoupdate: - description: Convert from Flat File to MySQL - permission: mcmmo.admin - p: - description: Toggle Party chat or send party chat messages - permission: mcmmo.chat.partychat - 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 - fishing: - description: Detailed skill info - a: - description: Toggle Admin chat or send admin chat messages - permission: mcmmo.chat.adminchat -permissions: - mcmmo.*: - description: Implies all mcmmo permissions. - children: - mcmmo.defaults: true - #Instead of containing mcmmo.defaultsop on its own, it should specify each of mcmmo.defaultsop - mcmmo.admin: true - mcmmo.tools.*: true - mcmmo.chat.adminchat: true - - mcmmo.defaults: - default: true - description: mcmmo permisions that default to true - children: - mcmmo.ability.*: true - mcmmo.item.*: true - mcmmo.tools.*: true - mcmmo.regeneration: true - mcmmo.motd: true - mcmmo.commands.*: true - mcmmo.chat.partychat: true - mcmmo.skills.*: true - mcmmo.tools.*: false - - mcmmo.defaultsop: - default: op - description: mcmmo permissions that default to op - children: - mcmmo.chat.adminchat: true - - mcmmo.admin: - description: - mcmmo.tools.*: - description: Implies all mcmmo.tools permissions. - children: - mcmmo.tools.mcrefresh: true - mcmmo.tools.mmoedit: true - mcmmo.tools.mcgod: true - mcmmo.tools.mcrefresh: - description: - mcmmo.tools.mmoedit: - description: - mcmmo.tools.mcgod: - description: - mcmmo.ability.*: - description: Implies all mcmmo.ability permissions. - children: - mcmmo.ability.herbalism: true - mcmmo.ability.excavation: true - mcmmo.ability.unarmed: true - mcmmo.ability.mining: true - mcmmo.ability.axes: true - mcmmo.ability.swords: true - mcmmo.ability.woodcutting: true - mcmmo.ability.herbalism: - description: - mcmmo.ability.excavation: - description: - mcmmo.ability.unarmed: - description: - mcmmo.ability.mining: - description: - mcmmo.ability.axes: - description: - mcmmo.ability.swords: - description: - mcmmo.ability.woodcutting: - description: - mcmmo.item.*: - description: Implies all mcmmo.item permissions. - children: - mcmmo.item.chimaerawing: true - mcmmo.item.chimaerawing: - description: - mcmmo.regeneration: - description: - mcmmo.motd: - description: - mcmmo.commands.*: - description: Implies all mcmmo.commands permissions. - children: - mcmmo.commands.ability: true - mcmmo.commands.myspawn: true - mcmmo.commands.setmyspawn: true - mcmmo.commands.ptp: true - mcmmo.commands.whois: true - mcmmo.commands.party: true - mcmmo.commands.ability: - description: - mcmmo.commands.myspawn: - description: - mcmmo.commands.setmyspawn: - description: - mcmmo.commands.ptp: - description: - mcmmo.commands.whois: - description: - mcmmo.commands.party: - description: - mcmmo.chat.*: - description: Implies all mcmmo.chat permissions. (Warning, contains adminchat) - children: - mcmmo.chat.adminchat: true - mcmmo.chat.partychat: true - mcmmo.chat.adminchat: - description: Allows participation in admin chat - mcmmo.chat.partychat: - description: Allows participation in party chat - mcmmo.skills.*: - description: Implies all mcmmo.skills permissions. - children: - mcmmo.skills.alchemy: true - mcmmo.skills.enchanting: true - mcmmo.skills.fishing: true - mcmmo.skills.taming: true - mcmmo.skills.mining: true - mcmmo.skills.woodcutting: true - mcmmo.skills.repair: true - mcmmo.skills.unarmed: true - mcmmo.skills.archery: true - mcmmo.skills.herbalism: true - mcmmo.skills.excavation: true - mcmmo.skills.swords: true - mcmmo.skills.axes: true - mcmmo.skills.acrobatics: true - mcmmo.skills.taming: - description: - mcmmo.skills.mining: - description: - mcmmo.skills.woodcutting: - description: - mcmmo.skills.repair: - description: - mcmmo.skills.unarmed: - description: - mcmmo.skills.archery: - description: - mcmmo.skills.herbalism: - description: - mcmmo.skills.excavation: - description: - mcmmo.skills.swords: - description: - mcmmo.skills.axes: - description: - mcmmo.skills.acrobatics: - description: +name: mcMMO +main: com.gmail.nossr50.mcMMO +version: 1.2.07 +softdepend: [Spout] +author: nossr50 +description: mcMMO takes core Minecraft game mechanics and expands them to add an extensive RPG experience, the goal of the project has always been a quality RPG experience. Everything in mcMMO is carefully thought out and is constantly improving. mcMMO adds eleven skills to train in and level in, while also offering a high level of customization for server admins. There are countless features, including custom sounds, graphical elements, and more added when running mcMMO in conjunction with Spout. I carefully read feedback and evaluate the mechanics of mcMMO in every update to provide an ever-evolving experience. +commands: + mchud: + description: Change your HUD + xplock: + description: Lock your xp bar + xprate: + description: Modify the xp rate or start an event + 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 + permission: mcmmo.tools.mmoedit + mcability: + description: Toggle whether or not abilities get readied on right click + permission: mcmmo.commands.ability + mcrefresh: + description: Refresh all cooldowns for mcMMO + permission: mcmmo.tools.mcrefresh + mcgod: + description: Make yourself invulnerable + permission: mcmmo.tools.mcgod + stats: + description: Shows your mcMMO stats and xp + mmoedit: + description: Edit the skill values for a user + permission: mcmmo.tools.mmoedit + ptp: + description: Teleport to a party member + permission: mcmmo.commands.ptp + party: + description: Create/join a party + permission: mcmmo.commands.party + myspawn: + description: Teleport to your MySpawn + permission: mcmmo.commands.myspawn + whois: + description: View mcMMO stats of another player + invite: + description: Invite a player into your party + permission: mcmmo.chat.partychat + accept: + description: Accept a party invite + permission: mcmmo.chat.partychat + clearmyspawn: + description: Clear your MySpawn location + permission: mcmmo.commands.myspawn + mmoupdate: + description: Convert from Flat File to MySQL + permission: mcmmo.admin + p: + description: Toggle Party chat or send party chat messages + permission: mcmmo.chat.partychat + 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 + fishing: + description: Detailed skill info + a: + description: Toggle Admin chat or send admin chat messages + permission: mcmmo.chat.adminchat +permissions: + mcmmo.*: + description: Implies all mcmmo permissions. + children: + mcmmo.defaults: true + #Instead of containing mcmmo.defaultsop on its own, it should specify each of mcmmo.defaultsop + mcmmo.admin: true + mcmmo.tools.*: true + mcmmo.chat.adminchat: true + + mcmmo.defaults: + default: true + description: mcmmo permisions that default to true + children: + mcmmo.ability.*: true + mcmmo.item.*: true + mcmmo.tools.*: true + mcmmo.regeneration: true + mcmmo.motd: true + mcmmo.commands.*: true + mcmmo.chat.partychat: true + mcmmo.skills.*: true + mcmmo.tools.*: false + + mcmmo.defaultsop: + default: op + description: mcmmo permissions that default to op + children: + mcmmo.chat.adminchat: true + + mcmmo.admin: + description: + mcmmo.tools.*: + description: Implies all mcmmo.tools permissions. + children: + mcmmo.tools.mcrefresh: true + mcmmo.tools.mmoedit: true + mcmmo.tools.mcgod: true + mcmmo.tools.mcrefresh: + description: + mcmmo.tools.mmoedit: + description: + mcmmo.tools.mcgod: + description: + mcmmo.ability.*: + description: Implies all mcmmo.ability permissions. + children: + mcmmo.ability.herbalism: true + mcmmo.ability.excavation: true + mcmmo.ability.unarmed: true + mcmmo.ability.mining: true + mcmmo.ability.axes: true + mcmmo.ability.swords: true + mcmmo.ability.woodcutting: true + mcmmo.ability.herbalism: + description: + mcmmo.ability.excavation: + description: + mcmmo.ability.unarmed: + description: + mcmmo.ability.mining: + description: + mcmmo.ability.axes: + description: + mcmmo.ability.swords: + description: + mcmmo.ability.woodcutting: + description: + mcmmo.item.*: + description: Implies all mcmmo.item permissions. + children: + mcmmo.item.chimaerawing: true + mcmmo.item.chimaerawing: + description: + mcmmo.regeneration: + description: + mcmmo.motd: + description: + mcmmo.commands.*: + description: Implies all mcmmo.commands permissions. + children: + mcmmo.commands.ability: true + mcmmo.commands.myspawn: true + mcmmo.commands.setmyspawn: true + mcmmo.commands.ptp: true + mcmmo.commands.whois: true + mcmmo.commands.party: true + mcmmo.commands.ability: + description: + mcmmo.commands.myspawn: + description: + mcmmo.commands.setmyspawn: + description: + mcmmo.commands.ptp: + description: + mcmmo.commands.whois: + description: + mcmmo.commands.party: + description: + mcmmo.chat.*: + description: Implies all mcmmo.chat permissions. (Warning, contains adminchat) + children: + mcmmo.chat.adminchat: true + mcmmo.chat.partychat: true + mcmmo.chat.adminchat: + description: Allows participation in admin chat + mcmmo.chat.partychat: + description: Allows participation in party chat + mcmmo.skills.*: + description: Implies all mcmmo.skills permissions. + children: + mcmmo.skills.alchemy: true + mcmmo.skills.enchanting: true + mcmmo.skills.fishing: true + mcmmo.skills.taming: true + mcmmo.skills.mining: true + mcmmo.skills.woodcutting: true + mcmmo.skills.repair: true + mcmmo.skills.unarmed: true + mcmmo.skills.archery: true + mcmmo.skills.herbalism: true + mcmmo.skills.excavation: true + mcmmo.skills.swords: true + mcmmo.skills.axes: true + mcmmo.skills.acrobatics: true + mcmmo.skills.taming: + description: + mcmmo.skills.mining: + description: + mcmmo.skills.woodcutting: + description: + mcmmo.skills.repair: + description: + mcmmo.skills.unarmed: + description: + mcmmo.skills.archery: + description: + mcmmo.skills.herbalism: + description: + mcmmo.skills.excavation: + description: + mcmmo.skills.swords: + description: + mcmmo.skills.axes: + description: + mcmmo.skills.acrobatics: + description: diff --git a/src/resources/Acrobatics.png b/src/main/resources/Acrobatics.png similarity index 100% rename from src/resources/Acrobatics.png rename to src/main/resources/Acrobatics.png diff --git a/src/resources/Acrobatics_r.png b/src/main/resources/Acrobatics_r.png similarity index 100% rename from src/resources/Acrobatics_r.png rename to src/main/resources/Acrobatics_r.png diff --git a/src/resources/Archery.png b/src/main/resources/Archery.png similarity index 100% rename from src/resources/Archery.png rename to src/main/resources/Archery.png diff --git a/src/resources/Archery_r.png b/src/main/resources/Archery_r.png similarity index 100% rename from src/resources/Archery_r.png rename to src/main/resources/Archery_r.png diff --git a/src/resources/Axe_r.png b/src/main/resources/Axe_r.png similarity index 100% rename from src/resources/Axe_r.png rename to src/main/resources/Axe_r.png diff --git a/src/resources/Axes.png b/src/main/resources/Axes.png similarity index 100% rename from src/resources/Axes.png rename to src/main/resources/Axes.png diff --git a/src/resources/Axes_r.png b/src/main/resources/Axes_r.png similarity index 100% rename from src/resources/Axes_r.png rename to src/main/resources/Axes_r.png diff --git a/src/resources/Excavation.png b/src/main/resources/Excavation.png similarity index 100% rename from src/resources/Excavation.png rename to src/main/resources/Excavation.png diff --git a/src/resources/Excavation_r.png b/src/main/resources/Excavation_r.png similarity index 100% rename from src/resources/Excavation_r.png rename to src/main/resources/Excavation_r.png diff --git a/src/resources/Fishing.png b/src/main/resources/Fishing.png similarity index 100% rename from src/resources/Fishing.png rename to src/main/resources/Fishing.png diff --git a/src/resources/Fishing_r.png b/src/main/resources/Fishing_r.png similarity index 100% rename from src/resources/Fishing_r.png rename to src/main/resources/Fishing_r.png diff --git a/src/resources/Herbalism.png b/src/main/resources/Herbalism.png similarity index 100% rename from src/resources/Herbalism.png rename to src/main/resources/Herbalism.png diff --git a/src/resources/Herbalism_r.png b/src/main/resources/Herbalism_r.png similarity index 100% rename from src/resources/Herbalism_r.png rename to src/main/resources/Herbalism_r.png diff --git a/src/resources/Icon.png b/src/main/resources/Icon.png similarity index 100% rename from src/resources/Icon.png rename to src/main/resources/Icon.png diff --git a/src/resources/Icon_old.png b/src/main/resources/Icon_old.png similarity index 100% rename from src/resources/Icon_old.png rename to src/main/resources/Icon_old.png diff --git a/src/resources/Icon_r.png b/src/main/resources/Icon_r.png similarity index 100% rename from src/resources/Icon_r.png rename to src/main/resources/Icon_r.png diff --git a/src/resources/Mining.png b/src/main/resources/Mining.png similarity index 100% rename from src/resources/Mining.png rename to src/main/resources/Mining.png diff --git a/src/resources/Mining_r.png b/src/main/resources/Mining_r.png similarity index 100% rename from src/resources/Mining_r.png rename to src/main/resources/Mining_r.png diff --git a/src/resources/Repair.png b/src/main/resources/Repair.png similarity index 100% rename from src/resources/Repair.png rename to src/main/resources/Repair.png diff --git a/src/resources/Repair_r.png b/src/main/resources/Repair_r.png similarity index 100% rename from src/resources/Repair_r.png rename to src/main/resources/Repair_r.png diff --git a/src/resources/Swords.png b/src/main/resources/Swords.png similarity index 100% rename from src/resources/Swords.png rename to src/main/resources/Swords.png diff --git a/src/resources/Swords_r.png b/src/main/resources/Swords_r.png similarity index 100% rename from src/resources/Swords_r.png rename to src/main/resources/Swords_r.png diff --git a/src/resources/Taming.png b/src/main/resources/Taming.png similarity index 100% rename from src/resources/Taming.png rename to src/main/resources/Taming.png diff --git a/src/resources/Taming_r.png b/src/main/resources/Taming_r.png similarity index 100% rename from src/resources/Taming_r.png rename to src/main/resources/Taming_r.png diff --git a/src/resources/Unarmed.png b/src/main/resources/Unarmed.png similarity index 100% rename from src/resources/Unarmed.png rename to src/main/resources/Unarmed.png diff --git a/src/resources/Unarmed_r.png b/src/main/resources/Unarmed_r.png similarity index 100% rename from src/resources/Unarmed_r.png rename to src/main/resources/Unarmed_r.png diff --git a/src/resources/Woodcutting.png b/src/main/resources/Woodcutting.png similarity index 100% rename from src/resources/Woodcutting.png rename to src/main/resources/Woodcutting.png diff --git a/src/resources/Woodcutting_r.png b/src/main/resources/Woodcutting_r.png similarity index 100% rename from src/resources/Woodcutting_r.png rename to src/main/resources/Woodcutting_r.png diff --git a/src/resources/health_inc00.png b/src/main/resources/health_inc00.png similarity index 100% rename from src/resources/health_inc00.png rename to src/main/resources/health_inc00.png diff --git a/src/resources/health_inc01.png b/src/main/resources/health_inc01.png similarity index 100% rename from src/resources/health_inc01.png rename to src/main/resources/health_inc01.png diff --git a/src/resources/health_inc02.png b/src/main/resources/health_inc02.png similarity index 100% rename from src/resources/health_inc02.png rename to src/main/resources/health_inc02.png diff --git a/src/resources/health_inc03.png b/src/main/resources/health_inc03.png similarity index 100% rename from src/resources/health_inc03.png rename to src/main/resources/health_inc03.png diff --git a/src/resources/health_inc04.png b/src/main/resources/health_inc04.png similarity index 100% rename from src/resources/health_inc04.png rename to src/main/resources/health_inc04.png diff --git a/src/resources/health_inc05.png b/src/main/resources/health_inc05.png similarity index 100% rename from src/resources/health_inc05.png rename to src/main/resources/health_inc05.png diff --git a/src/resources/health_inc06.png b/src/main/resources/health_inc06.png similarity index 100% rename from src/resources/health_inc06.png rename to src/main/resources/health_inc06.png diff --git a/src/resources/health_inc07.png b/src/main/resources/health_inc07.png similarity index 100% rename from src/resources/health_inc07.png rename to src/main/resources/health_inc07.png diff --git a/src/resources/health_inc08.png b/src/main/resources/health_inc08.png similarity index 100% rename from src/resources/health_inc08.png rename to src/main/resources/health_inc08.png diff --git a/src/resources/health_inc09.png b/src/main/resources/health_inc09.png similarity index 100% rename from src/resources/health_inc09.png rename to src/main/resources/health_inc09.png diff --git a/src/resources/health_inc10.png b/src/main/resources/health_inc10.png similarity index 100% rename from src/resources/health_inc10.png rename to src/main/resources/health_inc10.png diff --git a/src/resources/health_inc11.png b/src/main/resources/health_inc11.png similarity index 100% rename from src/resources/health_inc11.png rename to src/main/resources/health_inc11.png diff --git a/src/resources/health_inc12.png b/src/main/resources/health_inc12.png similarity index 100% rename from src/resources/health_inc12.png rename to src/main/resources/health_inc12.png diff --git a/src/resources/health_inc13.png b/src/main/resources/health_inc13.png similarity index 100% rename from src/resources/health_inc13.png rename to src/main/resources/health_inc13.png diff --git a/src/resources/health_inc14.png b/src/main/resources/health_inc14.png similarity index 100% rename from src/resources/health_inc14.png rename to src/main/resources/health_inc14.png diff --git a/src/resources/health_inc15.png b/src/main/resources/health_inc15.png similarity index 100% rename from src/resources/health_inc15.png rename to src/main/resources/health_inc15.png diff --git a/src/resources/health_inc16.png b/src/main/resources/health_inc16.png similarity index 100% rename from src/resources/health_inc16.png rename to src/main/resources/health_inc16.png diff --git a/src/resources/health_inc17.png b/src/main/resources/health_inc17.png similarity index 100% rename from src/resources/health_inc17.png rename to src/main/resources/health_inc17.png diff --git a/src/resources/health_inc18.png b/src/main/resources/health_inc18.png similarity index 100% rename from src/resources/health_inc18.png rename to src/main/resources/health_inc18.png diff --git a/src/resources/health_inc19.png b/src/main/resources/health_inc19.png similarity index 100% rename from src/resources/health_inc19.png rename to src/main/resources/health_inc19.png diff --git a/src/resources/health_inc20.png b/src/main/resources/health_inc20.png similarity index 100% rename from src/resources/health_inc20.png rename to src/main/resources/health_inc20.png diff --git a/src/resources/level.wav b/src/main/resources/level.wav similarity index 100% rename from src/resources/level.wav rename to src/main/resources/level.wav diff --git a/src/resources/repair.wav b/src/main/resources/repair.wav similarity index 100% rename from src/resources/repair.wav rename to src/main/resources/repair.wav diff --git a/src/resources/xpbar_inc000.png b/src/main/resources/xpbar_inc000.png similarity index 100% rename from src/resources/xpbar_inc000.png rename to src/main/resources/xpbar_inc000.png diff --git a/src/resources/xpbar_inc001.png b/src/main/resources/xpbar_inc001.png similarity index 100% rename from src/resources/xpbar_inc001.png rename to src/main/resources/xpbar_inc001.png diff --git a/src/resources/xpbar_inc002.png b/src/main/resources/xpbar_inc002.png similarity index 100% rename from src/resources/xpbar_inc002.png rename to src/main/resources/xpbar_inc002.png diff --git a/src/resources/xpbar_inc003.png b/src/main/resources/xpbar_inc003.png similarity index 100% rename from src/resources/xpbar_inc003.png rename to src/main/resources/xpbar_inc003.png diff --git a/src/resources/xpbar_inc004.png b/src/main/resources/xpbar_inc004.png similarity index 100% rename from src/resources/xpbar_inc004.png rename to src/main/resources/xpbar_inc004.png diff --git a/src/resources/xpbar_inc005.png b/src/main/resources/xpbar_inc005.png similarity index 100% rename from src/resources/xpbar_inc005.png rename to src/main/resources/xpbar_inc005.png diff --git a/src/resources/xpbar_inc006.png b/src/main/resources/xpbar_inc006.png similarity index 100% rename from src/resources/xpbar_inc006.png rename to src/main/resources/xpbar_inc006.png diff --git a/src/resources/xpbar_inc007.png b/src/main/resources/xpbar_inc007.png similarity index 100% rename from src/resources/xpbar_inc007.png rename to src/main/resources/xpbar_inc007.png diff --git a/src/resources/xpbar_inc008.png b/src/main/resources/xpbar_inc008.png similarity index 100% rename from src/resources/xpbar_inc008.png rename to src/main/resources/xpbar_inc008.png diff --git a/src/resources/xpbar_inc009.png b/src/main/resources/xpbar_inc009.png similarity index 100% rename from src/resources/xpbar_inc009.png rename to src/main/resources/xpbar_inc009.png diff --git a/src/resources/xpbar_inc010.png b/src/main/resources/xpbar_inc010.png similarity index 100% rename from src/resources/xpbar_inc010.png rename to src/main/resources/xpbar_inc010.png diff --git a/src/resources/xpbar_inc011.png b/src/main/resources/xpbar_inc011.png similarity index 100% rename from src/resources/xpbar_inc011.png rename to src/main/resources/xpbar_inc011.png diff --git a/src/resources/xpbar_inc012.png b/src/main/resources/xpbar_inc012.png similarity index 100% rename from src/resources/xpbar_inc012.png rename to src/main/resources/xpbar_inc012.png diff --git a/src/resources/xpbar_inc013.png b/src/main/resources/xpbar_inc013.png similarity index 100% rename from src/resources/xpbar_inc013.png rename to src/main/resources/xpbar_inc013.png diff --git a/src/resources/xpbar_inc014.png b/src/main/resources/xpbar_inc014.png similarity index 100% rename from src/resources/xpbar_inc014.png rename to src/main/resources/xpbar_inc014.png diff --git a/src/resources/xpbar_inc015.png b/src/main/resources/xpbar_inc015.png similarity index 100% rename from src/resources/xpbar_inc015.png rename to src/main/resources/xpbar_inc015.png diff --git a/src/resources/xpbar_inc016.png b/src/main/resources/xpbar_inc016.png similarity index 100% rename from src/resources/xpbar_inc016.png rename to src/main/resources/xpbar_inc016.png diff --git a/src/resources/xpbar_inc017.png b/src/main/resources/xpbar_inc017.png similarity index 100% rename from src/resources/xpbar_inc017.png rename to src/main/resources/xpbar_inc017.png diff --git a/src/resources/xpbar_inc018.png b/src/main/resources/xpbar_inc018.png similarity index 100% rename from src/resources/xpbar_inc018.png rename to src/main/resources/xpbar_inc018.png diff --git a/src/resources/xpbar_inc019.png b/src/main/resources/xpbar_inc019.png similarity index 100% rename from src/resources/xpbar_inc019.png rename to src/main/resources/xpbar_inc019.png diff --git a/src/resources/xpbar_inc020.png b/src/main/resources/xpbar_inc020.png similarity index 100% rename from src/resources/xpbar_inc020.png rename to src/main/resources/xpbar_inc020.png diff --git a/src/resources/xpbar_inc021.png b/src/main/resources/xpbar_inc021.png similarity index 100% rename from src/resources/xpbar_inc021.png rename to src/main/resources/xpbar_inc021.png diff --git a/src/resources/xpbar_inc022.png b/src/main/resources/xpbar_inc022.png similarity index 100% rename from src/resources/xpbar_inc022.png rename to src/main/resources/xpbar_inc022.png diff --git a/src/resources/xpbar_inc023.png b/src/main/resources/xpbar_inc023.png similarity index 100% rename from src/resources/xpbar_inc023.png rename to src/main/resources/xpbar_inc023.png diff --git a/src/resources/xpbar_inc024.png b/src/main/resources/xpbar_inc024.png similarity index 100% rename from src/resources/xpbar_inc024.png rename to src/main/resources/xpbar_inc024.png diff --git a/src/resources/xpbar_inc025.png b/src/main/resources/xpbar_inc025.png similarity index 100% rename from src/resources/xpbar_inc025.png rename to src/main/resources/xpbar_inc025.png diff --git a/src/resources/xpbar_inc026.png b/src/main/resources/xpbar_inc026.png similarity index 100% rename from src/resources/xpbar_inc026.png rename to src/main/resources/xpbar_inc026.png diff --git a/src/resources/xpbar_inc027.png b/src/main/resources/xpbar_inc027.png similarity index 100% rename from src/resources/xpbar_inc027.png rename to src/main/resources/xpbar_inc027.png diff --git a/src/resources/xpbar_inc028.png b/src/main/resources/xpbar_inc028.png similarity index 100% rename from src/resources/xpbar_inc028.png rename to src/main/resources/xpbar_inc028.png diff --git a/src/resources/xpbar_inc029.png b/src/main/resources/xpbar_inc029.png similarity index 100% rename from src/resources/xpbar_inc029.png rename to src/main/resources/xpbar_inc029.png diff --git a/src/resources/xpbar_inc030.png b/src/main/resources/xpbar_inc030.png similarity index 100% rename from src/resources/xpbar_inc030.png rename to src/main/resources/xpbar_inc030.png diff --git a/src/resources/xpbar_inc031.png b/src/main/resources/xpbar_inc031.png similarity index 100% rename from src/resources/xpbar_inc031.png rename to src/main/resources/xpbar_inc031.png diff --git a/src/resources/xpbar_inc032.png b/src/main/resources/xpbar_inc032.png similarity index 100% rename from src/resources/xpbar_inc032.png rename to src/main/resources/xpbar_inc032.png diff --git a/src/resources/xpbar_inc033.png b/src/main/resources/xpbar_inc033.png similarity index 100% rename from src/resources/xpbar_inc033.png rename to src/main/resources/xpbar_inc033.png diff --git a/src/resources/xpbar_inc034.png b/src/main/resources/xpbar_inc034.png similarity index 100% rename from src/resources/xpbar_inc034.png rename to src/main/resources/xpbar_inc034.png diff --git a/src/resources/xpbar_inc035.png b/src/main/resources/xpbar_inc035.png similarity index 100% rename from src/resources/xpbar_inc035.png rename to src/main/resources/xpbar_inc035.png diff --git a/src/resources/xpbar_inc036.png b/src/main/resources/xpbar_inc036.png similarity index 100% rename from src/resources/xpbar_inc036.png rename to src/main/resources/xpbar_inc036.png diff --git a/src/resources/xpbar_inc037.png b/src/main/resources/xpbar_inc037.png similarity index 100% rename from src/resources/xpbar_inc037.png rename to src/main/resources/xpbar_inc037.png diff --git a/src/resources/xpbar_inc038.png b/src/main/resources/xpbar_inc038.png similarity index 100% rename from src/resources/xpbar_inc038.png rename to src/main/resources/xpbar_inc038.png diff --git a/src/resources/xpbar_inc039.png b/src/main/resources/xpbar_inc039.png similarity index 100% rename from src/resources/xpbar_inc039.png rename to src/main/resources/xpbar_inc039.png diff --git a/src/resources/xpbar_inc040.png b/src/main/resources/xpbar_inc040.png similarity index 100% rename from src/resources/xpbar_inc040.png rename to src/main/resources/xpbar_inc040.png diff --git a/src/resources/xpbar_inc041.png b/src/main/resources/xpbar_inc041.png similarity index 100% rename from src/resources/xpbar_inc041.png rename to src/main/resources/xpbar_inc041.png diff --git a/src/resources/xpbar_inc042.png b/src/main/resources/xpbar_inc042.png similarity index 100% rename from src/resources/xpbar_inc042.png rename to src/main/resources/xpbar_inc042.png diff --git a/src/resources/xpbar_inc043.png b/src/main/resources/xpbar_inc043.png similarity index 100% rename from src/resources/xpbar_inc043.png rename to src/main/resources/xpbar_inc043.png diff --git a/src/resources/xpbar_inc044.png b/src/main/resources/xpbar_inc044.png similarity index 100% rename from src/resources/xpbar_inc044.png rename to src/main/resources/xpbar_inc044.png diff --git a/src/resources/xpbar_inc045.png b/src/main/resources/xpbar_inc045.png similarity index 100% rename from src/resources/xpbar_inc045.png rename to src/main/resources/xpbar_inc045.png diff --git a/src/resources/xpbar_inc046.png b/src/main/resources/xpbar_inc046.png similarity index 100% rename from src/resources/xpbar_inc046.png rename to src/main/resources/xpbar_inc046.png diff --git a/src/resources/xpbar_inc047.png b/src/main/resources/xpbar_inc047.png similarity index 100% rename from src/resources/xpbar_inc047.png rename to src/main/resources/xpbar_inc047.png diff --git a/src/resources/xpbar_inc048.png b/src/main/resources/xpbar_inc048.png similarity index 100% rename from src/resources/xpbar_inc048.png rename to src/main/resources/xpbar_inc048.png diff --git a/src/resources/xpbar_inc049.png b/src/main/resources/xpbar_inc049.png similarity index 100% rename from src/resources/xpbar_inc049.png rename to src/main/resources/xpbar_inc049.png diff --git a/src/resources/xpbar_inc050.png b/src/main/resources/xpbar_inc050.png similarity index 100% rename from src/resources/xpbar_inc050.png rename to src/main/resources/xpbar_inc050.png diff --git a/src/resources/xpbar_inc051.png b/src/main/resources/xpbar_inc051.png similarity index 100% rename from src/resources/xpbar_inc051.png rename to src/main/resources/xpbar_inc051.png diff --git a/src/resources/xpbar_inc052.png b/src/main/resources/xpbar_inc052.png similarity index 100% rename from src/resources/xpbar_inc052.png rename to src/main/resources/xpbar_inc052.png diff --git a/src/resources/xpbar_inc053.png b/src/main/resources/xpbar_inc053.png similarity index 100% rename from src/resources/xpbar_inc053.png rename to src/main/resources/xpbar_inc053.png diff --git a/src/resources/xpbar_inc054.png b/src/main/resources/xpbar_inc054.png similarity index 100% rename from src/resources/xpbar_inc054.png rename to src/main/resources/xpbar_inc054.png diff --git a/src/resources/xpbar_inc055.png b/src/main/resources/xpbar_inc055.png similarity index 100% rename from src/resources/xpbar_inc055.png rename to src/main/resources/xpbar_inc055.png diff --git a/src/resources/xpbar_inc056.png b/src/main/resources/xpbar_inc056.png similarity index 100% rename from src/resources/xpbar_inc056.png rename to src/main/resources/xpbar_inc056.png diff --git a/src/resources/xpbar_inc057.png b/src/main/resources/xpbar_inc057.png similarity index 100% rename from src/resources/xpbar_inc057.png rename to src/main/resources/xpbar_inc057.png diff --git a/src/resources/xpbar_inc058.png b/src/main/resources/xpbar_inc058.png similarity index 100% rename from src/resources/xpbar_inc058.png rename to src/main/resources/xpbar_inc058.png diff --git a/src/resources/xpbar_inc059.png b/src/main/resources/xpbar_inc059.png similarity index 100% rename from src/resources/xpbar_inc059.png rename to src/main/resources/xpbar_inc059.png diff --git a/src/resources/xpbar_inc060.png b/src/main/resources/xpbar_inc060.png similarity index 100% rename from src/resources/xpbar_inc060.png rename to src/main/resources/xpbar_inc060.png diff --git a/src/resources/xpbar_inc061.png b/src/main/resources/xpbar_inc061.png similarity index 100% rename from src/resources/xpbar_inc061.png rename to src/main/resources/xpbar_inc061.png diff --git a/src/resources/xpbar_inc062.png b/src/main/resources/xpbar_inc062.png similarity index 100% rename from src/resources/xpbar_inc062.png rename to src/main/resources/xpbar_inc062.png diff --git a/src/resources/xpbar_inc063.png b/src/main/resources/xpbar_inc063.png similarity index 100% rename from src/resources/xpbar_inc063.png rename to src/main/resources/xpbar_inc063.png diff --git a/src/resources/xpbar_inc064.png b/src/main/resources/xpbar_inc064.png similarity index 100% rename from src/resources/xpbar_inc064.png rename to src/main/resources/xpbar_inc064.png diff --git a/src/resources/xpbar_inc065.png b/src/main/resources/xpbar_inc065.png similarity index 100% rename from src/resources/xpbar_inc065.png rename to src/main/resources/xpbar_inc065.png diff --git a/src/resources/xpbar_inc066.png b/src/main/resources/xpbar_inc066.png similarity index 100% rename from src/resources/xpbar_inc066.png rename to src/main/resources/xpbar_inc066.png diff --git a/src/resources/xpbar_inc067.png b/src/main/resources/xpbar_inc067.png similarity index 100% rename from src/resources/xpbar_inc067.png rename to src/main/resources/xpbar_inc067.png diff --git a/src/resources/xpbar_inc068.png b/src/main/resources/xpbar_inc068.png similarity index 100% rename from src/resources/xpbar_inc068.png rename to src/main/resources/xpbar_inc068.png diff --git a/src/resources/xpbar_inc069.png b/src/main/resources/xpbar_inc069.png similarity index 100% rename from src/resources/xpbar_inc069.png rename to src/main/resources/xpbar_inc069.png diff --git a/src/resources/xpbar_inc070.png b/src/main/resources/xpbar_inc070.png similarity index 100% rename from src/resources/xpbar_inc070.png rename to src/main/resources/xpbar_inc070.png diff --git a/src/resources/xpbar_inc071.png b/src/main/resources/xpbar_inc071.png similarity index 100% rename from src/resources/xpbar_inc071.png rename to src/main/resources/xpbar_inc071.png diff --git a/src/resources/xpbar_inc072.png b/src/main/resources/xpbar_inc072.png similarity index 100% rename from src/resources/xpbar_inc072.png rename to src/main/resources/xpbar_inc072.png diff --git a/src/resources/xpbar_inc073.png b/src/main/resources/xpbar_inc073.png similarity index 100% rename from src/resources/xpbar_inc073.png rename to src/main/resources/xpbar_inc073.png diff --git a/src/resources/xpbar_inc074.png b/src/main/resources/xpbar_inc074.png similarity index 100% rename from src/resources/xpbar_inc074.png rename to src/main/resources/xpbar_inc074.png diff --git a/src/resources/xpbar_inc075.png b/src/main/resources/xpbar_inc075.png similarity index 100% rename from src/resources/xpbar_inc075.png rename to src/main/resources/xpbar_inc075.png diff --git a/src/resources/xpbar_inc076.png b/src/main/resources/xpbar_inc076.png similarity index 100% rename from src/resources/xpbar_inc076.png rename to src/main/resources/xpbar_inc076.png diff --git a/src/resources/xpbar_inc077.png b/src/main/resources/xpbar_inc077.png similarity index 100% rename from src/resources/xpbar_inc077.png rename to src/main/resources/xpbar_inc077.png diff --git a/src/resources/xpbar_inc078.png b/src/main/resources/xpbar_inc078.png similarity index 100% rename from src/resources/xpbar_inc078.png rename to src/main/resources/xpbar_inc078.png diff --git a/src/resources/xpbar_inc079.png b/src/main/resources/xpbar_inc079.png similarity index 100% rename from src/resources/xpbar_inc079.png rename to src/main/resources/xpbar_inc079.png diff --git a/src/resources/xpbar_inc080.png b/src/main/resources/xpbar_inc080.png similarity index 100% rename from src/resources/xpbar_inc080.png rename to src/main/resources/xpbar_inc080.png diff --git a/src/resources/xpbar_inc081.png b/src/main/resources/xpbar_inc081.png similarity index 100% rename from src/resources/xpbar_inc081.png rename to src/main/resources/xpbar_inc081.png diff --git a/src/resources/xpbar_inc082.png b/src/main/resources/xpbar_inc082.png similarity index 100% rename from src/resources/xpbar_inc082.png rename to src/main/resources/xpbar_inc082.png diff --git a/src/resources/xpbar_inc083.png b/src/main/resources/xpbar_inc083.png similarity index 100% rename from src/resources/xpbar_inc083.png rename to src/main/resources/xpbar_inc083.png diff --git a/src/resources/xpbar_inc084.png b/src/main/resources/xpbar_inc084.png similarity index 100% rename from src/resources/xpbar_inc084.png rename to src/main/resources/xpbar_inc084.png diff --git a/src/resources/xpbar_inc085.png b/src/main/resources/xpbar_inc085.png similarity index 100% rename from src/resources/xpbar_inc085.png rename to src/main/resources/xpbar_inc085.png diff --git a/src/resources/xpbar_inc086.png b/src/main/resources/xpbar_inc086.png similarity index 100% rename from src/resources/xpbar_inc086.png rename to src/main/resources/xpbar_inc086.png diff --git a/src/resources/xpbar_inc087.png b/src/main/resources/xpbar_inc087.png similarity index 100% rename from src/resources/xpbar_inc087.png rename to src/main/resources/xpbar_inc087.png diff --git a/src/resources/xpbar_inc088.png b/src/main/resources/xpbar_inc088.png similarity index 100% rename from src/resources/xpbar_inc088.png rename to src/main/resources/xpbar_inc088.png diff --git a/src/resources/xpbar_inc089.png b/src/main/resources/xpbar_inc089.png similarity index 100% rename from src/resources/xpbar_inc089.png rename to src/main/resources/xpbar_inc089.png diff --git a/src/resources/xpbar_inc090.png b/src/main/resources/xpbar_inc090.png similarity index 100% rename from src/resources/xpbar_inc090.png rename to src/main/resources/xpbar_inc090.png diff --git a/src/resources/xpbar_inc091.png b/src/main/resources/xpbar_inc091.png similarity index 100% rename from src/resources/xpbar_inc091.png rename to src/main/resources/xpbar_inc091.png diff --git a/src/resources/xpbar_inc092.png b/src/main/resources/xpbar_inc092.png similarity index 100% rename from src/resources/xpbar_inc092.png rename to src/main/resources/xpbar_inc092.png diff --git a/src/resources/xpbar_inc093.png b/src/main/resources/xpbar_inc093.png similarity index 100% rename from src/resources/xpbar_inc093.png rename to src/main/resources/xpbar_inc093.png diff --git a/src/resources/xpbar_inc094.png b/src/main/resources/xpbar_inc094.png similarity index 100% rename from src/resources/xpbar_inc094.png rename to src/main/resources/xpbar_inc094.png diff --git a/src/resources/xpbar_inc095.png b/src/main/resources/xpbar_inc095.png similarity index 100% rename from src/resources/xpbar_inc095.png rename to src/main/resources/xpbar_inc095.png diff --git a/src/resources/xpbar_inc096.png b/src/main/resources/xpbar_inc096.png similarity index 100% rename from src/resources/xpbar_inc096.png rename to src/main/resources/xpbar_inc096.png diff --git a/src/resources/xpbar_inc097.png b/src/main/resources/xpbar_inc097.png similarity index 100% rename from src/resources/xpbar_inc097.png rename to src/main/resources/xpbar_inc097.png diff --git a/src/resources/xpbar_inc098.png b/src/main/resources/xpbar_inc098.png similarity index 100% rename from src/resources/xpbar_inc098.png rename to src/main/resources/xpbar_inc098.png diff --git a/src/resources/xpbar_inc099.png b/src/main/resources/xpbar_inc099.png similarity index 100% rename from src/resources/xpbar_inc099.png rename to src/main/resources/xpbar_inc099.png diff --git a/src/resources/xpbar_inc100.png b/src/main/resources/xpbar_inc100.png similarity index 100% rename from src/resources/xpbar_inc100.png rename to src/main/resources/xpbar_inc100.png diff --git a/src/resources/xpbar_inc101.png b/src/main/resources/xpbar_inc101.png similarity index 100% rename from src/resources/xpbar_inc101.png rename to src/main/resources/xpbar_inc101.png diff --git a/src/resources/xpbar_inc102.png b/src/main/resources/xpbar_inc102.png similarity index 100% rename from src/resources/xpbar_inc102.png rename to src/main/resources/xpbar_inc102.png diff --git a/src/resources/xpbar_inc103.png b/src/main/resources/xpbar_inc103.png similarity index 100% rename from src/resources/xpbar_inc103.png rename to src/main/resources/xpbar_inc103.png diff --git a/src/resources/xpbar_inc104.png b/src/main/resources/xpbar_inc104.png similarity index 100% rename from src/resources/xpbar_inc104.png rename to src/main/resources/xpbar_inc104.png diff --git a/src/resources/xpbar_inc105.png b/src/main/resources/xpbar_inc105.png similarity index 100% rename from src/resources/xpbar_inc105.png rename to src/main/resources/xpbar_inc105.png diff --git a/src/resources/xpbar_inc106.png b/src/main/resources/xpbar_inc106.png similarity index 100% rename from src/resources/xpbar_inc106.png rename to src/main/resources/xpbar_inc106.png diff --git a/src/resources/xpbar_inc107.png b/src/main/resources/xpbar_inc107.png similarity index 100% rename from src/resources/xpbar_inc107.png rename to src/main/resources/xpbar_inc107.png diff --git a/src/resources/xpbar_inc108.png b/src/main/resources/xpbar_inc108.png similarity index 100% rename from src/resources/xpbar_inc108.png rename to src/main/resources/xpbar_inc108.png diff --git a/src/resources/xpbar_inc109.png b/src/main/resources/xpbar_inc109.png similarity index 100% rename from src/resources/xpbar_inc109.png rename to src/main/resources/xpbar_inc109.png diff --git a/src/resources/xpbar_inc110.png b/src/main/resources/xpbar_inc110.png similarity index 100% rename from src/resources/xpbar_inc110.png rename to src/main/resources/xpbar_inc110.png diff --git a/src/resources/xpbar_inc111.png b/src/main/resources/xpbar_inc111.png similarity index 100% rename from src/resources/xpbar_inc111.png rename to src/main/resources/xpbar_inc111.png diff --git a/src/resources/xpbar_inc112.png b/src/main/resources/xpbar_inc112.png similarity index 100% rename from src/resources/xpbar_inc112.png rename to src/main/resources/xpbar_inc112.png diff --git a/src/resources/xpbar_inc113.png b/src/main/resources/xpbar_inc113.png similarity index 100% rename from src/resources/xpbar_inc113.png rename to src/main/resources/xpbar_inc113.png diff --git a/src/resources/xpbar_inc114.png b/src/main/resources/xpbar_inc114.png similarity index 100% rename from src/resources/xpbar_inc114.png rename to src/main/resources/xpbar_inc114.png diff --git a/src/resources/xpbar_inc115.png b/src/main/resources/xpbar_inc115.png similarity index 100% rename from src/resources/xpbar_inc115.png rename to src/main/resources/xpbar_inc115.png diff --git a/src/resources/xpbar_inc116.png b/src/main/resources/xpbar_inc116.png similarity index 100% rename from src/resources/xpbar_inc116.png rename to src/main/resources/xpbar_inc116.png diff --git a/src/resources/xpbar_inc117.png b/src/main/resources/xpbar_inc117.png similarity index 100% rename from src/resources/xpbar_inc117.png rename to src/main/resources/xpbar_inc117.png diff --git a/src/resources/xpbar_inc118.png b/src/main/resources/xpbar_inc118.png similarity index 100% rename from src/resources/xpbar_inc118.png rename to src/main/resources/xpbar_inc118.png diff --git a/src/resources/xpbar_inc119.png b/src/main/resources/xpbar_inc119.png similarity index 100% rename from src/resources/xpbar_inc119.png rename to src/main/resources/xpbar_inc119.png diff --git a/src/resources/xpbar_inc120.png b/src/main/resources/xpbar_inc120.png similarity index 100% rename from src/resources/xpbar_inc120.png rename to src/main/resources/xpbar_inc120.png diff --git a/src/resources/xpbar_inc121.png b/src/main/resources/xpbar_inc121.png similarity index 100% rename from src/resources/xpbar_inc121.png rename to src/main/resources/xpbar_inc121.png diff --git a/src/resources/xpbar_inc122.png b/src/main/resources/xpbar_inc122.png similarity index 100% rename from src/resources/xpbar_inc122.png rename to src/main/resources/xpbar_inc122.png diff --git a/src/resources/xpbar_inc123.png b/src/main/resources/xpbar_inc123.png similarity index 100% rename from src/resources/xpbar_inc123.png rename to src/main/resources/xpbar_inc123.png diff --git a/src/resources/xpbar_inc124.png b/src/main/resources/xpbar_inc124.png similarity index 100% rename from src/resources/xpbar_inc124.png rename to src/main/resources/xpbar_inc124.png diff --git a/src/resources/xpbar_inc125.png b/src/main/resources/xpbar_inc125.png similarity index 100% rename from src/resources/xpbar_inc125.png rename to src/main/resources/xpbar_inc125.png diff --git a/src/resources/xpbar_inc126.png b/src/main/resources/xpbar_inc126.png similarity index 100% rename from src/resources/xpbar_inc126.png rename to src/main/resources/xpbar_inc126.png diff --git a/src/resources/xpbar_inc127.png b/src/main/resources/xpbar_inc127.png similarity index 100% rename from src/resources/xpbar_inc127.png rename to src/main/resources/xpbar_inc127.png diff --git a/src/resources/xpbar_inc128.png b/src/main/resources/xpbar_inc128.png similarity index 100% rename from src/resources/xpbar_inc128.png rename to src/main/resources/xpbar_inc128.png diff --git a/src/resources/xpbar_inc129.png b/src/main/resources/xpbar_inc129.png similarity index 100% rename from src/resources/xpbar_inc129.png rename to src/main/resources/xpbar_inc129.png diff --git a/src/resources/xpbar_inc130.png b/src/main/resources/xpbar_inc130.png similarity index 100% rename from src/resources/xpbar_inc130.png rename to src/main/resources/xpbar_inc130.png diff --git a/src/resources/xpbar_inc131.png b/src/main/resources/xpbar_inc131.png similarity index 100% rename from src/resources/xpbar_inc131.png rename to src/main/resources/xpbar_inc131.png diff --git a/src/resources/xpbar_inc132.png b/src/main/resources/xpbar_inc132.png similarity index 100% rename from src/resources/xpbar_inc132.png rename to src/main/resources/xpbar_inc132.png diff --git a/src/resources/xpbar_inc133.png b/src/main/resources/xpbar_inc133.png similarity index 100% rename from src/resources/xpbar_inc133.png rename to src/main/resources/xpbar_inc133.png diff --git a/src/resources/xpbar_inc134.png b/src/main/resources/xpbar_inc134.png similarity index 100% rename from src/resources/xpbar_inc134.png rename to src/main/resources/xpbar_inc134.png diff --git a/src/resources/xpbar_inc135.png b/src/main/resources/xpbar_inc135.png similarity index 100% rename from src/resources/xpbar_inc135.png rename to src/main/resources/xpbar_inc135.png diff --git a/src/resources/xpbar_inc136.png b/src/main/resources/xpbar_inc136.png similarity index 100% rename from src/resources/xpbar_inc136.png rename to src/main/resources/xpbar_inc136.png diff --git a/src/resources/xpbar_inc137.png b/src/main/resources/xpbar_inc137.png similarity index 100% rename from src/resources/xpbar_inc137.png rename to src/main/resources/xpbar_inc137.png diff --git a/src/resources/xpbar_inc138.png b/src/main/resources/xpbar_inc138.png similarity index 100% rename from src/resources/xpbar_inc138.png rename to src/main/resources/xpbar_inc138.png diff --git a/src/resources/xpbar_inc139.png b/src/main/resources/xpbar_inc139.png similarity index 100% rename from src/resources/xpbar_inc139.png rename to src/main/resources/xpbar_inc139.png diff --git a/src/resources/xpbar_inc140.png b/src/main/resources/xpbar_inc140.png similarity index 100% rename from src/resources/xpbar_inc140.png rename to src/main/resources/xpbar_inc140.png diff --git a/src/resources/xpbar_inc141.png b/src/main/resources/xpbar_inc141.png similarity index 100% rename from src/resources/xpbar_inc141.png rename to src/main/resources/xpbar_inc141.png diff --git a/src/resources/xpbar_inc142.png b/src/main/resources/xpbar_inc142.png similarity index 100% rename from src/resources/xpbar_inc142.png rename to src/main/resources/xpbar_inc142.png diff --git a/src/resources/xpbar_inc143.png b/src/main/resources/xpbar_inc143.png similarity index 100% rename from src/resources/xpbar_inc143.png rename to src/main/resources/xpbar_inc143.png diff --git a/src/resources/xpbar_inc144.png b/src/main/resources/xpbar_inc144.png similarity index 100% rename from src/resources/xpbar_inc144.png rename to src/main/resources/xpbar_inc144.png diff --git a/src/resources/xpbar_inc145.png b/src/main/resources/xpbar_inc145.png similarity index 100% rename from src/resources/xpbar_inc145.png rename to src/main/resources/xpbar_inc145.png diff --git a/src/resources/xpbar_inc146.png b/src/main/resources/xpbar_inc146.png similarity index 100% rename from src/resources/xpbar_inc146.png rename to src/main/resources/xpbar_inc146.png diff --git a/src/resources/xpbar_inc147.png b/src/main/resources/xpbar_inc147.png similarity index 100% rename from src/resources/xpbar_inc147.png rename to src/main/resources/xpbar_inc147.png diff --git a/src/resources/xpbar_inc148.png b/src/main/resources/xpbar_inc148.png similarity index 100% rename from src/resources/xpbar_inc148.png rename to src/main/resources/xpbar_inc148.png diff --git a/src/resources/xpbar_inc149.png b/src/main/resources/xpbar_inc149.png similarity index 100% rename from src/resources/xpbar_inc149.png rename to src/main/resources/xpbar_inc149.png diff --git a/src/resources/xpbar_inc150.png b/src/main/resources/xpbar_inc150.png similarity index 100% rename from src/resources/xpbar_inc150.png rename to src/main/resources/xpbar_inc150.png diff --git a/src/resources/xpbar_inc151.png b/src/main/resources/xpbar_inc151.png similarity index 100% rename from src/resources/xpbar_inc151.png rename to src/main/resources/xpbar_inc151.png diff --git a/src/resources/xpbar_inc152.png b/src/main/resources/xpbar_inc152.png similarity index 100% rename from src/resources/xpbar_inc152.png rename to src/main/resources/xpbar_inc152.png diff --git a/src/resources/xpbar_inc153.png b/src/main/resources/xpbar_inc153.png similarity index 100% rename from src/resources/xpbar_inc153.png rename to src/main/resources/xpbar_inc153.png diff --git a/src/resources/xpbar_inc154.png b/src/main/resources/xpbar_inc154.png similarity index 100% rename from src/resources/xpbar_inc154.png rename to src/main/resources/xpbar_inc154.png diff --git a/src/resources/xpbar_inc155.png b/src/main/resources/xpbar_inc155.png similarity index 100% rename from src/resources/xpbar_inc155.png rename to src/main/resources/xpbar_inc155.png diff --git a/src/resources/xpbar_inc156.png b/src/main/resources/xpbar_inc156.png similarity index 100% rename from src/resources/xpbar_inc156.png rename to src/main/resources/xpbar_inc156.png diff --git a/src/resources/xpbar_inc157.png b/src/main/resources/xpbar_inc157.png similarity index 100% rename from src/resources/xpbar_inc157.png rename to src/main/resources/xpbar_inc157.png diff --git a/src/resources/xpbar_inc158.png b/src/main/resources/xpbar_inc158.png similarity index 100% rename from src/resources/xpbar_inc158.png rename to src/main/resources/xpbar_inc158.png diff --git a/src/resources/xpbar_inc159.png b/src/main/resources/xpbar_inc159.png similarity index 100% rename from src/resources/xpbar_inc159.png rename to src/main/resources/xpbar_inc159.png diff --git a/src/resources/xpbar_inc160.png b/src/main/resources/xpbar_inc160.png similarity index 100% rename from src/resources/xpbar_inc160.png rename to src/main/resources/xpbar_inc160.png diff --git a/src/resources/xpbar_inc161.png b/src/main/resources/xpbar_inc161.png similarity index 100% rename from src/resources/xpbar_inc161.png rename to src/main/resources/xpbar_inc161.png diff --git a/src/resources/xpbar_inc162.png b/src/main/resources/xpbar_inc162.png similarity index 100% rename from src/resources/xpbar_inc162.png rename to src/main/resources/xpbar_inc162.png diff --git a/src/resources/xpbar_inc163.png b/src/main/resources/xpbar_inc163.png similarity index 100% rename from src/resources/xpbar_inc163.png rename to src/main/resources/xpbar_inc163.png diff --git a/src/resources/xpbar_inc164.png b/src/main/resources/xpbar_inc164.png similarity index 100% rename from src/resources/xpbar_inc164.png rename to src/main/resources/xpbar_inc164.png diff --git a/src/resources/xpbar_inc165.png b/src/main/resources/xpbar_inc165.png similarity index 100% rename from src/resources/xpbar_inc165.png rename to src/main/resources/xpbar_inc165.png diff --git a/src/resources/xpbar_inc166.png b/src/main/resources/xpbar_inc166.png similarity index 100% rename from src/resources/xpbar_inc166.png rename to src/main/resources/xpbar_inc166.png diff --git a/src/resources/xpbar_inc167.png b/src/main/resources/xpbar_inc167.png similarity index 100% rename from src/resources/xpbar_inc167.png rename to src/main/resources/xpbar_inc167.png diff --git a/src/resources/xpbar_inc168.png b/src/main/resources/xpbar_inc168.png similarity index 100% rename from src/resources/xpbar_inc168.png rename to src/main/resources/xpbar_inc168.png diff --git a/src/resources/xpbar_inc169.png b/src/main/resources/xpbar_inc169.png similarity index 100% rename from src/resources/xpbar_inc169.png rename to src/main/resources/xpbar_inc169.png diff --git a/src/resources/xpbar_inc170.png b/src/main/resources/xpbar_inc170.png similarity index 100% rename from src/resources/xpbar_inc170.png rename to src/main/resources/xpbar_inc170.png diff --git a/src/resources/xpbar_inc171.png b/src/main/resources/xpbar_inc171.png similarity index 100% rename from src/resources/xpbar_inc171.png rename to src/main/resources/xpbar_inc171.png diff --git a/src/resources/xpbar_inc172.png b/src/main/resources/xpbar_inc172.png similarity index 100% rename from src/resources/xpbar_inc172.png rename to src/main/resources/xpbar_inc172.png diff --git a/src/resources/xpbar_inc173.png b/src/main/resources/xpbar_inc173.png similarity index 100% rename from src/resources/xpbar_inc173.png rename to src/main/resources/xpbar_inc173.png diff --git a/src/resources/xpbar_inc174.png b/src/main/resources/xpbar_inc174.png similarity index 100% rename from src/resources/xpbar_inc174.png rename to src/main/resources/xpbar_inc174.png diff --git a/src/resources/xpbar_inc175.png b/src/main/resources/xpbar_inc175.png similarity index 100% rename from src/resources/xpbar_inc175.png rename to src/main/resources/xpbar_inc175.png diff --git a/src/resources/xpbar_inc176.png b/src/main/resources/xpbar_inc176.png similarity index 100% rename from src/resources/xpbar_inc176.png rename to src/main/resources/xpbar_inc176.png diff --git a/src/resources/xpbar_inc177.png b/src/main/resources/xpbar_inc177.png similarity index 100% rename from src/resources/xpbar_inc177.png rename to src/main/resources/xpbar_inc177.png diff --git a/src/resources/xpbar_inc178.png b/src/main/resources/xpbar_inc178.png similarity index 100% rename from src/resources/xpbar_inc178.png rename to src/main/resources/xpbar_inc178.png diff --git a/src/resources/xpbar_inc179.png b/src/main/resources/xpbar_inc179.png similarity index 100% rename from src/resources/xpbar_inc179.png rename to src/main/resources/xpbar_inc179.png diff --git a/src/resources/xpbar_inc180.png b/src/main/resources/xpbar_inc180.png similarity index 100% rename from src/resources/xpbar_inc180.png rename to src/main/resources/xpbar_inc180.png diff --git a/src/resources/xpbar_inc181.png b/src/main/resources/xpbar_inc181.png similarity index 100% rename from src/resources/xpbar_inc181.png rename to src/main/resources/xpbar_inc181.png diff --git a/src/resources/xpbar_inc182.png b/src/main/resources/xpbar_inc182.png similarity index 100% rename from src/resources/xpbar_inc182.png rename to src/main/resources/xpbar_inc182.png diff --git a/src/resources/xpbar_inc183.png b/src/main/resources/xpbar_inc183.png similarity index 100% rename from src/resources/xpbar_inc183.png rename to src/main/resources/xpbar_inc183.png diff --git a/src/resources/xpbar_inc184.png b/src/main/resources/xpbar_inc184.png similarity index 100% rename from src/resources/xpbar_inc184.png rename to src/main/resources/xpbar_inc184.png diff --git a/src/resources/xpbar_inc185.png b/src/main/resources/xpbar_inc185.png similarity index 100% rename from src/resources/xpbar_inc185.png rename to src/main/resources/xpbar_inc185.png diff --git a/src/resources/xpbar_inc186.png b/src/main/resources/xpbar_inc186.png similarity index 100% rename from src/resources/xpbar_inc186.png rename to src/main/resources/xpbar_inc186.png diff --git a/src/resources/xpbar_inc187.png b/src/main/resources/xpbar_inc187.png similarity index 100% rename from src/resources/xpbar_inc187.png rename to src/main/resources/xpbar_inc187.png diff --git a/src/resources/xpbar_inc188.png b/src/main/resources/xpbar_inc188.png similarity index 100% rename from src/resources/xpbar_inc188.png rename to src/main/resources/xpbar_inc188.png diff --git a/src/resources/xpbar_inc189.png b/src/main/resources/xpbar_inc189.png similarity index 100% rename from src/resources/xpbar_inc189.png rename to src/main/resources/xpbar_inc189.png diff --git a/src/resources/xpbar_inc190.png b/src/main/resources/xpbar_inc190.png similarity index 100% rename from src/resources/xpbar_inc190.png rename to src/main/resources/xpbar_inc190.png diff --git a/src/resources/xpbar_inc191.png b/src/main/resources/xpbar_inc191.png similarity index 100% rename from src/resources/xpbar_inc191.png rename to src/main/resources/xpbar_inc191.png diff --git a/src/resources/xpbar_inc192.png b/src/main/resources/xpbar_inc192.png similarity index 100% rename from src/resources/xpbar_inc192.png rename to src/main/resources/xpbar_inc192.png diff --git a/src/resources/xpbar_inc193.png b/src/main/resources/xpbar_inc193.png similarity index 100% rename from src/resources/xpbar_inc193.png rename to src/main/resources/xpbar_inc193.png diff --git a/src/resources/xpbar_inc194.png b/src/main/resources/xpbar_inc194.png similarity index 100% rename from src/resources/xpbar_inc194.png rename to src/main/resources/xpbar_inc194.png diff --git a/src/resources/xpbar_inc195.png b/src/main/resources/xpbar_inc195.png similarity index 100% rename from src/resources/xpbar_inc195.png rename to src/main/resources/xpbar_inc195.png diff --git a/src/resources/xpbar_inc196.png b/src/main/resources/xpbar_inc196.png similarity index 100% rename from src/resources/xpbar_inc196.png rename to src/main/resources/xpbar_inc196.png diff --git a/src/resources/xpbar_inc197.png b/src/main/resources/xpbar_inc197.png similarity index 100% rename from src/resources/xpbar_inc197.png rename to src/main/resources/xpbar_inc197.png diff --git a/src/resources/xpbar_inc198.png b/src/main/resources/xpbar_inc198.png similarity index 100% rename from src/resources/xpbar_inc198.png rename to src/main/resources/xpbar_inc198.png diff --git a/src/resources/xpbar_inc199.png b/src/main/resources/xpbar_inc199.png similarity index 100% rename from src/resources/xpbar_inc199.png rename to src/main/resources/xpbar_inc199.png diff --git a/src/resources/xpbar_inc200.png b/src/main/resources/xpbar_inc200.png similarity index 100% rename from src/resources/xpbar_inc200.png rename to src/main/resources/xpbar_inc200.png diff --git a/src/resources/xpbar_inc201.png b/src/main/resources/xpbar_inc201.png similarity index 100% rename from src/resources/xpbar_inc201.png rename to src/main/resources/xpbar_inc201.png diff --git a/src/resources/xpbar_inc202.png b/src/main/resources/xpbar_inc202.png similarity index 100% rename from src/resources/xpbar_inc202.png rename to src/main/resources/xpbar_inc202.png diff --git a/src/resources/xpbar_inc203.png b/src/main/resources/xpbar_inc203.png similarity index 100% rename from src/resources/xpbar_inc203.png rename to src/main/resources/xpbar_inc203.png diff --git a/src/resources/xpbar_inc204.png b/src/main/resources/xpbar_inc204.png similarity index 100% rename from src/resources/xpbar_inc204.png rename to src/main/resources/xpbar_inc204.png diff --git a/src/resources/xpbar_inc205.png b/src/main/resources/xpbar_inc205.png similarity index 100% rename from src/resources/xpbar_inc205.png rename to src/main/resources/xpbar_inc205.png diff --git a/src/resources/xpbar_inc206.png b/src/main/resources/xpbar_inc206.png similarity index 100% rename from src/resources/xpbar_inc206.png rename to src/main/resources/xpbar_inc206.png diff --git a/src/resources/xpbar_inc207.png b/src/main/resources/xpbar_inc207.png similarity index 100% rename from src/resources/xpbar_inc207.png rename to src/main/resources/xpbar_inc207.png diff --git a/src/resources/xpbar_inc208.png b/src/main/resources/xpbar_inc208.png similarity index 100% rename from src/resources/xpbar_inc208.png rename to src/main/resources/xpbar_inc208.png diff --git a/src/resources/xpbar_inc209.png b/src/main/resources/xpbar_inc209.png similarity index 100% rename from src/resources/xpbar_inc209.png rename to src/main/resources/xpbar_inc209.png diff --git a/src/resources/xpbar_inc210.png b/src/main/resources/xpbar_inc210.png similarity index 100% rename from src/resources/xpbar_inc210.png rename to src/main/resources/xpbar_inc210.png diff --git a/src/resources/xpbar_inc211.png b/src/main/resources/xpbar_inc211.png similarity index 100% rename from src/resources/xpbar_inc211.png rename to src/main/resources/xpbar_inc211.png diff --git a/src/resources/xpbar_inc212.png b/src/main/resources/xpbar_inc212.png similarity index 100% rename from src/resources/xpbar_inc212.png rename to src/main/resources/xpbar_inc212.png diff --git a/src/resources/xpbar_inc213.png b/src/main/resources/xpbar_inc213.png similarity index 100% rename from src/resources/xpbar_inc213.png rename to src/main/resources/xpbar_inc213.png diff --git a/src/resources/xpbar_inc214.png b/src/main/resources/xpbar_inc214.png similarity index 100% rename from src/resources/xpbar_inc214.png rename to src/main/resources/xpbar_inc214.png diff --git a/src/resources/xpbar_inc215.png b/src/main/resources/xpbar_inc215.png similarity index 100% rename from src/resources/xpbar_inc215.png rename to src/main/resources/xpbar_inc215.png diff --git a/src/resources/xpbar_inc216.png b/src/main/resources/xpbar_inc216.png similarity index 100% rename from src/resources/xpbar_inc216.png rename to src/main/resources/xpbar_inc216.png diff --git a/src/resources/xpbar_inc217.png b/src/main/resources/xpbar_inc217.png similarity index 100% rename from src/resources/xpbar_inc217.png rename to src/main/resources/xpbar_inc217.png diff --git a/src/resources/xpbar_inc218.png b/src/main/resources/xpbar_inc218.png similarity index 100% rename from src/resources/xpbar_inc218.png rename to src/main/resources/xpbar_inc218.png diff --git a/src/resources/xpbar_inc219.png b/src/main/resources/xpbar_inc219.png similarity index 100% rename from src/resources/xpbar_inc219.png rename to src/main/resources/xpbar_inc219.png diff --git a/src/resources/xpbar_inc220.png b/src/main/resources/xpbar_inc220.png similarity index 100% rename from src/resources/xpbar_inc220.png rename to src/main/resources/xpbar_inc220.png diff --git a/src/resources/xpbar_inc221.png b/src/main/resources/xpbar_inc221.png similarity index 100% rename from src/resources/xpbar_inc221.png rename to src/main/resources/xpbar_inc221.png diff --git a/src/resources/xpbar_inc222.png b/src/main/resources/xpbar_inc222.png similarity index 100% rename from src/resources/xpbar_inc222.png rename to src/main/resources/xpbar_inc222.png diff --git a/src/resources/xpbar_inc223.png b/src/main/resources/xpbar_inc223.png similarity index 100% rename from src/resources/xpbar_inc223.png rename to src/main/resources/xpbar_inc223.png diff --git a/src/resources/xpbar_inc224.png b/src/main/resources/xpbar_inc224.png similarity index 100% rename from src/resources/xpbar_inc224.png rename to src/main/resources/xpbar_inc224.png diff --git a/src/resources/xpbar_inc225.png b/src/main/resources/xpbar_inc225.png similarity index 100% rename from src/resources/xpbar_inc225.png rename to src/main/resources/xpbar_inc225.png diff --git a/src/resources/xpbar_inc226.png b/src/main/resources/xpbar_inc226.png similarity index 100% rename from src/resources/xpbar_inc226.png rename to src/main/resources/xpbar_inc226.png diff --git a/src/resources/xpbar_inc227.png b/src/main/resources/xpbar_inc227.png similarity index 100% rename from src/resources/xpbar_inc227.png rename to src/main/resources/xpbar_inc227.png diff --git a/src/resources/xpbar_inc228.png b/src/main/resources/xpbar_inc228.png similarity index 100% rename from src/resources/xpbar_inc228.png rename to src/main/resources/xpbar_inc228.png diff --git a/src/resources/xpbar_inc229.png b/src/main/resources/xpbar_inc229.png similarity index 100% rename from src/resources/xpbar_inc229.png rename to src/main/resources/xpbar_inc229.png diff --git a/src/resources/xpbar_inc230.png b/src/main/resources/xpbar_inc230.png similarity index 100% rename from src/resources/xpbar_inc230.png rename to src/main/resources/xpbar_inc230.png diff --git a/src/resources/xpbar_inc231.png b/src/main/resources/xpbar_inc231.png similarity index 100% rename from src/resources/xpbar_inc231.png rename to src/main/resources/xpbar_inc231.png diff --git a/src/resources/xpbar_inc232.png b/src/main/resources/xpbar_inc232.png similarity index 100% rename from src/resources/xpbar_inc232.png rename to src/main/resources/xpbar_inc232.png diff --git a/src/resources/xpbar_inc233.png b/src/main/resources/xpbar_inc233.png similarity index 100% rename from src/resources/xpbar_inc233.png rename to src/main/resources/xpbar_inc233.png diff --git a/src/resources/xpbar_inc234.png b/src/main/resources/xpbar_inc234.png similarity index 100% rename from src/resources/xpbar_inc234.png rename to src/main/resources/xpbar_inc234.png diff --git a/src/resources/xpbar_inc235.png b/src/main/resources/xpbar_inc235.png similarity index 100% rename from src/resources/xpbar_inc235.png rename to src/main/resources/xpbar_inc235.png diff --git a/src/resources/xpbar_inc236.png b/src/main/resources/xpbar_inc236.png similarity index 100% rename from src/resources/xpbar_inc236.png rename to src/main/resources/xpbar_inc236.png diff --git a/src/resources/xpbar_inc237.png b/src/main/resources/xpbar_inc237.png similarity index 100% rename from src/resources/xpbar_inc237.png rename to src/main/resources/xpbar_inc237.png diff --git a/src/resources/xpbar_inc238.png b/src/main/resources/xpbar_inc238.png similarity index 100% rename from src/resources/xpbar_inc238.png rename to src/main/resources/xpbar_inc238.png diff --git a/src/resources/xpbar_inc239.png b/src/main/resources/xpbar_inc239.png similarity index 100% rename from src/resources/xpbar_inc239.png rename to src/main/resources/xpbar_inc239.png diff --git a/src/resources/xpbar_inc240.png b/src/main/resources/xpbar_inc240.png similarity index 100% rename from src/resources/xpbar_inc240.png rename to src/main/resources/xpbar_inc240.png diff --git a/src/resources/xpbar_inc241.png b/src/main/resources/xpbar_inc241.png similarity index 100% rename from src/resources/xpbar_inc241.png rename to src/main/resources/xpbar_inc241.png diff --git a/src/resources/xpbar_inc242.png b/src/main/resources/xpbar_inc242.png similarity index 100% rename from src/resources/xpbar_inc242.png rename to src/main/resources/xpbar_inc242.png diff --git a/src/resources/xpbar_inc243.png b/src/main/resources/xpbar_inc243.png similarity index 100% rename from src/resources/xpbar_inc243.png rename to src/main/resources/xpbar_inc243.png diff --git a/src/resources/xpbar_inc244.png b/src/main/resources/xpbar_inc244.png similarity index 100% rename from src/resources/xpbar_inc244.png rename to src/main/resources/xpbar_inc244.png diff --git a/src/resources/xpbar_inc245.png b/src/main/resources/xpbar_inc245.png similarity index 100% rename from src/resources/xpbar_inc245.png rename to src/main/resources/xpbar_inc245.png diff --git a/src/resources/xpbar_inc246.png b/src/main/resources/xpbar_inc246.png similarity index 100% rename from src/resources/xpbar_inc246.png rename to src/main/resources/xpbar_inc246.png diff --git a/src/resources/xpbar_inc247.png b/src/main/resources/xpbar_inc247.png similarity index 100% rename from src/resources/xpbar_inc247.png rename to src/main/resources/xpbar_inc247.png diff --git a/src/resources/xpbar_inc248.png b/src/main/resources/xpbar_inc248.png similarity index 100% rename from src/resources/xpbar_inc248.png rename to src/main/resources/xpbar_inc248.png diff --git a/src/resources/xpbar_inc249.png b/src/main/resources/xpbar_inc249.png similarity index 100% rename from src/resources/xpbar_inc249.png rename to src/main/resources/xpbar_inc249.png diff --git a/src/resources/xpbar_inc250.png b/src/main/resources/xpbar_inc250.png similarity index 100% rename from src/resources/xpbar_inc250.png rename to src/main/resources/xpbar_inc250.png diff --git a/src/resources/xpbar_inc251.png b/src/main/resources/xpbar_inc251.png similarity index 100% rename from src/resources/xpbar_inc251.png rename to src/main/resources/xpbar_inc251.png diff --git a/src/resources/xpbar_inc252.png b/src/main/resources/xpbar_inc252.png similarity index 100% rename from src/resources/xpbar_inc252.png rename to src/main/resources/xpbar_inc252.png diff --git a/src/resources/xpbar_inc253.png b/src/main/resources/xpbar_inc253.png similarity index 100% rename from src/resources/xpbar_inc253.png rename to src/main/resources/xpbar_inc253.png diff --git a/src/resources/xpbar_inc254.png b/src/main/resources/xpbar_inc254.png similarity index 100% rename from src/resources/xpbar_inc254.png rename to src/main/resources/xpbar_inc254.png