Getting project ready for Maven

This commit is contained in:
TheYeti 2012-01-09 11:00:13 -08:00
parent 7e200fd6a3
commit 376048d5aa
402 changed files with 17076 additions and 17076 deletions

View File

@ -1,420 +1,420 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50; package com.gmail.nossr50;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
import com.gmail.nossr50.skills.Acrobatics; import com.gmail.nossr50.skills.Acrobatics;
import com.gmail.nossr50.skills.Archery; import com.gmail.nossr50.skills.Archery;
import com.gmail.nossr50.skills.Axes; import com.gmail.nossr50.skills.Axes;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
import com.gmail.nossr50.skills.Swords; import com.gmail.nossr50.skills.Swords;
import com.gmail.nossr50.skills.Taming; import com.gmail.nossr50.skills.Taming;
import com.gmail.nossr50.skills.Unarmed; import com.gmail.nossr50.skills.Unarmed;
public class Combat public class Combat
{ {
public static void combatChecks(EntityDamageEvent event, mcMMO pluginx) public static void combatChecks(EntityDamageEvent event, mcMMO pluginx)
{ {
if(event.isCancelled() || event.getDamage() == 0) if(event.isCancelled() || event.getDamage() == 0)
return; return;
if(event instanceof EntityDamageByEntityEvent) if(event instanceof EntityDamageByEntityEvent)
{ {
/* /*
* OFFENSIVE CHECKS FOR PLAYERS VERSUS ENTITIES * OFFENSIVE CHECKS FOR PLAYERS VERSUS ENTITIES
*/ */
if(((EntityDamageByEntityEvent) event).getDamager() instanceof Player) if(((EntityDamageByEntityEvent) event).getDamager() instanceof Player)
{ {
//Declare Things //Declare Things
EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event;
Player attacker = (Player)((EntityDamageByEntityEvent) event).getDamager(); Player attacker = (Player)((EntityDamageByEntityEvent) event).getDamager();
PlayerProfile PPa = Users.getProfile(attacker); PlayerProfile PPa = Users.getProfile(attacker);
//Damage modifiers //Damage modifiers
if(mcPermissions.getInstance().unarmed(attacker) && attacker.getItemInHand().getTypeId() == 0) //Unarmed if(mcPermissions.getInstance().unarmed(attacker) && attacker.getItemInHand().getTypeId() == 0) //Unarmed
Unarmed.unarmedBonus(attacker, eventb); Unarmed.unarmedBonus(attacker, eventb);
if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker) && Users.getProfile(attacker).getSkillLevel(SkillType.AXES) >= 500) if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker) && Users.getProfile(attacker).getSkillLevel(SkillType.AXES) >= 500)
event.setDamage(event.getDamage()+4); event.setDamage(event.getDamage()+4);
//If there are any abilities to activate //If there are any abilities to activate
combatAbilityChecks(attacker, PPa, pluginx); combatAbilityChecks(attacker, PPa, pluginx);
//Check for offensive procs //Check for offensive procs
if(!(((EntityDamageByEntityEvent) event).getDamager() instanceof Arrow)) if(!(((EntityDamageByEntityEvent) event).getDamager() instanceof Arrow))
{ {
if(mcPermissions.getInstance().axes(attacker)) if(mcPermissions.getInstance().axes(attacker))
Axes.axeCriticalCheck(attacker, eventb, pluginx); //Axe Criticals Axes.axeCriticalCheck(attacker, eventb, pluginx); //Axe Criticals
if(!pluginx.misc.bleedTracker.contains((LivingEntity) event.getEntity())) //Swords Bleed if(!pluginx.misc.bleedTracker.contains((LivingEntity) event.getEntity())) //Swords Bleed
Swords.bleedCheck(attacker, (LivingEntity)event.getEntity(), pluginx); Swords.bleedCheck(attacker, (LivingEntity)event.getEntity(), pluginx);
if(event.getEntity() instanceof Player && mcPermissions.getInstance().unarmed(attacker)) if(event.getEntity() instanceof Player && mcPermissions.getInstance().unarmed(attacker))
{ {
Player defender = (Player)event.getEntity(); Player defender = (Player)event.getEntity();
Unarmed.disarmProcCheck(attacker, defender); Unarmed.disarmProcCheck(attacker, defender);
} }
//Modify the event damage if Attacker is Berserk //Modify the event damage if Attacker is Berserk
if(PPa.getBerserkMode()) if(PPa.getBerserkMode())
event.setDamage(event.getDamage() + (event.getDamage() / 2)); event.setDamage(event.getDamage() + (event.getDamage() / 2));
//Handle Ability Interactions //Handle Ability Interactions
if(PPa.getSkullSplitterMode() && m.isAxes(attacker.getItemInHand())) if(PPa.getSkullSplitterMode() && m.isAxes(attacker.getItemInHand()))
Axes.applyAoeDamage(attacker, eventb, pluginx); Axes.applyAoeDamage(attacker, eventb, pluginx);
if(PPa.getSerratedStrikesMode() && m.isSwords(attacker.getItemInHand())) if(PPa.getSerratedStrikesMode() && m.isSwords(attacker.getItemInHand()))
Swords.applySerratedStrikes(attacker, eventb, pluginx); Swords.applySerratedStrikes(attacker, eventb, pluginx);
//Experience //Experience
if(event.getEntity() instanceof Player) if(event.getEntity() instanceof Player)
{ {
Player defender = (Player)event.getEntity(); Player defender = (Player)event.getEntity();
PlayerProfile PPd = Users.getProfile(defender); PlayerProfile PPd = Users.getProfile(defender);
if(attacker != null && defender != null && LoadProperties.pvpxp) if(attacker != null && defender != null && LoadProperties.pvpxp)
{ {
if(System.currentTimeMillis() >= (PPd.getRespawnATS()*1000) + 5000 if(System.currentTimeMillis() >= (PPd.getRespawnATS()*1000) + 5000
&& ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis() && ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis()
&& defender.getHealth() >= 1) && defender.getHealth() >= 1)
{ {
//Prevent a ridiculous amount of XP being granted by capping it at the remaining health of the mob //Prevent a ridiculous amount of XP being granted by capping it at the remaining health of the mob
int hpLeft = defender.getHealth(), xpinc = 0; int hpLeft = defender.getHealth(), xpinc = 0;
if(hpLeft < event.getDamage()) if(hpLeft < event.getDamage())
xpinc = event.getDamage(); xpinc = event.getDamage();
else else
xpinc = hpLeft; xpinc = hpLeft;
int xp = (int) (xpinc * 2 * LoadProperties.pvpxprewardmodifier); int xp = (int) (xpinc * 2 * LoadProperties.pvpxprewardmodifier);
if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)) if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker))
PPa.addXP(SkillType.AXES, xp*10, attacker); PPa.addXP(SkillType.AXES, xp*10, attacker);
if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker)) if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker))
PPa.addXP(SkillType.SWORDS, xp*10, attacker); PPa.addXP(SkillType.SWORDS, xp*10, attacker);
if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker)) if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker))
PPa.addXP(SkillType.UNARMED, xp*10, attacker); PPa.addXP(SkillType.UNARMED, xp*10, attacker);
} }
} }
} }
if(!pluginx.misc.mobSpawnerList.contains(event.getEntity())) if(!pluginx.misc.mobSpawnerList.contains(event.getEntity()))
{ {
int xp = getXp(event.getEntity(), event); int xp = getXp(event.getEntity(), event);
if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker)) if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker))
PPa.addXP(SkillType.SWORDS, xp*10, attacker); PPa.addXP(SkillType.SWORDS, xp*10, attacker);
else if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)) else if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker))
PPa.addXP(SkillType.AXES, xp*10, attacker); PPa.addXP(SkillType.AXES, xp*10, attacker);
else if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker)) else if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker))
PPa.addXP(SkillType.UNARMED, xp*10, attacker); PPa.addXP(SkillType.UNARMED, xp*10, attacker);
} }
Skills.XpCheckAll(attacker); Skills.XpCheckAll(attacker);
if(event.getEntity() instanceof Wolf) if(event.getEntity() instanceof Wolf)
{ {
Wolf theWolf = (Wolf)event.getEntity(); Wolf theWolf = (Wolf)event.getEntity();
if(attacker.getItemInHand().getTypeId() == 352 && mcPermissions.getInstance().taming(attacker)) if(attacker.getItemInHand().getTypeId() == 352 && mcPermissions.getInstance().taming(attacker))
{ {
event.setCancelled(true); event.setCancelled(true);
if(theWolf.isTamed()) if(theWolf.isTamed())
{ {
attacker.sendMessage(mcLocale.getString("Combat.BeastLore")+" "+ attacker.sendMessage(mcLocale.getString("Combat.BeastLore")+" "+
mcLocale.getString("Combat.BeastLoreOwner", new Object[] {Taming.getOwnerName(theWolf)})+" "+ mcLocale.getString("Combat.BeastLoreOwner", new Object[] {Taming.getOwnerName(theWolf)})+" "+
mcLocale.getString("Combat.BeastLoreHealthWolfTamed", new Object[] {theWolf.getHealth()})); mcLocale.getString("Combat.BeastLoreHealthWolfTamed", new Object[] {theWolf.getHealth()}));
} }
else else
{ {
attacker.sendMessage(mcLocale.getString("Combat.BeastLore")+" "+ attacker.sendMessage(mcLocale.getString("Combat.BeastLore")+" "+
mcLocale.getString("Combat.BeastLoreHealthWolf", new Object[] {theWolf.getHealth()})); mcLocale.getString("Combat.BeastLoreHealthWolf", new Object[] {theWolf.getHealth()}));
} }
} }
} }
} }
} }
} }
/* /*
* OFFENSIVE CHECKS FOR WOLVES VERSUS ENTITIES * OFFENSIVE CHECKS FOR WOLVES VERSUS ENTITIES
*/ */
if(event instanceof EntityDamageByEntityEvent && ((EntityDamageByEntityEvent) event).getDamager() instanceof Wolf) if(event instanceof EntityDamageByEntityEvent && ((EntityDamageByEntityEvent) event).getDamager() instanceof Wolf)
{ {
EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event;
Wolf theWolf = (Wolf) eventb.getDamager(); Wolf theWolf = (Wolf) eventb.getDamager();
if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx)) if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx))
{ {
if(Taming.getOwner(theWolf, pluginx) == null) if(Taming.getOwner(theWolf, pluginx) == null)
return; return;
Player master = Taming.getOwner(theWolf, pluginx); Player master = Taming.getOwner(theWolf, pluginx);
PlayerProfile PPo = Users.getProfile(master); PlayerProfile PPo = Users.getProfile(master);
if(mcPermissions.getInstance().taming(master)) if(mcPermissions.getInstance().taming(master))
{ {
//Sharpened Claws //Sharpened Claws
if(PPo.getSkillLevel(SkillType.TAMING) >= 750) if(PPo.getSkillLevel(SkillType.TAMING) >= 750)
{ {
event.setDamage(event.getDamage() + 2); event.setDamage(event.getDamage() + 2);
} }
//Gore //Gore
if(Math.random() * 1000 <= PPo.getSkillLevel(SkillType.TAMING)) if(Math.random() * 1000 <= PPo.getSkillLevel(SkillType.TAMING))
{ {
event.setDamage(event.getDamage() * 2); event.setDamage(event.getDamage() * 2);
if(event.getEntity() instanceof Player) if(event.getEntity() instanceof Player)
{ {
Player target = (Player)event.getEntity(); Player target = (Player)event.getEntity();
target.sendMessage(mcLocale.getString("Combat.StruckByGore")); //$NON-NLS-1$ target.sendMessage(mcLocale.getString("Combat.StruckByGore")); //$NON-NLS-1$
Users.getProfile(target).setBleedTicks(2); Users.getProfile(target).setBleedTicks(2);
} }
else else
pluginx.misc.addToBleedQue((LivingEntity) event.getEntity()); pluginx.misc.addToBleedQue((LivingEntity) event.getEntity());
master.sendMessage(mcLocale.getString("Combat.Gore")); //$NON-NLS-1$ master.sendMessage(mcLocale.getString("Combat.Gore")); //$NON-NLS-1$
} }
if(!event.getEntity().isDead() && !pluginx.misc.mobSpawnerList.contains(event.getEntity())) if(!event.getEntity().isDead() && !pluginx.misc.mobSpawnerList.contains(event.getEntity()))
{ {
int xp = getXp(event.getEntity(), event); int xp = getXp(event.getEntity(), event);
Users.getProfile(master).addXP(SkillType.TAMING, xp*10, master); Users.getProfile(master).addXP(SkillType.TAMING, xp*10, master);
if(event.getEntity() instanceof Player) if(event.getEntity() instanceof Player)
{ {
xp = (event.getDamage() * 2); xp = (event.getDamage() * 2);
Users.getProfile(master).addXP(SkillType.TAMING, (int)((xp*10)*1.5), master); Users.getProfile(master).addXP(SkillType.TAMING, (int)((xp*10)*1.5), master);
} }
Skills.XpCheckSkill(SkillType.TAMING, master); Skills.XpCheckSkill(SkillType.TAMING, master);
} }
} }
} }
} }
//Another offensive check for Archery //Another offensive check for Archery
if(event instanceof EntityDamageByEntityEvent && event.getCause() == DamageCause.PROJECTILE && ((EntityDamageByEntityEvent) event).getDamager() instanceof Arrow) if(event instanceof EntityDamageByEntityEvent && event.getCause() == DamageCause.PROJECTILE && ((EntityDamageByEntityEvent) event).getDamager() instanceof Arrow)
archeryCheck((EntityDamageByEntityEvent)event, pluginx); archeryCheck((EntityDamageByEntityEvent)event, pluginx);
/* /*
* DEFENSIVE CHECKS * DEFENSIVE CHECKS
*/ */
if(event instanceof EntityDamageByEntityEvent && event.getEntity() instanceof Player) if(event instanceof EntityDamageByEntityEvent && event.getEntity() instanceof Player)
{ {
Swords.counterAttackChecks((EntityDamageByEntityEvent)event); Swords.counterAttackChecks((EntityDamageByEntityEvent)event);
Acrobatics.dodgeChecks((EntityDamageByEntityEvent)event); Acrobatics.dodgeChecks((EntityDamageByEntityEvent)event);
} }
/* /*
* DEFENSIVE CHECKS FOR WOLVES * DEFENSIVE CHECKS FOR WOLVES
*/ */
if(event.getEntity() instanceof Wolf) if(event.getEntity() instanceof Wolf)
{ {
Wolf theWolf = (Wolf) event.getEntity(); Wolf theWolf = (Wolf) event.getEntity();
if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx)) if(theWolf.isTamed() && Taming.ownerOnline(theWolf, pluginx))
{ {
if(Taming.getOwner(theWolf, pluginx) == null) if(Taming.getOwner(theWolf, pluginx) == null)
return; return;
Player master = Taming.getOwner(theWolf, pluginx); Player master = Taming.getOwner(theWolf, pluginx);
PlayerProfile PPo = Users.getProfile(master); PlayerProfile PPo = Users.getProfile(master);
if(mcPermissions.getInstance().taming(master)) if(mcPermissions.getInstance().taming(master))
{ {
//Shock-Proof //Shock-Proof
if((event.getCause() == DamageCause.ENTITY_EXPLOSION || event.getCause() == DamageCause.BLOCK_EXPLOSION) && PPo.getSkillLevel(SkillType.TAMING) >= 500) if((event.getCause() == DamageCause.ENTITY_EXPLOSION || event.getCause() == DamageCause.BLOCK_EXPLOSION) && PPo.getSkillLevel(SkillType.TAMING) >= 500)
{ {
event.setDamage(2); event.setDamage(2);
} }
//Thick Fur //Thick Fur
if(PPo.getSkillLevel(SkillType.TAMING) >= 250) if(PPo.getSkillLevel(SkillType.TAMING) >= 250)
event.setDamage(event.getDamage() / 2); event.setDamage(event.getDamage() / 2);
} }
} }
} }
} }
public static void combatAbilityChecks(Player attacker, PlayerProfile PPa, Plugin pluginx) public static void combatAbilityChecks(Player attacker, PlayerProfile PPa, Plugin pluginx)
{ {
//Check to see if any abilities need to be activated //Check to see if any abilities need to be activated
if(PPa.getAxePreparationMode()) if(PPa.getAxePreparationMode())
Axes.skullSplitterCheck(attacker); Axes.skullSplitterCheck(attacker);
if(PPa.getSwordsPreparationMode()) if(PPa.getSwordsPreparationMode())
Swords.serratedStrikesActivationCheck(attacker); Swords.serratedStrikesActivationCheck(attacker);
if(PPa.getFistsPreparationMode()) if(PPa.getFistsPreparationMode())
Unarmed.berserkActivationCheck(attacker); Unarmed.berserkActivationCheck(attacker);
} }
public static void archeryCheck(EntityDamageByEntityEvent event, mcMMO pluginx) public static void archeryCheck(EntityDamageByEntityEvent event, mcMMO pluginx)
{ {
Arrow arrow = (Arrow)event.getDamager(); Arrow arrow = (Arrow)event.getDamager();
Entity y = arrow.getShooter(); Entity y = arrow.getShooter();
Entity x = event.getEntity(); Entity x = event.getEntity();
if(x instanceof Player) if(x instanceof Player)
{ {
Player defender = (Player)x; Player defender = (Player)x;
PlayerProfile PPd = Users.getProfile(defender); PlayerProfile PPd = Users.getProfile(defender);
if(PPd == null) if(PPd == null)
Users.addUser(defender); Users.addUser(defender);
if(mcPermissions.getInstance().unarmed(defender) && defender.getItemInHand().getTypeId() == 0) if(mcPermissions.getInstance().unarmed(defender) && defender.getItemInHand().getTypeId() == 0)
{ {
if(defender != null && PPd.getSkillLevel(SkillType.UNARMED) >= 1000) if(defender != null && PPd.getSkillLevel(SkillType.UNARMED) >= 1000)
{ {
if(Math.random() * 1000 <= 500) if(Math.random() * 1000 <= 500)
{ {
event.setCancelled(true); event.setCancelled(true);
defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$
return; return;
} }
} else if(defender != null && Math.random() * 1000 <= (PPd.getSkillLevel(SkillType.UNARMED) / 2)) } else if(defender != null && Math.random() * 1000 <= (PPd.getSkillLevel(SkillType.UNARMED) / 2))
{ {
event.setCancelled(true); event.setCancelled(true);
defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$ defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); //$NON-NLS-1$
return; return;
} }
} }
} }
/* /*
* If attacker is player * If attacker is player
*/ */
if(y instanceof Player) if(y instanceof Player)
{ {
Player attacker = (Player)y; Player attacker = (Player)y;
PlayerProfile PPa = Users.getProfile(attacker); PlayerProfile PPa = Users.getProfile(attacker);
if(mcPermissions.getInstance().archery(attacker)) if(mcPermissions.getInstance().archery(attacker))
{ {
Archery.trackArrows(pluginx, x, event, attacker); Archery.trackArrows(pluginx, x, event, attacker);
/* /*
* IGNITION * IGNITION
*/ */
Archery.ignitionCheck(x, event, attacker); Archery.ignitionCheck(x, event, attacker);
/* /*
* Defender is Monster * Defender is Monster
*/ */
if(!pluginx.misc.mobSpawnerList.contains(x)) if(!pluginx.misc.mobSpawnerList.contains(x))
{ {
int xp = getXp(event.getEntity(), event); int xp = getXp(event.getEntity(), event);
PPa.addXP(SkillType.ARCHERY, xp*10, attacker); PPa.addXP(SkillType.ARCHERY, xp*10, attacker);
} }
/* /*
* Attacker is Player * Attacker is Player
*/ */
if(x instanceof Player){ if(x instanceof Player){
Player defender = (Player)x; Player defender = (Player)x;
PlayerProfile PPd = Users.getProfile(defender); PlayerProfile PPd = Users.getProfile(defender);
/* /*
* Stuff for the daze proc * Stuff for the daze proc
*/ */
if(PPa.inParty() && PPd.inParty()) if(PPa.inParty() && PPd.inParty())
{ {
if(Party.getInstance().inSameParty(defender, attacker)) if(Party.getInstance().inSameParty(defender, attacker))
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
} }
/* /*
* PVP XP * PVP XP
*/ */
if(LoadProperties.pvpxp && !Party.getInstance().inSameParty(attacker, defender) if(LoadProperties.pvpxp && !Party.getInstance().inSameParty(attacker, defender)
&& ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis() && !attacker.getName().equals(defender.getName())) && ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis() && !attacker.getName().equals(defender.getName()))
{ {
int xp = (int) ((event.getDamage() * 2) * 10); int xp = (int) ((event.getDamage() * 2) * 10);
PPa.addXP(SkillType.ARCHERY, xp, attacker); PPa.addXP(SkillType.ARCHERY, xp, attacker);
} }
/* /*
* DAZE PROC * DAZE PROC
*/ */
Archery.dazeCheck(defender, attacker); Archery.dazeCheck(defender, attacker);
} }
} }
Skills.XpCheckSkill(SkillType.ARCHERY, attacker); Skills.XpCheckSkill(SkillType.ARCHERY, attacker);
} }
} }
public static void dealDamage(Entity target, int dmg){ public static void dealDamage(Entity target, int dmg){
if(target instanceof Player){ if(target instanceof Player){
((Player) target).damage(dmg); ((Player) target).damage(dmg);
} }
if(target instanceof Animals){ if(target instanceof Animals){
((Animals) target).damage(dmg); ((Animals) target).damage(dmg);
} }
if(target instanceof Monster){ if(target instanceof Monster){
((Monster) target).damage(dmg); ((Monster) target).damage(dmg);
} }
} }
public static boolean pvpAllowed(EntityDamageByEntityEvent event, World world) public static boolean pvpAllowed(EntityDamageByEntityEvent event, World world)
{ {
if(!event.getEntity().getWorld().getPVP()) if(!event.getEntity().getWorld().getPVP())
return false; return false;
//If it made it this far, pvp is enabled //If it made it this far, pvp is enabled
return true; return true;
} }
public static int getXp(Entity entity, EntityDamageEvent event) public static int getXp(Entity entity, EntityDamageEvent event)
{ {
int xp = 0; int xp = 0;
if(entity instanceof LivingEntity) if(entity instanceof LivingEntity)
{ {
LivingEntity le = (LivingEntity)entity; LivingEntity le = (LivingEntity)entity;
//Prevent a ridiculous amount of XP being granted by capping it at the remaining health of the 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; int hpLeft = le.getHealth(), xpinc = 0;
if(hpLeft < event.getDamage()) if(hpLeft < event.getDamage())
xpinc = event.getDamage(); xpinc = event.getDamage();
else else
xpinc = hpLeft; xpinc = hpLeft;
if(entity instanceof Animals) if(entity instanceof Animals)
{ {
xp = (int) (xpinc * 1); xp = (int) (xpinc * 1);
} else } else
{ {
if(entity instanceof Enderman) if(entity instanceof Enderman)
xp = (xpinc * 2); xp = (xpinc * 2);
else if(entity instanceof Creeper) else if(entity instanceof Creeper)
xp = (xpinc * 4); xp = (xpinc * 4);
else if(entity instanceof Silverfish) else if(entity instanceof Silverfish)
xp = (xpinc * 3); xp = (xpinc * 3);
else if(entity instanceof CaveSpider) else if(entity instanceof CaveSpider)
xp = (xpinc * 3); xp = (xpinc * 3);
else if(entity instanceof Spider) else if(entity instanceof Spider)
xp = (xpinc * 3); xp = (xpinc * 3);
else if(entity instanceof Skeleton) else if(entity instanceof Skeleton)
xp = (xpinc * 2); xp = (xpinc * 2);
else if(entity instanceof Zombie) else if(entity instanceof Zombie)
xp = (xpinc * 2); xp = (xpinc * 2);
else if(entity instanceof PigZombie) else if(entity instanceof PigZombie)
xp = (xpinc * 3); xp = (xpinc * 3);
else if(entity instanceof Slime) else if(entity instanceof Slime)
xp = (xpinc * 2); xp = (xpinc * 2);
else if(entity instanceof Ghast) else if(entity instanceof Ghast)
xp = (xpinc * 3); xp = (xpinc * 3);
else if(entity instanceof Blaze) else if(entity instanceof Blaze)
xp = (xpinc * 3); xp = (xpinc * 3);
else if(entity instanceof EnderDragon) else if(entity instanceof EnderDragon)
xp = (xpinc * 8); xp = (xpinc * 8);
} }
} }
return xp; return xp;
} }
} }

View File

@ -1,211 +1,211 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50; package com.gmail.nossr50;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.HashMap; import java.util.HashMap;
import java.util.ArrayList; import java.util.ArrayList;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
public class Database { public class Database {
private mcMMO plugin; private mcMMO plugin;
private String connectionString; private String connectionString;
public Database(mcMMO instance) { public Database(mcMMO instance) {
this.plugin = instance; this.plugin = instance;
this.connectionString = "jdbc:mysql://" + LoadProperties.MySQLserverName + ":" + LoadProperties.MySQLport + "/" + LoadProperties.MySQLdbName + "?user=" + LoadProperties.MySQLuserName + "&password=" + LoadProperties.MySQLdbPass; this.connectionString = "jdbc:mysql://" + LoadProperties.MySQLserverName + ":" + LoadProperties.MySQLport + "/" + LoadProperties.MySQLdbName + "?user=" + LoadProperties.MySQLuserName + "&password=" + LoadProperties.MySQLdbPass;
// Load the driver instance // Load the driver instance
try { try {
Class.forName("com.mysql.jdbc.Driver"); Class.forName("com.mysql.jdbc.Driver");
DriverManager.getConnection(connectionString); DriverManager.getConnection(connectionString);
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
plugin.getServer().getLogger().warning(e.getLocalizedMessage()); plugin.getServer().getLogger().warning(e.getLocalizedMessage());
} catch (SQLException e) { } catch (SQLException e) {
plugin.getServer().getLogger().warning(e.getLocalizedMessage()); plugin.getServer().getLogger().warning(e.getLocalizedMessage());
System.out.println("SQLException: " + e.getMessage()); System.out.println("SQLException: " + e.getMessage());
System.out.println("SQLState: " + e.getSQLState()); System.out.println("SQLState: " + e.getSQLState());
System.out.println("VendorError: " + e.getErrorCode()); System.out.println("VendorError: " + e.getErrorCode());
} }
} }
//Create the DB structure //Create the DB structure
public void createStructure() { public void createStructure() {
Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "huds` (`user_id` int(10) unsigned NOT NULL," Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "huds` (`user_id` int(10) unsigned NOT NULL,"
+ "`hudtype` varchar(50) NOT NULL DEFAULT ''," + "`hudtype` varchar(50) NOT NULL DEFAULT '',"
+ "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + "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," Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "users` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,"
+ "`user` varchar(40) NOT NULL," + "`user` varchar(40) NOT NULL,"
+ "`lastlogin` int(32) unsigned NOT NULL," + "`lastlogin` int(32) unsigned NOT NULL,"
+ "`party` varchar(100) NOT NULL DEFAULT ''," + "`party` varchar(100) NOT NULL DEFAULT '',"
+ "PRIMARY KEY (`id`)," + "PRIMARY KEY (`id`),"
+ "UNIQUE KEY `user` (`user`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;"); + "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," Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "cooldowns` (`user_id` int(10) unsigned NOT NULL,"
+ "`taming` int(32) unsigned NOT NULL DEFAULT '0'," + "`taming` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`mining` int(32) unsigned NOT NULL DEFAULT '0'," + "`mining` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`woodcutting` int(32) unsigned NOT NULL DEFAULT '0'," + "`woodcutting` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`repair` int(32) unsigned NOT NULL DEFAULT '0'," + "`repair` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`unarmed` int(32) unsigned NOT NULL DEFAULT '0'," + "`unarmed` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`herbalism` int(32) unsigned NOT NULL DEFAULT '0'," + "`herbalism` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`excavation` int(32) unsigned NOT NULL DEFAULT '0'," + "`excavation` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`archery` int(32) unsigned NOT NULL DEFAULT '0'," + "`archery` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`swords` int(32) unsigned NOT NULL DEFAULT '0'," + "`swords` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`axes` int(32) unsigned NOT NULL DEFAULT '0'," + "`axes` int(32) unsigned NOT NULL DEFAULT '0',"
+ "`acrobatics` int(32) unsigned NOT NULL DEFAULT '0'," + "`acrobatics` int(32) unsigned NOT NULL DEFAULT '0',"
+ "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + "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," Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "skills` (`user_id` int(10) unsigned NOT NULL,"
+ "`taming` int(10) unsigned NOT NULL DEFAULT '0'," + "`taming` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`mining` int(10) unsigned NOT NULL DEFAULT '0'," + "`mining` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`repair` int(10) unsigned NOT NULL DEFAULT '0'," + "`repair` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," + "`excavation` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`archery` int(10) unsigned NOT NULL DEFAULT '0'," + "`archery` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`swords` int(10) unsigned NOT NULL DEFAULT '0'," + "`swords` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`axes` int(10) unsigned NOT NULL DEFAULT '0'," + "`axes` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0',"
+ "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + "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," Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "experience` (`user_id` int(10) unsigned NOT NULL,"
+ "`taming` int(10) unsigned NOT NULL DEFAULT '0'," + "`taming` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`mining` int(10) unsigned NOT NULL DEFAULT '0'," + "`mining` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`repair` int(10) unsigned NOT NULL DEFAULT '0'," + "`repair` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," + "`excavation` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`archery` int(10) unsigned NOT NULL DEFAULT '0'," + "`archery` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`swords` int(10) unsigned NOT NULL DEFAULT '0'," + "`swords` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`axes` int(10) unsigned NOT NULL DEFAULT '0'," + "`axes` int(10) unsigned NOT NULL DEFAULT '0',"
+ "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0',"
+ "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "spawn` (`user_id` int(10) NOT NULL," Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "spawn` (`user_id` int(10) NOT NULL,"
+ "`x` int(64) NOT NULL DEFAULT '0'," + "`x` int(64) NOT NULL DEFAULT '0',"
+ "`y` int(64) NOT NULL DEFAULT '0'," + "`y` int(64) NOT NULL DEFAULT '0',"
+ "`z` int(64) NOT NULL DEFAULT '0'," + "`z` int(64) NOT NULL DEFAULT '0',"
+ "`world` varchar(50) NOT NULL DEFAULT ''," + "`world` varchar(50) NOT NULL DEFAULT '',"
+ "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"skills2`"); Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"skills2`");
Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"experience2`"); Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"experience2`");
checkDatabaseStructure(); checkDatabaseStructure();
} }
public void checkDatabaseStructure() public void checkDatabaseStructure()
{ {
String sql = "SELECT * FROM `mcmmo_experience` ORDER BY `"+LoadProperties.MySQLtablePrefix+"experience`.`fishing` ASC LIMIT 0 , 30"; String sql = "SELECT * FROM `mcmmo_experience` ORDER BY `"+LoadProperties.MySQLtablePrefix+"experience`.`fishing` ASC LIMIT 0 , 30";
ResultSet rs = null; ResultSet rs = null;
HashMap<Integer, ArrayList<String>> Rows = new HashMap<Integer, ArrayList<String>>(); HashMap<Integer, ArrayList<String>> Rows = new HashMap<Integer, ArrayList<String>>();
try { try {
Connection conn = DriverManager.getConnection(connectionString); Connection conn = DriverManager.getConnection(connectionString);
PreparedStatement stmt = conn.prepareStatement(sql); PreparedStatement stmt = conn.prepareStatement(sql);
if (stmt.executeQuery() != null) { if (stmt.executeQuery() != null) {
stmt.executeQuery(); stmt.executeQuery();
rs = stmt.getResultSet(); rs = stmt.getResultSet();
while (rs.next()) { while (rs.next()) {
ArrayList<String> Col = new ArrayList<String>(); ArrayList<String> Col = new ArrayList<String>();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
Col.add(rs.getString(i)); Col.add(rs.getString(i));
} }
Rows.put(rs.getRow(), Col); Rows.put(rs.getRow(), Col);
} }
} }
conn.close(); conn.close();
} catch (SQLException ex) { } catch (SQLException ex) {
System.out.println("Updating mcMMO MySQL tables..."); 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 + "skills` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;");
Write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "experience` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;"); Write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "experience` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;");
} }
} }
// write query // write query
public boolean Write(String sql) { public boolean Write(String sql) {
try { try {
Connection conn = DriverManager.getConnection(connectionString); Connection conn = DriverManager.getConnection(connectionString);
PreparedStatement stmt = conn.prepareStatement(sql); PreparedStatement stmt = conn.prepareStatement(sql);
stmt.executeUpdate(); stmt.executeUpdate();
conn.close(); conn.close();
return true; return true;
} catch (SQLException ex) { } catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState()); System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode()); System.out.println("VendorError: " + ex.getErrorCode());
return false; return false;
} }
} }
// Get Int // Get Int
// only return first row / first field // only return first row / first field
public Integer GetInt(String sql) { public Integer GetInt(String sql) {
ResultSet rs = null; ResultSet rs = null;
Integer result = 0; Integer result = 0;
try { try {
Connection conn = DriverManager.getConnection(connectionString); Connection conn = DriverManager.getConnection(connectionString);
PreparedStatement stmt = conn.prepareStatement(sql); PreparedStatement stmt = conn.prepareStatement(sql);
stmt = conn.prepareStatement(sql); stmt = conn.prepareStatement(sql);
if (stmt.executeQuery() != null) { if (stmt.executeQuery() != null) {
stmt.executeQuery(); stmt.executeQuery();
rs = stmt.getResultSet(); rs = stmt.getResultSet();
if (rs.next()) { if (rs.next()) {
result = rs.getInt(1); result = rs.getInt(1);
} else { } else {
result = 0; result = 0;
} }
} }
conn.close(); conn.close();
} catch (SQLException ex) { } catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState()); System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode()); System.out.println("VendorError: " + ex.getErrorCode());
} }
return result; return result;
} }
// read query // read query
public HashMap<Integer, ArrayList<String>> Read(String sql) { public HashMap<Integer, ArrayList<String>> Read(String sql) {
ResultSet rs = null; ResultSet rs = null;
HashMap<Integer, ArrayList<String>> Rows = new HashMap<Integer, ArrayList<String>>(); HashMap<Integer, ArrayList<String>> Rows = new HashMap<Integer, ArrayList<String>>();
try { try {
Connection conn = DriverManager.getConnection(connectionString); Connection conn = DriverManager.getConnection(connectionString);
PreparedStatement stmt = conn.prepareStatement(sql); PreparedStatement stmt = conn.prepareStatement(sql);
if (stmt.executeQuery() != null) { if (stmt.executeQuery() != null) {
stmt.executeQuery(); stmt.executeQuery();
rs = stmt.getResultSet(); rs = stmt.getResultSet();
while (rs.next()) { while (rs.next()) {
ArrayList<String> Col = new ArrayList<String>(); ArrayList<String> Col = new ArrayList<String>();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
Col.add(rs.getString(i)); Col.add(rs.getString(i));
} }
Rows.put(rs.getRow(), Col); Rows.put(rs.getRow(), Col);
} }
} }
conn.close(); conn.close();
} catch (SQLException ex) { } catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState()); System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode()); System.out.println("VendorError: " + ex.getErrorCode());
} }
return Rows; return Rows;
} }
} }

View File

@ -1,104 +1,104 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50; package com.gmail.nossr50;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import com.gmail.nossr50.config.*; import com.gmail.nossr50.config.*;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.*; import com.gmail.nossr50.skills.*;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
public class Item { public class Item {
public static void itemchecks(Player player, Plugin plugin) public static void itemchecks(Player player, Plugin plugin)
{ {
ItemStack inhand = player.getItemInHand(); ItemStack inhand = player.getItemInHand();
if(LoadProperties.chimaeraWingEnable && inhand.getTypeId() == LoadProperties.chimaeraId) if(LoadProperties.chimaeraWingEnable && inhand.getTypeId() == LoadProperties.chimaeraId)
{ {
chimaerawing(player, plugin); chimaerawing(player, plugin);
} }
} }
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public static void chimaerawing(Player player, Plugin plugin) public static void chimaerawing(Player player, Plugin plugin)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
ItemStack is = player.getItemInHand(); ItemStack is = player.getItemInHand();
Block block = player.getLocation().getBlock(); Block block = player.getLocation().getBlock();
if(mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == LoadProperties.chimaeraId) if(mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == LoadProperties.chimaeraId)
{ {
if(Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing) if(Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing)
{ {
Block derp = player.getLocation().getBlock(); Block derp = player.getLocation().getBlock();
int y = derp.getY(); int y = derp.getY();
ItemStack[] inventory = player.getInventory().getContents(); ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){ for(ItemStack x : inventory){
if(x != null && x.getTypeId() == LoadProperties.chimaeraId){ if(x != null && x.getTypeId() == LoadProperties.chimaeraId){
if(x.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing + 1) if(x.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing + 1)
{ {
x.setAmount(x.getAmount() - LoadProperties.feathersConsumedByChimaeraWing); x.setAmount(x.getAmount() - LoadProperties.feathersConsumedByChimaeraWing);
player.getInventory().setContents(inventory); player.getInventory().setContents(inventory);
player.updateInventory(); player.updateInventory();
break; break;
} else { } else {
x.setAmount(0); x.setAmount(0);
x.setTypeId(0); x.setTypeId(0);
player.getInventory().setContents(inventory); player.getInventory().setContents(inventory);
player.updateInventory(); player.updateInventory();
break; break;
} }
} }
} }
while(y < 127) while(y < 127)
{ {
y++; y++;
if(player != null) if(player != null)
{ {
if(player.getLocation().getWorld().getBlockAt(block.getX(), y, block.getZ()).getType() != Material.AIR) if(player.getLocation().getWorld().getBlockAt(block.getX(), y, block.getZ()).getType() != Material.AIR)
{ {
player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail")); //$NON-NLS-1$ player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail")); //$NON-NLS-1$
player.teleport(player.getLocation().getWorld().getBlockAt(block.getX(), (y - 1), block.getZ()).getLocation()); player.teleport(player.getLocation().getWorld().getBlockAt(block.getX(), (y - 1), block.getZ()).getLocation());
return; return;
} }
} }
} }
if(PP.getMySpawn(player) != null) if(PP.getMySpawn(player) != null)
{ {
Location mySpawn = PP.getMySpawn(player); Location mySpawn = PP.getMySpawn(player);
if(mySpawn != null){ if(mySpawn != null){
player.teleport(mySpawn); //Do it twice to prevent weird stuff player.teleport(mySpawn); //Do it twice to prevent weird stuff
player.teleport(mySpawn); player.teleport(mySpawn);
} }
} else { } else {
player.teleport(player.getWorld().getSpawnLocation()); player.teleport(player.getWorld().getSpawnLocation());
} }
player.sendMessage(mcLocale.getString("Item.ChimaeraWingPass")); //$NON-NLS-1$ player.sendMessage(mcLocale.getString("Item.ChimaeraWingPass")); //$NON-NLS-1$
} else if (!Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= 10) } 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$ 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){ } else if (is.getTypeId() == LoadProperties.chimaeraId && is.getAmount() <= 9){
player.sendMessage(mcLocale.getString("Item.NeedFeathers")); //$NON-NLS-1$ player.sendMessage(mcLocale.getString("Item.NeedFeathers")); //$NON-NLS-1$
} }
} }
} }
} }

View File

@ -1,279 +1,279 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50; package com.gmail.nossr50;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerStat; import com.gmail.nossr50.datatypes.PlayerStat;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.datatypes.Tree; import com.gmail.nossr50.datatypes.Tree;
public class Leaderboard public class Leaderboard
{ {
static String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; //$NON-NLS-1$ static String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; //$NON-NLS-1$
protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$ protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$
/* /*
* Read from the file * Read from the file
*/ */
public static void makeLeaderboards() public static void makeLeaderboards()
{ {
//Make Trees //Make Trees
Tree Mining = new Tree(); Tree Mining = new Tree();
Tree WoodCutting = new Tree(); Tree WoodCutting = new Tree();
Tree Herbalism = new Tree(); Tree Herbalism = new Tree();
Tree Excavation = new Tree(); Tree Excavation = new Tree();
Tree Acrobatics = new Tree(); Tree Acrobatics = new Tree();
Tree Repair = new Tree(); Tree Repair = new Tree();
Tree Swords = new Tree(); Tree Swords = new Tree();
Tree Axes = new Tree(); Tree Axes = new Tree();
Tree Archery = new Tree(); Tree Archery = new Tree();
Tree Unarmed = new Tree(); Tree Unarmed = new Tree();
Tree Taming = new Tree(); Tree Taming = new Tree();
Tree Fishing = new Tree(); Tree Fishing = new Tree();
Tree Enchanting = new Tree(); Tree Enchanting = new Tree();
Tree Alchemy = new Tree(); Tree Alchemy = new Tree();
Tree PowerLevel = new Tree(); Tree PowerLevel = new Tree();
//Add Data To Trees //Add Data To Trees
try { try {
//Open the user file //Open the user file
FileReader file = new FileReader(location); FileReader file = new FileReader(location);
BufferedReader in = new BufferedReader(file); BufferedReader in = new BufferedReader(file);
String line = ""; //$NON-NLS-1$ String line = ""; //$NON-NLS-1$
ArrayList<String> players = new ArrayList<String>(); ArrayList<String> players = new ArrayList<String>();
while((line = in.readLine()) != null) while((line = in.readLine()) != null)
{ {
String[] character = line.split(":"); //$NON-NLS-1$ String[] character = line.split(":"); //$NON-NLS-1$
String p = character[0]; String p = character[0];
//Prevent the same player from being added multiple times //Prevent the same player from being added multiple times
if(players.contains(p)) if(players.contains(p))
continue; continue;
else else
players.add(p); players.add(p);
int Plvl = 0; int Plvl = 0;
if(character.length > 1 && m.isInt(character[1])) if(character.length > 1 && m.isInt(character[1]))
{ {
Mining.add(p, Integer.valueOf(character[1])); Mining.add(p, Integer.valueOf(character[1]));
Plvl += Integer.valueOf(character[1]); Plvl += Integer.valueOf(character[1]);
} }
if(character.length > 5 && m.isInt(character[5])){ if(character.length > 5 && m.isInt(character[5])){
WoodCutting.add(p, Integer.valueOf(character[5])); WoodCutting.add(p, Integer.valueOf(character[5]));
Plvl += Integer.valueOf(character[5]); Plvl += Integer.valueOf(character[5]);
} }
if(character.length > 7 && m.isInt(character[7])){ if(character.length > 7 && m.isInt(character[7])){
Repair.add(p, Integer.valueOf(character[7])); Repair.add(p, Integer.valueOf(character[7]));
Plvl += Integer.valueOf(character[7]); Plvl += Integer.valueOf(character[7]);
} }
if(character.length > 8 && m.isInt(character[8])){ if(character.length > 8 && m.isInt(character[8])){
Unarmed.add(p, Integer.valueOf(character[8])); Unarmed.add(p, Integer.valueOf(character[8]));
Plvl += Integer.valueOf(character[8]); Plvl += Integer.valueOf(character[8]);
} }
if(character.length > 9 && m.isInt(character[9])){ if(character.length > 9 && m.isInt(character[9])){
Herbalism.add(p, Integer.valueOf(character[9])); Herbalism.add(p, Integer.valueOf(character[9]));
Plvl += Integer.valueOf(character[9]); Plvl += Integer.valueOf(character[9]);
} }
if(character.length > 10 && m.isInt(character[10])){ if(character.length > 10 && m.isInt(character[10])){
Excavation.add(p, Integer.valueOf(character[10])); Excavation.add(p, Integer.valueOf(character[10]));
Plvl += Integer.valueOf(character[10]); Plvl += Integer.valueOf(character[10]);
} }
if(character.length > 11 && m.isInt(character[11])){ if(character.length > 11 && m.isInt(character[11])){
Archery.add(p, Integer.valueOf(character[11])); Archery.add(p, Integer.valueOf(character[11]));
Plvl += Integer.valueOf(character[11]); Plvl += Integer.valueOf(character[11]);
} }
if(character.length > 12 && m.isInt(character[12])){ if(character.length > 12 && m.isInt(character[12])){
Swords.add(p, Integer.valueOf(character[12])); Swords.add(p, Integer.valueOf(character[12]));
Plvl += Integer.valueOf(character[12]); Plvl += Integer.valueOf(character[12]);
} }
if(character.length > 13 && m.isInt(character[13])){ if(character.length > 13 && m.isInt(character[13])){
Axes.add(p, Integer.valueOf(character[13])); Axes.add(p, Integer.valueOf(character[13]));
Plvl += Integer.valueOf(character[13]); Plvl += Integer.valueOf(character[13]);
} }
if(character.length > 14 && m.isInt(character[14])){ if(character.length > 14 && m.isInt(character[14])){
Acrobatics.add(p, Integer.valueOf(character[14])); Acrobatics.add(p, Integer.valueOf(character[14]));
Plvl += Integer.valueOf(character[14]); Plvl += Integer.valueOf(character[14]);
} }
if(character.length > 24 && m.isInt(character[24])){ if(character.length > 24 && m.isInt(character[24])){
Taming.add(p, Integer.valueOf(character[24])); Taming.add(p, Integer.valueOf(character[24]));
Plvl += Integer.valueOf(character[24]); Plvl += Integer.valueOf(character[24]);
} }
if(character.length > 34 && m.isInt(character[34])) if(character.length > 34 && m.isInt(character[34]))
{ {
Fishing.add(p, Integer.valueOf(character[34])); Fishing.add(p, Integer.valueOf(character[34]));
Plvl += Integer.valueOf(character[34]); Plvl += Integer.valueOf(character[34]);
} }
PowerLevel.add(p, Plvl); PowerLevel.add(p, Plvl);
} }
in.close(); in.close();
} catch (Exception e) { } catch (Exception e) {
log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$ log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$
+ location + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ + location + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$
} }
//Write the leader board files //Write the leader board files
leaderWrite(Mining.inOrder(), SkillType.MINING); //$NON-NLS-1$ leaderWrite(Mining.inOrder(), SkillType.MINING); //$NON-NLS-1$
leaderWrite(WoodCutting.inOrder(), SkillType.WOODCUTTING); //$NON-NLS-1$ leaderWrite(WoodCutting.inOrder(), SkillType.WOODCUTTING); //$NON-NLS-1$
leaderWrite(Repair.inOrder(), SkillType.REPAIR); //$NON-NLS-1$ leaderWrite(Repair.inOrder(), SkillType.REPAIR); //$NON-NLS-1$
leaderWrite(Unarmed.inOrder(), SkillType.UNARMED); //$NON-NLS-1$ leaderWrite(Unarmed.inOrder(), SkillType.UNARMED); //$NON-NLS-1$
leaderWrite(Herbalism.inOrder(), SkillType.HERBALISM); //$NON-NLS-1$ leaderWrite(Herbalism.inOrder(), SkillType.HERBALISM); //$NON-NLS-1$
leaderWrite(Excavation.inOrder(), SkillType.EXCAVATION); //$NON-NLS-1$ leaderWrite(Excavation.inOrder(), SkillType.EXCAVATION); //$NON-NLS-1$
leaderWrite(Archery.inOrder(), SkillType.ARCHERY); //$NON-NLS-1$ leaderWrite(Archery.inOrder(), SkillType.ARCHERY); //$NON-NLS-1$
leaderWrite(Swords.inOrder(), SkillType.SWORDS); //$NON-NLS-1$ leaderWrite(Swords.inOrder(), SkillType.SWORDS); //$NON-NLS-1$
leaderWrite(Axes.inOrder(), SkillType.AXES); //$NON-NLS-1$ leaderWrite(Axes.inOrder(), SkillType.AXES); //$NON-NLS-1$
leaderWrite(Acrobatics.inOrder(), SkillType.ACROBATICS); //$NON-NLS-1$ leaderWrite(Acrobatics.inOrder(), SkillType.ACROBATICS); //$NON-NLS-1$
leaderWrite(Taming.inOrder(), SkillType.TAMING); //$NON-NLS-1$ leaderWrite(Taming.inOrder(), SkillType.TAMING); //$NON-NLS-1$
leaderWrite(Fishing.inOrder(), SkillType.FISHING); //$NON-NLS-1$ leaderWrite(Fishing.inOrder(), SkillType.FISHING); //$NON-NLS-1$
leaderWrite(Alchemy.inOrder(), SkillType.ALCHEMY); //$NON-NLS-1$ leaderWrite(Alchemy.inOrder(), SkillType.ALCHEMY); //$NON-NLS-1$
leaderWrite(Enchanting.inOrder(), SkillType.ENCHANTING); //$NON-NLS-1$ leaderWrite(Enchanting.inOrder(), SkillType.ENCHANTING); //$NON-NLS-1$
leaderWrite(PowerLevel.inOrder(), SkillType.ALL); //$NON-NLS-1$ leaderWrite(PowerLevel.inOrder(), SkillType.ALL); //$NON-NLS-1$
} }
public static void leaderWrite(PlayerStat[] ps, SkillType skillType) public static void leaderWrite(PlayerStat[] ps, SkillType skillType)
{ {
String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
//CHECK IF THE FILE EXISTS //CHECK IF THE FILE EXISTS
File theDir = new File(theLocation); File theDir = new File(theLocation);
if(!theDir.exists()) if(!theDir.exists())
{ {
//properties = new PropertiesFile(location); //properties = new PropertiesFile(location);
FileWriter writer = null; FileWriter writer = null;
try { try {
writer = new FileWriter(theLocation); writer = new FileWriter(theLocation);
} catch (Exception e) { } catch (Exception e) {
log.log(Level.SEVERE, "Exception while creating " + theLocation, e); //$NON-NLS-1$ log.log(Level.SEVERE, "Exception while creating " + theLocation, e); //$NON-NLS-1$
} finally { } finally {
try { try {
if (writer != null) { if (writer != null) {
writer.close(); writer.close();
} }
} catch (IOException e) { } catch (IOException e) {
log.log(Level.SEVERE, "Exception while closing writer for " + theLocation, e); //$NON-NLS-1$ log.log(Level.SEVERE, "Exception while closing writer for " + theLocation, e); //$NON-NLS-1$
} }
} }
} else { } else {
try { try {
FileReader file = new FileReader(theLocation); FileReader file = new FileReader(theLocation);
//HERP //HERP
BufferedReader in = new BufferedReader(file); BufferedReader in = new BufferedReader(file);
StringBuilder writer = new StringBuilder(); StringBuilder writer = new StringBuilder();
for(PlayerStat p : ps) for(PlayerStat p : ps)
{ {
if(p.name.equals("$mcMMO_DummyInfo")) //$NON-NLS-1$ if(p.name.equals("$mcMMO_DummyInfo")) //$NON-NLS-1$
continue; continue;
if(p.statVal == 0) if(p.statVal == 0)
continue; continue;
writer.append(p.name + ":" + p.statVal); //$NON-NLS-1$ writer.append(p.name + ":" + p.statVal); //$NON-NLS-1$
writer.append("\r\n"); //$NON-NLS-1$ writer.append("\r\n"); //$NON-NLS-1$
} }
in.close(); in.close();
//Write the new file //Write the new file
FileWriter out = new FileWriter(theLocation); FileWriter out = new FileWriter(theLocation);
out.write(writer.toString()); out.write(writer.toString());
out.close(); out.close();
} catch (Exception e) { } 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$ 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 //Create/open the file
//Loop through backward writing each player //Loop through backward writing each player
//Close the file //Close the file
} }
public static String[] retrieveInfo(String skillName, int pagenumber) public static String[] retrieveInfo(String skillName, int pagenumber)
{ {
String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
try { try {
FileReader file = new FileReader(theLocation); FileReader file = new FileReader(theLocation);
BufferedReader in = new BufferedReader(file); BufferedReader in = new BufferedReader(file);
int destination = (pagenumber - 1) * 10; //How many lines to skip through int destination = (pagenumber - 1) * 10; //How many lines to skip through
int x = 0; //how many lines we've gone through int x = 0; //how many lines we've gone through
int y = 0; //going through the lines int y = 0; //going through the lines
String line = ""; //$NON-NLS-1$ String line = ""; //$NON-NLS-1$
String[] info = new String[10]; //what to return String[] info = new String[10]; //what to return
while((line = in.readLine()) != null && y < 10) while((line = in.readLine()) != null && y < 10)
{ {
x++; x++;
if(x >= destination && y < 10){ if(x >= destination && y < 10){
info[y] = line.toString(); info[y] = line.toString();
y++; y++;
} }
} }
in.close(); in.close();
return info; return info;
} catch (Exception e) { } catch (Exception e) {
log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$ log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$
+ theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$
} }
return null; //Shouldn't get here return null; //Shouldn't get here
} }
public static void updateLeaderboard(PlayerStat ps, SkillType skillType) public static void updateLeaderboard(PlayerStat ps, SkillType skillType)
{ {
if(LoadProperties.useMySQL) if(LoadProperties.useMySQL)
return; return;
String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$ String theLocation = "plugins/mcMMO/FlatFileStuff/Leaderboards/" + skillType + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
try { try {
//Open the file //Open the file
FileReader file = new FileReader(theLocation); FileReader file = new FileReader(theLocation);
BufferedReader in = new BufferedReader(file); BufferedReader in = new BufferedReader(file);
StringBuilder writer = new StringBuilder(); StringBuilder writer = new StringBuilder();
String line = ""; //$NON-NLS-1$ String line = ""; //$NON-NLS-1$
Boolean inserted = false; Boolean inserted = false;
//While not at the end of the file //While not at the end of the file
while((line = in.readLine()) != null) while((line = in.readLine()) != null)
{ {
//Insert the player into the line before it finds a smaller one //Insert the player into the line before it finds a smaller one
if(Integer.valueOf(line.split(":")[1]) < ps.statVal && !inserted) //$NON-NLS-1$ 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$ writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
inserted = true; inserted = true;
} }
//Write anything that isn't the player already in the file so we remove the duplicate //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$ if(!line.split(":")[0].equalsIgnoreCase(ps.name)) //$NON-NLS-1$
{ {
writer.append(line).append("\r\n"); //$NON-NLS-1$ writer.append(line).append("\r\n"); //$NON-NLS-1$
} }
} }
if(!inserted) if(!inserted)
{ {
writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$ writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
} }
in.close(); in.close();
//Write the new file //Write the new file
FileWriter out = new FileWriter(theLocation); FileWriter out = new FileWriter(theLocation);
out.write(writer.toString()); out.write(writer.toString());
out.close(); out.close();
} catch (Exception e) { } 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$ log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$
} }
} }
} }

View File

@ -1,112 +1,112 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50; package com.gmail.nossr50;
import java.io.*; import java.io.*;
import java.util.Properties; import java.util.Properties;
import java.util.logging.Logger; import java.util.logging.Logger;
import java.util.HashMap; import java.util.HashMap;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
public class Users { public class Users {
private static volatile Users instance; private static volatile Users instance;
protected static final Logger log = Logger.getLogger("Minecraft"); protected static final Logger log = Logger.getLogger("Minecraft");
String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users"; String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users";
String directory = "plugins/mcMMO/FlatFileStuff/"; String directory = "plugins/mcMMO/FlatFileStuff/";
String directoryb = "plugins/mcMMO/FlatFileStuff/Leaderboards/"; String directoryb = "plugins/mcMMO/FlatFileStuff/Leaderboards/";
//public static ArrayList<PlayerProfile> players; //public static ArrayList<PlayerProfile> players;
public static HashMap<Player, PlayerProfile> players = new HashMap<Player, PlayerProfile>(); public static HashMap<Player, PlayerProfile> players = new HashMap<Player, PlayerProfile>();
private Properties properties = new Properties(); private Properties properties = new Properties();
//To load //To load
public void load() throws IOException { public void load() throws IOException {
properties.load(new FileInputStream(location)); properties.load(new FileInputStream(location));
} }
//To save //To save
public void save() public void save()
{ {
try try
{ {
properties.store(new FileOutputStream(location), null); properties.store(new FileOutputStream(location), null);
}catch(IOException ex) { }catch(IOException ex) {
} }
} }
public void loadUsers() public void loadUsers()
{ {
new File(directory).mkdir(); new File(directory).mkdir();
new File(directoryb).mkdir(); new File(directoryb).mkdir();
File theDir = new File(location); File theDir = new File(location);
if(!theDir.exists()) if(!theDir.exists())
{ {
try { try {
FileWriter writer = new FileWriter(theDir); FileWriter writer = new FileWriter(theDir);
writer.close(); writer.close();
} catch (IOException e) { } catch (IOException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
} }
} }
public static void addUser(Player player) public static void addUser(Player player)
{ {
players.put(player, new PlayerProfile(player)); players.put(player, new PlayerProfile(player));
} }
public static void clearUsers() public static void clearUsers()
{ {
players.clear(); players.clear();
} }
public static HashMap<Player, PlayerProfile> getProfiles(){ public static HashMap<Player, PlayerProfile> getProfiles(){
return players; return players;
} }
public static void removeUser(Player player) public static void removeUser(Player player)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(PP != null) if(PP != null)
{ {
PP.save(); PP.save();
if(players.containsKey(player)) if(players.containsKey(player))
players.remove(player); players.remove(player);
} }
} }
public static PlayerProfile getProfile(Player player){ public static PlayerProfile getProfile(Player player){
if(players.get(player) != null) if(players.get(player) != null)
return players.get(player); return players.get(player);
else else
{ {
players.put(player, new PlayerProfile(player)); players.put(player, new PlayerProfile(player));
return players.get(player); return players.get(player);
} }
} }
public static Users getInstance() { public static Users getInstance() {
if (instance == null) { if (instance == null) {
instance = new Users(); instance = new Users();
} }
return instance; return instance;
} }
} }

View File

@ -1,86 +1,86 @@
package com.gmail.nossr50.commands.general; package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
public class AddxpCommand implements CommandExecutor { public class AddxpCommand implements CommandExecutor {
private final mcMMO plugin; private final mcMMO plugin;
public AddxpCommand(mcMMO instance) { public AddxpCommand(mcMMO instance) {
this.plugin = instance; this.plugin = instance;
} }
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!mcPermissions.permissionsEnabled) { if (!mcPermissions.permissionsEnabled) {
sender.sendMessage("This command requires permissions."); sender.sendMessage("This command requires permissions.");
return true; return true;
} }
if (!LoadProperties.addxpEnable) { if (!LoadProperties.addxpEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
if (args.length < 2) { if (args.length < 2) {
// No console aliasing yet // No console aliasing yet
// System.out.println("Usage is /"+LoadProperties.addxp+" playername skillname xp"); // System.out.println("Usage is /"+LoadProperties.addxp+" playername skillname xp");
System.out.println("Usage is /addxp playername skillname xp"); System.out.println("Usage is /addxp playername skillname xp");
return true; return true;
} else if (args.length == 3) { } else if (args.length == 3) {
if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) {
int newvalue = Integer.valueOf(args[2]); int newvalue = Integer.valueOf(args[2]);
Users.getProfile(plugin.getServer().getPlayer(args[0])).addXP(Skills.getSkillType(args[1]), newvalue, plugin.getServer().getPlayer(args[0])); 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!"); 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() + "."); System.out.println(args[1] + " has been modified for " + plugin.getServer().getPlayer(args[0]).getName() + ".");
Skills.XpCheckAll(plugin.getServer().getPlayer(args[0])); Skills.XpCheckAll(plugin.getServer().getPlayer(args[0]));
} }
} else { } else {
// No console aliasing yet // No console aliasing yet
// System.out.println("Usage is /"+LoadProperties.addxp+" playername skillname xp"); // System.out.println("Usage is /"+LoadProperties.addxp+" playername skillname xp");
System.out.println("Usage is /addxp playername skillname xp"); System.out.println("Usage is /addxp playername skillname xp");
} }
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
if (!mcPermissions.getInstance().mmoedit(player)) { if (!mcPermissions.getInstance().mmoedit(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
if (args.length < 2) { if (args.length < 2) {
player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp"); player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp");
return true; return true;
} }
if (args.length == 3) { if (args.length == 3) {
if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) {
int newvalue = Integer.valueOf(args[2]); int newvalue = Integer.valueOf(args[2]);
Users.getProfile(plugin.getServer().getPlayer(args[0])).addXP(Skills.getSkillType(args[1]), newvalue, plugin.getServer().getPlayer(args[0])); 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!"); plugin.getServer().getPlayer(args[0]).sendMessage(ChatColor.GREEN + "Experience granted!");
player.sendMessage(ChatColor.RED + args[1] + " has been modified."); player.sendMessage(ChatColor.RED + args[1] + " has been modified.");
Skills.XpCheckAll(plugin.getServer().getPlayer(args[0])); Skills.XpCheckAll(plugin.getServer().getPlayer(args[0]));
} }
} else if (args.length == 2 && m.isInt(args[1]) && Skills.isSkill(args[0])) { } else if (args.length == 2 && m.isInt(args[1]) && Skills.isSkill(args[0])) {
int newvalue = Integer.valueOf(args[1]); int newvalue = Integer.valueOf(args[1]);
Users.getProfile(player).addXP(Skills.getSkillType(args[0]), newvalue, player); Users.getProfile(player).addXP(Skills.getSkillType(args[0]), newvalue, player);
player.sendMessage(ChatColor.RED + args[0] + " has been modified."); player.sendMessage(ChatColor.RED + args[0] + " has been modified.");
} else { } else {
player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp"); player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.addxp + " playername skillname xp");
} }
return true; return true;
} }
} }

View File

@ -1,46 +1,46 @@
package com.gmail.nossr50.commands.general; package com.gmail.nossr50.commands.general;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class ClearmyspawnCommand implements CommandExecutor { public class ClearmyspawnCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.clearmyspawnEnable || !LoadProperties.enableMySpawn) { if (!LoadProperties.clearmyspawnEnable || !LoadProperties.enableMySpawn) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().mySpawn(player)) { if (!mcPermissions.getInstance().mySpawn(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
double x = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getX(); double x = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getX();
double y = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getY(); double y = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getY();
double z = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getZ(); double z = Bukkit.getServer().getWorlds().get(0).getSpawnLocation().getZ();
String worldname = Bukkit.getServer().getWorlds().get(0).getName(); String worldname = Bukkit.getServer().getWorlds().get(0).getName();
PP.setMySpawn(x, y, z, worldname); PP.setMySpawn(x, y, z, worldname);
player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnCleared")); player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnCleared"));
return true; return true;
} }
} }

View File

@ -1,83 +1,83 @@
package com.gmail.nossr50.commands.general; package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
public class MmoeditCommand implements CommandExecutor { public class MmoeditCommand implements CommandExecutor {
private final mcMMO plugin; private final mcMMO plugin;
public MmoeditCommand(mcMMO instance) { public MmoeditCommand(mcMMO instance) {
this.plugin = instance; this.plugin = instance;
} }
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!mcPermissions.permissionsEnabled) { if (!mcPermissions.permissionsEnabled) {
sender.sendMessage("This command requires permissions."); sender.sendMessage("This command requires permissions.");
return true; return true;
} }
if (!LoadProperties.mmoeditEnable) { if (!LoadProperties.mmoeditEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
if (args.length < 2) { if (args.length < 2) {
System.out.println("Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); System.out.println("Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue");
return true; return true;
} else if (args.length == 3) { } else if (args.length == 3) {
if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) {
int newvalue = Integer.valueOf(args[2]); int newvalue = Integer.valueOf(args[2]);
Users.getProfile(plugin.getServer().getPlayer(args[0])).modifyskill(Skills.getSkillType(args[1]), newvalue); 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() + "."); System.out.println(args[1] + " has been modified for " + plugin.getServer().getPlayer(args[0]).getName() + ".");
} }
} else { } else {
System.out.println("Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); System.out.println("Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue");
} }
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().mmoedit(player)) { if (!mcPermissions.getInstance().mmoedit(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
if (args.length < 2) { if (args.length < 2) {
player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue");
return true; return true;
} }
if (args.length == 3) { if (args.length == 3) {
if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) { if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) {
int newvalue = Integer.valueOf(args[2]); int newvalue = Integer.valueOf(args[2]);
Users.getProfile(plugin.getServer().getPlayer(args[0])).modifyskill(Skills.getSkillType(args[1]), newvalue); Users.getProfile(plugin.getServer().getPlayer(args[0])).modifyskill(Skills.getSkillType(args[1]), newvalue);
player.sendMessage(ChatColor.RED + args[1] + " has been modified."); player.sendMessage(ChatColor.RED + args[1] + " has been modified.");
} }
} else if (args.length == 2) { } else if (args.length == 2) {
if (m.isInt(args[1]) && Skills.isSkill(args[0])) { if (m.isInt(args[1]) && Skills.isSkill(args[0])) {
int newvalue = Integer.valueOf(args[1]); int newvalue = Integer.valueOf(args[1]);
PP.modifyskill(Skills.getSkillType(args[0]), newvalue); PP.modifyskill(Skills.getSkillType(args[0]), newvalue);
player.sendMessage(ChatColor.RED + args[0] + " has been modified."); player.sendMessage(ChatColor.RED + args[0] + " has been modified.");
} }
} else { } else {
player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue"); player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.mmoedit + " playername skillname newvalue");
} }
return true; return true;
} }
} }

View File

@ -1,39 +1,39 @@
package com.gmail.nossr50.commands.general; package com.gmail.nossr50.commands.general;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class MmoupdateCommand implements CommandExecutor { public class MmoupdateCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
if (!mcPermissions.getInstance().admin(player)) { if (!mcPermissions.getInstance().admin(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
player.sendMessage(ChatColor.GRAY + "Starting conversion..."); player.sendMessage(ChatColor.GRAY + "Starting conversion...");
Users.clearUsers(); Users.clearUsers();
m.convertToMySQL(); m.convertToMySQL();
for (Player x : Bukkit.getServer().getOnlinePlayers()) { for (Player x : Bukkit.getServer().getOnlinePlayers()) {
Users.addUser(x); Users.addUser(x);
} }
player.sendMessage(ChatColor.GREEN + "Conversion finished!"); player.sendMessage(ChatColor.GREEN + "Conversion finished!");
return true; return true;
} }
} }

View File

@ -1,58 +1,58 @@
package com.gmail.nossr50.commands.general; package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class MyspawnCommand implements CommandExecutor { public class MyspawnCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.myspawnEnable || !LoadProperties.enableMySpawn) { if (!LoadProperties.myspawnEnable || !LoadProperties.enableMySpawn) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().mySpawn(player)) { if (!mcPermissions.getInstance().mySpawn(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
if (System.currentTimeMillis() < (PP.getMySpawnATS() * 1000) + 3600000) { if (System.currentTimeMillis() < (PP.getMySpawnATS() * 1000) + 3600000) {
long x = (((PP.getMySpawnATS() * 1000) + 3600000) - System.currentTimeMillis()); long x = (((PP.getMySpawnATS() * 1000) + 3600000) - System.currentTimeMillis());
int y = (int) (x / 60000); int y = (int) (x / 60000);
int z = (int) ((x / 1000) - (y * 60)); int z = (int) ((x / 1000) - (y * 60));
player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnTimeNotice", new Object[] { y, z })); player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnTimeNotice", new Object[] { y, z }));
return true; return true;
} }
PP.setMySpawnATS(System.currentTimeMillis()); PP.setMySpawnATS(System.currentTimeMillis());
if (PP.getMySpawn(player) != null) { if (PP.getMySpawn(player) != null) {
Location mySpawn = PP.getMySpawn(player); Location mySpawn = PP.getMySpawn(player);
if (mySpawn != null) { if (mySpawn != null) {
// It's done twice because it acts oddly when you are in another world // It's done twice because it acts oddly when you are in another world
player.teleport(mySpawn); player.teleport(mySpawn);
player.teleport(mySpawn); player.teleport(mySpawn);
} }
} else { } else {
player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnNotExist")); player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnNotExist"));
} }
return true; return true;
} }
} }

View File

@ -1,85 +1,85 @@
package com.gmail.nossr50.commands.general; package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
public class StatsCommand implements CommandExecutor { public class StatsCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.statsEnable) { if (!LoadProperties.statsEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
player.sendMessage(mcLocale.getString("mcPlayerListener.YourStats")); player.sendMessage(mcLocale.getString("mcPlayerListener.YourStats"));
if (mcPermissions.getEnabled()) if (mcPermissions.getEnabled())
player.sendMessage(mcLocale.getString("mcPlayerListener.NoSkillNote")); player.sendMessage(mcLocale.getString("mcPlayerListener.NoSkillNote"));
ChatColor header = ChatColor.GOLD; ChatColor header = ChatColor.GOLD;
if (Skills.hasGatheringSkills(player)) { if (Skills.hasGatheringSkills(player)) {
player.sendMessage(header + "-=GATHERING SKILLS=-"); player.sendMessage(header + "-=GATHERING SKILLS=-");
if (mcPermissions.getInstance().excavation(player)) 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))); 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)) 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))); 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)) 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))); 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)) 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))); 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)) 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))); player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING)));
} }
if (Skills.hasCombatSkills(player)) { if (Skills.hasCombatSkills(player)) {
player.sendMessage(header + "-=COMBAT SKILLS=-"); player.sendMessage(header + "-=COMBAT SKILLS=-");
if (mcPermissions.getInstance().axes(player)) 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))); 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)) 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))); 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)) // if(mcPermissions.getInstance().sorcery(player))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkill("sorcery"), PP.getSkill("sorceryXP"), PP.getXpToLevel("excavation"))); // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkill("sorcery"), PP.getSkill("sorceryXP"), PP.getXpToLevel("excavation")));
if (mcPermissions.getInstance().swords(player)) 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))); 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)) 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))); 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)) 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))); player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED)));
} }
if (Skills.hasMiscSkills(player)) { if (Skills.hasMiscSkills(player)) {
player.sendMessage(header + "-=MISC SKILLS=-"); player.sendMessage(header + "-=MISC SKILLS=-");
if (mcPermissions.getInstance().acrobatics(player)) 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))); 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)) // 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))); // 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)) // 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))); // 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)) 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(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))); player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(player)));
return true; return true;
} }
} }

View File

@ -1,98 +1,98 @@
package com.gmail.nossr50.commands.general; package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
public class WhoisCommand implements CommandExecutor { public class WhoisCommand implements CommandExecutor {
private final mcMMO plugin; private final mcMMO plugin;
public WhoisCommand(mcMMO instance) { public WhoisCommand(mcMMO instance) {
this.plugin = instance; this.plugin = instance;
} }
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.whoisEnable) { if (!LoadProperties.whoisEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
if (!mcPermissions.getInstance().whois(player)) { if (!mcPermissions.getInstance().whois(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
if (args.length < 1) { if (args.length < 1) {
player.sendMessage(ChatColor.RED + "Proper usage is /" + LoadProperties.whois + " <playername>"); player.sendMessage(ChatColor.RED + "Proper usage is /" + LoadProperties.whois + " <playername>");
return true; return true;
} }
// if split[1] is a player // if split[1] is a player
if (plugin.getServer().getPlayer(args[0]) != null) { if (plugin.getServer().getPlayer(args[0]) != null) {
Player target = plugin.getServer().getPlayer(args[0]); Player target = plugin.getServer().getPlayer(args[0]);
PlayerProfile PPt = Users.getProfile(target); PlayerProfile PPt = Users.getProfile(target);
player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~"); player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~");
player.sendMessage(target.getName()); player.sendMessage(target.getName());
if (PPt.inParty()) if (PPt.inParty())
player.sendMessage("Party: " + PPt.getParty()); player.sendMessage("Party: " + PPt.getParty());
player.sendMessage("Health: " + target.getHealth() + ChatColor.GRAY + " (20 is full health)"); player.sendMessage("Health: " + target.getHealth() + ChatColor.GRAY + " (20 is full health)");
player.sendMessage("OP: " + target.isOp()); player.sendMessage("OP: " + target.isOp());
player.sendMessage(ChatColor.GREEN + "mcMMO Stats for " + ChatColor.YELLOW + target.getName()); player.sendMessage(ChatColor.GREEN + "mcMMO Stats for " + ChatColor.YELLOW + target.getName());
player.sendMessage(ChatColor.GOLD + "-=GATHERING SKILLS=-"); player.sendMessage(ChatColor.GOLD + "-=GATHERING SKILLS=-");
if (mcPermissions.getInstance().excavation(target)) 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))); 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)) 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))); 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)) 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))); 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)) 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))); 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)) 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(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PPt.getSkillLevel(SkillType.WOODCUTTING), PPt.getSkillXpLevel(SkillType.WOODCUTTING), PPt.getXpToLevel(SkillType.WOODCUTTING)));
player.sendMessage(ChatColor.GOLD + "-=COMBAT SKILLS=-"); player.sendMessage(ChatColor.GOLD + "-=COMBAT SKILLS=-");
if (mcPermissions.getInstance().axes(target)) 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))); 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)) 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))); 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)) // if(mcPermissions.getInstance().sorcery(target))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkill("sorcery"), PPt.getSkill("sorceryXP"), PPt.getXpToLevel("excavation"))); // player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkill("sorcery"), PPt.getSkill("sorceryXP"), PPt.getXpToLevel("excavation")));
if (mcPermissions.getInstance().swords(target)) 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))); 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)) 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))); 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)) 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(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PPt.getSkillLevel(SkillType.UNARMED), PPt.getSkillXpLevel(SkillType.UNARMED), PPt.getXpToLevel(SkillType.UNARMED)));
player.sendMessage(ChatColor.GOLD + "-=MISC SKILLS=-"); player.sendMessage(ChatColor.GOLD + "-=MISC SKILLS=-");
if (mcPermissions.getInstance().acrobatics(target)) 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))); 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)) // 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))); // 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)) // 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))); // 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)) 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(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))); player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(target)));
} }
return true; return true;
} }
} }

View File

@ -1,126 +1,126 @@
package com.gmail.nossr50.commands.general; package com.gmail.nossr50.commands.general;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class XprateCommand implements CommandExecutor { public class XprateCommand implements CommandExecutor {
private static int oldrate = LoadProperties.xpGainMultiplier; private static int oldrate = LoadProperties.xpGainMultiplier;
public static boolean xpevent = false; public static boolean xpevent = false;
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.xprateEnable) { if (!LoadProperties.xprateEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
if(args.length <= 0) if(args.length <= 0)
{ {
System.out.println(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate})); System.out.println(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate}));
System.out.println(mcLocale.getString("Commands.xprate.proper2", 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(args.length == 1 && args[0].equalsIgnoreCase("reset"))
{ {
if(xpevent) if(xpevent)
{ {
for(Player x : Bukkit.getServer().getOnlinePlayers()) for(Player x : Bukkit.getServer().getOnlinePlayers())
x.sendMessage(mcLocale.getString("Commands.xprate.over")); x.sendMessage(mcLocale.getString("Commands.xprate.over"));
xpevent = !xpevent; xpevent = !xpevent;
LoadProperties.xpGainMultiplier = oldrate; LoadProperties.xpGainMultiplier = oldrate;
} else } else
{ {
LoadProperties.xpGainMultiplier = oldrate; LoadProperties.xpGainMultiplier = oldrate;
} }
} }
if(args.length >= 1 && m.isInt(args[0])) if(args.length >= 1 && m.isInt(args[0]))
{ {
oldrate = LoadProperties.xpGainMultiplier; oldrate = LoadProperties.xpGainMultiplier;
if(args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false"))) if(args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false")))
{ {
if(args[1].equalsIgnoreCase("true")) if(args[1].equalsIgnoreCase("true"))
xpevent = true; xpevent = true;
else else
xpevent = false; xpevent = false;
} else } else
{ {
System.out.println(mcLocale.getString("Commands.xprate.proper3")); System.out.println(mcLocale.getString("Commands.xprate.proper3"));
return true; return true;
} }
LoadProperties.xpGainMultiplier = m.getInt(args[0]); LoadProperties.xpGainMultiplier = m.getInt(args[0]);
if(xpevent = true) if(xpevent = true)
for(Player x : Bukkit.getServer().getOnlinePlayers()) for(Player x : Bukkit.getServer().getOnlinePlayers())
{ {
x.sendMessage(ChatColor.GOLD+"XP EVENT FOR mcMMO HAS STARTED!"); x.sendMessage(ChatColor.GOLD+"XP EVENT FOR mcMMO HAS STARTED!");
x.sendMessage(ChatColor.GOLD+"mcMMO XP RATE IS NOW "+LoadProperties.xpGainMultiplier+"x!!"); x.sendMessage(ChatColor.GOLD+"mcMMO XP RATE IS NOW "+LoadProperties.xpGainMultiplier+"x!!");
} }
} }
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
if(!mcPermissions.getInstance().admin(player)) if(!mcPermissions.getInstance().admin(player))
{ {
player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW+"[mcMMO] "+ChatColor.DARK_RED +mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
if(args.length <= 0) if(args.length <= 0)
{ {
player.sendMessage(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate})); player.sendMessage(mcLocale.getString("Commands.xprate.proper", new Object[] {LoadProperties.xprate}));
player.sendMessage(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate})); player.sendMessage(mcLocale.getString("Commands.xprate.proper2", new Object[] {LoadProperties.xprate}));
} }
if(args.length == 1 && args[0].equalsIgnoreCase("reset")) if(args.length == 1 && args[0].equalsIgnoreCase("reset"))
{ {
if(xpevent) if(xpevent)
{ {
for(Player x : Bukkit.getServer().getOnlinePlayers()) for(Player x : Bukkit.getServer().getOnlinePlayers())
x.sendMessage(mcLocale.getString("Commands.xprate.over")); x.sendMessage(mcLocale.getString("Commands.xprate.over"));
xpevent = !xpevent; xpevent = !xpevent;
LoadProperties.xpGainMultiplier = oldrate; LoadProperties.xpGainMultiplier = oldrate;
} else } else
{ {
LoadProperties.xpGainMultiplier = oldrate; LoadProperties.xpGainMultiplier = oldrate;
} }
} }
if(args.length >= 1 && m.isInt(args[0])) if(args.length >= 1 && m.isInt(args[0]))
{ {
oldrate = LoadProperties.xpGainMultiplier; oldrate = LoadProperties.xpGainMultiplier;
if(args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false"))) if(args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false")))
{ {
if(args[1].equalsIgnoreCase("true")) if(args[1].equalsIgnoreCase("true"))
xpevent = true; xpevent = true;
else else
xpevent = false; xpevent = false;
} else } else
{ {
player.sendMessage(mcLocale.getString("Commands.xprate.proper3")); player.sendMessage(mcLocale.getString("Commands.xprate.proper3"));
return true; return true;
} }
LoadProperties.xpGainMultiplier = m.getInt(args[0]); LoadProperties.xpGainMultiplier = m.getInt(args[0]);
if(xpevent = true) if(xpevent = true)
for(Player x : Bukkit.getServer().getOnlinePlayers()) for(Player x : Bukkit.getServer().getOnlinePlayers())
{ {
x.sendMessage(mcLocale.getString("Commands.xprate.started")); x.sendMessage(mcLocale.getString("Commands.xprate.started"));
x.sendMessage(mcLocale.getString("Commands.xprate.started2", new Object[] {LoadProperties.xpGainMultiplier})); x.sendMessage(mcLocale.getString("Commands.xprate.started2", new Object[] {LoadProperties.xpGainMultiplier}));
} }
} }
return true; return true;
} }
} }

View File

@ -1,45 +1,45 @@
package com.gmail.nossr50.commands.mc; package com.gmail.nossr50.commands.mc;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class McabilityCommand implements CommandExecutor { public class McabilityCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!mcPermissions.permissionsEnabled) { if (!mcPermissions.permissionsEnabled) {
sender.sendMessage("This command requires permissions."); sender.sendMessage("This command requires permissions.");
return true; return true;
} }
if (!LoadProperties.mcabilityEnable) { if (!LoadProperties.mcabilityEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (PP.getAbilityUse()) { if (PP.getAbilityUse()) {
player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOff")); player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOff"));
PP.toggleAbilityUse(); PP.toggleAbilityUse();
} else { } else {
player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOn")); player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesOn"));
PP.toggleAbilityUse(); PP.toggleAbilityUse();
} }
return true; return true;
} }
} }

View File

@ -1,73 +1,73 @@
package com.gmail.nossr50.commands.mc; package com.gmail.nossr50.commands.mc;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class MccCommand implements CommandExecutor { public class MccCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.mccEnable) { if (!LoadProperties.mccEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
player.sendMessage(ChatColor.RED + "---[]" + ChatColor.YELLOW + "mcMMO Commands" + ChatColor.RED + "[]---"); player.sendMessage(ChatColor.RED + "---[]" + ChatColor.YELLOW + "mcMMO Commands" + ChatColor.RED + "[]---");
if (mcPermissions.getInstance().party(player)) { if (mcPermissions.getInstance().party(player)) {
player.sendMessage(mcLocale.getString("m.mccPartyCommands")); player.sendMessage(mcLocale.getString("m.mccPartyCommands"));
player.sendMessage(LoadProperties.party + " " + mcLocale.getString("m.mccParty")); player.sendMessage(LoadProperties.party + " " + mcLocale.getString("m.mccParty"));
player.sendMessage(LoadProperties.party + " q " + mcLocale.getString("m.mccPartyQ")); player.sendMessage(LoadProperties.party + " q " + mcLocale.getString("m.mccPartyQ"));
if (mcPermissions.getInstance().partyChat(player)) if (mcPermissions.getInstance().partyChat(player))
player.sendMessage("/p " + mcLocale.getString("m.mccPartyToggle")); player.sendMessage("/p " + mcLocale.getString("m.mccPartyToggle"));
player.sendMessage(LoadProperties.invite + " " + mcLocale.getString("m.mccPartyInvite")); player.sendMessage(LoadProperties.invite + " " + mcLocale.getString("m.mccPartyInvite"));
player.sendMessage(LoadProperties.accept + " " + mcLocale.getString("m.mccPartyAccept")); player.sendMessage(LoadProperties.accept + " " + mcLocale.getString("m.mccPartyAccept"));
if (mcPermissions.getInstance().partyTeleport(player)) if (mcPermissions.getInstance().partyTeleport(player))
player.sendMessage(LoadProperties.ptp + " " + mcLocale.getString("m.mccPartyTeleport")); player.sendMessage(LoadProperties.ptp + " " + mcLocale.getString("m.mccPartyTeleport"));
} }
player.sendMessage(mcLocale.getString("m.mccOtherCommands")); player.sendMessage(mcLocale.getString("m.mccOtherCommands"));
player.sendMessage(LoadProperties.stats + ChatColor.RED + " " + mcLocale.getString("m.mccStats")); player.sendMessage(LoadProperties.stats + ChatColor.RED + " " + mcLocale.getString("m.mccStats"));
player.sendMessage("/mctop <skillname> <page> " + ChatColor.RED + mcLocale.getString("m.mccLeaderboards")); player.sendMessage("/mctop <skillname> <page> " + ChatColor.RED + mcLocale.getString("m.mccLeaderboards"));
if (mcPermissions.getInstance().mySpawn(player)) { if (mcPermissions.getInstance().mySpawn(player)) {
player.sendMessage(LoadProperties.myspawn + " " + ChatColor.RED + mcLocale.getString("m.mccMySpawn")); player.sendMessage(LoadProperties.myspawn + " " + ChatColor.RED + mcLocale.getString("m.mccMySpawn"));
player.sendMessage(LoadProperties.clearmyspawn + " " + ChatColor.RED + mcLocale.getString("m.mccClearMySpawn")); player.sendMessage(LoadProperties.clearmyspawn + " " + ChatColor.RED + mcLocale.getString("m.mccClearMySpawn"));
} }
if (mcPermissions.getInstance().mcAbility(player)) if (mcPermissions.getInstance().mcAbility(player))
player.sendMessage(LoadProperties.mcability + ChatColor.RED + " " + mcLocale.getString("m.mccToggleAbility")); player.sendMessage(LoadProperties.mcability + ChatColor.RED + " " + mcLocale.getString("m.mccToggleAbility"));
if (mcPermissions.getInstance().adminChat(player)) if (mcPermissions.getInstance().adminChat(player))
player.sendMessage("/a " + ChatColor.RED + mcLocale.getString("m.mccAdminToggle")); player.sendMessage("/a " + ChatColor.RED + mcLocale.getString("m.mccAdminToggle"));
if (mcPermissions.getInstance().whois(player)) if (mcPermissions.getInstance().whois(player))
player.sendMessage(LoadProperties.whois + " " + mcLocale.getString("m.mccWhois")); player.sendMessage(LoadProperties.whois + " " + mcLocale.getString("m.mccWhois"));
if (mcPermissions.getInstance().mmoedit(player)) if (mcPermissions.getInstance().mmoedit(player))
player.sendMessage(LoadProperties.mmoedit + mcLocale.getString("m.mccMmoedit")); player.sendMessage(LoadProperties.mmoedit + mcLocale.getString("m.mccMmoedit"));
if (mcPermissions.getInstance().mcgod(player)) if (mcPermissions.getInstance().mcgod(player))
player.sendMessage(LoadProperties.mcgod + ChatColor.RED + " " + mcLocale.getString("m.mccMcGod")); player.sendMessage(LoadProperties.mcgod + ChatColor.RED + " " + mcLocale.getString("m.mccMcGod"));
player.sendMessage(mcLocale.getString("m.mccSkillInfo")); player.sendMessage(mcLocale.getString("m.mccSkillInfo"));
player.sendMessage(LoadProperties.mcmmo + " " + mcLocale.getString("m.mccModDescription")); player.sendMessage(LoadProperties.mcmmo + " " + mcLocale.getString("m.mccModDescription"));
return true; return true;
} }
} }

View File

@ -1,48 +1,48 @@
package com.gmail.nossr50.commands.mc; package com.gmail.nossr50.commands.mc;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class McgodCommand implements CommandExecutor { public class McgodCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.mcgodEnable) { if (!LoadProperties.mcgodEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (mcPermissions.permissionsEnabled) { if (mcPermissions.permissionsEnabled) {
if (!mcPermissions.getInstance().mcgod(player)) { if (!mcPermissions.getInstance().mcgod(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
if (PP.getGodMode()) { if (PP.getGodMode()) {
player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeDisabled")); player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeDisabled"));
PP.toggleGodMode(); PP.toggleGodMode();
} else { } else {
player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeEnabled")); player.sendMessage(mcLocale.getString("mcPlayerListener.GodModeEnabled"));
PP.toggleGodMode(); PP.toggleGodMode();
} }
} }
return true; return true;
} }
} }

View File

@ -1,48 +1,48 @@
package com.gmail.nossr50.commands.mc; package com.gmail.nossr50.commands.mc;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.getspout.spoutapi.player.SpoutPlayer; import org.getspout.spoutapi.player.SpoutPlayer;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class McmmoCommand implements CommandExecutor { public class McmmoCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.mcmmoEnable) { if (!LoadProperties.mcmmoEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
player.sendMessage(ChatColor.RED + "-----[]" + ChatColor.GREEN + "mcMMO" + ChatColor.RED + "[]-----"); player.sendMessage(ChatColor.RED + "-----[]" + ChatColor.GREEN + "mcMMO" + ChatColor.RED + "[]-----");
String description = mcLocale.getString("mcMMO.Description", new Object[] { LoadProperties.mcc }); String description = mcLocale.getString("mcMMO.Description", new Object[] { LoadProperties.mcc });
String[] mcSplit = description.split(","); String[] mcSplit = description.split(",");
for (String x : mcSplit) { for (String x : mcSplit) {
player.sendMessage(x); player.sendMessage(x);
} }
if (LoadProperties.spoutEnabled && player instanceof SpoutPlayer) { if (LoadProperties.spoutEnabled && player instanceof SpoutPlayer) {
SpoutPlayer sPlayer = (SpoutPlayer) player; SpoutPlayer sPlayer = (SpoutPlayer) player;
if (LoadProperties.donateMessage) if (LoadProperties.donateMessage)
sPlayer.sendNotification("[mcMMO] Donate!", "Paypal nossr50@gmail.com", Material.CAKE); sPlayer.sendNotification("[mcMMO] Donate!", "Paypal nossr50@gmail.com", Material.CAKE);
} else { } else {
if (LoadProperties.donateMessage) if (LoadProperties.donateMessage)
player.sendMessage(ChatColor.GREEN + "If you like my work you can donate via Paypal: nossr50@gmail.com"); player.sendMessage(ChatColor.GREEN + "If you like my work you can donate via Paypal: nossr50@gmail.com");
} }
return true; return true;
} }
} }

View File

@ -1,93 +1,93 @@
package com.gmail.nossr50.commands.mc; package com.gmail.nossr50.commands.mc;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class McrefreshCommand implements CommandExecutor { public class McrefreshCommand implements CommandExecutor {
private final mcMMO plugin; private final mcMMO plugin;
public McrefreshCommand(mcMMO instance) { public McrefreshCommand(mcMMO instance) {
this.plugin = instance; this.plugin = instance;
} }
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.mcrefreshEnable) { if (!LoadProperties.mcrefreshEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().mcrefresh(player)) { if (!mcPermissions.getInstance().mcrefresh(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
if (args.length >= 1 && (plugin.getServer().getPlayer(args[0]) != null)) { if (args.length >= 1 && (plugin.getServer().getPlayer(args[0]) != null)) {
player.sendMessage("You have refreshed " + args[0] + "'s cooldowns!"); player.sendMessage("You have refreshed " + args[0] + "'s cooldowns!");
player = plugin.getServer().getPlayer(args[0]); player = plugin.getServer().getPlayer(args[0]);
} }
/* /*
* PREP MODES * PREP MODES
*/ */
PP = Users.getProfile(player); PP = Users.getProfile(player);
PP.setRecentlyHurt((long) 0); PP.setRecentlyHurt((long) 0);
PP.setHoePreparationMode(false); PP.setHoePreparationMode(false);
PP.setAxePreparationMode(false); PP.setAxePreparationMode(false);
PP.setFistsPreparationMode(false); PP.setFistsPreparationMode(false);
PP.setSwordsPreparationMode(false); PP.setSwordsPreparationMode(false);
PP.setPickaxePreparationMode(false); PP.setPickaxePreparationMode(false);
/* /*
* GREEN TERRA * GREEN TERRA
*/ */
PP.setGreenTerraMode(false); PP.setGreenTerraMode(false);
PP.setGreenTerraDeactivatedTimeStamp((long) 0); PP.setGreenTerraDeactivatedTimeStamp((long) 0);
/* /*
* GIGA DRILL BREAKER * GIGA DRILL BREAKER
*/ */
PP.setGigaDrillBreakerMode(false); PP.setGigaDrillBreakerMode(false);
PP.setGigaDrillBreakerDeactivatedTimeStamp((long) 0); PP.setGigaDrillBreakerDeactivatedTimeStamp((long) 0);
/* /*
* SERRATED STRIKE * SERRATED STRIKE
*/ */
PP.setSerratedStrikesMode(false); PP.setSerratedStrikesMode(false);
PP.setSerratedStrikesDeactivatedTimeStamp((long) 0); PP.setSerratedStrikesDeactivatedTimeStamp((long) 0);
/* /*
* SUPER BREAKER * SUPER BREAKER
*/ */
PP.setSuperBreakerMode(false); PP.setSuperBreakerMode(false);
PP.setSuperBreakerDeactivatedTimeStamp((long) 0); PP.setSuperBreakerDeactivatedTimeStamp((long) 0);
/* /*
* TREE FELLER * TREE FELLER
*/ */
PP.setTreeFellerMode(false); PP.setTreeFellerMode(false);
PP.setTreeFellerDeactivatedTimeStamp((long) 0); PP.setTreeFellerDeactivatedTimeStamp((long) 0);
/* /*
* BERSERK * BERSERK
*/ */
PP.setBerserkMode(false); PP.setBerserkMode(false);
PP.setBerserkDeactivatedTimeStamp((long) 0); PP.setBerserkDeactivatedTimeStamp((long) 0);
player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesRefreshed")); player.sendMessage(mcLocale.getString("mcPlayerListener.AbilitiesRefreshed"));
return true; return true;
} }
} }

View File

@ -1,199 +1,199 @@
package com.gmail.nossr50.commands.mc; package com.gmail.nossr50.commands.mc;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Leaderboard; import com.gmail.nossr50.Leaderboard;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
public class MctopCommand implements CommandExecutor { public class MctopCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.mctopEnable) { if (!LoadProperties.mctopEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
if (LoadProperties.useMySQL == false) { if (LoadProperties.useMySQL == false) {
/* /*
* POWER LEVEL INFO RETRIEVAL * POWER LEVEL INFO RETRIEVAL
*/ */
if (args.length == 0) { if (args.length == 0) {
int p = 1; int p = 1;
String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p);
player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard"));
int n = 1 * p; // Position int n = 1 * p; // Position
for (String x : info) { for (String x : info) {
if (x != null) { if (x != null) {
String digit = String.valueOf(n); String digit = String.valueOf(n);
if (n < 10) if (n < 10)
digit = "0" + String.valueOf(n); digit = "0" + String.valueOf(n);
String[] splitx = x.split(":"); String[] splitx = x.split(":");
// Format: 1. Playername - skill value // Format: 1. Playername - skill value
player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]);
n++; n++;
} }
} }
} }
if (args.length >= 1 && m.isInt(args[0])) { if (args.length >= 1 && m.isInt(args[0])) {
int p = 1; int p = 1;
// Grab page value if specified // Grab page value if specified
if (args.length >= 1) { if (args.length >= 1) {
if (m.isInt(args[0])) { if (m.isInt(args[0])) {
p = Integer.valueOf(args[0]); p = Integer.valueOf(args[0]);
} }
} }
int pt = p; int pt = p;
if (p > 1) { if (p > 1) {
pt -= 1; pt -= 1;
pt += (pt * 10); pt += (pt * 10);
pt = 10; pt = 10;
} }
String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p); String[] info = Leaderboard.retrieveInfo(SkillType.ALL.toString(), p);
player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard"));
int n = 1 * pt; // Position int n = 1 * pt; // Position
for (String x : info) { for (String x : info) {
if (x != null) { if (x != null) {
String digit = String.valueOf(n); String digit = String.valueOf(n);
if (n < 10) if (n < 10)
digit = "0" + String.valueOf(n); digit = "0" + String.valueOf(n);
String[] splitx = x.split(":"); String[] splitx = x.split(":");
// Format: 1. Playername - skill value // Format: 1. Playername - skill value
player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]);
n++; n++;
} }
} }
} }
/* /*
* SKILL SPECIFIED INFO RETRIEVAL * SKILL SPECIFIED INFO RETRIEVAL
*/ */
if (args.length >= 1 && Skills.isSkill(args[0])) { if (args.length >= 1 && Skills.isSkill(args[0])) {
int p = 1; int p = 1;
// Grab page value if specified // Grab page value if specified
if (args.length >= 2) { if (args.length >= 2) {
if (m.isInt(args[1])) { if (m.isInt(args[1])) {
p = Integer.valueOf(args[1]); p = Integer.valueOf(args[1]);
} }
} }
int pt = p; int pt = p;
if (p > 1) { if (p > 1) {
pt -= 1; pt -= 1;
pt += (pt * 10); pt += (pt * 10);
pt = 10; pt = 10;
} }
String firstLetter = args[0].substring(0, 1); // Get first letter String firstLetter = args[0].substring(0, 1); // Get first letter
String remainder = args[0].substring(1); // Get remainder of word. String remainder = args[0].substring(1); // Get remainder of word.
String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
String[] info = Leaderboard.retrieveInfo(args[0].toUpperCase(), p); String[] info = Leaderboard.retrieveInfo(args[0].toUpperCase(), p);
player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] { capitalized })); player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] { capitalized }));
int n = 1 * pt; // Position int n = 1 * pt; // Position
for (String x : info) { for (String x : info) {
if (x != null) { if (x != null) {
String digit = String.valueOf(n); String digit = String.valueOf(n);
if (n < 10) if (n < 10)
digit = "0" + String.valueOf(n); digit = "0" + String.valueOf(n);
String[] splitx = x.split(":"); String[] splitx = x.split(":");
// Format: 1. Playername - skill value // Format: 1. Playername - skill value
player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]); player.sendMessage(digit + ". " + ChatColor.GREEN + splitx[1] + " - " + ChatColor.WHITE + splitx[0]);
n++; n++;
} }
} }
} }
} else { } else {
/* /*
* MYSQL LEADERBOARDS * MYSQL LEADERBOARDS
*/ */
String powerlevel = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing"; String powerlevel = "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing";
if (args.length >= 1 && Skills.isSkill(args[0])) { if (args.length >= 1 && Skills.isSkill(args[0])) {
/* /*
* Create a nice consistent capitalized leaderboard name * Create a nice consistent capitalized leaderboard name
*/ */
String lowercase = args[0].toLowerCase(); // For the query String lowercase = args[0].toLowerCase(); // For the query
String firstLetter = args[0].substring(0, 1); // Get first letter String firstLetter = args[0].substring(0, 1); // Get first letter
String remainder = args[0].substring(1); // Get remainder of word. String remainder = args[0].substring(1); // Get remainder of word.
String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase(); String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] { capitalized })); player.sendMessage(mcLocale.getString("mcPlayerListener.SkillLeaderboard", new Object[] { capitalized }));
if (args.length >= 2 && m.isInt(args[1])) { if (args.length >= 2 && m.isInt(args[1])) {
int n = 1; // For the page number int n = 1; // For the page number
int n2 = Integer.valueOf(args[1]); int n2 = Integer.valueOf(args[1]);
if (n2 > 1) { if (n2 > 1) {
// Figure out the 'page' here // Figure out the 'page' here
n = 10; n = 10;
n = n * (n2 - 1); n = n * (n2 - 1);
} }
// If a page number is specified // If a page number is specified
HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC "); HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC ");
for (int i = n; i <= n + 10; i++) { 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) if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)
break; break;
HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");
player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0));
} }
return true; return true;
} }
// If no page number is specified // If no page number is specified
HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC "); HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC ");
for (int i = 1; i <= 10; i++) { // i<=userslist.size() 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) if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)
break; break;
HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");
player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0));
} }
return true; return true;
} }
if (args.length >= 0) { if (args.length >= 0) {
player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard")); player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevelLeaderboard"));
if (args.length >= 1 && m.isInt(args[0])) { if (args.length >= 1 && m.isInt(args[0])) {
int n = 1; // For the page number int n = 1; // For the page number
int n2 = Integer.valueOf(args[0]); int n2 = Integer.valueOf(args[0]);
if (n2 > 1) { if (n2 > 1) {
// Figure out the 'page' here // Figure out the 'page' here
n = 10; n = 10;
n = n * (n2 - 1); n = n * (n2 - 1);
} }
// If a page number is specified // If a page number is specified
HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT " + powerlevel + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY " + powerlevel + " DESC "); HashMap<Integer, ArrayList<String>> 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++) { 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) if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)
break; break;
HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");
player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0));
} }
return true; return true;
} }
HashMap<Integer, ArrayList<String>> userslist = mcMMO.database.Read("SELECT " + powerlevel + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY " + powerlevel + " DESC "); HashMap<Integer, ArrayList<String>> 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++) { 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) if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null)
break; break;
HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); HashMap<Integer, ArrayList<String>> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'");
player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); 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(username.get(1).get(0));
// System.out.println("Mining : " + userslist.get(i).get(0) + ", User id : " + userslist.get(i).get(1)); // System.out.println("Mining : " + userslist.get(i).get(0) + ", User id : " + userslist.get(i).get(1));
} }
} }
} }
return true; return true;
} }
} }

View File

@ -1,86 +1,86 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class ACommand implements CommandExecutor { public class ACommand implements CommandExecutor {
private Logger log; private Logger log;
public ACommand() { public ACommand() {
this.log = Logger.getLogger("Minecraft"); this.log = Logger.getLogger("Minecraft");
} }
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
// Console message? // Console message?
if (!(sender instanceof Player) && args.length >= 1) { if (!(sender instanceof Player) && args.length >= 1) {
String aMessage = args[0]; String aMessage = args[0];
for (int i = 1; i <= args.length - 1; i++) { for (int i = 1; i <= args.length - 1; i++) {
aMessage = aMessage + " " + args[i]; aMessage = aMessage + " " + args[i];
} }
String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + "*Console*" + ChatColor.AQUA + "} "; String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + "*Console*" + ChatColor.AQUA + "} ";
log.log(Level.INFO, "[A]<*Console*> " + aMessage); log.log(Level.INFO, "[A]<*Console*> " + aMessage);
for (Player herp : Bukkit.getServer().getOnlinePlayers()) { for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
if (mcPermissions.getInstance().adminChat(herp) || herp.isOp()) if (mcPermissions.getInstance().adminChat(herp) || herp.isOp())
herp.sendMessage(aPrefix + aMessage); herp.sendMessage(aPrefix + aMessage);
} }
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().adminChat(player) && !player.isOp()) { if (!mcPermissions.getInstance().adminChat(player) && !player.isOp()) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
// Not a toggle, a message // Not a toggle, a message
if (args.length >= 1) { if (args.length >= 1) {
String aMessage = args[0]; String aMessage = args[0];
for (int i = 1; i <= args.length - 1; i++) { for (int i = 1; i <= args.length - 1; i++) {
aMessage = aMessage + " " + args[i]; aMessage = aMessage + " " + args[i];
} }
String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getDisplayName() + ChatColor.AQUA + "} "; String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getDisplayName() + ChatColor.AQUA + "} ";
log.log(Level.INFO, "[A]<" + player.getDisplayName() + "> " + aMessage); log.log(Level.INFO, "[A]<" + player.getDisplayName() + "> " + aMessage);
for (Player herp : Bukkit.getServer().getOnlinePlayers()) { for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
if (mcPermissions.getInstance().adminChat(herp) || herp.isOp()) if (mcPermissions.getInstance().adminChat(herp) || herp.isOp())
herp.sendMessage(aPrefix + aMessage); herp.sendMessage(aPrefix + aMessage);
} }
return true; return true;
} }
if (PP.getPartyChatMode()) if (PP.getPartyChatMode())
PP.togglePartyChat(); PP.togglePartyChat();
PP.toggleAdminChat(); PP.toggleAdminChat();
if (PP.getAdminChatMode()) { if (PP.getAdminChatMode()) {
player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOn")); player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOn"));
// player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On"); // player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On");
} else { } else {
player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOff")); player.sendMessage(mcLocale.getString("mcPlayerListener.AdminChatOff"));
// player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off"); // player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off");
} }
return true; return true;
} }
} }

View File

@ -1,52 +1,52 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
public class AcceptCommand implements CommandExecutor { public class AcceptCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.acceptEnable) { if (!LoadProperties.acceptEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().party(player)) { if (!mcPermissions.getInstance().party(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
if (PP.hasPartyInvite()) { if (PP.hasPartyInvite()) {
Party Pinstance = Party.getInstance(); Party Pinstance = Party.getInstance();
if (PP.inParty()) { if (PP.inParty()) {
Pinstance.removeFromParty(player, PP); Pinstance.removeFromParty(player, PP);
} }
PP.acceptInvite(); PP.acceptInvite();
Pinstance.addToParty(player, PP, PP.getParty(), true); Pinstance.addToParty(player, PP, PP.getParty(), true);
} else { } else {
player.sendMessage(mcLocale.getString("mcPlayerListener.NoInvites")); player.sendMessage(mcLocale.getString("mcPlayerListener.NoInvites"));
} }
return true; return true;
} }
} }

View File

@ -1,73 +1,73 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
public class InviteCommand implements CommandExecutor { public class InviteCommand implements CommandExecutor {
private final mcMMO plugin; private final mcMMO plugin;
public InviteCommand(mcMMO instance) { public InviteCommand(mcMMO instance) {
this.plugin = instance; this.plugin = instance;
} }
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.inviteEnable) { if (!LoadProperties.inviteEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().party(player)) { if (!mcPermissions.getInstance().party(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
Party Pinstance = Party.getInstance(); Party Pinstance = Party.getInstance();
if (!PP.inParty()) { if (!PP.inParty()) {
player.sendMessage(mcLocale.getString("mcPlayerListener.NotInParty")); player.sendMessage(mcLocale.getString("mcPlayerListener.NotInParty"));
return true; return true;
} }
if (args.length < 1) { if (args.length < 1) {
player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.invite + " <playername>"); player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.invite + " <playername>");
return true; return true;
} }
if (PP.inParty() && args.length >= 1 && (plugin.getServer().getPlayer(args[0]) != null)) { if (PP.inParty() && args.length >= 1 && (plugin.getServer().getPlayer(args[0]) != null)) {
if (Pinstance.canInvite(player, PP)) { if (Pinstance.canInvite(player, PP)) {
Player target = plugin.getServer().getPlayer(args[0]); Player target = plugin.getServer().getPlayer(args[0]);
PlayerProfile PPt = Users.getProfile(target); PlayerProfile PPt = Users.getProfile(target);
PPt.modifyInvite(PP.getParty()); PPt.modifyInvite(PP.getParty());
player.sendMessage(mcLocale.getString("mcPlayerListener.InviteSuccess")); 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(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(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(ChatColor.YELLOW+"Type "+ChatColor.GREEN+LoadProperties.accept+ChatColor.YELLOW+" to accept the invite");
target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite2", new Object[] { LoadProperties.accept })); target.sendMessage(mcLocale.getString("mcPlayerListener.ReceivedInvite2", new Object[] { LoadProperties.accept }));
} else { } else {
player.sendMessage(mcLocale.getString("Party.Locked")); player.sendMessage(mcLocale.getString("Party.Locked"));
return true; return true;
} }
} }
return true; return true;
} }
} }

View File

@ -1,101 +1,101 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
public class PCommand implements CommandExecutor { public class PCommand implements CommandExecutor {
private Logger log; private Logger log;
public PCommand() { public PCommand() {
this.log = Logger.getLogger("Minecraft"); this.log = Logger.getLogger("Minecraft");
} }
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.partyEnable) { if (!LoadProperties.partyEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
// Console message? // Console message?
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
if (args.length < 2) if (args.length < 2)
return true; return true;
String pMessage = args[1]; String pMessage = args[1];
for (int i = 2; i <= args.length - 1; i++) { for (int i = 2; i <= args.length - 1; i++) {
pMessage = pMessage + " " + args[i]; pMessage = pMessage + " " + args[i];
} }
String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + "*Console*" + ChatColor.GREEN + ") "; String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + "*Console*" + ChatColor.GREEN + ") ";
log.log(Level.INFO, "[P](" + args[0] + ")" + "<*Console*> " + pMessage); log.log(Level.INFO, "[P](" + args[0] + ")" + "<*Console*> " + pMessage);
for (Player herp : Bukkit.getServer().getOnlinePlayers()) { for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
if (Users.getProfile(herp).inParty()) { if (Users.getProfile(herp).inParty()) {
if (Users.getProfile(herp).getParty().equalsIgnoreCase(args[0])) { if (Users.getProfile(herp).getParty().equalsIgnoreCase(args[0])) {
herp.sendMessage(pPrefix + pMessage); herp.sendMessage(pPrefix + pMessage);
} }
} }
} }
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().party(player)) { if (!mcPermissions.getInstance().party(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
// Not a toggle, a message // Not a toggle, a message
if (args.length >= 1) { if (args.length >= 1) {
String pMessage = args[0]; String pMessage = args[0];
for (int i = 1; i <= args.length - 1; i++) { for (int i = 1; i <= args.length - 1; i++) {
pMessage = pMessage + " " + args[i]; pMessage = pMessage + " " + args[i];
} }
String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getDisplayName() + ChatColor.GREEN + ") "; String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getDisplayName() + ChatColor.GREEN + ") ";
log.log(Level.INFO, "[P](" + PP.getParty() + ")" + "<" + player.getDisplayName() + "> " + pMessage); log.log(Level.INFO, "[P](" + PP.getParty() + ")" + "<" + player.getDisplayName() + "> " + pMessage);
for (Player herp : Bukkit.getServer().getOnlinePlayers()) { for (Player herp : Bukkit.getServer().getOnlinePlayers()) {
if (Users.getProfile(herp).inParty()) { if (Users.getProfile(herp).inParty()) {
if (Party.getInstance().inSameParty(herp, player)) if (Party.getInstance().inSameParty(herp, player))
herp.sendMessage(pPrefix + pMessage); herp.sendMessage(pPrefix + pMessage);
} }
} }
return true; return true;
} }
if (PP.getAdminChatMode()) if (PP.getAdminChatMode())
PP.toggleAdminChat(); PP.toggleAdminChat();
PP.togglePartyChat(); PP.togglePartyChat();
if (PP.getPartyChatMode()) { if (PP.getPartyChatMode()) {
// player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On"); // player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On");
player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOn")); player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOn"));
} else { } else {
// player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off"); // player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off");
player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOff")); player.sendMessage(mcLocale.getString("mcPlayerListener.PartyChatOff"));
} }
return true; return true;
} }
} }

View File

@ -1,192 +1,192 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
public class PartyCommand implements CommandExecutor { public class PartyCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.partyEnable) { if (!LoadProperties.partyEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().party(player)) { if (!mcPermissions.getInstance().party(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
Party Pinstance = Party.getInstance(); Party Pinstance = Party.getInstance();
if (PP.inParty() && (!Pinstance.isParty(PP.getParty()) || !Pinstance.isInParty(player, PP))) { if (PP.inParty() && (!Pinstance.isParty(PP.getParty()) || !Pinstance.isInParty(player, PP))) {
Pinstance.addToParty(player, PP, PP.getParty(), false); Pinstance.addToParty(player, PP, PP.getParty(), false);
} }
if (args.length == 0 && !PP.inParty()) { if (args.length == 0 && !PP.inParty()) {
player.sendMessage(mcLocale.getString("Party.Help1", new Object[] { LoadProperties.party })); 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.Help2", new Object[] { LoadProperties.party }));
player.sendMessage(mcLocale.getString("Party.Help3", new Object[] { LoadProperties.party })); player.sendMessage(mcLocale.getString("Party.Help3", new Object[] { LoadProperties.party }));
return true; return true;
} else if (args.length == 0 && PP.inParty()) { } else if (args.length == 0 && PP.inParty()) {
String tempList = ""; String tempList = "";
int x = 0; int x = 0;
for (Player p : Bukkit.getServer().getOnlinePlayers()) { for (Player p : Bukkit.getServer().getOnlinePlayers()) {
if (PP.getParty().equals(Users.getProfile(p).getParty())) { if (PP.getParty().equals(Users.getProfile(p).getParty())) {
if (p != null && x + 1 >= Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers())) { if (p != null && x + 1 >= Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers())) {
if (Pinstance.isPartyLeader(p.getName(), PP.getParty())) { if (Pinstance.isPartyLeader(p.getName(), PP.getParty())) {
tempList += ChatColor.GOLD + p.getName(); tempList += ChatColor.GOLD + p.getName();
x++; x++;
} else { } else {
tempList += ChatColor.WHITE + p.getName(); tempList += ChatColor.WHITE + p.getName();
x++; x++;
} }
} }
if (p != null && x < Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers())) { if (p != null && x < Pinstance.partyCount(player, Bukkit.getServer().getOnlinePlayers())) {
if (Pinstance.isPartyLeader(p.getName(), PP.getParty())) { if (Pinstance.isPartyLeader(p.getName(), PP.getParty())) {
tempList += ChatColor.GOLD + p.getName() + ", "; tempList += ChatColor.GOLD + p.getName() + ", ";
x++; x++;
} else { } else {
tempList += ChatColor.WHITE + p.getName() + ", "; tempList += ChatColor.WHITE + p.getName() + ", ";
x++; x++;
} }
} }
} }
} }
player.sendMessage(mcLocale.getString("mcPlayerListener.YouAreInParty", new Object[] { PP.getParty() })); player.sendMessage(mcLocale.getString("mcPlayerListener.YouAreInParty", new Object[] { PP.getParty() }));
player.sendMessage(mcLocale.getString("mcPlayerListener.PartyMembers") + " (" + tempList + ChatColor.GREEN + ")"); player.sendMessage(mcLocale.getString("mcPlayerListener.PartyMembers") + " (" + tempList + ChatColor.GREEN + ")");
return true; return true;
} else if (args.length == 1) { } else if (args.length == 1) {
if (args[0].equals("q") && PP.inParty()) { if (args[0].equals("q") && PP.inParty()) {
Pinstance.removeFromParty(player, PP); Pinstance.removeFromParty(player, PP);
player.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty")); player.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty"));
return true; return true;
} else if (args[0].equalsIgnoreCase("?")) { } else if (args[0].equalsIgnoreCase("?")) {
player.sendMessage(mcLocale.getString("Party.Help4", new Object[] { LoadProperties.party })); 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.Help2", new Object[] { LoadProperties.party }));
player.sendMessage(mcLocale.getString("Party.Help5", 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.Help6", new Object[] { LoadProperties.party }));
player.sendMessage(mcLocale.getString("Party.Help7", 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.Help8", new Object[] { LoadProperties.party }));
player.sendMessage(mcLocale.getString("Party.Help9", new Object[] { LoadProperties.party })); player.sendMessage(mcLocale.getString("Party.Help9", new Object[] { LoadProperties.party }));
} else if (args[0].equalsIgnoreCase("lock")) { } else if (args[0].equalsIgnoreCase("lock")) {
if (PP.inParty()) { if (PP.inParty()) {
if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) {
Pinstance.lockParty(PP.getParty()); Pinstance.lockParty(PP.getParty());
player.sendMessage(mcLocale.getString("Party.Locked")); player.sendMessage(mcLocale.getString("Party.Locked"));
} else { } else {
player.sendMessage(mcLocale.getString("Party.NotOwner")); player.sendMessage(mcLocale.getString("Party.NotOwner"));
} }
} else { } else {
player.sendMessage(mcLocale.getString("Party.InvalidName")); player.sendMessage(mcLocale.getString("Party.InvalidName"));
} }
} else if (args[0].equalsIgnoreCase("unlock")) { } else if (args[0].equalsIgnoreCase("unlock")) {
if (PP.inParty()) { if (PP.inParty()) {
if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) {
Pinstance.unlockParty(PP.getParty()); Pinstance.unlockParty(PP.getParty());
player.sendMessage(mcLocale.getString("Party.Unlocked")); player.sendMessage(mcLocale.getString("Party.Unlocked"));
} else { } else {
player.sendMessage(mcLocale.getString("Party.NotOwner")); player.sendMessage(mcLocale.getString("Party.NotOwner"));
} }
} else { } else {
player.sendMessage(mcLocale.getString("Party.InvalidName")); player.sendMessage(mcLocale.getString("Party.InvalidName"));
} }
// Party debugging command. // Party debugging command.
// } else if (args[0].equalsIgnoreCase("dump")) { // } else if (args[0].equalsIgnoreCase("dump")) {
// Pinstance.dump(player); // Pinstance.dump(player);
} else { } else {
if (PP.inParty()) { if (PP.inParty()) {
Pinstance.removeFromParty(player, PP); Pinstance.removeFromParty(player, PP);
} }
Pinstance.addToParty(player, PP, args[0], false); Pinstance.addToParty(player, PP, args[0], false);
return true; return true;
} }
} else if (args.length == 2 && PP.inParty()) { } else if (args.length == 2 && PP.inParty()) {
if (args[0].equalsIgnoreCase("password")) { if (args[0].equalsIgnoreCase("password")) {
if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) {
if (Pinstance.isPartyLocked(PP.getParty())) { if (Pinstance.isPartyLocked(PP.getParty())) {
Pinstance.setPartyPassword(PP.getParty(), args[1]); Pinstance.setPartyPassword(PP.getParty(), args[1]);
player.sendMessage(mcLocale.getString("Party.PasswordSet", new Object[] { args[1] })); player.sendMessage(mcLocale.getString("Party.PasswordSet", new Object[] { args[1] }));
} else { } else {
player.sendMessage(mcLocale.getString("Party.IsntLocked")); player.sendMessage(mcLocale.getString("Party.IsntLocked"));
} }
} else { } else {
player.sendMessage(mcLocale.getString("Party.NotOwner")); player.sendMessage(mcLocale.getString("Party.NotOwner"));
} }
} else if (args[0].equalsIgnoreCase("kick")) { } else if (args[0].equalsIgnoreCase("kick")) {
if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) {
if (Pinstance.isPartyLocked(PP.getParty())) { if (Pinstance.isPartyLocked(PP.getParty())) {
Player tPlayer = null; Player tPlayer = null;
if (Bukkit.getServer().getPlayer(args[1]) != null) if (Bukkit.getServer().getPlayer(args[1]) != null)
tPlayer = Bukkit.getServer().getPlayer(args[1]); tPlayer = Bukkit.getServer().getPlayer(args[1]);
if (tPlayer == null) { if (tPlayer == null) {
player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] { args[1] })); player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] { args[1] }));
} }
if (!Pinstance.inSameParty(player, tPlayer)) { if (!Pinstance.inSameParty(player, tPlayer)) {
player.sendMessage(mcLocale.getString("Party.NotInYourParty", new Object[] { tPlayer.getName() })); player.sendMessage(mcLocale.getString("Party.NotInYourParty", new Object[] { tPlayer.getName() }));
} else { } else {
// Not an admin // Not an admin
if (!mcPermissions.getInstance().admin(player)) { if (!mcPermissions.getInstance().admin(player)) {
// Can't kick an admin // Can't kick an admin
if (mcPermissions.getInstance().admin(tPlayer)) { if (mcPermissions.getInstance().admin(tPlayer)) {
player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] { tPlayer.getName() })); player.sendMessage(mcLocale.getString("Party.CouldNotKick", new Object[] { tPlayer.getName() }));
} }
} }
PlayerProfile tPP = Users.getProfile(tPlayer); PlayerProfile tPP = Users.getProfile(tPlayer);
Pinstance.removeFromParty(tPlayer, tPP); Pinstance.removeFromParty(tPlayer, tPP);
tPlayer.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty")); tPlayer.sendMessage(mcLocale.getString("mcPlayerListener.LeftParty"));
} }
} else { } else {
player.sendMessage(mcLocale.getString("Party.IsntLocked")); player.sendMessage(mcLocale.getString("Party.IsntLocked"));
} }
} else { } else {
player.sendMessage(mcLocale.getString("Party.NotOwner")); player.sendMessage(mcLocale.getString("Party.NotOwner"));
} }
} else if (args[0].equalsIgnoreCase("owner")) { } else if (args[0].equalsIgnoreCase("owner")) {
if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) { if (Pinstance.isPartyLeader(player.getName(), PP.getParty())) {
Player tPlayer = null; Player tPlayer = null;
if (Bukkit.getServer().getPlayer(args[1]) != null) if (Bukkit.getServer().getPlayer(args[1]) != null)
tPlayer = Bukkit.getServer().getPlayer(args[1]); tPlayer = Bukkit.getServer().getPlayer(args[1]);
if (tPlayer == null) { if (tPlayer == null) {
player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] { args[1] })); player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] { args[1] }));
} }
if (!Pinstance.inSameParty(player, tPlayer)) { if (!Pinstance.inSameParty(player, tPlayer)) {
player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] { tPlayer.getName() })); player.sendMessage(mcLocale.getString("Party.CouldNotSetOwner", new Object[] { tPlayer.getName() }));
} else { } else {
Pinstance.setPartyLeader(PP.getParty(), tPlayer.getName()); Pinstance.setPartyLeader(PP.getParty(), tPlayer.getName());
} }
} else { } else {
player.sendMessage(mcLocale.getString("Party.NotOwner")); player.sendMessage(mcLocale.getString("Party.NotOwner"));
} }
} else { } else {
Pinstance.removeFromParty(player, PP); Pinstance.removeFromParty(player, PP);
Pinstance.addToParty(player, PP, args[0], false, args[1]); Pinstance.addToParty(player, PP, args[0], false, args[1]);
} }
} else if (args.length == 2 && !PP.inParty()) { } else if (args.length == 2 && !PP.inParty()) {
Pinstance.addToParty(player, PP, args[0], false, args[1]); Pinstance.addToParty(player, PP, args[0], false, args[1]);
} }
return true; return true;
} }
} }

View File

@ -1,62 +1,62 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class PtpCommand implements CommandExecutor { public class PtpCommand implements CommandExecutor {
private final mcMMO plugin; private final mcMMO plugin;
public PtpCommand(mcMMO instance) { public PtpCommand(mcMMO instance) {
this.plugin = instance; this.plugin = instance;
} }
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.ptpEnable) { if (!LoadProperties.ptpEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().partyTeleport(player)) { if (!mcPermissions.getInstance().partyTeleport(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
if (args.length < 1) { if (args.length < 1) {
player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.ptp + " <playername>"); player.sendMessage(ChatColor.RED + "Usage is /" + LoadProperties.ptp + " <playername>");
return true; return true;
} }
if (plugin.getServer().getPlayer(args[0]) == null) { if (plugin.getServer().getPlayer(args[0]) == null) {
player.sendMessage("That is not a valid player"); player.sendMessage("That is not a valid player");
} }
if (plugin.getServer().getPlayer(args[0]) != null) { if (plugin.getServer().getPlayer(args[0]) != null) {
Player target = plugin.getServer().getPlayer(args[0]); Player target = plugin.getServer().getPlayer(args[0]);
PlayerProfile PPt = Users.getProfile(target); PlayerProfile PPt = Users.getProfile(target);
if (PP.getParty().equals(PPt.getParty())) { if (PP.getParty().equals(PPt.getParty())) {
player.teleport(target); player.teleport(target);
player.sendMessage(ChatColor.GREEN + "You have teleported to " + target.getName()); player.sendMessage(ChatColor.GREEN + "You have teleported to " + target.getName());
target.sendMessage(ChatColor.GREEN + player.getName() + " has teleported to you."); target.sendMessage(ChatColor.GREEN + player.getName() + " has teleported to you.");
} }
} }
return true; return true;
} }
} }

View File

@ -1,52 +1,52 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class AcrobaticsCommand implements CommandExecutor { public class AcrobaticsCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
String dodgepercentage; String dodgepercentage;
float skillvalue = (float) PP.getSkillLevel(SkillType.ACROBATICS); float skillvalue = (float) PP.getSkillLevel(SkillType.ACROBATICS);
String percentage = String.valueOf((skillvalue / 1000) * 100); String percentage = String.valueOf((skillvalue / 1000) * 100);
String gracepercentage = String.valueOf(((skillvalue / 1000) * 100) * 2); String gracepercentage = String.valueOf(((skillvalue / 1000) * 100) * 2);
if (PP.getSkillLevel(SkillType.ACROBATICS) <= 800) if (PP.getSkillLevel(SkillType.ACROBATICS) <= 800)
dodgepercentage = String.valueOf((skillvalue / 4000 * 100)); dodgepercentage = String.valueOf((skillvalue / 4000 * 100));
else else
dodgepercentage = "20"; dodgepercentage = "20";
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillAcrobatics") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillAcrobatics") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainAcrobatics") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainAcrobatics") }));
if (mcPermissions.getInstance().acrobatics(player)) 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.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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.AcrobaticsRollChance", new Object[] { percentage })); player.sendMessage(mcLocale.getString("m.AcrobaticsRollChance", new Object[] { percentage }));
player.sendMessage(mcLocale.getString("m.AcrobaticsGracefulRollChance", new Object[] { gracepercentage })); player.sendMessage(mcLocale.getString("m.AcrobaticsGracefulRollChance", new Object[] { gracepercentage }));
player.sendMessage(mcLocale.getString("m.AcrobaticsDodgeChance", new Object[] { dodgepercentage })); player.sendMessage(mcLocale.getString("m.AcrobaticsDodgeChance", new Object[] { dodgepercentage }));
return true; return true;
} }
} }

View File

@ -1,63 +1,63 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class ArcheryCommand implements CommandExecutor { public class ArcheryCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
float skillvalue = (float) PP.getSkillLevel(SkillType.ARCHERY); float skillvalue = (float) PP.getSkillLevel(SkillType.ARCHERY);
String percentage = String.valueOf((skillvalue / 1000) * 100); String percentage = String.valueOf((skillvalue / 1000) * 100);
int ignition = 20; int ignition = 20;
if (PP.getSkillLevel(SkillType.ARCHERY) >= 200) if (PP.getSkillLevel(SkillType.ARCHERY) >= 200)
ignition += 20; ignition += 20;
if (PP.getSkillLevel(SkillType.ARCHERY) >= 400) if (PP.getSkillLevel(SkillType.ARCHERY) >= 400)
ignition += 20; ignition += 20;
if (PP.getSkillLevel(SkillType.ARCHERY) >= 600) if (PP.getSkillLevel(SkillType.ARCHERY) >= 600)
ignition += 20; ignition += 20;
if (PP.getSkillLevel(SkillType.ARCHERY) >= 800) if (PP.getSkillLevel(SkillType.ARCHERY) >= 800)
ignition += 20; ignition += 20;
if (PP.getSkillLevel(SkillType.ARCHERY) >= 1000) if (PP.getSkillLevel(SkillType.ARCHERY) >= 1000)
ignition += 20; ignition += 20;
String percentagedaze; String percentagedaze;
if (PP.getSkillLevel(SkillType.ARCHERY) < 1000) if (PP.getSkillLevel(SkillType.ARCHERY) < 1000)
percentagedaze = String.valueOf((skillvalue / 2000) * 100); percentagedaze = String.valueOf((skillvalue / 2000) * 100);
else else
percentagedaze = "50"; percentagedaze = "50";
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillArchery") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillArchery") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainArchery") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainArchery") }));
if (mcPermissions.getInstance().archery(player)) 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.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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.ArcheryDazeChance", new Object[] { percentagedaze })); player.sendMessage(mcLocale.getString("m.ArcheryDazeChance", new Object[] { percentagedaze }));
player.sendMessage(mcLocale.getString("m.ArcheryRetrieveChance", new Object[] { percentage })); player.sendMessage(mcLocale.getString("m.ArcheryRetrieveChance", new Object[] { percentage }));
player.sendMessage(mcLocale.getString("m.ArcheryIgnitionLength", new Object[] { (ignition / 20) })); player.sendMessage(mcLocale.getString("m.ArcheryIgnitionLength", new Object[] { (ignition / 20) }));
return true; return true;
} }
} }

View File

@ -1,62 +1,62 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class AxesCommand implements CommandExecutor { public class AxesCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
String percentage; String percentage;
float skillvalue = (float) PP.getSkillLevel(SkillType.AXES); float skillvalue = (float) PP.getSkillLevel(SkillType.AXES);
if (PP.getSkillLevel(SkillType.AXES) < 750) if (PP.getSkillLevel(SkillType.AXES) < 750)
percentage = String.valueOf((skillvalue / 1000) * 100); percentage = String.valueOf((skillvalue / 1000) * 100);
else else
percentage = "75"; percentage = "75";
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.AXES); int x = PP.getSkillLevel(SkillType.AXES);
while (x >= 50) { while (x >= 50) {
x -= 50; x -= 50;
ticks++; ticks++;
} }
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillAxes") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillAxes") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainAxes") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainAxes") }));
if (mcPermissions.getInstance().axes(player)) 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.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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.AxesCritChance", new Object[] { percentage })); player.sendMessage(mcLocale.getString("m.AxesCritChance", new Object[] { percentage }));
if (PP.getSkillLevel(SkillType.AXES) < 500) if (PP.getSkillLevel(SkillType.AXES) < 500)
player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockAxes1") })); player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockAxes1") }));
else else
player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusAxes1_0"), mcLocale.getString("m.AbilBonusAxes1_1") })); 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 })); player.sendMessage(mcLocale.getString("m.AxesSkullLength", new Object[] { ticks }));
return true; return true;
} }
} }

View File

@ -1,46 +1,46 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class ExcavationCommand implements CommandExecutor { public class ExcavationCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.EXCAVATION); int x = PP.getSkillLevel(SkillType.EXCAVATION);
while (x >= 50) { while (x >= 50) {
x -= 50; x -= 50;
ticks++; ticks++;
} }
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillExcavation") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillExcavation") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainExcavation") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainExcavation") }));
if (mcPermissions.getInstance().excavation(player)) 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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] { ticks })); player.sendMessage(mcLocale.getString("m.ExcavationGreenTerraLength", new Object[] { ticks }));
return true; return true;
} }
} }

View File

@ -1,47 +1,47 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Fishing; import com.gmail.nossr50.skills.Fishing;
public class FishingCommand implements CommandExecutor { public class FishingCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillFishing") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillFishing") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainFishing") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainFishing") }));
if (mcPermissions.getInstance().fishing(player)) 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.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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.FishingRank", new Object[] { Fishing.getFishingLootTier(PP) })); player.sendMessage(mcLocale.getString("m.FishingRank", new Object[] { Fishing.getFishingLootTier(PP) }));
player.sendMessage(mcLocale.getString("m.FishingMagicInfo")); player.sendMessage(mcLocale.getString("m.FishingMagicInfo"));
if (PP.getSkillLevel(SkillType.FISHING) < 150) if (PP.getSkillLevel(SkillType.FISHING) < 150)
player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockFishing1") })); player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockFishing1") }));
else else
player.sendMessage(mcLocale.getString("m.ShakeInfo", new Object[] { Fishing.getFishingLootTier(PP) })); player.sendMessage(mcLocale.getString("m.ShakeInfo", new Object[] { Fishing.getFishingLootTier(PP) }));
return true; return true;
} }
} }

View File

@ -1,63 +1,63 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class HerbalismCommand implements CommandExecutor { public class HerbalismCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
int bonus = 0; int bonus = 0;
if (PP.getSkillLevel(SkillType.HERBALISM) >= 200) if (PP.getSkillLevel(SkillType.HERBALISM) >= 200)
bonus++; bonus++;
if (PP.getSkillLevel(SkillType.HERBALISM) >= 400) if (PP.getSkillLevel(SkillType.HERBALISM) >= 400)
bonus++; bonus++;
if (PP.getSkillLevel(SkillType.HERBALISM) >= 600) if (PP.getSkillLevel(SkillType.HERBALISM) >= 600)
bonus++; bonus++;
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.HERBALISM); int x = PP.getSkillLevel(SkillType.HERBALISM);
while (x >= 50) { while (x >= 50) {
x -= 50; x -= 50;
ticks++; ticks++;
} }
float skillvalue = (float) PP.getSkillLevel(SkillType.HERBALISM); float skillvalue = (float) PP.getSkillLevel(SkillType.HERBALISM);
String percentage = String.valueOf((skillvalue / 1000) * 100); String percentage = String.valueOf((skillvalue / 1000) * 100);
String gpercentage = String.valueOf((skillvalue / 1500) * 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.SkillHeader", new Object[] { mcLocale.getString("m.SkillHerbalism") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainHerbalism") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainHerbalism") }));
if (mcPermissions.getInstance().herbalism(player)) 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.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.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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.HerbalismGreenTerraLength", new Object[] { ticks })); player.sendMessage(mcLocale.getString("m.HerbalismGreenTerraLength", new Object[] { ticks }));
player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbChance", new Object[] { gpercentage })); player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbChance", new Object[] { gpercentage }));
player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbStage", new Object[] { bonus })); player.sendMessage(mcLocale.getString("m.HerbalismGreenThumbStage", new Object[] { bonus }));
player.sendMessage(mcLocale.getString("m.HerbalismDoubleDropChance", new Object[] { percentage })); player.sendMessage(mcLocale.getString("m.HerbalismDoubleDropChance", new Object[] { percentage }));
return true; return true;
} }
} }

View File

@ -1,48 +1,48 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class MiningCommand implements CommandExecutor { public class MiningCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
float skillvalue = (float) PP.getSkillLevel(SkillType.MINING); float skillvalue = (float) PP.getSkillLevel(SkillType.MINING);
String percentage = String.valueOf((skillvalue / 1000) * 100); String percentage = String.valueOf((skillvalue / 1000) * 100);
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.MINING); int x = PP.getSkillLevel(SkillType.MINING);
while (x >= 50) { while (x >= 50) {
x -= 50; x -= 50;
ticks++; ticks++;
} }
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillMining") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillMining") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainMining") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainMining") }));
if (mcPermissions.getInstance().mining(player)) 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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.MiningDoubleDropChance", new Object[] { percentage })); player.sendMessage(mcLocale.getString("m.MiningDoubleDropChance", new Object[] { percentage }));
player.sendMessage(mcLocale.getString("m.MiningSuperBreakerLength", new Object[] { ticks })); player.sendMessage(mcLocale.getString("m.MiningSuperBreakerLength", new Object[] { ticks }));
return true; return true;
} }
} }

View File

@ -1,53 +1,53 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Repair; import com.gmail.nossr50.skills.Repair;
public class RepairCommand implements CommandExecutor { public class RepairCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
float skillvalue = (float) PP.getSkillLevel(SkillType.REPAIR); float skillvalue = (float) PP.getSkillLevel(SkillType.REPAIR);
String percentage = String.valueOf((skillvalue / 1000) * 100); String percentage = String.valueOf((skillvalue / 1000) * 100);
String repairmastery = String.valueOf((skillvalue / 500) * 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.SkillHeader", new Object[] { mcLocale.getString("m.SkillRepair") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainRepair") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainRepair") }));
if (mcPermissions.getInstance().repair(player)) 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.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.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.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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.RepairRepairMastery", new Object[] { repairmastery })); player.sendMessage(mcLocale.getString("m.RepairRepairMastery", new Object[] { repairmastery }));
player.sendMessage(mcLocale.getString("m.RepairSuperRepairChance", new Object[] { percentage })); 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.ArcaneForgingRank", new Object[] { Repair.getArcaneForgingRank(PP) }));
player.sendMessage(mcLocale.getString("m.ArcaneEnchantKeepChance", new Object[] { Repair.getEnchantChance(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.ArcaneEnchantDowngradeChance", new Object[] { Repair.getDowngradeChance(Repair.getArcaneForgingRank(PP)) }));
player.sendMessage(mcLocale.getString("m.ArcaneForgingMilestones")); player.sendMessage(mcLocale.getString("m.ArcaneForgingMilestones"));
player.sendMessage(mcLocale.getString("m.ArcaneForgingMilestones2")); player.sendMessage(mcLocale.getString("m.ArcaneForgingMilestones2"));
return true; return true;
} }
} }

View File

@ -1,69 +1,69 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class SwordsCommand implements CommandExecutor { public class SwordsCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
int bleedrank = 2; int bleedrank = 2;
String percentage, counterattackpercentage; String percentage, counterattackpercentage;
float skillvalue = (float) PP.getSkillLevel(SkillType.SWORDS); float skillvalue = (float) PP.getSkillLevel(SkillType.SWORDS);
if (PP.getSkillLevel(SkillType.SWORDS) < 750) if (PP.getSkillLevel(SkillType.SWORDS) < 750)
percentage = String.valueOf((skillvalue / 1000) * 100); percentage = String.valueOf((skillvalue / 1000) * 100);
else else
percentage = "75"; percentage = "75";
if (skillvalue >= 750) if (skillvalue >= 750)
bleedrank += 1; bleedrank += 1;
if (PP.getSkillLevel(SkillType.SWORDS) <= 600) if (PP.getSkillLevel(SkillType.SWORDS) <= 600)
counterattackpercentage = String.valueOf((skillvalue / 2000) * 100); counterattackpercentage = String.valueOf((skillvalue / 2000) * 100);
else else
counterattackpercentage = "30"; counterattackpercentage = "30";
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.SWORDS); int x = PP.getSkillLevel(SkillType.SWORDS);
while (x >= 50) { while (x >= 50) {
x -= 50; x -= 50;
ticks++; ticks++;
} }
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillSwords") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillSwords") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainSwords") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainSwords") }));
if (mcPermissions.getInstance().swords(player)) 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.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.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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.SwordsCounterAttChance", new Object[] { counterattackpercentage })); player.sendMessage(mcLocale.getString("m.SwordsCounterAttChance", new Object[] { counterattackpercentage }));
player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] { bleedrank })); player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] { bleedrank }));
player.sendMessage(mcLocale.getString("m.SwordsTickNote")); player.sendMessage(mcLocale.getString("m.SwordsTickNote"));
player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] { percentage })); player.sendMessage(mcLocale.getString("m.SwordsBleedLength", new Object[] { percentage }));
player.sendMessage(mcLocale.getString("m.SwordsSSLength", new Object[] { ticks })); player.sendMessage(mcLocale.getString("m.SwordsSSLength", new Object[] { ticks }));
return true; return true;
} }
} }

View File

@ -1,70 +1,70 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class TamingCommand implements CommandExecutor { public class TamingCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
float skillvalue = (float) PP.getSkillLevel(SkillType.TAMING); float skillvalue = (float) PP.getSkillLevel(SkillType.TAMING);
String percentage = String.valueOf((skillvalue / 1000) * 100); String percentage = String.valueOf((skillvalue / 1000) * 100);
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillTaming") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillTaming") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainTaming") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainTaming") }));
if (mcPermissions.getInstance().taming(player)) 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.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.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.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.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.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.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.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.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.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.EffectsTaming7_2", new Object[] { LoadProperties.bonesConsumedByCOTW }));
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
if (PP.getSkillLevel(SkillType.TAMING) < 100) if (PP.getSkillLevel(SkillType.TAMING) < 100)
player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming1") })); player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming1") }));
else else
player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming1_0"), mcLocale.getString("m.AbilBonusTaming1_1") })); player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming1_0"), mcLocale.getString("m.AbilBonusTaming1_1") }));
if (PP.getSkillLevel(SkillType.TAMING) < 250) if (PP.getSkillLevel(SkillType.TAMING) < 250)
player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming2") })); player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming2") }));
else else
player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming2_0"), mcLocale.getString("m.AbilBonusTaming2_1") })); player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming2_0"), mcLocale.getString("m.AbilBonusTaming2_1") }));
if (PP.getSkillLevel(SkillType.TAMING) < 500) if (PP.getSkillLevel(SkillType.TAMING) < 500)
player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming3") })); player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming3") }));
else else
player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming3_0"), mcLocale.getString("m.AbilBonusTaming3_1") })); player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming3_0"), mcLocale.getString("m.AbilBonusTaming3_1") }));
if (PP.getSkillLevel(SkillType.TAMING) < 750) if (PP.getSkillLevel(SkillType.TAMING) < 750)
player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming4") })); player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockTaming4") }));
else else
player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusTaming4_0"), mcLocale.getString("m.AbilBonusTaming4_1") })); 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 })); player.sendMessage(mcLocale.getString("m.TamingGoreChance", new Object[] { percentage }));
return true; return true;
} }
} }

View File

@ -1,74 +1,74 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class UnarmedCommand implements CommandExecutor { public class UnarmedCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
String percentage, arrowpercentage; String percentage, arrowpercentage;
float skillvalue = (float) PP.getSkillLevel(SkillType.UNARMED); float skillvalue = (float) PP.getSkillLevel(SkillType.UNARMED);
if (PP.getSkillLevel(SkillType.UNARMED) < 1000) if (PP.getSkillLevel(SkillType.UNARMED) < 1000)
percentage = String.valueOf((skillvalue / 4000) * 100); percentage = String.valueOf((skillvalue / 4000) * 100);
else else
percentage = "25"; percentage = "25";
if (PP.getSkillLevel(SkillType.UNARMED) < 1000) if (PP.getSkillLevel(SkillType.UNARMED) < 1000)
arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2); arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2);
else else
arrowpercentage = "50"; arrowpercentage = "50";
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.UNARMED); int x = PP.getSkillLevel(SkillType.UNARMED);
while (x >= 50) { while (x >= 50) {
x -= 50; x -= 50;
ticks++; ticks++;
} }
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillUnarmed") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillUnarmed") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainUnarmed") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainUnarmed") }));
if (mcPermissions.getInstance().unarmed(player)) 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.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.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.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.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.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.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.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.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
player.sendMessage(mcLocale.getString("m.UnarmedArrowDeflectChance", new Object[] { arrowpercentage })); player.sendMessage(mcLocale.getString("m.UnarmedArrowDeflectChance", new Object[] { arrowpercentage }));
player.sendMessage(mcLocale.getString("m.UnarmedDisarmChance", new Object[] { percentage })); player.sendMessage(mcLocale.getString("m.UnarmedDisarmChance", new Object[] { percentage }));
if (PP.getSkillLevel(SkillType.UNARMED) < 250) { if (PP.getSkillLevel(SkillType.UNARMED) < 250) {
player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockUnarmed1") })); player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockUnarmed1") }));
} else if (PP.getSkillLevel(SkillType.UNARMED) >= 250 && PP.getSkillLevel(SkillType.UNARMED) < 500) { } 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.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") })); player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockUnarmed2") }));
} else { } else {
player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusUnarmed2_0"), mcLocale.getString("m.AbilBonusUnarmed2_1") })); 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 })); player.sendMessage(mcLocale.getString("m.UnarmedBerserkLength", new Object[] { ticks }));
return true; return true;
} }
} }

View File

@ -1,56 +1,56 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class WoodcuttingCommand implements CommandExecutor { public class WoodcuttingCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
float skillvalue = (float) PP.getSkillLevel(SkillType.WOODCUTTING); float skillvalue = (float) PP.getSkillLevel(SkillType.WOODCUTTING);
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.WOODCUTTING); int x = PP.getSkillLevel(SkillType.WOODCUTTING);
while (x >= 50) { while (x >= 50) {
x -= 50; x -= 50;
ticks++; ticks++;
} }
String percentage = String.valueOf((skillvalue / 1000) * 100); String percentage = String.valueOf((skillvalue / 1000) * 100);
player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillWoodCutting") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.SkillWoodCutting") }));
player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainWoodCutting") })); player.sendMessage(mcLocale.getString("m.XPGain", new Object[] { mcLocale.getString("m.XPGainWoodCutting") }));
if (mcPermissions.getInstance().woodcutting(player)) 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.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.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.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.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.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") })); player.sendMessage(mcLocale.getString("m.SkillHeader", new Object[] { mcLocale.getString("m.YourStats") }));
if (PP.getSkillLevel(SkillType.WOODCUTTING) < 100) if (PP.getSkillLevel(SkillType.WOODCUTTING) < 100)
player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockWoodCutting1") })); player.sendMessage(mcLocale.getString("m.AbilityLockTemplate", new Object[] { mcLocale.getString("m.AbilLockWoodCutting1") }));
else else
player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusWoodCutting1_0"), mcLocale.getString("m.AbilBonusWoodCutting1_1") })); 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.WoodCuttingDoubleDropChance", new Object[] { percentage }));
player.sendMessage(mcLocale.getString("m.WoodCuttingTreeFellerLength", new Object[] { ticks })); player.sendMessage(mcLocale.getString("m.WoodCuttingTreeFellerLength", new Object[] { ticks }));
return true; return true;
} }
} }

View File

@ -1,50 +1,50 @@
package com.gmail.nossr50.commands.spout; package com.gmail.nossr50.commands.spout;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.HUDType; import com.gmail.nossr50.datatypes.HUDType;
import com.gmail.nossr50.datatypes.HUDmmo; import com.gmail.nossr50.datatypes.HUDmmo;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
public class MchudCommand implements CommandExecutor { public class MchudCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.spoutEnabled) { if (!LoadProperties.spoutEnabled) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(args.length >= 1) if(args.length >= 1)
{ {
for(HUDType x : HUDType.values()) for(HUDType x : HUDType.values())
{ {
if(x.toString().toLowerCase().equals(args[0].toLowerCase())) if(x.toString().toLowerCase().equals(args[0].toLowerCase()))
{ {
if(SpoutStuff.playerHUDs.containsKey(player)) if(SpoutStuff.playerHUDs.containsKey(player))
{ {
SpoutStuff.playerHUDs.get(player).resetHUD(); SpoutStuff.playerHUDs.get(player).resetHUD();
SpoutStuff.playerHUDs.remove(player); SpoutStuff.playerHUDs.remove(player);
PP.setHUDType(x); PP.setHUDType(x);
SpoutStuff.playerHUDs.put(player, new HUDmmo(player)); SpoutStuff.playerHUDs.put(player, new HUDmmo(player));
} }
} }
} }
} }
return true; return true;
} }
} }

View File

@ -1,62 +1,62 @@
package com.gmail.nossr50.commands.spout; package com.gmail.nossr50.commands.spout;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
public class XplockCommand implements CommandExecutor { public class XplockCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.spoutEnabled || !LoadProperties.xpbar || !LoadProperties.xplockEnable) { if (!LoadProperties.spoutEnabled || !LoadProperties.xpbar || !LoadProperties.xplockEnable) {
sender.sendMessage("This command is not enabled."); sender.sendMessage("This command is not enabled.");
return true; return true;
} }
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage."); sender.sendMessage("This command does not support console useage.");
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player); 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 (args.length >= 1 && Skills.isSkill(args[0]) && mcPermissions.permission(player, "mcmmo.skills." + Skills.getSkillType(args[0]).toString().toLowerCase())) {
if (PP.getXpBarLocked()) { if (PP.getXpBarLocked()) {
PP.setSkillLock(Skills.getSkillType(args[0])); PP.setSkillLock(Skills.getSkillType(args[0]));
player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) })); player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) }));
} else { } else {
PP.setSkillLock(Skills.getSkillType(args[0])); PP.setSkillLock(Skills.getSkillType(args[0]));
PP.toggleXpBarLocked(); PP.toggleXpBarLocked();
player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) })); player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) }));
} }
SpoutStuff.updateXpBar(player); SpoutStuff.updateXpBar(player);
} else if (args.length < 1) { } else if (args.length < 1) {
if (PP.getXpBarLocked()) { if (PP.getXpBarLocked()) {
PP.toggleXpBarLocked(); PP.toggleXpBarLocked();
player.sendMessage(mcLocale.getString("Commands.xplock.unlocked")); player.sendMessage(mcLocale.getString("Commands.xplock.unlocked"));
} else if (PP.getLastGained() != null) { } else if (PP.getLastGained() != null) {
PP.toggleXpBarLocked(); PP.toggleXpBarLocked();
PP.setSkillLock(PP.getLastGained()); PP.setSkillLock(PP.getLastGained());
player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) })); player.sendMessage(mcLocale.getString("Commands.xplock.locked", new Object[] { m.getCapitalized(PP.getSkillLock().toString()) }));
} }
} else if (args.length >= 1 && !Skills.isSkill(args[0])) { } else if (args.length >= 1 && !Skills.isSkill(args[0])) {
player.sendMessage("Commands.xplock.invalid"); 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())) { } 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")); player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true; return true;
} }
return true; return true;
} }
} }

View File

@ -1,90 +1,90 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.config; package com.gmail.nossr50.config;
import java.util.*; import java.util.*;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
public class Misc public class Misc
{ {
String location = "mcmmo.properties"; String location = "mcmmo.properties";
protected static final Logger log = Logger.getLogger("Minecraft"); protected static final Logger log = Logger.getLogger("Minecraft");
public ArrayList<Entity> mobSpawnerList = new ArrayList<Entity>(); public ArrayList<Entity> mobSpawnerList = new ArrayList<Entity>();
public ArrayList<Block> blockWatchList = new ArrayList<Block>(); public ArrayList<Block> blockWatchList = new ArrayList<Block>();
public ArrayList<Block> treeFeller = new ArrayList<Block>(); public ArrayList<Block> treeFeller = new ArrayList<Block>();
public HashMap<Entity, Integer> arrowTracker = new HashMap<Entity, Integer>(); public HashMap<Entity, Integer> arrowTracker = new HashMap<Entity, Integer>();
public ArrayList<LivingEntity> bleedTracker = new ArrayList<LivingEntity>(); public ArrayList<LivingEntity> bleedTracker = new ArrayList<LivingEntity>();
mcMMO plugin = null; mcMMO plugin = null;
//BLEED QUE STUFF //BLEED QUE STUFF
public LivingEntity[] bleedQue = new LivingEntity[20]; public LivingEntity[] bleedQue = new LivingEntity[20];
public int bleedQuePos = 0; public int bleedQuePos = 0;
public LivingEntity[] bleedRemovalQue = new LivingEntity[20]; public LivingEntity[] bleedRemovalQue = new LivingEntity[20];
public int bleedRemovalQuePos = 0; public int bleedRemovalQuePos = 0;
public Misc(mcMMO mcMMO) public Misc(mcMMO mcMMO)
{ {
plugin = mcMMO; plugin = mcMMO;
} }
public void addToBleedQue(LivingEntity entity) public void addToBleedQue(LivingEntity entity)
{ {
//Assign entity to empty position //Assign entity to empty position
bleedQue[bleedQuePos] = entity; bleedQue[bleedQuePos] = entity;
//Move position up by 1 increment //Move position up by 1 increment
bleedQuePos++; bleedQuePos++;
//Check if array is full //Check if array is full
if(bleedQuePos >= bleedQue.length) if(bleedQuePos >= bleedQue.length)
{ {
//Create new temporary array //Create new temporary array
LivingEntity[] temp = new LivingEntity[bleedQue.length*2]; LivingEntity[] temp = new LivingEntity[bleedQue.length*2];
//Copy data from bleedQue to temporary array //Copy data from bleedQue to temporary array
System.arraycopy(bleedQue, 0, temp, 0, bleedQue.length); System.arraycopy(bleedQue, 0, temp, 0, bleedQue.length);
//Point bleedQue to new array //Point bleedQue to new array
bleedQue = temp; bleedQue = temp;
} }
} }
public void addToBleedRemovalQue(LivingEntity entity) public void addToBleedRemovalQue(LivingEntity entity)
{ {
//Assign entity to empty position //Assign entity to empty position
bleedRemovalQue[bleedRemovalQuePos] = entity; bleedRemovalQue[bleedRemovalQuePos] = entity;
//Move position up by 1 increment //Move position up by 1 increment
bleedRemovalQuePos++; bleedRemovalQuePos++;
//Check if array is full //Check if array is full
if(bleedRemovalQuePos >= bleedRemovalQue.length) if(bleedRemovalQuePos >= bleedRemovalQue.length)
{ {
//Create new temporary array //Create new temporary array
LivingEntity[] temp = new LivingEntity[bleedRemovalQue.length*2]; LivingEntity[] temp = new LivingEntity[bleedRemovalQue.length*2];
//Copy data from bleedRemovalQue to temporary array //Copy data from bleedRemovalQue to temporary array
System.arraycopy(bleedRemovalQue, 0, temp, 0, bleedRemovalQue.length); System.arraycopy(bleedRemovalQue, 0, temp, 0, bleedRemovalQue.length);
//Point bleedRemovalQue to new array //Point bleedRemovalQue to new array
bleedRemovalQue = temp; bleedRemovalQue = temp;
} }
} }
} }

View File

@ -1,29 +1,29 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes; package com.gmail.nossr50.datatypes;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
public class FakeBlockBreakEvent extends BlockBreakEvent { public class FakeBlockBreakEvent extends BlockBreakEvent {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public FakeBlockBreakEvent(Block theBlock, Player player) { public FakeBlockBreakEvent(Block theBlock, Player player) {
super(theBlock, player); super(theBlock, player);
} }
} }

View File

@ -1,25 +1,25 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes; package com.gmail.nossr50.datatypes;
public enum HUDType public enum HUDType
{ {
DISABLED, DISABLED,
STANDARD, STANDARD,
SMALL, SMALL,
RETRO; RETRO;
} }

View File

@ -1,287 +1,287 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes; package com.gmail.nossr50.datatypes;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.getspout.spoutapi.SpoutManager; import org.getspout.spoutapi.SpoutManager;
import org.getspout.spoutapi.gui.Color; import org.getspout.spoutapi.gui.Color;
import org.getspout.spoutapi.gui.GenericGradient; import org.getspout.spoutapi.gui.GenericGradient;
import org.getspout.spoutapi.gui.GenericTexture; import org.getspout.spoutapi.gui.GenericTexture;
import org.getspout.spoutapi.gui.RenderPriority; import org.getspout.spoutapi.gui.RenderPriority;
import org.getspout.spoutapi.gui.Widget; import org.getspout.spoutapi.gui.Widget;
import org.getspout.spoutapi.player.SpoutPlayer; import org.getspout.spoutapi.player.SpoutPlayer;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
public class HUDmmo public class HUDmmo
{ {
int center_x = 427/2; int center_x = 427/2;
int center_y = 240/2; int center_y = 240/2;
String playerName = null; String playerName = null;
Widget xpbar = null; Widget xpbar = null;
GenericGradient xpfill = null; GenericGradient xpfill = null;
GenericGradient xpbg = null; GenericGradient xpbg = null;
GenericGradient xpicon_bg = null; GenericGradient xpicon_bg = null;
GenericGradient xpicon_border = null; GenericGradient xpicon_border = null;
GenericTexture xpicon = null; GenericTexture xpicon = null;
mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO"); mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO");
public HUDmmo(Player player) public HUDmmo(Player player)
{ {
playerName = player.getName(); playerName = player.getName();
initializeHUD(player); initializeHUD(player);
} }
public void initializeHUD(Player player) public void initializeHUD(Player player)
{ {
//PlayerProfile PP = Users.getProfile(player); //PlayerProfile PP = Users.getProfile(player);
HUDType type = Users.getProfile(player).getHUDType(); HUDType type = Users.getProfile(player).getHUDType();
//if(LoadProperties.partybar && PP.getPartyHUD()) //if(LoadProperties.partybar && PP.getPartyHUD())
//mmoHelper.initialize(SpoutManager.getPlayer(player), plugin); //PARTY HUD //mmoHelper.initialize(SpoutManager.getPlayer(player), plugin); //PARTY HUD
switch(type) switch(type)
{ {
case RETRO: case RETRO:
{ {
initializeXpBarDisplayRetro(SpoutManager.getPlayer(player)); initializeXpBarDisplayRetro(SpoutManager.getPlayer(player));
break; break;
} }
case STANDARD: case STANDARD:
{ {
initializeXpBarDisplayStandard(SpoutManager.getPlayer(player)); initializeXpBarDisplayStandard(SpoutManager.getPlayer(player));
break; break;
} }
case SMALL: case SMALL:
{ {
initializeXpBarDisplaySmall(SpoutManager.getPlayer(player)); initializeXpBarDisplaySmall(SpoutManager.getPlayer(player));
break; break;
} }
case DISABLED: case DISABLED:
{ {
//Do nothing.. :) //Do nothing.. :)
} }
} }
} }
public void updateXpBarDisplay(HUDType type, Player player) public void updateXpBarDisplay(HUDType type, Player player)
{ {
switch(type) switch(type)
{ {
case RETRO: case RETRO:
{ {
updateXpBarRetro(player, Users.getProfile(player)); updateXpBarRetro(player, Users.getProfile(player));
break; break;
} }
case STANDARD: case STANDARD:
{ {
updateXpBarStandard(player, Users.getProfile(player)); updateXpBarStandard(player, Users.getProfile(player));
break; break;
} }
case SMALL: case SMALL:
{ {
updateXpBarStandard(player, Users.getProfile(player)); updateXpBarStandard(player, Users.getProfile(player));
break; break;
} }
case DISABLED: case DISABLED:
{ {
//Do nothing.. :) //Do nothing.. :)
} }
} }
} }
public void resetHUD() public void resetHUD()
{ {
SpoutPlayer sPlayer = SpoutStuff.getSpoutPlayer(playerName); SpoutPlayer sPlayer = SpoutStuff.getSpoutPlayer(playerName);
//PlayerProfile PP = Users.getProfile(sPlayer); //PlayerProfile PP = Users.getProfile(sPlayer);
if(sPlayer != null) if(sPlayer != null)
{ {
sPlayer.getMainScreen().removeWidgets(plugin); sPlayer.getMainScreen().removeWidgets(plugin);
//Reset the objects //Reset the objects
xpbar = null; xpbar = null;
xpfill = null; xpfill = null;
xpbg = null; xpbg = null;
xpicon = null; xpicon = null;
//if(LoadProperties.partybar && PP.getPartyHUD()) //if(LoadProperties.partybar && PP.getPartyHUD())
//mmoHelper.initialize(sPlayer, plugin); //mmoHelper.initialize(sPlayer, plugin);
sPlayer.getMainScreen().setDirty(true); sPlayer.getMainScreen().setDirty(true);
} }
} }
private void initializeXpBarDisplayRetro(SpoutPlayer sPlayer) private void initializeXpBarDisplayRetro(SpoutPlayer sPlayer)
{ {
Color border = new Color((float)LoadProperties.xpborder_r, (float)LoadProperties.xpborder_g, (float)LoadProperties.xpborder_b, 1f); 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 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 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); Color darkbg = new Color(0.2f, 0.2f, 0.2f, 1f);
xpicon = new GenericTexture(); xpicon = new GenericTexture();
xpbar = new GenericGradient(); xpbar = new GenericGradient();
xpfill = new GenericGradient(); xpfill = new GenericGradient();
xpbg = new GenericGradient(); xpbg = new GenericGradient();
xpicon_bg = new GenericGradient(); xpicon_bg = new GenericGradient();
xpicon_border = 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_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_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.setWidth(6).setHeight(6).setX(141).setY(9).setPriority(RenderPriority.Normal).setDirty(true);
xpicon.setUrl("Icon_r.png"); xpicon.setUrl("Icon_r.png");
xpbar.setWidth(128).setHeight(4).setX(149).setY(10); xpbar.setWidth(128).setHeight(4).setX(149).setY(10);
((GenericGradient) xpbar).setBottomColor(border).setTopColor(border).setPriority(RenderPriority.Highest).setDirty(true); ((GenericGradient) xpbar).setBottomColor(border).setTopColor(border).setPriority(RenderPriority.Highest).setDirty(true);
xpfill.setWidth(0).setHeight(2).setX(150).setY(11); xpfill.setWidth(0).setHeight(2).setX(150).setY(11);
xpfill.setBottomColor(green).setTopColor(green).setPriority(RenderPriority.Lowest).setDirty(true); xpfill.setBottomColor(green).setTopColor(green).setPriority(RenderPriority.Lowest).setDirty(true);
xpbg.setWidth(126).setHeight(2).setX(150).setY(11); xpbg.setWidth(126).setHeight(2).setX(150).setY(11);
xpbg.setBottomColor(background).setTopColor(background).setPriority(RenderPriority.Low).setDirty(true); xpbg.setBottomColor(background).setTopColor(background).setPriority(RenderPriority.Low).setDirty(true);
if(LoadProperties.xpbar) if(LoadProperties.xpbar)
{ {
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbar); sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbar);
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpfill); sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpfill);
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbg); sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpbg);
if(LoadProperties.xpicon) if(LoadProperties.xpicon)
{ {
sPlayer.getMainScreen().attachWidget(plugin, (GenericTexture)xpicon); sPlayer.getMainScreen().attachWidget(plugin, (GenericTexture)xpicon);
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_bg); sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_bg);
} }
sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_border); sPlayer.getMainScreen().attachWidget(plugin, (GenericGradient)xpicon_border);
} }
sPlayer.getMainScreen().setDirty(true); sPlayer.getMainScreen().setDirty(true);
} }
private void initializeXpBarDisplayStandard(SpoutPlayer sPlayer) private void initializeXpBarDisplayStandard(SpoutPlayer sPlayer)
{ {
//Setup xp bar //Setup xp bar
xpbar = new GenericTexture(); xpbar = new GenericTexture();
if(LoadProperties.xpbar && LoadProperties.xpicon) if(LoadProperties.xpbar && LoadProperties.xpicon)
{ {
xpicon = new GenericTexture(); xpicon = new GenericTexture();
xpicon.setUrl("Icon.png"); xpicon.setUrl("Icon.png");
xpicon.setHeight(16).setWidth(32).setX(LoadProperties.xpicon_x).setY(LoadProperties.xpicon_y); xpicon.setHeight(16).setWidth(32).setX(LoadProperties.xpicon_x).setY(LoadProperties.xpicon_y);
xpicon.setDirty(true); xpicon.setDirty(true);
sPlayer.getMainScreen().attachWidget(plugin, xpicon); sPlayer.getMainScreen().attachWidget(plugin, xpicon);
} }
if(LoadProperties.xpbar) if(LoadProperties.xpbar)
{ {
((GenericTexture)xpbar).setUrl("xpbar_inc000.png"); ((GenericTexture)xpbar).setUrl("xpbar_inc000.png");
xpbar.setX(LoadProperties.xpbar_x).setY(LoadProperties.xpbar_y).setHeight(8).setWidth(256); xpbar.setX(LoadProperties.xpbar_x).setY(LoadProperties.xpbar_y).setHeight(8).setWidth(256);
sPlayer.getMainScreen().attachWidget(plugin, xpbar); sPlayer.getMainScreen().attachWidget(plugin, xpbar);
} }
sPlayer.getMainScreen().setDirty(true); sPlayer.getMainScreen().setDirty(true);
} }
private void initializeXpBarDisplaySmall(SpoutPlayer sPlayer) private void initializeXpBarDisplaySmall(SpoutPlayer sPlayer)
{ {
//Setup xp bar //Setup xp bar
xpbar = new GenericTexture(); xpbar = new GenericTexture();
if(LoadProperties.xpbar && LoadProperties.xpicon) if(LoadProperties.xpbar && LoadProperties.xpicon)
{ {
xpicon = new GenericTexture(); xpicon = new GenericTexture();
xpicon.setUrl("Icon.png"); xpicon.setUrl("Icon.png");
xpicon.setHeight(8).setWidth(16).setX(center_x-(8+64)).setY(LoadProperties.xpicon_y+2); xpicon.setHeight(8).setWidth(16).setX(center_x-(8+64)).setY(LoadProperties.xpicon_y+2);
xpicon.setDirty(true); xpicon.setDirty(true);
sPlayer.getMainScreen().attachWidget(plugin, xpicon); sPlayer.getMainScreen().attachWidget(plugin, xpicon);
} }
if(LoadProperties.xpbar) if(LoadProperties.xpbar)
{ {
((GenericTexture)xpbar).setUrl("xpbar_inc000.png"); ((GenericTexture)xpbar).setUrl("xpbar_inc000.png");
xpbar.setX(center_x-64).setY(LoadProperties.xpbar_y).setHeight(4).setWidth(128); xpbar.setX(center_x-64).setY(LoadProperties.xpbar_y).setHeight(4).setWidth(128);
sPlayer.getMainScreen().attachWidget(plugin, xpbar); sPlayer.getMainScreen().attachWidget(plugin, xpbar);
} }
sPlayer.getMainScreen().setDirty(true); sPlayer.getMainScreen().setDirty(true);
} }
private void updateXpBarStandard(Player player, PlayerProfile PP) private void updateXpBarStandard(Player player, PlayerProfile PP)
{ {
if(!LoadProperties.xpbar) if(!LoadProperties.xpbar)
return; return;
SkillType theType = null; SkillType theType = null;
if(PP.getXpBarLocked()) if(PP.getXpBarLocked())
theType=PP.getSkillLock(); theType=PP.getSkillLock();
else else
theType=PP.getLastGained(); theType=PP.getLastGained();
if(theType == null) if(theType == null)
return; return;
((GenericTexture) xpicon).setUrl(m.getCapitalized(theType.toString())+".png"); ((GenericTexture) xpicon).setUrl(m.getCapitalized(theType.toString())+".png");
xpicon.setDirty(true); xpicon.setDirty(true);
((GenericTexture) xpbar).setUrl(SpoutStuff.getUrlBar(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.STANDARD))); ((GenericTexture) xpbar).setUrl(SpoutStuff.getUrlBar(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.STANDARD)));
xpbar.setDirty(true); xpbar.setDirty(true);
SpoutManager.getPlayer(player).getMainScreen().setDirty(true); SpoutManager.getPlayer(player).getMainScreen().setDirty(true);
} }
private void updateXpBarRetro(Player player, PlayerProfile PP) private void updateXpBarRetro(Player player, PlayerProfile PP)
{ {
if(!LoadProperties.xpbar) if(!LoadProperties.xpbar)
return; return;
SkillType theType = null; SkillType theType = null;
if(PP.getXpBarLocked() && PP.getSkillLock() != null) if(PP.getXpBarLocked() && PP.getSkillLock() != null)
theType=PP.getSkillLock(); theType=PP.getSkillLock();
else else
theType=PP.getLastGained(); theType=PP.getLastGained();
if(theType == null) if(theType == null)
return; return;
Color color = SpoutStuff.getRetroColor(theType); Color color = SpoutStuff.getRetroColor(theType);
if(xpicon != null && theType != null) if(xpicon != null && theType != null)
xpicon.setUrl(m.getCapitalized(theType.toString())+"_r.png"); xpicon.setUrl(m.getCapitalized(theType.toString())+"_r.png");
if(theType != null) if(theType != null)
xpfill.setBottomColor(color).setTopColor(color).setWidth(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.RETRO)).setDirty(true); xpfill.setBottomColor(color).setTopColor(color).setWidth(SpoutStuff.getXpInc(PP.getSkillXpLevel(theType), PP.getXpToLevel(theType), HUDType.RETRO)).setDirty(true);
else else
System.out.println("theType was null!"); System.out.println("theType was null!");
SpoutManager.getPlayer(player).getMainScreen().setDirty(true); SpoutManager.getPlayer(player).getMainScreen().setDirty(true);
} }
} }

View File

@ -1,23 +1,23 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes; package com.gmail.nossr50.datatypes;
public class PlayerStat public class PlayerStat
{ {
public String name; public String name;
public int statVal = 0; public int statVal = 0;
} }

View File

@ -1,36 +1,36 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes; package com.gmail.nossr50.datatypes;
public enum SkillType public enum SkillType
{ {
ACROBATICS, ACROBATICS,
ALCHEMY, ALCHEMY,
ALL, //This one is just for convenience ALL, //This one is just for convenience
ARCHERY, ARCHERY,
AXES, AXES,
EXCAVATION, EXCAVATION,
ENCHANTING, ENCHANTING,
FISHING, FISHING,
HERBALISM, HERBALISM,
MINING, MINING,
REPAIR, REPAIR,
SWORDS, SWORDS,
TAMING, TAMING,
UNARMED, UNARMED,
WOODCUTTING; WOODCUTTING;
} }

View File

@ -1,55 +1,55 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes; package com.gmail.nossr50.datatypes;
import java.util.ArrayList; import java.util.ArrayList;
import com.gmail.nossr50.datatypes.PlayerStat; import com.gmail.nossr50.datatypes.PlayerStat;
public class Tree { public class Tree {
TreeNode root = null; TreeNode root = null;
public Tree(){} public Tree(){}
public void add(String p, int in) public void add(String p, int in)
{ {
if(root == null){ if(root == null){
root = new TreeNode(p, in); root = new TreeNode(p, in);
} }
else else
root.add(p,in); root.add(p,in);
} }
public PlayerStat[] inOrder() public PlayerStat[] inOrder()
{ {
if(root != null){ if(root != null){
ArrayList<PlayerStat> order = root.inOrder(new ArrayList<PlayerStat>()); ArrayList<PlayerStat> order = root.inOrder(new ArrayList<PlayerStat>());
return order.toArray(new PlayerStat[order.size()]); return order.toArray(new PlayerStat[order.size()]);
} else { } else {
//Throw some dummy info in case the users file is empty //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 //It's not a good fix but its better than rewriting the whole system
ArrayList<PlayerStat> x = new ArrayList<PlayerStat>(); ArrayList<PlayerStat> x = new ArrayList<PlayerStat>();
PlayerStat y = new PlayerStat(); PlayerStat y = new PlayerStat();
y.name = "$mcMMO_DummyInfo"; y.name = "$mcMMO_DummyInfo";
y.statVal = 0; y.statVal = 0;
x.add(y); x.add(y);
return x.toArray(new PlayerStat[x.size()]); return x.toArray(new PlayerStat[x.size()]);
} }
} }
} }

View File

@ -1,65 +1,65 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes; package com.gmail.nossr50.datatypes;
import java.util.ArrayList; import java.util.ArrayList;
import com.gmail.nossr50.datatypes.PlayerStat; import com.gmail.nossr50.datatypes.PlayerStat;
public class TreeNode public class TreeNode
{ {
TreeNode left = null TreeNode left = null
, right = null; , right = null;
PlayerStat ps = new PlayerStat(); PlayerStat ps = new PlayerStat();
public TreeNode(String p, int in) {ps.statVal = in; ps.name = p;} public TreeNode(String p, int in) {ps.statVal = in; ps.name = p;}
public void add (String p, int in) public void add (String p, int in)
{ {
if (in >= ps.statVal) if (in >= ps.statVal)
{ {
if (left == null) if (left == null)
left = new TreeNode(p,in); left = new TreeNode(p,in);
else else
left.add(p, in); left.add(p, in);
} }
else if(in < ps.statVal) else if(in < ps.statVal)
{ {
if (right == null) if (right == null)
right = new TreeNode(p,in); right = new TreeNode(p,in);
else else
right.add(p, in); right.add(p, in);
} }
} }
public ArrayList<PlayerStat> inOrder(ArrayList<PlayerStat> a) public ArrayList<PlayerStat> inOrder(ArrayList<PlayerStat> a)
{ {
//if left node is not null than assign arrayList(a) to left.inOrder() //if left node is not null than assign arrayList(a) to left.inOrder()
//GOES THROUGH THE ENTIRE LEFT BRANCH AND GRABS THE GREATEST NUMBER //GOES THROUGH THE ENTIRE LEFT BRANCH AND GRABS THE GREATEST NUMBER
if(left != null) if(left != null)
a = left.inOrder(a); a = left.inOrder(a);
a.add(ps); a.add(ps);
if(right != null) if(right != null)
a = right.inOrder(a); a = right.inOrder(a);
return a; return a;
} }
} }

View File

@ -1,29 +1,29 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes.buttons; package com.gmail.nossr50.datatypes.buttons;
import org.getspout.spoutapi.gui.GenericButton; import org.getspout.spoutapi.gui.GenericButton;
public class ButtonEscape extends GenericButton public class ButtonEscape extends GenericButton
{ {
public ButtonEscape() public ButtonEscape()
{ {
this.setText("EXIT"); this.setText("EXIT");
this.setWidth(60).setHeight(20); this.setWidth(60).setHeight(20);
this.setDirty(true); this.setDirty(true);
} }
} }

View File

@ -1,37 +1,37 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes.buttons; package com.gmail.nossr50.datatypes.buttons;
import org.getspout.spoutapi.gui.GenericButton; import org.getspout.spoutapi.gui.GenericButton;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
public class ButtonHUDStyle extends GenericButton public class ButtonHUDStyle extends GenericButton
{ {
public ButtonHUDStyle(PlayerProfile PP) public ButtonHUDStyle(PlayerProfile PP)
{ {
this.setText("HUD Type: "+PP.getHUDType().toString()); this.setText("HUD Type: "+PP.getHUDType().toString());
this.setTooltip("Change your HUD style!"); this.setTooltip("Change your HUD style!");
this.setWidth(120).setHeight(20); this.setWidth(120).setHeight(20);
this.setDirty(true); this.setDirty(true);
} }
public void updateText(PlayerProfile PP) public void updateText(PlayerProfile PP)
{ {
this.setText("HUD Type: "+PP.getHUDType().toString()); this.setText("HUD Type: "+PP.getHUDType().toString());
this.setDirty(true); this.setDirty(true);
} }
} }

View File

@ -1,75 +1,75 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.datatypes.popups; package com.gmail.nossr50.datatypes.popups;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.getspout.spoutapi.gui.GenericLabel; import org.getspout.spoutapi.gui.GenericLabel;
import org.getspout.spoutapi.gui.GenericPopup; import org.getspout.spoutapi.gui.GenericPopup;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.buttons.ButtonEscape; import com.gmail.nossr50.datatypes.buttons.ButtonEscape;
import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle; import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle;
import com.gmail.nossr50.datatypes.buttons.ButtonPartyToggle; import com.gmail.nossr50.datatypes.buttons.ButtonPartyToggle;
public class PopupMMO extends GenericPopup public class PopupMMO extends GenericPopup
{ {
ButtonHUDStyle HUDButton = null; ButtonHUDStyle HUDButton = null;
ButtonPartyToggle PartyButton = null; ButtonPartyToggle PartyButton = null;
ButtonEscape EscapeButton = null; ButtonEscape EscapeButton = null;
GenericLabel mcMMO_label = new GenericLabel(); GenericLabel mcMMO_label = new GenericLabel();
GenericLabel tip_escape = new GenericLabel(); GenericLabel tip_escape = new GenericLabel();
int center_x = 427/2; int center_x = 427/2;
int center_y = 240/2; int center_y = 240/2;
public PopupMMO(Player player, PlayerProfile PP, mcMMO plugin) public PopupMMO(Player player, PlayerProfile PP, mcMMO plugin)
{ {
//240, 427 are the bottom right //240, 427 are the bottom right
mcMMO_label.setText(ChatColor.GOLD+"~mcMMO Menu~"); mcMMO_label.setText(ChatColor.GOLD+"~mcMMO Menu~");
mcMMO_label.setX(center_x-35).setY((center_y/2)-20).setDirty(true); mcMMO_label.setX(center_x-35).setY((center_y/2)-20).setDirty(true);
tip_escape.setText(ChatColor.GRAY+"Press ESCAPE to exit!"); tip_escape.setText(ChatColor.GRAY+"Press ESCAPE to exit!");
tip_escape.setX(mcMMO_label.getX()-15).setY(mcMMO_label.getY()+10).setDirty(true); tip_escape.setX(mcMMO_label.getX()-15).setY(mcMMO_label.getY()+10).setDirty(true);
HUDButton = new ButtonHUDStyle(PP); HUDButton = new ButtonHUDStyle(PP);
HUDButton.setX(center_x-(HUDButton.getWidth()/2)).setY(center_y/2).setDirty(true); HUDButton.setX(center_x-(HUDButton.getWidth()/2)).setY(center_y/2).setDirty(true);
if(LoadProperties.partybar) if(LoadProperties.partybar)
{ {
PartyButton = new ButtonPartyToggle(PP); PartyButton = new ButtonPartyToggle(PP);
PartyButton.setX(center_x-(PartyButton.getWidth()/2)).setY(center_y/2+PartyButton.getHeight()).setDirty(true); PartyButton.setX(center_x-(PartyButton.getWidth()/2)).setY(center_y/2+PartyButton.getHeight()).setDirty(true);
this.attachWidget(plugin, PartyButton); this.attachWidget(plugin, PartyButton);
} }
EscapeButton = new ButtonEscape(); EscapeButton = new ButtonEscape();
EscapeButton.setX(center_x-(EscapeButton.getWidth()/2)).setY((center_y/2)+(HUDButton.getHeight()*2)+5).setDirty(true); EscapeButton.setX(center_x-(EscapeButton.getWidth()/2)).setY((center_y/2)+(HUDButton.getHeight()*2)+5).setDirty(true);
this.attachWidget(plugin, HUDButton); this.attachWidget(plugin, HUDButton);
this.attachWidget(plugin, mcMMO_label); this.attachWidget(plugin, mcMMO_label);
this.attachWidget(plugin, tip_escape); this.attachWidget(plugin, tip_escape);
this.attachWidget(plugin, EscapeButton); this.attachWidget(plugin, EscapeButton);
this.setDirty(true); this.setDirty(true);
} }
public void updateButtons(PlayerProfile PP) public void updateButtons(PlayerProfile PP)
{ {
HUDButton.updateText(PP); HUDButton.updateText(PP);
this.setDirty(true); this.setDirty(true);
} }
} }

View File

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

View File

@ -1,208 +1,208 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.listeners; package com.gmail.nossr50.listeners;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf; import org.bukkit.entity.Wolf;
import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityListener; import org.bukkit.event.entity.EntityListener;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.Combat; import com.gmail.nossr50.Combat;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
import com.gmail.nossr50.skills.Acrobatics; import com.gmail.nossr50.skills.Acrobatics;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
import com.gmail.nossr50.skills.Taming; import com.gmail.nossr50.skills.Taming;
public class mcEntityListener extends EntityListener public class mcEntityListener extends EntityListener
{ {
private final mcMMO plugin; private final mcMMO plugin;
public mcEntityListener(final mcMMO plugin) { public mcEntityListener(final mcMMO plugin) {
this.plugin = plugin; this.plugin = plugin;
} }
public void onEntityDamage(EntityDamageEvent event) public void onEntityDamage(EntityDamageEvent event)
{ {
if(event.isCancelled()) if(event.isCancelled())
return; return;
//Check for world pvp flag //Check for world pvp flag
if(event instanceof EntityDamageByEntityEvent) if(event instanceof EntityDamageByEntityEvent)
{ {
EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent)event; EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent)event;
if(eventb.getEntity() instanceof Player && eventb.getDamager() instanceof Player && !event.getEntity().getWorld().getPVP()) if(eventb.getEntity() instanceof Player && eventb.getDamager() instanceof Player && !event.getEntity().getWorld().getPVP())
return; return;
} }
/* /*
* CHECK FOR INVULNERABILITY * CHECK FOR INVULNERABILITY
*/ */
if(event.getEntity() instanceof Player) if(event.getEntity() instanceof Player)
{ {
Player defender = (Player)event.getEntity(); Player defender = (Player)event.getEntity();
PlayerProfile PPd = Users.getProfile(defender); PlayerProfile PPd = Users.getProfile(defender);
if(defender != null && PPd.getGodMode()) if(defender != null && PPd.getGodMode())
event.setCancelled(true); event.setCancelled(true);
if(PPd == null) if(PPd == null)
Users.addUser(defender); Users.addUser(defender);
} }
if(event.getEntity() instanceof LivingEntity) if(event.getEntity() instanceof LivingEntity)
{ {
//CraftEntity cEntity = (CraftEntity)event.getEntity(); //CraftEntity cEntity = (CraftEntity)event.getEntity();
//if(cEntity.getHandle() instanceof EntityLiving) //if(cEntity.getHandle() instanceof EntityLiving)
{ {
LivingEntity entityliving = (LivingEntity)event.getEntity(); LivingEntity entityliving = (LivingEntity)event.getEntity();
if(entityliving.getNoDamageTicks() < entityliving.getMaximumNoDamageTicks()/2.0F) if(entityliving.getNoDamageTicks() < entityliving.getMaximumNoDamageTicks()/2.0F)
{ {
Entity x = event.getEntity(); Entity x = event.getEntity();
DamageCause type = event.getCause(); DamageCause type = event.getCause();
if(event.getEntity() instanceof Wolf && ((Wolf)event.getEntity()).isTamed() && Taming.getOwner(((Wolf)event.getEntity()), plugin) != null) if(event.getEntity() instanceof Wolf && ((Wolf)event.getEntity()).isTamed() && Taming.getOwner(((Wolf)event.getEntity()), plugin) != null)
{ {
Wolf theWolf = (Wolf) event.getEntity(); Wolf theWolf = (Wolf) event.getEntity();
Player master = Taming.getOwner(theWolf, plugin); Player master = Taming.getOwner(theWolf, plugin);
PlayerProfile PPo = Users.getProfile(master); PlayerProfile PPo = Users.getProfile(master);
if(master == null || PPo == null) if(master == null || PPo == null)
return; return;
//Environmentally Aware //Environmentally Aware
if((event.getCause() == DamageCause.CONTACT || event.getCause() == DamageCause.LAVA || event.getCause() == DamageCause.FIRE) && PPo.getSkillLevel(SkillType.TAMING) >= 100) 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()) if(event.getDamage() < ((Wolf) event.getEntity()).getHealth())
{ {
event.getEntity().teleport(Taming.getOwner(theWolf, plugin).getLocation()); event.getEntity().teleport(Taming.getOwner(theWolf, plugin).getLocation());
master.sendMessage(mcLocale.getString("mcEntityListener.WolfComesBack")); //$NON-NLS-1$ master.sendMessage(mcLocale.getString("mcEntityListener.WolfComesBack")); //$NON-NLS-1$
event.getEntity().setFireTicks(0); event.getEntity().setFireTicks(0);
} }
} }
if(event.getCause() == DamageCause.FALL && PPo.getSkillLevel(SkillType.TAMING) >= 100) if(event.getCause() == DamageCause.FALL && PPo.getSkillLevel(SkillType.TAMING) >= 100)
{ {
event.setCancelled(true); event.setCancelled(true);
} }
//Thick Fur //Thick Fur
if(event.getCause() == DamageCause.FIRE_TICK) if(event.getCause() == DamageCause.FIRE_TICK)
{ {
event.getEntity().setFireTicks(0); event.getEntity().setFireTicks(0);
} }
} }
/* /*
* ACROBATICS * ACROBATICS
*/ */
if(x instanceof Player){ if(x instanceof Player){
Player player = (Player)x; Player player = (Player)x;
if(type == DamageCause.FALL){ if(type == DamageCause.FALL){
Acrobatics.acrobaticsCheck(player, event); Acrobatics.acrobaticsCheck(player, event);
} }
} }
/* /*
* Entity Damage by Entity checks * Entity Damage by Entity checks
*/ */
if(event instanceof EntityDamageByEntityEvent && !event.isCancelled()) if(event instanceof EntityDamageByEntityEvent && !event.isCancelled())
{ {
EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event; EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event;
Entity f = eventb.getDamager(); Entity f = eventb.getDamager();
Entity e = event.getEntity(); Entity e = event.getEntity();
/* /*
* PARTY CHECKS * PARTY CHECKS
*/ */
if(event.getEntity() instanceof Player && f instanceof Player) if(event.getEntity() instanceof Player && f instanceof Player)
{ {
Player defender = (Player)e; Player defender = (Player)e;
Player attacker = (Player)f; Player attacker = (Player)f;
if(Party.getInstance().inSameParty(defender, attacker)) if(Party.getInstance().inSameParty(defender, attacker))
event.setCancelled(true); event.setCancelled(true);
} }
Combat.combatChecks(event, plugin); Combat.combatChecks(event, plugin);
} }
/* /*
* Check to see if the defender took damage so we can apply recently hurt * Check to see if the defender took damage so we can apply recently hurt
*/ */
if(event.getEntity() instanceof Player) if(event.getEntity() instanceof Player)
{ {
Player herpderp = (Player)event.getEntity(); Player herpderp = (Player)event.getEntity();
if(!event.isCancelled() && event.getDamage() >= 1) if(!event.isCancelled() && event.getDamage() >= 1)
{ {
Users.getProfile(herpderp).setRecentlyHurt(System.currentTimeMillis()); Users.getProfile(herpderp).setRecentlyHurt(System.currentTimeMillis());
} }
} }
} }
} }
} }
} }
public void onEntityDeath(EntityDeathEvent event) public void onEntityDeath(EntityDeathEvent event)
{ {
Entity x = event.getEntity(); Entity x = event.getEntity();
x.setFireTicks(0); x.setFireTicks(0);
//Remove bleed track //Remove bleed track
if(plugin.misc.bleedTracker.contains((LivingEntity)x)) if(plugin.misc.bleedTracker.contains((LivingEntity)x))
plugin.misc.addToBleedRemovalQue((LivingEntity)x); plugin.misc.addToBleedRemovalQue((LivingEntity)x);
Skills.arrowRetrievalCheck(x, plugin); Skills.arrowRetrievalCheck(x, plugin);
/* /*
if(Config.getInstance().isMobSpawnTracked(x)){ if(Config.getInstance().isMobSpawnTracked(x)){
Config.getInstance().removeMobSpawnTrack(x); Config.getInstance().removeMobSpawnTrack(x);
} }
*/ */
if(x instanceof Player){ if(x instanceof Player){
Player player = (Player)x; Player player = (Player)x;
Users.getProfile(player).setBleedTicks(0); Users.getProfile(player).setBleedTicks(0);
} }
} }
public void onCreatureSpawn(CreatureSpawnEvent event) public void onCreatureSpawn(CreatureSpawnEvent event)
{ {
SpawnReason reason = event.getSpawnReason(); SpawnReason reason = event.getSpawnReason();
if(reason == SpawnReason.SPAWNER && !LoadProperties.xpGainsMobSpawners) if(reason == SpawnReason.SPAWNER && !LoadProperties.xpGainsMobSpawners)
{ {
plugin.misc.mobSpawnerList.add(event.getEntity()); plugin.misc.mobSpawnerList.add(event.getEntity());
} }
} }
public boolean isBow(ItemStack is){ public boolean isBow(ItemStack is){
if (is.getTypeId() == 261){ if (is.getTypeId() == 261){
return true; return true;
} else { } else {
return false; return false;
} }
} }
public boolean isPlayer(Entity entity){ public boolean isPlayer(Entity entity){
if (entity instanceof Player) { if (entity instanceof Player) {
return true; return true;
} else{ } else{
return false; return false;
} }
} }
} }

View File

@ -1,346 +1,346 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.listeners; package com.gmail.nossr50.listeners;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.craftbukkit.command.ColouredConsoleSender; import org.bukkit.craftbukkit.command.ColouredConsoleSender;
import org.bukkit.craftbukkit.entity.CraftItem; import org.bukkit.craftbukkit.entity.CraftItem;
import org.bukkit.entity.CreatureType; import org.bukkit.entity.CreatureType;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf; import org.bukkit.entity.Wolf;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerFishEvent;
import org.bukkit.event.player.PlayerFishEvent.State; import org.bukkit.event.player.PlayerFishEvent.State;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.Item; import com.gmail.nossr50.Item;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.commands.general.XprateCommand; import com.gmail.nossr50.commands.general.XprateCommand;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
import com.gmail.nossr50.spout.mmoHelper; import com.gmail.nossr50.spout.mmoHelper;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
import com.gmail.nossr50.skills.Fishing; import com.gmail.nossr50.skills.Fishing;
import com.gmail.nossr50.skills.Herbalism; import com.gmail.nossr50.skills.Herbalism;
import com.gmail.nossr50.skills.Repair; import com.gmail.nossr50.skills.Repair;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
public class mcPlayerListener extends PlayerListener public class mcPlayerListener extends PlayerListener
{ {
protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$ protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$
public Location spawn = null; public Location spawn = null;
private mcMMO plugin; private mcMMO plugin;
public mcPlayerListener(mcMMO instance) public mcPlayerListener(mcMMO instance)
{ {
plugin = instance; plugin = instance;
} }
public void onPlayerFish(PlayerFishEvent event) public void onPlayerFish(PlayerFishEvent event)
{ {
if(mcPermissions.getInstance().fishing(event.getPlayer())) if(mcPermissions.getInstance().fishing(event.getPlayer()))
{ {
if(event.getState() == State.CAUGHT_FISH) if(event.getState() == State.CAUGHT_FISH)
{ {
if(event.getCaught() instanceof CraftItem) if(event.getCaught() instanceof CraftItem)
{ {
Fishing.processResults(event); Fishing.processResults(event);
} }
} else if (event.getState() == State.CAUGHT_ENTITY) } else if (event.getState() == State.CAUGHT_ENTITY)
{ {
if(Users.getProfile(event.getPlayer()).getSkillLevel(SkillType.FISHING) >= 150 && event.getCaught() instanceof LivingEntity) if(Users.getProfile(event.getPlayer()).getSkillLevel(SkillType.FISHING) >= 150 && event.getCaught() instanceof LivingEntity)
{ {
Fishing.shakeMob(event); Fishing.shakeMob(event);
} }
} }
} }
} }
public void onPlayerPickupItem(PlayerPickupItemEvent event) public void onPlayerPickupItem(PlayerPickupItemEvent event)
{ {
if(Users.getProfile(event.getPlayer()).getBerserkMode()) if(Users.getProfile(event.getPlayer()).getBerserkMode())
{ {
event.setCancelled(true); event.setCancelled(true);
} }
} }
public void onPlayerRespawn(PlayerRespawnEvent event) public void onPlayerRespawn(PlayerRespawnEvent event)
{ {
Player player = event.getPlayer(); Player player = event.getPlayer();
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(LoadProperties.enableMySpawn && mcPermissions.getInstance().mySpawn(player)) if(LoadProperties.enableMySpawn && mcPermissions.getInstance().mySpawn(player))
{ {
if(player != null && PP != null) if(player != null && PP != null)
{ {
PP.setRespawnATS(System.currentTimeMillis()); PP.setRespawnATS(System.currentTimeMillis());
Location mySpawn = PP.getMySpawn(player); Location mySpawn = PP.getMySpawn(player);
if(mySpawn != null) if(mySpawn != null)
{ {
{ {
event.setRespawnLocation(mySpawn); event.setRespawnLocation(mySpawn);
} }
} }
} }
} }
} }
public void onPlayerLogin(PlayerLoginEvent event) public void onPlayerLogin(PlayerLoginEvent event)
{ {
Users.addUser(event.getPlayer()); Users.addUser(event.getPlayer());
} }
public void onPlayerQuit(PlayerQuitEvent event) public void onPlayerQuit(PlayerQuitEvent event)
{ {
/* /*
* GARBAGE COLLECTION * GARBAGE COLLECTION
*/ */
//Discard the PlayerProfile object //Discard the PlayerProfile object
Player player = event.getPlayer(); Player player = event.getPlayer();
if(LoadProperties.spoutEnabled) if(LoadProperties.spoutEnabled)
{ {
if(SpoutStuff.playerHUDs.containsKey(player)) if(SpoutStuff.playerHUDs.containsKey(player))
SpoutStuff.playerHUDs.remove(player); SpoutStuff.playerHUDs.remove(player);
if(mmoHelper.containers.containsKey(player)) if(mmoHelper.containers.containsKey(player))
mmoHelper.containers.remove(player); mmoHelper.containers.remove(player);
} }
Users.removeUser(event.getPlayer()); Users.removeUser(event.getPlayer());
} }
public void onPlayerJoin(PlayerJoinEvent event) public void onPlayerJoin(PlayerJoinEvent event)
{ {
Player player = event.getPlayer(); Player player = event.getPlayer();
if(mcPermissions.getInstance().motd(player) && LoadProperties.enableMotd) 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.MOTD", new Object[] {plugin.getDescription().getVersion(), LoadProperties.mcmmo}));
player.sendMessage(mcLocale.getString("mcPlayerListener.WIKI")); player.sendMessage(mcLocale.getString("mcPlayerListener.WIKI"));
} }
//THIS IS VERY BAD WAY TO DO THINGS, NEED BETTER WAY //THIS IS VERY BAD WAY TO DO THINGS, NEED BETTER WAY
if(XprateCommand.xpevent) if(XprateCommand.xpevent)
player.sendMessage(ChatColor.GOLD+"mcMMO is currently in an XP rate event! XP rate is "+LoadProperties.xpGainMultiplier+"x!"); player.sendMessage(ChatColor.GOLD+"mcMMO is currently in an XP rate event! XP rate is "+LoadProperties.xpGainMultiplier+"x!");
} }
public void onPlayerInteract(PlayerInteractEvent event) public void onPlayerInteract(PlayerInteractEvent event)
{ {
Player player = event.getPlayer(); Player player = event.getPlayer();
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
Action action = event.getAction(); Action action = event.getAction();
Block block = event.getClickedBlock(); Block block = event.getClickedBlock();
/* /*
* Ability checks * Ability checks
*/ */
if(action == Action.RIGHT_CLICK_BLOCK) if(action == Action.RIGHT_CLICK_BLOCK)
{ {
ItemStack is = player.getItemInHand(); ItemStack is = player.getItemInHand();
if(LoadProperties.enableMySpawn && block != null && player != null) if(LoadProperties.enableMySpawn && block != null && player != null)
{ {
if(block.getTypeId() == 26 && mcPermissions.getInstance().setMySpawn(player)) if(block.getTypeId() == 26 && mcPermissions.getInstance().setMySpawn(player))
{ {
Location loc = player.getLocation(); Location loc = player.getLocation();
if(mcPermissions.getInstance().setMySpawn(player)){ if(mcPermissions.getInstance().setMySpawn(player)){
PP.setMySpawn(loc.getX(), loc.getY(), loc.getZ(), loc.getWorld().getName()); PP.setMySpawn(loc.getX(), loc.getY(), loc.getZ(), loc.getWorld().getName());
} }
//player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnSet")); //player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnSet"));
} }
} }
if(block != null && player != null && mcPermissions.getInstance().repair(player) if(block != null && player != null && mcPermissions.getInstance().repair(player)
&& event.getClickedBlock().getTypeId() == 42 && (Repair.isTools(player.getItemInHand()) || Repair.isArmor(player.getItemInHand()))) && event.getClickedBlock().getTypeId() == 42 && (Repair.isTools(player.getItemInHand()) || Repair.isArmor(player.getItemInHand())))
{ {
Repair.repairCheck(player, is, event.getClickedBlock()); Repair.repairCheck(player, is, event.getClickedBlock());
event.setCancelled(true); event.setCancelled(true);
player.updateInventory(); player.updateInventory();
} }
if(LoadProperties.enableAbilities && m.abilityBlockCheck(block)) if(LoadProperties.enableAbilities && m.abilityBlockCheck(block))
{ {
if(block != null && m.isHoe(player.getItemInHand()) && block.getTypeId() != 3 && block.getTypeId() != 2 && block.getTypeId() != 60){ if(block != null && m.isHoe(player.getItemInHand()) && block.getTypeId() != 3 && block.getTypeId() != 2 && block.getTypeId() != 60){
Skills.hoeReadinessCheck(player); Skills.hoeReadinessCheck(player);
} }
Skills.abilityActivationCheck(player); Skills.abilityActivationCheck(player);
} }
//GREEN THUMB //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) 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; boolean pass = false;
if(Herbalism.hasSeeds(player)) if(Herbalism.hasSeeds(player))
{ {
Herbalism.removeSeeds(player); Herbalism.removeSeeds(player);
if(block.getType() == Material.DIRT || block.getType() == Material.COBBLESTONE || block.getType() == Material.SMOOTH_BRICK) 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)) if(Math.random() * 1500 <= PP.getSkillLevel(SkillType.HERBALISM) && m.blockBreakSimulate(block, player))
{ {
switch(block.getType()) switch(block.getType())
{ {
case COBBLESTONE: case COBBLESTONE:
if(LoadProperties.enableCobbleToMossy) if(LoadProperties.enableCobbleToMossy)
{ {
block.setType(Material.MOSSY_COBBLESTONE); block.setType(Material.MOSSY_COBBLESTONE);
pass = true; pass = true;
} }
break; break;
case DIRT: case DIRT:
pass = true; pass = true;
block.setType(Material.GRASS); block.setType(Material.GRASS);
break; break;
case SMOOTH_BRICK: case SMOOTH_BRICK:
pass = true; pass = true;
block.setData((byte)1); block.setData((byte)1);
break; break;
} }
if(pass == false) if(pass == false)
player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumbFail")); player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumbFail"));
} }
} }
} }
return; return;
} }
} }
if(LoadProperties.enableAbilities && action == Action.RIGHT_CLICK_AIR) if(LoadProperties.enableAbilities && action == Action.RIGHT_CLICK_AIR)
{ {
Skills.hoeReadinessCheck(player); Skills.hoeReadinessCheck(player);
Skills.abilityActivationCheck(player); Skills.abilityActivationCheck(player);
} }
/* /*
* ITEM CHECKS * ITEM CHECKS
*/ */
if(action == Action.RIGHT_CLICK_AIR) if(action == Action.RIGHT_CLICK_AIR)
Item.itemchecks(player, plugin); Item.itemchecks(player, plugin);
if(action == Action.RIGHT_CLICK_BLOCK) if(action == Action.RIGHT_CLICK_BLOCK)
{ {
if(m.abilityBlockCheck(event.getClickedBlock())) if(m.abilityBlockCheck(event.getClickedBlock()))
Item.itemchecks(player, plugin); Item.itemchecks(player, plugin);
} }
if(player.isSneaking() && mcPermissions.getInstance().taming(player) && (action == Action.RIGHT_CLICK_AIR || action == Action.RIGHT_CLICK_BLOCK)) 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) if(player.getItemInHand().getType() == Material.BONE && player.getItemInHand().getAmount() > 9)
{ {
for(Entity x : player.getNearbyEntities(40, 40, 40)) for(Entity x : player.getNearbyEntities(40, 40, 40))
{ {
if(x instanceof Wolf) if(x instanceof Wolf)
{ {
player.sendMessage(mcLocale.getString("m.TamingSummonFailed")); player.sendMessage(mcLocale.getString("m.TamingSummonFailed"));
return; return;
} }
} }
World world = player.getWorld(); World world = player.getWorld();
world.spawnCreature(player.getLocation(), CreatureType.WOLF); world.spawnCreature(player.getLocation(), CreatureType.WOLF);
ItemStack[] inventory = player.getInventory().getContents(); ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){ for(ItemStack x : inventory){
if(x != null && x.getAmount() > LoadProperties.bonesConsumedByCOTW-1 && x.getType() == Material.BONE){ if(x != null && x.getAmount() > LoadProperties.bonesConsumedByCOTW-1 && x.getType() == Material.BONE){
if(x.getAmount() >= LoadProperties.bonesConsumedByCOTW) if(x.getAmount() >= LoadProperties.bonesConsumedByCOTW)
{ {
x.setAmount(x.getAmount() - LoadProperties.bonesConsumedByCOTW); x.setAmount(x.getAmount() - LoadProperties.bonesConsumedByCOTW);
player.getInventory().setContents(inventory); player.getInventory().setContents(inventory);
player.updateInventory(); player.updateInventory();
break; break;
} else { } else {
x.setAmount(0); x.setAmount(0);
x.setTypeId(0); x.setTypeId(0);
player.getInventory().setContents(inventory); player.getInventory().setContents(inventory);
player.updateInventory(); player.updateInventory();
break; break;
} }
} }
} }
player.sendMessage(mcLocale.getString("m.TamingSummon")); player.sendMessage(mcLocale.getString("m.TamingSummon"));
} }
} }
} }
public void onPlayerChat(PlayerChatEvent event) public void onPlayerChat(PlayerChatEvent event)
{ {
Player player = event.getPlayer(); Player player = event.getPlayer();
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(PP.getPartyChatMode()) if(PP.getPartyChatMode())
{ {
event.setCancelled(true); event.setCancelled(true);
String format = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getDisplayName() + ChatColor.GREEN + ") "+event.getMessage(); String format = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getDisplayName() + ChatColor.GREEN + ") "+event.getMessage();
for(Player x : Bukkit.getServer().getOnlinePlayers()) for(Player x : Bukkit.getServer().getOnlinePlayers())
{ {
if(Party.getInstance().inSameParty(player, x)) if(Party.getInstance().inSameParty(player, x))
x.sendMessage(format); x.sendMessage(format);
} }
if(Bukkit.getServer() instanceof ColouredConsoleSender) if(Bukkit.getServer() instanceof ColouredConsoleSender)
{ {
ColouredConsoleSender ccs = (ColouredConsoleSender) Bukkit.getServer(); ColouredConsoleSender ccs = (ColouredConsoleSender) Bukkit.getServer();
ccs.sendMessage(ChatColor.GREEN+"[P]"+format); //Colors, woot! ccs.sendMessage(ChatColor.GREEN+"[P]"+format); //Colors, woot!
} }
} else if (PP.getAdminChatMode()) { } else if (PP.getAdminChatMode()) {
event.setCancelled(true); event.setCancelled(true);
String format = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getDisplayName() + ChatColor.AQUA + "} "+event.getMessage(); String format = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getDisplayName() + ChatColor.AQUA + "} "+event.getMessage();
for(Player x : Bukkit.getServer().getOnlinePlayers()) for(Player x : Bukkit.getServer().getOnlinePlayers())
{ {
if(x.isOp() || mcPermissions.getInstance().adminChat(x)) if(x.isOp() || mcPermissions.getInstance().adminChat(x))
x.sendMessage(format); x.sendMessage(format);
} }
if(Bukkit.getServer() instanceof ColouredConsoleSender) if(Bukkit.getServer() instanceof ColouredConsoleSender)
{ {
ColouredConsoleSender ccs = (ColouredConsoleSender) Bukkit.getServer(); ColouredConsoleSender ccs = (ColouredConsoleSender) Bukkit.getServer();
ccs.sendMessage(ChatColor.AQUA+"[A]"+format); //Colors, woot! ccs.sendMessage(ChatColor.AQUA+"[A]"+format); //Colors, woot!
} else { } else {
log.log(Level.INFO, "[A]"+format); log.log(Level.INFO, "[A]"+format);
} }
} }
} }
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
String message = event.getMessage(); String message = event.getMessage();
if(!message.startsWith("/")) return; if(!message.startsWith("/")) return;
String command = message.substring(1).split(" ")[0]; String command = message.substring(1).split(" ")[0];
if(plugin.aliasMap.containsKey(command)) { if(plugin.aliasMap.containsKey(command)) {
event.setCancelled(true); event.setCancelled(true);
event.getPlayer().chat(message.replaceFirst(command, plugin.aliasMap.get(command))); event.getPlayer().chat(message.replaceFirst(command, plugin.aliasMap.get(command)));
} }
} }
} }

View File

@ -1,61 +1,61 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.listeners; package com.gmail.nossr50.listeners;
import org.getspout.spoutapi.event.input.InputListener; import org.getspout.spoutapi.event.input.InputListener;
import org.getspout.spoutapi.event.input.KeyPressedEvent; import org.getspout.spoutapi.event.input.KeyPressedEvent;
import org.getspout.spoutapi.gui.ScreenType; import org.getspout.spoutapi.gui.ScreenType;
import org.getspout.spoutapi.player.SpoutPlayer; import org.getspout.spoutapi.player.SpoutPlayer;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.datatypes.popups.PopupMMO; import com.gmail.nossr50.datatypes.popups.PopupMMO;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
public class mcSpoutInputListener extends InputListener public class mcSpoutInputListener extends InputListener
{ {
mcMMO plugin = null; mcMMO plugin = null;
public mcSpoutInputListener(mcMMO pluginx) public mcSpoutInputListener(mcMMO pluginx)
{ {
plugin = pluginx; plugin = pluginx;
} }
public void onKeyPressedEvent(KeyPressedEvent event) public void onKeyPressedEvent(KeyPressedEvent event)
{ {
if(!event.getPlayer().isSpoutCraftEnabled() || event.getPlayer().getMainScreen().getActivePopup() != null) if(!event.getPlayer().isSpoutCraftEnabled() || event.getPlayer().getMainScreen().getActivePopup() != null)
return; return;
if(event.getScreenType() != ScreenType.GAME_SCREEN) if(event.getScreenType() != ScreenType.GAME_SCREEN)
return; return;
SpoutPlayer sPlayer = event.getPlayer(); SpoutPlayer sPlayer = event.getPlayer();
if(event.getKey() == SpoutStuff.keypress) if(event.getKey() == SpoutStuff.keypress)
{ {
if(!SpoutStuff.playerScreens.containsKey(sPlayer)) if(!SpoutStuff.playerScreens.containsKey(sPlayer))
{ {
PopupMMO mmoPop = new PopupMMO(sPlayer, Users.getProfile(sPlayer), plugin); PopupMMO mmoPop = new PopupMMO(sPlayer, Users.getProfile(sPlayer), plugin);
SpoutStuff.playerScreens.put(sPlayer, mmoPop); SpoutStuff.playerScreens.put(sPlayer, mmoPop);
sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer)); sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer));
sPlayer.getMainScreen().setDirty(true); sPlayer.getMainScreen().setDirty(true);
} else { } else {
sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer)); sPlayer.getMainScreen().attachPopupScreen(SpoutStuff.playerScreens.get(sPlayer));
sPlayer.getMainScreen().setDirty(true); sPlayer.getMainScreen().setDirty(true);
} }
} }
} }
} }

View File

@ -1,49 +1,49 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.listeners; package com.gmail.nossr50.listeners;
import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent; import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent;
import org.getspout.spoutapi.event.spout.SpoutListener; import org.getspout.spoutapi.event.spout.SpoutListener;
import org.getspout.spoutapi.player.SpoutPlayer; import org.getspout.spoutapi.player.SpoutPlayer;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.datatypes.HUDmmo; import com.gmail.nossr50.datatypes.HUDmmo;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
public class mcSpoutListener extends SpoutListener public class mcSpoutListener extends SpoutListener
{ {
mcMMO plugin = null; mcMMO plugin = null;
public mcSpoutListener(mcMMO pluginx) public mcSpoutListener(mcMMO pluginx)
{ {
plugin = pluginx; plugin = pluginx;
} }
public void onSpoutCraftEnable(SpoutCraftEnableEvent event) public void onSpoutCraftEnable(SpoutCraftEnableEvent event)
{ {
SpoutPlayer sPlayer = event.getPlayer(); SpoutPlayer sPlayer = event.getPlayer();
if(sPlayer.isSpoutCraftEnabled()) if(sPlayer.isSpoutCraftEnabled())
{ {
//Setup Party HUD stuff //Setup Party HUD stuff
SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer)); SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer));
//Party.update(sPlayer); //Party.update(sPlayer);
Users.getProfile(sPlayer).toggleSpoutEnabled(); Users.getProfile(sPlayer).toggleSpoutEnabled();
} }
} }
} }

View File

@ -1,93 +1,93 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.listeners; package com.gmail.nossr50.listeners;
import org.getspout.spoutapi.event.screen.ButtonClickEvent; import org.getspout.spoutapi.event.screen.ButtonClickEvent;
import org.getspout.spoutapi.event.screen.ScreenCloseEvent; import org.getspout.spoutapi.event.screen.ScreenCloseEvent;
import org.getspout.spoutapi.event.screen.ScreenListener; import org.getspout.spoutapi.event.screen.ScreenListener;
import org.getspout.spoutapi.player.SpoutPlayer; import org.getspout.spoutapi.player.SpoutPlayer;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.datatypes.HUDType; import com.gmail.nossr50.datatypes.HUDType;
import com.gmail.nossr50.datatypes.HUDmmo; import com.gmail.nossr50.datatypes.HUDmmo;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.buttons.ButtonEscape; import com.gmail.nossr50.datatypes.buttons.ButtonEscape;
import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle; import com.gmail.nossr50.datatypes.buttons.ButtonHUDStyle;
import com.gmail.nossr50.datatypes.buttons.ButtonPartyToggle; import com.gmail.nossr50.datatypes.buttons.ButtonPartyToggle;
import com.gmail.nossr50.datatypes.popups.PopupMMO; import com.gmail.nossr50.datatypes.popups.PopupMMO;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
public class mcSpoutScreenListener extends ScreenListener public class mcSpoutScreenListener extends ScreenListener
{ {
mcMMO plugin = null; mcMMO plugin = null;
public mcSpoutScreenListener(mcMMO pluginx) public mcSpoutScreenListener(mcMMO pluginx)
{ {
plugin = pluginx; plugin = pluginx;
} }
public void onButtonClick(ButtonClickEvent event) public void onButtonClick(ButtonClickEvent event)
{ {
SpoutPlayer sPlayer = event.getPlayer(); SpoutPlayer sPlayer = event.getPlayer();
PlayerProfile PP = Users.getProfile(sPlayer); PlayerProfile PP = Users.getProfile(sPlayer);
if(event.getButton() instanceof ButtonHUDStyle) if(event.getButton() instanceof ButtonHUDStyle)
{ {
if(SpoutStuff.playerHUDs.containsKey(sPlayer)) if(SpoutStuff.playerHUDs.containsKey(sPlayer))
{ {
SpoutStuff.playerHUDs.get(sPlayer).resetHUD(); SpoutStuff.playerHUDs.get(sPlayer).resetHUD();
SpoutStuff.playerHUDs.remove(sPlayer); SpoutStuff.playerHUDs.remove(sPlayer);
switch(PP.getHUDType()) switch(PP.getHUDType())
{ {
case RETRO: case RETRO:
PP.setHUDType(HUDType.STANDARD); PP.setHUDType(HUDType.STANDARD);
break; break;
case STANDARD: case STANDARD:
PP.setHUDType(HUDType.SMALL); PP.setHUDType(HUDType.SMALL);
break; break;
case SMALL: case SMALL:
PP.setHUDType(HUDType.DISABLED); PP.setHUDType(HUDType.DISABLED);
break; break;
case DISABLED: case DISABLED:
PP.setHUDType(HUDType.RETRO); PP.setHUDType(HUDType.RETRO);
} }
SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer)); SpoutStuff.playerHUDs.put(sPlayer, new HUDmmo(sPlayer));
SpoutStuff.playerScreens.get(sPlayer).updateButtons(PP); SpoutStuff.playerScreens.get(sPlayer).updateButtons(PP);
} }
} else if (event.getButton() instanceof ButtonEscape) } else if (event.getButton() instanceof ButtonEscape)
{ {
sPlayer.getMainScreen().closePopup(); sPlayer.getMainScreen().closePopup();
} else if (event.getButton() instanceof ButtonPartyToggle) } else if (event.getButton() instanceof ButtonPartyToggle)
{ {
PP.togglePartyHUD(); PP.togglePartyHUD();
ButtonPartyToggle bpt = (ButtonPartyToggle)event.getButton(); ButtonPartyToggle bpt = (ButtonPartyToggle)event.getButton();
bpt.updateText(PP); bpt.updateText(PP);
SpoutStuff.playerHUDs.get(sPlayer).resetHUD(); SpoutStuff.playerHUDs.get(sPlayer).resetHUD();
SpoutStuff.playerHUDs.get(sPlayer).initializeHUD(sPlayer); SpoutStuff.playerHUDs.get(sPlayer).initializeHUD(sPlayer);
} }
} }
public void onScreenClose(ScreenCloseEvent event) public void onScreenClose(ScreenCloseEvent event)
{ {
if(event.getScreen() instanceof PopupMMO) if(event.getScreen() instanceof PopupMMO)
{ {
SpoutStuff.playerScreens.remove(event.getPlayer()); SpoutStuff.playerScreens.remove(event.getPlayer());
} }
} }
} }

View File

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

View File

@ -1,390 +1,390 @@
Combat.WolfExamine=[[GREEN]]**Has examinado a un lobo usando tu conocimiento de fieras** Combat.WolfExamine=[[GREEN]]**Has examinado a un lobo usando tu conocimiento de fieras**
Combat.WolfShowMaster=[[DARK_GREEN]]El maestro de las fieras \: {0} Combat.WolfShowMaster=[[DARK_GREEN]]El maestro de las fieras \: {0}
Combat.Ignition=[[RED]]**IGNICION** Combat.Ignition=[[RED]]**IGNICION**
Combat.BurningArrowHit=[[DARK_RED]]Has sido golpeado por una flecha ardiendo\! Combat.BurningArrowHit=[[DARK_RED]]Has sido golpeado por una flecha ardiendo\!
Combat.TouchedFuzzy=[[DARK_RED]]Estas confuso. Te sientes mareado... Combat.TouchedFuzzy=[[DARK_RED]]Estas confuso. Te sientes mareado...
Combat.TargetDazed=El objetivo fue [[DARK_RED]]aturdido Combat.TargetDazed=El objetivo fue [[DARK_RED]]aturdido
Combat.WolfNoMaster=[[GRAY]]Esta bestia no tiene maestro... Combat.WolfNoMaster=[[GRAY]]Esta bestia no tiene maestro...
Combat.WolfHealth=[[GREEN]]Esta bestia tiene {0} de salud Combat.WolfHealth=[[GREEN]]Esta bestia tiene {0} de salud
Combat.StruckByGore=[[RED]]**GOLPEADO POR MORDISCO** Combat.StruckByGore=[[RED]]**GOLPEADO POR MORDISCO**
Combat.Gore=[[GREEN]]**MORDISCO** Combat.Gore=[[GREEN]]**MORDISCO**
Combat.ArrowDeflect=[[WHITE]]**FLECHA DESVIADA** Combat.ArrowDeflect=[[WHITE]]**FLECHA DESVIADA**
Item.ChimaeraWingFail=**FLECHA QUIMERA FALLADA\!** Item.ChimaeraWingFail=**FLECHA QUIMERA FALLADA\!**
Item.ChimaeraWingPass=**FLECHA QUIMERA** Item.ChimaeraWingPass=**FLECHA QUIMERA**
Item.InjuredWait=Has sido herido recientemente y tienes que esperar para usar esto. [[YELLOW]]({0}s) Item.InjuredWait=Has sido herido recientemente y tienes que esperar para usar esto. [[YELLOW]]({0}s)
Item.NeedFeathers=[[GRAY]]Necesitas mas plumas. Item.NeedFeathers=[[GRAY]]Necesitas mas plumas.
m.mccPartyCommands=[[GREEN]]--COMANDOS DE FIESTA-- m.mccPartyCommands=[[GREEN]]--COMANDOS DE FIESTA--
m.mccParty=[party name] [[RED]]- Crea/Entra a una fiesta especifica m.mccParty=[party name] [[RED]]- Crea/Entra a una fiesta especifica
m.mccPartyQ=[[RED]]- Abandona tu fiesta actual m.mccPartyQ=[[RED]]- Abandona tu fiesta actual
m.mccPartyToggle=[[RED]] - Activa/Desactiva el chat de fiesta m.mccPartyToggle=[[RED]] - Activa/Desactiva el chat de fiesta
m.mccPartyInvite=[player name] [[RED]]- Envia una invitacion para la fiesta m.mccPartyInvite=[player name] [[RED]]- Envia una invitacion para la fiesta
m.mccPartyAccept=[[RED]]- Acepta 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.mccPartyTeleport=[party member name] [[RED]]- Teletransportate a un miembro de la fiesta
m.mccOtherCommands=[[GREEN]]--OTROS COMANDOS-- m.mccOtherCommands=[[GREEN]]--OTROS COMANDOS--
m.mccStats=- Mira tus estadisticas de McMMO m.mccStats=- Mira tus estadisticas de McMMO
m.mccLeaderboards=- Ranking de lideres m.mccLeaderboards=- Ranking de lideres
m.mccMySpawn=- Teletransportate a tu lugar de nacimiento m.mccMySpawn=- Teletransportate a tu lugar de nacimiento
m.mccClearMySpawn=- Limpia 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.mccToggleAbility=- Activa/Desactiva la activacion de la habilidad con el click derecho
m.mccAdminToggle=- Activa/Desactiva el chat de admins m.mccAdminToggle=- Activa/Desactiva el chat de admins
m.mccWhois=[playername] [[RED]]- Mira informacion detallada del jugador m.mccWhois=[playername] [[RED]]- Mira informacion detallada del jugador
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifica el objetivo m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifica el objetivo
m.mccMcGod=- Modo dios m.mccMcGod=- Modo dios
m.mccSkillInfo=[skillname] [[RED]]- Mira informacion detallada sobre una habilidad m.mccSkillInfo=[skillname] [[RED]]- Mira informacion detallada sobre una habilidad
m.mccModDescription=[[RED]]- Lee la descripcion del MOD m.mccModDescription=[[RED]]- Lee la descripcion del MOD
m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
m.XPGain=[[DARK_GRAY]]GANANCIA DE EXP: [[WHITE]]{0} m.XPGain=[[DARK_GRAY]]GANANCIA DE EXP: [[WHITE]]{0}
m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
m.AbilityLockTemplate=[[GRAY]]{0} m.AbilityLockTemplate=[[GRAY]]{0}
m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
m.Effects=EFECTOS m.Effects=EFECTOS
m.YourStats=TUS ESTADISTICAS m.YourStats=TUS ESTADISTICAS
m.SkillTaming=DOMADURA m.SkillTaming=DOMADURA
m.XPGainTaming=Lobos siendo lastimados m.XPGainTaming=Lobos siendo lastimados
m.EffectsTaming1_0=Leyenda de bestias m.EffectsTaming1_0=Leyenda de bestias
m.EffectsTaming1_1=Golpear con huesos examina a los lobos m.EffectsTaming1_1=Golpear con huesos examina a los lobos
m.EffectsTaming2_0=Sangre m.EffectsTaming2_0=Sangre
m.EffectsTaming2_1=Golpe critico que hace sangrar m.EffectsTaming2_1=Golpe critico que hace sangrar
m.EffectsTaming3_0=Garras afiladas m.EffectsTaming3_0=Garras afiladas
m.EffectsTaming3_1=Bonus de daño m.EffectsTaming3_1=Bonus de daño
m.EffectsTaming4_0=Consciente del medio ambiente m.EffectsTaming4_0=Consciente del medio ambiente
m.EffectsTaming4_1=Inmunidad a heridas por caidas, Cactus/Lava fobia m.EffectsTaming4_1=Inmunidad a heridas por caidas, Cactus/Lava fobia
m.EffectsTaming5_0=Piel gruesa m.EffectsTaming5_0=Piel gruesa
m.EffectsTaming5_1=Reduccion de daño, Resistencia al fuego m.EffectsTaming5_1=Reduccion de daño, Resistencia al fuego
m.EffectsTaming6_0=A prueba de golpes m.EffectsTaming6_0=A prueba de golpes
m.EffectsTaming6_1=Reduccion del daño con explosivos m.EffectsTaming6_1=Reduccion del daño con explosivos
m.AbilLockTaming1=BLOQUEADO HASTA TENER HABILIDAD +100 (CONSCIENTE DEL MEDIO AMBIENTE) m.AbilLockTaming1=BLOQUEADO HASTA TENER HABILIDAD +100 (CONSCIENTE DEL MEDIO AMBIENTE)
m.AbilLockTaming2=BLOQUEADO HASTA TENER HABILIDAD +250 (PIEL GRUESA) m.AbilLockTaming2=BLOQUEADO HASTA TENER HABILIDAD +250 (PIEL GRUESA)
m.AbilLockTaming3=BLOQUEADO HASTA TENER HABILIDAD +500 (A PRUEBA DE GOLPES) m.AbilLockTaming3=BLOQUEADO HASTA TENER HABILIDAD +500 (A PRUEBA DE GOLPES)
m.AbilLockTaming4=BLOQUEADO HASTA TENER HABILIDAD +750 (GARRAS AFILADAS) m.AbilLockTaming4=BLOQUEADO HASTA TENER HABILIDAD +750 (GARRAS AFILADAS)
m.AbilBonusTaming1_0=Consciente del medio ambiente m.AbilBonusTaming1_0=Consciente del medio ambiente
m.AbilBonusTaming1_1=Los lobos evitan el peligro m.AbilBonusTaming1_1=Los lobos evitan el peligro
m.AbilBonusTaming2_0=Piel gruesa m.AbilBonusTaming2_0=Piel gruesa
m.AbilBonusTaming2_1=Daño reducido a la mitad, Resistencia al fuego m.AbilBonusTaming2_1=Daño reducido a la mitad, Resistencia al fuego
m.AbilBonusTaming3_0=A prueba de golpes m.AbilBonusTaming3_0=A prueba de golpes
m.AbilBonusTaming3_1=Los explosivos hacen 1/6 del daño normal m.AbilBonusTaming3_1=Los explosivos hacen 1/6 del daño normal
m.AbilBonusTaming4_0=Garras afiladas m.AbilBonusTaming4_0=Garras afiladas
m.AbilBonusTaming4_1=+2 de Daño m.AbilBonusTaming4_1=+2 de Daño
m.TamingGoreChance=[[RED]]Oportunidad de sangre: [[YELLOW]]{0}% m.TamingGoreChance=[[RED]]Oportunidad de sangre: [[YELLOW]]{0}%
m.SkillWoodCutting=TALA DE ARBOLES m.SkillWoodCutting=TALA DE ARBOLES
m.XPGainWoodCutting=Cortando arboles m.XPGainWoodCutting=Cortando arboles
m.EffectsWoodCutting1_0=Cortador de arboles (HABILIDAD) m.EffectsWoodCutting1_0=Cortador de arboles (HABILIDAD)
m.EffectsWoodCutting1_1=Haz que los arboles exploten m.EffectsWoodCutting1_1=Haz que los arboles exploten
m.EffectsWoodCutting2_0=Soplador de hojas m.EffectsWoodCutting2_0=Soplador de hojas
m.EffectsWoodCutting2_1=Aparta las hojas m.EffectsWoodCutting2_1=Aparta las hojas
m.EffectsWoodCutting3_0=Doble de gotas m.EffectsWoodCutting3_0=Doble de gotas
m.EffectsWoodCutting3_1=Doble del botin habitual m.EffectsWoodCutting3_1=Doble del botin habitual
m.AbilLockWoodCutting1=BLOQUEADO HASTA TENER HABILIDAD +100 (SOPLADOR DE HOJAS) m.AbilLockWoodCutting1=BLOQUEADO HASTA TENER HABILIDAD +100 (SOPLADOR DE HOJAS)
m.AbilBonusWoodCutting1_0=Soplador de hojas m.AbilBonusWoodCutting1_0=Soplador de hojas
m.AbilBonusWoodCutting1_1=Aparta las ojas m.AbilBonusWoodCutting1_1=Aparta las ojas
m.WoodCuttingDoubleDropChance=[[RED]]Posibilidad de Doble de gotas: [[YELLOW]]{0}% m.WoodCuttingDoubleDropChance=[[RED]]Posibilidad de Doble de gotas: [[YELLOW]]{0}%
m.WoodCuttingTreeFellerLength=[[RED]]Duracion de tala de arboles: [[YELLOW]]{0}s m.WoodCuttingTreeFellerLength=[[RED]]Duracion de tala de arboles: [[YELLOW]]{0}s
m.SkillArchery=Tiro con Arco m.SkillArchery=Tiro con Arco
m.XPGainArchery=Ataque a monstruos m.XPGainArchery=Ataque a monstruos
m.EffectsArchery1_0=Ignicion m.EffectsArchery1_0=Ignicion
m.EffectsArchery1_1=25% de posibilidades de que un enemigo arda en llamas m.EffectsArchery1_1=25% de posibilidades de que un enemigo arda en llamas
m.EffectsArchery2_0=Aturdir (Jugadores) m.EffectsArchery2_0=Aturdir (Jugadores)
m.EffectsArchery2_1=Desorienta a los enemigos m.EffectsArchery2_1=Desorienta a los enemigos
m.EffectsArchery3_0=+ Daño m.EffectsArchery3_0=+ Daño
m.EffectsArchery3_1=Modifica el daño m.EffectsArchery3_1=Modifica el daño
m.EffectsArchery4_0=Recuperación de flecha m.EffectsArchery4_0=Recuperación de flecha
m.EffectsArchery4_1=Posibilidad de obtener flechas de cadaveres m.EffectsArchery4_1=Posibilidad de obtener flechas de cadaveres
m.ArcheryDazeChance=[[RED]]Posibilidad de aturdir: [[YELLOW]]{0}% m.ArcheryDazeChance=[[RED]]Posibilidad de aturdir: [[YELLOW]]{0}%
m.ArcheryRetrieveChance=[[RED]]Posibilidad de obtener flechas: [[YELLOW]]{0}% m.ArcheryRetrieveChance=[[RED]]Posibilidad de obtener flechas: [[YELLOW]]{0}%
m.ArcheryIgnitionLength=[[RED]]Duracion de la ignicion: [[YELLOW]]{0} seconds 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.ArcheryDamagePlus=[[RED]]+ Daño (Rank{0}): [[YELLOW]] {0} de bonus de daño
m.SkillAxes=HACHAS m.SkillAxes=HACHAS
m.XPGainAxes=Ataque a monstruos m.XPGainAxes=Ataque a monstruos
m.EffectsAxes1_0=Cortador de cabecas (HABILIDAD) m.EffectsAxes1_0=Cortador de cabecas (HABILIDAD)
m.EffectsAxes1_1=Causa daños en arena m.EffectsAxes1_1=Causa daños en arena
m.EffectsAxes2_0=Golpes criticos m.EffectsAxes2_0=Golpes criticos
m.EffectsAxes2_1=Doble de daño m.EffectsAxes2_1=Doble de daño
m.EffectsAxes3_0=Maestria de hacha m.EffectsAxes3_0=Maestria de hacha
m.EffectsAxes3_1=Modifica el daño m.EffectsAxes3_1=Modifica el daño
m.AbilLockAxes1=BLOQUEADO HASTA TENER HABILIDAD +500 (MAESTRIA DE HACHA) m.AbilLockAxes1=BLOQUEADO HASTA TENER HABILIDAD +500 (MAESTRIA DE HACHA)
m.AbilBonusAxes1_0=Maestria de hacha m.AbilBonusAxes1_0=Maestria de hacha
m.AbilBonusAxes1_1=4 de daño de bonus m.AbilBonusAxes1_1=4 de daño de bonus
m.AxesCritChance=[[RED]]Posibilad de golpe critico: [[YELLOW]]{0}% m.AxesCritChance=[[RED]]Posibilad de golpe critico: [[YELLOW]]{0}%
m.AxesSkullLength=[[RED]]Longitud de Cortador de cabezas: [[YELLOW]]{0}s m.AxesSkullLength=[[RED]]Longitud de Cortador de cabezas: [[YELLOW]]{0}s
m.SkillSwords=ESPADAS m.SkillSwords=ESPADAS
m.XPGainSwords=Ataque a monstruos m.XPGainSwords=Ataque a monstruos
m.EffectsSwords1_0=Contraataque m.EffectsSwords1_0=Contraataque
m.EffectsSwords1_1=Desviar el 50% del daño obtenido m.EffectsSwords1_1=Desviar el 50% del daño obtenido
m.EffectsSwords2_0=Golpes dentados (HABILIDAD) m.EffectsSwords2_0=Golpes dentados (HABILIDAD)
m.EffectsSwords2_1=25% de daño en Arena, y efecto de hemorragia m.EffectsSwords2_1=25% de daño en Arena, y efecto de hemorragia
m.EffectsSwords3_0=Ataque cortante con efecto de hemorragia m.EffectsSwords3_0=Ataque cortante con efecto de hemorragia
m.EffectsSwords3_1=5 sangramientos m.EffectsSwords3_1=5 sangramientos
m.EffectsSwords4_0=Desviar m.EffectsSwords4_0=Desviar
m.EffectsSwords4_1=Anula el daño m.EffectsSwords4_1=Anula el daño
m.EffectsSwords5_0=Hemorragia m.EffectsSwords5_0=Hemorragia
m.EffectsSwords5_1=Causa sangramientos repetidos a lo largo del tiempo m.EffectsSwords5_1=Causa sangramientos repetidos a lo largo del tiempo
m.SwordsCounterAttChance=[[RED]]Posibilidad de contraataque: [[YELLOW]]{0}% m.SwordsCounterAttChance=[[RED]]Posibilidad de contraataque: [[YELLOW]]{0}%
m.SwordsBleedLength=[[RED]]Duracion del sangrado: [[YELLOW]]{0} ticks m.SwordsBleedLength=[[RED]]Duracion del sangrado: [[YELLOW]]{0} ticks
m.SwordsBleedChance=[[RED]]Posibilidad de hemorragia: [[YELLOW]]{0} % m.SwordsBleedChance=[[RED]]Posibilidad de hemorragia: [[YELLOW]]{0} %
m.SwordsParryChance=[[RED]]Posibilidad de desviacion: [[YELLOW]]{0} % m.SwordsParryChance=[[RED]]Posibilidad de desviacion: [[YELLOW]]{0} %
m.SwordsSSLength=[[RED]]Duracion de los golpes dentados: [[YELLOW]]{0}s m.SwordsSSLength=[[RED]]Duracion de los golpes dentados: [[YELLOW]]{0}s
m.SwordsTickNote=[[GRAY]]NOTA: [[YELLOW]]1 Tick ocurre cada 2 segundos m.SwordsTickNote=[[GRAY]]NOTA: [[YELLOW]]1 Tick ocurre cada 2 segundos
m.SkillAcrobatics=ACROBACIAS m.SkillAcrobatics=ACROBACIAS
m.XPGainAcrobatics=Caida m.XPGainAcrobatics=Caida
m.EffectsAcrobatics1_0=Rodar m.EffectsAcrobatics1_0=Rodar
m.EffectsAcrobatics1_1=Reduce o evita daño m.EffectsAcrobatics1_1=Reduce o evita daño
m.EffectsAcrobatics2_0=Rodar con estilo m.EffectsAcrobatics2_0=Rodar con estilo
m.EffectsAcrobatics2_1=Dos veces mas efectivos que Rodar m.EffectsAcrobatics2_1=Dos veces mas efectivos que Rodar
m.EffectsAcrobatics3_0=Esquivar m.EffectsAcrobatics3_0=Esquivar
m.EffectsAcrobatics3_1=Reduce el daño a la mitad m.EffectsAcrobatics3_1=Reduce el daño a la mitad
m.AcrobaticsRollChance=[[RED]]Posibilidad de Rodar: [[YELLOW]]{0}% m.AcrobaticsRollChance=[[RED]]Posibilidad de Rodar: [[YELLOW]]{0}%
m.AcrobaticsGracefulRollChance=[[RED]]Posibilidad de Rodar con estilo: [[YELLOW]]{0}% m.AcrobaticsGracefulRollChance=[[RED]]Posibilidad de Rodar con estilo: [[YELLOW]]{0}%
m.AcrobaticsDodgeChance=[[RED]]Posibilidad de Esquivar: [[YELLOW]]{0}% m.AcrobaticsDodgeChance=[[RED]]Posibilidad de Esquivar: [[YELLOW]]{0}%
m.SkillMining=MINAR m.SkillMining=MINAR
m.XPGainMining=Minar Piedra & Oro m.XPGainMining=Minar Piedra & Oro
m.EffectsMining1_0=Super rompedor (HABILIDAD) m.EffectsMining1_0=Super rompedor (HABILIDAD)
m.EffectsMining1_1=+ Velocidad, Posibilidad de obtener triple beneficio m.EffectsMining1_1=+ Velocidad, Posibilidad de obtener triple beneficio
m.EffectsMining2_0=Beneficio doble m.EffectsMining2_0=Beneficio doble
m.EffectsMining2_1=Dobla el botin normal m.EffectsMining2_1=Dobla el botin normal
m.MiningDoubleDropChance=[[RED]]Posibilidad de Beneficio doble: [[YELLOW]]{0}% m.MiningDoubleDropChance=[[RED]]Posibilidad de Beneficio doble: [[YELLOW]]{0}%
m.MiningSuperBreakerLength=[[RED]]Duracion de Super Rompedor: [[YELLOW]]{0}s m.MiningSuperBreakerLength=[[RED]]Duracion de Super Rompedor: [[YELLOW]]{0}s
m.SkillRepair=REPARAR m.SkillRepair=REPARAR
m.XPGainRepair=Reparacion m.XPGainRepair=Reparacion
m.EffectsRepair1_0=Reparar m.EffectsRepair1_0=Reparar
m.EffectsRepair1_1=Reparar Herramientas y armadura de Hierro m.EffectsRepair1_1=Reparar Herramientas y armadura de Hierro
m.EffectsRepair2_0=Maestro de reparacion m.EffectsRepair2_0=Maestro de reparacion
m.EffectsRepair2_1=Crecimiento de la cantidad de reparacion m.EffectsRepair2_1=Crecimiento de la cantidad de reparacion
m.EffectsRepair3_0=Super Reparacion m.EffectsRepair3_0=Super Reparacion
m.EffectsRepair3_1=Doble efectividad m.EffectsRepair3_1=Doble efectividad
m.EffectsRepair4_0=Reparar diamantes (+{0} HABILIDAD) m.EffectsRepair4_0=Reparar diamantes (+{0} HABILIDAD)
m.EffectsRepair4_1=Reparar Herramientas y armadura de Diamantes m.EffectsRepair4_1=Reparar Herramientas y armadura de Diamantes
m.RepairRepairMastery=[[RED]]Maestro de reparacion: [[YELLOW]]{0}% extra de duracion obtenido m.RepairRepairMastery=[[RED]]Maestro de reparacion: [[YELLOW]]{0}% extra de duracion obtenido
m.RepairSuperRepairChance=[[RED]]Posibilidad de Super Reparacion: [[YELLOW]]{0}% m.RepairSuperRepairChance=[[RED]]Posibilidad de Super Reparacion: [[YELLOW]]{0}%
m.SkillUnarmed=DESARMADO m.SkillUnarmed=DESARMADO
m.XPGainUnarmed=Ataque a monstruos m.XPGainUnarmed=Ataque a monstruos
m.EffectsUnarmed1_0=Enloquecer (HABILIDAD) m.EffectsUnarmed1_0=Enloquecer (HABILIDAD)
m.EffectsUnarmed1_1=+50% daño, Romper materiales fragiles m.EffectsUnarmed1_1=+50% daño, Romper materiales fragiles
m.EffectsUnarmed2_0=Desarmar (Jugadores) m.EffectsUnarmed2_0=Desarmar (Jugadores)
m.EffectsUnarmed2_1=Caida del objeto de mano del enemigo m.EffectsUnarmed2_1=Caida del objeto de mano del enemigo
m.EffectsUnarmed3_0=Maestro desarmado m.EffectsUnarmed3_0=Maestro desarmado
m.EffectsUnarmed3_1=Mejora de grandes daños m.EffectsUnarmed3_1=Mejora de grandes daños
m.EffectsUnarmed4_0=Aprendiz desarmado m.EffectsUnarmed4_0=Aprendiz desarmado
m.EffectsUnarmed4_1=Mejora de daños m.EffectsUnarmed4_1=Mejora de daños
m.EffectsUnarmed5_0=Desviar flechas m.EffectsUnarmed5_0=Desviar flechas
m.EffectsUnarmed5_1=Desviar flechas m.EffectsUnarmed5_1=Desviar flechas
m.AbilLockUnarmed1=BLOQUEADO HASTA TENER HABILIDAD +250 (APRENDIZ DESARMADO) m.AbilLockUnarmed1=BLOQUEADO HASTA TENER HABILIDAD +250 (APRENDIZ DESARMADO)
m.AbilLockUnarmed2=BLOQUEADO HASTA TENER HABILIDAD +500 (MAESTRO DESARMADO) m.AbilLockUnarmed2=BLOQUEADO HASTA TENER HABILIDAD +500 (MAESTRO DESARMADO)
m.AbilBonusUnarmed1_0=Aprendiz desarmado m.AbilBonusUnarmed1_0=Aprendiz desarmado
m.AbilBonusUnarmed1_1=Mejora de +2 de daño m.AbilBonusUnarmed1_1=Mejora de +2 de daño
m.AbilBonusUnarmed2_0=Maestro desarmado m.AbilBonusUnarmed2_0=Maestro desarmado
m.AbilBonusUnarmed2_1=Mejora de +4 de daño m.AbilBonusUnarmed2_1=Mejora de +4 de daño
m.UnarmedArrowDeflectChance=[[RED]]Posibilidad de Desviar flechas: [[YELLOW]]{0}% m.UnarmedArrowDeflectChance=[[RED]]Posibilidad de Desviar flechas: [[YELLOW]]{0}%
m.UnarmedDisarmChance=[[RED]]Posibilidad de Desarmar: [[YELLOW]]{0}% m.UnarmedDisarmChance=[[RED]]Posibilidad de Desarmar: [[YELLOW]]{0}%
m.UnarmedBerserkLength=[[RED]]Posibilidad de Enloquecer: [[YELLOW]]{0}s m.UnarmedBerserkLength=[[RED]]Posibilidad de Enloquecer: [[YELLOW]]{0}s
m.SkillHerbalism=HERBORISTERIA m.SkillHerbalism=HERBORISTERIA
m.XPGainHerbalism=Cosecha de hierbas m.XPGainHerbalism=Cosecha de hierbas
m.EffectsHerbalism1_0=Tierra verde (HABILIDAD) m.EffectsHerbalism1_0=Tierra verde (HABILIDAD)
m.EffectsHerbalism1_1=Triple experiencia, Triple beneficio m.EffectsHerbalism1_1=Triple experiencia, Triple beneficio
m.EffectsHerbalism2_0=Dedos verdes (Trigo) m.EffectsHerbalism2_0=Dedos verdes (Trigo)
m.EffectsHerbalism2_1=Autoplanta el trigo al recolectarlo m.EffectsHerbalism2_1=Autoplanta el trigo al recolectarlo
m.EffectsHerbalism3_0=Dedos verdes (Piedras) m.EffectsHerbalism3_0=Dedos verdes (Piedras)
m.EffectsHerbalism3_1=Transorma Cobblestone en Moss Stone (usa semillas) m.EffectsHerbalism3_1=Transorma Cobblestone en Moss Stone (usa semillas)
m.EffectsHerbalism4_0=+ Comida m.EffectsHerbalism4_0=+ Comida
m.EffectsHerbalism4_1=Modifica la vida recivida por el pan/guiso m.EffectsHerbalism4_1=Modifica la vida recivida por el pan/guiso
m.EffectsHerbalism5_0=Doble beneficio (Todas las hierbas) m.EffectsHerbalism5_0=Doble beneficio (Todas las hierbas)
m.EffectsHerbalism5_1=Dobla el botin normal m.EffectsHerbalism5_1=Dobla el botin normal
m.HerbalismGreenTerraLength=[[RED]]Duracion de Tierra verde: [[YELLOW]]{0}s m.HerbalismGreenTerraLength=[[RED]]Duracion de Tierra verde: [[YELLOW]]{0}s
m.HerbalismGreenThumbChance=[[RED]]Posibilidad de Dedos verdes: [[YELLOW]]{0}% 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.HerbalismGreenThumbStage=[[RED]]Etapa de Dedos verdes: [[YELLOW]] El Trigo crece en la etapa {0}
m.HerbalismDoubleDropChance=[[RED]]Posibilidad de Doble beneficio: [[YELLOW]]{0}% m.HerbalismDoubleDropChance=[[RED]]Posibilidad de Doble beneficio: [[YELLOW]]{0}%
m.HerbalismFoodPlus=[[RED]]+ Comida (Rank{0}): [[YELLOW]]{0} de Bonus de Curacion m.HerbalismFoodPlus=[[RED]]+ Comida (Rank{0}): [[YELLOW]]{0} de Bonus de Curacion
m.SkillExcavation=EXCAVACION m.SkillExcavation=EXCAVACION
m.XPGainExcavation=Excavar y encontrar tesoros m.XPGainExcavation=Excavar y encontrar tesoros
m.EffectsExcavation1_0=Ultra perforador (HABILIDAD) m.EffectsExcavation1_0=Ultra perforador (HABILIDAD)
m.EffectsExcavation1_1=Triple beneficio, Triple EXP, + Velocidad m.EffectsExcavation1_1=Triple beneficio, Triple EXP, + Velocidad
m.EffectsExcavation2_0=Cazatesoros m.EffectsExcavation2_0=Cazatesoros
m.EffectsExcavation2_1=Habilidad para excavar y obtener tesoros m.EffectsExcavation2_1=Habilidad para excavar y obtener tesoros
m.ExcavationGreenTerraLength=[[RED]]Duracion de Ultra perforador: [[YELLOW]]{0}s 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. 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... mcEntityListener.WolfComesBack=[[DARK_GRAY]]El lobo se escabuye hacia ti...
mcPlayerListener.AbilitiesOff=Uso de habilidad desactivada mcPlayerListener.AbilitiesOff=Uso de habilidad desactivada
mcPlayerListener.AbilitiesOn=Uso de habilidad activada mcPlayerListener.AbilitiesOn=Uso de habilidad activada
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**HABILIDADES ACTUALIZADAS\!** mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**HABILIDADES ACTUALIZADAS\!**
mcPlayerListener.AcrobaticsSkill=Acrobacias: mcPlayerListener.AcrobaticsSkill=Acrobacias:
mcPlayerListener.ArcherySkill=Tiro con Arco: mcPlayerListener.ArcherySkill=Tiro con Arco:
mcPlayerListener.AxesSkill=Hachas: mcPlayerListener.AxesSkill=Hachas:
mcPlayerListener.ExcavationSkill=Excavacion: mcPlayerListener.ExcavationSkill=Excavacion:
mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Modo Dios Desactivado mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Modo Dios Desactivado
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Modo Dios Activado mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Modo Dios Activado
mcPlayerListener.GreenThumb=[[GREEN]]**DEDOS VERDES** mcPlayerListener.GreenThumb=[[GREEN]]**DEDOS VERDES**
mcPlayerListener.GreenThumbFail=[[RED]]**DEDOS VERDES FALLIDO** mcPlayerListener.GreenThumbFail=[[RED]]**DEDOS VERDES FALLIDO**
mcPlayerListener.HerbalismSkill=Herboristeria: mcPlayerListener.HerbalismSkill=Herboristeria:
mcPlayerListener.MiningSkill=Minar: mcPlayerListener.MiningSkill=Minar:
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn esta ahora limpio. mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn esta ahora limpio.
mcPlayerListener.MyspawnNotExist=[[RED]]Configura tu myspawn primero con una cama. mcPlayerListener.MyspawnNotExist=[[RED]]Configura tu myspawn primero con una cama.
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn ha sido establecido hacia tu localizacion actual. 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.MyspawnTimeNotice=Tienes que esperar {0}min {1}seg para usar myspawn
mcPlayerListener.NoPermission=mcPermisos insuficientes mcPlayerListener.NoPermission=mcPermisos insuficientes
mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Si no tienes acceso a una habilidad no seras mostrado aqui. mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Si no tienes acceso a una habilidad no seras mostrado aqui.
mcPlayerListener.NotInParty=[[RED]]No estas en una fiesta. mcPlayerListener.NotInParty=[[RED]]No estas en una fiesta.
mcPlayerListener.InviteSuccess=[[GREEN]]Invitacion enviada satisfactoriamente. mcPlayerListener.InviteSuccess=[[GREEN]]Invitacion enviada satisfactoriamente.
mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]Has recivido una invitacion a la fiesta para {0} de {1} 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.ReceivedInvite2=[[YELLOW]]Escribe [[GREEN]]/{0}[[YELLOW]] para aceptar la invitacion
mcPlayerListener.InviteAccepted=[[GREEN]]Invitacion aceptada. Has entrado a la fiesta {0} mcPlayerListener.InviteAccepted=[[GREEN]]Invitacion aceptada. Has entrado a la fiesta {0}
mcPlayerListener.NoInvites=[[RED]]No tienes invitaciones ahora mismo mcPlayerListener.NoInvites=[[RED]]No tienes invitaciones ahora mismo
mcPlayerListener.YouAreInParty=[[GREEN]]Estas en la fiesta {0} mcPlayerListener.YouAreInParty=[[GREEN]]Estas en la fiesta {0}
mcPlayerListener.PartyMembers=[[GREEN]]Miembros de la fiesta mcPlayerListener.PartyMembers=[[GREEN]]Miembros de la fiesta
mcPlayerListener.LeftParty=[[RED]]Has abandonado esta fiesta mcPlayerListener.LeftParty=[[RED]]Has abandonado esta fiesta
mcPlayerListener.JoinedParty=Ha entrado a la fiesta: {0} mcPlayerListener.JoinedParty=Ha entrado a la fiesta: {0}
mcPlayerListener.PartyChatOn=Solo Chat de fiesta [[GREEN]]Activado mcPlayerListener.PartyChatOn=Solo Chat de fiesta [[GREEN]]Activado
mcPlayerListener.PartyChatOff=Solo Chat de fiesta [[RED]]Desactivado mcPlayerListener.PartyChatOff=Solo Chat de fiesta [[RED]]Desactivado
mcPlayerListener.AdminChatOn=Solo Chat de Admins [[GREEN]]Activado mcPlayerListener.AdminChatOn=Solo Chat de Admins [[GREEN]]Activado
mcPlayerListener.AdminChatOff=Solo Chat de Admins [[RED]]Desactivado 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.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.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
mcPlayerListener.PowerLevel=[[DARK_RED]]NIVEL DE PODER: mcPlayerListener.PowerLevel=[[DARK_RED]]NIVEL DE PODER:
mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Nivel de Poder [[YELLOW]]Ranking de lideres-- mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Nivel de Poder [[YELLOW]]Ranking de lideres--
mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Ranking de lideres-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Ranking de lideres--
mcPlayerListener.RepairSkill=Reparar: mcPlayerListener.RepairSkill=Reparar:
mcPlayerListener.SwordsSkill=Espadas: mcPlayerListener.SwordsSkill=Espadas:
mcPlayerListener.TamingSkill=Domar: mcPlayerListener.TamingSkill=Domar:
mcPlayerListener.UnarmedSkill=Desarmado: mcPlayerListener.UnarmedSkill=Desarmado:
mcPlayerListener.WoodcuttingSkill=Tala de arboles: mcPlayerListener.WoodcuttingSkill=Tala de arboles:
mcPlayerListener.YourStats=[[GREEN]][mcMMO] Estadisticas mcPlayerListener.YourStats=[[GREEN]][mcMMO] Estadisticas
Party.InformedOnJoin={0} [[GREEN]] ha entrado a tu fiesta Party.InformedOnJoin={0} [[GREEN]] ha entrado a tu fiesta
Party.InformedOnQuit={0} [[GREEN]] ha salido de tu fiesta Party.InformedOnQuit={0} [[GREEN]] ha salido de tu fiesta
Skills.YourGreenTerra=[[GREEN]]Tu habilidad [[YELLOW]]Tierra Verde [[GREEN]] ha sido actualizada! 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.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.YourSuperBreaker=[[GREEN]]Tu habilidad [[YELLOW]]Super Rompedor [[GREEN]]ha sido actualizada!
Skills.YourSerratedStrikes=[[GREEN]]Tu habilidad [[YELLOW]]Golpes dentados [[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.YourBerserk=[[GREEN]]Tu habilidad [[YELLOW]]Enloquecer [[GREEN]]ha sido actualizada!
Skills.YourSkullSplitter=[[GREEN]]Tu habilidad [[YELLOW]]Cortador de cabezas [[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.YourGigaDrillBreaker=[[GREEN]]Tu habilidad [[YELLOW]]Super Perforador [[GREEN]]ha sido actualizada!
Skills.TooTired=[[RED]]Estas demasiado cansado para usar esta habilidad de nuevo. Skills.TooTired=[[RED]]Estas demasiado cansado para usar esta habilidad de nuevo.
Skills.ReadyHoe=[[GREEN]]**SACHO LISTO PARA USAR TIERRA VERDE** Skills.ReadyHoe=[[GREEN]]**SACHO LISTO PARA USAR TIERRA VERDE**
Skills.LowerHoe=[[GRAY]]**TU SACHO HA SIDO DESCARGADO** Skills.LowerHoe=[[GRAY]]**TU SACHO HA SIDO DESCARGADO**
Skills.ReadyAxe=[[GREEN]]**HACHA LISTA PARA USAR CORTADOR DE ARBOLES** Skills.ReadyAxe=[[GREEN]]**HACHA LISTA PARA USAR CORTADOR DE ARBOLES**
Skills.LowerAxe=[[GRAY]]**TU HACHA HA SIDO DESCARGADA** Skills.LowerAxe=[[GRAY]]**TU HACHA HA SIDO DESCARGADA**
Skills.ReadyFists=[[GREEN]]**TUS PUÑOS ESTAN LISTOS PARA USAR ENLOQUECER** Skills.ReadyFists=[[GREEN]]**TUS PUÑOS ESTAN LISTOS PARA USAR ENLOQUECER**
Skills.LowerFists=[[GRAY]]**TUS PUÑOS HAN SIDO DESCARGADOS** Skills.LowerFists=[[GRAY]]**TUS PUÑOS HAN SIDO DESCARGADOS**
Skills.ReadyPickAxe=[[GREEN]]**TU PICO ESTA LISTO PARA USAR SUPER ROMPEDOR** Skills.ReadyPickAxe=[[GREEN]]**TU PICO ESTA LISTO PARA USAR SUPER ROMPEDOR**
Skills.LowerPickAxe=[[GRAY]]**TU PICO HA SIDO DESCARGADO** Skills.LowerPickAxe=[[GRAY]]**TU PICO HA SIDO DESCARGADO**
Skills.ReadyShovel=[[GREEN]]**TU PALA ESTA PREPARADA PARA USAR ULTRA PERFORADOR** Skills.ReadyShovel=[[GREEN]]**TU PALA ESTA PREPARADA PARA USAR ULTRA PERFORADOR**
Skills.LowerShovel=[[GRAY]]**TU PALA HA SIDO DESCARGADA** Skills.LowerShovel=[[GRAY]]**TU PALA HA SIDO DESCARGADA**
Skills.ReadySword=[[GREEN]]**TU ESPADA ESTA PREPARADA PARA USAR GOLPES DENTADOS** Skills.ReadySword=[[GREEN]]**TU ESPADA ESTA PREPARADA PARA USAR GOLPES DENTADOS**
Skills.LowerSword=[[GRAY]]**TU PALA HA SIDO DESCARGADA** Skills.LowerSword=[[GRAY]]**TU PALA HA SIDO DESCARGADA**
Skills.BerserkOn=[[GREEN]]**ENLOQUECER ACTIVADO** Skills.BerserkOn=[[GREEN]]**ENLOQUECER ACTIVADO**
Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Enloquecer! Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Enloquecer!
Skills.GreenTerraOn=[[GREEN]]**TIERRA VERDE ACTIVADO** Skills.GreenTerraOn=[[GREEN]]**TIERRA VERDE ACTIVADO**
Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Tierra Verde! Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Tierra Verde!
Skills.TreeFellerOn=[[GREEN]]**CORTADOR DE ARBOLES ACTIVADO** Skills.TreeFellerOn=[[GREEN]]**CORTADOR DE ARBOLES ACTIVADO**
Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Cortador de arboles! Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Cortador de arboles!
Skills.SuperBreakerOn=[[GREEN]]**SUPER ROMPEDOR ACTIVADO** Skills.SuperBreakerOn=[[GREEN]]**SUPER ROMPEDOR ACTIVADO**
Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Super Rompedor! Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Super Rompedor!
Skills.SerratedStrikesOn=[[GREEN]]**GOLPES DENTADOS ACTIVADOS** Skills.SerratedStrikesOn=[[GREEN]]**GOLPES DENTADOS ACTIVADOS**
Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Golpes Dentados! Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Golpes Dentados!
Skills.SkullSplitterOn=[[GREEN]]**CORTADOR DE CABEZAS ACTIVADO** Skills.SkullSplitterOn=[[GREEN]]**CORTADOR DE CABEZAS ACTIVADO**
Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Cortador de Cabezas! Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Cortador de Cabezas!
Skills.GigaDrillBreakerOn=[[GREEN]]**ULTRA PERFORADOR ACTIVADO** Skills.GigaDrillBreakerOn=[[GREEN]]**ULTRA PERFORADOR ACTIVADO**
Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Ultra Perforador! Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] ha usado [[RED]]Ultra Perforador!
Skills.GreenTerraOff=[[RED]]**Tierra Verde se ha agotado** Skills.GreenTerraOff=[[RED]]**Tierra Verde se ha agotado**
Skills.TreeFellerOff=[[RED]]**Tree Feller se ha agotado** Skills.TreeFellerOff=[[RED]]**Tree Feller se ha agotado**
Skills.SuperBreakerOff=[[RED]]**Super Rompedor se ha agotado** Skills.SuperBreakerOff=[[RED]]**Super Rompedor se ha agotado**
Skills.SerratedStrikesOff=[[RED]]**Golpes Dentados se ha agotado** Skills.SerratedStrikesOff=[[RED]]**Golpes Dentados se ha agotado**
Skills.BerserkOff=[[RED]]**Enloquecer se ha agotado** Skills.BerserkOff=[[RED]]**Enloquecer se ha agotado**
Skills.SkullSplitterOff=[[RED]]**Cortador de Cabezas se ha agotado** Skills.SkullSplitterOff=[[RED]]**Cortador de Cabezas se ha agotado**
Skills.GigaDrillBreakerOff=[[RED]]**Ultra Perforador 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.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.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.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.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.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.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.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.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.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.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.ExcavationUp=[[YELLOW]]Habilidades de exvacacion aumentadas en un {0}. En total: ({1})
Skills.FeltEasy=[[GRAY]]Esa fue facil. Skills.FeltEasy=[[GRAY]]Esa fue facil.
Skills.StackedItems=[[DARK_RED]]No puedes reparar objetos apilados. Skills.StackedItems=[[DARK_RED]]No puedes reparar objetos apilados.
Skills.NeedMore=[[DARK_RED]]Necesitas mas Skills.NeedMore=[[DARK_RED]]Necesitas mas
Skills.AdeptDiamond=[[DARK_RED]]No tienes habilidades suficientes para reparar Diamante Skills.AdeptDiamond=[[DARK_RED]]No tienes habilidades suficientes para reparar Diamante
Skills.FullDurability=[[GRAY]]Esto esta a su maxima duracion Skills.FullDurability=[[GRAY]]Esto esta a su maxima duracion
Skills.Disarmed=[[DARK_RED]]Has sido desarmado! Skills.Disarmed=[[DARK_RED]]Has sido desarmado!
mcPlayerListener.SorcerySkill=Hechiceria: mcPlayerListener.SorcerySkill=Hechiceria:
m.SkillSorcery=HECHICERIA m.SkillSorcery=HECHICERIA
Sorcery.HasCast=[[GREEN]]**FUNDICION**[[GOLD]] Sorcery.HasCast=[[GREEN]]**FUNDICION**[[GOLD]]
Sorcery.Current_Mana=[[DARK_AQUA]]MP Sorcery.Current_Mana=[[DARK_AQUA]]MP
Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
Sorcery.Cost=[[RED]][COST] {0} MP 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.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Sin Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
Sorcery.Water.Thunder=TRUENO Sorcery.Water.Thunder=TRUENO
Sorcery.Curative.Self=CURARSE A SI MISMO Sorcery.Curative.Self=CURARSE A SI MISMO
Sorcery.Curative.Other=CURAR A OTRO Sorcery.Curative.Other=CURAR A OTRO
m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]EXP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]EXP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
Combat.BeastLore=[[GREEN]]**LEYENDA DE BESTIAS** Combat.BeastLore=[[GREEN]]**LEYENDA DE BESTIAS**
Combat.BeastLoreOwner=[[DARK_AQUA]]Dueño ([[RED]]{0}[[DARK_AQUA]]) Combat.BeastLoreOwner=[[DARK_AQUA]]Dueño ([[RED]]{0}[[DARK_AQUA]])
Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Salud ([[GREEN]]{0}[[DARK_AQUA]]/20) Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Salud ([[GREEN]]{0}[[DARK_AQUA]]/20)
Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Salud ([[GREEN]]{0}[[DARK_AQUA]]/8) 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! 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.Locked=[[RED]]La fiesta esta bloqueda, solo el lider puede invitarte
Party.IsntLocked=[[GRAY]]La fiesta no esta bloqueada Party.IsntLocked=[[GRAY]]La fiesta no esta bloqueada
Party.Unlocked=[[GRAY]]La fiesta esta desbloqueada Party.Unlocked=[[GRAY]]La fiesta esta desbloqueada
Party.Help1=[[RED]]El uso correcto es [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] o [[WHITE]]'q' [[YELLOW]]para salir Party.Help1=[[RED]]El uso correcto es [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] o [[WHITE]]'q' [[YELLOW]]para salir
Party.Help2=[[RED]]Para entrar a una fiesta con contraseña usa [[YELLOW]]/{0} [[WHITE]]<name> <password> Party.Help2=[[RED]]Para entrar a una fiesta con contraseña usa [[YELLOW]]/{0} [[WHITE]]<name> <password>
Party.Help3=[[RED]]Consulta /{0} ? para mas informacion Party.Help3=[[RED]]Consulta /{0} ? para mas informacion
Party.Help4=[[RED]]Usa [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]para entrar a una fiesta o [[WHITE]]'q' [[YELLOW]]para salir Party.Help4=[[RED]]Usa [[YELLOW]]/{0} [[WHITE]]<name> [[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.Help5=[[RED]]Para bloquear tu fiesta usa [[YELLOW]]/{0} [[WHITE]]lock
Party.Help6=[[RED]]Para desbloquear tu fiesta usa [[YELLOW]]/{0} [[WHITE]]unlock 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 <password> Party.Help7=[[RED]]Para proteger tu fiesta con contraseña usa [[YELLOW]]/{0} [[WHITE]]password <password>
Party.Help8=[[RED]]Para kickear a un jugador de tu fiesta usa [[YELLOW]]/{0} [[WHITE]]kick <player> Party.Help8=[[RED]]Para kickear a un jugador de tu fiesta usa [[YELLOW]]/{0} [[WHITE]]kick <player>
Party.Help9=[[RED]]Para transferir el liderazgo de una fiesta usa [[YELLOW]]/{0} [[WHITE]]owner <player> Party.Help9=[[RED]]Para transferir el liderazgo de una fiesta usa [[YELLOW]]/{0} [[WHITE]]owner <player>
Party.NotOwner=[[DARK_RED]]No eres el lider de la fiesta 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.InvalidName=[[DARK_RED]]Este no es un nombre valido para la fiesta
Party.PasswordSet=[[GREEN]]Contraseña de la fiesta puesta a {0} Party.PasswordSet=[[GREEN]]Contraseña de la fiesta puesta a {0}
Party.CouldNotKick=[[DARK_RED]]No se puede kickear al jugador {0} Party.CouldNotKick=[[DARK_RED]]No se puede kickear al jugador {0}
Party.NotInYourParty=[[DARK_RED]]{0} no esta en tu fiesta Party.NotInYourParty=[[DARK_RED]]{0} no esta en tu fiesta
Party.CouldNotSetOwner=[[DARK_RED]]No se puede poner de lider a {0} 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.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.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.proper3=[[RED]]Introduzca true o false en el segundo valor
Commands.xprate.over=[[RED]]mcMMO EXP Rate Event TERMINO!! Commands.xprate.over=[[RED]]mcMMO EXP Rate Event TERMINO!!
Commands.xprate.started=[[GOLD]]mcMMO XP EVENT COMENZO! Commands.xprate.started=[[GOLD]]mcMMO XP EVENT COMENZO!
Commands.xprate.started2=[[GOLD]]mcMMO XP RATE ES AHORA {0}x!! 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.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.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 Commands.xplock.invalid=[[RED]]Ese no es un nombre de habilidad valido! Try /xplock mining
m.SkillAlchemy=ALCHEMY m.SkillAlchemy=ALCHEMY
m.SkillEnchanting=ENCHANTING m.SkillEnchanting=ENCHANTING
m.SkillFishing=FISHING m.SkillFishing=FISHING
mcPlayerListener.AlchemySkill=Alchemy: mcPlayerListener.AlchemySkill=Alchemy:
mcPlayerListener.EnchantingSkill=Enchanting: mcPlayerListener.EnchantingSkill=Enchanting:
mcPlayerListener.FishingSkill=Fishing: mcPlayerListener.FishingSkill=Fishing:
Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1})
Skills.EnchantingUp=[[YELLOW]]Enchanting 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}) Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1})
Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. 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.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item.
Repair.Downgraded=[[RED]]Arcane power has decreased for this item. Repair.Downgraded=[[RED]]Arcane power has decreased for this item.
Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item.
m.EffectsRepair5_0=Arcane Forging m.EffectsRepair5_0=Arcane Forging
m.EffectsRepair5_1=Repair magic items m.EffectsRepair5_1=Repair magic items
m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4
m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}%
m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[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.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+,
m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+
Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch...
Fishing.ItemFound=[[GRAY]]Treasure found! Fishing.ItemFound=[[GRAY]]Treasure found!
m.SkillFishing=FISHING m.SkillFishing=FISHING
m.XPGainFishing=Fishing (Go figure!) m.XPGainFishing=Fishing (Go figure!)
m.EffectsFishing1_0=Treasure Hunter (Passive) m.EffectsFishing1_0=Treasure Hunter (Passive)
m.EffectsFishing1_1=Fish up misc objects m.EffectsFishing1_1=Fish up misc objects
m.EffectsFishing2_0=Magic Hunter m.EffectsFishing2_0=Magic Hunter
m.EffectsFishing2_1=Find Enchanted Items m.EffectsFishing2_1=Find Enchanted Items
m.EffectsFishing3_0=Shake (vs. Entities) m.EffectsFishing3_0=Shake (vs. Entities)
m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole
m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5
m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** 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.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_;
m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE)
m.TamingSummon=[[GREEN]]Summoning complete m.TamingSummon=[[GREEN]]Summoning complete
m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more.
m.EffectsTaming7_0=Call of the Wild m.EffectsTaming7_0=Call of the Wild
m.EffectsTaming7_1=Summon a wolf to your side 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 m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand

View File

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

View File

@ -1,390 +1,390 @@
Combat.WolfExamine=[[GREEN]]**Vous examinez le loup avec le Beast Lore** Combat.WolfExamine=[[GREEN]]**Vous examinez le loup avec le Beast Lore**
Combat.WolfShowMaster=[[DARK_GREEN]]Le Maître des bêtes \: {0} Combat.WolfShowMaster=[[DARK_GREEN]]Le Maître des bêtes \: {0}
Combat.Ignition=[[RED]]**ALLUMAGE** Combat.Ignition=[[RED]]**ALLUMAGE**
Combat.BurningArrowHit=[[DARK_RED]]Vous avez été frappé par une flèche brûlante\! 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.TouchedFuzzy=[[DARK_RED]]Vous voyez flou. Vous vous sentez étourdi.
Combat.TargetDazed=La cible a été [[DARK_RED]]Étourdi Combat.TargetDazed=La cible a été [[DARK_RED]]Étourdi
Combat.WolfNoMaster=[[GRAY]]Cette bête n'a pas de maître... Combat.WolfNoMaster=[[GRAY]]Cette bête n'a pas de maître...
Combat.WolfHealth=[[GREEN]]Cette bête a {0} points de vie Combat.WolfHealth=[[GREEN]]Cette bête a {0} points de vie
Combat.StruckByGore=[[RED]]**FRAPPÉ JUSQU'AU SANG** Combat.StruckByGore=[[RED]]**FRAPPÉ JUSQU'AU SANG**
Combat.Gore=[[GREEN]]**SANG** Combat.Gore=[[GREEN]]**SANG**
Combat.ArrowDeflect=[[WHITE]]**FLÈCHE DEVIÉE** Combat.ArrowDeflect=[[WHITE]]**FLÈCHE DEVIÉE**
Item.ChimaeraWingFail=**CHIMAERA WING a échoué \!** Item.ChimaeraWingFail=**CHIMAERA WING a échoué \!**
Item.ChimaeraWingPass=**CHIMAERA WING** Item.ChimaeraWingPass=**CHIMAERA WING**
Item.InjuredWait=Vous avez été blessé récemment et vous devez attendre pour utiliser ça. [[YELLOW]]({0}s) 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.. Item.NeedFeathers=[[GRAY]]Vous avez besoin de plus de plumes..
m.mccPartyCommands=[[GREEN]]--COMMANDES GROUPE-- m.mccPartyCommands=[[GREEN]]--COMMANDES GROUPE--
m.mccParty=[party name] [[RED]]- Créer / Rejoindre un groupe m.mccParty=[party name] [[RED]]- Créer / Rejoindre un groupe
m.mccPartyQ=[[RED]]- Vous quitter la partie en cours m.mccPartyQ=[[RED]]- Vous quitter la partie en cours
m.mccPartyToggle=[[RED]] - Active le Chat de groupe m.mccPartyToggle=[[RED]] - Active le Chat de groupe
m.mccPartyInvite=[player name] [[RED]]- Envoyer une invitation m.mccPartyInvite=[player name] [[RED]]- Envoyer une invitation
m.mccPartyAccept=[[RED]]- Accepter l'invitation m.mccPartyAccept=[[RED]]- Accepter l'invitation
m.mccPartyTeleport=[party member name] [[RED]]- Vous téléporte à un membre du groupe m.mccPartyTeleport=[party member name] [[RED]]- Vous téléporte à un membre du groupe
m.mccOtherCommands=[[GREEN]]--AUTRES COMMANDES-- m.mccOtherCommands=[[GREEN]]--AUTRES COMMANDES--
m.mccStats=- Voir vos statistiques m.mccStats=- Voir vos statistiques
m.mccLeaderboards=- Classements m.mccLeaderboards=- Classements
m.mccMySpawn=- Vous téléporte à votre spawn m.mccMySpawn=- Vous téléporte à votre spawn
m.mccClearMySpawn=- Éfface votre point de spawn m.mccClearMySpawn=- Éfface votre point de spawn
m.mccToggleAbility=- Active les capacités spéciales avec clic droit m.mccToggleAbility=- Active les capacités spéciales avec clic droit
m.mccAdminToggle=- Active le chat admin m.mccAdminToggle=- Active le chat admin
m.mccWhois=[playername] [[RED]]- Voir les infos détaillées du joueur m.mccWhois=[playername] [[RED]]- Voir les infos détaillées du joueur
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifier m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifier
m.mccMcGod=- Mode dieu m.mccMcGod=- Mode dieu
m.mccSkillInfo=[skillname] [[RED]]- Afficher des informations détaillées d'une compétence m.mccSkillInfo=[skillname] [[RED]]- Afficher des informations détaillées d'une compétence
m.mccModDescription=[[RED]]- Affiche la description de mcMMO m.mccModDescription=[[RED]]- Affiche la description de mcMMO
m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
m.XPGain=[[DARK_GRAY]]POUR GAGNER DE l'XP: [[WHITE]]{0} m.XPGain=[[DARK_GRAY]]POUR GAGNER DE l'XP: [[WHITE]]{0}
m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
m.AbilityLockTemplate=[[GRAY]]{0} m.AbilityLockTemplate=[[GRAY]]{0}
m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
m.Effects=EFFETS m.Effects=EFFETS
m.YourStats=VOS STATS m.YourStats=VOS STATS
m.SkillTaming=DRESSAGE m.SkillTaming=DRESSAGE
m.XPGainTaming=Attaquer avec un loup m.XPGainTaming=Attaquer avec un loup
m.EffectsTaming1_0=Connaissance des bêtes m.EffectsTaming1_0=Connaissance des bêtes
m.EffectsTaming1_1=Inspecte un loup avec un os m.EffectsTaming1_1=Inspecte un loup avec un os
m.EffectsTaming2_0=Morsures m.EffectsTaming2_0=Morsures
m.EffectsTaming2_1=Des coups critiques lors d'une morsure m.EffectsTaming2_1=Des coups critiques lors d'une morsure
m.EffectsTaming3_0=Griffes aiguisées m.EffectsTaming3_0=Griffes aiguisées
m.EffectsTaming3_1=Bonus de dégâts m.EffectsTaming3_1=Bonus de dégâts
m.EffectsTaming4_0=Conscient de l'environnement m.EffectsTaming4_0=Conscient de l'environnement
m.EffectsTaming4_1=Resistance aux Cactus, à la lave et aux chutes. m.EffectsTaming4_1=Resistance aux Cactus, à la lave et aux chutes.
m.EffectsTaming5_0=Epaisse fourrure m.EffectsTaming5_0=Epaisse fourrure
m.EffectsTaming5_1=Réduction dégâts, Résistance au feu m.EffectsTaming5_1=Réduction dégâts, Résistance au feu
m.EffectsTaming6_0=Résistance aux chocs m.EffectsTaming6_0=Résistance aux chocs
m.EffectsTaming6_1=Réduction des dommages explosifs m.EffectsTaming6_1=Réduction des dommages explosifs
m.AbilLockTaming1=Débloqué au niveau 100 (Conscient de l'environnement) m.AbilLockTaming1=Débloqué au niveau 100 (Conscient de l'environnement)
m.AbilLockTaming2=Débloqué au niveau 250 (Épaisse fourrure) m.AbilLockTaming2=Débloqué au niveau 250 (Épaisse fourrure)
m.AbilLockTaming3=Débloqué au niveau 500 (Résistance aux chocs) m.AbilLockTaming3=Débloqué au niveau 500 (Résistance aux chocs)
m.AbilLockTaming4=Débloqué au niveau 750 (Griffes aiguisées) m.AbilLockTaming4=Débloqué au niveau 750 (Griffes aiguisées)
m.AbilBonusTaming1_0=Conscient de l'environnement m.AbilBonusTaming1_0=Conscient de l'environnement
m.AbilBonusTaming1_1=Le loup évite le danger m.AbilBonusTaming1_1=Le loup évite le danger
m.AbilBonusTaming2_0=Epaisse fourrure m.AbilBonusTaming2_0=Epaisse fourrure
m.AbilBonusTaming2_1=Réduit de moitié les dommages \+ résistance au feu m.AbilBonusTaming2_1=Réduit de moitié les dommages \+ résistance au feu
m.AbilBonusTaming3_0=Résistance aux chocs m.AbilBonusTaming3_0=Résistance aux chocs
m.AbilBonusTaming3_1=divise par 6 les dégats d'explosions m.AbilBonusTaming3_1=divise par 6 les dégats d'explosions
m.AbilBonusTaming4_0=Griffes aiguisées m.AbilBonusTaming4_0=Griffes aiguisées
m.AbilBonusTaming4_1=+2 Dommages m.AbilBonusTaming4_1=+2 Dommages
m.TamingGoreChance=[[RED]]Chances de Morsure: [[YELLOW]]{0}% m.TamingGoreChance=[[RED]]Chances de Morsure: [[YELLOW]]{0}%
m.SkillWoodCutting=BÛCHERONNAGE m.SkillWoodCutting=BÛCHERONNAGE
m.XPGainWoodCutting=Abattre des arbres m.XPGainWoodCutting=Abattre des arbres
m.EffectsWoodCutting1_0=L'abatteur d'arbres (capacité spéciale) m.EffectsWoodCutting1_0=L'abatteur d'arbres (capacité spéciale)
m.EffectsWoodCutting1_1=Faire exploser les arbres m.EffectsWoodCutting1_1=Faire exploser les arbres
m.EffectsWoodCutting2_0=Souffleur de feuilles m.EffectsWoodCutting2_0=Souffleur de feuilles
m.EffectsWoodCutting2_1=Détruire plus de feuilles m.EffectsWoodCutting2_1=Détruire plus de feuilles
m.EffectsWoodCutting3_0=Double Butin m.EffectsWoodCutting3_0=Double Butin
m.EffectsWoodCutting3_1=Double le butin normal m.EffectsWoodCutting3_1=Double le butin normal
m.AbilLockWoodCutting1=Débloqué au niveau 100 (Souffleur de feuilles) m.AbilLockWoodCutting1=Débloqué au niveau 100 (Souffleur de feuilles)
m.AbilBonusWoodCutting1_0=Soufler les feuilles m.AbilBonusWoodCutting1_0=Soufler les feuilles
m.AbilBonusWoodCutting1_1=Détruire plus de feuilles m.AbilBonusWoodCutting1_1=Détruire plus de feuilles
m.WoodCuttingDoubleDropChance=[[RED]]Chance de double butin: [[YELLOW]]{0}% m.WoodCuttingDoubleDropChance=[[RED]]Chance de double butin: [[YELLOW]]{0}%
m.WoodCuttingTreeFellerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s m.WoodCuttingTreeFellerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
m.SkillArchery=TIR À L'ARC m.SkillArchery=TIR À L'ARC
m.XPGainArchery=Attaquer les monstres m.XPGainArchery=Attaquer les monstres
m.EffectsArchery1_0=Allumage m.EffectsArchery1_0=Allumage
m.EffectsArchery1_1=25% de chances que l'ennemi s'enflamme m.EffectsArchery1_1=25% de chances que l'ennemi s'enflamme
m.EffectsArchery2_0=Étourdir (les joueurs) m.EffectsArchery2_0=Étourdir (les joueurs)
m.EffectsArchery2_1=Étourdi les joueurs m.EffectsArchery2_1=Étourdi les joueurs
m.EffectsArchery3_0=Dégâts+ m.EffectsArchery3_0=Dégâts+
m.EffectsArchery3_1=Augmente les dégâts m.EffectsArchery3_1=Augmente les dégâts
m.EffectsArchery4_0=Récupération de flèches m.EffectsArchery4_0=Récupération de flèches
m.EffectsArchery4_1=Chances de récupérer vos flèches sur un cadavre m.EffectsArchery4_1=Chances de récupérer vos flèches sur un cadavre
m.ArcheryDazeChance=[[RED]]Chances d'étourdir : [[YELLOW]]{0}% m.ArcheryDazeChance=[[RED]]Chances d'étourdir : [[YELLOW]]{0}%
m.ArcheryRetrieveChance=[[RED]]Chances de récupération des flèches : [[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.ArcheryIgnitionLength=[[RED]]Durée du feu : [[YELLOW]]{0} secondes
m.ArcheryDamagePlus=[[RED]]Dégâts+ (Rang {0}): [[YELLOW]]Bonus de {0} dommages m.ArcheryDamagePlus=[[RED]]Dégâts+ (Rang {0}): [[YELLOW]]Bonus de {0} dommages
m.SkillAxes=HACHE m.SkillAxes=HACHE
m.XPGainAxes=Attaquer des monstres m.XPGainAxes=Attaquer des monstres
m.EffectsAxes1_0=Fendeur de crânes (capacité spéciale) m.EffectsAxes1_0=Fendeur de crânes (capacité spéciale)
m.EffectsAxes1_1=provoque des dégâts de zone m.EffectsAxes1_1=provoque des dégâts de zone
m.EffectsAxes2_0=Coup critiques m.EffectsAxes2_0=Coup critiques
m.EffectsAxes2_1=double les dégâts m.EffectsAxes2_1=double les dégâts
m.EffectsAxes3_0=Maîtrise de la hache (niveau 500) m.EffectsAxes3_0=Maîtrise de la hache (niveau 500)
m.EffectsAxes3_1=Augmente les dégâts m.EffectsAxes3_1=Augmente les dégâts
m.AbilLockAxes1=Débloqué au niveau 500 (Maîtrise de la hache) m.AbilLockAxes1=Débloqué au niveau 500 (Maîtrise de la hache)
m.AbilBonusAxes1_0=Maîtrise de la hache m.AbilBonusAxes1_0=Maîtrise de la hache
m.AbilBonusAxes1_1=4 Blessures en bonus m.AbilBonusAxes1_1=4 Blessures en bonus
m.AxesCritChance=[[RED]]Chances de coup critique : [[YELLOW]]{0}% m.AxesCritChance=[[RED]]Chances de coup critique : [[YELLOW]]{0}%
m.AxesSkullLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s m.AxesSkullLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
m.SkillSwords=ÉPÉE m.SkillSwords=ÉPÉE
m.XPGainSwords=Attaque des monstres m.XPGainSwords=Attaque des monstres
m.EffectsSwords1_0=Contre-Attaque m.EffectsSwords1_0=Contre-Attaque
m.EffectsSwords1_1=Renvoie 50% des degats subis m.EffectsSwords1_1=Renvoie 50% des degats subis
m.EffectsSwords2_0=Lame crantée (capacité spéciale) m.EffectsSwords2_0=Lame crantée (capacité spéciale)
m.EffectsSwords2_1=25% de dégâts et saignements succesifs. m.EffectsSwords2_1=25% de dégâts et saignements succesifs.
m.EffectsSwords3_0=Lame crantée avec saignement+ m.EffectsSwords3_0=Lame crantée avec saignement+
m.EffectsSwords3_1=5 saignements m.EffectsSwords3_1=5 saignements
m.EffectsSwords4_0=Parer m.EffectsSwords4_0=Parer
m.EffectsSwords4_1=Annule les dommages m.EffectsSwords4_1=Annule les dommages
m.EffectsSwords5_0=Saignement m.EffectsSwords5_0=Saignement
m.EffectsSwords5_1=provoque un saignement répété m.EffectsSwords5_1=provoque un saignement répété
m.SwordsCounterAttChance=[[RED]]Chances de Contre-Attaque : [[YELLOW]]{0}% m.SwordsCounterAttChance=[[RED]]Chances de Contre-Attaque : [[YELLOW]]{0}%
m.SwordsBleedLength=[[RED]]Nombre de saignements : [[YELLOW]]{0} m.SwordsBleedLength=[[RED]]Nombre de saignements : [[YELLOW]]{0}
m.SwordsBleedChance=[[RED]]Chances de provoquer des saignements : [[YELLOW]]{0} % m.SwordsBleedChance=[[RED]]Chances de provoquer des saignements : [[YELLOW]]{0} %
m.SwordsParryChance=[[RED]]Chances de parer : [[YELLOW]]{0} % m.SwordsParryChance=[[RED]]Chances de parer : [[YELLOW]]{0} %
m.SwordsSSLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s 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.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 saignement va durer 2 secondes
m.SkillAcrobatics=ACROBATIE m.SkillAcrobatics=ACROBATIE
m.XPGainAcrobatics=Chuter m.XPGainAcrobatics=Chuter
m.EffectsAcrobatics1_0=Roulade m.EffectsAcrobatics1_0=Roulade
m.EffectsAcrobatics1_1=Réduit ou annule les dommages m.EffectsAcrobatics1_1=Réduit ou annule les dommages
m.EffectsAcrobatics2_0=Super roulade m.EffectsAcrobatics2_0=Super roulade
m.EffectsAcrobatics2_1=Roulade deux fois plus efficace m.EffectsAcrobatics2_1=Roulade deux fois plus efficace
m.EffectsAcrobatics3_0=Esquive m.EffectsAcrobatics3_0=Esquive
m.EffectsAcrobatics3_1=Dommages reduits de moitié m.EffectsAcrobatics3_1=Dommages reduits de moitié
m.AcrobaticsRollChance=[[RED]]Chances de roulade : [[YELLOW]]{0}% m.AcrobaticsRollChance=[[RED]]Chances de roulade : [[YELLOW]]{0}%
m.AcrobaticsGracefulRollChance=[[RED]]Chances de super roulade: [[YELLOW]]{0}% m.AcrobaticsGracefulRollChance=[[RED]]Chances de super roulade: [[YELLOW]]{0}%
m.AcrobaticsDodgeChance=[[RED]]Chances d'esquiver : [[YELLOW]]{0}% m.AcrobaticsDodgeChance=[[RED]]Chances d'esquiver : [[YELLOW]]{0}%
m.SkillMining=MINAGE m.SkillMining=MINAGE
m.XPGainMining=Miner de la roche et des minerais m.XPGainMining=Miner de la roche et des minerais
m.EffectsMining1_0=Super Breaker (capacité spéciale) m.EffectsMining1_0=Super Breaker (capacité spéciale)
m.EffectsMining1_1=Augmente la vitesse et triple les chances de trouver un butin m.EffectsMining1_1=Augmente la vitesse et triple les chances de trouver un butin
m.EffectsMining2_0=Double Butin m.EffectsMining2_0=Double Butin
m.EffectsMining2_1=Double le butin normal m.EffectsMining2_1=Double le butin normal
m.MiningDoubleDropChance=[[RED]]Chances de Double Butin: [[YELLOW]]{0}% m.MiningDoubleDropChance=[[RED]]Chances de Double Butin: [[YELLOW]]{0}%
m.MiningSuperBreakerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s m.MiningSuperBreakerLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
m.SkillRepair=RÉPARATION m.SkillRepair=RÉPARATION
m.XPGainRepair=Réparer des objets m.XPGainRepair=Réparer des objets
m.EffectsRepair1_0=Réparer m.EffectsRepair1_0=Réparer
m.EffectsRepair1_1=Réparation d'outils & Armures en Fer m.EffectsRepair1_1=Réparation d'outils & Armures en Fer
m.EffectsRepair2_0=Maître en réparation m.EffectsRepair2_0=Maître en réparation
m.EffectsRepair2_1=Augmente le nombre de réparations possibles m.EffectsRepair2_1=Augmente le nombre de réparations possibles
m.EffectsRepair3_0=Super Réparation m.EffectsRepair3_0=Super Réparation
m.EffectsRepair3_1=Double l'efficacité m.EffectsRepair3_1=Double l'efficacité
m.EffectsRepair4_0=Réparation du Diamant (requiert niveau {0}) m.EffectsRepair4_0=Réparation du Diamant (requiert niveau {0})
m.EffectsRepair4_1=Réparation des outils & armures en diamant 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.RepairRepairMastery=[[RED]]Maître en réparation : [[YELLOW]]{0}% de durabilité restaurée
m.RepairSuperRepairChance=[[RED]]Chances de Super Réparation : [[YELLOW]]{0}% m.RepairSuperRepairChance=[[RED]]Chances de Super Réparation : [[YELLOW]]{0}%
m.SkillUnarmed=MAINS NUES m.SkillUnarmed=MAINS NUES
m.XPGainUnarmed=Attaquer des monstres sans armes m.XPGainUnarmed=Attaquer des monstres sans armes
m.EffectsUnarmed1_0=Berserk (capacité spéciale) m.EffectsUnarmed1_0=Berserk (capacité spéciale)
m.EffectsUnarmed1_1=+50% de dégâts, brise les matériaux faibles m.EffectsUnarmed1_1=+50% de dégâts, brise les matériaux faibles
m.EffectsUnarmed2_0=Désarmer (les joueurs) m.EffectsUnarmed2_0=Désarmer (les joueurs)
m.EffectsUnarmed2_1=Vole l'objet que l'ennemi a dans la main m.EffectsUnarmed2_1=Vole l'objet que l'ennemi a dans la main
m.EffectsUnarmed3_0=Apprenti du désarmement m.EffectsUnarmed3_0=Apprenti du désarmement
m.EffectsUnarmed3_1=Plus de dégâts m.EffectsUnarmed3_1=Plus de dégâts
m.EffectsUnarmed4_0=Maîtrise du désarmement m.EffectsUnarmed4_0=Maîtrise du désarmement
m.EffectsUnarmed4_1=Beaucoup plus de dégâts m.EffectsUnarmed4_1=Beaucoup plus de dégâts
m.EffectsUnarmed5_0=Déviation des flèches m.EffectsUnarmed5_0=Déviation des flèches
m.EffectsUnarmed5_1=Dévie les flèches qui vous foncent dessus m.EffectsUnarmed5_1=Dévie les flèches qui vous foncent dessus
m.AbilLockUnarmed1=Débloqué au niveau 250 (Apprenti du désarmement) m.AbilLockUnarmed1=Débloqué au niveau 250 (Apprenti du désarmement)
m.AbilLockUnarmed2=Débloqué au niveau 500 (Maîtrise du désarmement) m.AbilLockUnarmed2=Débloqué au niveau 500 (Maîtrise du désarmement)
m.AbilBonusUnarmed1_0=Apprenti du désarmement m.AbilBonusUnarmed1_0=Apprenti du désarmement
m.AbilBonusUnarmed1_1=+2 dégâts m.AbilBonusUnarmed1_1=+2 dégâts
m.AbilBonusUnarmed2_0=Maîtrise du désarmement m.AbilBonusUnarmed2_0=Maîtrise du désarmement
m.AbilBonusUnarmed2_1=+4 dégâts m.AbilBonusUnarmed2_1=+4 dégâts
m.UnarmedArrowDeflectChance=[[RED]]Chances dévier les flèches : [[YELLOW]]{0}% m.UnarmedArrowDeflectChance=[[RED]]Chances dévier les flèches : [[YELLOW]]{0}%
m.UnarmedDisarmChance=[[RED]]Chances de Désarmer : [[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.UnarmedBerserkLength=[[RED]]Durée de votre capacité spéciale : [[YELLOW]]{0}s
m.SkillHerbalism=Herboristerie m.SkillHerbalism=Herboristerie
m.XPGainHerbalism=Récoler des herbes m.XPGainHerbalism=Récoler des herbes
m.EffectsHerbalism1_0=Main verte (capacité spéciale) m.EffectsHerbalism1_0=Main verte (capacité spéciale)
m.EffectsHerbalism1_1=répand la main verte, 3x Butin m.EffectsHerbalism1_1=répand la main verte, 3x Butin
m.EffectsHerbalism2_0=Main verte (Blé) m.EffectsHerbalism2_0=Main verte (Blé)
m.EffectsHerbalism2_1=Auto-plantes du blé lors de la récolte m.EffectsHerbalism2_1=Auto-plantes du blé lors de la récolte
m.EffectsHerbalism3_0=Main verte (Cobblestone) m.EffectsHerbalism3_0=Main verte (Cobblestone)
m.EffectsHerbalism3_1=Transforme la Cobble en Mossy avec des graines m.EffectsHerbalism3_1=Transforme la Cobble en Mossy avec des graines
m.EffectsHerbalism4_0=Nouriture+ m.EffectsHerbalism4_0=Nouriture+
m.EffectsHerbalism4_1=Modifie la santé reçue via le pain / ragoût m.EffectsHerbalism4_1=Modifie la santé reçue via le pain / ragoût
m.EffectsHerbalism5_0=Double butin (Toutes cultures) m.EffectsHerbalism5_0=Double butin (Toutes cultures)
m.EffectsHerbalism5_1=Double les récoltes m.EffectsHerbalism5_1=Double les récoltes
m.HerbalismGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s 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.HerbalismGreenThumbChance=[[RED]]Cances d'obtenir la main verte : [[YELLOW]]{0}%
m.HerbalismGreenThumbStage=[[RED]]Main verte par niveaux : [[YELLOW]] Wheat grows in stage {0} m.HerbalismGreenThumbStage=[[RED]]Main verte par niveaux : [[YELLOW]] Wheat grows in stage {0}
m.HerbalismDoubleDropChance=[[RED]]Chances du Double Butin : [[YELLOW]]{0}% m.HerbalismDoubleDropChance=[[RED]]Chances du Double Butin : [[YELLOW]]{0}%
m.HerbalismFoodPlus=[[RED]]Nourriture+ (Rang {0}): [[YELLOW]]{0} plus nourissant m.HerbalismFoodPlus=[[RED]]Nourriture+ (Rang {0}): [[YELLOW]]{0} plus nourissant
m.SkillExcavation=EXCAVATION m.SkillExcavation=EXCAVATION
m.XPGainExcavation=Creuser et trouver des trésors m.XPGainExcavation=Creuser et trouver des trésors
m.EffectsExcavation1_0=Super broyeur (capacité spéciale) m.EffectsExcavation1_0=Super broyeur (capacité spéciale)
m.EffectsExcavation1_1=3x Butin, 3x XP, +Vitesse m.EffectsExcavation1_1=3x Butin, 3x XP, +Vitesse
m.EffectsExcavation2_0=Chercheur de trésors m.EffectsExcavation2_0=Chercheur de trésors
m.EffectsExcavation2_1=Capacité de trouver un trésor m.EffectsExcavation2_1=Capacité de trouver un trésor
m.ExcavationGreenTerraLength=[[RED]]Durée de la capacité spéciale : [[YELLOW]]{0}s 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. 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... mcEntityListener.WolfComesBack=[[DARK_GRAY]]Votre loup revient vers vous...
mcPlayerListener.AbilitiesOff=Capacité spéciale désactivée mcPlayerListener.AbilitiesOff=Capacité spéciale désactivée
mcPlayerListener.AbilitiesOn=Capacité spéciale activée mcPlayerListener.AbilitiesOn=Capacité spéciale activée
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**CAPACITÉ RECHARGÉE** mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**CAPACITÉ RECHARGÉE**
mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Acrobatie (/Acrobatics) : mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Acrobatie (/Acrobatics) :
mcPlayerListener.ArcherySkill=[[YELLOW]]Tir a l'arc (/Archery) : mcPlayerListener.ArcherySkill=[[YELLOW]]Tir a l'arc (/Archery) :
mcPlayerListener.AxesSkill=[[YELLOW]]Hache (/Axes) : mcPlayerListener.AxesSkill=[[YELLOW]]Hache (/Axes) :
mcPlayerListener.ExcavationSkill=[[YELLOW]]Excavation (/Excavation): mcPlayerListener.ExcavationSkill=[[YELLOW]]Excavation (/Excavation):
mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO godMode désactivé mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO godMode désactivé
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO godMode activé mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO godMode activé
mcPlayerListener.GreenThumb=[[GREEN]]**MAIN VERTE** mcPlayerListener.GreenThumb=[[GREEN]]**MAIN VERTE**
mcPlayerListener.GreenThumbFail=[[RED]]**MAIN VERTE A ECHOUÉ** mcPlayerListener.GreenThumbFail=[[RED]]**MAIN VERTE A ECHOUÉ**
mcPlayerListener.HerbalismSkill=[[YELLOW]]Herboriste (/Herbalism) : mcPlayerListener.HerbalismSkill=[[YELLOW]]Herboriste (/Herbalism) :
mcPlayerListener.MiningSkill=[[YELLOW]]Minage (/Mining): mcPlayerListener.MiningSkill=[[YELLOW]]Minage (/Mining):
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Votre point de spawn a été éffacé. 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.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.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.MyspawnTimeNotice=Vous devez attendre {0}m {1}s avant d'utiliser votre spawn
mcPlayerListener.NoPermission=Vous n'avez pas les permissions nécessaires. 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.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.NotInParty=[[RED]]Vous n'êtes pas dans un groupe.
mcPlayerListener.InviteSuccess=[[GREEN]]L'invitation a été envoyée avec succès. 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.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.ReceivedInvite2=[[YELLOW]]Tapez [[GREEN]]/{0}[[YELLOW]] pour accepter l'invitation
mcPlayerListener.InviteAccepted=[[GREEN]]Invite acceptée. Vous avez rejoint le groupe {0} 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.NoInvites=[[RED]]Vous n'avez pas d'invitation pour le moment
mcPlayerListener.YouAreInParty=[[GREEN]]Vous êtes dans le groupe {0} mcPlayerListener.YouAreInParty=[[GREEN]]Vous êtes dans le groupe {0}
mcPlayerListener.PartyMembers=[[GREEN]]Membres du groupe mcPlayerListener.PartyMembers=[[GREEN]]Membres du groupe
mcPlayerListener.LeftParty=[[RED]]Vous avez quitté le groupe mcPlayerListener.LeftParty=[[RED]]Vous avez quitté le groupe
mcPlayerListener.JoinedParty=Votre groupe: {0} mcPlayerListener.JoinedParty=Votre groupe: {0}
mcPlayerListener.PartyChatOn=Chat de Groupe uniquement [[GREEN]]On mcPlayerListener.PartyChatOn=Chat de Groupe uniquement [[GREEN]]On
mcPlayerListener.PartyChatOff=Chat de Groupe uniquement [[RED]]Off mcPlayerListener.PartyChatOff=Chat de Groupe uniquement [[RED]]Off
mcPlayerListener.AdminChatOn=Admin Chat uniquement [[GREEN]]On mcPlayerListener.AdminChatOn=Admin Chat uniquement [[GREEN]]On
mcPlayerListener.AdminChatOff=Admin Chat uniquement [[RED]]Off mcPlayerListener.AdminChatOff=Admin Chat uniquement [[RED]]Off
mcPlayerListener.MOTD=[[BLUE]]Ce serveur fonctionne avec mcMMO {0} [[YELLOW]]/{1}[[BLUE]] pour voir l'aide. 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.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki - [[YELLOW]]Traduit par avalondrey & Misa
mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL:
mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard-- mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
mcPlayerListener.RepairSkill=[[YELLOW]]Réparation (/Repair) : mcPlayerListener.RepairSkill=[[YELLOW]]Réparation (/Repair) :
mcPlayerListener.SwordsSkill=[[YELLOW]]Epee (/Swords) : mcPlayerListener.SwordsSkill=[[YELLOW]]Epee (/Swords) :
mcPlayerListener.TamingSkill=[[YELLOW]]Dressage (/Taming) : mcPlayerListener.TamingSkill=[[YELLOW]]Dressage (/Taming) :
mcPlayerListener.UnarmedSkill=[[YELLOW]]Mains nues (/Unarmed) : mcPlayerListener.UnarmedSkill=[[YELLOW]]Mains nues (/Unarmed) :
mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Bucheron (/Woodcutting): mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Bucheron (/Woodcutting):
mcPlayerListener.YourStats=[[GREEN]]Vos statistiques mcPlayerListener.YourStats=[[GREEN]]Vos statistiques
Party.InformedOnJoin={0} [[GREEN]] a rejoint votre groupe Party.InformedOnJoin={0} [[GREEN]] a rejoint votre groupe
Party.InformedOnQuit={0} [[GREEN]] a quitté 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.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.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.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.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.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.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.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.TooTired=[[RED]]Vous êtes trop fatigué pour utiliser cette capacité pour l'instant.
Skills.ReadyHoe=[[GREEN]]**Votre bêche est chargée** Skills.ReadyHoe=[[GREEN]]**Votre bêche est chargée**
Skills.LowerHoe=[[GRAY]]Votre bêche s'est déchargée.. Skills.LowerHoe=[[GRAY]]Votre bêche s'est déchargée..
Skills.ReadyAxe=[[GREEN]]**Votre hache est chargée** Skills.ReadyAxe=[[GREEN]]**Votre hache est chargée**
Skills.LowerAxe=[[GRAY]]Votre hache s'est déchargée.. Skills.LowerAxe=[[GRAY]]Votre hache s'est déchargée..
Skills.ReadyFists=[[GREEN]]**Vos poings sont chargés** Skills.ReadyFists=[[GREEN]]**Vos poings sont chargés**
Skills.LowerFists=[[GRAY]]Vos poings se sont déchargés.. Skills.LowerFists=[[GRAY]]Vos poings se sont déchargés..
Skills.ReadyPickAxe=[[GREEN]]**Votre pioche est chargée** Skills.ReadyPickAxe=[[GREEN]]**Votre pioche est chargée**
Skills.LowerPickAxe=[[GRAY]]Votre pioche s'est déchargée.. Skills.LowerPickAxe=[[GRAY]]Votre pioche s'est déchargée..
Skills.ReadyShovel=[[GREEN]]**Votre pelle est chargée** Skills.ReadyShovel=[[GREEN]]**Votre pelle est chargée**
Skills.LowerShovel=[[GRAY]]Votre pelle s'est déchargée.. Skills.LowerShovel=[[GRAY]]Votre pelle s'est déchargée..
Skills.ReadySword=[[GREEN]]**Votre épée est chargée** Skills.ReadySword=[[GREEN]]**Votre épée est chargée**
Skills.LowerSword=[[GRAY]]Votre épée s'est déchargée.. Skills.LowerSword=[[GRAY]]Votre épée s'est déchargée..
Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED** Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk! Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
Skills.GreenTerraOn=[[GREEN]]**Compétence [[YELLOW]]Main Verte [[GREEN]]activée** 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.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.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.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.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.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.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.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.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.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.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.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.GreenTerraOff=[[RED]]**Compétence [[YELLOW]]Main Verte [[GREEN]]terminée**
Skills.TreeFellerOff=[[RED]]**Compétence [[YELLOW]]L'abatteur d'Arbres [[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.SuperBreakerOff=[[RED]]**Compétence [[YELLOW]]Super Breaker [[GREEN]]terminée**
Skills.SerratedStrikesOff=[[RED]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]terminée** Skills.SerratedStrikesOff=[[RED]]**Compétence [[YELLOW]]Lame Crantée [[GREEN]]terminée**
Skills.BerserkOff=[[RED]]**Berserk est fini** Skills.BerserkOff=[[RED]]**Berserk est fini**
Skills.SkullSplitterOff=[[RED]]**Casseur de tete est fini** Skills.SkullSplitterOff=[[RED]]**Casseur de tete est fini**
Skills.GigaDrillBreakerOff=[[RED]]**Super broyeur est fini** Skills.GigaDrillBreakerOff=[[RED]]**Super broyeur est fini**
Skills.TamingUp=[[YELLOW]]La competence du dressage a augmenté de {0}. Total ({1}) 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.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.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.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.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.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.HerbalismUp=[[YELLOW]]La competence herboriste a augmenté de {0}. Total ({1})
Skills.MiningUp=[[YELLOW]]La competence minage 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.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.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.ExcavationUp=[[YELLOW]]La competence excavation a augmenté de {0}. Total ({1})
Skills.FeltEasy=[[GRAY]]That felt easy. Skills.FeltEasy=[[GRAY]]That felt easy.
Skills.StackedItems=[[DARK_RED]]Vous ne pouvez pas réparer les objets empilés Skills.StackedItems=[[DARK_RED]]Vous ne pouvez pas réparer les objets empilés
Skills.NeedMore=[[DARK_RED]]Vous devez en avoir plus 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.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.FullDurability=[[GRAY]]Cet objet est déjà en bonne état.
Skills.Disarmed=[[DARK_RED]]Vous avez été désarmé ! Skills.Disarmed=[[DARK_RED]]Vous avez été désarmé !
mcPlayerListener.SorcerySkill=Sorcery: mcPlayerListener.SorcerySkill=Sorcery:
m.SkillSorcery=SORCERY m.SkillSorcery=SORCERY
Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]] Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]]
Sorcery.Current_Mana=[[DARK_AQUA]]MP Sorcery.Current_Mana=[[DARK_AQUA]]MP
Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
Sorcery.Cost=[[RED]][COST] {0} MP 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.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
Sorcery.Water.Thunder=THUNDER Sorcery.Water.Thunder=THUNDER
Sorcery.Curative.Self=CURE SELF Sorcery.Curative.Self=CURE SELF
Sorcery.Curative.Other=CURE OTHER Sorcery.Curative.Other=CURE OTHER
m.LVL=NIVEAU [[GREEN]]{0} - [[DARK_AQUA]]XP : [[YELLOW]][[[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]] m.LVL=NIVEAU [[GREEN]]{0} - [[DARK_AQUA]]XP : [[YELLOW]][[[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]]
Combat.BeastLore=[[GREEN]]**Connaissances des bêtes** Combat.BeastLore=[[GREEN]]**Connaissances des bêtes**
Combat.BeastLoreOwner=[[DARK_AQUA]]Propriétaire ([[RED]]{0}[[DARK_AQUA]]) Combat.BeastLoreOwner=[[DARK_AQUA]]Propriétaire ([[RED]]{0}[[DARK_AQUA]])
Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/20) Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/20)
Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Vie ([[GREEN]]{0}[[DARK_AQUA]]/8) 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 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.Locked=[[RED]]Party is locked, only party leader may invite.
Party.IsntLocked=[[GRAY]]Party is not locked Party.IsntLocked=[[GRAY]]Party is not locked
Party.Unlocked=[[GRAY]]Party is unlocked Party.Unlocked=[[GRAY]]Party is unlocked
Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit
Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password> Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]]<name> <password>
Party.Help3=[[RED]]Consult /{0} ? for more information Party.Help3=[[RED]]Consult /{0} ? for more information
Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit Party.Help4=[[RED]]Use [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]to join a party or [[WHITE]]'q' [[YELLOW]]to quit
Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock Party.Help5=[[RED]]To lock your party use [[YELLOW]]/{0} [[WHITE]]lock
Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock
Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password> Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password <password>
Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player> Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick <player>
Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player> Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner <player>
Party.NotOwner=[[DARK_RED]]You are not the party owner Party.NotOwner=[[DARK_RED]]You are not the party owner
Party.InvalidName=[[DARK_RED]]That is not a valid party name Party.InvalidName=[[DARK_RED]]That is not a valid party name
Party.PasswordSet=[[GREEN]]Party password set to {0} Party.PasswordSet=[[GREEN]]Party password set to {0}
Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} Party.CouldNotKick=[[DARK_RED]]Could not kick player {0}
Party.NotInYourParty=[[DARK_RED]]{0} is not in your party Party.NotInYourParty=[[DARK_RED]]{0} is not in your party
Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0}
Commands.xprate.proper=[[DARK_AQUA]]Proper usage is /{0} [integer] [true:false] 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.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.proper3=[[RED]]Enter true or false for the second value
Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!!
Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED!
Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x!! 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.locked=[[GOLD]]Your XP BAR is now locked to {0}!
Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! 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 Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining
m.SkillAlchemy=ALCHEMY m.SkillAlchemy=ALCHEMY
m.SkillEnchanting=ENCHANTING m.SkillEnchanting=ENCHANTING
m.SkillFishing=FISHING m.SkillFishing=FISHING
mcPlayerListener.AlchemySkill=Alchemy: mcPlayerListener.AlchemySkill=Alchemy:
mcPlayerListener.EnchantingSkill=Enchanting: mcPlayerListener.EnchantingSkill=Enchanting:
mcPlayerListener.FishingSkill=Fishing: mcPlayerListener.FishingSkill=Fishing:
Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1})
Skills.EnchantingUp=[[YELLOW]]Enchanting 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}) Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1})
Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. 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.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item.
Repair.Downgraded=[[RED]]Arcane power has decreased for this item. Repair.Downgraded=[[RED]]Arcane power has decreased for this item.
Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item.
m.EffectsRepair5_0=Arcane Forging m.EffectsRepair5_0=Arcane Forging
m.EffectsRepair5_1=Repair magic items m.EffectsRepair5_1=Repair magic items
m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4
m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}%
m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[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.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+,
m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+
Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch...
Fishing.ItemFound=[[GRAY]]Treasure found! Fishing.ItemFound=[[GRAY]]Treasure found!
m.SkillFishing=FISHING m.SkillFishing=FISHING
m.XPGainFishing=Fishing (Go figure!) m.XPGainFishing=Fishing (Go figure!)
m.EffectsFishing1_0=Treasure Hunter (Passive) m.EffectsFishing1_0=Treasure Hunter (Passive)
m.EffectsFishing1_1=Fish up misc objects m.EffectsFishing1_1=Fish up misc objects
m.EffectsFishing2_0=Magic Hunter m.EffectsFishing2_0=Magic Hunter
m.EffectsFishing2_1=Find Enchanted Items m.EffectsFishing2_1=Find Enchanted Items
m.EffectsFishing3_0=Shake (vs. Entities) m.EffectsFishing3_0=Shake (vs. Entities)
m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole
m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5
m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** 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.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_;
m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE)
m.TamingSummon=[[GREEN]]Summoning complete m.TamingSummon=[[GREEN]]Summoning complete
m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more.
m.EffectsTaming7_0=Call of the Wild m.EffectsTaming7_0=Call of the Wild
m.EffectsTaming7_1=Summon a wolf to your side 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 m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand

View File

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

View File

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

View File

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

View File

@ -1,382 +1,382 @@
Combat.WolfExamine=[[GREEN]]**Вы научили Волка использованию "Удара волка"** Combat.WolfExamine=[[GREEN]]**Вы научили Волка использованию "Удара волка"**
Combat.WolfExamine=[[GREEN]]**Вы научили Волка использованию "Удара волка"** Combat.WolfExamine=[[GREEN]]**Вы научили Волка использованию "Удара волка"**
Combat.WolfShowMaster=[[DARK_GREEN]]Мастер по приручению Волков \: {0} Combat.WolfShowMaster=[[DARK_GREEN]]Мастер по приручению Волков \: {0}
Combat.Ignition=[[RED]]**Вы подожгли противника стрелой!!** Combat.Ignition=[[RED]]**Вы подожгли противника стрелой!!**
Combat.BurningArrowHit=[[DARK_RED]]Вы были поражены горящей стрелой\! Combat.BurningArrowHit=[[DARK_RED]]Вы были поражены горящей стрелой\!
Combat.TouchedFuzzy=[[DARK_RED]]Вы истекаете кровью. Кружится голова. Combat.TouchedFuzzy=[[DARK_RED]]Вы истекаете кровью. Кружится голова.
Combat.TargetDazed=Ваша цель [[DARK_RED]]Шокирована Combat.TargetDazed=Ваша цель [[DARK_RED]]Шокирована
Combat.WolfNoMaster=[[GRAY]]У этого Волка нет хозяина Combat.WolfNoMaster=[[GRAY]]У этого Волка нет хозяина
Combat.WolfHealth=[[GREEN]]У этого Волка {0} Здоровья Combat.WolfHealth=[[GREEN]]У этого Волка {0} Здоровья
Combat.StruckByGore=[[RED]]**Окравление неудачно** Combat.StruckByGore=[[RED]]**Окравление неудачно**
Combat.Gore=[[GREEN]]**Окравление** Combat.Gore=[[GREEN]]**Окравление**
Combat.ArrowDeflect=[[WHITE]]**Стрела отскочила** Combat.ArrowDeflect=[[WHITE]]**Стрела отскочила**
Item.ChimaeraWingFail=**Крылья Химеры не смогли вас унести\!** Item.ChimaeraWingFail=**Крылья Химеры не смогли вас унести\!**
Item.ChimaeraWingPass=**Крылья Химеры уносят вас...** Item.ChimaeraWingPass=**Крылья Химеры уносят вас...**
Item.InjuredWait=Вы ранены и не сможете пока использовать это. [[YELLOW]]({0}s) Item.InjuredWait=Вы ранены и не сможете пока использовать это. [[YELLOW]]({0}s)
Item.NeedFeathers=[[GRAY]]Вам нужно больше перьев.. Item.NeedFeathers=[[GRAY]]Вам нужно больше перьев..
m.mccPartyCommands=[[GREEN]]--Групповые команды-- m.mccPartyCommands=[[GREEN]]--Групповые команды--
m.mccParty=[party name] [[RED]]- Создание группы m.mccParty=[party name] [[RED]]- Создание группы
m.mccPartyQ=[[RED]]- Покиньте текущую группу m.mccPartyQ=[[RED]]- Покиньте текущую группу
m.mccPartyToggle=[[RED]] - Включить групповой чат m.mccPartyToggle=[[RED]] - Включить групповой чат
m.mccPartyInvite=[player name] [[RED]]- Прислать приглашение в группу m.mccPartyInvite=[player name] [[RED]]- Прислать приглашение в группу
m.mccPartyAccept=[[RED]]- Подтвердить приглашение в группу m.mccPartyAccept=[[RED]]- Подтвердить приглашение в группу
m.mccPartyTeleport=[party member name] [[RED]]- Телепортироваться к члену группы m.mccPartyTeleport=[party member name] [[RED]]- Телепортироваться к члену группы
m.mccOtherCommands=[[GREEN]]--Другие команды-- m.mccOtherCommands=[[GREEN]]--Другие команды--
m.mccStats=- Посмотреть ваши McMMo характеристики m.mccStats=- Посмотреть ваши McMMo характеристики
m.mccLeaderboards=- Доска Лидеров m.mccLeaderboards=- Доска Лидеров
m.mccMySpawn=- Телепортирует к вашей кровати m.mccMySpawn=- Телепортирует к вашей кровати
m.mccClearMySpawn=- Убирает вашу кровать m.mccClearMySpawn=- Убирает вашу кровать
m.mccToggleAbility=- Активировать возможность правым кликом мыши m.mccToggleAbility=- Активировать возможность правым кликом мыши
m.mccAdminToggle=- Включить админский чат m.mccAdminToggle=- Включить админский чат
m.mccWhois=[playername] [[RED]]- Посмотреть детальную информацию m.mccWhois=[playername] [[RED]]- Посмотреть детальную информацию
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Изменить цель m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Изменить цель
m.mccMcGod=- Режим Бога m.mccMcGod=- Режим Бога
m.mccSkillInfo=[skillname] [[RED]]- Посмотреть детальную информацию о умении m.mccSkillInfo=[skillname] [[RED]]- Посмотреть детальную информацию о умении
m.mccModDescription=[[RED]]- Прочитать информацию о моде McMMo m.mccModDescription=[[RED]]- Прочитать информацию о моде McMMo
m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0} m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0}
m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
m.AbilityLockTemplate=[[GRAY]]{0} m.AbilityLockTemplate=[[GRAY]]{0}
m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
m.Effects=ЭФФЕКТЫ m.Effects=ЭФФЕКТЫ
m.YourStats=ВАШИ ХАРАКТЕРИСТИКИ m.YourStats=ВАШИ ХАРАКТЕРИСТИКИ
m.SkillTaming=Приручение m.SkillTaming=Приручение
m.XPGainTaming=Волки причиняют ущерб m.XPGainTaming=Волки причиняют ущерб
m.EffectsTaming1_0=Удар Волка m.EffectsTaming1_0=Удар Волка
m.EffectsTaming1_1=Уменьшение количества костей m.EffectsTaming1_1=Уменьшение количества костей
m.EffectsTaming2_0=Окравление m.EffectsTaming2_0=Окравление
m.EffectsTaming2_1=Критический удар во время истекания кровью m.EffectsTaming2_1=Критический удар во время истекания кровью
m.EffectsTaming3_0=Острые Когти m.EffectsTaming3_0=Острые Когти
m.EffectsTaming3_1=Бонус к урону m.EffectsTaming3_1=Бонус к урону
m.EffectsTaming4_0=Независимость от экологии m.EffectsTaming4_0=Независимость от экологии
m.EffectsTaming4_1=Имунитет к падению, боязнь лавы/кактусов m.EffectsTaming4_1=Имунитет к падению, боязнь лавы/кактусов
m.EffectsTaming5_0=Густой мех m.EffectsTaming5_0=Густой мех
m.EffectsTaming5_1=Сокращение урона, огнеустойчивость m.EffectsTaming5_1=Сокращение урона, огнеустойчивость
m.EffectsTaming6_0=Надежная защита от повреждений m.EffectsTaming6_0=Надежная защита от повреждений
m.EffectsTaming6_1=Снижение урона от взрывов m.EffectsTaming6_1=Снижение урона от взрывов
m.AbilLockTaming1=Блокируется до 100+ уровня(Независимость от экологии) m.AbilLockTaming1=Блокируется до 100+ уровня(Независимость от экологии)
m.AbilLockTaming2=Блокируется до 250+ уровня (Густой мех) m.AbilLockTaming2=Блокируется до 250+ уровня (Густой мех)
m.AbilLockTaming3=Блокируется до 500+ уровня (Надежная защита от повреждений) m.AbilLockTaming3=Блокируется до 500+ уровня (Надежная защита от повреждений)
m.AbilLockTaming4=Блокируется до 700+ уровня (Острые Когти) m.AbilLockTaming4=Блокируется до 700+ уровня (Острые Когти)
m.AbilBonusTaming1_0=Независимость от экологии m.AbilBonusTaming1_0=Независимость от экологии
m.AbilBonusTaming1_1=Волки избегают опасностей m.AbilBonusTaming1_1=Волки избегают опасностей
m.AbilBonusTaming2_0=Густой мех m.AbilBonusTaming2_0=Густой мех
m.AbilBonusTaming2_1=Урон наполовину, Огнеустойчивость m.AbilBonusTaming2_1=Урон наполовину, Огнеустойчивость
m.AbilBonusTaming3_0=Надежная защита от повреждений m.AbilBonusTaming3_0=Надежная защита от повреждений
m.AbilBonusTaming3_1=Взрывы причиняют 1/6 нормального урона m.AbilBonusTaming3_1=Взрывы причиняют 1/6 нормального урона
m.AbilBonusTaming4_0=Острые Когти m.AbilBonusTaming4_0=Острые Когти
m.AbilBonusTaming4_1=+2 Урона m.AbilBonusTaming4_1=+2 Урона
m.TamingGoreChance=[[RED]]Шанс окравления: [[YELLOW]]{0}% m.TamingGoreChance=[[RED]]Шанс окравления: [[YELLOW]]{0}%
m.SkillWoodCutting=Деревообработка m.SkillWoodCutting=Деревообработка
m.XPGainWoodCutting=Рубить деревья m.XPGainWoodCutting=Рубить деревья
m.EffectsWoodCutting1_0=Любитель деревьев(способность) m.EffectsWoodCutting1_0=Любитель деревьев(способность)
m.EffectsWoodCutting1_1=Делать взрывы деревьев m.EffectsWoodCutting1_1=Делать взрывы деревьев
m.EffectsWoodCutting2_0=Быстрое срезание листьев m.EffectsWoodCutting2_0=Быстрое срезание листьев
m.EffectsWoodCutting2_1=Сдувать листья m.EffectsWoodCutting2_1=Сдувать листья
m.EffectsWoodCutting3_0=Двойной дроп m.EffectsWoodCutting3_0=Двойной дроп
m.EffectsWoodCutting3_1=Нормальный двойной дроп m.EffectsWoodCutting3_1=Нормальный двойной дроп
m.AbilLockWoodCutting1=Блокируется до 100+ уровня(Быстрое срезание листьев) m.AbilLockWoodCutting1=Блокируется до 100+ уровня(Быстрое срезание листьев)
m.AbilBonusWoodCutting1_0=Быстрое срезание листьев m.AbilBonusWoodCutting1_0=Быстрое срезание листьев
m.AbilBonusWoodCutting1_1=Сдувать листья m.AbilBonusWoodCutting1_1=Сдувать листья
m.WoodCuttingDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}% m.WoodCuttingDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}%
m.WoodCuttingTreeFellerLength=[[RED]]Продолжительность Любителя деревьев: [[YELLOW]]{0}s m.WoodCuttingTreeFellerLength=[[RED]]Продолжительность Любителя деревьев: [[YELLOW]]{0}s
m.SkillArchery=Стрельба из лука m.SkillArchery=Стрельба из лука
m.XPGainArchery=Атаковать монстров из лука m.XPGainArchery=Атаковать монстров из лука
m.EffectsArchery1_0=Поджёг m.EffectsArchery1_0=Поджёг
m.EffectsArchery1_1=25% шанс, что цель подожгётся m.EffectsArchery1_1=25% шанс, что цель подожгётся
m.EffectsArchery2_0=Шокирование(Игроков) m.EffectsArchery2_0=Шокирование(Игроков)
m.EffectsArchery2_1=Дезориентирует врагов m.EffectsArchery2_1=Дезориентирует врагов
m.EffectsArchery3_0=Урон+ m.EffectsArchery3_0=Урон+
m.EffectsArchery3_1=Улучшает Урон m.EffectsArchery3_1=Улучшает Урон
m.EffectsArchery4_0=Получение стрел m.EffectsArchery4_0=Получение стрел
m.EffectsArchery4_1=Шанс получить стрелы из трупов m.EffectsArchery4_1=Шанс получить стрелы из трупов
m.ArcheryDazeChance=[[RED]]Шанс шокировать: [[YELLOW]]{0}% m.ArcheryDazeChance=[[RED]]Шанс шокировать: [[YELLOW]]{0}%
m.ArcheryRetrieveChance=[[RED]]Шанс получить стрелы: [[YELLOW]]{0}% m.ArcheryRetrieveChance=[[RED]]Шанс получить стрелы: [[YELLOW]]{0}%
m.ArcheryIgnitionLength=[[RED]]Длительность поджёга: [[YELLOW]]{0} секунд m.ArcheryIgnitionLength=[[RED]]Длительность поджёга: [[YELLOW]]{0} секунд
m.ArcheryDamagePlus=[[RED]]Урон+ (Rank{0}): [[YELLOW]]Bonus {0} damage m.ArcheryDamagePlus=[[RED]]Урон+ (Rank{0}): [[YELLOW]]Bonus {0} damage
m.SkillAxes=Топоры m.SkillAxes=Топоры
m.XPGainAxes=Атаковать монстров топором m.XPGainAxes=Атаковать монстров топором
m.EffectsAxes1_0=Разрушитель черепов(способность) m.EffectsAxes1_0=Разрушитель черепов(способность)
m.EffectsAxes1_1=Увеличение урона от топора m.EffectsAxes1_1=Увеличение урона от топора
m.EffectsAxes2_0=Критические удары m.EffectsAxes2_0=Критические удары
m.EffectsAxes2_1=Двойной урон m.EffectsAxes2_1=Двойной урон
m.EffectsAxes3_0=Мастерство топора(500 уровень) m.EffectsAxes3_0=Мастерство топора(500 уровень)
m.EffectsAxes3_1=Улучшение урона m.EffectsAxes3_1=Улучшение урона
m.AbilLockAxes1=Блокируется до 500+ уровня(Мастерство топора) m.AbilLockAxes1=Блокируется до 500+ уровня(Мастерство топора)
m.AbilBonusAxes1_0=Мастерство топора m.AbilBonusAxes1_0=Мастерство топора
m.AbilBonusAxes1_1=Дает бонус в 4 урона m.AbilBonusAxes1_1=Дает бонус в 4 урона
m.AxesCritChance=[[RED]]Шанс критического удара: [[YELLOW]]{0}% m.AxesCritChance=[[RED]]Шанс критического удара: [[YELLOW]]{0}%
m.AxesSkullLength=[[RED]]Продолжительность Разрушителя Черепов: [[YELLOW]]{0}s m.AxesSkullLength=[[RED]]Продолжительность Разрушителя Черепов: [[YELLOW]]{0}s
m.SkillSwords=Мечи m.SkillSwords=Мечи
m.XPGainSwords=Атаковать монстров мечом m.XPGainSwords=Атаковать монстров мечом
m.EffectsSwords1_0=Контр-Атака m.EffectsSwords1_0=Контр-Атака
m.EffectsSwords1_1=Отражает 50% полученного урона m.EffectsSwords1_1=Отражает 50% полученного урона
m.EffectsSwords2_0=Зазубренные мечи(способность) m.EffectsSwords2_0=Зазубренные мечи(способность)
m.EffectsSwords2_1=25% Урона+ и кровотечение от удара m.EffectsSwords2_1=25% Урона+ и кровотечение от удара
m.EffectsSwords3_0=Увелечение длительности способности "Зазубренные мечи" m.EffectsSwords3_0=Увелечение длительности способности "Зазубренные мечи"
m.EffectsSwords3_1=Кровотечение 5 раз m.EffectsSwords3_1=Кровотечение 5 раз
m.EffectsSwords4_0=Парирование m.EffectsSwords4_0=Парирование
m.EffectsSwords4_1=Отрицательный урон m.EffectsSwords4_1=Отрицательный урон
m.EffectsSwords5_0=Кровотечение m.EffectsSwords5_0=Кровотечение
m.EffectsSwords5_1=Заставляет врага кровоточить m.EffectsSwords5_1=Заставляет врага кровоточить
m.SwordsCounterAttChance=[[RED]]Шанс Контр-Атаки: [[YELLOW]]{0}% m.SwordsCounterAttChance=[[RED]]Шанс Контр-Атаки: [[YELLOW]]{0}%
m.SwordsBleedLength=[[RED]]Длительность кровотечения: [[YELLOW]]{0} раз m.SwordsBleedLength=[[RED]]Длительность кровотечения: [[YELLOW]]{0} раз
m.SwordsBleedChance=[[RED]]Шанс кровотечения: [[YELLOW]]{0} % m.SwordsBleedChance=[[RED]]Шанс кровотечения: [[YELLOW]]{0} %
m.SwordsParryChance=[[RED]]Шанс парирования: [[YELLOW]]{0} % m.SwordsParryChance=[[RED]]Шанс парирования: [[YELLOW]]{0} %
m.SwordsSSLength=[[RED]]Длительность "Зазубренныx мечей": [[YELLOW]]{0}s m.SwordsSSLength=[[RED]]Длительность "Зазубренныx мечей": [[YELLOW]]{0}s
m.SwordsTickNote=[[GRAY]]Заметка: [[YELLOW]]1 раз длиться 2 секунды m.SwordsTickNote=[[GRAY]]Заметка: [[YELLOW]]1 раз длиться 2 секунды
m.SkillAcrobatics=Акробатика m.SkillAcrobatics=Акробатика
m.XPGainAcrobatics=Нужно Падать с гор m.XPGainAcrobatics=Нужно Падать с гор
m.EffectsAcrobatics1_0=Переворот m.EffectsAcrobatics1_0=Переворот
m.EffectsAcrobatics1_1=Поглощает или уменьшает урон m.EffectsAcrobatics1_1=Поглощает или уменьшает урон
m.EffectsAcrobatics2_0=Превосходный переворот m.EffectsAcrobatics2_0=Превосходный переворот
m.EffectsAcrobatics2_1=Дважды эффективнее переворота m.EffectsAcrobatics2_1=Дважды эффективнее переворота
m.EffectsAcrobatics3_0=Уворот m.EffectsAcrobatics3_0=Уворот
m.EffectsAcrobatics3_1=Уменьшает урон наполовину от стрелы m.EffectsAcrobatics3_1=Уменьшает урон наполовину от стрелы
m.AcrobaticsRollChance=[[RED]]Шанс переворота: [[YELLOW]]{0}% m.AcrobaticsRollChance=[[RED]]Шанс переворота: [[YELLOW]]{0}%
m.AcrobaticsGracefulRollChance=[[RED]]Шанс превосходного переворота: [[YELLOW]]{0}% m.AcrobaticsGracefulRollChance=[[RED]]Шанс превосходного переворота: [[YELLOW]]{0}%
m.AcrobaticsDodgeChance=[[RED]]Шанс уворота: [[YELLOW]]{0}% m.AcrobaticsDodgeChance=[[RED]]Шанс уворота: [[YELLOW]]{0}%
m.SkillMining=Шахтёрство m.SkillMining=Шахтёрство
m.XPGainMining=Добывать руду и камни в шахтах m.XPGainMining=Добывать руду и камни в шахтах
m.EffectsMining1_0=Супер разрушитель(способность) m.EffectsMining1_0=Супер разрушитель(способность)
m.EffectsMining1_1=Увеличение скорости, Шанс тройного дропа m.EffectsMining1_1=Увеличение скорости, Шанс тройного дропа
m.EffectsMining2_0=Двойной дроп m.EffectsMining2_0=Двойной дроп
m.EffectsMining2_1=Двойной дроп становится нормальным m.EffectsMining2_1=Двойной дроп становится нормальным
m.MiningDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}% m.MiningDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}%
m.MiningSuperBreakerLength=[[RED]]Длительность способности "Супер Разрушитель": [[YELLOW]]{0}s m.MiningSuperBreakerLength=[[RED]]Длительность способности "Супер Разрушитель": [[YELLOW]]{0}s
m.SkillRepair=Починка m.SkillRepair=Починка
m.XPGainRepair=Чинить вещи m.XPGainRepair=Чинить вещи
m.EffectsRepair1_0=Починка m.EffectsRepair1_0=Починка
m.EffectsRepair1_1=Чинит Железные инструменты и броню m.EffectsRepair1_1=Чинит Железные инструменты и броню
m.EffectsRepair2_0=Мастерство починки m.EffectsRepair2_0=Мастерство починки
m.EffectsRepair2_1=Увеличивает качество ремонта m.EffectsRepair2_1=Увеличивает качество ремонта
m.EffectsRepair3_0=Супер починка m.EffectsRepair3_0=Супер починка
m.EffectsRepair3_1=Двойная эффективность вещей m.EffectsRepair3_1=Двойная эффективность вещей
m.EffectsRepair4_0=Починка Алмазных вещей ({0}+ уровень) m.EffectsRepair4_0=Починка Алмазных вещей ({0}+ уровень)
m.EffectsRepair4_1=Чинить Алмазные инструменты и броню m.EffectsRepair4_1=Чинить Алмазные инструменты и броню
m.RepairRepairMastery=[[RED]]Мастерство починки: [[YELLOW]]Дополнительно {0}% долговечности восстановлено m.RepairRepairMastery=[[RED]]Мастерство починки: [[YELLOW]]Дополнительно {0}% долговечности восстановлено
m.RepairSuperRepairChance=[[RED]]Шанс Супер починки: [[YELLOW]]{0}% m.RepairSuperRepairChance=[[RED]]Шанс Супер починки: [[YELLOW]]{0}%
m.SkillUnarmed=Рукопашный бой m.SkillUnarmed=Рукопашный бой
m.XPGainUnarmed=Атаковать монстров голыми руками m.XPGainUnarmed=Атаковать монстров голыми руками
m.EffectsUnarmed1_0=Берсерк(способность) m.EffectsUnarmed1_0=Берсерк(способность)
m.EffectsUnarmed1_1=+50% Урона, Ломать слабые материалы m.EffectsUnarmed1_1=+50% Урона, Ломать слабые материалы
m.EffectsUnarmed2_0=Обезоружение(Игроки) m.EffectsUnarmed2_0=Обезоружение(Игроки)
m.EffectsUnarmed2_1=Падает оружие противника на землю, которое находится в руках у него. m.EffectsUnarmed2_1=Падает оружие противника на землю, которое находится в руках у него.
m.EffectsUnarmed3_0=Мастер Рукопашного боя m.EffectsUnarmed3_0=Мастер Рукопашного боя
m.EffectsUnarmed3_1=Улучшение урона от кулаков m.EffectsUnarmed3_1=Улучшение урона от кулаков
m.EffectsUnarmed4_0=Ученик рукопашного боя m.EffectsUnarmed4_0=Ученик рукопашного боя
m.EffectsUnarmed4_1=Увеличение урона от кулаков m.EffectsUnarmed4_1=Увеличение урона от кулаков
m.EffectsUnarmed5_0=Отражение стрел m.EffectsUnarmed5_0=Отражение стрел
m.EffectsUnarmed5_1=Стрелы отражаются m.EffectsUnarmed5_1=Стрелы отражаются
m.AbilLockUnarmed1=Блокируется до 250+ уровня(Ученик рукопашного боя) m.AbilLockUnarmed1=Блокируется до 250+ уровня(Ученик рукопашного боя)
m.AbilLockUnarmed2=Блокируется до 500+ уровня(Мастер Рукопашного боя) m.AbilLockUnarmed2=Блокируется до 500+ уровня(Мастер Рукопашного боя)
m.AbilBonusUnarmed1_0=Ученик рукопашного боя m.AbilBonusUnarmed1_0=Ученик рукопашного боя
m.AbilBonusUnarmed1_1=+2 бонус к урону m.AbilBonusUnarmed1_1=+2 бонус к урону
m.AbilBonusUnarmed2_0=Мастер Рукопашного боя m.AbilBonusUnarmed2_0=Мастер Рукопашного боя
m.AbilBonusUnarmed2_1=+4 бонус к урону m.AbilBonusUnarmed2_1=+4 бонус к урону
m.UnarmedArrowDeflectChance=[[RED]]Шанс отразить стрелы: [[YELLOW]]{0}% m.UnarmedArrowDeflectChance=[[RED]]Шанс отразить стрелы: [[YELLOW]]{0}%
m.UnarmedDisarmChance=[[RED]]Шанс обезоружить: [[YELLOW]]{0}% m.UnarmedDisarmChance=[[RED]]Шанс обезоружить: [[YELLOW]]{0}%
m.UnarmedBerserkLength=[[RED]]Длительность "Берсерка": [[YELLOW]]{0}s m.UnarmedBerserkLength=[[RED]]Длительность "Берсерка": [[YELLOW]]{0}s
m.SkillHerbalism=Травоведение m.SkillHerbalism=Травоведение
m.XPGainHerbalism=Выращивать растения m.XPGainHerbalism=Выращивать растения
m.EffectsHerbalism1_0=Озеленитель(способность) m.EffectsHerbalism1_0=Озеленитель(способность)
m.EffectsHerbalism1_1=Распростронение озеленений, 3-ой дроп m.EffectsHerbalism1_1=Распростронение озеленений, 3-ой дроп
m.EffectsHerbalism2_0="Зеленый фермер"(Пщеница) m.EffectsHerbalism2_0="Зеленый фермер"(Пщеница)
m.EffectsHerbalism2_1=Авто выращивание пщеницы после посадки m.EffectsHerbalism2_1=Авто выращивание пщеницы после посадки
m.EffectsHerbalism3_0="Зеленый фермер"(Мох) m.EffectsHerbalism3_0="Зеленый фермер"(Мох)
m.EffectsHerbalism3_1=Камень -> Замшелый камень + семена m.EffectsHerbalism3_1=Камень -> Замшелый камень + семена
m.EffectsHerbalism4_0=Улучшение еды m.EffectsHerbalism4_0=Улучшение еды
m.EffectsHerbalism4_1=Улучшает количество здоровья от хлеба и грибного супа m.EffectsHerbalism4_1=Улучшает количество здоровья от хлеба и грибного супа
m.EffectsHerbalism5_0=Дройной дроп(Все растения) m.EffectsHerbalism5_0=Дройной дроп(Все растения)
m.EffectsHerbalism5_1=Двойной дроп становится нормальным m.EffectsHerbalism5_1=Двойной дроп становится нормальным
m.HerbalismGreenTerraLength=[[RED]]Продолжительность "Озеленителя": [[YELLOW]]{0}s m.HerbalismGreenTerraLength=[[RED]]Продолжительность "Озеленителя": [[YELLOW]]{0}s
m.HerbalismGreenThumbChance=[[RED]]Шанс "Зеленого фермера": [[YELLOW]]{0}% m.HerbalismGreenThumbChance=[[RED]]Шанс "Зеленого фермера": [[YELLOW]]{0}%
m.HerbalismGreenThumbStage=[[RED]]Уровень "Зеленого фермера": [[YELLOW]] Пщеница растет по-уровнево {0} m.HerbalismGreenThumbStage=[[RED]]Уровень "Зеленого фермера": [[YELLOW]] Пщеница растет по-уровнево {0}
m.HerbalismDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}% m.HerbalismDoubleDropChance=[[RED]]Шанс двойного дропа: [[YELLOW]]{0}%
m.HerbalismFoodPlus=[[RED]]Еда+ (Rank{0}): [[YELLOW]]Бонус {0} лечения m.HerbalismFoodPlus=[[RED]]Еда+ (Rank{0}): [[YELLOW]]Бонус {0} лечения
m.SkillExcavation=Раскопка m.SkillExcavation=Раскопка
m.XPGainExcavation=Раскапывать и искать сокровища m.XPGainExcavation=Раскапывать и искать сокровища
m.EffectsExcavation1_0=Мега дрель(способность) m.EffectsExcavation1_0=Мега дрель(способность)
m.EffectsExcavation1_1=3-ой дроп, 3-ой опыт, Увеличение скорости m.EffectsExcavation1_1=3-ой дроп, 3-ой опыт, Увеличение скорости
m.EffectsExcavation2_0=Охотник за сокровищами m.EffectsExcavation2_0=Охотник за сокровищами
m.EffectsExcavation2_1=Способность копать сокровища m.EffectsExcavation2_1=Способность копать сокровища
m.ExcavationGreenTerraLength=[[RED]]Продолжительность "Мега дрели": [[YELLOW]]{0}s m.ExcavationGreenTerraLength=[[RED]]Продолжительность "Мега дрели": [[YELLOW]]{0}s
mcBlockListener.PlacedAnvil=[[DARK_RED]]Вы разместили наковальни и теперь можете чинить вещи. mcBlockListener.PlacedAnvil=[[DARK_RED]]Вы разместили наковальни и теперь можете чинить вещи.
mcEntityListener.WolfComesBack=[[DARK_GRAY]]Ваш волк хочет вернуться к вам mcEntityListener.WolfComesBack=[[DARK_GRAY]]Ваш волк хочет вернуться к вам
mcPlayerListener.AbilitiesOff=Использование способностей выключено mcPlayerListener.AbilitiesOff=Использование способностей выключено
mcPlayerListener.AbilitiesOn=Использование способностей включено mcPlayerListener.AbilitiesOn=Использование способностей включено
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**Способности восстановлены\!** mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**Способности восстановлены\!**
mcPlayerListener.AcrobaticsSkill=Акробатика: mcPlayerListener.AcrobaticsSkill=Акробатика:
mcPlayerListener.ArcherySkill=Стрельба из лука: mcPlayerListener.ArcherySkill=Стрельба из лука:
mcPlayerListener.AxesSkill=Топоры: mcPlayerListener.AxesSkill=Топоры:
mcPlayerListener.ExcavationSkill=Раскопка: mcPlayerListener.ExcavationSkill=Раскопка:
mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO режим бога выключен mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO режим бога выключен
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO режим бога включён mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO режим бога включён
mcPlayerListener.GreenThumb=[[GREEN]]**"Зеленый фермер"** mcPlayerListener.GreenThumb=[[GREEN]]**"Зеленый фермер"**
mcPlayerListener.GreenThumbFail=[[RED]]**"Зеленый фермер" неудался** mcPlayerListener.GreenThumbFail=[[RED]]**"Зеленый фермер" неудался**
mcPlayerListener.HerbalismSkill=Травоведение: mcPlayerListener.HerbalismSkill=Травоведение:
mcPlayerListener.MiningSkill=Шахтёрство: mcPlayerListener.MiningSkill=Шахтёрство:
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Ваша кровать убрана. mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Ваша кровать убрана.
mcPlayerListener.MyspawnNotExist=[[RED]]Сделайте вашу точку появления возле кровати, поспав на кровати. mcPlayerListener.MyspawnNotExist=[[RED]]Сделайте вашу точку появления возле кровати, поспав на кровати.
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Моя точка появления сохранена в этой локации. mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Моя точка появления сохранена в этой локации.
mcPlayerListener.MyspawnTimeNotice=Вы должны подождать {0}m {1}s чтобы использовать появление около кровати mcPlayerListener.MyspawnTimeNotice=Вы должны подождать {0}m {1}s чтобы использовать появление около кровати
mcPlayerListener.NoPermission=Недостаточные права. mcPlayerListener.NoPermission=Недостаточные права.
mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Если у вас нет доступа к умению, то оно здесь не отобразится. mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Если у вас нет доступа к умению, то оно здесь не отобразится.
mcPlayerListener.NotInParty=[[RED]]Вы не в группе! mcPlayerListener.NotInParty=[[RED]]Вы не в группе!
mcPlayerListener.InviteSuccess=[[GREEN]]Приглашение успешно послано. mcPlayerListener.InviteSuccess=[[GREEN]]Приглашение успешно послано.
mcPlayerListener.ReceivedInvite1=[[RED]]ТРЕВОГА: [[GREEN]]Вы получили приглашение на вступление в группу {0} от {1} mcPlayerListener.ReceivedInvite1=[[RED]]ТРЕВОГА: [[GREEN]]Вы получили приглашение на вступление в группу {0} от {1}
mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] чтобы одобрить вступление mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] чтобы одобрить вступление
mcPlayerListener.InviteAccepted=[[GREEN]]Приглашение одобрено. Вы вступили в группу {0} mcPlayerListener.InviteAccepted=[[GREEN]]Приглашение одобрено. Вы вступили в группу {0}
mcPlayerListener.NoInvites=[[RED]]У вас нет приглашений в группу сейчас mcPlayerListener.NoInvites=[[RED]]У вас нет приглашений в группу сейчас
mcPlayerListener.YouAreInParty=[[GREEN]]Вы уже в группе {0} mcPlayerListener.YouAreInParty=[[GREEN]]Вы уже в группе {0}
mcPlayerListener.PartyMembers=[[GREEN]]Члены группы mcPlayerListener.PartyMembers=[[GREEN]]Члены группы
mcPlayerListener.LeftParty=[[RED]]Вы вышли из группы mcPlayerListener.LeftParty=[[RED]]Вы вышли из группы
mcPlayerListener.JoinedParty=Присоединные группы: {0} mcPlayerListener.JoinedParty=Присоединные группы: {0}
mcPlayerListener.PartyChatOn=Только чат группы [[GREEN]]Включено mcPlayerListener.PartyChatOn=Только чат группы [[GREEN]]Включено
mcPlayerListener.PartyChatOff=Только чат группы [[RED]]Выключено mcPlayerListener.PartyChatOff=Только чат группы [[RED]]Выключено
mcPlayerListener.AdminChatOn=Только админ чат [[GREEN]]Включено mcPlayerListener.AdminChatOn=Только админ чат [[GREEN]]Включено
mcPlayerListener.AdminChatOff=Только админ чат [[RED]]Выключено mcPlayerListener.AdminChatOff=Только админ чат [[RED]]Выключено
mcPlayerListener.MOTD=[[BLUE]]На этом сервере установлен плагин McMMO {0} type [[YELLOW]]/{1}[[BLUE]] для помощи. mcPlayerListener.MOTD=[[BLUE]]На этом сервере установлен плагин McMMO {0} type [[YELLOW]]/{1}[[BLUE]] для помощи.
mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Википедия mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Википедия
mcPlayerListener.PowerLevel=[[DARK_RED]]Уровень умений: mcPlayerListener.PowerLevel=[[DARK_RED]]Уровень умений:
mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Уровень умений [[YELLOW]]Доска Лидеров-- mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Уровень умений [[YELLOW]]Доска Лидеров--
mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Доска Лидеров-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Доска Лидеров--
mcPlayerListener.RepairSkill=Починка: mcPlayerListener.RepairSkill=Починка:
mcPlayerListener.SwordsSkill=Мечи: mcPlayerListener.SwordsSkill=Мечи:
mcPlayerListener.TamingSkill=Приручение волков: mcPlayerListener.TamingSkill=Приручение волков:
mcPlayerListener.UnarmedSkill=Рукопашный бой: mcPlayerListener.UnarmedSkill=Рукопашный бой:
mcPlayerListener.WoodcuttingSkill=Деревообработка: mcPlayerListener.WoodcuttingSkill=Деревообработка:
mcPlayerListener.YourStats=[[GREEN]][mcMMO] Характеристики mcPlayerListener.YourStats=[[GREEN]][mcMMO] Характеристики
Party.InformedOnJoin={0} [[GREEN]] присоединился к группе Party.InformedOnJoin={0} [[GREEN]] присоединился к группе
Party.InformedOnQuit={0} [[GREEN]] ушёл из группы Party.InformedOnQuit={0} [[GREEN]] ушёл из группы
Skills.YourGreenTerra=[[GREEN]]Ваша способность[[YELLOW]]"Озеленение" [[GREEN]]восстановлена! Skills.YourGreenTerra=[[GREEN]]Ваша способность[[YELLOW]]"Озеленение" [[GREEN]]восстановлена!
Skills.YourTreeFeller=[[GREEN]]Ваша способность [[YELLOW]]"Любитель деревьев" [[GREEN]]восстановлена! Skills.YourTreeFeller=[[GREEN]]Ваша способность [[YELLOW]]"Любитель деревьев" [[GREEN]]восстановлена!
Skills.YourSuperBreaker=[[GREEN]]Ваша способность [[YELLOW]]"Супер разрушитель" [[GREEN]]восстановлена! Skills.YourSuperBreaker=[[GREEN]]Ваша способность [[YELLOW]]"Супер разрушитель" [[GREEN]]восстановлена!
Skills.YourSerratedStrikes=[[GREEN]]Ваша способность [[YELLOW]]"Зазубренные мечи" [[GREEN]]восстановлена! Skills.YourSerratedStrikes=[[GREEN]]Ваша способность [[YELLOW]]"Зазубренные мечи" [[GREEN]]восстановлена!
Skills.YourBerserk=[[GREEN]]Ваша способность [[YELLOW]]"Берсерк" [[GREEN]]восстановлена! Skills.YourBerserk=[[GREEN]]Ваша способность [[YELLOW]]"Берсерк" [[GREEN]]восстановлена!
Skills.YourSkullSplitter=[[GREEN]]Ваша способность [[YELLOW]]"Разрушитель черепов" [[GREEN]]восстановлена! Skills.YourSkullSplitter=[[GREEN]]Ваша способность [[YELLOW]]"Разрушитель черепов" [[GREEN]]восстановлена!
Skills.YourGigaDrillBreaker=[[GREEN]]Ваша способность [[YELLOW]]"Мега дрель" [[GREEN]]восстановлена! Skills.YourGigaDrillBreaker=[[GREEN]]Ваша способность [[YELLOW]]"Мега дрель" [[GREEN]]восстановлена!
Skills.TooTired=[[RED]]Вы слишком устали, чтобы использовать способность ещё раз. Skills.TooTired=[[RED]]Вы слишком устали, чтобы использовать способность ещё раз.
Skills.ReadyHoe=[[GREEN]]**Приготовьте вашу Мотыгу** Skills.ReadyHoe=[[GREEN]]**Приготовьте вашу Мотыгу**
Skills.LowerHoe=[[GRAY]]**Опустите вашу Мотыгу** Skills.LowerHoe=[[GRAY]]**Опустите вашу Мотыгу**
Skills.ReadyAxe=[[GREEN]]**Приготовьте ваш Топор** Skills.ReadyAxe=[[GREEN]]**Приготовьте ваш Топор**
Skills.LowerAxe=[[GRAY]]**Опустите ваш Топор** Skills.LowerAxe=[[GRAY]]**Опустите ваш Топор**
Skills.ReadyFists=[[GREEN]]**Приготовьте ваши Кулаки** Skills.ReadyFists=[[GREEN]]**Приготовьте ваши Кулаки**
Skills.LowerFists=[[GRAY]]**Опустите ваши Кулаки** Skills.LowerFists=[[GRAY]]**Опустите ваши Кулаки**
Skills.ReadyPickAxe=[[GREEN]]**Приготовьте вашу Кирку** Skills.ReadyPickAxe=[[GREEN]]**Приготовьте вашу Кирку**
Skills.LowerPickAxe=[[GRAY]]**Опустите вашу Кирку** Skills.LowerPickAxe=[[GRAY]]**Опустите вашу Кирку**
Skills.ReadyShovel=[[GREEN]]**Приготовьте вашу Лопату** Skills.ReadyShovel=[[GREEN]]**Приготовьте вашу Лопату**
Skills.LowerShovel=[[GRAY]]**Опустите вашу Лопату** Skills.LowerShovel=[[GRAY]]**Опустите вашу Лопату**
Skills.ReadySword=[[GREEN]]**Приготовьте ваш Меч** Skills.ReadySword=[[GREEN]]**Приготовьте ваш Меч**
Skills.LowerSword=[[GRAY]]**Опустите ваш Меч** Skills.LowerSword=[[GRAY]]**Опустите ваш Меч**
Skills.BerserkOn=[[GREEN]]**Способность "Берсерк" активирована** Skills.BerserkOn=[[GREEN]]**Способность "Берсерк" активирована**
Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Берсерк"! Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Берсерк"!
Skills.GreenTerraOn=[[GREEN]]**Способность "Озеленение" активирована** Skills.GreenTerraOn=[[GREEN]]**Способность "Озеленение" активирована**
Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Озеленение"! Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Озеленение"!
Skills.TreeFellerOn=[[GREEN]]**Способность "Любитель Деревьев" активирована** Skills.TreeFellerOn=[[GREEN]]**Способность "Любитель Деревьев" активирована**
Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Любитель Деревьев"! Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Любитель Деревьев"!
Skills.SuperBreakerOn=[[GREEN]]**Способность "Супер Разрушитель" активирована** Skills.SuperBreakerOn=[[GREEN]]**Способность "Супер Разрушитель" активирована**
Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Супер Разрушитель"! Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Супер Разрушитель"!
Skills.SerratedStrikesOn=[[GREEN]]**Способность "Зазубренные мечи" активирована** Skills.SerratedStrikesOn=[[GREEN]]**Способность "Зазубренные мечи" активирована**
Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Зазубренные мечи"! Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Зазубренные мечи"!
Skills.SkullSplitterOn=[[GREEN]]**Способность "Разрешитель черепов" активирована** Skills.SkullSplitterOn=[[GREEN]]**Способность "Разрешитель черепов" активирована**
Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Разрушитель черепов"! Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Разрушитель черепов"!
Skills.GigaDrillBreakerOn=[[GREEN]]**Способность "Мега дрель" активирована** Skills.GigaDrillBreakerOn=[[GREEN]]**Способность "Мега дрель" активирована**
Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Мега дрель"! Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] использовал способность [[RED]]"Мега дрель"!
Skills.GreenTerraOff=[[RED]]**Способность "Озеленение" деактивирована** Skills.GreenTerraOff=[[RED]]**Способность "Озеленение" деактивирована**
Skills.TreeFellerOff=[[RED]]**Способность "Любитель Деревьев" деактивирована** Skills.TreeFellerOff=[[RED]]**Способность "Любитель Деревьев" деактивирована**
Skills.SuperBreakerOff=[[RED]]**Способность "Супер Разрушитель" деактивирована** Skills.SuperBreakerOff=[[RED]]**Способность "Супер Разрушитель" деактивирована**
Skills.SerratedStrikesOff=[[RED]]**Способность "Зазубренные мечи" деактивирована** Skills.SerratedStrikesOff=[[RED]]**Способность "Зазубренные мечи" деактивирована**
Skills.BerserkOff=[[RED]]**Способность "Берсерк" деактивирована** Skills.BerserkOff=[[RED]]**Способность "Берсерк" деактивирована**
Skills.SkullSplitterOff=[[RED]]**Способность "Разрешитель черепов" деактивирована** Skills.SkullSplitterOff=[[RED]]**Способность "Разрешитель черепов" деактивирована**
Skills.GigaDrillBreakerOff=[[RED]]**Способность "Мега дрель" деактивирована** Skills.GigaDrillBreakerOff=[[RED]]**Способность "Мега дрель" деактивирована**
Skills.TamingUp=[[YELLOW]]Умение "Приручение волков" повышено на {0}. Всего ({1}) Skills.TamingUp=[[YELLOW]]Умение "Приручение волков" повышено на {0}. Всего ({1})
Skills.AcrobaticsUp=[[YELLOW]]Умение "Акробатика" повышено на {0}. Всего ({1}) Skills.AcrobaticsUp=[[YELLOW]]Умение "Акробатика" повышено на {0}. Всего ({1})
Skills.ArcheryUp=[[YELLOW]]Умение "Стрельба из лука" повышено на {0}. Всего ({1}) Skills.ArcheryUp=[[YELLOW]]Умение "Стрельба из лука" повышено на {0}. Всего ({1})
Skills.SwordsUp=[[YELLOW]]Умение "Мечи" повышено на {0}. Всего ({1}) Skills.SwordsUp=[[YELLOW]]Умение "Мечи" повышено на {0}. Всего ({1})
Skills.AxesUp=[[YELLOW]]Умение "Топоры" повышено на {0}. Всего ({1}) Skills.AxesUp=[[YELLOW]]Умение "Топоры" повышено на {0}. Всего ({1})
Skills.UnarmedUp=[[YELLOW]]Умение "Рукопашный бой" повышено на {0}. Всего ({1}) Skills.UnarmedUp=[[YELLOW]]Умение "Рукопашный бой" повышено на {0}. Всего ({1})
Skills.HerbalismUp=[[YELLOW]]Умение "Травоведение" повышено на {0}. Всего ({1}) Skills.HerbalismUp=[[YELLOW]]Умение "Травоведение" повышено на {0}. Всего ({1})
Skills.MiningUp=[[YELLOW]]Умение "Шахтёрство" повышено на {0}. Всего ({1}) Skills.MiningUp=[[YELLOW]]Умение "Шахтёрство" повышено на {0}. Всего ({1})
Skills.WoodcuttingUp=[[YELLOW]]Умение "Деревообработка" повышено на {0}. Всего ({1}) Skills.WoodcuttingUp=[[YELLOW]]Умение "Деревообработка" повышено на {0}. Всего ({1})
Skills.RepairUp=[[YELLOW]]Умение "Починка" повышено на {0}. Всего ({1}) Skills.RepairUp=[[YELLOW]]Умение "Починка" повышено на {0}. Всего ({1})
Skills.ExcavationUp=[[YELLOW]]Умение "Раскопка" повышено на {0}. Всего ({1}) Skills.ExcavationUp=[[YELLOW]]Умение "Раскопка" повышено на {0}. Всего ({1})
Skills.FeltEasy=[[GRAY]]Это было легко. Skills.FeltEasy=[[GRAY]]Это было легко.
Skills.StackedItems=[[DARK_RED]]Вы не можете чинить стакующиеся предметы Skills.StackedItems=[[DARK_RED]]Вы не можете чинить стакующиеся предметы
Skills.NeedMore=[[DARK_RED]]Нужно больше материала Skills.NeedMore=[[DARK_RED]]Нужно больше материала
Skills.AdeptDiamond=[[DARK_RED]]Вы не обучены чинить алмазные инструменты и броню Skills.AdeptDiamond=[[DARK_RED]]Вы не обучены чинить алмазные инструменты и броню
Skills.FullDurability=[[GRAY]]Вещь не нуждается в починке. Skills.FullDurability=[[GRAY]]Вещь не нуждается в починке.
Skills.Disarmed=[[DARK_RED]]Вы обезоружены! Skills.Disarmed=[[DARK_RED]]Вы обезоружены!
mcPlayerListener.SorcerySkill=Колдовство: mcPlayerListener.SorcerySkill=Колдовство:
m.SkillSorcery=Колдовство m.SkillSorcery=Колдовство
Sorcery.HasCast=[[GREEN]]**Использую "Колдовство"**[[GOLD]] Sorcery.HasCast=[[GREEN]]**Использую "Колдовство"**[[GOLD]]
Sorcery.Current_Mana=[[DARK_AQUA]] Маны Sorcery.Current_Mana=[[DARK_AQUA]] Маны
Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]]) Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
Sorcery.Cost=[[RED]][COST] {0} Маны Sorcery.Cost=[[RED]][COST] {0} Маны
Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Не хватает маны [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]]) Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Не хватает маны [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
Sorcery.Water.Thunder=Гром Sorcery.Water.Thunder=Гром
Sorcery.Curative.Self=Вылечить себя Sorcery.Curative.Self=Вылечить себя
Sorcery.Curative.Other=Вылечить других Sorcery.Curative.Other=Вылечить других
m.LVL=[[DARK_GRAY]]Уровень: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) m.LVL=[[DARK_GRAY]]Уровень: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
Combat.BeastLore=[[GREEN]]**Умение "Удар волка" активировано** Combat.BeastLore=[[GREEN]]**Умение "Удар волка" активировано**
Combat.BeastLoreOwner=[[DARK_AQUA]]Владелец ([[RED]]{0}[[DARK_AQUA]]) Combat.BeastLoreOwner=[[DARK_AQUA]]Владелец ([[RED]]{0}[[DARK_AQUA]])
Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Здоровья ([[GREEN]]{0}[[DARK_AQUA]]/20) Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Здоровья ([[GREEN]]{0}[[DARK_AQUA]]/20)
Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Здоровья ([[GREEN]]{0}[[DARK_AQUA]]/8) Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Здоровья ([[GREEN]]{0}[[DARK_AQUA]]/8)
Party.Locked=[[RED]]Группа запаролена, только лидер группы может приглашать. Party.Locked=[[RED]]Группа запаролена, только лидер группы может приглашать.
Party.IsntLocked=[[GRAY]]Группа разблокирована Party.IsntLocked=[[GRAY]]Группа разблокирована
Party.Unlocked=[[GRAY]]Группа разблокирована Party.Unlocked=[[GRAY]]Группа разблокирована
Party.Help1=[[RED]]Использование [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] или [[WHITE]]'q' [[YELLOW]]для выхода Party.Help1=[[RED]]Использование [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] или [[WHITE]]'q' [[YELLOW]]для выхода
Party.Help2=[[RED]]Чтобы присоединится к запароленной группе введите [[YELLOW]]/{0} [[WHITE]]<имя> <пароль> Party.Help2=[[RED]]Чтобы присоединится к запароленной группе введите [[YELLOW]]/{0} [[WHITE]]<имя> <пароль>
Party.Help3=[[RED]]Введите /{0} ? для большей информации Party.Help3=[[RED]]Введите /{0} ? для большей информации
Party.Help4=[[RED]]Используйте [[YELLOW]]/{0} [[WHITE]]<имя> [[YELLOW]]чтобы присоединится к группе или [[WHITE]]'q' [[YELLOW]]для выхода Party.Help4=[[RED]]Используйте [[YELLOW]]/{0} [[WHITE]]<имя> [[YELLOW]]чтобы присоединится к группе или [[WHITE]]'q' [[YELLOW]]для выхода
Party.Help5=[[RED]]Чтобы заблокировать группу введите [[YELLOW]]/{0} [[WHITE]]lock Party.Help5=[[RED]]Чтобы заблокировать группу введите [[YELLOW]]/{0} [[WHITE]]lock
Party.Help6=[[RED]]Чтобы разблокировать группу введите [[YELLOW]]/{0} [[WHITE]]unlock Party.Help6=[[RED]]Чтобы разблокировать группу введите [[YELLOW]]/{0} [[WHITE]]unlock
Party.Help7=[[RED]]Чтобы запаролить группу введите [[YELLOW]]/{0} [[WHITE]]password <пароль> Party.Help7=[[RED]]Чтобы запаролить группу введите [[YELLOW]]/{0} [[WHITE]]password <пароль>
Party.Help8=[[RED]]Чтобы выкинуть игрока из группы введите [[YELLOW]]/{0} [[WHITE]]kick <игрок> Party.Help8=[[RED]]Чтобы выкинуть игрока из группы введите [[YELLOW]]/{0} [[WHITE]]kick <игрок>
Party.Help9=[[RED]]Чтобы отдать лидерство группы введите [[YELLOW]]/{0} [[WHITE]]owner <игрок> Party.Help9=[[RED]]Чтобы отдать лидерство группы введите [[YELLOW]]/{0} [[WHITE]]owner <игрок>
Party.NotOwner=[[DARK_RED]]Вы теперь не лидер группы Party.NotOwner=[[DARK_RED]]Вы теперь не лидер группы
Party.InvalidName=[[DARK_RED]]Некорректное имя группы Party.InvalidName=[[DARK_RED]]Некорректное имя группы
Party.PasswordSet=[[GREEN]]Пароль группы назначен {0} Party.PasswordSet=[[GREEN]]Пароль группы назначен {0}
Party.CouldNotKick=[[DARK_RED]]Вы не можете убрать игрока из группы {0} Party.CouldNotKick=[[DARK_RED]]Вы не можете убрать игрока из группы {0}
Party.NotInYourParty=[[DARK_RED]]{0} не в группе Party.NotInYourParty=[[DARK_RED]]{0} не в группе
Party.CouldNotSetOwner=[[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]]легко просто копайте руды и камни! 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.SkillAlchemy=ALCHEMY
m.SkillEnchanting=ENCHANTING m.SkillEnchanting=ENCHANTING
m.SkillFishing=FISHING m.SkillFishing=FISHING
mcPlayerListener.AlchemySkill=Alchemy: mcPlayerListener.AlchemySkill=Alchemy:
mcPlayerListener.EnchantingSkill=Enchanting: mcPlayerListener.EnchantingSkill=Enchanting:
mcPlayerListener.FishingSkill=Fishing: mcPlayerListener.FishingSkill=Fishing:
Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1}) Skills.AlchemyUp=[[YELLOW]]Alchemy skill increased by {0}. Total ({1})
Skills.EnchantingUp=[[YELLOW]]Enchanting 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}) Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1})
Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. 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.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item.
Repair.Downgraded=[[RED]]Arcane power has decreased for this item. Repair.Downgraded=[[RED]]Arcane power has decreased for this item.
Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item.
m.EffectsRepair5_0=Arcane Forging m.EffectsRepair5_0=Arcane Forging
m.EffectsRepair5_1=Repair magic items m.EffectsRepair5_1=Repair magic items
m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4
m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}%
m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[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.ArcaneForgingMilestones=[[GOLD]][TIP] AF Rank Ups: [[GRAY]]Rank 1 = 100+, Rank 2 = 250+,
m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+ m.ArcaneForgingMilestones2=[[GRAY]] Rank 3 = 500+, Rank 4 = 750+
Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch...
Fishing.ItemFound=[[GRAY]]Treasure found! Fishing.ItemFound=[[GRAY]]Treasure found!
m.SkillFishing=FISHING m.SkillFishing=FISHING
m.XPGainFishing=Fishing (Go figure!) m.XPGainFishing=Fishing (Go figure!)
m.EffectsFishing1_0=Treasure Hunter (Passive) m.EffectsFishing1_0=Treasure Hunter (Passive)
m.EffectsFishing1_1=Fish up misc objects m.EffectsFishing1_1=Fish up misc objects
m.EffectsFishing2_0=Magic Hunter m.EffectsFishing2_0=Magic Hunter
m.EffectsFishing2_1=Find Enchanted Items m.EffectsFishing2_1=Find Enchanted Items
m.EffectsFishing3_0=Shake (vs. Entities) m.EffectsFishing3_0=Shake (vs. Entities)
m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole
m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5
m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** 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.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_;
m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE)
m.TamingSummon=[[GREEN]]Summoning complete m.TamingSummon=[[GREEN]]Summoning complete
m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more. m.TamingSummonFailed=[[RED]]You have too many wolves nearby to summon any more.
m.EffectsTaming7_0=Call of the Wild m.EffectsTaming7_0=Call of the Wild
m.EffectsTaming7_1=Summon a wolf to your side 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 m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand

View File

@ -1,91 +1,91 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.locale; package com.gmail.nossr50.locale;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.Locale; import java.util.Locale;
import java.util.MissingResourceException; import java.util.MissingResourceException;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
public class mcLocale public class mcLocale
{ {
private static final String BUNDLE_NAME = "com.gmail.nossr50.locale.locale"; //$NON-NLS-1$ private static final String BUNDLE_NAME = "com.gmail.nossr50.locale.locale"; //$NON-NLS-1$
private static ResourceBundle RESOURCE_BUNDLE = null; private static ResourceBundle RESOURCE_BUNDLE = null;
public static String getString(String key) public static String getString(String key)
{ {
return getString(key, null); return getString(key, null);
} }
public static String getString(String key, Object[] messageArguments) public static String getString(String key, Object[] messageArguments)
{ {
try { try {
if (RESOURCE_BUNDLE == null) if (RESOURCE_BUNDLE == null)
{ {
String myLocale = LoadProperties.locale.toLowerCase(); String myLocale = LoadProperties.locale.toLowerCase();
try { try {
//attempt to get the locale denoted //attempt to get the locale denoted
RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, new Locale(myLocale)); RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, new Locale(myLocale));
} catch (MissingResourceException e) { } catch (MissingResourceException e) {
//System.out.println("Failed to load locale specified by mcmmo.properties '"+myLocale+"', defaulting to en_us"); //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")); RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, new Locale("en_us"));
} }
} }
String output = RESOURCE_BUNDLE.getString(key); String output = RESOURCE_BUNDLE.getString(key);
if (messageArguments != null) if (messageArguments != null)
{ {
MessageFormat formatter = new MessageFormat(""); MessageFormat formatter = new MessageFormat("");
formatter.applyPattern(output); formatter.applyPattern(output);
output = formatter.format(messageArguments); output = formatter.format(messageArguments);
} }
output = addColors(output); output = addColors(output);
return output; return output;
} catch (MissingResourceException e) { } catch (MissingResourceException e) {
return '!' + key + '!'; return '!' + key + '!';
} }
} }
private static String addColors(String input) { private static String addColors(String input) {
input = input.replaceAll("\\Q[[BLACK]]\\E", ChatColor.BLACK.toString()); 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_BLUE]]\\E", ChatColor.DARK_BLUE.toString());
input = input.replaceAll("\\Q[[DARK_GREEN]]\\E", ChatColor.DARK_GREEN.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_AQUA]]\\E", ChatColor.DARK_AQUA.toString());
input = input.replaceAll("\\Q[[DARK_RED]]\\E", ChatColor.DARK_RED.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[[DARK_PURPLE]]\\E", ChatColor.DARK_PURPLE.toString());
input = input.replaceAll("\\Q[[GOLD]]\\E", ChatColor.GOLD.toString()); input = input.replaceAll("\\Q[[GOLD]]\\E", ChatColor.GOLD.toString());
input = input.replaceAll("\\Q[[GRAY]]\\E", ChatColor.GRAY.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[[DARK_GRAY]]\\E", ChatColor.DARK_GRAY.toString());
input = input.replaceAll("\\Q[[BLUE]]\\E", ChatColor.BLUE.toString()); input = input.replaceAll("\\Q[[BLUE]]\\E", ChatColor.BLUE.toString());
input = input.replaceAll("\\Q[[GREEN]]\\E", ChatColor.GREEN.toString()); input = input.replaceAll("\\Q[[GREEN]]\\E", ChatColor.GREEN.toString());
input = input.replaceAll("\\Q[[AQUA]]\\E", ChatColor.AQUA.toString()); input = input.replaceAll("\\Q[[AQUA]]\\E", ChatColor.AQUA.toString());
input = input.replaceAll("\\Q[[RED]]\\E", ChatColor.RED.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[[LIGHT_PURPLE]]\\E", ChatColor.LIGHT_PURPLE.toString());
input = input.replaceAll("\\Q[[YELLOW]]\\E", ChatColor.YELLOW.toString()); input = input.replaceAll("\\Q[[YELLOW]]\\E", ChatColor.YELLOW.toString());
input = input.replaceAll("\\Q[[WHITE]]\\E", ChatColor.WHITE.toString()); input = input.replaceAll("\\Q[[WHITE]]\\E", ChatColor.WHITE.toString());
return input; return input;
} }
} }

View File

@ -1,418 +1,418 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50; package com.gmail.nossr50;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.commands.skills.*; import com.gmail.nossr50.commands.skills.*;
import com.gmail.nossr50.commands.spout.*; import com.gmail.nossr50.commands.spout.*;
import com.gmail.nossr50.commands.mc.*; import com.gmail.nossr50.commands.mc.*;
import com.gmail.nossr50.commands.party.*; import com.gmail.nossr50.commands.party.*;
import com.gmail.nossr50.commands.general.*; import com.gmail.nossr50.commands.general.*;
import com.gmail.nossr50.config.*; import com.gmail.nossr50.config.*;
import com.gmail.nossr50.runnables.mcTimer; import com.gmail.nossr50.runnables.mcTimer;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
import com.gmail.nossr50.listeners.mcBlockListener; import com.gmail.nossr50.listeners.mcBlockListener;
import com.gmail.nossr50.listeners.mcEntityListener; import com.gmail.nossr50.listeners.mcEntityListener;
import com.gmail.nossr50.listeners.mcPlayerListener; import com.gmail.nossr50.listeners.mcPlayerListener;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
import com.gmail.nossr50.skills.*; import com.gmail.nossr50.skills.*;
import com.nijikokun.bukkit.Permissions.Permissions; import com.nijikokun.bukkit.Permissions.Permissions;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileReader; import java.io.FileReader;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.event.Event.Priority; import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.getspout.spoutapi.SpoutManager; import org.getspout.spoutapi.SpoutManager;
import org.getspout.spoutapi.player.FileManager; import org.getspout.spoutapi.player.FileManager;
public class mcMMO extends JavaPlugin public class mcMMO extends JavaPlugin
{ {
/* /*
* I never expected mcMMO to get so popular! * I never expected mcMMO to get so popular!
* Thanks for all the support for the mod * Thanks for all the support for the mod
* Thanks to the people who have worked on the code * Thanks to the people who have worked on the code
* Thanks to the donators who helped me out financially * Thanks to the donators who helped me out financially
* Thanks to the server admins who use my mod :) * Thanks to the server admins who use my mod :)
* *
* This mod is open source, and its going to stay that way >:3 * 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!) * Donate via paypal to nossr50@gmail.com (A million thanks to anyone that does!)
*/ */
public static String maindirectory = "plugins" + File.separator + "mcMMO"; public static String maindirectory = "plugins" + File.separator + "mcMMO";
File file = new File(maindirectory + File.separator + "config.yml"); File file = new File(maindirectory + File.separator + "config.yml");
static File versionFile = new File(maindirectory + File.separator + "VERSION"); static File versionFile = new File(maindirectory + File.separator + "VERSION");
public static final Logger log = Logger.getLogger("Minecraft"); public static final Logger log = Logger.getLogger("Minecraft");
private final mcPlayerListener playerListener = new mcPlayerListener(this); private final mcPlayerListener playerListener = new mcPlayerListener(this);
private final mcBlockListener blockListener = new mcBlockListener(this); private final mcBlockListener blockListener = new mcBlockListener(this);
private final mcEntityListener entityListener = new mcEntityListener(this); private final mcEntityListener entityListener = new mcEntityListener(this);
public static mcPermissions permissionHandler = new mcPermissions(); public static mcPermissions permissionHandler = new mcPermissions();
private Permissions permissions; private Permissions permissions;
private Runnable mcMMO_Timer = new mcTimer(this); //BLEED AND REGENERATION private Runnable mcMMO_Timer = new mcTimer(this); //BLEED AND REGENERATION
//private Timer mcMMO_SpellTimer = new Timer(true); //private Timer mcMMO_SpellTimer = new Timer(true);
//Alias - Command //Alias - Command
public HashMap<String, String> aliasMap = new HashMap<String, String>(); public HashMap<String, String> aliasMap = new HashMap<String, String>();
public static Database database = null; public static Database database = null;
public Misc misc = new Misc(this); public Misc misc = new Misc(this);
//Config file stuff //Config file stuff
LoadProperties config = new LoadProperties(); LoadProperties config = new LoadProperties();
//Jar stuff //Jar stuff
public static File mcmmo; public static File mcmmo;
public void onEnable() public void onEnable()
{ {
mcmmo = this.getFile(); mcmmo = this.getFile();
new File(maindirectory).mkdir(); new File(maindirectory).mkdir();
if(!versionFile.exists()) if(!versionFile.exists())
{ {
updateVersion(); updateVersion();
} else } else
{ {
String vnum = readVersion(); String vnum = readVersion();
//This will be changed to whatever version preceded when we actually need updater code. //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. //Version 1.0.48 is the first to implement this, no checking before that version can be done.
if(vnum.equalsIgnoreCase("1.0.48")) { if(vnum.equalsIgnoreCase("1.0.48")) {
updateFrom(1); updateFrom(1);
} }
//Just add in more else if blocks for versions that need updater code. Increment the updateFrom age int as we do so. //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 //Catch all for versions not matching and no specific code being needed
else if(!vnum.equalsIgnoreCase(this.getDescription().getVersion())) updateFrom(-1); else if(!vnum.equalsIgnoreCase(this.getDescription().getVersion())) updateFrom(-1);
} }
mcPermissions.initialize(getServer()); mcPermissions.initialize(getServer());
config.configCheck(); config.configCheck();
Party.getInstance().loadParties(); Party.getInstance().loadParties();
new Party(this); new Party(this);
if(!LoadProperties.useMySQL) if(!LoadProperties.useMySQL)
Users.getInstance().loadUsers(); //Load Users file Users.getInstance().loadUsers(); //Load Users file
/* /*
* REGISTER EVENTS * REGISTER EVENTS
*/ */
PluginManager pm = getServer().getPluginManager(); PluginManager pm = getServer().getPluginManager();
if(pm.getPlugin("Spout") != null) if(pm.getPlugin("Spout") != null)
LoadProperties.spoutEnabled = true; LoadProperties.spoutEnabled = true;
else else
LoadProperties.spoutEnabled = false; LoadProperties.spoutEnabled = false;
//Player Stuff //Player Stuff
pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal, this); 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_JOIN, playerListener, Priority.Normal, this);
pm.registerEvent(Event.Type.PLAYER_LOGIN, 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_CHAT, playerListener, Priority.Lowest, this);
pm.registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Priority.Monitor, 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_RESPAWN, playerListener, Priority.Normal, this);
pm.registerEvent(Event.Type.PLAYER_PICKUP_ITEM, 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_FISH, playerListener, Priority.Normal, this);
pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Lowest, this); pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Lowest, this);
//Block Stuff //Block Stuff
pm.registerEvent(Event.Type.BLOCK_DAMAGE, blockListener, Priority.Highest, this); 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_BREAK, blockListener, Priority.Monitor, this);
pm.registerEvent(Event.Type.BLOCK_FROMTO, blockListener, Priority.Normal, this); pm.registerEvent(Event.Type.BLOCK_FROMTO, blockListener, Priority.Normal, this);
pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Normal, this); pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Normal, this);
//Entity Stuff //Entity Stuff
pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this); pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this);
pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Monitor, this); pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Monitor, this);
pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this); pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this);
PluginDescriptionFile pdfFile = this.getDescription(); PluginDescriptionFile pdfFile = this.getDescription();
mcPermissions.initialize(getServer()); mcPermissions.initialize(getServer());
if(LoadProperties.useMySQL) if(LoadProperties.useMySQL)
{ {
database = new Database(this); database = new Database(this);
database.createStructure(); database.createStructure();
} else } else
Leaderboard.makeLeaderboards(); //Make the leaderboards Leaderboard.makeLeaderboards(); //Make the leaderboards
for(Player player : getServer().getOnlinePlayers()){Users.addUser(player);} //In case of reload add all users back into PlayerProfile 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!" ); System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" );
Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, mcMMO_Timer, 0, 20); Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, mcMMO_Timer, 0, 20);
registerCommands(); registerCommands();
//Spout Stuff //Spout Stuff
if(LoadProperties.spoutEnabled) if(LoadProperties.spoutEnabled)
{ {
SpoutStuff.setupSpoutConfigs(); SpoutStuff.setupSpoutConfigs();
SpoutStuff.registerCustomEvent(); SpoutStuff.registerCustomEvent();
SpoutStuff.extractFiles(); //Extract source materials SpoutStuff.extractFiles(); //Extract source materials
FileManager FM = SpoutManager.getFileManager(); FileManager FM = SpoutManager.getFileManager();
FM.addToPreLoginCache(this, SpoutStuff.getFiles()); FM.addToPreLoginCache(this, SpoutStuff.getFiles());
/* /*
Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this,
new Runnable() { new Runnable() {
@Override @Override
public void run() { public void run() {
mmoHelper.updateAll(); mmoHelper.updateAll();
} }
}, 20, 20); }, 20, 20);
*/ */
} }
} }
public PlayerProfile getPlayerProfile(Player player) public PlayerProfile getPlayerProfile(Player player)
{ {
return Users.getProfile(player); return Users.getProfile(player);
} }
public void checkXp(Player player, SkillType skillType) public void checkXp(Player player, SkillType skillType)
{ {
if(skillType == SkillType.ALL) if(skillType == SkillType.ALL)
Skills.XpCheckAll(player); Skills.XpCheckAll(player);
else else
Skills.XpCheckSkill(skillType, player); Skills.XpCheckSkill(skillType, player);
} }
public boolean inSameParty(Player playera, Player playerb) public boolean inSameParty(Player playera, Player playerb)
{ {
if(Users.getProfile(playera).inParty() && Users.getProfile(playerb).inParty()){ if(Users.getProfile(playera).inParty() && Users.getProfile(playerb).inParty()){
if(Users.getProfile(playera).getParty().equals(Users.getProfile(playerb).getParty())){ if(Users.getProfile(playera).getParty().equals(Users.getProfile(playerb).getParty())){
return true; return true;
} else { } else {
return false; return false;
} }
} else { } else {
return false; return false;
} }
} }
public ArrayList<String> getParties(){ public ArrayList<String> getParties(){
String location = "plugins/mcMMO/mcmmo.users"; String location = "plugins/mcMMO/mcmmo.users";
ArrayList<String> parties = new ArrayList<String>(); ArrayList<String> parties = new ArrayList<String>();
try { try {
//Open the users file //Open the users file
FileReader file = new FileReader(location); FileReader file = new FileReader(location);
BufferedReader in = new BufferedReader(file); BufferedReader in = new BufferedReader(file);
String line = ""; String line = "";
while((line = in.readLine()) != null) while((line = in.readLine()) != null)
{ {
String[] character = line.split(":"); String[] character = line.split(":");
String theparty = null; String theparty = null;
//Party //Party
if(character.length > 3) if(character.length > 3)
theparty = character[3]; theparty = character[3];
if(!parties.contains(theparty)) if(!parties.contains(theparty))
parties.add(theparty); parties.add(theparty);
} }
in.close(); in.close();
} catch (Exception e) { } catch (Exception e) {
log.log(Level.SEVERE, "Exception while reading " log.log(Level.SEVERE, "Exception while reading "
+ location + " (Are you sure you formatted it correctly?)", e); + location + " (Are you sure you formatted it correctly?)", e);
} }
return parties; return parties;
} }
public static String getPartyName(Player player){ public static String getPartyName(Player player){
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
return PP.getParty(); return PP.getParty();
} }
public static boolean inParty(Player player){ public static boolean inParty(Player player){
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
return PP.inParty(); return PP.inParty();
} }
public Permissions getPermissions() { public Permissions getPermissions() {
return permissions; return permissions;
} }
public void onDisable() { public void onDisable() {
Bukkit.getServer().getScheduler().cancelTasks(this); Bukkit.getServer().getScheduler().cancelTasks(this);
System.out.println("mcMMO was disabled."); System.out.println("mcMMO was disabled.");
} }
private void registerCommands() { private void registerCommands() {
//Register aliases with the aliasmap (used in the playercommandpreprocessevent to ugly alias them to actual commands) //Register aliases with the aliasmap (used in the playercommandpreprocessevent to ugly alias them to actual commands)
//Skills commands //Skills commands
aliasMap.put(mcLocale.getString("m.SkillAcrobatics").toLowerCase(), "acrobatics"); aliasMap.put(mcLocale.getString("m.SkillAcrobatics").toLowerCase(), "acrobatics");
aliasMap.put(mcLocale.getString("m.SkillArchery").toLowerCase(), "archery"); aliasMap.put(mcLocale.getString("m.SkillArchery").toLowerCase(), "archery");
aliasMap.put(mcLocale.getString("m.SkillAxes").toLowerCase(), "axes"); aliasMap.put(mcLocale.getString("m.SkillAxes").toLowerCase(), "axes");
aliasMap.put(mcLocale.getString("m.SkillExcavation").toLowerCase(), "excavation"); aliasMap.put(mcLocale.getString("m.SkillExcavation").toLowerCase(), "excavation");
aliasMap.put(mcLocale.getString("m.SkillFishing").toLowerCase(), "fishing"); aliasMap.put(mcLocale.getString("m.SkillFishing").toLowerCase(), "fishing");
aliasMap.put(mcLocale.getString("m.SkillHerbalism").toLowerCase(), "herbalism"); aliasMap.put(mcLocale.getString("m.SkillHerbalism").toLowerCase(), "herbalism");
aliasMap.put(mcLocale.getString("m.SkillMining").toLowerCase(), "mining"); aliasMap.put(mcLocale.getString("m.SkillMining").toLowerCase(), "mining");
aliasMap.put(mcLocale.getString("m.SkillRepair").toLowerCase(), "repair"); aliasMap.put(mcLocale.getString("m.SkillRepair").toLowerCase(), "repair");
aliasMap.put(mcLocale.getString("m.SkillSwords").toLowerCase(), "swords"); aliasMap.put(mcLocale.getString("m.SkillSwords").toLowerCase(), "swords");
aliasMap.put(mcLocale.getString("m.SkillTaming").toLowerCase(), "taming"); aliasMap.put(mcLocale.getString("m.SkillTaming").toLowerCase(), "taming");
aliasMap.put(mcLocale.getString("m.SkillUnarmed").toLowerCase(), "unarmed"); aliasMap.put(mcLocale.getString("m.SkillUnarmed").toLowerCase(), "unarmed");
aliasMap.put(mcLocale.getString("m.SkillWoodCutting").toLowerCase(), "woodcutting"); aliasMap.put(mcLocale.getString("m.SkillWoodCutting").toLowerCase(), "woodcutting");
//Mc* commands //Mc* commands
aliasMap.put(LoadProperties.mcability, "mcability"); aliasMap.put(LoadProperties.mcability, "mcability");
aliasMap.put(LoadProperties.mcc, "mcc"); aliasMap.put(LoadProperties.mcc, "mcc");
aliasMap.put(LoadProperties.mcgod, "mcgod"); aliasMap.put(LoadProperties.mcgod, "mcgod");
aliasMap.put(LoadProperties.mcmmo, "mcmmo"); aliasMap.put(LoadProperties.mcmmo, "mcmmo");
aliasMap.put(LoadProperties.mcrefresh, "mcrefresh"); aliasMap.put(LoadProperties.mcrefresh, "mcrefresh");
aliasMap.put(LoadProperties.mctop, "mctop"); aliasMap.put(LoadProperties.mctop, "mctop");
//Party commands //Party commands
aliasMap.put(LoadProperties.accept, "accept"); aliasMap.put(LoadProperties.accept, "accept");
//aliasMap.put(null, "a"); //aliasMap.put(null, "a");
aliasMap.put(LoadProperties.invite, "invite"); aliasMap.put(LoadProperties.invite, "invite");
aliasMap.put(LoadProperties.party, "party"); aliasMap.put(LoadProperties.party, "party");
//aliasMap.put(null, "p"); //aliasMap.put(null, "p");
aliasMap.put(LoadProperties.ptp, "ptp"); aliasMap.put(LoadProperties.ptp, "ptp");
//Other commands //Other commands
aliasMap.put(LoadProperties.addxp, "addxp"); aliasMap.put(LoadProperties.addxp, "addxp");
aliasMap.put(LoadProperties.clearmyspawn, "clearmyspawn"); aliasMap.put(LoadProperties.clearmyspawn, "clearmyspawn");
aliasMap.put(LoadProperties.mmoedit, "mmoedit"); aliasMap.put(LoadProperties.mmoedit, "mmoedit");
//aliasMap.put(key, "mmoupdate"); //aliasMap.put(key, "mmoupdate");
aliasMap.put(LoadProperties.myspawn, "myspawn"); aliasMap.put(LoadProperties.myspawn, "myspawn");
aliasMap.put(LoadProperties.stats, "stats"); aliasMap.put(LoadProperties.stats, "stats");
aliasMap.put(LoadProperties.whois, "whois"); aliasMap.put(LoadProperties.whois, "whois");
aliasMap.put(LoadProperties.xprate, "xprate"); aliasMap.put(LoadProperties.xprate, "xprate");
//Spout commands //Spout commands
//aliasMap.put(null, "mchud"); //aliasMap.put(null, "mchud");
aliasMap.put(LoadProperties.xplock, "xplock"); aliasMap.put(LoadProperties.xplock, "xplock");
//Register commands //Register commands
//Skills commands //Skills commands
getCommand("acrobatics").setExecutor(new AcrobaticsCommand()); getCommand("acrobatics").setExecutor(new AcrobaticsCommand());
getCommand("archery").setExecutor(new ArcheryCommand()); getCommand("archery").setExecutor(new ArcheryCommand());
getCommand("axes").setExecutor(new AxesCommand()); getCommand("axes").setExecutor(new AxesCommand());
getCommand("excavation").setExecutor(new ExcavationCommand()); getCommand("excavation").setExecutor(new ExcavationCommand());
getCommand("fishing").setExecutor(new FishingCommand()); getCommand("fishing").setExecutor(new FishingCommand());
getCommand("herbalism").setExecutor(new HerbalismCommand()); getCommand("herbalism").setExecutor(new HerbalismCommand());
getCommand("mining").setExecutor(new MiningCommand()); getCommand("mining").setExecutor(new MiningCommand());
getCommand("repair").setExecutor(new RepairCommand()); getCommand("repair").setExecutor(new RepairCommand());
getCommand("swords").setExecutor(new SwordsCommand()); getCommand("swords").setExecutor(new SwordsCommand());
getCommand("taming").setExecutor(new TamingCommand()); getCommand("taming").setExecutor(new TamingCommand());
getCommand("unarmed").setExecutor(new UnarmedCommand()); getCommand("unarmed").setExecutor(new UnarmedCommand());
getCommand("woodcutting").setExecutor(new WoodcuttingCommand()); getCommand("woodcutting").setExecutor(new WoodcuttingCommand());
//Mc* commands //Mc* commands
getCommand("mcability").setExecutor(new McabilityCommand()); getCommand("mcability").setExecutor(new McabilityCommand());
getCommand("mcc").setExecutor(new MccCommand()); getCommand("mcc").setExecutor(new MccCommand());
getCommand("mcgod").setExecutor(new McgodCommand()); getCommand("mcgod").setExecutor(new McgodCommand());
getCommand("mcmmo").setExecutor(new McmmoCommand()); getCommand("mcmmo").setExecutor(new McmmoCommand());
getCommand("mcrefresh").setExecutor(new McrefreshCommand(this)); getCommand("mcrefresh").setExecutor(new McrefreshCommand(this));
getCommand("mctop").setExecutor(new MctopCommand()); getCommand("mctop").setExecutor(new MctopCommand());
//Party commands //Party commands
getCommand("accept").setExecutor(new AcceptCommand()); getCommand("accept").setExecutor(new AcceptCommand());
getCommand("a").setExecutor(new ACommand()); getCommand("a").setExecutor(new ACommand());
getCommand("invite").setExecutor(new InviteCommand(this)); getCommand("invite").setExecutor(new InviteCommand(this));
getCommand("party").setExecutor(new PartyCommand()); getCommand("party").setExecutor(new PartyCommand());
getCommand("p").setExecutor(new PCommand()); getCommand("p").setExecutor(new PCommand());
getCommand("ptp").setExecutor(new PtpCommand(this)); getCommand("ptp").setExecutor(new PtpCommand(this));
//Other commands //Other commands
getCommand("addxp").setExecutor(new AddxpCommand(this)); getCommand("addxp").setExecutor(new AddxpCommand(this));
getCommand("clearmyspawn").setExecutor(new ClearmyspawnCommand()); getCommand("clearmyspawn").setExecutor(new ClearmyspawnCommand());
getCommand("mmoedit").setExecutor(new MmoeditCommand(this)); getCommand("mmoedit").setExecutor(new MmoeditCommand(this));
getCommand("mmoupdate").setExecutor(new MmoupdateCommand()); getCommand("mmoupdate").setExecutor(new MmoupdateCommand());
getCommand("myspawn").setExecutor(new MyspawnCommand()); getCommand("myspawn").setExecutor(new MyspawnCommand());
getCommand("stats").setExecutor(new StatsCommand()); getCommand("stats").setExecutor(new StatsCommand());
getCommand("whois").setExecutor(new WhoisCommand(this)); getCommand("whois").setExecutor(new WhoisCommand(this));
getCommand("xprate").setExecutor(new XprateCommand()); getCommand("xprate").setExecutor(new XprateCommand());
//Spout commands //Spout commands
getCommand("mchud").setExecutor(new MchudCommand()); getCommand("mchud").setExecutor(new MchudCommand());
getCommand("xplock").setExecutor(new XplockCommand()); getCommand("xplock").setExecutor(new XplockCommand());
} }
/* /*
* It is important to always assume that you are updating from the lowest possible version. * 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 * 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 * SQL transactions and closing all file handlers, such that the next block of updater code
* if called will handle updating as expected. * if called will handle updating as expected.
*/ */
public void updateFrom(int age) { public void updateFrom(int age) {
//No updater code needed, just update the version. //No updater code needed, just update the version.
if(age == -1) { if(age == -1) {
updateVersion(); updateVersion();
return; return;
} }
//Updater code from age 1 goes here //Updater code from age 1 goes here
if(age <= 1) { if(age <= 1) {
//Since age 1 is an example for now, we will just let it do nothing. //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 we are updating from age 1 but we need more to reach age 2, this will run too.
if(age <= 2) { if(age <= 2) {
} }
updateVersion(); updateVersion();
} }
public void updateVersion() { public void updateVersion() {
try { try {
versionFile.createNewFile(); versionFile.createNewFile();
BufferedWriter vout = new BufferedWriter(new FileWriter(versionFile)); BufferedWriter vout = new BufferedWriter(new FileWriter(versionFile));
vout.write(this.getDescription().getVersion()); vout.write(this.getDescription().getVersion());
vout.close(); vout.close();
} catch (IOException ex) { } catch (IOException ex) {
ex.printStackTrace(); ex.printStackTrace();
} catch (SecurityException ex) { } catch (SecurityException ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
} }
public String readVersion() { public String readVersion() {
byte[] buffer = new byte[(int) versionFile.length()]; byte[] buffer = new byte[(int) versionFile.length()];
BufferedInputStream f = null; BufferedInputStream f = null;
try { try {
f = new BufferedInputStream(new FileInputStream(versionFile)); f = new BufferedInputStream(new FileInputStream(versionFile));
f.read(buffer); f.read(buffer);
} catch (FileNotFoundException ex) { } catch (FileNotFoundException ex) {
ex.printStackTrace(); ex.printStackTrace();
} catch (IOException ex) { } catch (IOException ex) {
ex.printStackTrace(); ex.printStackTrace();
} finally { } finally {
if (f != null) try { f.close(); } catch (IOException ignored) { } if (f != null) try { f.close(); } catch (IOException ignored) { }
} }
return new String(buffer); return new String(buffer);
} }
} }

View File

@ -1,352 +1,352 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50; package com.gmail.nossr50;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import ru.tehkode.permissions.PermissionManager; import ru.tehkode.permissions.PermissionManager;
import ru.tehkode.permissions.bukkit.PermissionsEx; import ru.tehkode.permissions.bukkit.PermissionsEx;
import com.nijiko.permissions.PermissionHandler; import com.nijiko.permissions.PermissionHandler;
import com.nijikokun.bukkit.Permissions.Permissions; import com.nijikokun.bukkit.Permissions.Permissions;
public class mcPermissions public class mcPermissions
{ {
private static volatile mcPermissions instance; private static volatile mcPermissions instance;
private enum PermissionType { private enum PermissionType {
PEX, PERMISSIONS, BUKKIT PEX, PERMISSIONS, BUKKIT
} }
private static PermissionType permissionType; private static PermissionType permissionType;
private static Object PHandle; private static Object PHandle;
public static boolean permissionsEnabled = false; public static boolean permissionsEnabled = false;
public static void initialize(Server server) public static void initialize(Server server)
{ {
Logger log = Logger.getLogger("Minecraft"); Logger log = Logger.getLogger("Minecraft");
if(permissionsEnabled && permissionType != PermissionType.PERMISSIONS) return; if(permissionsEnabled && permissionType != PermissionType.PERMISSIONS) return;
Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx"); Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx");
Plugin test = server.getPluginManager().getPlugin("Permissions"); Plugin test = server.getPluginManager().getPlugin("Permissions");
if(PEXtest != null) { if(PEXtest != null) {
PHandle = (PermissionManager) PermissionsEx.getPermissionManager(); PHandle = (PermissionManager) PermissionsEx.getPermissionManager();
permissionType = PermissionType.PEX; permissionType = PermissionType.PEX;
permissionsEnabled = true; permissionsEnabled = true;
log.info("[mcMMO] PermissionsEx found, using PermissionsEx."); log.info("[mcMMO] PermissionsEx found, using PermissionsEx.");
} else if(test != null) { } else if(test != null) {
PHandle = (PermissionHandler) ((Permissions) test).getHandler(); PHandle = (PermissionHandler) ((Permissions) test).getHandler();
permissionType = PermissionType.PERMISSIONS; permissionType = PermissionType.PERMISSIONS;
permissionsEnabled = true; permissionsEnabled = true;
log.info("[mcMMO] Permissions version "+test.getDescription().getVersion()+" found, using Permissions."); log.info("[mcMMO] Permissions version "+test.getDescription().getVersion()+" found, using Permissions.");
} else { } else {
permissionType = PermissionType.BUKKIT; permissionType = PermissionType.BUKKIT;
permissionsEnabled = true; permissionsEnabled = true;
log.info("[mcMMO] Using Bukkit Permissions."); log.info("[mcMMO] Using Bukkit Permissions.");
} }
} }
public static boolean getEnabled() public static boolean getEnabled()
{ {
return permissionsEnabled; return permissionsEnabled;
} }
public static boolean permission(Player player, String permission) public static boolean permission(Player player, String permission)
{ {
if(!permissionsEnabled) return player.isOp(); if(!permissionsEnabled) return player.isOp();
switch(permissionType) { switch(permissionType) {
case PEX: case PEX:
return ((PermissionManager) PHandle).has(player, permission); return ((PermissionManager) PHandle).has(player, permission);
case PERMISSIONS: case PERMISSIONS:
return ((PermissionHandler) PHandle).has(player, permission); return ((PermissionHandler) PHandle).has(player, permission);
case BUKKIT: case BUKKIT:
return player.hasPermission(permission); return player.hasPermission(permission);
default: default:
return true; return true;
} }
} }
public boolean admin(Player player){ public boolean admin(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.admin"); return permission(player, "mcmmo.admin");
} else { } else {
return true; return true;
} }
} }
public boolean mcrefresh(Player player) { public boolean mcrefresh(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.tools.mcrefresh"); return permission(player, "mcmmo.tools.mcrefresh");
} else { } else {
return true; return true;
} }
} }
public boolean mmoedit(Player player) { public boolean mmoedit(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.tools.mmoedit"); return permission(player, "mcmmo.tools.mmoedit");
} else { } else {
return true; return true;
} }
} }
public boolean herbalismAbility(Player player){ public boolean herbalismAbility(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.ability.herbalism"); return permission(player, "mcmmo.ability.herbalism");
} else { } else {
return true; return true;
} }
} }
public boolean excavationAbility(Player player){ public boolean excavationAbility(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.ability.excavation"); return permission(player, "mcmmo.ability.excavation");
} else { } else {
return true; return true;
} }
} }
public boolean unarmedAbility(Player player){ public boolean unarmedAbility(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.ability.unarmed"); return permission(player, "mcmmo.ability.unarmed");
} else { } else {
return true; return true;
} }
} }
public boolean chimaeraWing(Player player){ public boolean chimaeraWing(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.item.chimaerawing"); return permission(player, "mcmmo.item.chimaerawing");
} else { } else {
return true; return true;
} }
} }
public boolean miningAbility(Player player){ public boolean miningAbility(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.ability.mining"); return permission(player, "mcmmo.ability.mining");
} else { } else {
return true; return true;
} }
} }
public boolean axesAbility(Player player){ public boolean axesAbility(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.ability.axes"); return permission(player, "mcmmo.ability.axes");
} else { } else {
return true; return true;
} }
} }
public boolean swordsAbility(Player player){ public boolean swordsAbility(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.ability.swords"); return permission(player, "mcmmo.ability.swords");
} else { } else {
return true; return true;
} }
} }
public boolean woodCuttingAbility(Player player) { public boolean woodCuttingAbility(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.ability.woodcutting"); return permission(player, "mcmmo.ability.woodcutting");
} else { } else {
return true; return true;
} }
} }
public boolean mcgod(Player player) { public boolean mcgod(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.tools.mcgod"); return permission(player, "mcmmo.tools.mcgod");
} else { } else {
return true; return true;
} }
} }
public boolean regeneration(Player player){ public boolean regeneration(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.regeneration"); return permission(player, "mcmmo.regeneration");
} else { } else {
return true; return true;
} }
} }
public boolean motd(Player player) { public boolean motd(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.motd"); return permission(player, "mcmmo.motd");
} else { } else {
return true; return true;
} }
} }
public boolean mcAbility(Player player) { public boolean mcAbility(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.commands.ability"); return permission(player, "mcmmo.commands.ability");
} else { } else {
return true; return true;
} }
} }
public boolean mySpawn(Player player) { public boolean mySpawn(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.commands.myspawn"); return permission(player, "mcmmo.commands.myspawn");
} else { } else {
return true; return true;
} }
} }
public boolean setMySpawn(Player player) { public boolean setMySpawn(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.commands.setmyspawn"); return permission(player, "mcmmo.commands.setmyspawn");
} else { } else {
return true; return true;
} }
} }
public boolean partyChat(Player player) { public boolean partyChat(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.chat.partychat"); return permission(player, "mcmmo.chat.partychat");
} else { } else {
return true; return true;
} }
} }
public boolean partyLock(Player player) { public boolean partyLock(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.chat.partylock"); return permission(player, "mcmmo.chat.partylock");
} else { } else {
return true; return true;
} }
} }
public boolean partyTeleport(Player player) { public boolean partyTeleport(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.commands.ptp"); return permission(player, "mcmmo.commands.ptp");
} else { } else {
return true; return true;
} }
} }
public boolean whois(Player player) { public boolean whois(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.commands.whois"); return permission(player, "mcmmo.commands.whois");
} else { } else {
return true; return true;
} }
} }
public boolean party(Player player) { public boolean party(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.commands.party"); return permission(player, "mcmmo.commands.party");
} else { } else {
return true; return true;
} }
} }
public boolean adminChat(Player player) { public boolean adminChat(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.chat.adminchat"); return permission(player, "mcmmo.chat.adminchat");
} else { } else {
return true; return true;
} }
} }
public static mcPermissions getInstance() { public static mcPermissions getInstance() {
if (instance == null) { if (instance == null) {
instance = new mcPermissions(); instance = new mcPermissions();
} }
return instance; return instance;
} }
public boolean taming(Player player) { public boolean taming(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.taming"); return permission(player, "mcmmo.skills.taming");
} else { } else {
return true; return true;
} }
} }
public boolean mining(Player player) { public boolean mining(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.mining"); return permission(player, "mcmmo.skills.mining");
} else { } else {
return true; return true;
} }
} }
public boolean fishing(Player player) { public boolean fishing(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.fishing"); return permission(player, "mcmmo.skills.fishing");
} else { } else {
return true; return true;
} }
} }
public boolean alchemy(Player player) { public boolean alchemy(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.alchemy"); return permission(player, "mcmmo.skills.alchemy");
} else { } else {
return true; return true;
} }
} }
public boolean enchanting(Player player) { public boolean enchanting(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.enchanting"); return permission(player, "mcmmo.skills.enchanting");
} else { } else {
return true; return true;
} }
} }
public boolean woodcutting(Player player) { public boolean woodcutting(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.woodcutting"); return permission(player, "mcmmo.skills.woodcutting");
} else { } else {
return true; return true;
} }
} }
public boolean repair(Player player) { public boolean repair(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.repair"); return permission(player, "mcmmo.skills.repair");
} else { } else {
return true; return true;
} }
} }
public boolean unarmed(Player player) { public boolean unarmed(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.unarmed"); return permission(player, "mcmmo.skills.unarmed");
} else { } else {
return true; return true;
} }
} }
public boolean archery(Player player) { public boolean archery(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.archery"); return permission(player, "mcmmo.skills.archery");
} else { } else {
return true; return true;
} }
} }
public boolean herbalism(Player player) { public boolean herbalism(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.herbalism"); return permission(player, "mcmmo.skills.herbalism");
} else { } else {
return true; return true;
} }
} }
public boolean excavation(Player player) { public boolean excavation(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.excavation"); return permission(player, "mcmmo.skills.excavation");
} else { } else {
return true; return true;
} }
} }
public boolean swords(Player player) { public boolean swords(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.swords"); return permission(player, "mcmmo.skills.swords");
} else { } else {
return true; return true;
} }
} }
public boolean axes(Player player) { public boolean axes(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.axes"); return permission(player, "mcmmo.skills.axes");
} else { } else {
return true; return true;
} }
} }
public boolean acrobatics(Player player) { public boolean acrobatics(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.skills.acrobatics"); return permission(player, "mcmmo.skills.acrobatics");
} else { } else {
return true; return true;
} }
} }
} }

View File

@ -1,481 +1,481 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.party; package com.gmail.nossr50.party;
import java.io.EOFException; import java.io.EOFException;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;
import java.io.ObjectOutputStream; import java.io.ObjectOutputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.spout.util.ArrayListString; import com.gmail.nossr50.spout.util.ArrayListString;
public class Party public class Party
{ {
/* /*
* This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/). * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
* *
* mmoMinecraft is free software: you can redistribute it and/or modify * mmoMinecraft is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
public static String partyPlayersFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyPlayers"; 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 partyLocksFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyLocks";
public static String partyPasswordsFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyPasswords"; public static String partyPasswordsFile = mcMMO.maindirectory + File.separator + "FlatFileStuff" + File.separator + "partyPasswords";
HashMap<String, HashMap<String, Boolean>> partyPlayers = new HashMap<String, HashMap<String, Boolean>>(); HashMap<String, HashMap<String, Boolean>> partyPlayers = new HashMap<String, HashMap<String, Boolean>>();
HashMap<String, Boolean> partyLocks = new HashMap<String, Boolean>(); HashMap<String, Boolean> partyLocks = new HashMap<String, Boolean>();
HashMap<String, String> partyPasswords = new HashMap<String, String>(); HashMap<String, String> partyPasswords = new HashMap<String, String>();
private static mcMMO plugin; private static mcMMO plugin;
public Party(mcMMO instance) { public Party(mcMMO instance) {
new File(mcMMO.maindirectory + File.separator + "FlatFileStuff").mkdir(); new File(mcMMO.maindirectory + File.separator + "FlatFileStuff").mkdir();
plugin = instance; plugin = instance;
} }
private static volatile Party instance; private static volatile Party instance;
public static Party getInstance() public static Party getInstance()
{ {
if (instance == null) { if (instance == null) {
instance = new Party(plugin); instance = new Party(plugin);
} }
return instance; return instance;
} }
public boolean inSameParty(Player playera, Player playerb){ public boolean inSameParty(Player playera, Player playerb){
if(Users.getProfile(playera).inParty() && Users.getProfile(playerb).inParty()) if(Users.getProfile(playera).inParty() && Users.getProfile(playerb).inParty())
{ {
if(Users.getProfile(playera).getParty().equals(Users.getProfile(playerb).getParty())) if(Users.getProfile(playera).getParty().equals(Users.getProfile(playerb).getParty()))
{ {
return true; return true;
} else } else
{ {
return false; return false;
} }
} else } else
{ {
return false; return false;
} }
} }
public int partyCount(Player player, Player[] players) public int partyCount(Player player, Player[] players)
{ {
int x = 0; int x = 0;
for(Player hurrdurr : players) for(Player hurrdurr : players)
{ {
if(player != null && hurrdurr != null) if(player != null && hurrdurr != null)
{ {
if(Users.getProfile(player).getParty().equals(Users.getProfile(hurrdurr).getParty())) if(Users.getProfile(player).getParty().equals(Users.getProfile(hurrdurr).getParty()))
x++; x++;
} }
} }
return x; return x;
} }
public void informPartyMembers(Player player) public void informPartyMembers(Player player)
{ {
informPartyMembers(player, Bukkit.getServer().getOnlinePlayers()); informPartyMembers(player, Bukkit.getServer().getOnlinePlayers());
} }
public void informPartyMembers(Player player, Player[] players) public void informPartyMembers(Player player, Player[] players)
{ {
int x = 0; int x = 0;
for(Player p : players) for(Player p : players)
{ {
if(player != null && p != null) if(player != null && p != null)
{ {
if(inSameParty(player, p) && !p.getName().equals(player.getName())) if(inSameParty(player, p) && !p.getName().equals(player.getName()))
{ {
p.sendMessage(mcLocale.getString("Party.InformedOnJoin", new Object[] {player.getName()})); p.sendMessage(mcLocale.getString("Party.InformedOnJoin", new Object[] {player.getName()}));
x++; x++;
} }
} }
} }
} }
public ArrayList<Player> getPartyMembers(Player player) public ArrayList<Player> getPartyMembers(Player player)
{ {
ArrayList<Player> players = new ArrayList<Player>(); ArrayList<Player> players = new ArrayList<Player>();
for(Player p : Bukkit.getServer().getOnlinePlayers()) for(Player p : Bukkit.getServer().getOnlinePlayers())
{ {
if(p.isOnline() && player != null && p != null) if(p.isOnline() && player != null && p != null)
{ {
if(inSameParty(player, p) && !p.getName().equals(player.getName())) if(inSameParty(player, p) && !p.getName().equals(player.getName()))
{ {
players.add(p); players.add(p);
} }
} }
} }
return players; return players;
} }
public ArrayListString getPartyMembersByName(Player player) public ArrayListString getPartyMembersByName(Player player)
{ {
ArrayListString players = new ArrayListString(); ArrayListString players = new ArrayListString();
for(Player p : Bukkit.getServer().getOnlinePlayers()) for(Player p : Bukkit.getServer().getOnlinePlayers())
{ {
if(p.isOnline()) if(p.isOnline())
{ {
if(inSameParty(player, p)) if(inSameParty(player, p))
{ {
players.add(p.getName()); players.add(p.getName());
} }
} }
} }
return players; return players;
} }
public void informPartyMembersOwnerChange(String newOwner) { public void informPartyMembersOwnerChange(String newOwner) {
Player newOwnerPlayer = plugin.getServer().getPlayer(newOwner); Player newOwnerPlayer = plugin.getServer().getPlayer(newOwner);
informPartyMembersOwnerChange(newOwnerPlayer, Bukkit.getServer().getOnlinePlayers()); informPartyMembersOwnerChange(newOwnerPlayer, Bukkit.getServer().getOnlinePlayers());
} }
public void informPartyMembersOwnerChange(Player newOwner, Player[] players) { public void informPartyMembersOwnerChange(Player newOwner, Player[] players) {
int x = 0; int x = 0;
for(Player p : players){ for(Player p : players){
if(newOwner != null && p != null){ if(newOwner != null && p != null){
if(inSameParty(newOwner, p)) if(inSameParty(newOwner, p))
{ {
//TODO: Needs more locale. //TODO: Needs more locale.
p.sendMessage(newOwner.getName()+" is the new party owner."); p.sendMessage(newOwner.getName()+" is the new party owner.");
x++; x++;
} }
} }
} }
} }
public void informPartyMembersQuit(Player player) public void informPartyMembersQuit(Player player)
{ {
informPartyMembersQuit(player, Bukkit.getServer().getOnlinePlayers()); informPartyMembersQuit(player, Bukkit.getServer().getOnlinePlayers());
} }
public void informPartyMembersQuit(Player player, Player[] players) public void informPartyMembersQuit(Player player, Player[] players)
{ {
int x = 0; int x = 0;
for(Player p : players){ for(Player p : players){
if(player != null && p != null){ if(player != null && p != null){
if(inSameParty(player, p) && !p.getName().equals(player.getName())) if(inSameParty(player, p) && !p.getName().equals(player.getName()))
{ {
p.sendMessage(mcLocale.getString("Party.InformedOnQuit", new Object[] {player.getName()})); p.sendMessage(mcLocale.getString("Party.InformedOnQuit", new Object[] {player.getName()}));
x++; x++;
} }
} }
} }
} }
public void removeFromParty(Player player, PlayerProfile PP) public void removeFromParty(Player player, PlayerProfile PP)
{ {
//Stop NPE... hopefully //Stop NPE... hopefully
if(!isParty(PP.getParty()) || !isInParty(player, PP)) if(!isParty(PP.getParty()) || !isInParty(player, PP))
addToParty(player, PP, PP.getParty(), false); addToParty(player, PP, PP.getParty(), false);
informPartyMembersQuit(player); informPartyMembersQuit(player);
String party = PP.getParty(); String party = PP.getParty();
if(isPartyLeader(player.getName(), party)) if(isPartyLeader(player.getName(), party))
{ {
if(isPartyLocked(party)) { if(isPartyLocked(party)) {
unlockParty(party); unlockParty(party);
} }
} }
this.partyPlayers.get(party).remove(player.getName()); this.partyPlayers.get(party).remove(player.getName());
if(isPartyEmpty(party)) deleteParty(party); if(isPartyEmpty(party)) deleteParty(party);
PP.removeParty(); PP.removeParty();
savePartyPlayers(); savePartyPlayers();
} }
public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite) { public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite) {
newParty = newParty.replace(":", "."); newParty = newParty.replace(":", ".");
addToParty(player, PP, newParty, invite, null); addToParty(player, PP, newParty, invite, null);
} }
public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite, String password) public void addToParty(Player player, PlayerProfile PP, String newParty, Boolean invite, String password)
{ {
//Fix for FFS //Fix for FFS
newParty = newParty.replace(":", "."); newParty = newParty.replace(":", ".");
//Don't care about passwords on invites //Don't care about passwords on invites
if(!invite) if(!invite)
{ {
//Don't care about passwords if it isn't locked //Don't care about passwords if it isn't locked
if(isPartyLocked(newParty)) if(isPartyLocked(newParty))
{ {
if(isPartyPasswordProtected(newParty)) if(isPartyPasswordProtected(newParty))
{ {
if(password == null) if(password == null)
{ {
//TODO: Needs more locale. //TODO: Needs more locale.
player.sendMessage("This party requires a password. Use "+LoadProperties.party+" <party> <password> to join it."); player.sendMessage("This party requires a password. Use "+LoadProperties.party+" <party> <password> to join it.");
return; return;
} else if(!password.equalsIgnoreCase(getPartyPassword(newParty))) } else if(!password.equalsIgnoreCase(getPartyPassword(newParty)))
{ {
//TODO: Needs more locale. //TODO: Needs more locale.
player.sendMessage("Party password incorrect."); player.sendMessage("Party password incorrect.");
return; return;
} }
} else } else
{ {
//TODO: Needs more locale. //TODO: Needs more locale.
player.sendMessage("Party is locked."); player.sendMessage("Party is locked.");
return; return;
} }
} }
} else } else
{ {
PP.acceptInvite(); PP.acceptInvite();
} }
//New party? //New party?
if(!isParty(newParty)) if(!isParty(newParty))
{ {
putNestedEntry(this.partyPlayers, newParty, player.getName(), true); putNestedEntry(this.partyPlayers, newParty, player.getName(), true);
//Get default locking behavior from config? //Get default locking behavior from config?
this.partyLocks.put(newParty, false); this.partyLocks.put(newParty, false);
this.partyPasswords.put(newParty, null); this.partyPasswords.put(newParty, null);
saveParties(); saveParties();
} else } else
{ {
putNestedEntry(this.partyPlayers, newParty, player.getName(), false); putNestedEntry(this.partyPlayers, newParty, player.getName(), false);
savePartyPlayers(); savePartyPlayers();
} }
PP.setParty(newParty); PP.setParty(newParty);
informPartyMembers(player); informPartyMembers(player);
if(!invite) if(!invite)
{ {
player.sendMessage(mcLocale.getString("mcPlayerListener.JoinedParty", new Object[] { newParty })); player.sendMessage(mcLocale.getString("mcPlayerListener.JoinedParty", new Object[] { newParty }));
} else } else
{ {
player.sendMessage(mcLocale.getString("mcPlayerListener.InviteAccepted", new Object[]{ PP.getParty() })); player.sendMessage(mcLocale.getString("mcPlayerListener.InviteAccepted", new Object[]{ PP.getParty() }));
} }
} }
private static <U,V,W> W putNestedEntry( private static <U,V,W> W putNestedEntry(
HashMap<U,HashMap<V,W>> nest, HashMap<U,HashMap<V,W>> nest,
U nestKey, U nestKey,
V nestedKey, V nestedKey,
W nestedValue) W nestedValue)
{ {
HashMap<V,W> nested = nest.get(nestKey); HashMap<V,W> nested = nest.get(nestKey);
if (nested == null) { if (nested == null) {
nested = new HashMap<V,W>(); nested = new HashMap<V,W>();
nest.put(nestKey, nested); nest.put(nestKey, nested);
} }
return nested.put(nestedKey, nestedValue); return nested.put(nestedKey, nestedValue);
} }
public void dump(Player player) { public void dump(Player player) {
player.sendMessage(partyPlayers.toString()); player.sendMessage(partyPlayers.toString());
player.sendMessage(partyLocks.toString()); player.sendMessage(partyLocks.toString());
player.sendMessage(partyPasswords.toString()); player.sendMessage(partyPasswords.toString());
Iterator<String> i = partyPlayers.keySet().iterator(); Iterator<String> i = partyPlayers.keySet().iterator();
while(i.hasNext()) { while(i.hasNext()) {
String nestkey = i.next(); String nestkey = i.next();
player.sendMessage(nestkey); player.sendMessage(nestkey);
Iterator<String> j = partyPlayers.get(nestkey).keySet().iterator(); Iterator<String> j = partyPlayers.get(nestkey).keySet().iterator();
while(j.hasNext()) { while(j.hasNext()) {
String nestedkey = j.next(); String nestedkey = j.next();
player.sendMessage("."+nestedkey); player.sendMessage("."+nestedkey);
if(partyPlayers.get(nestkey).get(nestedkey)) { if(partyPlayers.get(nestkey).get(nestedkey)) {
player.sendMessage("..True"); player.sendMessage("..True");
} else { } else {
player.sendMessage("..False"); player.sendMessage("..False");
} }
} }
} }
} }
public void lockParty(String partyName) { public void lockParty(String partyName) {
this.partyLocks.put(partyName, true); this.partyLocks.put(partyName, true);
savePartyLocks(); savePartyLocks();
} }
public void unlockParty(String partyName) { public void unlockParty(String partyName) {
this.partyLocks.put(partyName, false); this.partyLocks.put(partyName, false);
savePartyLocks(); savePartyLocks();
} }
public void deleteParty(String partyName) { public void deleteParty(String partyName) {
this.partyPlayers.remove(partyName); this.partyPlayers.remove(partyName);
this.partyLocks.remove(partyName); this.partyLocks.remove(partyName);
this.partyPasswords.remove(partyName); this.partyPasswords.remove(partyName);
saveParties(); saveParties();
} }
public void setPartyPassword(String partyName, String password) { public void setPartyPassword(String partyName, String password) {
if(password.equalsIgnoreCase("\"\"")) password = null; if(password.equalsIgnoreCase("\"\"")) password = null;
this.partyPasswords.put(partyName, password); this.partyPasswords.put(partyName, password);
savePartyPasswords(); savePartyPasswords();
} }
public void setPartyLeader(String partyName, String playerName) { public void setPartyLeader(String partyName, String playerName) {
Iterator<String> i = partyPlayers.get(partyName).keySet().iterator(); Iterator<String> i = partyPlayers.get(partyName).keySet().iterator();
while(i.hasNext()) { while(i.hasNext()) {
String playerKey = i.next(); String playerKey = i.next();
if(playerKey.equalsIgnoreCase(playerName)) { if(playerKey.equalsIgnoreCase(playerName)) {
partyPlayers.get(partyName).put(playerName, true); partyPlayers.get(partyName).put(playerName, true);
informPartyMembersOwnerChange(playerName); informPartyMembersOwnerChange(playerName);
//TODO: Needs more locale. //TODO: Needs more locale.
plugin.getServer().getPlayer(playerName).sendMessage("You are now the party owner."); plugin.getServer().getPlayer(playerName).sendMessage("You are now the party owner.");
continue; continue;
} }
if(partyPlayers.get(partyName).get(playerKey)) { if(partyPlayers.get(partyName).get(playerKey)) {
//TODO: Needs more locale. //TODO: Needs more locale.
plugin.getServer().getPlayer(playerKey).sendMessage("You are no longer party owner."); plugin.getServer().getPlayer(playerKey).sendMessage("You are no longer party owner.");
partyPlayers.get(partyName).put(playerKey, false); partyPlayers.get(partyName).put(playerKey, false);
} }
} }
} }
public String getPartyPassword(String partyName) { public String getPartyPassword(String partyName) {
return this.partyPasswords.get(partyName); return this.partyPasswords.get(partyName);
} }
public boolean canInvite(Player player, PlayerProfile PP) { public boolean canInvite(Player player, PlayerProfile PP) {
return (isPartyLocked(PP.getParty()) && !isPartyLeader(player.getName(), PP.getParty())) ? false : true; return (isPartyLocked(PP.getParty()) && !isPartyLeader(player.getName(), PP.getParty())) ? false : true;
} }
public boolean isParty(String partyName) { public boolean isParty(String partyName) {
return this.partyPlayers.containsKey(partyName); return this.partyPlayers.containsKey(partyName);
} }
public boolean isPartyEmpty(String partyName) { public boolean isPartyEmpty(String partyName) {
return this.partyPlayers.get(partyName).isEmpty(); return this.partyPlayers.get(partyName).isEmpty();
} }
public boolean isPartyLeader(String playerName, String partyName) { public boolean isPartyLeader(String playerName, String partyName) {
if(this.partyPlayers.get(partyName) != null) if(this.partyPlayers.get(partyName) != null)
{ {
if(this.partyPlayers.get(partyName).get(playerName) == null) return false; if(this.partyPlayers.get(partyName).get(playerName) == null) return false;
return this.partyPlayers.get(partyName).get(playerName); return this.partyPlayers.get(partyName).get(playerName);
} }
else else
return false; return false;
} }
public boolean isPartyLocked(String partyName) { public boolean isPartyLocked(String partyName) {
if(this.partyLocks.get(partyName) == null) return false; if(this.partyLocks.get(partyName) == null) return false;
return this.partyLocks.get(partyName); return this.partyLocks.get(partyName);
} }
public boolean isPartyPasswordProtected(String partyName) { public boolean isPartyPasswordProtected(String partyName) {
return !(this.partyPasswords.get(partyName) == null); return !(this.partyPasswords.get(partyName) == null);
} }
public boolean isInParty(Player player, PlayerProfile PP) { public boolean isInParty(Player player, PlayerProfile PP) {
return partyPlayers.get(PP.getParty()).containsKey(player.getName()); return partyPlayers.get(PP.getParty()).containsKey(player.getName());
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void loadParties() { public void loadParties() {
if(new File(partyPlayersFile).exists()) { if(new File(partyPlayersFile).exists()) {
try { try {
ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyPlayersFile)); ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyPlayersFile));
this.partyPlayers = (HashMap<String, HashMap<String, Boolean>>)obj.readObject(); this.partyPlayers = (HashMap<String, HashMap<String, Boolean>>)obj.readObject();
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace();
} catch (EOFException e) { mcMMO.log.info("partyPlayersFile empty."); } catch (EOFException e) { mcMMO.log.info("partyPlayersFile empty.");
} catch (IOException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace();
} catch (ClassNotFoundException e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); }
} }
if(new File(partyLocksFile).exists()) { if(new File(partyLocksFile).exists()) {
try { try {
ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyLocksFile)); ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyLocksFile));
this.partyLocks = (HashMap<String, Boolean>)obj.readObject(); this.partyLocks = (HashMap<String, Boolean>)obj.readObject();
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace();
} catch (EOFException e) { mcMMO.log.info("partyLocksFile empty."); } catch (EOFException e) { mcMMO.log.info("partyLocksFile empty.");
} catch (IOException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace();
} catch (ClassNotFoundException e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); }
} }
if(new File(partyPasswordsFile).exists()) { if(new File(partyPasswordsFile).exists()) {
try { try {
ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyPasswordsFile)); ObjectInputStream obj = new ObjectInputStream(new FileInputStream(partyPasswordsFile));
this.partyPasswords = (HashMap<String, String>)obj.readObject(); this.partyPasswords = (HashMap<String, String>)obj.readObject();
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace();
} catch (EOFException e) { mcMMO.log.info("partyPasswordsFile empty."); } catch (EOFException e) { mcMMO.log.info("partyPasswordsFile empty.");
} catch (IOException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace();
} catch (ClassNotFoundException e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); }
} }
} }
public void saveParties() { public void saveParties() {
savePartyPlayers(); savePartyPlayers();
savePartyLocks(); savePartyLocks();
savePartyPasswords(); savePartyPasswords();
} }
public void savePartyPlayers() { public void savePartyPlayers() {
try { try {
new File(partyPlayersFile).createNewFile(); new File(partyPlayersFile).createNewFile();
ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyPlayersFile)); ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyPlayersFile));
obj.writeObject(this.partyPlayers); obj.writeObject(this.partyPlayers);
obj.close(); obj.close();
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); }
} }
public void savePartyLocks() { public void savePartyLocks() {
try { try {
new File(partyLocksFile).createNewFile(); new File(partyLocksFile).createNewFile();
ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyLocksFile)); ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyLocksFile));
obj.writeObject(this.partyLocks); obj.writeObject(this.partyLocks);
obj.close(); obj.close();
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); }
} }
public void savePartyPasswords() { public void savePartyPasswords() {
try { try {
new File(partyPasswordsFile).createNewFile(); new File(partyPasswordsFile).createNewFile();
ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyPasswordsFile)); ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream(partyPasswordsFile));
obj.writeObject(this.partyPasswords); obj.writeObject(this.partyPasswords);
obj.close(); obj.close();
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); }
} }
} }

View File

@ -1,80 +1,80 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.runnables; package com.gmail.nossr50.runnables;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.Skills;
import com.gmail.nossr50.skills.Swords; import com.gmail.nossr50.skills.Swords;
public class mcTimer implements Runnable public class mcTimer implements Runnable
{ {
private final mcMMO plugin; private final mcMMO plugin;
int thecount = 1; int thecount = 1;
public mcTimer(final mcMMO plugin) public mcTimer(final mcMMO plugin)
{ {
this.plugin = plugin; this.plugin = plugin;
} }
public void run() public void run()
{ {
for(Player player : plugin.getServer().getOnlinePlayers()) for(Player player : plugin.getServer().getOnlinePlayers())
{ {
if(player == null) if(player == null)
continue; continue;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(PP == null) if(PP == null)
continue; continue;
/* /*
* MONITOR SKILLS * MONITOR SKILLS
*/ */
Skills.monitorSkills(player); Skills.monitorSkills(player);
/* /*
* COOLDOWN MONITORING * COOLDOWN MONITORING
*/ */
Skills.watchCooldowns(player); Skills.watchCooldowns(player);
/* /*
* PLAYER BLEED MONITORING * PLAYER BLEED MONITORING
*/ */
if(thecount % 2 == 0 && PP.getBleedTicks() >= 1) if(thecount % 2 == 0 && PP.getBleedTicks() >= 1)
{ {
player.damage(2); player.damage(2);
PP.decreaseBleedTicks(); PP.decreaseBleedTicks();
} }
/* /*
* NON-PLAYER BLEED MONITORING * NON-PLAYER BLEED MONITORING
*/ */
if(thecount % 2 == 0) if(thecount % 2 == 0)
Swords.bleedSimulate(plugin); Swords.bleedSimulate(plugin);
//SETUP FOR HP REGEN/BLEED //SETUP FOR HP REGEN/BLEED
thecount++; thecount++;
if(thecount >= 81) if(thecount >= 81)
thecount = 1; thecount = 1;
} }
} }
} }

View File

@ -1,105 +1,105 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
public class Acrobatics { public class Acrobatics {
public static void acrobaticsCheck(Player player, EntityDamageEvent event) public static void acrobaticsCheck(Player player, EntityDamageEvent event)
{ {
if(player != null && mcPermissions.getInstance().acrobatics(player)) if(player != null && mcPermissions.getInstance().acrobatics(player))
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
int acrovar = PP.getSkillLevel(SkillType.ACROBATICS); int acrovar = PP.getSkillLevel(SkillType.ACROBATICS);
if(player.isSneaking()) if(player.isSneaking())
acrovar = acrovar * 2; acrovar = acrovar * 2;
if(Math.random() * 1000 <= acrovar && !event.isCancelled()) if(Math.random() * 1000 <= acrovar && !event.isCancelled())
{ {
int threshold = 7; int threshold = 7;
if(player.isSneaking()) if(player.isSneaking())
threshold = 14; threshold = 14;
int newDamage = event.getDamage() - threshold; int newDamage = event.getDamage() - threshold;
if(newDamage < 0) if(newDamage < 0)
newDamage = 0; newDamage = 0;
/* /*
* Check for death * Check for death
*/ */
if(player.getHealth() - newDamage >= 1){ if(player.getHealth() - newDamage >= 1){
if(!event.isCancelled()) if(!event.isCancelled())
PP.addXP(SkillType.ACROBATICS, (event.getDamage() * 8)*10, player); PP.addXP(SkillType.ACROBATICS, (event.getDamage() * 8)*10, player);
Skills.XpCheckSkill(SkillType.ACROBATICS, player); Skills.XpCheckSkill(SkillType.ACROBATICS, player);
event.setDamage(newDamage); event.setDamage(newDamage);
if(event.getDamage() <= 0) if(event.getDamage() <= 0)
event.setCancelled(true); event.setCancelled(true);
if(player.isSneaking()){ if(player.isSneaking()){
player.sendMessage(ChatColor.GREEN+"**GRACEFUL ROLL**"); player.sendMessage(ChatColor.GREEN+"**GRACEFUL ROLL**");
} else { } else {
player.sendMessage("**ROLL**"); player.sendMessage("**ROLL**");
} }
} }
} else if (!event.isCancelled()){ } else if (!event.isCancelled()){
if(player.getHealth() - event.getDamage() >= 1){ if(player.getHealth() - event.getDamage() >= 1){
PP.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*10, player); PP.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*10, player);
Skills.XpCheckSkill(SkillType.ACROBATICS, player); Skills.XpCheckSkill(SkillType.ACROBATICS, player);
} }
} }
} }
} }
public static void dodgeChecks(EntityDamageByEntityEvent event){ public static void dodgeChecks(EntityDamageByEntityEvent event){
Player defender = (Player) event.getEntity(); Player defender = (Player) event.getEntity();
PlayerProfile PPd = Users.getProfile(defender); PlayerProfile PPd = Users.getProfile(defender);
if(mcPermissions.getInstance().acrobatics(defender)){ if(mcPermissions.getInstance().acrobatics(defender)){
if(PPd.getSkillLevel(SkillType.ACROBATICS) <= 800){ if(PPd.getSkillLevel(SkillType.ACROBATICS) <= 800){
if(Math.random() * 4000 <= PPd.getSkillLevel(SkillType.ACROBATICS)){ if(Math.random() * 4000 <= PPd.getSkillLevel(SkillType.ACROBATICS)){
defender.sendMessage(ChatColor.GREEN+"**DODGE**"); defender.sendMessage(ChatColor.GREEN+"**DODGE**");
if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){ if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){
PPd.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*1, defender); PPd.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*1, defender);
Skills.XpCheckSkill(SkillType.ACROBATICS, defender); Skills.XpCheckSkill(SkillType.ACROBATICS, defender);
} }
event.setDamage(event.getDamage() / 2); event.setDamage(event.getDamage() / 2);
//Needs to do minimal damage //Needs to do minimal damage
if(event.getDamage() <= 0) if(event.getDamage() <= 0)
event.setDamage(1); event.setDamage(1);
} }
} else if(Math.random() * 4000 <= 800) { } else if(Math.random() * 4000 <= 800) {
defender.sendMessage(ChatColor.GREEN+"**DODGE**"); defender.sendMessage(ChatColor.GREEN+"**DODGE**");
if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){ if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){
PPd.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*10, defender); PPd.addXP(SkillType.ACROBATICS, (event.getDamage() * 12)*10, defender);
Skills.XpCheckSkill(SkillType.ACROBATICS, defender); Skills.XpCheckSkill(SkillType.ACROBATICS, defender);
} }
event.setDamage(event.getDamage() / 2); event.setDamage(event.getDamage() / 2);
//Needs to deal minimal damage //Needs to deal minimal damage
if(event.getDamage() <= 0) if(event.getDamage() <= 0)
event.setDamage(1); event.setDamage(1);
} }
} }
} }
} }

View File

@ -1,119 +1,119 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
public class Archery public class Archery
{ {
public static void trackArrows(mcMMO pluginx, Entity x, EntityDamageByEntityEvent event, Player attacker) public static void trackArrows(mcMMO pluginx, Entity x, EntityDamageByEntityEvent event, Player attacker)
{ {
PlayerProfile PPa = Users.getProfile(attacker); PlayerProfile PPa = Users.getProfile(attacker);
if(!pluginx.misc.arrowTracker.containsKey(x) && event.getDamage() > 0) if(!pluginx.misc.arrowTracker.containsKey(x) && event.getDamage() > 0)
{ {
pluginx.misc.arrowTracker.put(x, 0); pluginx.misc.arrowTracker.put(x, 0);
if(attacker != null) if(attacker != null)
{ {
if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY)) if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY))
{ {
pluginx.misc.arrowTracker.put(x, 1); pluginx.misc.arrowTracker.put(x, 1);
} }
} }
} else } else
{ {
if(event.getDamage() > 0) if(event.getDamage() > 0)
{ {
if(attacker != null) if(attacker != null)
{ {
if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY)) if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.ARCHERY))
{ {
pluginx.misc.arrowTracker.put(x, 1); pluginx.misc.arrowTracker.put(x, 1);
} }
} }
} }
} }
} }
public static void ignitionCheck(Entity x, EntityDamageByEntityEvent event, Player attacker) public static void ignitionCheck(Entity x, EntityDamageByEntityEvent event, Player attacker)
{ {
//Check to see if PVP for this world is disabled before executing //Check to see if PVP for this world is disabled before executing
if(!x.getWorld().getPVP()) if(!x.getWorld().getPVP())
return; return;
PlayerProfile PPa = Users.getProfile(attacker); PlayerProfile PPa = Users.getProfile(attacker);
if(Math.random() * 100 >= 75) if(Math.random() * 100 >= 75)
{ {
int ignition = 20; int ignition = 20;
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 200) if(PPa.getSkillLevel(SkillType.ARCHERY) >= 200)
ignition+=20; ignition+=20;
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 400) if(PPa.getSkillLevel(SkillType.ARCHERY) >= 400)
ignition+=20; ignition+=20;
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 600) if(PPa.getSkillLevel(SkillType.ARCHERY) >= 600)
ignition+=20; ignition+=20;
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 800) if(PPa.getSkillLevel(SkillType.ARCHERY) >= 800)
ignition+=20; ignition+=20;
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000) if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000)
ignition+=20; ignition+=20;
if(x instanceof Player) if(x instanceof Player)
{ {
Player Defender = (Player)x; Player Defender = (Player)x;
if(!Party.getInstance().inSameParty(attacker, Defender)) if(!Party.getInstance().inSameParty(attacker, Defender))
{ {
event.getEntity().setFireTicks(ignition); event.getEntity().setFireTicks(ignition);
attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$ attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$
Defender.sendMessage(mcLocale.getString("Combat.BurningArrowHit")); //$NON-NLS-1$ Defender.sendMessage(mcLocale.getString("Combat.BurningArrowHit")); //$NON-NLS-1$
} }
} else { } else {
event.getEntity().setFireTicks(ignition); event.getEntity().setFireTicks(ignition);
attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$ attacker.sendMessage(mcLocale.getString("Combat.Ignition")); //$NON-NLS-1$
} }
} }
} }
public static void dazeCheck(Player defender, Player attacker) public static void dazeCheck(Player defender, Player attacker)
{ {
PlayerProfile PPa = Users.getProfile(attacker); PlayerProfile PPa = Users.getProfile(attacker);
Location loc = defender.getLocation(); Location loc = defender.getLocation();
if(Math.random() * 10 > 5) if(Math.random() * 10 > 5)
{ {
loc.setPitch(90); loc.setPitch(90);
} else { } else {
loc.setPitch(-90); loc.setPitch(-90);
} }
if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000){ if(PPa.getSkillLevel(SkillType.ARCHERY) >= 1000){
if(Math.random() * 1000 <= 500){ if(Math.random() * 1000 <= 500){
defender.teleport(loc); defender.teleport(loc);
defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$ defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$
attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$ attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$
} }
} else if(Math.random() * 2000 <= PPa.getSkillLevel(SkillType.ARCHERY)){ } else if(Math.random() * 2000 <= PPa.getSkillLevel(SkillType.ARCHERY)){
defender.teleport(loc); defender.teleport(loc);
defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$ defender.sendMessage(mcLocale.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$
attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$ attacker.sendMessage(mcLocale.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$
} }
} }
} }

View File

@ -1,172 +1,172 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf; import org.bukkit.entity.Wolf;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
public class Axes { public class Axes {
public static void skullSplitterCheck(Player player){ public static void skullSplitterCheck(Player player){
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(m.isAxes(player.getItemInHand()) && mcPermissions.getInstance().axesAbility(player)){ if(m.isAxes(player.getItemInHand()) && mcPermissions.getInstance().axesAbility(player)){
/* /*
* CHECK FOR AXE PREP MODE * CHECK FOR AXE PREP MODE
*/ */
if(PP.getAxePreparationMode()) if(PP.getAxePreparationMode())
{ {
PP.setAxePreparationMode(false); PP.setAxePreparationMode(false);
} }
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.AXES); int x = PP.getSkillLevel(SkillType.AXES);
while(x >= 50){ while(x >= 50){
x-=50; x-=50;
ticks++; ticks++;
} }
if(!PP.getSkullSplitterMode() && Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)) if(!PP.getSkullSplitterMode() && Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.SkullSplitterOn")); player.sendMessage(mcLocale.getString("Skills.SkullSplitterOn"));
for(Player y : player.getWorld().getPlayers()){ for(Player y : player.getWorld().getPlayers()){
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(mcLocale.getString("Skills.SkullSplitterPlayer", new Object[] {player.getName()})); y.sendMessage(mcLocale.getString("Skills.SkullSplitterPlayer", new Object[] {player.getName()}));
} }
PP.setSkullSplitterActivatedTimeStamp(System.currentTimeMillis()); PP.setSkullSplitterActivatedTimeStamp(System.currentTimeMillis());
PP.setSkullSplitterDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); PP.setSkullSplitterDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
PP.setSkullSplitterMode(true); PP.setSkullSplitterMode(true);
} }
if(!PP.getSkullSplitterMode() && !Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)){ if(!PP.getSkullSplitterMode() && !Skills.cooldownOver(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)){
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)+"s)"); +ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getSkullSplitterDeactivatedTimeStamp()*1000), LoadProperties.skullSplitterCooldown)+"s)");
} }
} }
} }
public static void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx) public static void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx)
{ {
Entity x = event.getEntity(); Entity x = event.getEntity();
if(x instanceof Wolf){ if(x instanceof Wolf){
Wolf wolf = (Wolf)x; Wolf wolf = (Wolf)x;
if(Taming.getOwner(wolf, pluginx) != null) if(Taming.getOwner(wolf, pluginx) != null)
{ {
if(Taming.getOwner(wolf, pluginx) == attacker) if(Taming.getOwner(wolf, pluginx) == attacker)
return; return;
if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx))) if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx)))
return; return;
} }
} }
PlayerProfile PPa = Users.getProfile(attacker); PlayerProfile PPa = Users.getProfile(attacker);
if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){ if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(PPa.getSkillLevel(SkillType.AXES) >= 750){ if(PPa.getSkillLevel(SkillType.AXES) >= 750){
if(Math.random() * 1000 <= 750){ if(Math.random() * 1000 <= 750){
if(x instanceof Player){ if(x instanceof Player){
Player player = (Player)x; Player player = (Player)x;
player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
} }
if(x instanceof Player){ if(x instanceof Player){
event.setDamage(event.getDamage() * 2 - event.getDamage() / 2); event.setDamage(event.getDamage() * 2 - event.getDamage() / 2);
} else { } else {
event.setDamage(event.getDamage() * 2); event.setDamage(event.getDamage() * 2);
} }
attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} else if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.AXES)){ } else if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.AXES)){
if(x instanceof Player){ if(x instanceof Player){
Player player = (Player)x; Player player = (Player)x;
player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
} }
if(x instanceof Player){ if(x instanceof Player){
event.setDamage(event.getDamage() * 2 - event.getDamage() / 2); event.setDamage(event.getDamage() * 2 - event.getDamage() / 2);
} else { } else {
event.setDamage(event.getDamage() * 2); event.setDamage(event.getDamage() * 2);
} }
attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
public static void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx) public static void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx)
{ {
int targets = 0; int targets = 0;
if(event.getEntity() instanceof LivingEntity) if(event.getEntity() instanceof LivingEntity)
{ {
LivingEntity x = (LivingEntity) event.getEntity(); LivingEntity x = (LivingEntity) event.getEntity();
targets = m.getTier(attacker); targets = m.getTier(attacker);
for(Entity derp : x.getWorld().getEntities()) for(Entity derp : x.getWorld().getEntities())
{ {
if(m.getDistance(x.getLocation(), derp.getLocation()) < 5) if(m.getDistance(x.getLocation(), derp.getLocation()) < 5)
{ {
//Make sure the Wolf is not friendly //Make sure the Wolf is not friendly
if(derp instanceof Wolf) if(derp instanceof Wolf)
{ {
Wolf hurrDurr = (Wolf)derp; Wolf hurrDurr = (Wolf)derp;
if(Taming.getOwner(hurrDurr, pluginx) == attacker) if(Taming.getOwner(hurrDurr, pluginx) == attacker)
continue; continue;
if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx))) if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx)))
continue; continue;
} }
//Damage nearby LivingEntities //Damage nearby LivingEntities
if(derp instanceof LivingEntity && targets >= 1) if(derp instanceof LivingEntity && targets >= 1)
{ {
if(derp instanceof Player) if(derp instanceof Player)
{ {
Player target = (Player)derp; Player target = (Player)derp;
if(Users.getProfile(target).getGodMode()) if(Users.getProfile(target).getGodMode())
continue; continue;
if(target.getName().equals(attacker.getName())) if(target.getName().equals(attacker.getName()))
continue; continue;
if(Party.getInstance().inSameParty(attacker, target)) if(Party.getInstance().inSameParty(attacker, target))
continue; continue;
if(targets >= 1 && derp.getWorld().getPVP()) if(targets >= 1 && derp.getWorld().getPVP())
{ {
target.damage(event.getDamage() / 2); target.damage(event.getDamage() / 2);
target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!"); target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!");
targets--; targets--;
continue; continue;
} }
} }
else else
{ {
LivingEntity target = (LivingEntity)derp; LivingEntity target = (LivingEntity)derp;
target.damage(event.getDamage() / 2); target.damage(event.getDamage() / 2);
targets--; targets--;
} }
} }
} }
} }
} }
} }
} }

View File

@ -1,279 +1,279 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import java.util.ArrayList; import java.util.ArrayList;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
public class Excavation public class Excavation
{ {
public static void gigaDrillBreakerActivationCheck(Player player, Block block) public static void gigaDrillBreakerActivationCheck(Player player, Block block)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(m.isShovel(player.getItemInHand())) if(m.isShovel(player.getItemInHand()))
{ {
if(block != null) if(block != null)
{ {
if(!m.abilityBlockCheck(block)) if(!m.abilityBlockCheck(block))
return; return;
} }
if(PP.getShovelPreparationMode()) if(PP.getShovelPreparationMode())
{ {
PP.setShovelPreparationMode(false); PP.setShovelPreparationMode(false);
} }
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.EXCAVATION); int x = PP.getSkillLevel(SkillType.EXCAVATION);
while(x >= 50) while(x >= 50)
{ {
x-=50; x-=50;
ticks++; ticks++;
} }
if(!PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerDeactivatedTimeStamp() < System.currentTimeMillis()) if(!PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerDeactivatedTimeStamp() < System.currentTimeMillis())
{ {
player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOn")); player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOn"));
for(Player y : player.getWorld().getPlayers()) for(Player y : player.getWorld().getPlayers())
{ {
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerPlayer", new Object[] {player.getName()})); y.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerPlayer", new Object[] {player.getName()}));
} }
PP.setGigaDrillBreakerActivatedTimeStamp(System.currentTimeMillis()); PP.setGigaDrillBreakerActivatedTimeStamp(System.currentTimeMillis());
PP.setGigaDrillBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); PP.setGigaDrillBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
PP.setGigaDrillBreakerMode(true); PP.setGigaDrillBreakerMode(true);
} }
} }
} }
public static boolean canBeGigaDrillBroken(Block block) 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; 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) public static void excavationProcCheck(byte data, Material type, Location loc, Player player)
{ {
if(LoadProperties.excavationRequiresShovel && !m.isShovel(player.getItemInHand())) if(LoadProperties.excavationRequiresShovel && !m.isShovel(player.getItemInHand()))
return; return;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
ArrayList<ItemStack> is = new ArrayList<ItemStack>(); ArrayList<ItemStack> is = new ArrayList<ItemStack>();
int xp = 0; int xp = 0;
switch(type) switch(type)
{ {
case GRASS: case GRASS:
if(PP.getSkillLevel(SkillType.EXCAVATION) >= 250) if(PP.getSkillLevel(SkillType.EXCAVATION) >= 250)
{ {
//CHANCE TO GET EGGS //CHANCE TO GET EGGS
if(LoadProperties.eggs == true && Math.random() * 100 > 99) if(LoadProperties.eggs == true && Math.random() * 100 > 99)
{ {
xp+= LoadProperties.meggs; xp+= LoadProperties.meggs;
is.add(new ItemStack(Material.EGG, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.EGG, 1, (byte)0, (byte)0));
} }
//CHANCE TO GET APPLES //CHANCE TO GET APPLES
if(LoadProperties.apples == true && Math.random() * 100 > 99) if(LoadProperties.apples == true && Math.random() * 100 > 99)
{ {
xp+= LoadProperties.mapple; xp+= LoadProperties.mapple;
is.add(new ItemStack(Material.APPLE, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.APPLE, 1, (byte)0, (byte)0));
} }
} }
break; break;
case GRAVEL: case GRAVEL:
//CHANCE TO GET NETHERRACK //CHANCE TO GET NETHERRACK
if(LoadProperties.netherrack == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 850 && Math.random() * 200 > 199) if(LoadProperties.netherrack == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 850 && Math.random() * 200 > 199)
{ {
xp+= LoadProperties.mnetherrack; xp+= LoadProperties.mnetherrack;
is.add(new ItemStack(Material.NETHERRACK, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.NETHERRACK, 1, (byte)0, (byte)0));
} }
//CHANCE TO GET SULPHUR //CHANCE TO GET SULPHUR
if(LoadProperties.sulphur == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 75) if(LoadProperties.sulphur == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 75)
{ {
if(Math.random() * 10 > 9) if(Math.random() * 10 > 9)
{ {
xp+= LoadProperties.msulphur; xp+= LoadProperties.msulphur;
is.add(new ItemStack(Material.SULPHUR, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.SULPHUR, 1, (byte)0, (byte)0));
} }
} }
//CHANCE TO GET BONES //CHANCE TO GET BONES
if(LoadProperties.bones == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 175) if(LoadProperties.bones == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 175)
{ {
if(Math.random() * 10 > 9) if(Math.random() * 10 > 9)
{ {
xp+= LoadProperties.mbones; xp+= LoadProperties.mbones;
is.add(new ItemStack(Material.BONE, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.BONE, 1, (byte)0, (byte)0));
} }
} }
break; break;
case SAND: case SAND:
//CHANCE TO GET GLOWSTONE //CHANCE TO GET GLOWSTONE
if(LoadProperties.glowstone == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 50 && Math.random() * 100 > 95) if(LoadProperties.glowstone == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 50 && Math.random() * 100 > 95)
{ {
xp+= LoadProperties.mglowstone2; xp+= LoadProperties.mglowstone2;
is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0));
} }
//CHANCE TO GET SOUL SAND //CHANCE TO GET SOUL SAND
if(LoadProperties.slowsand == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 650 && Math.random() * 200 > 199) if(LoadProperties.slowsand == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 650 && Math.random() * 200 > 199)
{ {
xp+= LoadProperties.mslowsand; xp+= LoadProperties.mslowsand;
is.add(new ItemStack(Material.SOUL_SAND, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.SOUL_SAND, 1, (byte)0, (byte)0));
} }
break; break;
case CLAY: case CLAY:
if(LoadProperties.slimeballs && PP.getSkillLevel(SkillType.EXCAVATION) >= 50) if(LoadProperties.slimeballs && PP.getSkillLevel(SkillType.EXCAVATION) >= 50)
{ {
if(Math.random() * 20 > 19) if(Math.random() * 20 > 19)
{ {
xp+= LoadProperties.mslimeballs; xp+= LoadProperties.mslimeballs;
is.add(new ItemStack(Material.SLIME_BALL, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.SLIME_BALL, 1, (byte)0, (byte)0));
} }
} }
if(LoadProperties.string && PP.getSkillLevel(SkillType.EXCAVATION) >= 250) if(LoadProperties.string && PP.getSkillLevel(SkillType.EXCAVATION) >= 250)
{ {
if(Math.random() * 20 > 19) if(Math.random() * 20 > 19)
{ {
xp+= LoadProperties.mstring; xp+= LoadProperties.mstring;
is.add(new ItemStack(Material.STRING, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.STRING, 1, (byte)0, (byte)0));
} }
} }
if(LoadProperties.watch && PP.getSkillLevel(SkillType.EXCAVATION) >= 500) if(LoadProperties.watch && PP.getSkillLevel(SkillType.EXCAVATION) >= 500)
{ {
if(Math.random() * 100 > 99) if(Math.random() * 100 > 99)
{ {
xp+= LoadProperties.mwatch; xp+= LoadProperties.mwatch;
is.add(new ItemStack(Material.WATCH, 1, (byte)0)); is.add(new ItemStack(Material.WATCH, 1, (byte)0));
} }
} }
if(LoadProperties.bucket && PP.getSkillLevel(SkillType.EXCAVATION) >= 500) if(LoadProperties.bucket && PP.getSkillLevel(SkillType.EXCAVATION) >= 500)
{ {
if(Math.random() * 100 > 99) if(Math.random() * 100 > 99)
{ {
xp+= LoadProperties.mbucket; xp+= LoadProperties.mbucket;
is.add(new ItemStack(Material.BUCKET, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.BUCKET, 1, (byte)0, (byte)0));
} }
} }
if(LoadProperties.web && PP.getSkillLevel(SkillType.EXCAVATION) >= 750) if(LoadProperties.web && PP.getSkillLevel(SkillType.EXCAVATION) >= 750)
{ {
if(Math.random() * 20 > 19) if(Math.random() * 20 > 19)
{ {
xp+= LoadProperties.mweb; xp+= LoadProperties.mweb;
is.add(new ItemStack(Material.WEB, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.WEB, 1, (byte)0, (byte)0));
} }
} }
break; break;
} }
//DIRT SAND OR GRAVEL //DIRT SAND OR GRAVEL
if(type == Material.GRASS || type == Material.DIRT || type == Material.GRAVEL || type == Material.SAND || type == Material.CLAY) if(type == Material.GRASS || type == Material.DIRT || type == Material.GRAVEL || type == Material.SAND || type == Material.CLAY)
{ {
xp+= LoadProperties.mbase; xp+= LoadProperties.mbase;
if(PP.getSkillLevel(SkillType.EXCAVATION) >= 750) if(PP.getSkillLevel(SkillType.EXCAVATION) >= 750)
{ {
//CHANCE TO GET CAKE //CHANCE TO GET CAKE
if(LoadProperties.cake == true && Math.random() * 2000 > 1999) if(LoadProperties.cake == true && Math.random() * 2000 > 1999)
{ {
xp+= LoadProperties.mcake; xp+= LoadProperties.mcake;
is.add(new ItemStack(Material.CAKE, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.CAKE, 1, (byte)0, (byte)0));
} }
} }
if(PP.getSkillLevel(SkillType.EXCAVATION) >= 350) if(PP.getSkillLevel(SkillType.EXCAVATION) >= 350)
{ {
//CHANCE TO GET DIAMOND //CHANCE TO GET DIAMOND
if(LoadProperties.diamond == true && Math.random() * 750 > 749) if(LoadProperties.diamond == true && Math.random() * 750 > 749)
{ {
xp+= LoadProperties.mdiamond2; xp+= LoadProperties.mdiamond2;
is.add(new ItemStack(Material.DIAMOND, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.DIAMOND, 1, (byte)0, (byte)0));
} }
} }
if(PP.getSkillLevel(SkillType.EXCAVATION) >= 250) if(PP.getSkillLevel(SkillType.EXCAVATION) >= 250)
{ {
//CHANCE TO GET YELLOW MUSIC //CHANCE TO GET YELLOW MUSIC
if(LoadProperties.music == true && Math.random() * 2000 > 1999) if(LoadProperties.music == true && Math.random() * 2000 > 1999)
{ {
xp+= LoadProperties.mmusic; xp+= LoadProperties.mmusic;
is.add(new ItemStack(Material.GOLD_RECORD, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.GOLD_RECORD, 1, (byte)0, (byte)0));
} }
} }
if(PP.getSkillLevel(SkillType.EXCAVATION) >= 350) if(PP.getSkillLevel(SkillType.EXCAVATION) >= 350)
{ {
//CHANCE TO GET GREEN MUSIC //CHANCE TO GET GREEN MUSIC
if(LoadProperties.music == true && Math.random() * 2000 > 1999) if(LoadProperties.music == true && Math.random() * 2000 > 1999)
{ {
xp+= LoadProperties.mmusic; xp+= LoadProperties.mmusic;
is.add(new ItemStack(Material.GREEN_RECORD, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.GREEN_RECORD, 1, (byte)0, (byte)0));
} }
} }
} }
//GRASS OR DIRT //GRASS OR DIRT
if(type == Material.DIRT || type == Material.GRASS) if(type == Material.DIRT || type == Material.GRASS)
{ {
if(PP.getSkillLevel(SkillType.EXCAVATION) >= 50) if(PP.getSkillLevel(SkillType.EXCAVATION) >= 50)
{ {
//CHANCE FOR COCOA BEANS //CHANCE FOR COCOA BEANS
if(LoadProperties.cocoabeans == true && Math.random() * 75 > 74) if(LoadProperties.cocoabeans == true && Math.random() * 75 > 74)
{ {
xp+= LoadProperties.mcocoa; xp+= LoadProperties.mcocoa;
is.add(new ItemStack(Material.getMaterial(351), 1, (byte)0, (byte)3)); is.add(new ItemStack(Material.getMaterial(351), 1, (byte)0, (byte)3));
} }
} }
//CHANCE FOR SHROOMS //CHANCE FOR SHROOMS
if(LoadProperties.mushrooms == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 500 && Math.random() * 200 > 199) if(LoadProperties.mushrooms == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 500 && Math.random() * 200 > 199)
{ {
xp+= LoadProperties.mmushroom2; xp+= LoadProperties.mmushroom2;
switch((int) Math.random() * 1) switch((int) Math.random() * 1)
{ {
case 0: case 0:
is.add(new ItemStack(Material.BROWN_MUSHROOM, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.BROWN_MUSHROOM, 1, (byte)0, (byte)0));
break; break;
case 1: case 1:
is.add(new ItemStack(Material.RED_MUSHROOM, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.RED_MUSHROOM, 1, (byte)0, (byte)0));
break; break;
} }
} }
//CHANCE TO GET GLOWSTONE //CHANCE TO GET GLOWSTONE
if(LoadProperties.glowstone == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 25 && Math.random() * 100 > 95) if(LoadProperties.glowstone == true && PP.getSkillLevel(SkillType.EXCAVATION) >= 25 && Math.random() * 100 > 95)
{ {
xp+= LoadProperties.mglowstone2; xp+= LoadProperties.mglowstone2;
is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0));
} }
} }
//Drop items //Drop items
for(ItemStack x : is) for(ItemStack x : is)
{ {
if(x != null) if(x != null)
loc.getWorld().dropItemNaturally(loc, x); loc.getWorld().dropItemNaturally(loc, x);
} }
//Handle XP related tasks //Handle XP related tasks
PP.addXP(SkillType.EXCAVATION, xp, player); PP.addXP(SkillType.EXCAVATION, xp, player);
Skills.XpCheckSkill(SkillType.EXCAVATION, player); Skills.XpCheckSkill(SkillType.EXCAVATION, player);
} }
} }

View File

@ -1,338 +1,338 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class Herbalism public class Herbalism
{ {
public static void greenTerraCheck(Player player, Block block) public static void greenTerraCheck(Player player, Block block)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(m.isHoe(player.getItemInHand())) if(m.isHoe(player.getItemInHand()))
{ {
if(block != null) if(block != null)
{ {
if(!m.abilityBlockCheck(block)) if(!m.abilityBlockCheck(block))
return; return;
} }
if(PP.getHoePreparationMode()) if(PP.getHoePreparationMode())
{ {
PP.setHoePreparationMode(false); PP.setHoePreparationMode(false);
} }
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.HERBALISM); int x = PP.getSkillLevel(SkillType.HERBALISM);
while(x >= 50) while(x >= 50)
{ {
x-=50; x-=50;
ticks++; ticks++;
} }
if(!PP.getGreenTerraMode() && Skills.cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)) if(!PP.getGreenTerraMode() && Skills.cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.GreenTerraOn")); player.sendMessage(mcLocale.getString("Skills.GreenTerraOn"));
for(Player y : player.getWorld().getPlayers()) for(Player y : player.getWorld().getPlayers())
{ {
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(mcLocale.getString("Skills.GreenTerraPlayer", new Object[] {player.getName()})); y.sendMessage(mcLocale.getString("Skills.GreenTerraPlayer", new Object[] {player.getName()}));
} }
PP.setGreenTerraActivatedTimeStamp(System.currentTimeMillis()); PP.setGreenTerraActivatedTimeStamp(System.currentTimeMillis());
PP.setGreenTerraDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); PP.setGreenTerraDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
PP.setGreenTerraMode(true); PP.setGreenTerraMode(true);
} }
} }
} }
public static void greenTerraWheat(Player player, Block block, BlockBreakEvent event, mcMMO plugin) public static void greenTerraWheat(Player player, Block block, BlockBreakEvent event, mcMMO plugin)
{ {
if(block.getType() == Material.WHEAT && block.getData() == (byte) 0x07) if(block.getType() == Material.WHEAT && block.getData() == (byte) 0x07)
{ {
event.setCancelled(true); event.setCancelled(true);
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
Material mat = Material.getMaterial(296); Material mat = Material.getMaterial(296);
Location loc = block.getLocation(); Location loc = block.getLocation();
ItemStack is = new ItemStack(mat, 1, (byte)0, (byte)0); ItemStack is = new ItemStack(mat, 1, (byte)0, (byte)0);
PP.addXP(SkillType.HERBALISM, LoadProperties.mwheat, player); PP.addXP(SkillType.HERBALISM, LoadProperties.mwheat, player);
loc.getWorld().dropItemNaturally(loc, is); loc.getWorld().dropItemNaturally(loc, is);
//DROP SOME SEEDS //DROP SOME SEEDS
mat = Material.SEEDS; mat = Material.SEEDS;
is = new ItemStack(mat, 1, (byte)0, (byte)0); is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is); loc.getWorld().dropItemNaturally(loc, is);
herbalismProcCheck(block, player, event, plugin); herbalismProcCheck(block, player, event, plugin);
herbalismProcCheck(block, player, event, plugin); herbalismProcCheck(block, player, event, plugin);
block.setData((byte) 0x03); block.setData((byte) 0x03);
} }
} }
public static void greenTerra(Player player, Block block){ public static void greenTerra(Player player, Block block){
if(block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT){ if(block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT){
if(!hasSeeds(player)) if(!hasSeeds(player))
player.sendMessage("You need more seeds to spread Green Terra"); player.sendMessage("You need more seeds to spread Green Terra");
if(hasSeeds(player) && block.getType() != Material.WHEAT) if(hasSeeds(player) && block.getType() != Material.WHEAT)
{ {
removeSeeds(player); removeSeeds(player);
if(block.getType() == Material.SMOOTH_BRICK) if(block.getType() == Material.SMOOTH_BRICK)
block.setData((byte)1); block.setData((byte)1);
if(block.getType() == Material.DIRT) if(block.getType() == Material.DIRT)
block.setType(Material.GRASS); block.setType(Material.GRASS);
if(LoadProperties.enableCobbleToMossy && block.getType() == Material.COBBLESTONE) if(LoadProperties.enableCobbleToMossy && block.getType() == Material.COBBLESTONE)
block.setType(Material.MOSSY_COBBLESTONE); block.setType(Material.MOSSY_COBBLESTONE);
} }
} }
} }
public static Boolean canBeGreenTerra(Block block){ public static Boolean canBeGreenTerra(Block block){
int t = block.getTypeId(); 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){ 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; return true;
} else { } else {
return false; return false;
} }
} }
public static boolean hasSeeds(Player player){ public static boolean hasSeeds(Player player){
ItemStack[] inventory = player.getInventory().getContents(); ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){ for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 295){ if(x != null && x.getTypeId() == 295){
return true; return true;
} }
} }
return false; return false;
} }
public static void removeSeeds(Player player){ public static void removeSeeds(Player player){
ItemStack[] inventory = player.getInventory().getContents(); ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){ for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 295){ if(x != null && x.getTypeId() == 295){
if(x.getAmount() == 1){ if(x.getAmount() == 1){
x.setTypeId(0); x.setTypeId(0);
x.setAmount(0); x.setAmount(0);
player.getInventory().setContents(inventory); player.getInventory().setContents(inventory);
} else{ } else{
x.setAmount(x.getAmount() - 1); x.setAmount(x.getAmount() - 1);
player.getInventory().setContents(inventory); player.getInventory().setContents(inventory);
} }
return; return;
} }
} }
} }
public static void herbalismProcCheck(Block block, Player player, BlockBreakEvent event, mcMMO plugin) public static void herbalismProcCheck(Block block, Player player, BlockBreakEvent event, mcMMO plugin)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
int type = block.getTypeId(); int type = block.getTypeId();
Location loc = block.getLocation(); Location loc = block.getLocation();
ItemStack is = null; ItemStack is = null;
Material mat = null; Material mat = null;
if(plugin.misc.blockWatchList.contains(block)) if(plugin.misc.blockWatchList.contains(block))
{ {
return; return;
} }
if(type == 59 && block.getData() == (byte) 0x7) if(type == 59 && block.getData() == (byte) 0x7)
{ {
mat = Material.getMaterial(296); mat = Material.getMaterial(296);
is = new ItemStack(mat, 1, (byte)0, (byte)0); is = new ItemStack(mat, 1, (byte)0, (byte)0);
PP.addXP(SkillType.HERBALISM, LoadProperties.mwheat, player); PP.addXP(SkillType.HERBALISM, LoadProperties.mwheat, player);
if(player != null) if(player != null)
{ {
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM))
{ {
loc.getWorld().dropItemNaturally(loc, is); loc.getWorld().dropItemNaturally(loc, is);
} }
} }
//GREEN THUMB //GREEN THUMB
if(Math.random() * 1500 <= PP.getSkillLevel(SkillType.HERBALISM)) if(Math.random() * 1500 <= PP.getSkillLevel(SkillType.HERBALISM))
{ {
event.setCancelled(true); event.setCancelled(true);
loc.getWorld().dropItemNaturally(loc, is); loc.getWorld().dropItemNaturally(loc, is);
//DROP SOME SEEDS //DROP SOME SEEDS
mat = Material.SEEDS; mat = Material.SEEDS;
is = new ItemStack(mat, 1, (byte)0, (byte)0); is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is); loc.getWorld().dropItemNaturally(loc, is);
block.setData((byte) 0x1); //Change it to first stage block.setData((byte) 0x1); //Change it to first stage
//Setup the bonuses //Setup the bonuses
int bonus = 0; int bonus = 0;
if(PP.getSkillLevel(SkillType.HERBALISM) >= 200) if(PP.getSkillLevel(SkillType.HERBALISM) >= 200)
bonus++; bonus++;
if(PP.getSkillLevel(SkillType.HERBALISM) >= 400) if(PP.getSkillLevel(SkillType.HERBALISM) >= 400)
bonus++; bonus++;
if(PP.getSkillLevel(SkillType.HERBALISM) >= 600) if(PP.getSkillLevel(SkillType.HERBALISM) >= 600)
bonus++; bonus++;
//Change wheat to be whatever stage based on the bonus //Change wheat to be whatever stage based on the bonus
if(bonus == 1) if(bonus == 1)
block.setData((byte) 0x2); block.setData((byte) 0x2);
if(bonus == 2) if(bonus == 2)
block.setData((byte) 0x3); block.setData((byte) 0x3);
if(bonus == 3) if(bonus == 3)
block.setData((byte) 0x4); block.setData((byte) 0x4);
} }
} }
/* /*
* We need to check not-wheat stuff for if it was placed by the player or not * We need to check not-wheat stuff for if it was placed by the player or not
*/ */
if(block.getData() != (byte) 5) if(block.getData() != (byte) 5)
{ {
//Cactus //Cactus
if(type == 81){ if(type == 81){
//Setup the loop //Setup the loop
World world = block.getWorld(); World world = block.getWorld();
Block[] blockArray = new Block[3]; Block[] blockArray = new Block[3];
blockArray[0] = block; blockArray[0] = block;
blockArray[1] = world.getBlockAt(block.getX(), block.getY()+1, block.getZ()); blockArray[1] = world.getBlockAt(block.getX(), block.getY()+1, block.getZ());
blockArray[2] = world.getBlockAt(block.getX(), block.getY()+2, block.getZ()); blockArray[2] = world.getBlockAt(block.getX(), block.getY()+2, block.getZ());
Material[] materialArray = new Material[3]; Material[] materialArray = new Material[3];
materialArray[0] = blockArray[0].getType(); materialArray[0] = blockArray[0].getType();
materialArray[1] = blockArray[1].getType(); materialArray[1] = blockArray[1].getType();
materialArray[2] = blockArray[2].getType(); materialArray[2] = blockArray[2].getType();
byte[] byteArray = new byte[3]; byte[] byteArray = new byte[3];
byteArray[0] = blockArray[0].getData(); byteArray[0] = blockArray[0].getData();
byteArray[1] = blockArray[0].getData(); byteArray[1] = blockArray[0].getData();
byteArray[2] = blockArray[0].getData(); byteArray[2] = blockArray[0].getData();
int x = 0; int x = 0;
for(Block target : blockArray) for(Block target : blockArray)
{ {
if(materialArray[x] == Material.CACTUS) if(materialArray[x] == Material.CACTUS)
{ {
is = new ItemStack(Material.CACTUS, 1, (byte)0, (byte)0); is = new ItemStack(Material.CACTUS, 1, (byte)0, (byte)0);
if(byteArray[x] != (byte) 5) if(byteArray[x] != (byte) 5)
{ {
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM))
{ {
loc.getWorld().dropItemNaturally(target.getLocation(), is); loc.getWorld().dropItemNaturally(target.getLocation(), is);
} }
PP.addXP(SkillType.HERBALISM, LoadProperties.mcactus, player); PP.addXP(SkillType.HERBALISM, LoadProperties.mcactus, player);
} }
} }
x++; x++;
} }
} }
//Sugar Canes //Sugar Canes
if(type == 83) if(type == 83)
{ {
//Setup the loop //Setup the loop
World world = block.getWorld(); World world = block.getWorld();
Block[] blockArray = new Block[3]; Block[] blockArray = new Block[3];
blockArray[0] = block; blockArray[0] = block;
blockArray[1] = world.getBlockAt(block.getX(), block.getY()+1, block.getZ()); blockArray[1] = world.getBlockAt(block.getX(), block.getY()+1, block.getZ());
blockArray[2] = world.getBlockAt(block.getX(), block.getY()+2, block.getZ()); blockArray[2] = world.getBlockAt(block.getX(), block.getY()+2, block.getZ());
Material[] materialArray = new Material[3]; Material[] materialArray = new Material[3];
materialArray[0] = blockArray[0].getType(); materialArray[0] = blockArray[0].getType();
materialArray[1] = blockArray[1].getType(); materialArray[1] = blockArray[1].getType();
materialArray[2] = blockArray[2].getType(); materialArray[2] = blockArray[2].getType();
byte[] byteArray = new byte[3]; byte[] byteArray = new byte[3];
byteArray[0] = blockArray[0].getData(); byteArray[0] = blockArray[0].getData();
byteArray[1] = blockArray[0].getData(); byteArray[1] = blockArray[0].getData();
byteArray[2] = blockArray[0].getData(); byteArray[2] = blockArray[0].getData();
int x = 0; int x = 0;
for(Block target : blockArray) for(Block target : blockArray)
{ {
if(materialArray[x] == Material.SUGAR_CANE_BLOCK) if(materialArray[x] == Material.SUGAR_CANE_BLOCK)
{ {
is = new ItemStack(Material.SUGAR_CANE, 1, (byte)0, (byte)0); is = new ItemStack(Material.SUGAR_CANE, 1, (byte)0, (byte)0);
//Check for being placed by the player //Check for being placed by the player
if(byteArray[x] != (byte) 5) if(byteArray[x] != (byte) 5)
{ {
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM))
{ {
loc.getWorld().dropItemNaturally(target.getLocation(), is); loc.getWorld().dropItemNaturally(target.getLocation(), is);
} }
PP.addXP(SkillType.HERBALISM, LoadProperties.msugar, player); PP.addXP(SkillType.HERBALISM, LoadProperties.msugar, player);
} }
} }
x++; x++;
} }
} }
//Pumpkins //Pumpkins
if((type == 91 || type == 86)) if((type == 91 || type == 86))
{ {
mat = Material.getMaterial(block.getTypeId()); mat = Material.getMaterial(block.getTypeId());
is = new ItemStack(mat, 1, (byte)0, (byte)0); is = new ItemStack(mat, 1, (byte)0, (byte)0);
if(player != null) if(player != null)
{ {
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM))
{ {
loc.getWorld().dropItemNaturally(loc, is); loc.getWorld().dropItemNaturally(loc, is);
} }
} }
PP.addXP(SkillType.HERBALISM, LoadProperties.mpumpkin, player); PP.addXP(SkillType.HERBALISM, LoadProperties.mpumpkin, player);
} }
//Melon //Melon
if(type == 103) if(type == 103)
{ {
mat = Material.getMaterial(block.getTypeId()); mat = Material.getMaterial(block.getTypeId());
is = new ItemStack(mat, 1, (byte)0, (byte)0); is = new ItemStack(mat, 1, (byte)0, (byte)0);
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM))
{ {
loc.getWorld().dropItemNaturally(loc, is); loc.getWorld().dropItemNaturally(loc, is);
} }
PP.addXP(SkillType.HERBALISM, LoadProperties.mmelon, player); PP.addXP(SkillType.HERBALISM, LoadProperties.mmelon, player);
} }
//Mushroom //Mushroom
if(type == 39 || type == 40) if(type == 39 || type == 40)
{ {
mat = Material.getMaterial(block.getTypeId()); mat = Material.getMaterial(block.getTypeId());
is = new ItemStack(mat, 1, (byte)0, (byte)0); is = new ItemStack(mat, 1, (byte)0, (byte)0);
if(player != null) if(player != null)
{ {
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)) if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM))
{ {
loc.getWorld().dropItemNaturally(loc, is); loc.getWorld().dropItemNaturally(loc, is);
} }
} }
PP.addXP(SkillType.HERBALISM, LoadProperties.mmushroom, player); PP.addXP(SkillType.HERBALISM, LoadProperties.mmushroom, player);
} }
//Flower //Flower
if(type == 37 || type == 38){ if(type == 37 || type == 38){
mat = Material.getMaterial(block.getTypeId()); mat = Material.getMaterial(block.getTypeId());
is = new ItemStack(mat, 1, (byte)0, (byte)0); is = new ItemStack(mat, 1, (byte)0, (byte)0);
if(player != null){ if(player != null){
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)){ if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.HERBALISM)){
loc.getWorld().dropItemNaturally(loc, is); loc.getWorld().dropItemNaturally(loc, is);
} }
} }
PP.addXP(SkillType.HERBALISM, LoadProperties.mflower, player); PP.addXP(SkillType.HERBALISM, LoadProperties.mflower, player);
} }
} }
Skills.XpCheckSkill(SkillType.HERBALISM, player); Skills.XpCheckSkill(SkillType.HERBALISM, player);
} }
} }

View File

@ -1,440 +1,440 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import net.minecraft.server.Enchantment; import net.minecraft.server.Enchantment;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Statistic; import org.bukkit.Statistic;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.getspout.spoutapi.sound.SoundEffect; import org.getspout.spoutapi.sound.SoundEffect;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class Mining public class Mining
{ {
public static void superBreakerCheck(Player player, Block block) public static void superBreakerCheck(Player player, Block block)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(m.isMiningPick(player.getItemInHand())) if(m.isMiningPick(player.getItemInHand()))
{ {
if(block != null) if(block != null)
{ {
if(!m.abilityBlockCheck(block)) if(!m.abilityBlockCheck(block))
return; return;
} }
if(PP.getPickaxePreparationMode()) if(PP.getPickaxePreparationMode())
{ {
PP.setPickaxePreparationMode(false); PP.setPickaxePreparationMode(false);
} }
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.MINING); int x = PP.getSkillLevel(SkillType.MINING);
while(x >= 50) while(x >= 50)
{ {
x-=50; x-=50;
ticks++; ticks++;
} }
if(!PP.getSuperBreakerMode() && Skills.cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)){ if(!PP.getSuperBreakerMode() && Skills.cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)){
player.sendMessage(mcLocale.getString("Skills.SuperBreakerOn")); player.sendMessage(mcLocale.getString("Skills.SuperBreakerOn"));
for(Player y : player.getWorld().getPlayers()) for(Player y : player.getWorld().getPlayers())
{ {
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(mcLocale.getString("Skills.SuperBreakerPlayer", new Object[] {player.getName()})); y.sendMessage(mcLocale.getString("Skills.SuperBreakerPlayer", new Object[] {player.getName()}));
} }
PP.setSuperBreakerActivatedTimeStamp(System.currentTimeMillis()); PP.setSuperBreakerActivatedTimeStamp(System.currentTimeMillis());
PP.setSuperBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); PP.setSuperBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
PP.setSuperBreakerMode(true); PP.setSuperBreakerMode(true);
} }
} }
} }
public static void blockProcSimulate(Block block) public static void blockProcSimulate(Block block)
{ {
Location loc = block.getLocation(); Location loc = block.getLocation();
Material mat = Material.getMaterial(block.getTypeId()); Material mat = Material.getMaterial(block.getTypeId());
byte damage = 0; byte damage = 0;
ItemStack item = new ItemStack(mat, 1, (byte)0, damage); ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
if(block.getTypeId() != 89 && block.getTypeId() != 73 && block.getTypeId() != 74 && block.getTypeId() != 56 if(block.getTypeId() != 89 && block.getTypeId() != 73 && block.getTypeId() != 74 && block.getTypeId() != 56
&& block.getTypeId() != 21 && block.getTypeId() != 1 && block.getTypeId() != 16) && block.getTypeId() != 21 && block.getTypeId() != 1 && block.getTypeId() != 16)
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
if(block.getTypeId() == 89) if(block.getTypeId() == 89)
{ {
mat = Material.getMaterial(348); mat = Material.getMaterial(348);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
} }
if(block.getTypeId() == 73 || block.getTypeId() == 74) if(block.getTypeId() == 73 || block.getTypeId() == 74)
{ {
mat = Material.getMaterial(331); mat = Material.getMaterial(331);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
if(Math.random() * 10 > 5){ if(Math.random() * 10 > 5){
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
} }
} }
if(block.getTypeId() == 21) if(block.getTypeId() == 21)
{ {
mat = Material.getMaterial(351); mat = Material.getMaterial(351);
item = new ItemStack(mat, 1, (byte)0,(byte)0x4); 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);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
} }
if(block.getTypeId() == 56) if(block.getTypeId() == 56)
{ {
mat = Material.getMaterial(264); mat = Material.getMaterial(264);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
} }
if(block.getTypeId() == 1) if(block.getTypeId() == 1)
{ {
mat = Material.getMaterial(4); mat = Material.getMaterial(4);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
} }
if(block.getTypeId() == 16) if(block.getTypeId() == 16)
{ {
mat = Material.getMaterial(263); mat = Material.getMaterial(263);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
} }
} }
public static void blockProcCheck(Block block, Player player) public static void blockProcCheck(Block block, Player player)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.MINING)) if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.MINING))
{ {
blockProcSimulate(block); blockProcSimulate(block);
return; return;
} }
} }
public static void miningBlockCheck(Boolean smelt, Player player, Block block, mcMMO plugin) public static void miningBlockCheck(Boolean smelt, Player player, Block block, mcMMO plugin)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(plugin.misc.blockWatchList.contains(block) || block.getData() == (byte) 5) if(plugin.misc.blockWatchList.contains(block) || block.getData() == (byte) 5)
return; return;
int xp = 0; int xp = 0;
if(block.getTypeId() == 1 || block.getTypeId() == 24) if(block.getTypeId() == 1 || block.getTypeId() == 24)
{ {
xp += LoadProperties.mstone; xp += LoadProperties.mstone;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
//OBSIDIAN //OBSIDIAN
if(block.getTypeId() == 49) if(block.getTypeId() == 49)
{ {
xp += LoadProperties.mobsidian; xp += LoadProperties.mobsidian;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
//NETHERRACK //NETHERRACK
if(block.getTypeId() == 87) if(block.getTypeId() == 87)
{ {
xp += LoadProperties.mnetherrack; xp += LoadProperties.mnetherrack;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
//GLOWSTONE //GLOWSTONE
if(block.getTypeId() == 89) if(block.getTypeId() == 89)
{ {
xp += LoadProperties.mglowstone; xp += LoadProperties.mglowstone;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
//COAL //COAL
if(block.getTypeId() == 16) if(block.getTypeId() == 16)
{ {
xp += LoadProperties.mcoal; xp += LoadProperties.mcoal;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
//GOLD //GOLD
if(block.getTypeId() == 14) if(block.getTypeId() == 14)
{ {
xp += LoadProperties.mgold; xp += LoadProperties.mgold;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
//DIAMOND //DIAMOND
if(block.getTypeId() == 56){ if(block.getTypeId() == 56){
xp += LoadProperties.mdiamond; xp += LoadProperties.mdiamond;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
//IRON //IRON
if(block.getTypeId() == 15) if(block.getTypeId() == 15)
{ {
xp += LoadProperties.miron; xp += LoadProperties.miron;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
//REDSTONE //REDSTONE
if(block.getTypeId() == 73 || block.getTypeId() == 74) if(block.getTypeId() == 73 || block.getTypeId() == 74)
{ {
xp += LoadProperties.mredstone; xp += LoadProperties.mredstone;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
//LAPUS //LAPUS
if(block.getTypeId() == 21) if(block.getTypeId() == 21)
{ {
xp += LoadProperties.mlapis; xp += LoadProperties.mlapis;
if(smelt = false) if(smelt = false)
blockProcCheck(block, player); blockProcCheck(block, player);
else else
blockProcCheck(block, player); blockProcCheck(block, player);
} }
PP.addXP(SkillType.MINING, xp, player); PP.addXP(SkillType.MINING, xp, player);
Skills.XpCheckSkill(SkillType.MINING, player); Skills.XpCheckSkill(SkillType.MINING, player);
} }
/* /*
* Handling SuperBreaker stuff * Handling SuperBreaker stuff
*/ */
public static Boolean canBeSuperBroken(Block block) public static Boolean canBeSuperBroken(Block block)
{ {
int t = block.getTypeId(); 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) 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; return true;
} else { } else {
return false; return false;
} }
} }
public static void SuperBreakerBlockCheck(Player player, Block block, mcMMO plugin) public static void SuperBreakerBlockCheck(Player player, Block block, mcMMO plugin)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(LoadProperties.toolsLoseDurabilityFromAbilities) if(LoadProperties.toolsLoseDurabilityFromAbilities)
{ {
if(player.getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) if(player.getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY))
{ {
} }
m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss);
} }
Location loc = block.getLocation(); Location loc = block.getLocation();
Material mat = Material.getMaterial(block.getTypeId()); Material mat = Material.getMaterial(block.getTypeId());
int xp = 0; int xp = 0;
byte damage = 0; byte damage = 0;
ItemStack item = new ItemStack(mat, 1, (byte)0, damage); ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
if(block.getTypeId() == 1 || block.getTypeId() == 24) if(block.getTypeId() == 1 || block.getTypeId() == 24)
{ {
if(block.getTypeId() == 1) if(block.getTypeId() == 1)
{ {
mat = Material.COBBLESTONE; mat = Material.COBBLESTONE;
if(!plugin.misc.blockWatchList.contains(block) && block.getData() != (byte) 5) if(!plugin.misc.blockWatchList.contains(block) && block.getData() != (byte) 5)
{ {
xp += LoadProperties.mstone; xp += LoadProperties.mstone;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
} else } else
{ {
mat = Material.SANDSTONE; mat = Material.SANDSTONE;
if(!plugin.misc.blockWatchList.contains(block) && block.getData() != (byte) 5) if(!plugin.misc.blockWatchList.contains(block) && block.getData() != (byte) 5)
{ {
xp += LoadProperties.msandstone; xp += LoadProperties.msandstone;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
} }
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
//NETHERRACK //NETHERRACK
if(block.getTypeId() == 87) if(block.getTypeId() == 87)
{ {
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
xp += LoadProperties.mnetherrack; xp += LoadProperties.mnetherrack;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
mat = Material.getMaterial(87); mat = Material.getMaterial(87);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
//GLOWSTONE //GLOWSTONE
if(block.getTypeId() == 89) if(block.getTypeId() == 89)
{ {
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
xp += LoadProperties.mglowstone; xp += LoadProperties.mglowstone;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
mat = Material.getMaterial(348); mat = Material.getMaterial(348);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
//COAL //COAL
if(block.getTypeId() == 16) if(block.getTypeId() == 16)
{ {
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
xp += LoadProperties.mcoal; xp += LoadProperties.mcoal;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
mat = Material.getMaterial(263); mat = Material.getMaterial(263);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
//GOLD //GOLD
if(block.getTypeId() == 14 && m.getTier(player) >= 3) if(block.getTypeId() == 14 && m.getTier(player) >= 3)
{ {
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
xp += LoadProperties.mgold; xp += LoadProperties.mgold;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
//OBSIDIAN //OBSIDIAN
if(block.getTypeId() == 49 && m.getTier(player) >= 4) if(block.getTypeId() == 49 && m.getTier(player) >= 4)
{ {
if(LoadProperties.toolsLoseDurabilityFromAbilities) if(LoadProperties.toolsLoseDurabilityFromAbilities)
m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss); m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss);
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
xp += LoadProperties.mobsidian; xp += LoadProperties.mobsidian;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
mat = Material.getMaterial(49); mat = Material.getMaterial(49);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
//DIAMOND //DIAMOND
if(block.getTypeId() == 56 && m.getTier(player) >= 3) if(block.getTypeId() == 56 && m.getTier(player) >= 3)
{ {
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
xp += LoadProperties.mdiamond; xp += LoadProperties.mdiamond;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
mat = Material.getMaterial(264); mat = Material.getMaterial(264);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
//IRON //IRON
if(block.getTypeId() == 15 && m.getTier(player) >= 2) if(block.getTypeId() == 15 && m.getTier(player) >= 2)
{ {
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
xp += LoadProperties.miron; xp += LoadProperties.miron;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
//REDSTONE //REDSTONE
if((block.getTypeId() == 73 || block.getTypeId() == 74) && m.getTier(player) >= 4) if((block.getTypeId() == 73 || block.getTypeId() == 74) && m.getTier(player) >= 4)
{ {
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5) if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5)
{ {
xp += LoadProperties.mredstone; xp += LoadProperties.mredstone;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
mat = Material.getMaterial(331); mat = Material.getMaterial(331);
item = new ItemStack(mat, 1, (byte)0, damage); item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
if(Math.random() * 10 > 5) if(Math.random() * 10 > 5)
{ {
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
} }
player.incrementStatistic(Statistic.MINE_BLOCK, block.getType()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
//LAPUS //LAPUS
if(block.getTypeId() == 21 && m.getTier(player) >= 3){ if(block.getTypeId() == 21 && m.getTier(player) >= 3){
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){ if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
xp += LoadProperties.mlapis; xp += LoadProperties.mlapis;
blockProcCheck(block, player); blockProcCheck(block, player);
blockProcCheck(block, player); blockProcCheck(block, player);
} }
mat = Material.getMaterial(351); mat = Material.getMaterial(351);
item = new ItemStack(mat, 1, (byte)0,(byte)0x4); 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);
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()); player.incrementStatistic(Statistic.MINE_BLOCK, block.getType());
block.setType(Material.AIR); block.setType(Material.AIR);
} }
if(block.getData() != (byte) 5) if(block.getData() != (byte) 5)
PP.addXP(SkillType.MINING, xp, player); PP.addXP(SkillType.MINING, xp, player);
if(LoadProperties.spoutEnabled) if(LoadProperties.spoutEnabled)
SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation()); SpoutStuff.playSoundForPlayer(SoundEffect.POP, player, block.getLocation());
Skills.XpCheckSkill(SkillType.MINING, player); Skills.XpCheckSkill(SkillType.MINING, player);
} }
} }

View File

@ -1,437 +1,437 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.getspout.spoutapi.SpoutManager; import org.getspout.spoutapi.SpoutManager;
import org.getspout.spoutapi.player.SpoutPlayer; import org.getspout.spoutapi.player.SpoutPlayer;
import com.gmail.nossr50.Leaderboard; import com.gmail.nossr50.Leaderboard;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.spout.SpoutStuff;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.PlayerStat; import com.gmail.nossr50.datatypes.PlayerStat;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class Skills public class Skills
{ {
protected static final Logger log = Logger.getLogger("Minecraft"); protected static final Logger log = Logger.getLogger("Minecraft");
public void updateSQLfromFile(Player player){ public void updateSQLfromFile(Player player){
} }
public static boolean cooldownOver(Player player, long oldTime, int cooldown){ public static boolean cooldownOver(Player player, long oldTime, int cooldown){
long currentTime = System.currentTimeMillis(); long currentTime = System.currentTimeMillis();
if(currentTime - oldTime >= (cooldown * 1000)){ if(currentTime - oldTime >= (cooldown * 1000)){
return true; return true;
} else { } else {
return false; return false;
} }
} }
public boolean hasArrows(Player player){ public boolean hasArrows(Player player){
for(ItemStack x : player.getInventory().getContents()){ for(ItemStack x : player.getInventory().getContents()){
if (x.getTypeId() == 262){ if (x.getTypeId() == 262){
return true; return true;
} }
} }
return false; return false;
} }
public void addArrows(Player player){ public void addArrows(Player player){
for(ItemStack x : player.getInventory().getContents()){ for(ItemStack x : player.getInventory().getContents()){
if (x.getTypeId() == 262){ if (x.getTypeId() == 262){
x.setAmount(x.getAmount() + 1); x.setAmount(x.getAmount() + 1);
return; return;
} }
} }
} }
public static int calculateTimeLeft(Player player, long deactivatedTimeStamp, int cooldown) public static int calculateTimeLeft(Player player, long deactivatedTimeStamp, int cooldown)
{ {
return (int) (((deactivatedTimeStamp + (cooldown * 1000)) - System.currentTimeMillis())/1000); return (int) (((deactivatedTimeStamp + (cooldown * 1000)) - System.currentTimeMillis())/1000);
} }
public static void watchCooldowns(Player player){ public static void watchCooldowns(Player player){
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(!PP.getGreenTerraInformed() && System.currentTimeMillis() - (PP.getGreenTerraDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){ if(!PP.getGreenTerraInformed() && System.currentTimeMillis() - (PP.getGreenTerraDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){
PP.setGreenTerraInformed(true); PP.setGreenTerraInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourGreenTerra")); player.sendMessage(mcLocale.getString("Skills.YourGreenTerra"));
} }
if(!PP.getTreeFellerInformed() && System.currentTimeMillis() - (PP.getTreeFellerDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){ if(!PP.getTreeFellerInformed() && System.currentTimeMillis() - (PP.getTreeFellerDeactivatedTimeStamp()*1000) >= (LoadProperties.greenTerraCooldown * 1000)){
PP.setTreeFellerInformed(true); PP.setTreeFellerInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourTreeFeller")); player.sendMessage(mcLocale.getString("Skills.YourTreeFeller"));
} }
if(!PP.getSuperBreakerInformed() && System.currentTimeMillis() - (PP.getSuperBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.superBreakerCooldown * 1000)){ if(!PP.getSuperBreakerInformed() && System.currentTimeMillis() - (PP.getSuperBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.superBreakerCooldown * 1000)){
PP.setSuperBreakerInformed(true); PP.setSuperBreakerInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourSuperBreaker")); player.sendMessage(mcLocale.getString("Skills.YourSuperBreaker"));
} }
if(!PP.getSerratedStrikesInformed() && System.currentTimeMillis() - (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) >= (LoadProperties.serratedStrikeCooldown * 1000)){ if(!PP.getSerratedStrikesInformed() && System.currentTimeMillis() - (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) >= (LoadProperties.serratedStrikeCooldown * 1000)){
PP.setSerratedStrikesInformed(true); PP.setSerratedStrikesInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourSerratedStrikes")); player.sendMessage(mcLocale.getString("Skills.YourSerratedStrikes"));
} }
if(!PP.getBerserkInformed() && System.currentTimeMillis() - (PP.getBerserkDeactivatedTimeStamp()*1000) >= (LoadProperties.berserkCooldown * 1000)){ if(!PP.getBerserkInformed() && System.currentTimeMillis() - (PP.getBerserkDeactivatedTimeStamp()*1000) >= (LoadProperties.berserkCooldown * 1000)){
PP.setBerserkInformed(true); PP.setBerserkInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourBerserk")); player.sendMessage(mcLocale.getString("Skills.YourBerserk"));
} }
if(!PP.getSkullSplitterInformed() && System.currentTimeMillis() - (PP.getSkullSplitterDeactivatedTimeStamp()*1000) >= (LoadProperties.skullSplitterCooldown * 1000)){ if(!PP.getSkullSplitterInformed() && System.currentTimeMillis() - (PP.getSkullSplitterDeactivatedTimeStamp()*1000) >= (LoadProperties.skullSplitterCooldown * 1000)){
PP.setSkullSplitterInformed(true); PP.setSkullSplitterInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourSkullSplitter")); player.sendMessage(mcLocale.getString("Skills.YourSkullSplitter"));
} }
if(!PP.getGigaDrillBreakerInformed() && System.currentTimeMillis() - (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.gigaDrillBreakerCooldown * 1000)){ if(!PP.getGigaDrillBreakerInformed() && System.currentTimeMillis() - (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) >= (LoadProperties.gigaDrillBreakerCooldown * 1000)){
PP.setGigaDrillBreakerInformed(true); PP.setGigaDrillBreakerInformed(true);
player.sendMessage(mcLocale.getString("Skills.YourGigaDrillBreaker")); player.sendMessage(mcLocale.getString("Skills.YourGigaDrillBreaker"));
} }
} }
public static void hoeReadinessCheck(Player player) public static void hoeReadinessCheck(Player player)
{ {
if(LoadProperties.enableOnlyActivateWhenSneaking && !player.isSneaking()) if(LoadProperties.enableOnlyActivateWhenSneaking && !player.isSneaking())
return; return;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(mcPermissions.getInstance().herbalismAbility(player) && m.isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){ if(mcPermissions.getInstance().herbalismAbility(player) && m.isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){
if(!PP.getGreenTerraMode() && !cooldownOver(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)){ if(!PP.getGreenTerraMode() && !cooldownOver(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)){
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGreenTerraDeactivatedTimeStamp()*1000), LoadProperties.greenTerraCooldown)+"s)");
return; return;
} }
if(LoadProperties.enableAbilityMessages) if(LoadProperties.enableAbilityMessages)
player.sendMessage(mcLocale.getString("Skills.ReadyHoe")); player.sendMessage(mcLocale.getString("Skills.ReadyHoe"));
PP.setHoePreparationATS(System.currentTimeMillis()); PP.setHoePreparationATS(System.currentTimeMillis());
PP.setHoePreparationMode(true); PP.setHoePreparationMode(true);
} }
} }
public static void monitorSkills(Player player){ public static void monitorSkills(Player player){
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(PP != null) if(PP != null)
{ {
if(PP.getHoePreparationMode() && System.currentTimeMillis() - (PP.getHoePreparationATS()*1000) >= 4000){ if(PP.getHoePreparationMode() && System.currentTimeMillis() - (PP.getHoePreparationATS()*1000) >= 4000){
PP.setHoePreparationMode(false); PP.setHoePreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerHoe")); player.sendMessage(mcLocale.getString("Skills.LowerHoe"));
} }
if(PP.getAxePreparationMode() && System.currentTimeMillis() - (PP.getAxePreparationATS()*1000) >= 4000){ if(PP.getAxePreparationMode() && System.currentTimeMillis() - (PP.getAxePreparationATS()*1000) >= 4000){
PP.setAxePreparationMode(false); PP.setAxePreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerAxe")); player.sendMessage(mcLocale.getString("Skills.LowerAxe"));
} }
if(PP.getPickaxePreparationMode() && System.currentTimeMillis() - (PP.getPickaxePreparationATS()*1000) >= 4000){ if(PP.getPickaxePreparationMode() && System.currentTimeMillis() - (PP.getPickaxePreparationATS()*1000) >= 4000){
PP.setPickaxePreparationMode(false); PP.setPickaxePreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerPickAxe")); player.sendMessage(mcLocale.getString("Skills.LowerPickAxe"));
} }
if(PP.getSwordsPreparationMode() && System.currentTimeMillis() - (PP.getSwordsPreparationATS()*1000) >= 4000){ if(PP.getSwordsPreparationMode() && System.currentTimeMillis() - (PP.getSwordsPreparationATS()*1000) >= 4000){
PP.setSwordsPreparationMode(false); PP.setSwordsPreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerSword")); player.sendMessage(mcLocale.getString("Skills.LowerSword"));
} }
if(PP.getFistsPreparationMode() && System.currentTimeMillis() - (PP.getFistsPreparationATS()*1000) >= 4000){ if(PP.getFistsPreparationMode() && System.currentTimeMillis() - (PP.getFistsPreparationATS()*1000) >= 4000){
PP.setFistsPreparationMode(false); PP.setFistsPreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerFists")); player.sendMessage(mcLocale.getString("Skills.LowerFists"));
} }
if(PP.getShovelPreparationMode() && System.currentTimeMillis() - (PP.getShovelPreparationATS()*1000) >= 4000){ if(PP.getShovelPreparationMode() && System.currentTimeMillis() - (PP.getShovelPreparationATS()*1000) >= 4000){
PP.setShovelPreparationMode(false); PP.setShovelPreparationMode(false);
player.sendMessage(mcLocale.getString("Skills.LowerShovel")); player.sendMessage(mcLocale.getString("Skills.LowerShovel"));
} }
/* /*
* HERBALISM ABILITY * HERBALISM ABILITY
*/ */
if(mcPermissions.getInstance().herbalismAbility(player)){ if(mcPermissions.getInstance().herbalismAbility(player)){
if(PP.getGreenTerraMode() && (PP.getGreenTerraDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ if(PP.getGreenTerraMode() && (PP.getGreenTerraDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setGreenTerraMode(false); PP.setGreenTerraMode(false);
PP.setGreenTerraInformed(false); PP.setGreenTerraInformed(false);
player.sendMessage(mcLocale.getString("Skills.GreenTerraOff")); player.sendMessage(mcLocale.getString("Skills.GreenTerraOff"));
} }
} }
/* /*
* AXES ABILITY * AXES ABILITY
*/ */
if(mcPermissions.getInstance().axesAbility(player)){ if(mcPermissions.getInstance().axesAbility(player)){
if(PP.getSkullSplitterMode() && (PP.getSkullSplitterDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ if(PP.getSkullSplitterMode() && (PP.getSkullSplitterDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setSkullSplitterMode(false); PP.setSkullSplitterMode(false);
PP.setSkullSplitterInformed(false); PP.setSkullSplitterInformed(false);
player.sendMessage(mcLocale.getString("Skills.SkullSplitterOff")); player.sendMessage(mcLocale.getString("Skills.SkullSplitterOff"));
} }
} }
/* /*
* WOODCUTTING ABILITY * WOODCUTTING ABILITY
*/ */
if(mcPermissions.getInstance().woodCuttingAbility(player)){ if(mcPermissions.getInstance().woodCuttingAbility(player)){
if(PP.getTreeFellerMode() && (PP.getTreeFellerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ if(PP.getTreeFellerMode() && (PP.getTreeFellerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setTreeFellerMode(false); PP.setTreeFellerMode(false);
PP.setTreeFellerInformed(false); PP.setTreeFellerInformed(false);
player.sendMessage(mcLocale.getString("Skills.TreeFellerOff")); player.sendMessage(mcLocale.getString("Skills.TreeFellerOff"));
} }
} }
/* /*
* MINING ABILITY * MINING ABILITY
*/ */
if(mcPermissions.getInstance().miningAbility(player)){ if(mcPermissions.getInstance().miningAbility(player)){
if(PP.getSuperBreakerMode() && (PP.getSuperBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ if(PP.getSuperBreakerMode() && (PP.getSuperBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setSuperBreakerMode(false); PP.setSuperBreakerMode(false);
PP.setSuperBreakerInformed(false); PP.setSuperBreakerInformed(false);
player.sendMessage(mcLocale.getString("Skills.SuperBreakerOff")); player.sendMessage(mcLocale.getString("Skills.SuperBreakerOff"));
} }
} }
/* /*
* EXCAVATION ABILITY * EXCAVATION ABILITY
*/ */
if(mcPermissions.getInstance().excavationAbility(player)){ if(mcPermissions.getInstance().excavationAbility(player)){
if(PP.getGigaDrillBreakerMode() && (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ if(PP.getGigaDrillBreakerMode() && (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setGigaDrillBreakerMode(false); PP.setGigaDrillBreakerMode(false);
PP.setGigaDrillBreakerInformed(false); PP.setGigaDrillBreakerInformed(false);
player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOff")); player.sendMessage(mcLocale.getString("Skills.GigaDrillBreakerOff"));
} }
} }
/* /*
* SWORDS ABILITY * SWORDS ABILITY
*/ */
if(mcPermissions.getInstance().swordsAbility(player)){ if(mcPermissions.getInstance().swordsAbility(player)){
if(PP.getSerratedStrikesMode() && (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ if(PP.getSerratedStrikesMode() && (PP.getSerratedStrikesDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setSerratedStrikesMode(false); PP.setSerratedStrikesMode(false);
PP.setSerratedStrikesInformed(false); PP.setSerratedStrikesInformed(false);
player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOff")); player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOff"));
} }
} }
/* /*
* UNARMED ABILITY * UNARMED ABILITY
*/ */
if(mcPermissions.getInstance().unarmedAbility(player)){ if(mcPermissions.getInstance().unarmedAbility(player)){
if(PP.getBerserkMode() && (PP.getBerserkDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){ if(PP.getBerserkMode() && (PP.getBerserkDeactivatedTimeStamp()*1000) <= System.currentTimeMillis()){
PP.setBerserkMode(false); PP.setBerserkMode(false);
PP.setBerserkInformed(false); PP.setBerserkInformed(false);
player.sendMessage(mcLocale.getString("Skills.BerserkOff")); player.sendMessage(mcLocale.getString("Skills.BerserkOff"));
} }
} }
} }
} }
public static void abilityActivationCheck(Player player) public static void abilityActivationCheck(Player player)
{ {
if(LoadProperties.enableOnlyActivateWhenSneaking && !player.isSneaking()) if(LoadProperties.enableOnlyActivateWhenSneaking && !player.isSneaking())
return; return;
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(PP != null) if(PP != null)
{ {
if(!PP.getAbilityUse() || PP.getSuperBreakerMode() || PP.getSerratedStrikesMode() || PP.getTreeFellerMode() || PP.getGreenTerraMode() || PP.getBerserkMode() || PP.getGigaDrillBreakerMode()) if(!PP.getAbilityUse() || PP.getSuperBreakerMode() || PP.getSerratedStrikesMode() || PP.getTreeFellerMode() || PP.getGreenTerraMode() || PP.getBerserkMode() || PP.getGigaDrillBreakerMode())
return; return;
if(mcPermissions.getInstance().miningAbility(player) && m.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode()) if(mcPermissions.getInstance().miningAbility(player) && m.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode())
{ {
if(!PP.getSuperBreakerMode() && !cooldownOver(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown)) if(!PP.getSuperBreakerMode() && !cooldownOver(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSuperBreakerDeactivatedTimeStamp()*1000), LoadProperties.superBreakerCooldown)+"s)");
return; return;
} }
if(LoadProperties.enableAbilityMessages) if(LoadProperties.enableAbilityMessages)
player.sendMessage(mcLocale.getString("Skills.ReadyPickAxe")); player.sendMessage(mcLocale.getString("Skills.ReadyPickAxe"));
PP.setPickaxePreparationATS(System.currentTimeMillis()); PP.setPickaxePreparationATS(System.currentTimeMillis());
PP.setPickaxePreparationMode(true); PP.setPickaxePreparationMode(true);
} }
if(mcPermissions.getInstance().excavationAbility(player) && m.isShovel(player.getItemInHand()) && !PP.getShovelPreparationMode()) if(mcPermissions.getInstance().excavationAbility(player) && m.isShovel(player.getItemInHand()) && !PP.getShovelPreparationMode())
{ {
if(!PP.getGigaDrillBreakerMode() && !cooldownOver(player, (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000), LoadProperties.gigaDrillBreakerCooldown)) if(!PP.getGigaDrillBreakerMode() && !cooldownOver(player, (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000), LoadProperties.gigaDrillBreakerCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000), LoadProperties.gigaDrillBreakerCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getGigaDrillBreakerDeactivatedTimeStamp()*1000), LoadProperties.gigaDrillBreakerCooldown)+"s)");
return; return;
} }
if(LoadProperties.enableAbilityMessages) if(LoadProperties.enableAbilityMessages)
player.sendMessage(mcLocale.getString("Skills.ReadyShovel")); player.sendMessage(mcLocale.getString("Skills.ReadyShovel"));
PP.setShovelPreparationATS(System.currentTimeMillis()); PP.setShovelPreparationATS(System.currentTimeMillis());
PP.setShovelPreparationMode(true); PP.setShovelPreparationMode(true);
} }
if(mcPermissions.getInstance().swordsAbility(player) && m.isSwords(player.getItemInHand()) && !PP.getSwordsPreparationMode()) if(mcPermissions.getInstance().swordsAbility(player) && m.isSwords(player.getItemInHand()) && !PP.getSwordsPreparationMode())
{ {
if(!PP.getSerratedStrikesMode() && !cooldownOver(player, (PP.getSerratedStrikesDeactivatedTimeStamp()*1000), LoadProperties.serratedStrikeCooldown)) if(!PP.getSerratedStrikesMode() && !cooldownOver(player, (PP.getSerratedStrikesDeactivatedTimeStamp()*1000), LoadProperties.serratedStrikeCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSerratedStrikesDeactivatedTimeStamp()*1000), LoadProperties.serratedStrikeCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getSerratedStrikesDeactivatedTimeStamp()*1000), LoadProperties.serratedStrikeCooldown)+"s)");
return; return;
} }
if(LoadProperties.enableAbilityMessages) if(LoadProperties.enableAbilityMessages)
player.sendMessage(mcLocale.getString("Skills.ReadySword")); player.sendMessage(mcLocale.getString("Skills.ReadySword"));
PP.setSwordsPreparationATS(System.currentTimeMillis()); PP.setSwordsPreparationATS(System.currentTimeMillis());
PP.setSwordsPreparationMode(true); PP.setSwordsPreparationMode(true);
} }
if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !PP.getFistsPreparationMode()) if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !PP.getFistsPreparationMode())
{ {
if(!PP.getBerserkMode() && !cooldownOver(player, (PP.getBerserkDeactivatedTimeStamp()*1000), LoadProperties.berserkCooldown)) if(!PP.getBerserkMode() && !cooldownOver(player, (PP.getBerserkDeactivatedTimeStamp()*1000), LoadProperties.berserkCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.TooTired") player.sendMessage(mcLocale.getString("Skills.TooTired")
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getBerserkDeactivatedTimeStamp()*1000), LoadProperties.berserkCooldown)+"s)"); +ChatColor.YELLOW+" ("+calculateTimeLeft(player, (PP.getBerserkDeactivatedTimeStamp()*1000), LoadProperties.berserkCooldown)+"s)");
return; return;
} }
if(LoadProperties.enableAbilityMessages) if(LoadProperties.enableAbilityMessages)
player.sendMessage(mcLocale.getString("Skills.ReadyFists")); player.sendMessage(mcLocale.getString("Skills.ReadyFists"));
PP.setFistsPreparationATS(System.currentTimeMillis()); PP.setFistsPreparationATS(System.currentTimeMillis());
PP.setFistsPreparationMode(true); PP.setFistsPreparationMode(true);
} }
if((mcPermissions.getInstance().axesAbility(player) || mcPermissions.getInstance().woodCuttingAbility(player)) && !PP.getAxePreparationMode()) if((mcPermissions.getInstance().axesAbility(player) || mcPermissions.getInstance().woodCuttingAbility(player)) && !PP.getAxePreparationMode())
{ {
if(m.isAxes(player.getItemInHand())) if(m.isAxes(player.getItemInHand()))
{ {
if(LoadProperties.enableAbilityMessages) if(LoadProperties.enableAbilityMessages)
player.sendMessage(mcLocale.getString("Skills.ReadyAxe")); player.sendMessage(mcLocale.getString("Skills.ReadyAxe"));
PP.setAxePreparationATS(System.currentTimeMillis()); PP.setAxePreparationATS(System.currentTimeMillis());
PP.setAxePreparationMode(true); PP.setAxePreparationMode(true);
} }
} }
} }
} }
public static void ProcessLeaderboardUpdate(SkillType skillType, Player player) public static void ProcessLeaderboardUpdate(SkillType skillType, Player player)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
PlayerStat ps = new PlayerStat(); PlayerStat ps = new PlayerStat();
if(skillType != SkillType.ALL) if(skillType != SkillType.ALL)
ps.statVal = PP.getSkillLevel(skillType); ps.statVal = PP.getSkillLevel(skillType);
else else
ps.statVal = m.getPowerLevel(player); ps.statVal = m.getPowerLevel(player);
ps.name = player.getName(); ps.name = player.getName();
Leaderboard.updateLeaderboard(ps, skillType); Leaderboard.updateLeaderboard(ps, skillType);
} }
public static void XpCheckSkill(SkillType skillType, Player player) public static void XpCheckSkill(SkillType skillType, Player player)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) if(PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType))
{ {
int skillups = 0; int skillups = 0;
while(PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) while(PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType))
{ {
skillups++; skillups++;
PP.removeXP(skillType, PP.getXpToLevel(skillType)); PP.removeXP(skillType, PP.getXpToLevel(skillType));
PP.skillUp(skillType, 1); PP.skillUp(skillType, 1);
} }
if(!LoadProperties.useMySQL) if(!LoadProperties.useMySQL)
{ {
ProcessLeaderboardUpdate(skillType, player); ProcessLeaderboardUpdate(skillType, player);
ProcessLeaderboardUpdate(SkillType.ALL, player); ProcessLeaderboardUpdate(SkillType.ALL, player);
} }
String capitalized = m.getCapitalized(skillType.toString()); String capitalized = m.getCapitalized(skillType.toString());
//Contrib stuff //Contrib stuff
if(LoadProperties.spoutEnabled && player instanceof SpoutPlayer) if(LoadProperties.spoutEnabled && player instanceof SpoutPlayer)
{ {
SpoutPlayer sPlayer = SpoutManager.getPlayer(player); SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
if(sPlayer.isSpoutCraftEnabled()) if(sPlayer.isSpoutCraftEnabled())
{ {
SpoutStuff.levelUpNotification(skillType, sPlayer); SpoutStuff.levelUpNotification(skillType, sPlayer);
} else } else
{ {
player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)}));
} }
} }
else else
player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)}));
} }
if(LoadProperties.xpbar && LoadProperties.spoutEnabled) if(LoadProperties.xpbar && LoadProperties.spoutEnabled)
{ {
SpoutPlayer sPlayer = SpoutManager.getPlayer(player); SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
if(sPlayer.isSpoutCraftEnabled()) if(sPlayer.isSpoutCraftEnabled())
{ {
SpoutStuff.updateXpBar(sPlayer); SpoutStuff.updateXpBar(sPlayer);
} }
} }
} }
public static void XpCheckAll(Player player) public static void XpCheckAll(Player player)
{ {
for(SkillType x : SkillType.values()) for(SkillType x : SkillType.values())
{ {
//Don't want to do anything with this one //Don't want to do anything with this one
if(x == SkillType.ALL) if(x == SkillType.ALL)
continue; continue;
XpCheckSkill(x, player); XpCheckSkill(x, player);
} }
} }
public static SkillType getSkillType(String skillName) public static SkillType getSkillType(String skillName)
{ {
for(SkillType x : SkillType.values()) for(SkillType x : SkillType.values())
{ {
if(x.toString().equals(skillName.toUpperCase())) if(x.toString().equals(skillName.toUpperCase()))
return x; return x;
} }
return null; return null;
} }
public static boolean isSkill(String skillname){ public static boolean isSkill(String skillname){
skillname = skillname.toUpperCase(); skillname = skillname.toUpperCase();
for(SkillType x : SkillType.values()) for(SkillType x : SkillType.values())
{ {
if(x.toString().equals(skillname)) if(x.toString().equals(skillname))
return true; return true;
} }
return false; return false;
} }
public static void arrowRetrievalCheck(Entity entity, mcMMO plugin) public static void arrowRetrievalCheck(Entity entity, mcMMO plugin)
{ {
if(plugin.misc.arrowTracker.containsKey(entity)) if(plugin.misc.arrowTracker.containsKey(entity))
{ {
Integer x = 0; Integer x = 0;
while(x < plugin.misc.arrowTracker.get(entity)) while(x < plugin.misc.arrowTracker.get(entity))
{ {
m.mcDropItem(entity.getLocation(), 262); m.mcDropItem(entity.getLocation(), 262);
x++; x++;
} }
} }
plugin.misc.arrowTracker.remove(entity); plugin.misc.arrowTracker.remove(entity);
} }
public static String getSkillStats(String skillname, Integer level, Integer XP, Integer XPToLevel) public static String getSkillStats(String skillname, Integer level, Integer XP, Integer XPToLevel)
{ {
ChatColor parColor = ChatColor.DARK_AQUA; ChatColor parColor = ChatColor.DARK_AQUA;
ChatColor xpColor = ChatColor.GRAY; ChatColor xpColor = ChatColor.GRAY;
ChatColor LvlColor = ChatColor.GREEN; ChatColor LvlColor = ChatColor.GREEN;
ChatColor skillColor = ChatColor.YELLOW; ChatColor skillColor = ChatColor.YELLOW;
return skillColor+skillname+LvlColor+level+parColor+" XP"+"("+xpColor+XP+parColor+"/"+xpColor+XPToLevel+parColor+")"; return skillColor+skillname+LvlColor+level+parColor+" XP"+"("+xpColor+XP+parColor+"/"+xpColor+XPToLevel+parColor+")";
} }
public static boolean hasCombatSkills(Player player) 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)) if(mcPermissions.getInstance().axes(player) || mcPermissions.getInstance().archery(player) || mcPermissions.getInstance().swords(player) || mcPermissions.getInstance().taming(player) || mcPermissions.getInstance().unarmed(player))
return true; return true;
else else
return false; return false;
} }
public static boolean hasGatheringSkills(Player player) public static boolean hasGatheringSkills(Player player)
{ {
if(mcPermissions.getInstance().excavation(player) || mcPermissions.getInstance().herbalism(player) || mcPermissions.getInstance().mining(player) || mcPermissions.getInstance().woodcutting(player)) if(mcPermissions.getInstance().excavation(player) || mcPermissions.getInstance().herbalism(player) || mcPermissions.getInstance().mining(player) || mcPermissions.getInstance().woodcutting(player))
return true; return true;
else else
return false; return false;
} }
public static boolean hasMiscSkills(Player player) public static boolean hasMiscSkills(Player player)
{ {
if(mcPermissions.getInstance().acrobatics(player) || mcPermissions.getInstance().repair(player)) if(mcPermissions.getInstance().acrobatics(player) || mcPermissions.getInstance().repair(player))
return true; return true;
else else
return false; return false;
} }
} }

View File

@ -1,252 +1,252 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Arrow; import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf; import org.bukkit.entity.Wolf;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import com.gmail.nossr50.Combat; import com.gmail.nossr50.Combat;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
public class Swords public class Swords
{ {
public static void serratedStrikesActivationCheck(Player player){ public static void serratedStrikesActivationCheck(Player player){
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(m.isSwords(player.getItemInHand())) if(m.isSwords(player.getItemInHand()))
{ {
if(PP.getSwordsPreparationMode()) if(PP.getSwordsPreparationMode())
{ {
PP.setSwordsPreparationMode(false); PP.setSwordsPreparationMode(false);
} }
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.SWORDS); int x = PP.getSkillLevel(SkillType.SWORDS);
while(x >= 50) while(x >= 50)
{ {
x-=50; x-=50;
ticks++; ticks++;
} }
if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() < System.currentTimeMillis()) if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() < System.currentTimeMillis())
{ {
player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOn")); player.sendMessage(mcLocale.getString("Skills.SerratedStrikesOn"));
for(Player y : player.getWorld().getPlayers()) for(Player y : player.getWorld().getPlayers())
{ {
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(mcLocale.getString("Skills.SerratedStrikesPlayer", new Object[] {player.getName()})); y.sendMessage(mcLocale.getString("Skills.SerratedStrikesPlayer", new Object[] {player.getName()}));
} }
PP.setSerratedStrikesActivatedTimeStamp(System.currentTimeMillis()); PP.setSerratedStrikesActivatedTimeStamp(System.currentTimeMillis());
PP.setSerratedStrikesDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); PP.setSerratedStrikesDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
PP.setSerratedStrikesMode(true); PP.setSerratedStrikesMode(true);
} }
} }
} }
public static void bleedCheck(Player attacker, LivingEntity x, mcMMO pluginx) public static void bleedCheck(Player attacker, LivingEntity x, mcMMO pluginx)
{ {
PlayerProfile PPa = Users.getProfile(attacker); PlayerProfile PPa = Users.getProfile(attacker);
if(x instanceof Wolf) if(x instanceof Wolf)
{ {
Wolf wolf = (Wolf)x; Wolf wolf = (Wolf)x;
if(Taming.getOwner(wolf, pluginx) != null) if(Taming.getOwner(wolf, pluginx) != null)
{ {
if(Taming.getOwner(wolf, pluginx) == attacker) if(Taming.getOwner(wolf, pluginx) == attacker)
return; return;
if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx))) if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx)))
return; return;
} }
} }
if(mcPermissions.getInstance().swords(attacker) && m.isSwords(attacker.getItemInHand())){ if(mcPermissions.getInstance().swords(attacker) && m.isSwords(attacker.getItemInHand())){
if(PPa.getSkillLevel(SkillType.SWORDS) >= 750) if(PPa.getSkillLevel(SkillType.SWORDS) >= 750)
{ {
if(Math.random() * 1000 >= 750) if(Math.random() * 1000 >= 750)
{ {
if(!(x instanceof Player)) if(!(x instanceof Player))
pluginx.misc.addToBleedQue(x); pluginx.misc.addToBleedQue(x);
if(x instanceof Player) if(x instanceof Player)
{ {
Player target = (Player)x; Player target = (Player)x;
Users.getProfile(target).addBleedTicks(3); Users.getProfile(target).addBleedTicks(3);
} }
attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**"); attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**");
} }
} }
else if (Math.random() * 1000 <= PPa.getSkillLevel(SkillType.SWORDS)) else if (Math.random() * 1000 <= PPa.getSkillLevel(SkillType.SWORDS))
{ {
if(!(x instanceof Player)) if(!(x instanceof Player))
pluginx.misc.addToBleedQue(x); pluginx.misc.addToBleedQue(x);
if(x instanceof Player) if(x instanceof Player)
{ {
Player target = (Player)x; Player target = (Player)x;
Users.getProfile(target).addBleedTicks(2); Users.getProfile(target).addBleedTicks(2);
} }
attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**"); attacker.sendMessage(ChatColor.GREEN+"**ENEMY BLEEDING**");
} }
} }
} }
public static void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, mcMMO pluginx) public static void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, mcMMO pluginx)
{ {
int targets = 0; int targets = 0;
if(event.getEntity() instanceof LivingEntity) if(event.getEntity() instanceof LivingEntity)
{ {
LivingEntity x = (LivingEntity) event.getEntity(); LivingEntity x = (LivingEntity) event.getEntity();
targets = m.getTier(attacker); targets = m.getTier(attacker);
for(Entity derp : x.getWorld().getEntities()) for(Entity derp : x.getWorld().getEntities())
{ {
if(m.getDistance(x.getLocation(), derp.getLocation()) < 5) if(m.getDistance(x.getLocation(), derp.getLocation()) < 5)
{ {
//Make sure the Wolf is not friendly //Make sure the Wolf is not friendly
if(derp instanceof Wolf) if(derp instanceof Wolf)
{ {
Wolf hurrDurr = (Wolf)derp; Wolf hurrDurr = (Wolf)derp;
if(Taming.getOwner(hurrDurr, pluginx) == attacker) if(Taming.getOwner(hurrDurr, pluginx) == attacker)
continue; continue;
if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx))) if(Party.getInstance().inSameParty(attacker, Taming.getOwner(hurrDurr, pluginx)))
continue; continue;
} }
//Damage nearby LivingEntities //Damage nearby LivingEntities
if(derp instanceof LivingEntity && targets >= 1) if(derp instanceof LivingEntity && targets >= 1)
{ {
if(derp instanceof Player) if(derp instanceof Player)
{ {
Player target = (Player)derp; Player target = (Player)derp;
if(target.getName().equals(attacker.getName())) if(target.getName().equals(attacker.getName()))
continue; continue;
if(Users.getProfile(target).getGodMode()) if(Users.getProfile(target).getGodMode())
continue; continue;
if(Party.getInstance().inSameParty(attacker, target)) if(Party.getInstance().inSameParty(attacker, target))
continue; continue;
if(targets >= 1 && derp.getWorld().getPVP()) if(targets >= 1 && derp.getWorld().getPVP())
{ {
target.damage(event.getDamage() / 4); target.damage(event.getDamage() / 4);
target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!"); target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!");
Users.getProfile(target).addBleedTicks(5); Users.getProfile(target).addBleedTicks(5);
targets--; targets--;
continue; continue;
} }
} }
else else
{ {
if(!pluginx.misc.bleedTracker.contains(derp)) if(!pluginx.misc.bleedTracker.contains(derp))
pluginx.misc.addToBleedQue((LivingEntity)derp); pluginx.misc.addToBleedQue((LivingEntity)derp);
LivingEntity target = (LivingEntity)derp; LivingEntity target = (LivingEntity)derp;
target.damage(event.getDamage() / 4); target.damage(event.getDamage() / 4);
targets--; targets--;
} }
} }
} }
} }
} }
} }
public static void counterAttackChecks(EntityDamageByEntityEvent event) public static void counterAttackChecks(EntityDamageByEntityEvent event)
{ {
//Don't want to counter attack arrows //Don't want to counter attack arrows
if(event.getDamager() instanceof Arrow) if(event.getDamager() instanceof Arrow)
return; return;
if(event instanceof EntityDamageByEntityEvent) if(event instanceof EntityDamageByEntityEvent)
{ {
Entity f = ((EntityDamageByEntityEvent) event).getDamager(); Entity f = ((EntityDamageByEntityEvent) event).getDamager();
if(event.getEntity() instanceof Player) if(event.getEntity() instanceof Player)
{ {
Player defender = (Player)event.getEntity(); Player defender = (Player)event.getEntity();
PlayerProfile PPd = Users.getProfile(defender); PlayerProfile PPd = Users.getProfile(defender);
if(m.isSwords(defender.getItemInHand()) && mcPermissions.getInstance().swords(defender)) if(m.isSwords(defender.getItemInHand()) && mcPermissions.getInstance().swords(defender))
{ {
if(PPd.getSkillLevel(SkillType.SWORDS) >= 600) if(PPd.getSkillLevel(SkillType.SWORDS) >= 600)
{ {
if(Math.random() * 2000 <= 600) if(Math.random() * 2000 <= 600)
{ {
Combat.dealDamage(f, event.getDamage() / 2); Combat.dealDamage(f, event.getDamage() / 2);
defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**"); defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
if(f instanceof Player) if(f instanceof Player)
((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!"); ((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
} }
} }
else if (Math.random() * 2000 <= PPd.getSkillLevel(SkillType.SWORDS)) else if (Math.random() * 2000 <= PPd.getSkillLevel(SkillType.SWORDS))
{ {
Combat.dealDamage(f, event.getDamage() / 2); Combat.dealDamage(f, event.getDamage() / 2);
defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**"); defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
if(f instanceof Player) if(f instanceof Player)
((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!"); ((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
} }
} }
} }
} }
} }
public static void bleedSimulate(mcMMO plugin) public static void bleedSimulate(mcMMO plugin)
{ {
//Add items from Que list to BleedTrack list //Add items from Que list to BleedTrack list
for(LivingEntity x : plugin.misc.bleedQue) for(LivingEntity x : plugin.misc.bleedQue)
{ {
plugin.misc.bleedTracker.add(x); plugin.misc.bleedTracker.add(x);
} }
//Clear list //Clear list
plugin.misc.bleedQue = new LivingEntity[plugin.misc.bleedQue.length]; plugin.misc.bleedQue = new LivingEntity[plugin.misc.bleedQue.length];
plugin.misc.bleedQuePos = 0; plugin.misc.bleedQuePos = 0;
//Cleanup any dead entities from the list //Cleanup any dead entities from the list
for(LivingEntity x : plugin.misc.bleedRemovalQue) for(LivingEntity x : plugin.misc.bleedRemovalQue)
{ {
plugin.misc.bleedTracker.remove(x); plugin.misc.bleedTracker.remove(x);
} }
//Clear bleed removal list //Clear bleed removal list
plugin.misc.bleedRemovalQue = new LivingEntity[plugin.misc.bleedRemovalQue.length]; plugin.misc.bleedRemovalQue = new LivingEntity[plugin.misc.bleedRemovalQue.length];
plugin.misc.bleedRemovalQuePos = 0; plugin.misc.bleedRemovalQuePos = 0;
//Bleed monsters/animals //Bleed monsters/animals
for(LivingEntity x : plugin.misc.bleedTracker) for(LivingEntity x : plugin.misc.bleedTracker)
{ {
if(x == null){continue;} if(x == null){continue;}
if(x.getHealth() <= 0) if(x.getHealth() <= 0)
{ {
plugin.misc.addToBleedRemovalQue(x); plugin.misc.addToBleedRemovalQue(x);
continue; continue;
} }
else else
{ {
x.damage(2); x.damage(2);
} }
} }
} }
} }

View File

@ -1,70 +1,70 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import org.bukkit.entity.AnimalTamer; import org.bukkit.entity.AnimalTamer;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf; import org.bukkit.entity.Wolf;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
public class Taming public class Taming
{ {
public static boolean ownerOnline(Wolf theWolf, Plugin pluginx) public static boolean ownerOnline(Wolf theWolf, Plugin pluginx)
{ {
for(Player x : pluginx.getServer().getOnlinePlayers()) for(Player x : pluginx.getServer().getOnlinePlayers())
{ {
if(x instanceof AnimalTamer) if(x instanceof AnimalTamer)
{ {
AnimalTamer tamer = (AnimalTamer)x; AnimalTamer tamer = (AnimalTamer)x;
if(theWolf.getOwner() == tamer) if(theWolf.getOwner() == tamer)
return true; return true;
} }
} }
return false; return false;
} }
public static Player getOwner(Entity wolf, Plugin pluginx) public static Player getOwner(Entity wolf, Plugin pluginx)
{ {
if(wolf instanceof Wolf) if(wolf instanceof Wolf)
{ {
Wolf theWolf = (Wolf)wolf; Wolf theWolf = (Wolf)wolf;
for(Player x : pluginx.getServer().getOnlinePlayers()) for(Player x : pluginx.getServer().getOnlinePlayers())
{ {
if(x instanceof AnimalTamer && x.isOnline()) if(x instanceof AnimalTamer && x.isOnline())
{ {
AnimalTamer tamer = (AnimalTamer)x; AnimalTamer tamer = (AnimalTamer)x;
if(theWolf.getOwner() == tamer) if(theWolf.getOwner() == tamer)
return x; return x;
} }
} }
return null; return null;
} }
return null; return null;
} }
public static String getOwnerName(Wolf theWolf) public static String getOwnerName(Wolf theWolf)
{ {
Player owner = (Player)theWolf.getOwner(); Player owner = (Player)theWolf.getOwner();
if(owner != null) if(owner != null)
{ {
return owner.getName(); return owner.getName();
} }
else else
return "Offline Master"; return "Offline Master";
} }
} }

View File

@ -1,111 +1,111 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
public class Unarmed { public class Unarmed {
public static void berserkActivationCheck(Player player) public static void berserkActivationCheck(Player player)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(player.getItemInHand().getTypeId() == 0) if(player.getItemInHand().getTypeId() == 0)
{ {
if(PP.getFistsPreparationMode()) if(PP.getFistsPreparationMode())
{ {
PP.setFistsPreparationMode(false); PP.setFistsPreparationMode(false);
} }
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.UNARMED); int x = PP.getSkillLevel(SkillType.UNARMED);
while(x >= 50){ while(x >= 50){
x-=50; x-=50;
ticks++; ticks++;
} }
if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)) if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.BerserkOn")); player.sendMessage(mcLocale.getString("Skills.BerserkOn"));
for(Player y : player.getWorld().getPlayers()) for(Player y : player.getWorld().getPlayers())
{ {
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(mcLocale.getString("Skills.BerserkPlayer", new Object[] {player.getName()})); y.sendMessage(mcLocale.getString("Skills.BerserkPlayer", new Object[] {player.getName()}));
} }
PP.setBerserkActivatedTimeStamp(System.currentTimeMillis()); PP.setBerserkActivatedTimeStamp(System.currentTimeMillis());
PP.setBerserkDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); PP.setBerserkDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
PP.setBerserkMode(true); PP.setBerserkMode(true);
} }
} }
} }
public static void unarmedBonus(Player attacker, EntityDamageByEntityEvent event) public static void unarmedBonus(Player attacker, EntityDamageByEntityEvent event)
{ {
PlayerProfile PPa = Users.getProfile(attacker); PlayerProfile PPa = Users.getProfile(attacker);
int bonus = 0; int bonus = 0;
if (PPa.getSkillLevel(SkillType.UNARMED) >= 250) if (PPa.getSkillLevel(SkillType.UNARMED) >= 250)
bonus+=2; bonus+=2;
if (PPa.getSkillLevel(SkillType.UNARMED) >= 500) if (PPa.getSkillLevel(SkillType.UNARMED) >= 500)
bonus+=4; bonus+=4;
event.setDamage(event.getDamage()+bonus); event.setDamage(event.getDamage()+bonus);
} }
public static void disarmProcCheck(Player attacker, Player defender) public static void disarmProcCheck(Player attacker, Player defender)
{ {
PlayerProfile PP = Users.getProfile(attacker); PlayerProfile PP = Users.getProfile(attacker);
if(attacker.getItemInHand().getTypeId() == 0) if(attacker.getItemInHand().getTypeId() == 0)
{ {
if(PP.getSkillLevel(SkillType.UNARMED) >= 1000) if(PP.getSkillLevel(SkillType.UNARMED) >= 1000)
{ {
if(Math.random() * 4000 <= 1000) if(Math.random() * 4000 <= 1000)
{ {
Location loc = defender.getLocation(); Location loc = defender.getLocation();
if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0) if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
{ {
defender.sendMessage(mcLocale.getString("Skills.Disarmed")); defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
ItemStack item = defender.getItemInHand(); ItemStack item = defender.getItemInHand();
if(item != null) if(item != null)
{ {
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
ItemStack itemx = null; ItemStack itemx = null;
defender.setItemInHand(itemx); defender.setItemInHand(itemx);
} }
} }
} }
} else { } else {
if(Math.random() * 4000 <= PP.getSkillLevel(SkillType.UNARMED)){ if(Math.random() * 4000 <= PP.getSkillLevel(SkillType.UNARMED)){
Location loc = defender.getLocation(); Location loc = defender.getLocation();
if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0) if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
{ {
defender.sendMessage(mcLocale.getString("Skills.Disarmed")); defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
ItemStack item = defender.getItemInHand(); ItemStack item = defender.getItemInHand();
if(item != null) if(item != null)
{ {
loc.getWorld().dropItemNaturally(loc, item); loc.getWorld().dropItemNaturally(loc, item);
ItemStack itemx = null; ItemStack itemx = null;
defender.setItemInHand(itemx); defender.setItemInHand(itemx);
} }
} }
} }
} }
} }
} }
} }

View File

@ -1,169 +1,169 @@
/* /*
This file is part of mcMMO. This file is part of mcMMO.
mcMMO is free software: you can redistribute it and/or modify mcMMO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
mcMMO is distributed in the hope that it will be useful, mcMMO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with mcMMO. If not, see <http://www.gnu.org/licenses/>. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.skills; package com.gmail.nossr50.skills;
import java.util.ArrayList; import java.util.ArrayList;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.m; import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType; import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.config.*; import com.gmail.nossr50.config.*;
public class WoodCutting public class WoodCutting
{ {
static int w = 0; static int w = 0;
private static boolean isdone = false; private static boolean isdone = false;
public static void woodCuttingProcCheck(Player player, Block block) public static void woodCuttingProcCheck(Player player, Block block)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
byte type = block.getData(); byte type = block.getData();
Material mat = Material.getMaterial(block.getTypeId()); Material mat = Material.getMaterial(block.getTypeId());
if(player != null) if(player != null)
{ {
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.WOODCUTTING)) if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.WOODCUTTING))
{ {
ItemStack item = new ItemStack(mat, 1, (short) 0, type); ItemStack item = new ItemStack(mat, 1, (short) 0, type);
block.getWorld().dropItemNaturally(block.getLocation(), item); block.getWorld().dropItemNaturally(block.getLocation(), item);
} }
} }
} }
public static void treeFellerCheck(Player player, Block block) public static void treeFellerCheck(Player player, Block block)
{ {
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
if(m.isAxes(player.getItemInHand())) if(m.isAxes(player.getItemInHand()))
{ {
if(block != null) if(block != null)
{ {
if(!m.abilityBlockCheck(block)) if(!m.abilityBlockCheck(block))
return; return;
} }
/* /*
* CHECK FOR AXE PREP MODE * CHECK FOR AXE PREP MODE
*/ */
if(PP.getAxePreparationMode()) if(PP.getAxePreparationMode())
{ {
PP.setAxePreparationMode(false); PP.setAxePreparationMode(false);
} }
int ticks = 2; int ticks = 2;
int x = PP.getSkillLevel(SkillType.WOODCUTTING); int x = PP.getSkillLevel(SkillType.WOODCUTTING);
while(x >= 50) while(x >= 50)
{ {
x-=50; x-=50;
ticks++; ticks++;
} }
if(!PP.getTreeFellerMode() && Skills.cooldownOver(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)) if(!PP.getTreeFellerMode() && Skills.cooldownOver(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown))
{ {
player.sendMessage(mcLocale.getString("Skills.TreeFellerOn")); player.sendMessage(mcLocale.getString("Skills.TreeFellerOn"));
for(Player y : player.getWorld().getPlayers()) for(Player y : player.getWorld().getPlayers())
{ {
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10) if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(mcLocale.getString("Skills.TreeFellerPlayer", new Object[] {player.getName()})); y.sendMessage(mcLocale.getString("Skills.TreeFellerPlayer", new Object[] {player.getName()}));
} }
PP.setTreeFellerActivatedTimeStamp(System.currentTimeMillis()); PP.setTreeFellerActivatedTimeStamp(System.currentTimeMillis());
PP.setTreeFellerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000)); PP.setTreeFellerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
PP.setTreeFellerMode(true); PP.setTreeFellerMode(true);
} }
if(!PP.getTreeFellerMode() && !Skills.cooldownOver(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)){ if(!PP.getTreeFellerMode() && !Skills.cooldownOver(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)){
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again." player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)+"s)"); +ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, (PP.getTreeFellerDeactivatedTimeStamp()*1000), LoadProperties.treeFellerCooldown)+"s)");
} }
} }
} }
public static void treeFeller(Block block, Player player, mcMMO plugin){ public static void treeFeller(Block block, Player player, mcMMO plugin){
PlayerProfile PP = Users.getProfile(player); PlayerProfile PP = Users.getProfile(player);
int radius = 1; int radius = 1;
if(PP.getSkillLevel(SkillType.WOODCUTTING) >= 500) if(PP.getSkillLevel(SkillType.WOODCUTTING) >= 500)
radius++; radius++;
if(PP.getSkillLevel(SkillType.WOODCUTTING) >= 950) if(PP.getSkillLevel(SkillType.WOODCUTTING) >= 950)
radius++; radius++;
ArrayList<Block> blocklist = new ArrayList<Block>(); ArrayList<Block> blocklist = new ArrayList<Block>();
ArrayList<Block> toAdd = new ArrayList<Block>(); ArrayList<Block> toAdd = new ArrayList<Block>();
if(block != null) if(block != null)
blocklist.add(block); blocklist.add(block);
while(isdone == false){ while(isdone == false){
addBlocksToTreeFelling(blocklist, toAdd, radius); addBlocksToTreeFelling(blocklist, toAdd, radius);
} }
//This needs to be a hashmap too! //This needs to be a hashmap too!
isdone = false; isdone = false;
/* /*
* Add blocks from the temporary 'toAdd' array list into the 'treeFeller' array list * Add blocks from the temporary 'toAdd' array list into the 'treeFeller' array list
* We use this temporary list to prevent concurrent modification exceptions * We use this temporary list to prevent concurrent modification exceptions
*/ */
for(Block x : toAdd) for(Block x : toAdd)
{ {
if(!plugin.misc.treeFeller.contains(x)) if(!plugin.misc.treeFeller.contains(x))
plugin.misc.treeFeller.add(x); plugin.misc.treeFeller.add(x);
} }
toAdd.clear(); toAdd.clear();
} }
public static void addBlocksToTreeFelling(ArrayList<Block> blocklist, ArrayList<Block> toAdd, Integer radius) public static void addBlocksToTreeFelling(ArrayList<Block> blocklist, ArrayList<Block> toAdd, Integer radius)
{ {
int u = 0; int u = 0;
for (Block x : blocklist) for (Block x : blocklist)
{ {
u++; u++;
if(toAdd.contains(x)) if(toAdd.contains(x))
continue; continue;
w = 0; w = 0;
Location loc = x.getLocation(); Location loc = x.getLocation();
int vx = x.getX(); int vx = x.getX();
int vy = x.getY(); int vy = x.getY();
int vz = x.getZ(); int vz = x.getZ();
/* /*
* Run through the blocks around the broken block to see if they qualify to be 'felled' * 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 cx = -radius; cx <= radius; cx++) {
for (int cy = -radius; cy <= radius; cy++) { for (int cy = -radius; cy <= radius; cy++) {
for (int cz = -radius; cz <= radius; cz++) { for (int cz = -radius; cz <= radius; cz++) {
Block blocktarget = loc.getWorld().getBlockAt(vx + cx, vy + cy, vz + 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)) { if (!blocklist.contains(blocktarget) && !toAdd.contains(blocktarget) && (blocktarget.getTypeId() == 17 || blocktarget.getTypeId() == 18)) {
toAdd.add(blocktarget); toAdd.add(blocktarget);
w++; w++;
} }
} }
} }
} }
} }
/* /*
* Add more blocks to blocklist so they can be 'felled' * Add more blocks to blocklist so they can be 'felled'
*/ */
for(Block xx : toAdd) for(Block xx : toAdd)
{ {
if(!blocklist.contains(xx)) if(!blocklist.contains(xx))
blocklist.add(xx); blocklist.add(xx);
} }
if(u >= blocklist.size()) if(u >= blocklist.size())
{ {
isdone = true; isdone = true;
} else { } else {
isdone = false; isdone = false;
} }
} }
} }

View File

@ -1,269 +1,269 @@
/* /*
* This file is from mmoMinecraft (http://code.google.com/p/mmo-minecraft/). * This file is from mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
* *
* mmoMinecraft is free software: you can redistribute it and/or modify * mmoMinecraft is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.spout; package com.gmail.nossr50.spout;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable; import org.bukkit.entity.Tameable;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import org.getspout.spoutapi.gui.Container; import org.getspout.spoutapi.gui.Container;
import org.getspout.spoutapi.gui.GenericContainer; import org.getspout.spoutapi.gui.GenericContainer;
import org.getspout.spoutapi.gui.Widget; import org.getspout.spoutapi.gui.Widget;
import org.getspout.spoutapi.gui.WidgetAnchor; import org.getspout.spoutapi.gui.WidgetAnchor;
import org.getspout.spoutapi.player.SpoutPlayer; import org.getspout.spoutapi.player.SpoutPlayer;
import com.gmail.nossr50.Users; import com.gmail.nossr50.Users;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
import com.gmail.nossr50.spout.util.GenericLivingEntity; import com.gmail.nossr50.spout.util.GenericLivingEntity;
public class mmoHelper public class mmoHelper
{ {
/** /**
* A map of player containers, each container is their party bar * A map of player containers, each container is their party bar
*/ */
public static HashMap<Player, GenericContainer> containers = new HashMap<Player, GenericContainer>(); public static HashMap<Player, GenericContainer> containers = new HashMap<Player, GenericContainer>();
/** /**
* Get the percentage health of a Player. * Get the percentage health of a Player.
* @param player The Player we're interested in * @param player The Player we're interested in
* @return The percentage of max health * @return The percentage of max health
*/ */
public static int getHealth(Entity player) { public static int getHealth(Entity player) {
if (player != null && player instanceof LivingEntity) { if (player != null && player instanceof LivingEntity) {
try { try {
return Math.min(((LivingEntity) player).getHealth() * 5, 100); return Math.min(((LivingEntity) player).getHealth() * 5, 100);
} catch (Exception e) { } catch (Exception e) {
} }
} }
return 0; return 0;
} }
/** /**
* Get the colour of a LivingEntity target from a player's point of view. * Get the colour of a LivingEntity target from a player's point of view.
* @param player The player viewing the target * @param player The player viewing the target
* @param target The target to name * @param target The target to name
* @return The name to use * @return The name to use
*/ */
public static String getColor(Player player, LivingEntity target) { public static String getColor(Player player, LivingEntity target) {
if (target instanceof Player) { if (target instanceof Player) {
if (((Player) target).isOp()) { if (((Player) target).isOp()) {
return ChatColor.GOLD.toString(); return ChatColor.GOLD.toString();
} }
return ChatColor.YELLOW.toString(); return ChatColor.YELLOW.toString();
} else { } else {
if (target instanceof Monster) { if (target instanceof Monster) {
if (player != null && player.equals(((Monster) target).getTarget())) { if (player != null && player.equals(((Monster) target).getTarget())) {
return ChatColor.RED.toString(); return ChatColor.RED.toString();
} else { } else {
return ChatColor.YELLOW.toString(); return ChatColor.YELLOW.toString();
} }
} else if (target instanceof WaterMob) { } else if (target instanceof WaterMob) {
return ChatColor.GREEN.toString(); return ChatColor.GREEN.toString();
} else if (target instanceof Flying) { } else if (target instanceof Flying) {
return ChatColor.YELLOW.toString(); return ChatColor.YELLOW.toString();
} else if (target instanceof Animals) { } else if (target instanceof Animals) {
if (player != null && player.equals(((Animals) target).getTarget())) { if (player != null && player.equals(((Animals) target).getTarget())) {
return ChatColor.RED.toString(); return ChatColor.RED.toString();
} else if (target instanceof Tameable) { } else if (target instanceof Tameable) {
Tameable pet = (Tameable) target; Tameable pet = (Tameable) target;
if (pet.isTamed()) { if (pet.isTamed()) {
return ChatColor.GREEN.toString(); return ChatColor.GREEN.toString();
} else { } else {
return ChatColor.YELLOW.toString(); return ChatColor.YELLOW.toString();
} }
} else { } else {
return ChatColor.GRAY.toString(); return ChatColor.GRAY.toString();
} }
} else { } else {
return ChatColor.GRAY.toString(); return ChatColor.GRAY.toString();
} }
} }
} }
/** /**
* Get the percentage armour of a Player. * Get the percentage armour of a Player.
* @param player The Player we're interested in * @param player The Player we're interested in
* @return The percentage of max armour * @return The percentage of max armour
*/ */
public static int getArmor(Entity player) { public static int getArmor(Entity player) {
if (player != null && player instanceof Player) { if (player != null && player instanceof Player) {
int armor = 0, max, multi[] = {15, 30, 40, 15}; int armor = 0, max, multi[] = {15, 30, 40, 15};
ItemStack inv[] = ((Player) player).getInventory().getArmorContents(); ItemStack inv[] = ((Player) player).getInventory().getArmorContents();
for (int i = 0; i < inv.length; i++) { for (int i = 0; i < inv.length; i++) {
max = inv[i].getType().getMaxDurability(); max = inv[i].getType().getMaxDurability();
if (max >= 0) { if (max >= 0) {
armor += multi[i] * (max - inv[i].getDurability()) / max; armor += multi[i] * (max - inv[i].getDurability()) / max;
} }
} }
return armor; return armor;
} }
return 0; return 0;
} }
public static String getSimpleName(LivingEntity target, boolean showOwner) { public static String getSimpleName(LivingEntity target, boolean showOwner) {
String name = ""; String name = "";
if (target instanceof Player) { if (target instanceof Player) {
if (LoadProperties.showDisplayName) { if (LoadProperties.showDisplayName) {
name += ((Player) target).getName(); name += ((Player) target).getName();
} else { } else {
name += ((Player) target).getDisplayName(); name += ((Player) target).getDisplayName();
} }
} else if (target instanceof HumanEntity) { } else if (target instanceof HumanEntity) {
name += ((HumanEntity) target).getName(); name += ((HumanEntity) target).getName();
} else { } else {
if (target instanceof Tameable) { if (target instanceof Tameable) {
if (((Tameable) target).isTamed()) { if (((Tameable) target).isTamed()) {
if (showOwner && ((Tameable) target).getOwner() instanceof Player) { if (showOwner && ((Tameable) target).getOwner() instanceof Player) {
if (LoadProperties.showDisplayName) { if (LoadProperties.showDisplayName) {
name += ((Player) ((Tameable) target).getOwner()).getName() + "'s "; name += ((Player) ((Tameable) target).getOwner()).getName() + "'s ";
} else { } else {
name += ((Player) ((Tameable) target).getOwner()).getDisplayName() + "'s "; name += ((Player) ((Tameable) target).getOwner()).getDisplayName() + "'s ";
} }
} else { } else {
name += "Pet "; name += "Pet ";
} }
} }
} }
if (target instanceof Chicken) { if (target instanceof Chicken) {
name += "Chicken"; name += "Chicken";
} else if (target instanceof Cow) { } else if (target instanceof Cow) {
name += "Cow"; name += "Cow";
} else if (target instanceof Creeper) { } else if (target instanceof Creeper) {
name += "Creeper"; name += "Creeper";
} else if (target instanceof Ghast) { } else if (target instanceof Ghast) {
name += "Ghast"; name += "Ghast";
} else if (target instanceof Giant) { } else if (target instanceof Giant) {
name += "Giant"; name += "Giant";
} else if (target instanceof Pig) { } else if (target instanceof Pig) {
name += "Pig"; name += "Pig";
} else if (target instanceof PigZombie) { } else if (target instanceof PigZombie) {
name += "PigZombie"; name += "PigZombie";
} else if (target instanceof Sheep) { } else if (target instanceof Sheep) {
name += "Sheep"; name += "Sheep";
} else if (target instanceof Slime) { } else if (target instanceof Slime) {
name += "Slime"; name += "Slime";
} else if (target instanceof Skeleton) { } else if (target instanceof Skeleton) {
name += "Skeleton"; name += "Skeleton";
} else if (target instanceof Spider) { } else if (target instanceof Spider) {
name += "Spider"; name += "Spider";
} else if (target instanceof Squid) { } else if (target instanceof Squid) {
name += "Squid"; name += "Squid";
} else if (target instanceof Wolf) { } else if (target instanceof Wolf) {
name += "Wolf"; name += "Wolf";
} else if (target instanceof Zombie) { } else if (target instanceof Zombie) {
name += "Zombie"; name += "Zombie";
} else if (target instanceof Monster) { } else if (target instanceof Monster) {
name += "Monster"; name += "Monster";
} else if (target instanceof Creature) { } else if (target instanceof Creature) {
name += "Creature"; name += "Creature";
} else { } else {
name += "Unknown"; name += "Unknown";
} }
} }
return name; return name;
} }
public static LivingEntity[] getPets(HumanEntity player) { public static LivingEntity[] getPets(HumanEntity player) {
ArrayList<LivingEntity> pets = new ArrayList<LivingEntity>(); ArrayList<LivingEntity> pets = new ArrayList<LivingEntity>();
if (player != null && (!(player instanceof Player) || ((Player) player).isOnline())) { if (player != null && (!(player instanceof Player) || ((Player) player).isOnline())) {
String name = player.getName(); String name = player.getName();
for (World world : Bukkit.getServer().getWorlds()) { for (World world : Bukkit.getServer().getWorlds()) {
for (LivingEntity entity : world.getLivingEntities()) { for (LivingEntity entity : world.getLivingEntities()) {
if (entity instanceof Tameable && ((Tameable) entity).isTamed() && ((Tameable) entity).getOwner() instanceof Player) { if (entity instanceof Tameable && ((Tameable) entity).isTamed() && ((Tameable) entity).getOwner() instanceof Player) {
if (name.equals(((Player) ((Tameable) entity).getOwner()).getName())) { if (name.equals(((Player) ((Tameable) entity).getOwner()).getName())) {
pets.add(entity); pets.add(entity);
} }
} }
} }
} }
} }
LivingEntity[] list = new LivingEntity[pets.size()]; LivingEntity[] list = new LivingEntity[pets.size()];
pets.toArray(list); pets.toArray(list);
return list; return list;
} }
public static void update(Player player) public static void update(Player player)
{ {
//boolean show_pets = true; //boolean show_pets = true;
Container container = containers.get(player); Container container = containers.get(player);
if (container != null) if (container != null)
{ {
int index = 0; int index = 0;
Widget[] bars = container.getChildren(); Widget[] bars = container.getChildren();
for (String name : Party.getInstance().getPartyMembersByName(player).meFirst(player.getName())) for (String name : Party.getInstance().getPartyMembersByName(player).meFirst(player.getName()))
{ {
GenericLivingEntity bar; GenericLivingEntity bar;
if (index >= bars.length) if (index >= bars.length)
{ {
container.addChild(bar = new GenericLivingEntity()); container.addChild(bar = new GenericLivingEntity());
} else { } else {
bar = (GenericLivingEntity)bars[index]; bar = (GenericLivingEntity)bars[index];
} }
bar.setEntity(name, Party.getInstance().isPartyLeader(name, Users.getProfile(Bukkit.getServer().getPlayer(name)).getParty()) ? ChatColor.GREEN + "@" : ""); 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); //bar.setTargets(show_pets ? getPets(Bukkit.getServer().getPlayer(name)) : null);
index++; index++;
} }
while (index < bars.length) { while (index < bars.length) {
container.removeChild(bars[index++]); container.removeChild(bars[index++]);
} }
container.updateLayout(); container.updateLayout();
} }
} }
public static void initialize(SpoutPlayer sPlayer, Plugin plugin) public static void initialize(SpoutPlayer sPlayer, Plugin plugin)
{ {
GenericContainer container = new GenericContainer(); GenericContainer container = new GenericContainer();
container.setAlign(WidgetAnchor.TOP_LEFT) container.setAlign(WidgetAnchor.TOP_LEFT)
.setAnchor(WidgetAnchor.TOP_LEFT) .setAnchor(WidgetAnchor.TOP_LEFT)
.setX(3) .setX(3)
.setY(3) .setY(3)
.setWidth(427) .setWidth(427)
.setHeight(240) .setHeight(240)
.setFixed(true); .setFixed(true);
mmoHelper.containers.put(sPlayer, container); mmoHelper.containers.put(sPlayer, container);
sPlayer.getMainScreen().attachWidget(plugin, container); sPlayer.getMainScreen().attachWidget(plugin, container);
} }
/** /**
* Update all parties. * Update all parties.
*/ */
public static void updateAll() { public static void updateAll() {
for(Player x : Bukkit.getServer().getOnlinePlayers()) for(Player x : Bukkit.getServer().getOnlinePlayers())
{ {
if(Users.getProfile(x).inParty()) if(Users.getProfile(x).inParty())
{ {
update(x); update(x);
} }
} }
} }
} }

View File

@ -1,112 +1,112 @@
/* /*
* This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/). * This file is part of mmoMinecraft (http://code.google.com/p/mmo-minecraft/).
* *
* mmoMinecraft is free software: you can redistribute it and/or modify * mmoMinecraft is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.spout.util; package com.gmail.nossr50.spout.util;
import java.util.ArrayList; import java.util.ArrayList;
/** /**
* Case insensitive ArrayList<String>. * Case insensitive ArrayList<String>.
* Overrides the .contains(), .indexOf(), .lastIndexOf() and .remove() methods. * Overrides the .contains(), .indexOf(), .lastIndexOf() and .remove() methods.
*/ */
public class ArrayListString extends ArrayList<String> { public class ArrayListString extends ArrayList<String> {
private static final long serialVersionUID = -8111006526598412404L; private static final long serialVersionUID = -8111006526598412404L;
/** /**
* Returns true if this list contains the specified string. * Returns true if this list contains the specified string.
* @param o String whose presence in this list is to be tested * @param o String whose presence in this list is to be tested
* @return true if this list contains the specified string * @return true if this list contains the specified string
*/ */
public boolean contains(String o) { public boolean contains(String o) {
for (String e : this) { for (String e : this) {
if (o == null ? e == null : o.equalsIgnoreCase(e)) { if (o == null ? e == null : o.equalsIgnoreCase(e)) {
return true; return true;
} }
} }
return false; 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. * 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 * @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 * @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) { public int indexOf(String o) {
for (int i = 0; i < this.size(); i++) { for (int i = 0; i < this.size(); i++) {
if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) { if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) {
return i; return i;
} }
} }
return -1; 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. * 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 * @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 * @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) { public int lastIndexOf(String o) {
for (int i = size() - 1; i >= 0; i--) { for (int i = size() - 1; i >= 0; i--) {
if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) { if (o == null ? get(i) == null : o.equalsIgnoreCase(get(i))) {
return i; return i;
} }
} }
return -1; 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. * 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 * @param o String to be removed from this list, if present
* @return true if this list contained the specified string * @return true if this list contained the specified string
*/ */
public boolean remove(String o) { public boolean remove(String o) {
int i = indexOf(o); int i = indexOf(o);
if (i != -1) { if (i != -1) {
remove(i); remove(i);
return true; return true;
} }
return false; return false;
} }
/** /**
* Returns the element at the specified position in this list. * Returns the element at the specified position in this list.
* This is for finding the correct capitalisation of an element. * This is for finding the correct capitalisation of an element.
* @param index String to search for * @param index String to search for
* @return the correctly capitalised element * @return the correctly capitalised element
*/ */
public String get(String index) { public String get(String index) {
int i = this.indexOf(index); int i = this.indexOf(index);
if (i != -1) { if (i != -1) {
return this.get(i); return this.get(i);
} }
return null; return null;
} }
public ArrayListString meFirst(String name) { public ArrayListString meFirst(String name) {
ArrayListString copy = new ArrayListString(); ArrayListString copy = new ArrayListString();
if (this.contains(name)) { if (this.contains(name)) {
copy.add(name); copy.add(name);
} }
for (String next : this) { for (String next : this) {
if (!next.equalsIgnoreCase(name)) { if (!next.equalsIgnoreCase(name)) {
copy.add(next); copy.add(next);
} }
} }
return copy; return copy;
} }
} }

View File

@ -1,65 +1,65 @@
/* /*
* This file is part of mmoMinecraft (https://github.com/mmoMinecraftDev). * This file is part of mmoMinecraft (https://github.com/mmoMinecraftDev).
* *
* mmoMinecraft is free software: you can redistribute it and/or modify * mmoMinecraft is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.spout.util; package com.gmail.nossr50.spout.util;
import org.getspout.spoutapi.gui.GenericTexture; import org.getspout.spoutapi.gui.GenericTexture;
import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.config.LoadProperties;
public final class GenericFace extends GenericTexture { public final class GenericFace extends GenericTexture {
private static String facePath = "http://face.rycochet.net/"; private static String facePath = "http://face.rycochet.net/";
private static int defaultSize = 8; private static int defaultSize = 8;
private String name; private String name;
public GenericFace() { public GenericFace() {
this("", defaultSize); this("", defaultSize);
} }
public GenericFace(String name) { public GenericFace(String name) {
this(name, defaultSize); this(name, defaultSize);
} }
public GenericFace(String name, int size) { public GenericFace(String name, int size) {
if (LoadProperties.showFaces) { if (LoadProperties.showFaces) {
this.setWidth(size).setHeight(size).setFixed(true); this.setWidth(size).setHeight(size).setFixed(true);
setName(name); setName(name);
} else { } else {
this.setVisible(false); this.setVisible(false);
} }
} }
public String getName() { public String getName() {
return name; return name;
} }
public GenericFace setName(String name) { public GenericFace setName(String name) {
if (LoadProperties.showFaces) { if (LoadProperties.showFaces) {
this.name = name == null ? "" : name; this.name = name == null ? "" : name;
super.setUrl(facePath + this.name + ".png"); super.setUrl(facePath + this.name + ".png");
super.setDirty(true); super.setDirty(true);
} }
return this; return this;
} }
public GenericFace setSize(int size) { public GenericFace setSize(int size) {
if (LoadProperties.showFaces) { if (LoadProperties.showFaces) {
super.setWidth(size).setHeight(size); super.setWidth(size).setHeight(size);
} }
return this; return this;
} }
} }

View File

@ -1,227 +1,227 @@
/* /*
* This file is part of mmoHelperMinecraft (https://github.com/mmoHelperMinecraftDev). * This file is part of mmoHelperMinecraft (https://github.com/mmoHelperMinecraftDev).
* *
* mmoHelperMinecraft is free software: you can redistribute it and/or modify * mmoHelperMinecraft is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.gmail.nossr50.spout.util; package com.gmail.nossr50.spout.util;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.getspout.spoutapi.gui.*; import org.getspout.spoutapi.gui.*;
import com.gmail.nossr50.spout.mmoHelper; import com.gmail.nossr50.spout.mmoHelper;
public class GenericLivingEntity extends GenericContainer { public class GenericLivingEntity extends GenericContainer {
private Container _space; private Container _space;
private Label _label; private Label _label;
private Gradient _health; private Gradient _health;
private Gradient _armor; private Gradient _armor;
private GenericFace _face; private GenericFace _face;
private int health = 100; private int health = 100;
private int armor = 100; private int armor = 100;
private int def_width = 80; private int def_width = 80;
private int def_height = 14; private int def_height = 14;
private boolean target = false; private boolean target = false;
String face = "~"; String face = "~";
String label = ""; String label = "";
public GenericLivingEntity() { public GenericLivingEntity() {
super(); super();
Color black = new Color(0, 0, 0, 0.75f); Color black = new Color(0, 0, 0, 0.75f);
this.addChildren( this.addChildren(
new GenericContainer( // Used for the bar, this.children with an index 1+ are targets new GenericContainer( // Used for the bar, this.children with an index 1+ are targets
_space = (Container) new GenericContainer() _space = (Container) new GenericContainer()
.setMinWidth(def_width / 4) .setMinWidth(def_width / 4)
.setMaxWidth(def_width / 4) .setMaxWidth(def_width / 4)
.setVisible(target), .setVisible(target),
new GenericContainer( new GenericContainer(
new GenericGradient() new GenericGradient()
.setTopColor(black) .setTopColor(black)
.setBottomColor(black) .setBottomColor(black)
.setPriority(RenderPriority.Highest), .setPriority(RenderPriority.Highest),
new GenericContainer( new GenericContainer(
_health = (Gradient) new GenericGradient(), _health = (Gradient) new GenericGradient(),
_armor = (Gradient) new GenericGradient() _armor = (Gradient) new GenericGradient()
) .setMargin(1) ) .setMargin(1)
.setPriority(RenderPriority.High), .setPriority(RenderPriority.High),
new GenericContainer( new GenericContainer(
_face = (GenericFace) new GenericFace() _face = (GenericFace) new GenericFace()
.setMargin(3, 0, 3, 3), .setMargin(3, 0, 3, 3),
_label = (Label) new GenericLabel() _label = (Label) new GenericLabel()
.setMargin(3) .setMargin(3)
) .setLayout(ContainerType.HORIZONTAL) ) .setLayout(ContainerType.HORIZONTAL)
) .setLayout(ContainerType.OVERLAY) ) .setLayout(ContainerType.OVERLAY)
) .setLayout(ContainerType.HORIZONTAL) ) .setLayout(ContainerType.HORIZONTAL)
.setMargin(0, 0, 1, 0) .setMargin(0, 0, 1, 0)
.setFixed(true) .setFixed(true)
.setWidth(def_width) .setWidth(def_width)
.setHeight(def_height) .setHeight(def_height)
) .setAlign(WidgetAnchor.TOP_LEFT) ) .setAlign(WidgetAnchor.TOP_LEFT)
.setFixed(true) .setFixed(true)
.setWidth(def_width) .setWidth(def_width)
.setHeight(def_height + 1); .setHeight(def_height + 1);
this.setHealthColor(new Color(1f, 0, 0, 0.75f)); this.setHealthColor(new Color(1f, 0, 0, 0.75f));
this.setArmorColor(new Color(0.75f, 0.75f, 0.75f, 0.75f)); this.setArmorColor(new Color(0.75f, 0.75f, 0.75f, 0.75f));
} }
/** /**
* Set the display from a possibly offline player * Set the display from a possibly offline player
* @param name * @param name
* @return * @return
*/ */
public GenericLivingEntity setEntity(String name) { public GenericLivingEntity setEntity(String name) {
return setEntity(name, ""); return setEntity(name, "");
} }
/** /**
* Set the display from a possibly offline player * Set the display from a possibly offline player
* @param name * @param name
* @param prefix Place before the name * @param prefix Place before the name
* @return * @return
*/ */
public GenericLivingEntity setEntity(String name, String prefix) { public GenericLivingEntity setEntity(String name, String prefix) {
Player player = this.getPlugin().getServer().getPlayer(name); Player player = this.getPlugin().getServer().getPlayer(name);
if (player != null && player.isOnline()) { if (player != null && player.isOnline()) {
return setEntity(player, prefix); return setEntity(player, prefix);
} }
setHealth(0); setHealth(0);
setArmor(0); setArmor(0);
setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, null) + name); setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, null) + name);
setFace("~" + name); setFace("~" + name);
return this; return this;
} }
/** /**
* Set the display from a player or living entity * Set the display from a player or living entity
* @param entity * @param entity
* @return * @return
*/ */
public GenericLivingEntity setEntity(LivingEntity entity) { public GenericLivingEntity setEntity(LivingEntity entity) {
return setEntity(entity, ""); return setEntity(entity, "");
} }
/** /**
* Set the display from a player or living entity * Set the display from a player or living entity
* @param entity * @param entity
* @param prefix Place before the name * @param prefix Place before the name
* @return * @return
*/ */
public GenericLivingEntity setEntity(LivingEntity entity, String prefix) { public GenericLivingEntity setEntity(LivingEntity entity, String prefix) {
if (entity != null && entity instanceof LivingEntity) { if (entity != null && entity instanceof LivingEntity) {
setHealth(mmoHelper.getHealth(entity)); // Needs a maxHealth() check setHealth(mmoHelper.getHealth(entity)); // Needs a maxHealth() check
setArmor(mmoHelper.getArmor(entity)); setArmor(mmoHelper.getArmor(entity));
setLabel((!"".equals(prefix) ? prefix : "") + mmoHelper.getColor(screen != null ? screen.getPlayer() : null, entity) + mmoHelper.getSimpleName(entity, !target)); 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(" ", "")); setFace(entity instanceof Player ? ((Player)entity).getName() : "+" + mmoHelper.getSimpleName(entity,false).replaceAll(" ", ""));
} else { } else {
setHealth(0); setHealth(0);
setArmor(0); setArmor(0);
setLabel(""); setLabel("");
setFace(""); setFace("");
} }
return this; return this;
} }
/** /**
* Set the targets of this entity - either actual targets, or pets etc * Set the targets of this entity - either actual targets, or pets etc
* @param targets * @param targets
* @return * @return
*/ */
public GenericLivingEntity setTargets(LivingEntity... targets) { public GenericLivingEntity setTargets(LivingEntity... targets) {
Widget[] widgets = this.getChildren(); Widget[] widgets = this.getChildren();
if (targets == null) { if (targets == null) {
targets = new LivingEntity[0]; // zero-length array is easier to handle targets = new LivingEntity[0]; // zero-length array is easier to handle
} }
for (int i=targets.length + 1; i<widgets.length; i++) { for (int i=targets.length + 1; i<widgets.length; i++) {
this.removeChild(widgets[i]); this.removeChild(widgets[i]);
} }
for (int i=0; i<targets.length; i++) { for (int i=0; i<targets.length; i++) {
GenericLivingEntity child; GenericLivingEntity child;
if (widgets.length > i + 1) { if (widgets.length > i + 1) {
child = (GenericLivingEntity) widgets[i+1]; child = (GenericLivingEntity) widgets[i+1];
} else { } else {
this.addChild(child = new GenericLivingEntity()); this.addChild(child = new GenericLivingEntity());
} }
child.setTarget(true); child.setTarget(true);
child.setEntity(targets[i]); child.setEntity(targets[i]);
} }
setHeight((targets.length + 1) * (def_height + 1)); setHeight((targets.length + 1) * (def_height + 1));
updateLayout(); updateLayout();
return this; return this;
} }
public GenericLivingEntity setTarget(boolean target) { public GenericLivingEntity setTarget(boolean target) {
if (this.target != target) { if (this.target != target) {
this.target = target; this.target = target;
_space.setVisible(target); _space.setVisible(target);
updateLayout(); updateLayout();
} }
return this; return this;
} }
public GenericLivingEntity setHealth(int health) { public GenericLivingEntity setHealth(int health) {
if (this.health != health) { if (this.health != health) {
this.health = health; this.health = health;
updateLayout(); updateLayout();
} }
return this; return this;
} }
public GenericLivingEntity setHealthColor(Color color) { public GenericLivingEntity setHealthColor(Color color) {
_health.setTopColor(color).setBottomColor(color); _health.setTopColor(color).setBottomColor(color);
return this; return this;
} }
public GenericLivingEntity setArmor(int armor) { public GenericLivingEntity setArmor(int armor) {
if (this.armor != armor) { if (this.armor != armor) {
this.armor = armor; this.armor = armor;
updateLayout(); updateLayout();
} }
return this; return this;
} }
public GenericLivingEntity setArmorColor(Color color) { public GenericLivingEntity setArmorColor(Color color) {
_armor.setTopColor(color).setBottomColor(color); _armor.setTopColor(color).setBottomColor(color);
return this; return this;
} }
public GenericLivingEntity setLabel(String label) { public GenericLivingEntity setLabel(String label) {
if (!this.label.equals(label)) { if (!this.label.equals(label)) {
this.label = label; this.label = label;
_label.setText(label).setDirty(true); _label.setText(label).setDirty(true);
updateLayout(); updateLayout();
} }
return this; return this;
} }
public GenericLivingEntity setFace(String name) { public GenericLivingEntity setFace(String name) {
if (!this.face.equals(name)) { if (!this.face.equals(name)) {
this.face = name; this.face = name;
_face.setVisible(!name.isEmpty()); _face.setVisible(!name.isEmpty());
_face.setName(name); _face.setName(name);
updateLayout(); updateLayout();
} }
return this; return this;
} }
@Override @Override
public Container updateLayout() { public Container updateLayout() {
super.updateLayout(); super.updateLayout();
_armor.setWidth((_armor.getContainer().getWidth() * armor) / 100).setDirty(true); _armor.setWidth((_armor.getContainer().getWidth() * armor) / 100).setDirty(true);
_health.setWidth((_health.getContainer().getWidth() * health) / 100).setDirty(true); _health.setWidth((_health.getContainer().getWidth() * health) / 100).setDirty(true);
return this; return this;
} }
} }

View File

@ -1,236 +1,236 @@
name: mcMMO name: mcMMO
main: com.gmail.nossr50.mcMMO main: com.gmail.nossr50.mcMMO
version: 1.2.07 version: 1.2.07
softdepend: [Spout] softdepend: [Spout]
author: nossr50 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. 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: commands:
mchud: mchud:
description: Change your HUD description: Change your HUD
xplock: xplock:
description: Lock your xp bar description: Lock your xp bar
xprate: xprate:
description: Modify the xp rate or start an event description: Modify the xp rate or start an event
mcc: mcc:
description: Lists mcMMO commands description: Lists mcMMO commands
mcmmo: mcmmo:
description: Shows a brief mod description description: Shows a brief mod description
mctop: mctop:
description: Shows leader boards for mcMMO description: Shows leader boards for mcMMO
addxp: addxp:
description: Add XP to a user description: Add XP to a user
permission: mcmmo.tools.mmoedit permission: mcmmo.tools.mmoedit
mcability: mcability:
description: Toggle whether or not abilities get readied on right click description: Toggle whether or not abilities get readied on right click
permission: mcmmo.commands.ability permission: mcmmo.commands.ability
mcrefresh: mcrefresh:
description: Refresh all cooldowns for mcMMO description: Refresh all cooldowns for mcMMO
permission: mcmmo.tools.mcrefresh permission: mcmmo.tools.mcrefresh
mcgod: mcgod:
description: Make yourself invulnerable description: Make yourself invulnerable
permission: mcmmo.tools.mcgod permission: mcmmo.tools.mcgod
stats: stats:
description: Shows your mcMMO stats and xp description: Shows your mcMMO stats and xp
mmoedit: mmoedit:
description: Edit the skill values for a user description: Edit the skill values for a user
permission: mcmmo.tools.mmoedit permission: mcmmo.tools.mmoedit
ptp: ptp:
description: Teleport to a party member description: Teleport to a party member
permission: mcmmo.commands.ptp permission: mcmmo.commands.ptp
party: party:
description: Create/join a party description: Create/join a party
permission: mcmmo.commands.party permission: mcmmo.commands.party
myspawn: myspawn:
description: Teleport to your MySpawn description: Teleport to your MySpawn
permission: mcmmo.commands.myspawn permission: mcmmo.commands.myspawn
whois: whois:
description: View mcMMO stats of another player description: View mcMMO stats of another player
invite: invite:
description: Invite a player into your party description: Invite a player into your party
permission: mcmmo.chat.partychat permission: mcmmo.chat.partychat
accept: accept:
description: Accept a party invite description: Accept a party invite
permission: mcmmo.chat.partychat permission: mcmmo.chat.partychat
clearmyspawn: clearmyspawn:
description: Clear your MySpawn location description: Clear your MySpawn location
permission: mcmmo.commands.myspawn permission: mcmmo.commands.myspawn
mmoupdate: mmoupdate:
description: Convert from Flat File to MySQL description: Convert from Flat File to MySQL
permission: mcmmo.admin permission: mcmmo.admin
p: p:
description: Toggle Party chat or send party chat messages description: Toggle Party chat or send party chat messages
permission: mcmmo.chat.partychat permission: mcmmo.chat.partychat
excavation: excavation:
description: Detailed skill info description: Detailed skill info
herbalism: herbalism:
description: Detailed skill info description: Detailed skill info
mining: mining:
description: Detailed skill info description: Detailed skill info
woodcutting: woodcutting:
description: Detailed skill info description: Detailed skill info
axes: axes:
description: Detailed skill info description: Detailed skill info
archery: archery:
description: Detailed skill info description: Detailed skill info
swords: swords:
description: Detailed skill info description: Detailed skill info
taming: taming:
description: Detailed skill info description: Detailed skill info
unarmed: unarmed:
description: Detailed skill info description: Detailed skill info
acrobatics: acrobatics:
description: Detailed skill info description: Detailed skill info
repair: repair:
description: Detailed skill info description: Detailed skill info
fishing: fishing:
description: Detailed skill info description: Detailed skill info
a: a:
description: Toggle Admin chat or send admin chat messages description: Toggle Admin chat or send admin chat messages
permission: mcmmo.chat.adminchat permission: mcmmo.chat.adminchat
permissions: permissions:
mcmmo.*: mcmmo.*:
description: Implies all mcmmo permissions. description: Implies all mcmmo permissions.
children: children:
mcmmo.defaults: true mcmmo.defaults: true
#Instead of containing mcmmo.defaultsop on its own, it should specify each of mcmmo.defaultsop #Instead of containing mcmmo.defaultsop on its own, it should specify each of mcmmo.defaultsop
mcmmo.admin: true mcmmo.admin: true
mcmmo.tools.*: true mcmmo.tools.*: true
mcmmo.chat.adminchat: true mcmmo.chat.adminchat: true
mcmmo.defaults: mcmmo.defaults:
default: true default: true
description: mcmmo permisions that default to true description: mcmmo permisions that default to true
children: children:
mcmmo.ability.*: true mcmmo.ability.*: true
mcmmo.item.*: true mcmmo.item.*: true
mcmmo.tools.*: true mcmmo.tools.*: true
mcmmo.regeneration: true mcmmo.regeneration: true
mcmmo.motd: true mcmmo.motd: true
mcmmo.commands.*: true mcmmo.commands.*: true
mcmmo.chat.partychat: true mcmmo.chat.partychat: true
mcmmo.skills.*: true mcmmo.skills.*: true
mcmmo.tools.*: false mcmmo.tools.*: false
mcmmo.defaultsop: mcmmo.defaultsop:
default: op default: op
description: mcmmo permissions that default to op description: mcmmo permissions that default to op
children: children:
mcmmo.chat.adminchat: true mcmmo.chat.adminchat: true
mcmmo.admin: mcmmo.admin:
description: description:
mcmmo.tools.*: mcmmo.tools.*:
description: Implies all mcmmo.tools permissions. description: Implies all mcmmo.tools permissions.
children: children:
mcmmo.tools.mcrefresh: true mcmmo.tools.mcrefresh: true
mcmmo.tools.mmoedit: true mcmmo.tools.mmoedit: true
mcmmo.tools.mcgod: true mcmmo.tools.mcgod: true
mcmmo.tools.mcrefresh: mcmmo.tools.mcrefresh:
description: description:
mcmmo.tools.mmoedit: mcmmo.tools.mmoedit:
description: description:
mcmmo.tools.mcgod: mcmmo.tools.mcgod:
description: description:
mcmmo.ability.*: mcmmo.ability.*:
description: Implies all mcmmo.ability permissions. description: Implies all mcmmo.ability permissions.
children: children:
mcmmo.ability.herbalism: true mcmmo.ability.herbalism: true
mcmmo.ability.excavation: true mcmmo.ability.excavation: true
mcmmo.ability.unarmed: true mcmmo.ability.unarmed: true
mcmmo.ability.mining: true mcmmo.ability.mining: true
mcmmo.ability.axes: true mcmmo.ability.axes: true
mcmmo.ability.swords: true mcmmo.ability.swords: true
mcmmo.ability.woodcutting: true mcmmo.ability.woodcutting: true
mcmmo.ability.herbalism: mcmmo.ability.herbalism:
description: description:
mcmmo.ability.excavation: mcmmo.ability.excavation:
description: description:
mcmmo.ability.unarmed: mcmmo.ability.unarmed:
description: description:
mcmmo.ability.mining: mcmmo.ability.mining:
description: description:
mcmmo.ability.axes: mcmmo.ability.axes:
description: description:
mcmmo.ability.swords: mcmmo.ability.swords:
description: description:
mcmmo.ability.woodcutting: mcmmo.ability.woodcutting:
description: description:
mcmmo.item.*: mcmmo.item.*:
description: Implies all mcmmo.item permissions. description: Implies all mcmmo.item permissions.
children: children:
mcmmo.item.chimaerawing: true mcmmo.item.chimaerawing: true
mcmmo.item.chimaerawing: mcmmo.item.chimaerawing:
description: description:
mcmmo.regeneration: mcmmo.regeneration:
description: description:
mcmmo.motd: mcmmo.motd:
description: description:
mcmmo.commands.*: mcmmo.commands.*:
description: Implies all mcmmo.commands permissions. description: Implies all mcmmo.commands permissions.
children: children:
mcmmo.commands.ability: true mcmmo.commands.ability: true
mcmmo.commands.myspawn: true mcmmo.commands.myspawn: true
mcmmo.commands.setmyspawn: true mcmmo.commands.setmyspawn: true
mcmmo.commands.ptp: true mcmmo.commands.ptp: true
mcmmo.commands.whois: true mcmmo.commands.whois: true
mcmmo.commands.party: true mcmmo.commands.party: true
mcmmo.commands.ability: mcmmo.commands.ability:
description: description:
mcmmo.commands.myspawn: mcmmo.commands.myspawn:
description: description:
mcmmo.commands.setmyspawn: mcmmo.commands.setmyspawn:
description: description:
mcmmo.commands.ptp: mcmmo.commands.ptp:
description: description:
mcmmo.commands.whois: mcmmo.commands.whois:
description: description:
mcmmo.commands.party: mcmmo.commands.party:
description: description:
mcmmo.chat.*: mcmmo.chat.*:
description: Implies all mcmmo.chat permissions. (Warning, contains adminchat) description: Implies all mcmmo.chat permissions. (Warning, contains adminchat)
children: children:
mcmmo.chat.adminchat: true mcmmo.chat.adminchat: true
mcmmo.chat.partychat: true mcmmo.chat.partychat: true
mcmmo.chat.adminchat: mcmmo.chat.adminchat:
description: Allows participation in admin chat description: Allows participation in admin chat
mcmmo.chat.partychat: mcmmo.chat.partychat:
description: Allows participation in party chat description: Allows participation in party chat
mcmmo.skills.*: mcmmo.skills.*:
description: Implies all mcmmo.skills permissions. description: Implies all mcmmo.skills permissions.
children: children:
mcmmo.skills.alchemy: true mcmmo.skills.alchemy: true
mcmmo.skills.enchanting: true mcmmo.skills.enchanting: true
mcmmo.skills.fishing: true mcmmo.skills.fishing: true
mcmmo.skills.taming: true mcmmo.skills.taming: true
mcmmo.skills.mining: true mcmmo.skills.mining: true
mcmmo.skills.woodcutting: true mcmmo.skills.woodcutting: true
mcmmo.skills.repair: true mcmmo.skills.repair: true
mcmmo.skills.unarmed: true mcmmo.skills.unarmed: true
mcmmo.skills.archery: true mcmmo.skills.archery: true
mcmmo.skills.herbalism: true mcmmo.skills.herbalism: true
mcmmo.skills.excavation: true mcmmo.skills.excavation: true
mcmmo.skills.swords: true mcmmo.skills.swords: true
mcmmo.skills.axes: true mcmmo.skills.axes: true
mcmmo.skills.acrobatics: true mcmmo.skills.acrobatics: true
mcmmo.skills.taming: mcmmo.skills.taming:
description: description:
mcmmo.skills.mining: mcmmo.skills.mining:
description: description:
mcmmo.skills.woodcutting: mcmmo.skills.woodcutting:
description: description:
mcmmo.skills.repair: mcmmo.skills.repair:
description: description:
mcmmo.skills.unarmed: mcmmo.skills.unarmed:
description: description:
mcmmo.skills.archery: mcmmo.skills.archery:
description: description:
mcmmo.skills.herbalism: mcmmo.skills.herbalism:
description: description:
mcmmo.skills.excavation: mcmmo.skills.excavation:
description: description:
mcmmo.skills.swords: mcmmo.skills.swords:
description: description:
mcmmo.skills.axes: mcmmo.skills.axes:
description: description:
mcmmo.skills.acrobatics: mcmmo.skills.acrobatics:
description: description:

View File

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 506 B

View File

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 229 B

View File

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 580 B

View File

Before

Width:  |  Height:  |  Size: 260 B

After

Width:  |  Height:  |  Size: 260 B

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