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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,85 +1,85 @@
package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.gmail.nossr50.Users;
import com.gmail.nossr50.m;
import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills;
public class StatsCommand implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.statsEnable) {
sender.sendMessage("This command is not enabled.");
return true;
}
if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage.");
return true;
}
Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player);
player.sendMessage(mcLocale.getString("mcPlayerListener.YourStats"));
if (mcPermissions.getEnabled())
player.sendMessage(mcLocale.getString("mcPlayerListener.NoSkillNote"));
ChatColor header = ChatColor.GOLD;
if (Skills.hasGatheringSkills(player)) {
player.sendMessage(header + "-=GATHERING SKILLS=-");
if (mcPermissions.getInstance().excavation(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION)));
if (mcPermissions.getInstance().fishing(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.FishingSkill"), PP.getSkillLevel(SkillType.FISHING), PP.getSkillXpLevel(SkillType.FISHING), PP.getXpToLevel(SkillType.FISHING)));
if (mcPermissions.getInstance().herbalism(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM)));
if (mcPermissions.getInstance().mining(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING)));
if (mcPermissions.getInstance().woodcutting(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING)));
}
if (Skills.hasCombatSkills(player)) {
player.sendMessage(header + "-=COMBAT SKILLS=-");
if (mcPermissions.getInstance().axes(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES)));
if (mcPermissions.getInstance().archery(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY)));
// if(mcPermissions.getInstance().sorcery(player))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkill("sorcery"), PP.getSkill("sorceryXP"), PP.getXpToLevel("excavation")));
if (mcPermissions.getInstance().swords(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS)));
if (mcPermissions.getInstance().taming(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING)));
if (mcPermissions.getInstance().unarmed(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED)));
}
if (Skills.hasMiscSkills(player)) {
player.sendMessage(header + "-=MISC SKILLS=-");
if (mcPermissions.getInstance().acrobatics(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS)));
// if(mcPermissions.getInstance().alchemy(player))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AlchemySkill"), PP.getSkillLevel(SkillType.ALCHEMY), PP.getSkillXpLevel(SkillType.ALCHEMY), PP.getXpToLevel(SkillType.ALCHEMY)));
// if(mcPermissions.getInstance().enchanting(player))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.EnchantingSkill"), PP.getSkillLevel(SkillType.ENCHANTING), PP.getSkillXpLevel(SkillType.ENCHANTING), PP.getXpToLevel(SkillType.ENCHANTING)));
if (mcPermissions.getInstance().repair(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR)));
}
player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(player)));
return true;
}
}
package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.gmail.nossr50.Users;
import com.gmail.nossr50.m;
import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills;
public class StatsCommand implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.statsEnable) {
sender.sendMessage("This command is not enabled.");
return true;
}
if (!(sender instanceof Player)) {
sender.sendMessage("This command does not support console useage.");
return true;
}
Player player = (Player) sender;
PlayerProfile PP = Users.getProfile(player);
player.sendMessage(mcLocale.getString("mcPlayerListener.YourStats"));
if (mcPermissions.getEnabled())
player.sendMessage(mcLocale.getString("mcPlayerListener.NoSkillNote"));
ChatColor header = ChatColor.GOLD;
if (Skills.hasGatheringSkills(player)) {
player.sendMessage(header + "-=GATHERING SKILLS=-");
if (mcPermissions.getInstance().excavation(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PP.getSkillLevel(SkillType.EXCAVATION), PP.getSkillXpLevel(SkillType.EXCAVATION), PP.getXpToLevel(SkillType.EXCAVATION)));
if (mcPermissions.getInstance().fishing(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.FishingSkill"), PP.getSkillLevel(SkillType.FISHING), PP.getSkillXpLevel(SkillType.FISHING), PP.getXpToLevel(SkillType.FISHING)));
if (mcPermissions.getInstance().herbalism(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM)));
if (mcPermissions.getInstance().mining(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING)));
if (mcPermissions.getInstance().woodcutting(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING)));
}
if (Skills.hasCombatSkills(player)) {
player.sendMessage(header + "-=COMBAT SKILLS=-");
if (mcPermissions.getInstance().axes(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PP.getSkillLevel(SkillType.AXES), PP.getSkillXpLevel(SkillType.AXES), PP.getXpToLevel(SkillType.AXES)));
if (mcPermissions.getInstance().archery(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PP.getSkillLevel(SkillType.ARCHERY), PP.getSkillXpLevel(SkillType.ARCHERY), PP.getXpToLevel(SkillType.ARCHERY)));
// if(mcPermissions.getInstance().sorcery(player))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PP.getSkill("sorcery"), PP.getSkill("sorceryXP"), PP.getXpToLevel("excavation")));
if (mcPermissions.getInstance().swords(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PP.getSkillLevel(SkillType.SWORDS), PP.getSkillXpLevel(SkillType.SWORDS), PP.getXpToLevel(SkillType.SWORDS)));
if (mcPermissions.getInstance().taming(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PP.getSkillLevel(SkillType.TAMING), PP.getSkillXpLevel(SkillType.TAMING), PP.getXpToLevel(SkillType.TAMING)));
if (mcPermissions.getInstance().unarmed(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PP.getSkillLevel(SkillType.UNARMED), PP.getSkillXpLevel(SkillType.UNARMED), PP.getXpToLevel(SkillType.UNARMED)));
}
if (Skills.hasMiscSkills(player)) {
player.sendMessage(header + "-=MISC SKILLS=-");
if (mcPermissions.getInstance().acrobatics(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PP.getSkillLevel(SkillType.ACROBATICS), PP.getSkillXpLevel(SkillType.ACROBATICS), PP.getXpToLevel(SkillType.ACROBATICS)));
// if(mcPermissions.getInstance().alchemy(player))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AlchemySkill"), PP.getSkillLevel(SkillType.ALCHEMY), PP.getSkillXpLevel(SkillType.ALCHEMY), PP.getXpToLevel(SkillType.ALCHEMY)));
// if(mcPermissions.getInstance().enchanting(player))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.EnchantingSkill"), PP.getSkillLevel(SkillType.ENCHANTING), PP.getSkillXpLevel(SkillType.ENCHANTING), PP.getXpToLevel(SkillType.ENCHANTING)));
if (mcPermissions.getInstance().repair(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PP.getSkillLevel(SkillType.REPAIR), PP.getSkillXpLevel(SkillType.REPAIR), PP.getXpToLevel(SkillType.REPAIR)));
}
player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(player)));
return true;
}
}

View File

@ -1,98 +1,98 @@
package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.gmail.nossr50.Users;
import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills;
public class WhoisCommand implements CommandExecutor {
private final mcMMO plugin;
public WhoisCommand(mcMMO instance) {
this.plugin = instance;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.whoisEnable) {
sender.sendMessage("This command is not enabled.");
return true;
}
Player player = (Player) sender;
if (!mcPermissions.getInstance().whois(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true;
}
if (args.length < 1) {
player.sendMessage(ChatColor.RED + "Proper usage is /" + LoadProperties.whois + " <playername>");
return true;
}
// if split[1] is a player
if (plugin.getServer().getPlayer(args[0]) != null) {
Player target = plugin.getServer().getPlayer(args[0]);
PlayerProfile PPt = Users.getProfile(target);
player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~");
player.sendMessage(target.getName());
if (PPt.inParty())
player.sendMessage("Party: " + PPt.getParty());
player.sendMessage("Health: " + target.getHealth() + ChatColor.GRAY + " (20 is full health)");
player.sendMessage("OP: " + target.isOp());
player.sendMessage(ChatColor.GREEN + "mcMMO Stats for " + ChatColor.YELLOW + target.getName());
player.sendMessage(ChatColor.GOLD + "-=GATHERING SKILLS=-");
if (mcPermissions.getInstance().excavation(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PPt.getSkillLevel(SkillType.EXCAVATION), PPt.getSkillXpLevel(SkillType.EXCAVATION), PPt.getXpToLevel(SkillType.EXCAVATION)));
if (mcPermissions.getInstance().fishing(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.FishingSkill"), PPt.getSkillLevel(SkillType.FISHING), PPt.getSkillXpLevel(SkillType.FISHING), PPt.getXpToLevel(SkillType.FISHING)));
if (mcPermissions.getInstance().herbalism(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PPt.getSkillLevel(SkillType.HERBALISM), PPt.getSkillXpLevel(SkillType.HERBALISM), PPt.getXpToLevel(SkillType.HERBALISM)));
if (mcPermissions.getInstance().mining(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PPt.getSkillLevel(SkillType.MINING), PPt.getSkillXpLevel(SkillType.MINING), PPt.getXpToLevel(SkillType.MINING)));
if (mcPermissions.getInstance().woodcutting(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PPt.getSkillLevel(SkillType.WOODCUTTING), PPt.getSkillXpLevel(SkillType.WOODCUTTING), PPt.getXpToLevel(SkillType.WOODCUTTING)));
player.sendMessage(ChatColor.GOLD + "-=COMBAT SKILLS=-");
if (mcPermissions.getInstance().axes(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PPt.getSkillLevel(SkillType.AXES), PPt.getSkillXpLevel(SkillType.AXES), PPt.getXpToLevel(SkillType.AXES)));
if (mcPermissions.getInstance().archery(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PPt.getSkillLevel(SkillType.ARCHERY), PPt.getSkillXpLevel(SkillType.ARCHERY), PPt.getXpToLevel(SkillType.ARCHERY)));
// if(mcPermissions.getInstance().sorcery(target))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkill("sorcery"), PPt.getSkill("sorceryXP"), PPt.getXpToLevel("excavation")));
if (mcPermissions.getInstance().swords(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PPt.getSkillLevel(SkillType.SWORDS), PPt.getSkillXpLevel(SkillType.SWORDS), PPt.getXpToLevel(SkillType.SWORDS)));
if (mcPermissions.getInstance().taming(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PPt.getSkillLevel(SkillType.TAMING), PPt.getSkillXpLevel(SkillType.TAMING), PPt.getXpToLevel(SkillType.TAMING)));
if (mcPermissions.getInstance().unarmed(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PPt.getSkillLevel(SkillType.UNARMED), PPt.getSkillXpLevel(SkillType.UNARMED), PPt.getXpToLevel(SkillType.UNARMED)));
player.sendMessage(ChatColor.GOLD + "-=MISC SKILLS=-");
if (mcPermissions.getInstance().acrobatics(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PPt.getSkillLevel(SkillType.ACROBATICS), PPt.getSkillXpLevel(SkillType.ACROBATICS), PPt.getXpToLevel(SkillType.ACROBATICS)));
// if(mcPermissions.getInstance().alchemy(target))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AlchemySkill"), PPt.getSkillLevel(SkillType.ALCHEMY), PPt.getSkillXpLevel(SkillType.ALCHEMY), PPt.getXpToLevel(SkillType.ALCHEMY)));
// if(mcPermissions.getInstance().enchanting(target))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.EnchantingSkill"), PPt.getSkillLevel(SkillType.ENCHANTING), PPt.getSkillXpLevel(SkillType.ENCHANTING), PPt.getXpToLevel(SkillType.ENCHANTING)));
if (mcPermissions.getInstance().repair(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PPt.getSkillLevel(SkillType.REPAIR), PPt.getSkillXpLevel(SkillType.REPAIR), PPt.getXpToLevel(SkillType.REPAIR)));
player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(target)));
}
return true;
}
}
package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.gmail.nossr50.Users;
import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills;
public class WhoisCommand implements CommandExecutor {
private final mcMMO plugin;
public WhoisCommand(mcMMO instance) {
this.plugin = instance;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!LoadProperties.whoisEnable) {
sender.sendMessage("This command is not enabled.");
return true;
}
Player player = (Player) sender;
if (!mcPermissions.getInstance().whois(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true;
}
if (args.length < 1) {
player.sendMessage(ChatColor.RED + "Proper usage is /" + LoadProperties.whois + " <playername>");
return true;
}
// if split[1] is a player
if (plugin.getServer().getPlayer(args[0]) != null) {
Player target = plugin.getServer().getPlayer(args[0]);
PlayerProfile PPt = Users.getProfile(target);
player.sendMessage(ChatColor.GREEN + "~~WHOIS RESULTS~~");
player.sendMessage(target.getName());
if (PPt.inParty())
player.sendMessage("Party: " + PPt.getParty());
player.sendMessage("Health: " + target.getHealth() + ChatColor.GRAY + " (20 is full health)");
player.sendMessage("OP: " + target.isOp());
player.sendMessage(ChatColor.GREEN + "mcMMO Stats for " + ChatColor.YELLOW + target.getName());
player.sendMessage(ChatColor.GOLD + "-=GATHERING SKILLS=-");
if (mcPermissions.getInstance().excavation(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ExcavationSkill"), PPt.getSkillLevel(SkillType.EXCAVATION), PPt.getSkillXpLevel(SkillType.EXCAVATION), PPt.getXpToLevel(SkillType.EXCAVATION)));
if (mcPermissions.getInstance().fishing(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.FishingSkill"), PPt.getSkillLevel(SkillType.FISHING), PPt.getSkillXpLevel(SkillType.FISHING), PPt.getXpToLevel(SkillType.FISHING)));
if (mcPermissions.getInstance().herbalism(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.HerbalismSkill"), PPt.getSkillLevel(SkillType.HERBALISM), PPt.getSkillXpLevel(SkillType.HERBALISM), PPt.getXpToLevel(SkillType.HERBALISM)));
if (mcPermissions.getInstance().mining(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.MiningSkill"), PPt.getSkillLevel(SkillType.MINING), PPt.getSkillXpLevel(SkillType.MINING), PPt.getXpToLevel(SkillType.MINING)));
if (mcPermissions.getInstance().woodcutting(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.WoodcuttingSkill"), PPt.getSkillLevel(SkillType.WOODCUTTING), PPt.getSkillXpLevel(SkillType.WOODCUTTING), PPt.getXpToLevel(SkillType.WOODCUTTING)));
player.sendMessage(ChatColor.GOLD + "-=COMBAT SKILLS=-");
if (mcPermissions.getInstance().axes(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AxesSkill"), PPt.getSkillLevel(SkillType.AXES), PPt.getSkillXpLevel(SkillType.AXES), PPt.getXpToLevel(SkillType.AXES)));
if (mcPermissions.getInstance().archery(player))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.ArcherySkill"), PPt.getSkillLevel(SkillType.ARCHERY), PPt.getSkillXpLevel(SkillType.ARCHERY), PPt.getXpToLevel(SkillType.ARCHERY)));
// if(mcPermissions.getInstance().sorcery(target))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SorcerySkill"), PPt.getSkill("sorcery"), PPt.getSkill("sorceryXP"), PPt.getXpToLevel("excavation")));
if (mcPermissions.getInstance().swords(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.SwordsSkill"), PPt.getSkillLevel(SkillType.SWORDS), PPt.getSkillXpLevel(SkillType.SWORDS), PPt.getXpToLevel(SkillType.SWORDS)));
if (mcPermissions.getInstance().taming(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.TamingSkill"), PPt.getSkillLevel(SkillType.TAMING), PPt.getSkillXpLevel(SkillType.TAMING), PPt.getXpToLevel(SkillType.TAMING)));
if (mcPermissions.getInstance().unarmed(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.UnarmedSkill"), PPt.getSkillLevel(SkillType.UNARMED), PPt.getSkillXpLevel(SkillType.UNARMED), PPt.getXpToLevel(SkillType.UNARMED)));
player.sendMessage(ChatColor.GOLD + "-=MISC SKILLS=-");
if (mcPermissions.getInstance().acrobatics(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AcrobaticsSkill"), PPt.getSkillLevel(SkillType.ACROBATICS), PPt.getSkillXpLevel(SkillType.ACROBATICS), PPt.getXpToLevel(SkillType.ACROBATICS)));
// if(mcPermissions.getInstance().alchemy(target))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.AlchemySkill"), PPt.getSkillLevel(SkillType.ALCHEMY), PPt.getSkillXpLevel(SkillType.ALCHEMY), PPt.getXpToLevel(SkillType.ALCHEMY)));
// if(mcPermissions.getInstance().enchanting(target))
// player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.EnchantingSkill"), PPt.getSkillLevel(SkillType.ENCHANTING), PPt.getSkillXpLevel(SkillType.ENCHANTING), PPt.getXpToLevel(SkillType.ENCHANTING)));
if (mcPermissions.getInstance().repair(target))
player.sendMessage(Skills.getSkillStats(mcLocale.getString("mcPlayerListener.RepairSkill"), PPt.getSkillLevel(SkillType.REPAIR), PPt.getSkillXpLevel(SkillType.REPAIR), PPt.getXpToLevel(SkillType.REPAIR)));
player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel") + ChatColor.GREEN + (m.getPowerLevel(target)));
}
return true;
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,236 +1,236 @@
name: mcMMO
main: com.gmail.nossr50.mcMMO
version: 1.2.07
softdepend: [Spout]
author: nossr50
description: mcMMO takes core Minecraft game mechanics and expands them to add an extensive RPG experience, the goal of the project has always been a quality RPG experience. Everything in mcMMO is carefully thought out and is constantly improving. mcMMO adds eleven skills to train in and level in, while also offering a high level of customization for server admins. There are countless features, including custom sounds, graphical elements, and more added when running mcMMO in conjunction with Spout. I carefully read feedback and evaluate the mechanics of mcMMO in every update to provide an ever-evolving experience.
commands:
mchud:
description: Change your HUD
xplock:
description: Lock your xp bar
xprate:
description: Modify the xp rate or start an event
mcc:
description: Lists mcMMO commands
mcmmo:
description: Shows a brief mod description
mctop:
description: Shows leader boards for mcMMO
addxp:
description: Add XP to a user
permission: mcmmo.tools.mmoedit
mcability:
description: Toggle whether or not abilities get readied on right click
permission: mcmmo.commands.ability
mcrefresh:
description: Refresh all cooldowns for mcMMO
permission: mcmmo.tools.mcrefresh
mcgod:
description: Make yourself invulnerable
permission: mcmmo.tools.mcgod
stats:
description: Shows your mcMMO stats and xp
mmoedit:
description: Edit the skill values for a user
permission: mcmmo.tools.mmoedit
ptp:
description: Teleport to a party member
permission: mcmmo.commands.ptp
party:
description: Create/join a party
permission: mcmmo.commands.party
myspawn:
description: Teleport to your MySpawn
permission: mcmmo.commands.myspawn
whois:
description: View mcMMO stats of another player
invite:
description: Invite a player into your party
permission: mcmmo.chat.partychat
accept:
description: Accept a party invite
permission: mcmmo.chat.partychat
clearmyspawn:
description: Clear your MySpawn location
permission: mcmmo.commands.myspawn
mmoupdate:
description: Convert from Flat File to MySQL
permission: mcmmo.admin
p:
description: Toggle Party chat or send party chat messages
permission: mcmmo.chat.partychat
excavation:
description: Detailed skill info
herbalism:
description: Detailed skill info
mining:
description: Detailed skill info
woodcutting:
description: Detailed skill info
axes:
description: Detailed skill info
archery:
description: Detailed skill info
swords:
description: Detailed skill info
taming:
description: Detailed skill info
unarmed:
description: Detailed skill info
acrobatics:
description: Detailed skill info
repair:
description: Detailed skill info
fishing:
description: Detailed skill info
a:
description: Toggle Admin chat or send admin chat messages
permission: mcmmo.chat.adminchat
permissions:
mcmmo.*:
description: Implies all mcmmo permissions.
children:
mcmmo.defaults: true
#Instead of containing mcmmo.defaultsop on its own, it should specify each of mcmmo.defaultsop
mcmmo.admin: true
mcmmo.tools.*: true
mcmmo.chat.adminchat: true
mcmmo.defaults:
default: true
description: mcmmo permisions that default to true
children:
mcmmo.ability.*: true
mcmmo.item.*: true
mcmmo.tools.*: true
mcmmo.regeneration: true
mcmmo.motd: true
mcmmo.commands.*: true
mcmmo.chat.partychat: true
mcmmo.skills.*: true
mcmmo.tools.*: false
mcmmo.defaultsop:
default: op
description: mcmmo permissions that default to op
children:
mcmmo.chat.adminchat: true
mcmmo.admin:
description:
mcmmo.tools.*:
description: Implies all mcmmo.tools permissions.
children:
mcmmo.tools.mcrefresh: true
mcmmo.tools.mmoedit: true
mcmmo.tools.mcgod: true
mcmmo.tools.mcrefresh:
description:
mcmmo.tools.mmoedit:
description:
mcmmo.tools.mcgod:
description:
mcmmo.ability.*:
description: Implies all mcmmo.ability permissions.
children:
mcmmo.ability.herbalism: true
mcmmo.ability.excavation: true
mcmmo.ability.unarmed: true
mcmmo.ability.mining: true
mcmmo.ability.axes: true
mcmmo.ability.swords: true
mcmmo.ability.woodcutting: true
mcmmo.ability.herbalism:
description:
mcmmo.ability.excavation:
description:
mcmmo.ability.unarmed:
description:
mcmmo.ability.mining:
description:
mcmmo.ability.axes:
description:
mcmmo.ability.swords:
description:
mcmmo.ability.woodcutting:
description:
mcmmo.item.*:
description: Implies all mcmmo.item permissions.
children:
mcmmo.item.chimaerawing: true
mcmmo.item.chimaerawing:
description:
mcmmo.regeneration:
description:
mcmmo.motd:
description:
mcmmo.commands.*:
description: Implies all mcmmo.commands permissions.
children:
mcmmo.commands.ability: true
mcmmo.commands.myspawn: true
mcmmo.commands.setmyspawn: true
mcmmo.commands.ptp: true
mcmmo.commands.whois: true
mcmmo.commands.party: true
mcmmo.commands.ability:
description:
mcmmo.commands.myspawn:
description:
mcmmo.commands.setmyspawn:
description:
mcmmo.commands.ptp:
description:
mcmmo.commands.whois:
description:
mcmmo.commands.party:
description:
mcmmo.chat.*:
description: Implies all mcmmo.chat permissions. (Warning, contains adminchat)
children:
mcmmo.chat.adminchat: true
mcmmo.chat.partychat: true
mcmmo.chat.adminchat:
description: Allows participation in admin chat
mcmmo.chat.partychat:
description: Allows participation in party chat
mcmmo.skills.*:
description: Implies all mcmmo.skills permissions.
children:
mcmmo.skills.alchemy: true
mcmmo.skills.enchanting: true
mcmmo.skills.fishing: true
mcmmo.skills.taming: true
mcmmo.skills.mining: true
mcmmo.skills.woodcutting: true
mcmmo.skills.repair: true
mcmmo.skills.unarmed: true
mcmmo.skills.archery: true
mcmmo.skills.herbalism: true
mcmmo.skills.excavation: true
mcmmo.skills.swords: true
mcmmo.skills.axes: true
mcmmo.skills.acrobatics: true
mcmmo.skills.taming:
description:
mcmmo.skills.mining:
description:
mcmmo.skills.woodcutting:
description:
mcmmo.skills.repair:
description:
mcmmo.skills.unarmed:
description:
mcmmo.skills.archery:
description:
mcmmo.skills.herbalism:
description:
mcmmo.skills.excavation:
description:
mcmmo.skills.swords:
description:
mcmmo.skills.axes:
description:
mcmmo.skills.acrobatics:
description:
name: mcMMO
main: com.gmail.nossr50.mcMMO
version: 1.2.07
softdepend: [Spout]
author: nossr50
description: mcMMO takes core Minecraft game mechanics and expands them to add an extensive RPG experience, the goal of the project has always been a quality RPG experience. Everything in mcMMO is carefully thought out and is constantly improving. mcMMO adds eleven skills to train in and level in, while also offering a high level of customization for server admins. There are countless features, including custom sounds, graphical elements, and more added when running mcMMO in conjunction with Spout. I carefully read feedback and evaluate the mechanics of mcMMO in every update to provide an ever-evolving experience.
commands:
mchud:
description: Change your HUD
xplock:
description: Lock your xp bar
xprate:
description: Modify the xp rate or start an event
mcc:
description: Lists mcMMO commands
mcmmo:
description: Shows a brief mod description
mctop:
description: Shows leader boards for mcMMO
addxp:
description: Add XP to a user
permission: mcmmo.tools.mmoedit
mcability:
description: Toggle whether or not abilities get readied on right click
permission: mcmmo.commands.ability
mcrefresh:
description: Refresh all cooldowns for mcMMO
permission: mcmmo.tools.mcrefresh
mcgod:
description: Make yourself invulnerable
permission: mcmmo.tools.mcgod
stats:
description: Shows your mcMMO stats and xp
mmoedit:
description: Edit the skill values for a user
permission: mcmmo.tools.mmoedit
ptp:
description: Teleport to a party member
permission: mcmmo.commands.ptp
party:
description: Create/join a party
permission: mcmmo.commands.party
myspawn:
description: Teleport to your MySpawn
permission: mcmmo.commands.myspawn
whois:
description: View mcMMO stats of another player
invite:
description: Invite a player into your party
permission: mcmmo.chat.partychat
accept:
description: Accept a party invite
permission: mcmmo.chat.partychat
clearmyspawn:
description: Clear your MySpawn location
permission: mcmmo.commands.myspawn
mmoupdate:
description: Convert from Flat File to MySQL
permission: mcmmo.admin
p:
description: Toggle Party chat or send party chat messages
permission: mcmmo.chat.partychat
excavation:
description: Detailed skill info
herbalism:
description: Detailed skill info
mining:
description: Detailed skill info
woodcutting:
description: Detailed skill info
axes:
description: Detailed skill info
archery:
description: Detailed skill info
swords:
description: Detailed skill info
taming:
description: Detailed skill info
unarmed:
description: Detailed skill info
acrobatics:
description: Detailed skill info
repair:
description: Detailed skill info
fishing:
description: Detailed skill info
a:
description: Toggle Admin chat or send admin chat messages
permission: mcmmo.chat.adminchat
permissions:
mcmmo.*:
description: Implies all mcmmo permissions.
children:
mcmmo.defaults: true
#Instead of containing mcmmo.defaultsop on its own, it should specify each of mcmmo.defaultsop
mcmmo.admin: true
mcmmo.tools.*: true
mcmmo.chat.adminchat: true
mcmmo.defaults:
default: true
description: mcmmo permisions that default to true
children:
mcmmo.ability.*: true
mcmmo.item.*: true
mcmmo.tools.*: true
mcmmo.regeneration: true
mcmmo.motd: true
mcmmo.commands.*: true
mcmmo.chat.partychat: true
mcmmo.skills.*: true
mcmmo.tools.*: false
mcmmo.defaultsop:
default: op
description: mcmmo permissions that default to op
children:
mcmmo.chat.adminchat: true
mcmmo.admin:
description:
mcmmo.tools.*:
description: Implies all mcmmo.tools permissions.
children:
mcmmo.tools.mcrefresh: true
mcmmo.tools.mmoedit: true
mcmmo.tools.mcgod: true
mcmmo.tools.mcrefresh:
description:
mcmmo.tools.mmoedit:
description:
mcmmo.tools.mcgod:
description:
mcmmo.ability.*:
description: Implies all mcmmo.ability permissions.
children:
mcmmo.ability.herbalism: true
mcmmo.ability.excavation: true
mcmmo.ability.unarmed: true
mcmmo.ability.mining: true
mcmmo.ability.axes: true
mcmmo.ability.swords: true
mcmmo.ability.woodcutting: true
mcmmo.ability.herbalism:
description:
mcmmo.ability.excavation:
description:
mcmmo.ability.unarmed:
description:
mcmmo.ability.mining:
description:
mcmmo.ability.axes:
description:
mcmmo.ability.swords:
description:
mcmmo.ability.woodcutting:
description:
mcmmo.item.*:
description: Implies all mcmmo.item permissions.
children:
mcmmo.item.chimaerawing: true
mcmmo.item.chimaerawing:
description:
mcmmo.regeneration:
description:
mcmmo.motd:
description:
mcmmo.commands.*:
description: Implies all mcmmo.commands permissions.
children:
mcmmo.commands.ability: true
mcmmo.commands.myspawn: true
mcmmo.commands.setmyspawn: true
mcmmo.commands.ptp: true
mcmmo.commands.whois: true
mcmmo.commands.party: true
mcmmo.commands.ability:
description:
mcmmo.commands.myspawn:
description:
mcmmo.commands.setmyspawn:
description:
mcmmo.commands.ptp:
description:
mcmmo.commands.whois:
description:
mcmmo.commands.party:
description:
mcmmo.chat.*:
description: Implies all mcmmo.chat permissions. (Warning, contains adminchat)
children:
mcmmo.chat.adminchat: true
mcmmo.chat.partychat: true
mcmmo.chat.adminchat:
description: Allows participation in admin chat
mcmmo.chat.partychat:
description: Allows participation in party chat
mcmmo.skills.*:
description: Implies all mcmmo.skills permissions.
children:
mcmmo.skills.alchemy: true
mcmmo.skills.enchanting: true
mcmmo.skills.fishing: true
mcmmo.skills.taming: true
mcmmo.skills.mining: true
mcmmo.skills.woodcutting: true
mcmmo.skills.repair: true
mcmmo.skills.unarmed: true
mcmmo.skills.archery: true
mcmmo.skills.herbalism: true
mcmmo.skills.excavation: true
mcmmo.skills.swords: true
mcmmo.skills.axes: true
mcmmo.skills.acrobatics: true
mcmmo.skills.taming:
description:
mcmmo.skills.mining:
description:
mcmmo.skills.woodcutting:
description:
mcmmo.skills.repair:
description:
mcmmo.skills.unarmed:
description:
mcmmo.skills.archery:
description:
mcmmo.skills.herbalism:
description:
mcmmo.skills.excavation:
description:
mcmmo.skills.swords:
description:
mcmmo.skills.axes:
description:
mcmmo.skills.acrobatics:
description:

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