mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-25 02:04:44 +02:00
Getting project ready for Maven
This commit is contained in:
420
src/main/java/com/gmail/nossr50/Combat.java
Normal file
420
src/main/java/com/gmail/nossr50/Combat.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
211
src/main/java/com/gmail/nossr50/Database.java
Normal file
211
src/main/java/com/gmail/nossr50/Database.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
104
src/main/java/com/gmail/nossr50/Item.java
Normal file
104
src/main/java/com/gmail/nossr50/Item.java
Normal file
@ -0,0 +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$
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
279
src/main/java/com/gmail/nossr50/Leaderboard.java
Normal file
279
src/main/java/com/gmail/nossr50/Leaderboard.java
Normal file
@ -0,0 +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$
|
||||
}
|
||||
}
|
||||
}
|
112
src/main/java/com/gmail/nossr50/Users.java
Normal file
112
src/main/java/com/gmail/nossr50/Users.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
73
src/main/java/com/gmail/nossr50/commands/mc/MccCommand.java
Normal file
73
src/main/java/com/gmail/nossr50/commands/mc/MccCommand.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
199
src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java
Normal file
199
src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
86
src/main/java/com/gmail/nossr50/commands/party/ACommand.java
Normal file
86
src/main/java/com/gmail/nossr50/commands/party/ACommand.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
101
src/main/java/com/gmail/nossr50/commands/party/PCommand.java
Normal file
101
src/main/java/com/gmail/nossr50/commands/party/PCommand.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
192
src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java
Normal file
192
src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
617
src/main/java/com/gmail/nossr50/config/LoadProperties.java
Normal file
617
src/main/java/com/gmail/nossr50/config/LoadProperties.java
Normal file
@ -0,0 +1,617 @@
|
||||
/*
|
||||
This file is part of mcMMO.
|
||||
|
||||
mcMMO is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
mcMMO is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import java.io.File;
|
||||
import org.bukkit.util.config.Configuration;
|
||||
|
||||
import com.gmail.nossr50.datatypes.HUDType;
|
||||
|
||||
public class LoadProperties
|
||||
{
|
||||
public static Boolean enableOnlyActivateWhenSneaking, enableAbilityMessages, enableAbilities, showDisplayName, showFaces, watch, xplockEnable, xpbar, xpicon, partybar, string, bucket, web, xprateEnable, slimeballs, spoutEnabled,
|
||||
donateMessage, chimaeraWingEnable, xpGainsMobSpawners, myspawnEnable, mccEnable, mcmmoEnable, partyEnable, inviteEnable, acceptEnable,
|
||||
whoisEnable, statsEnable, addxpEnable, ptpEnable, mmoeditEnable, clearmyspawnEnable, mcgodEnable, mcabilityEnable, mctopEnable,
|
||||
mcrefreshEnable, enableMotd, enableMySpawn, enableRegen, enableCobbleToMossy, useMySQL, cocoabeans, mushrooms,
|
||||
toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, excavationRequiresShovel, woodcuttingrequiresaxe, eggs, apples, cake, music, diamond, glowstone,
|
||||
slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
|
||||
|
||||
public static String xplock, MySQLtablePrefix, MySQLuserName, MySQLserverName, MySQLdbName, MySQLdbPass, mctop, addxp,
|
||||
xprate, mcability, mcmmo, mcc, mcrefresh, mcgod, stats, mmoedit, ptp, party, myspawn, whois, invite, accept, clearmyspawn, nWood,
|
||||
nStone, nIron, nGold, nDiamond, locale;
|
||||
|
||||
public static int mfishing, mwatch, xpbar_x, xpbar_y, xpicon_x, xpicon_y, mstring, mbucket, mweb,
|
||||
chimaeraId, msandstone, mcocoa, water_thunder, cure_self, cure_other, mslimeballs, mbones, msulphur, mslowsand,
|
||||
mmushroom2, mglowstone2, mmelon, mmusic, mdiamond2, mbase, mapple, meggs, mcake, mpine, mbirch, mspruce, mcactus, mmushroom, mflower,
|
||||
msugar, mpumpkin, mwheat, mgold, mdiamond, miron, mredstone, mlapis, mobsidian, mnetherrack, mglowstone, mcoal, mstone, MySQLport,
|
||||
xpGainMultiplier, superBreakerCooldown, greenTerraCooldown, gigaDrillBreakerCooldown, treeFellerCooldown,
|
||||
berserkCooldown, serratedStrikeCooldown, skullSplitterCooldown, abilityDurabilityLoss,
|
||||
feathersConsumedByChimaeraWing, bonesConsumedByCOTW, repairdiamondlevel, rWood, rStone, rIron, rGold, rDiamond;
|
||||
|
||||
public static double xpbackground_r, xpbackground_g, xpbackground_b, xpborder_r, xpborder_g, xpborder_b, fishing_r, fishing_g, fishing_b, acrobatics_r, acrobatics_g, acrobatics_b, archery_r, archery_g, archery_b, axes_r, axes_g, axes_b,
|
||||
excavation_r, excavation_g, excavation_b, herbalism_r, herbalism_g, herbalism_b, mining_r, mining_g, mining_b,
|
||||
repair_r, repair_g, repair_b, swords_r, swords_g, swords_b, taming_r, taming_g, taming_b, unarmed_r, unarmed_g, unarmed_b,
|
||||
woodcutting_r, woodcutting_g, woodcutting_b, pvpxprewardmodifier, tamingxpmodifier, miningxpmodifier,
|
||||
repairxpmodifier, woodcuttingxpmodifier, sorceryxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier,
|
||||
archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
|
||||
|
||||
public static HUDType defaulthud;
|
||||
|
||||
public String directory = "plugins/mcMMO/";
|
||||
|
||||
File file = new File(directory + File.separator + "config.yml");
|
||||
static Configuration config = null;
|
||||
|
||||
public void configCheck()
|
||||
{
|
||||
new File(directory).mkdir();
|
||||
config = load();
|
||||
if(!file.exists())
|
||||
{
|
||||
try
|
||||
{
|
||||
file.createNewFile();
|
||||
addDefaults();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
loadkeys();
|
||||
}
|
||||
}
|
||||
private void write(String root, Object x)
|
||||
{
|
||||
//Configuration config = load();
|
||||
config.setProperty(root, x);
|
||||
config.save();
|
||||
}
|
||||
private Boolean readBoolean(String root, Boolean def)
|
||||
{
|
||||
//Configuration config = load();
|
||||
Boolean result = config.getBoolean(root, def);
|
||||
config.save();
|
||||
return result;
|
||||
}
|
||||
private Double readDouble(String root, Double def)
|
||||
{
|
||||
Double result = config.getDouble(root, def);
|
||||
config.save();
|
||||
return result;
|
||||
}
|
||||
private Integer readInteger(String root, Integer def)
|
||||
{
|
||||
//Configuration config = load();
|
||||
Integer result = config.getInt(root, def);
|
||||
config.save();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static String readString(String root, String def)
|
||||
{
|
||||
//Configuration config = load();
|
||||
String result = config.getString(root, def);
|
||||
config.save();
|
||||
return result;
|
||||
}
|
||||
|
||||
private Configuration load()
|
||||
{
|
||||
try {
|
||||
Configuration configx = new Configuration(file);
|
||||
configx.load();
|
||||
return configx;
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private void addDefaults()
|
||||
{
|
||||
System.out.println("Generating Config File...");
|
||||
|
||||
//Put in defaults
|
||||
write("Spout.HUD.Default", "STANDARD");
|
||||
write("Spout.XP.Bar.Enabled", true);
|
||||
write("Spout.Images.URL_DIR", "http://mcmmo.rycochet.net/mcmmo/");
|
||||
write("Spout.XP.Icon.Enabled", true);
|
||||
write("Spout.XP.Bar.X_POS", 95);
|
||||
write("Spout.XP.Bar.Y_POS", 6);
|
||||
write("Spout.XP.Icon.X_POS", 78);
|
||||
write("Spout.XP.Icon.Y_POS", 2);
|
||||
write("Spout.Party.HUD.Enabled", true);
|
||||
write("Spout.Party.HUD.Show_Faces", true);
|
||||
write("Spout.Party.HUD.Show_Display_Name", false);
|
||||
write("Spout.Menu.Key", "KEY_M");
|
||||
write("Spout.HUD.Retro.Colors.Acrobatics.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Acrobatics.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Acrobatics.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Archery.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Archery.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Archery.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Axes.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Axes.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Axes.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Excavation.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Excavation.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Excavation.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Herbalism.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Herbalism.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Herbalism.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Mining.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Mining.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Mining.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Repair.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Repair.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Repair.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Swords.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Swords.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Swords.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Taming.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Taming.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Taming.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Unarmed.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Unarmed.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Unarmed.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Woodcutting.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Woodcutting.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Woodcutting.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Fishing.RED", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Fishing.GREEN", 0.3);
|
||||
write("Spout.HUD.Retro.Colors.Fishing.BLUE", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Border.RED", 0.0);
|
||||
write("Spout.HUD.Retro.Colors.Border.GREEN", 0.0);
|
||||
write("Spout.HUD.Retro.Colors.Border.BLUE", 0.0);
|
||||
write("Spout.HUD.Retro.Colors.Background.RED", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Background.GREEN", 0.75);
|
||||
write("Spout.HUD.Retro.Colors.Background.BLUE", 0.75);
|
||||
|
||||
write("MySQL.Enabled", false);
|
||||
write("MySQL.Server.Address", "localhost");
|
||||
write("MySQL.Server.Port", 3306);
|
||||
write("MySQL.Database.Name", "DataBaseName");
|
||||
write("MySQL.Database.User.Name", "UserName");
|
||||
write("MySQL.Database.TablePrefix", "mcmmo_");
|
||||
write("MySQL.Database.User.Password", "UserPassword");
|
||||
|
||||
write("General.Locale", "en_us");
|
||||
write("General.MOTD.Enabled", true);
|
||||
write("General.MySpawn.Enabled", true);
|
||||
write("General.HP_Regeneration.Enabled", true);
|
||||
|
||||
write("Items.Chimaera_Wing.Enabled", true);
|
||||
write("Items.Chimaera_Wing.Feather_Cost", 10);
|
||||
write("Items.Chimaera_Wing.Item_ID", 288);
|
||||
|
||||
write("Experience.PVP.Rewards", true);
|
||||
write("Experience.Gains.Multiplier.PVP", 1);
|
||||
write("Experience.Gains.Mobspawners.Enabled", false);
|
||||
write("Experience.Gains.Multiplier.Global", 1.0);
|
||||
write("Experience.Formula.Multiplier.Taming", 1.0);
|
||||
write("Experience.Formula.Multiplier.Mining", 1.0);
|
||||
write("Experience.Formula.Multiplier.Repair", 1.0);
|
||||
write("Experience.Formula.Multiplier.Woodcutting", 1.0);
|
||||
write("Experience.Formula.Multiplier.Unarmed", 1.0);
|
||||
write("Experience.Formula.Multiplier.Herbalism", 1.0);
|
||||
write("Experience.Formula.Multiplier.Excavation", 1.0);
|
||||
write("Experience.Formula.Multiplier.Swords", 1.0);
|
||||
write("Experience.Formula.Multiplier.Archery", 1.0);
|
||||
write("Experience.Formula.Multiplier.Axes", 1.0);
|
||||
write("Experience.Formula.Multiplier.Sorcery", 1.0);
|
||||
write("Experience.Formula.Multiplier.Acrobatics", 1.0);
|
||||
write("Experience.Mining.Gold", 350);
|
||||
write("Experience.Mining.Diamond", 750);
|
||||
write("Experience.Mining.Iron", 250);
|
||||
write("Experience.Mining.Redstone", 150);
|
||||
write("Experience.Mining.lapis", 400);
|
||||
write("Experience.Mining.Obsidian", 150);
|
||||
write("Experience.Mining.Netherrack", 30);
|
||||
write("Experience.Mining.Glowstone", 30);
|
||||
write("Experience.Mining.Coal", 100);
|
||||
write("Experience.Mining.Stone", 30);
|
||||
write("Experience.Mining.Sandstone", 30);
|
||||
write("Experience.Herbalism.Sugar_Cane", 30);
|
||||
write("Experience.Herbalism.Cactus", 30);
|
||||
write("Experience.Herbalism.Pumpkin", 550);
|
||||
write("Experience.Herbalism.Flowers", 100);
|
||||
write("Experience.Herbalism.Wheat", 50);
|
||||
write("Experience.Herbalism.Mushrooms", 150);
|
||||
write("Experience.Herbalism.Melon", 40);
|
||||
write("Experience.Woodcutting.Pine", 90);
|
||||
write("Experience.Woodcutting.Birch", 70);
|
||||
write("Experience.Woodcutting.Spruce", 80);
|
||||
write("Experience.Excavation.Base", 40);
|
||||
write("Experience.Excavation.Mushroom", 80);
|
||||
write("Experience.Excavation.Sulphur", 30);
|
||||
write("Experience.Excavation.Slowsand", 80);
|
||||
write("Experience.Excavation.Glowstone", 80);
|
||||
write("Experience.Excavation.Music", 3000);
|
||||
write("Experience.Excavation.Bones", 30);
|
||||
write("Experience.Excavation.Diamond", 1000);
|
||||
write("Experience.Excavation.Apple", 100);
|
||||
write("Experience.Excavation.Eggs", 100);
|
||||
write("Experience.Excavation.Cake", 3000);
|
||||
write("Experience.Excavation.Slimeballs", 100);
|
||||
write("Experience.Excavation.Cocoa_Beans", 100);
|
||||
write("Experience.Excavation.Map", 200);
|
||||
write("Experience.Excavation.String", 200);
|
||||
write("Experience.Excavation.Bucket", 100);
|
||||
write("Experience.Excavation.Web", 150);
|
||||
write("Experience.Fishing.Base", 800);
|
||||
|
||||
//write("Sorcery.Spells.Water.Thunder", 75);
|
||||
//write("Sorcery.Spells.Curative.Cure_Self.Mana_Cost", 5);
|
||||
//write("Sorcery.Spells.Curative.Cure_Other.Mana_Cost", 5);
|
||||
|
||||
write("Excavation.Drops.Cocoa_Beans", true);
|
||||
write("Excavation.Drops.Mushrooms", true);
|
||||
write("Excavation.Drops.Glowstone", true);
|
||||
write("Excavation.Drops.Eggs", true);
|
||||
write("Excavation.Drops.Apples", true);
|
||||
write("Excavation.Drops.Cake", true);
|
||||
write("Excavation.Drops.Music", true);
|
||||
write("Excavation.Drops.Diamond", true);
|
||||
write("Excavation.Drops.Slowsand", true);
|
||||
write("Excavation.Drops.Sulphur", true);
|
||||
write("Excavation.Drops.Netherrack", true);
|
||||
write("Excavation.Drops.Bones", true);
|
||||
write("Excavation.Drops.Slimeballs", true);
|
||||
write("Excavation.Drops.Map", true);
|
||||
write("Excavation.Drops.String", true);
|
||||
write("Excavation.Drops.Bucket", true);
|
||||
write("Excavation.Drops.Web", true);
|
||||
|
||||
write("Commands.xprate.Name", "xprate");
|
||||
write("Commands.xprate.Enabled", true);
|
||||
write("Commands.mctop.Name", "mctop");
|
||||
write("Commands.mctop.Enabled", true);
|
||||
write("Commands.addxp.Name", "addxp");
|
||||
write("Commands.addxp.Enabled", true);
|
||||
write("Commands.mcability.Name", "mcability");
|
||||
write("Commands.mcability.Enabled", true);
|
||||
write("Commands.mcrefresh.Name", "mcrefresh");
|
||||
write("Commands.mcrefresh.Enabled", true);
|
||||
write("Commands.mcmmo.Name", "mcmmo");
|
||||
write("Commands.mcmmo.Donate_Message", true);
|
||||
write("Commands.mcmmo.Enabled", true);
|
||||
write("Commands.mcc.Name", "mcc");
|
||||
write("Commands.mcc.Enabled", true);
|
||||
write("Commands.mcgod.Name", "mcgod");
|
||||
write("Commands.mcgod.Enabled", true);
|
||||
write("Commands.stats.Name", "stats");
|
||||
write("Commands.stats.Enabled", true);
|
||||
write("Commands.mmoedit.Name", "mmoedit");
|
||||
write("Commands.mmoedit.Enabled", true);
|
||||
write("Commands.ptp.Name", "ptp");
|
||||
write("Commands.ptp.Enabled", true);
|
||||
write("Commands.party.Name", "party");
|
||||
write("Commands.party.Enabled", true);
|
||||
write("Commands.myspawn.Name", "myspawn");
|
||||
write("Commands.myspawn.Enabled", true);
|
||||
write("Commands.whois.Name", "whois");
|
||||
write("Commands.whois.Enabled", true);
|
||||
write("Commands.invite.Name", "invite");
|
||||
write("Commands.invite.Enabled", true);
|
||||
write("Commands.accept.Name", "accept");
|
||||
write("Commands.accept.Enabled", true);
|
||||
write("Commands.clearmyspawn.Name", "clearmyspawn");
|
||||
write("Commands.clearmyspawn.Enabled", true);
|
||||
write("Commands.xplock.Enabled", true);
|
||||
write("Commands.xplock.Name", "xplock");
|
||||
|
||||
write("Abilities.Tools.Durability_Loss_Enabled", true);
|
||||
write("Abilities.Tools.Durability_Loss", 2);
|
||||
write("Abilities.Activation.Only_Activate_When_Sneaking", false);
|
||||
write("Abilities.Cooldowns.Green_Terra", 240);
|
||||
write("Abilities.Cooldowns.Super_Breaker", 240);
|
||||
write("Abilities.Cooldowns.Giga_Drill_Breaker", 240);
|
||||
write("Abilities.Cooldowns.Tree_Feller", 240);
|
||||
write("Abilities.Cooldowns.Berserk", 240);
|
||||
write("Abilities.Cooldowns.Serrated_Strikes", 240);
|
||||
write("Abilities.Cooldowns.Skull_Splitter", 240);
|
||||
write("Abilities.Messages", true);
|
||||
write("Abilities.Enabled", true);
|
||||
|
||||
write("Skills.Repair.Anvil_Messages", true);
|
||||
write("Skills.Repair.Gold.ID", 266);
|
||||
write("Skills.Repair.Gold.Name", "Gold Bars");
|
||||
write("Skills.Repair.Stone.ID", 4);
|
||||
write("Skills.Repair.Stone.Name", "Cobblestone");
|
||||
write("Skills.Repair.Wood.ID", 5);
|
||||
write("Skills.Repair.Wood.Name", "Wood Planks");
|
||||
write("Skills.Repair.Diamond.ID", 264);
|
||||
write("Skills.Repair.Diamond.Name", "Diamond");
|
||||
write("Skills.Repair.Diamond.Level_Required", 50);
|
||||
write("Skills.Repair.Iron.ID", 265);
|
||||
write("Skills.Repair.Iron.Name", "Iron Bars");
|
||||
write("Skills.Herbalism.Green_Thumb.Cobble_To_Mossy", true);
|
||||
write("Skills.Excavation.Requires_Shovel", true);
|
||||
write("Skills.Mining.Requires_Pickaxe", true);
|
||||
write("Skills.Woodcutting.Requires_Axe", true);
|
||||
write("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10);
|
||||
|
||||
loadkeys();
|
||||
}
|
||||
private void loadkeys()
|
||||
{
|
||||
System.out.println("Loading Config File...");
|
||||
|
||||
//Setup default HUD
|
||||
String temp = readString("Spout.HUD.Default", "STANDARD");
|
||||
for(HUDType x : HUDType.values())
|
||||
{
|
||||
if(x.toString().equalsIgnoreCase(temp))
|
||||
{
|
||||
defaulthud = x;
|
||||
}
|
||||
}
|
||||
|
||||
enableAbilityMessages = readBoolean("Abilities.Messages", true);
|
||||
enableAbilities = readBoolean("Abilities.Enabled", true);
|
||||
|
||||
donateMessage = readBoolean("Commands.mcmmo.Donate_Message", true);
|
||||
xpGainsMobSpawners = readBoolean("XP.Gains.Mobspawners.Enabled", false);
|
||||
|
||||
bonesConsumedByCOTW = readInteger("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10);
|
||||
|
||||
xpbar = readBoolean("Spout.XP.Bar.Enabled", true);
|
||||
//web_url = readString("Spout.Images.URL_DIR", "http://mcmmo.rycochet.net/mcmmo/");
|
||||
xpicon = readBoolean("Spout.XP.Icon.Enabled", true);
|
||||
xpbar_x = readInteger("Spout.XP.Bar.X_POS", 95);
|
||||
xpbar_y = readInteger("Spout.XP.Bar.Y_POS", 6);
|
||||
xpicon_x = readInteger("Spout.XP.Icon.X_POS", 78);
|
||||
xpicon_y = readInteger("Spout.XP.Icon.Y_POS", 2);
|
||||
|
||||
showFaces = readBoolean("Spout.Party.HUD.Show_Faces", true);
|
||||
showDisplayName = readBoolean("Spout.Party.HUD.Show_Display_Name", false);
|
||||
partybar = readBoolean("Spout.Party.HUD.Enabled", true);
|
||||
|
||||
acrobatics_r = readDouble("Spout.HUD.Retro.Colors.Acrobatics.RED", 0.3);
|
||||
acrobatics_g = readDouble("Spout.HUD.Retro.Colors.Acrobatics.GREEN", 0.3);
|
||||
acrobatics_b = readDouble("Spout.HUD.Retro.Colors.Acrobatics.BLUE", 0.75);
|
||||
archery_r = readDouble("Spout.HUD.Retro.Colors.Archery.RED", 0.3);
|
||||
archery_g = readDouble("Spout.HUD.Retro.Colors.Archery.GREEN", 0.3);
|
||||
archery_b = readDouble("Spout.HUD.Retro.Colors.Archery.BLUE", 0.75);
|
||||
axes_r = readDouble("Spout.HUD.Retro.Colors.Axes.RED", 0.3);
|
||||
axes_g = readDouble("Spout.HUD.Retro.Colors.Axes.GREEN", 0.3);
|
||||
axes_b = readDouble("Spout.HUD.Retro.Colors.Axes.BLUE", 0.75);
|
||||
excavation_r = readDouble("Spout.HUD.Retro.Colors.Excavation.RED", 0.3);
|
||||
excavation_g = readDouble("Spout.HUD.Retro.Colors.Excavation.GREEN", 0.3);
|
||||
excavation_b = readDouble("Spout.HUD.Retro.Colors.Excavation.BLUE", 0.75);
|
||||
herbalism_r = readDouble("Spout.HUD.Retro.Colors.Herbalism.RED", 0.3);
|
||||
herbalism_g = readDouble("Spout.HUD.Retro.Colors.Herbalism.GREEN", 0.3);
|
||||
herbalism_b = readDouble("Spout.HUD.Retro.Colors.Herbalism.BLUE", 0.75);
|
||||
mining_r = readDouble("Spout.HUD.Retro.Colors.Mining.RED", 0.3);
|
||||
mining_g = readDouble("Spout.HUD.Retro.Colors.Mining.GREEN", 0.3);
|
||||
mining_b = readDouble("Spout.HUD.Retro.Colors.Mining.BLUE", 0.75);
|
||||
repair_r = readDouble("Spout.HUD.Retro.Colors.Repair.RED", 0.3);
|
||||
repair_g = readDouble("Spout.HUD.Retro.Colors.Repair.GREEN", 0.3);
|
||||
repair_b = readDouble("Spout.HUD.Retro.Colors.Repair.BLUE", 0.75);
|
||||
swords_r = readDouble("Spout.HUD.Retro.Colors.Swords.RED", 0.3);
|
||||
swords_g = readDouble("Spout.HUD.Retro.Colors.Swords.GREEN", 0.3);
|
||||
swords_b = readDouble("Spout.HUD.Retro.Colors.Swords.BLUE", 0.75);
|
||||
taming_r = readDouble("Spout.HUD.Retro.Colors.Taming.RED", 0.3);
|
||||
taming_g = readDouble("Spout.HUD.Retro.Colors.Taming.GREEN", 0.3);
|
||||
taming_b = readDouble("Spout.HUD.Retro.Colors.Taming.BLUE", 0.75);
|
||||
unarmed_r = readDouble("Spout.HUD.Retro.Colors.Unarmed.RED", 0.3);
|
||||
unarmed_g = readDouble("Spout.HUD.Retro.Colors.Unarmed.GREEN", 0.3);
|
||||
unarmed_b = readDouble("Spout.HUD.Retro.Colors.Unarmed.BLUE", 0.75);
|
||||
woodcutting_r = readDouble("Spout.HUD.Retro.Colors.Woodcutting.RED", 0.3);
|
||||
woodcutting_g = readDouble("Spout.HUD.Retro.Colors.Woodcutting.GREEN", 0.3);
|
||||
woodcutting_b = readDouble("Spout.HUD.Retro.Colors.Woodcutting.BLUE", 0.75);
|
||||
fishing_r = readDouble("Spout.HUD.Retro.Colors.Fishing.RED", 0.3);
|
||||
fishing_g = readDouble("Spout.HUD.Retro.Colors.Fishing.GREEN", 0.3);
|
||||
fishing_b = readDouble("Spout.HUD.Retro.Colors.Fishing.BLUE", 0.75);
|
||||
|
||||
xpborder_r = readDouble("Spout.HUD.Retro.Colors.Border.RED", 0.0);
|
||||
xpborder_g = readDouble("Spout.HUD.Retro.Colors.Border.GREEN", 0.0);
|
||||
xpborder_b = readDouble("Spout.HUD.Retro.Colors.Border.BLUE", 0.0);
|
||||
xpbackground_r = readDouble("Spout.HUD.Retro.Colors.Background.RED", 0.75);
|
||||
xpbackground_g = readDouble("Spout.HUD.Retro.Colors.Background.GREEN", 0.75);
|
||||
xpbackground_b = readDouble("Spout.HUD.Retro.Colors.Background.BLUE", 0.75);
|
||||
|
||||
msulphur = readInteger("Experience.Excavation.Sulphur", 30);
|
||||
mbones = readInteger("Experience.Excavation.Bones", 30);
|
||||
mbase = readInteger("Experience.Excavation.Base", 40);
|
||||
mmushroom2 = readInteger("Experience.Excavation.Mushroom", 80);
|
||||
mslowsand = readInteger("Experience.Excavation.Slowsand", 80);
|
||||
mglowstone2 = readInteger("Experience.Excavation.Glowstone", 80);
|
||||
mmusic = readInteger("Experience.Excavation.Music", 3000);
|
||||
mdiamond2 = readInteger("Experience.Excavation.Diamond", 1000);
|
||||
mapple = readInteger("Experience.Excavation.Apple", 100);
|
||||
meggs = readInteger("Experience.Excavation.Eggs", 100);
|
||||
mcake = readInteger("Experience.Excavation.Cake", 3000);
|
||||
mcocoa = readInteger("Experience.Excavation.Cocoa_Beans", 100);
|
||||
mslimeballs = readInteger("Experience.Excavation.Slimeballs", 100);
|
||||
mstring = readInteger("Experience.Excavation.String", 200);
|
||||
mbucket = readInteger("Experience.Excavation.Bucket", 100);
|
||||
mweb = readInteger("Experience.Excavation.Web", 150);
|
||||
mwatch = readInteger("Experience.Excavation.Watch", 200);
|
||||
|
||||
msugar = readInteger("Experience.Herbalism.Sugar_Cane", 30);
|
||||
mwheat = readInteger("Experience.Herbalism.Wheat", 50);
|
||||
mcactus = readInteger("Experience.Herbalism.Cactus", 30);
|
||||
mpumpkin = readInteger("Experience.Herbalism.Pumpkin", 550);
|
||||
mflower = readInteger("Experience.Herbalism.Flowers", 100);
|
||||
mmushroom = readInteger("Experience.Herbalism.Mushrooms", 150);
|
||||
mmelon = readInteger("Experience.Herbalism.Melon", 20);
|
||||
|
||||
mpine = readInteger("Experience.Woodcutting.Pine", 70);
|
||||
mbirch = readInteger("Experience.Woodcutting.Birch", 80);
|
||||
mspruce = readInteger("Experience.Woodcutting.Spruce", 90);
|
||||
|
||||
mgold = readInteger("Experience.Mining.Gold", 250);
|
||||
mdiamond = readInteger("Experience.Mining.Diamond", 750);
|
||||
miron = readInteger("Experience.Mining.Iron", 250);
|
||||
mredstone = readInteger("Experience.Mining.Redstone", 150);
|
||||
mlapis = readInteger("Experience.Mining.lapis", 400);
|
||||
mobsidian = readInteger("Experience.Mining.Obsidian", 150);
|
||||
mnetherrack = readInteger("Experience.Mining.Netherrack", 30);
|
||||
mglowstone = readInteger("Experience.Mining.Glowstone", 30);
|
||||
mcoal = readInteger("Experience.Mining.Coal", 100);
|
||||
mstone = readInteger("Experience.Mining.Stone", 30);
|
||||
msandstone = readInteger("Experience.Mining.Sandstone", 30);
|
||||
|
||||
mfishing = readInteger("Experience.Fishing.Base", 800);
|
||||
|
||||
enableOnlyActivateWhenSneaking = readBoolean("Abilities.Activation.Only_Activate_When_Sneaking", false);
|
||||
|
||||
greenTerraCooldown = readInteger("Abilities.Cooldowns.Green_Terra", 240);
|
||||
superBreakerCooldown = readInteger("Abilities.Cooldowns.Super_Breaker", 240);
|
||||
gigaDrillBreakerCooldown = readInteger("Abilities.Cooldowns.Giga_Drill_Breaker", 240);
|
||||
treeFellerCooldown = readInteger("Abilities.Cooldowns.Tree_Feller", 240);
|
||||
berserkCooldown = readInteger("Abilities.Cooldowns.Berserk", 240);
|
||||
serratedStrikeCooldown = readInteger("Abilities.Cooldowns.Serrated_Strikes", 240);
|
||||
skullSplitterCooldown = readInteger("Abilities.Cooldowns.Skull_Splitter", 240);
|
||||
|
||||
MySQLserverName = readString("MySQL.Server.Address", "localhost");
|
||||
if(readString("MySQL.Database.User.Password", null) != null)
|
||||
MySQLdbPass = readString("MySQL.Database.User.Password", null);
|
||||
else
|
||||
MySQLdbPass = "";
|
||||
|
||||
MySQLdbName = readString("MySQL.Database.Name", "DatabaseName");
|
||||
MySQLuserName = readString("MySQL.Database.User.Name", "UserName");
|
||||
MySQLtablePrefix = readString("MySQL.Database.TablePrefix", "mcmmo_");
|
||||
MySQLport = readInteger("MySQL.Server.Port", 3306);
|
||||
useMySQL = readBoolean("MySQL.Enabled", false);
|
||||
|
||||
locale = readString("General.Locale", "en_us");
|
||||
enableMotd = readBoolean("General.MOTD.Enabled", true);
|
||||
enableMySpawn = readBoolean("General.MySpawn.Enabled", true);
|
||||
enableRegen = readBoolean("General.HP_Regeneration.Enabled", true);
|
||||
|
||||
enableCobbleToMossy = readBoolean("Skills.Herbalism.Green_Thumb.Cobble_To_Mossy", true);
|
||||
|
||||
xpGainMultiplier = readInteger("Experience.Gains.Multiplier.Global", 1);
|
||||
toolsLoseDurabilityFromAbilities = readBoolean("Abilities.Tools.Durability_Loss_Enabled", true);
|
||||
abilityDurabilityLoss = readInteger("Abilities.Tools.Durability_Loss", 2);
|
||||
|
||||
feathersConsumedByChimaeraWing = readInteger("Items.Chimaera_Wing.Feather_Cost", 10);
|
||||
chimaeraId = readInteger("Items.Chimaera_Wing.Item_ID", 288);
|
||||
chimaeraWingEnable = readBoolean("Items.Chimaera_Wing.Enabled", true);
|
||||
|
||||
pvpxp = readBoolean("XP.PVP.Rewards", true);
|
||||
pvpxprewardmodifier = readDouble("Experience.Gains.Multiplier.PVP", 1.0);
|
||||
miningrequirespickaxe = readBoolean("Skills.Mining.Requires_Pickaxe", true);
|
||||
excavationRequiresShovel = readBoolean("Skills.Excavation.Requires_Shovel", true);
|
||||
woodcuttingrequiresaxe = readBoolean("Skills.Woodcutting.Requires_Axe", true);
|
||||
repairdiamondlevel = readInteger("Skills.Repair.Diamond.Level_Required", 50);
|
||||
|
||||
sorceryxpmodifier = readDouble("Experience.Formula.Multiplier.Sorcery", 1.0);
|
||||
tamingxpmodifier = readDouble("Experience.Formula.Multiplier.Taming", 1.0);
|
||||
miningxpmodifier = readDouble("Experience.Formula.Multiplier.Mining", 1.0);
|
||||
repairxpmodifier = readDouble("Experience.Formula.Multiplier.Repair", 1.0);
|
||||
woodcuttingxpmodifier = readDouble("Experience.Formula.Multiplier.Woodcutting", 1.0);
|
||||
unarmedxpmodifier = readDouble("Experience.Formula.Multiplier.Unarmed", 1.0);
|
||||
herbalismxpmodifier = readDouble("Experience.Formula.Multiplier.Herbalism", 1.0);
|
||||
excavationxpmodifier = readDouble("Experience.Formula.Multiplier.Excavation", 1.0);
|
||||
archeryxpmodifier = readDouble("Experience.Formula.Multiplier.Archery", 1.0);
|
||||
swordsxpmodifier = readDouble("Experience.Formula.Multiplier.Swords", 1.0);
|
||||
axesxpmodifier = readDouble("Experience.Formula.Multiplier.Axes", 1.0);
|
||||
acrobaticsxpmodifier = readDouble("Experience.Formula.Multiplier.Acrobatics", 1.0);
|
||||
|
||||
anvilmessages = readBoolean("Skills.Repair.Anvil_Messages", true);
|
||||
|
||||
rGold = readInteger("Skills.Repair.Gold.ID", 266);
|
||||
nGold = readString("Skills.Repair.Gold.Name", "Gold Bars");
|
||||
rStone = readInteger("Skills.Repair.Stone.ID", 4);
|
||||
nStone = readString("Skills.Repair.Stone.Name", "Cobblestone");
|
||||
rWood = readInteger("Skills.Repair.Wood.ID", 5);
|
||||
nWood = readString("Skills.Repair.Wood.Name", "Wood Planks");
|
||||
rDiamond = readInteger("Skills.Repair.Diamond.ID", 264);
|
||||
nDiamond = readString("Skills.Repair.Diamond.Name", "Diamond");
|
||||
rIron = readInteger("Skills.Repair.Iron.ID", 265);
|
||||
nIron = readString("Skills.Repair.Iron.Name", "Iron Bars");
|
||||
|
||||
cocoabeans = readBoolean("Excavation.Drops.Cocoa_Beans", true);
|
||||
mushrooms = readBoolean("Excavation.Drops.Mushrooms", true);
|
||||
glowstone = readBoolean("Excavation.Drops.Glowstone", true);
|
||||
eggs = readBoolean("Excavation.Drops.Eggs", true);
|
||||
apples = readBoolean("Excavation.Drops.Apples", true);
|
||||
cake = readBoolean("Excavation.Drops.Cake", true);
|
||||
music = readBoolean("Excavation.Drops.Music", true);
|
||||
diamond = readBoolean("Excavation.Drops.Diamond", true);
|
||||
slowsand = readBoolean("Excavation.Drops.Slowsand", true);
|
||||
sulphur = readBoolean("Excavation.Drops.Sulphur", true);
|
||||
netherrack = readBoolean("Excavation.Drops.Netherrack", true);
|
||||
bones = readBoolean("Excavation.Drops.Bones", true);
|
||||
slimeballs = readBoolean("Excavation.Drops.Slimeballs", true);
|
||||
watch = readBoolean("Excavation.Drops.Watch", true);
|
||||
string = readBoolean("Excavation.Drops.String", true);
|
||||
bucket = readBoolean("Excavation.Drops.Bucket", true);
|
||||
web = readBoolean("Excavation.Drops.Web", true);
|
||||
|
||||
xprate = readString("Commands.xprate.Name", "xprate");
|
||||
xprateEnable = readBoolean("Commands.xprate.Enabled", true);
|
||||
|
||||
mctop = readString("Commands.mctop.Name", "mctop");
|
||||
mctopEnable = readBoolean("Commands.mctop.Enabled", true);
|
||||
|
||||
addxp = readString("Commands.addxp.Name", "addxp");
|
||||
addxpEnable = readBoolean("Commands.addxp.Enabled", true);
|
||||
|
||||
mcability = readString("Commands.mcability.Name", "mcability");
|
||||
mcabilityEnable = readBoolean("Commands.mcability.Enabled", true);
|
||||
|
||||
mcrefresh = readString("Commands.mcrefresh.Name", "mcrefresh");
|
||||
mcrefreshEnable = readBoolean("Commands.mcrefresh.Enabled", true);
|
||||
|
||||
mcmmo = readString("Commands.mcmmo.Name", "mcmmo");
|
||||
mcmmoEnable = readBoolean("Commands.mcmmo.Enabled", true);
|
||||
|
||||
mcc = readString("Commands.mcc.Name", "mcc");
|
||||
mccEnable = readBoolean("Commands.mcc.Enabled", true);
|
||||
|
||||
mcgod = readString("Commands.mcgod.Name", "mcgod");
|
||||
mcgodEnable = readBoolean("Commands.mcgod.Enabled", true);
|
||||
|
||||
stats = readString("Commands.stats.Name", "stats");
|
||||
statsEnable = readBoolean("Commands.stats.Enabled", true);
|
||||
|
||||
mmoedit = readString("Commands.mmoedit.Name", "mmoedit");
|
||||
mmoeditEnable = readBoolean("Commands.mmoedit.Enabled", true);
|
||||
|
||||
ptp = readString("Commands.ptp.Name", "ptp");
|
||||
ptpEnable = readBoolean("Commands.ptp.Enabled", true);
|
||||
|
||||
party = readString("Commands.party.Name", "party");
|
||||
partyEnable = readBoolean("Commands.party.Enabled", true);
|
||||
|
||||
myspawn = readString("Commands.myspawn.Name", "myspawn");
|
||||
myspawnEnable = readBoolean("Commands.myspawn.Enabled", true);
|
||||
|
||||
whois = readString("Commands.whois.Name", "whois");
|
||||
whoisEnable = readBoolean("Commands.whois.Enabled", true);
|
||||
|
||||
invite = readString("Commands.invite.Name", "invite");
|
||||
inviteEnable = readBoolean("Commands.invite.Enabled", true);
|
||||
|
||||
accept = readString("Commands.accept.Name", "accept");
|
||||
acceptEnable = readBoolean("Commands.accept.Enabled", true);
|
||||
|
||||
clearmyspawn = readString("Commands.clearmyspawn.Name", "clearmyspawn");
|
||||
clearmyspawnEnable = readBoolean("Commands.clearmyspawn.Enabled", true);
|
||||
|
||||
xplockEnable = readBoolean("Commands.xplock.Enabled", true);
|
||||
xplock = readString("Commands.xplock.Name", "xplock");
|
||||
}
|
||||
}
|
90
src/main/java/com/gmail/nossr50/config/Misc.java
Normal file
90
src/main/java/com/gmail/nossr50/config/Misc.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +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);
|
||||
}
|
||||
}
|
25
src/main/java/com/gmail/nossr50/datatypes/HUDType.java
Normal file
25
src/main/java/com/gmail/nossr50/datatypes/HUDType.java
Normal file
@ -0,0 +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;
|
||||
}
|
287
src/main/java/com/gmail/nossr50/datatypes/HUDmmo.java
Normal file
287
src/main/java/com/gmail/nossr50/datatypes/HUDmmo.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
1236
src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java
Normal file
1236
src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java
Normal file
File diff suppressed because it is too large
Load Diff
23
src/main/java/com/gmail/nossr50/datatypes/PlayerStat.java
Normal file
23
src/main/java/com/gmail/nossr50/datatypes/PlayerStat.java
Normal file
@ -0,0 +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;
|
||||
}
|
36
src/main/java/com/gmail/nossr50/datatypes/SkillType.java
Normal file
36
src/main/java/com/gmail/nossr50/datatypes/SkillType.java
Normal file
@ -0,0 +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;
|
||||
}
|
55
src/main/java/com/gmail/nossr50/datatypes/Tree.java
Normal file
55
src/main/java/com/gmail/nossr50/datatypes/Tree.java
Normal file
@ -0,0 +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()]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
65
src/main/java/com/gmail/nossr50/datatypes/TreeNode.java
Normal file
65
src/main/java/com/gmail/nossr50/datatypes/TreeNode.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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);
|
||||
}
|
||||
}
|
@ -0,0 +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);
|
||||
}
|
||||
}
|
@ -0,0 +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 ButtonPartyToggle extends GenericButton
|
||||
{
|
||||
public ButtonPartyToggle(PlayerProfile PP)
|
||||
{
|
||||
this.setText("Party HUD: "+PP.getPartyHUD());
|
||||
this.setTooltip("Toggle the Party HUD!");
|
||||
this.setWidth(120).setHeight(20);
|
||||
this.setDirty(true);
|
||||
}
|
||||
public void updateText(PlayerProfile PP)
|
||||
{
|
||||
this.setText("Party HUD: "+PP.getPartyHUD());
|
||||
this.setDirty(true);
|
||||
}
|
||||
}
|
@ -0,0 +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);
|
||||
}
|
||||
}
|
451
src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java
Normal file
451
src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
||||
}
|
208
src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java
Normal file
208
src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
||||
}
|
346
src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java
Normal file
346
src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java
Normal file
@ -0,0 +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)));
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +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();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +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());
|
||||
}
|
||||
}
|
||||
}
|
397
src/main/java/com/gmail/nossr50/locale/locale_de.properties
Normal file
397
src/main/java/com/gmail/nossr50/locale/locale_de.properties
Normal file
@ -0,0 +1,397 @@
|
||||
Combat.WolfExamine=[[YELLOW]]**du musterst den Wolf mit Bestienkunde**
|
||||
Combat.WolfShowMaster=[[DARK_YELLOW]]Der Bestienmeister \: {0}
|
||||
Combat.Ignition=[[RED]]**ENTZUENDEN**
|
||||
Combat.BurningArrowHit=[[DARK_RED]]Du wurdest von einem brennenden Pfeil gestriffen\!
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Benommen. fuehlt sich schwindelig.
|
||||
Combat.TargetDazed=Target was [[DARK_RED]]benommen
|
||||
Combat.WolfNoMaster=[[AQUA]]Diese Bestie hat keinen Meister...
|
||||
Combat.WolfHealth=[[YELLOW]]Die Bestie hat {0} Lebensenergie
|
||||
Combat.StruckByGore=[[RED]]**Getroffen von Biss**
|
||||
Combat.Gore=[[YELLOW]]**BISS**
|
||||
Combat.ArrowDeflect=[[AQUA]]**PFEIL ABGELENKT**
|
||||
Item.ChimaeraWingFail=[[AQUA]]**CHIMAERA FLUEGEL fehlgeschlagen\!**
|
||||
Item.ChimaeraWingPass=[[AQUA]]**CHIMAERA FLUEGEL**
|
||||
Item.InjuredWait=[[AQUA]]du wurdest kurz zuvor verletzt und musst mit der Benutzung warten. [[YELLOW]]({0}s)
|
||||
Item.NeedFeathers=[[AQUA]]Du brauchst mehr Federn..
|
||||
m.mccPartyCommands=[[AQUA]]_______ [[YELLOW]]GRUPPEN BEFEHLE [[AQUA]]_______
|
||||
m.mccParty=[party name] [[YELLOW]]- Erstellen/beitreten einer Gruppe
|
||||
m.mccPartyQ=[[[YELLOW]]- Verlasse aktuelle Gruppe
|
||||
m.mccPartyToggle=[[YELLOW]] - aktiviert Gruppenchat
|
||||
m.mccPartyInvite=[player name] [[YELLOW]]- sende Gruppeneinladung
|
||||
m.mccPartyAccept=[[YELLOW]]- Gruppeneinladung akzeptieren
|
||||
m.mccPartyTeleport=[party member name] [[YELLOW]]- Teleport zu Gruppenmitglied
|
||||
m.mccOtherCommands=[[DARK_AQUA]]_______[[YELLOW]] ANDERE BEFEHLE [[DARK_AQUA]]_______
|
||||
m.mccStats=[[YELLOW]]- zeigt deinen Status
|
||||
m.mccLeaderboards=[[YELLOW]]- Ranglisten
|
||||
m.mccMySpawn=[[YELLOW]]- Teleport zum Spawnpunkt
|
||||
m.mccClearMySpawn=[[YELLOW]]- Spawnpunkt loeschen
|
||||
m.mccToggleAbility=[[YELLOW]]- Faehigkeitsaktivierung mit rechtsklick an/aus schalten
|
||||
m.mccAdminToggle=[[YELLOW]]- Adminchat aktivieren
|
||||
m.mccWhois=[[WHITE]][playername] [[YELLOW]]- Detailierte Spielerinfos zeigen
|
||||
m.mccMmoedit=[playername] [skill] [newvalue] [[YELLOW]]- Ziel modifizieren
|
||||
m.mccMcGod=[[YELLOW]]- God Mode
|
||||
m.mccSkillInfo=[[WHITE]][skillname] [[YELLOW]]- Detailierte Skillinfos zeigen
|
||||
m.mccModDescription=[[YELLOW]]- kurze MOD-Beschreibung lesen
|
||||
m.SkillHeader=[[DARK_AQUA]]_______[[YELLOW]] {0} [[DARK_AQUA]]_______
|
||||
m.XPGain=[[DARK_AQUA]]XP [[AQUA]]Erhalten: [[AQUA]]{0}
|
||||
m.EffectsTemplate=[[YELLOW]]{0}: [[GREEN]]{1}
|
||||
m.AbilityLockTemplate=[[AQUA]]{0}
|
||||
m.AbilityBonusTemplate=[[YELLOW]]{0}: [[GREEN]]{1}
|
||||
m.Effects=EFFEKTE
|
||||
m.YourStats=[[DARK_AQUA]]_______ [[YELLOW]]DEINE WERTE [[DARK_AQUA]]_______
|
||||
m.SkillTaming=Bestienkunde (Taming)
|
||||
m.XPGainTaming=[[YELLOW]]wenn deine Woelfe angreifen
|
||||
m.EffectsTaming1_0=[[YELLOW]]Bestienkunde
|
||||
m.EffectsTaming1_1=[[AQUA]]mit Knochen schlagen inspiziert Woelfe
|
||||
m.EffectsTaming2_0=[[YELLOW]]Biss
|
||||
m.EffectsTaming2_1=[[AQUA]]Kritischer Schlag mit Blutungseffekt
|
||||
m.EffectsTaming3_0=[[YELLOW]]Geschaerfte Krallen
|
||||
m.EffectsTaming3_1=[[AQUA]]Schadens-Bonus
|
||||
m.EffectsTaming4_0=[[YELLOW]]Umweltbewusst
|
||||
m.EffectsTaming4_1=[[AQUA]]Kaktus/Lava Phobie, Fall Schaden Immun
|
||||
m.EffectsTaming5_0=[[YELLOW]]Dichtes Fell
|
||||
m.EffectsTaming5_1=[[AQUA]]Schadens-Reduzierung, Feuer-Resistenz
|
||||
m.EffectsTaming6_0=[[YELLOW]]Schockfest
|
||||
m.EffectsTaming6_1=[[AQUA]]Explosions-Schaden-Reduzierung
|
||||
m.AbilLockTaming1=[[DARK_AQUA]]gesperrt bis 100+ Skilllevel (Umweltbewusst)
|
||||
m.AbilLockTaming2=[[DARK_AQUA]]gesperrt bis 250+ Skilllevel (Dichtes Fell)
|
||||
m.AbilLockTaming3=[[DARK_AQUA]]gesperrt bis 500+ Skilllevel (Schockfest)
|
||||
m.AbilLockTaming4=[[DARK_AQUA]]gesperrt bis 750+ Skilllevel (Geschaerfte Krallen)
|
||||
m.AbilBonusTaming1_0=[[YELLOW]]Umweltbewusst
|
||||
m.AbilBonusTaming1_1=[[AQUA]]Woelfe meiden Gefahr
|
||||
m.AbilBonusTaming2_0=[[YELLOW]]Dichtes Fell
|
||||
m.AbilBonusTaming2_1=[[AQUA]]Halber Schaden, Feuer-Resistenz
|
||||
m.AbilBonusTaming3_0=[[YELLOW]]Schockfest
|
||||
m.AbilBonusTaming3_1=[[AQUA]]Explosionen machen 1/6 normalen Schaden
|
||||
m.AbilBonusTaming4_0=[[YELLOW]]Geschärfte Krallen
|
||||
m.AbilBonusTaming4_1=[[AQUA]]+2 Schaden
|
||||
m.TamingGoreChance=[[AQUA]]Biss Chance: [[GREEN]]{0}%
|
||||
m.SkillWoodCutting=Holzfaellen (WoodCutting)
|
||||
m.XPGainWoodCutting=[[YELLOW]]Baeume faellen
|
||||
m.EffectsWoodCutting1_0=[[YELLOW]]Baumfaeller (Faehigkeit)
|
||||
m.EffectsWoodCutting1_1=[[AQUA]]Bringt Baeume zum explodieren
|
||||
m.EffectsWoodCutting2_0=[[YELLOW]]Blaetter-Sturm
|
||||
m.EffectsWoodCutting2_1=[[AQUA]]blaest Blaetter weg
|
||||
m.EffectsWoodCutting3_0=[[YELLOW]]Doppelte Drops
|
||||
m.EffectsWoodCutting3_1=[[AQUA]]doppelte Anzahl Items
|
||||
m.AbilLockWoodCutting1=[[DARK_AQUA]]gesperrt bis 100+ Skilllevel (Blaetter-Sturm)
|
||||
m.AbilBonusWoodCutting1_0=Blaetter-Sturm
|
||||
m.AbilBonusWoodCutting1_1=[[AQUA]]blaest Blaetter weg
|
||||
m.WoodCuttingDoubleDropChance=[[YELLOW]]Doppelte Drop Chance: [[GREEN]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[YELLOW]]Baumfaeller Dauer: [[GREEN]]{0}s
|
||||
m.SkillArchery=Bogenschiessen (Archery)
|
||||
m.XPGainArchery=[[YELLOW]]Monster/Spieler angreifen
|
||||
m.EffectsArchery1_0=[[YELLOW]]Entzuenden
|
||||
m.EffectsArchery1_1=[[AQUA]]25% Chance das Feind Feuer faengt
|
||||
m.EffectsArchery2_0=[[YELLOW]]Blenden (Spieler)
|
||||
m.EffectsArchery2_1=[[AQUA]]Disorientiert Feinde
|
||||
m.EffectsArchery3_0=[[YELLOW]]Schaden+
|
||||
m.EffectsArchery3_1=[[AQUA]]Modifiziert Schaden
|
||||
m.EffectsArchery4_0=[[YELLOW]]Pfeil Rueckgewinnung
|
||||
m.EffectsArchery4_1=[[AQUA]]Chance Pfeile von Leichen zurueckzugewinnen
|
||||
m.ArcheryDazeChance=[[YELLOW]]Chance zu blenden: [[GREEN]]{0}%
|
||||
m.ArcheryRetrieveChance=[[YELLOW]]Chance Pfeile zurueckzugewinnen: [[GREEN]]{0}%
|
||||
m.ArcheryIgnitionLength=[[YELLOW]]Dauer von Entzuenden: [[GREEN]]{0} Sekunden
|
||||
m.ArcheryDamagePlus=[[YELLOW]]Schaden+ (Rang{0}): [[GREEN]]Bonus {0} Schaden
|
||||
m.SkillAxes=Axt (Axes)
|
||||
m.XPGainAxes=[[YELLOW]]Monster/Spieler angreifen
|
||||
m.EffectsAxes1_0=[[YELLOW]]Schaedelspalter (Faehigkeit)
|
||||
m.EffectsAxes1_1=[[AQUA]]Verursacht Flaechenschaden
|
||||
m.EffectsAxes2_0=[[YELLOW]]Kritischer Schlag
|
||||
m.EffectsAxes2_1=[[AQUA]]doppelter Schaden
|
||||
m.EffectsAxes3_0=[[YELLOW]]Axtmeister (500 Skilllevel)
|
||||
m.EffectsAxes3_1=[[AQUA]]Modifiziert Schaden
|
||||
m.AbilLockAxes1=[[DARK_AQUA]]gesperrt bis 500+ Skilllevel(Axtmeister)
|
||||
m.AbilBonusAxes1_0=[[YELLOW]]Axtmeister
|
||||
m.AbilBonusAxes1_1=[[AQUA]]4 Bonus-Schaden
|
||||
m.AxesCritChance=[[YELLOW]]Chance fuer kritische Treffer: [[GREEN]]{0}%
|
||||
m.AxesSkullLength=[[YELLOW]]Schaedelspalter Dauer: [[GREEN]]{0}s
|
||||
m.SkillSwords=Schwert (Swords)
|
||||
m.XPGainSwords=[[YELLOW]]Monster/Spieler angreifen
|
||||
m.EffectsSwords1_0=[[YELLOW]]Konter
|
||||
m.EffectsSwords1_1=[[AQUA]]Reflektiert 50% des erhaltenen Schadens
|
||||
m.EffectsSwords2_0=[[YELLOW]]Saegezahn-Schlag (Faehigkeit)
|
||||
m.EffectsSwords2_1=[[AQUA]]25% Flaechenschaden, Blutung+ Flaecheneffekt
|
||||
m.EffectsSwords3_0=[[YELLOW]]Saegezahn-Schlag Blutung+
|
||||
m.EffectsSwords3_1=[[AQUA]]5 Tick Blutung
|
||||
m.EffectsSwords4_0=[[YELLOW]]parrieren
|
||||
m.EffectsSwords4_1=[[AQUA]]negiert Schaden
|
||||
m.EffectsSwords5_0=[[YELLOW]]Blutung
|
||||
m.EffectsSwords5_1=[[AQUA]]hinterlaesst Blutungs-DOT
|
||||
m.SwordsCounterAttChance=[[YELLOW]]Konter Chance: [[GREEN]]{0}%
|
||||
m.SwordsBleedLength=[[YELLOW]]Blutung Dauer: [[GREEN]]{0} ticks
|
||||
m.SwordsBleedChance=[[YELLOW]]Blutung Chance: [[GREEN]]{0} %
|
||||
m.SwordsParryChance=[[YELLOW]]Parieren Chance: [[GREEN]]{0} %
|
||||
m.SwordsSSLength=[[YELLOW]]Saegezahn-Schlag Dauer: [[GREEN]]{0}s
|
||||
m.SwordsTickNote=[[DARK_AQUA]]NOTIZ: [[AQUA]]1 Tick erfolgt aller 2 Sekunden
|
||||
m.SkillAcrobatics=Akrobatik (Acrobatics)
|
||||
m.XPGainAcrobatics=[[YELLOW]]Runterfallen
|
||||
m.EffectsAcrobatics1_0=[[YELLOW]]Rolle
|
||||
m.EffectsAcrobatics1_1=[[AQUA]]Reduziert oder negiert Schaden
|
||||
m.EffectsAcrobatics2_0=[[YELLOW]]elegante Rolle
|
||||
m.EffectsAcrobatics2_1=[[AQUA]]Doppelt so effektiv wie Rolle
|
||||
m.EffectsAcrobatics3_0=[[YELLOW]]Ausweichen
|
||||
m.EffectsAcrobatics3_1=[[AQUA]]halbiert Schaden
|
||||
m.AcrobaticsRollChance=[[YELLOW]]Rolle Chance: [[GREEN]]{0}%
|
||||
m.AcrobaticsGracefulRollChance=[[YELLOW]]Elegante Rolle Chance: [[GREEN]]{0}%
|
||||
m.AcrobaticsDodgeChance=[[YELLOW]]Ausweichen Chance: [[GREEN]]{0}%
|
||||
m.SkillMining=Bergbau (Mining)
|
||||
m.XPGainMining=[[YELLOW]]Abbauen von Stein und Erz
|
||||
m.EffectsMining1_0=[[YELLOW]]Super Brecher (Faehigkeit)
|
||||
m.EffectsMining1_1=[[AQUA]]Tempo+, dreifache Drop Chance
|
||||
m.EffectsMining2_0=[[YELLOW]]doppelte Drops
|
||||
m.EffectsMining2_1=[[AQUA]]doppelte Anzahl Items
|
||||
m.MiningDoubleDropChance=[[YELLOW]]doppelte Drops Chance: [[GREEN]]{0}%
|
||||
m.MiningSuperBreakerLength=[[YELLOW]]Super Brecher Dauer: [[GREEN]]{0}s
|
||||
m.SkillRepair=Reparieren (Repair)
|
||||
m.XPGainRepair=[[YELLOW]]Reparieren
|
||||
m.EffectsRepair1_0=[[YELLOW]]Reparieren
|
||||
m.EffectsRepair1_1=[[AQUA]]Reparieren von Eisenwerkzeugen und Ruestung
|
||||
m.EffectsRepair2_0=[[YELLOW]]Reparatur-Meister
|
||||
m.EffectsRepair2_1=[[AQUA]]Erhoeht Reparierwert
|
||||
m.EffectsRepair3_0=[[YELLOW]]Super Reparatur
|
||||
m.EffectsRepair3_1=[[AQUA]]Doppelte Effektivitaet
|
||||
m.EffectsRepair4_0=[[YELLOW]]Diamanten Reparatur ({0}+ SKILL)
|
||||
m.EffectsRepair4_1=[[AQUA]]Reparieren von Diamantwerkzeugen und Ruestung
|
||||
m.RepairRepairMastery=[[YELLOW]]Reparatur-Meister: [[GREEN]]{0}% [[AQUA]]Extra Haltbarkeit
|
||||
m.RepairSuperRepairChance=[[YELLOW]]Super Reparatur Chance: [[GREEN]]{0}%
|
||||
m.SkillUnarmed=Faustkampf (Unarmed)
|
||||
m.XPGainUnarmed=[[YELLOW]]Monster/Spieler angreifen
|
||||
m.EffectsUnarmed1_0=[[YELLOW]]Berserker (Faehigkeit)
|
||||
m.EffectsUnarmed1_1=[[AQUA]]+50% Schaden, bricht weiches Material (Bsp. Erde)
|
||||
m.EffectsUnarmed2_0=[[YELLOW]]Entwaffnen (Spieler)
|
||||
m.EffectsUnarmed2_1=[[AQUA]]Droppt Item welches Feind in Hand haelt
|
||||
m.EffectsUnarmed3_0=[[YELLOW]]Faustkampfmeister
|
||||
m.EffectsUnarmed3_1=[[AQUA]]grosse Schadenssteigerung
|
||||
m.EffectsUnarmed4_0=[[YELLOW]]Faustkampflehrling
|
||||
m.EffectsUnarmed4_1=[[AQUA]]Schadens-Bonus
|
||||
m.EffectsUnarmed5_0=[[YELLOW]]Pfeil ablenken
|
||||
m.EffectsUnarmed5_1=[[AQUA]]wehrt Pfeile ab
|
||||
m.AbilLockUnarmed1=[[DARK_AQUA]]gesperrt bis 250+ Skilllevel (Faustkampflehrling)
|
||||
m.AbilLockUnarmed2=[[DARK_AQUA]]gesperrt bis 500+ Skilllevel (Faustkampfmeister)
|
||||
m.AbilBonusUnarmed1_0=[[YELLOW]]Faustkampflehrling
|
||||
m.AbilBonusUnarmed1_1=[[AQUA]]+2 Schadens-Bonus
|
||||
m.AbilBonusUnarmed2_0=[[YELLOW]]Faustkampfmeister
|
||||
m.AbilBonusUnarmed2_1=[[AQUA]]+4 Schadens-Bonus
|
||||
m.UnarmedArrowDeflectChance=[[YELLOW]]Pfeil ablenken Chance: [[GREEN]]{0}%
|
||||
m.UnarmedDisarmChance=[[YELLOW]]Entwaffnen Chance: [[GREEN]]{0}%
|
||||
m.UnarmedBerserkLength=[[YELLOW]]Berserker Dauer: [[GREEN]]{0}s
|
||||
m.SkillHerbalism=Kraeutersammler (Herbalism)
|
||||
m.XPGainHerbalism=[[YELLOW]]Kraeuter/Pflanzen sammeln/ernten
|
||||
m.EffectsHerbalism1_0=[[YELLOW]]Gruene Welt (Faehigkeit)
|
||||
m.EffectsHerbalism1_1=[[AQUA]]Pflegt die Welt, dreifache Drops
|
||||
m.EffectsHerbalism2_0=[[YELLOW]]Gruener Daumen (Weizen)
|
||||
m.EffectsHerbalism2_1=[[AQUA]]automatisches neupflanzen nach ernten
|
||||
m.EffectsHerbalism3_0=[[YELLOW]]Gruener Daumen (Cobble)
|
||||
m.EffectsHerbalism3_1=[[AQUA]]verwandelt Cobblestone zu Mossy Cobblestone mithilfe von Samen
|
||||
m.EffectsHerbalism4_0=[[YELLOW]]Nahrung+
|
||||
m.EffectsHerbalism4_1=[[AQUA]]Modifiziert Heilung von Brot/Suppe
|
||||
m.EffectsHerbalism5_0=[[YELLOW]]Doppelte Drops (Alle Kraeuter)
|
||||
m.EffectsHerbalism5_1=[[AQUA]]doppelte Anzahl Items
|
||||
m.HerbalismGreenTerraLength=[[YELLOW]]Gruene Welt Dauer: [[GREEN]]{0}s
|
||||
m.HerbalismGreenThumbChance=[[YELLOW]]Gruener Daumen Chance: [[GREEN]]{0}%
|
||||
m.HerbalismGreenThumbStage=[[YELLOW]]Gruener Daumen Stufe: [[GREEN]] Getreide waechst auf Stufe {0}
|
||||
m.HerbalismDoubleDropChance=[[YELLOW]]Doppelte Drop Chance: [[GREEN]]{0}%
|
||||
m.HerbalismFoodPlus=[[YELLOW]]Nahrung+ (Rang{0}): [[GREEN]]Bonus-Heilung {0}
|
||||
m.SkillExcavation=Graben (Excavation)
|
||||
m.XPGainExcavation=[[YELLOW]]Graben und Finden von Schaetzen
|
||||
m.EffectsExcavation1_0=[[YELLOW]]Giga Bohrer (Faehigkeit)
|
||||
m.EffectsExcavation1_1=[[AQUA]]3x Drop Rate, 3x EXP, +Tempo
|
||||
m.EffectsExcavation2_0=[[YELLOW]]Schatzjaeger
|
||||
m.EffectsExcavation2_1=[[AQUA]]Faehigkeit nach Schaetzen zu graben
|
||||
m.ExcavationGreenTerraLength=[[YELLOW]]Giga Bohrer Dauer: [[GREEN]]{0}s
|
||||
mcBlockListener.PlacedAnvil=[[DARK_AQUA]]Du hast einen Ambos platziert, du kannst hier Werkzeuge und Ruestungen reparieren.
|
||||
mcEntityListener.WolfComesBack=[[DARK_AQUA]]Dein Wolf hastet zurueck zu dir...
|
||||
mcPlayerListener.AbilitiesOff=Faehigkeiten nutzen (rechtsklick) aus
|
||||
mcPlayerListener.AbilitiesOn=Faehigkeiten nutzen (rechtsklick) an
|
||||
mcPlayerListener.AbilitiesRefreshed=[[YELLOW]]**Faehigkeiten aufgefrischt\!**
|
||||
mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Akrobatik Skill [[DARK_AQUA]](Acrobatics):
|
||||
mcPlayerListener.ArcherySkill=[[YELLOW]]Bogenschiessen Skill [[DARK_AQUA]](Archery):
|
||||
mcPlayerListener.AxesSkill=[[YELLOW]]Axt Skill [[DARK_AQUA]](Axes):
|
||||
mcPlayerListener.ExcavationSkill=[[YELLOW]]Graben Skill [[DARK_AQUA]](Excavation):
|
||||
mcPlayerListener.GodModeDisabled=[[RED]]mcMMO Godmode deaktiviert
|
||||
mcPlayerListener.GodModeEnabled=[[RED]]mcMMO Godmode aktiviert
|
||||
mcPlayerListener.GreenThumb=[[YELLOW]]**GRUENER DAUMEN**
|
||||
mcPlayerListener.GreenThumbFail=[[DARK_RED]]**YELLOW THUMB FEHLGESCHLAGEN**
|
||||
mcPlayerListener.HerbalismSkill=[[YELLOW]]Kraeuterkunde Skill [[DARK_AQUA]](Herbalism):
|
||||
mcPlayerListener.MiningSkill=[[YELLOW]]Bergbau Skill [[DARK_AQUA]](Mining):
|
||||
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn ist freigegeben
|
||||
mcPlayerListener.MyspawnNotExist=[[RED]]Lege deinen myspawn erst mit einem Bett fest
|
||||
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn wurde an deine aktuelle Position gesetzt
|
||||
mcPlayerListener.MyspawnTimeNotice=Du musst {0}m {1}s warten um myspawn zu nutzen
|
||||
mcPlayerListener.NoPermission=unzureichende mcPermissions.
|
||||
mcPlayerListener.NoSkillNote=[[DARK_AQUA]]Skills ohne Zugriff sind ausgeblendet
|
||||
mcPlayerListener.NotInParty=[[RED]]Du bist in keiner Gruppe.
|
||||
mcPlayerListener.InviteSuccess=[[YELLOW]]Einladung erfolgreich versendet.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[YELLOW]]Du hast eine Gruppeneinladung für {0} von {1}
|
||||
mcPlayerListener.ReceivedInvite2=[[AQUA]]Schreibe[[YELLOW]]/{0}[[AQUA]] um die Einladung zu akzeptieren
|
||||
mcPlayerListener.InviteAccepted=[[YELLOW]]Einladung akzeptiert. du bist {0} beigetreten
|
||||
mcPlayerListener.NoInvites=[[RED]]Du hast derzeit keine Einladungen
|
||||
mcPlayerListener.YouAreInParty=[[YELLOW]]Du bist in Gruppe {0}
|
||||
mcPlayerListener.PartyMembers=[[YELLOW]]Gruppen Mitglieder
|
||||
mcPlayerListener.LeftParty=[[RED]]Du hast die Gruppe verlassen
|
||||
mcPlayerListener.JoinedParty=beigetrettene Gruppe: {0}
|
||||
mcPlayerListener.PartyChatOn=nur Gruppenchat [[RED]]an
|
||||
mcPlayerListener.PartyChatOff=nur Gruppenchat [[RED]]aus
|
||||
mcPlayerListener.AdminChatOn=nur Adminchat [[YELLOW]]an
|
||||
mcPlayerListener.AdminChatOff=nur Adminchat [[RED]]aus
|
||||
mcPlayerListener.MOTD=[[YELLOW]]Auf diesem Server laeuft mcMMO {0}. Hilfe: [[AQUA]]/{1}[[YELLOW]] [[DARK_GRAY]]<frei Uebersetzt von Jobsti>
|
||||
mcPlayerListener.WIKI=[[AQUA]]http://mcmmo.wikia.com[[YELLOW]] - mcMMO Wiki
|
||||
mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL:
|
||||
mcPlayerListener.PowerLevelLeaderboard=[[DARK_AQUA]]____ mcMMO[[YELLOW]] Power Level [[DARK_AQUA]]Rangliste ____
|
||||
mcPlayerListener.SkillLeaderboard=[[DARK_AQUA]]____ mcMMO [[YELLOW]]{0}[[DARK_AQUA]] Rangliste ____
|
||||
mcPlayerListener.RepairSkill=[[YELLOW]]Reparieren Skill [[DARK_AQUA]](Repair):
|
||||
mcPlayerListener.SwordsSkill=[[YELLOW]]Schwert Skill [[DARK_AQUA]](Swords):
|
||||
mcPlayerListener.TamingSkill=[[YELLOW]]Bestienkunde Skill [[DARK_AQUA]](Taming):
|
||||
mcPlayerListener.UnarmedSkill=[[YELLOW]]Faustkampf Skill [[DARK_AQUA]](Unarmed):
|
||||
mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Holzfaeller Skill [[DARK_AQUA]](Woodcutting):
|
||||
mcPlayerListener.YourStats=[[DARK_AQUA]]_______[[YELLOW]] Deine MMO Werte [[DARK_AQUA]]_______
|
||||
Party.InformedOnJoin={0} [[YELLOW]] ist deiner Gruppe beigetreten
|
||||
Party.InformedOnQuit={0} [[YELLOW]] hat deine Gruppe verlassen
|
||||
Skills.YourGreenTerra=[[AQUA]]Deine [[YELLOW]]Gruene Welt [[AQUA]]Faehigkeit ist bereit!
|
||||
Skills.YourTreeFeller=[[AQUA]]Deine [[YELLOW]]Baumfaeller [[AQUA]]Faehigkeit ist bereit!
|
||||
Skills.YourSuperBreaker=[[AQUA]]Deine [[YELLOW]]Super Brecher [[AQUA]]Faehigkeit ist bereit!
|
||||
Skills.YourSerratedStrikes=[[AQUA]]Deine [[YELLOW]]Saegezahn-Schlag [[AQUA]]Faehigkeit ist bereit!
|
||||
Skills.YourBerserk=[[AQUA]]Deine [[AQUA]]Berserker [[AQUA]]Faehigkeit ist bereit!
|
||||
Skills.YourSkullSplitter=[[AQUA]]Deine [[YELLOW]]Schaedelspalter[[AQUA]] Faehigkeit ist bereit!
|
||||
Skills.YourGigaDrillBreaker=[[AQUA]]Deine [[YELLOW]]Giga Bohrer[[AQUA]] Faehigkeit ist bereit!
|
||||
Skills.TooTired=[[AQUA]]Du bist zu muede um diese Faehigkeit erneut zu nutzen.
|
||||
Skills.ReadyHoe=[[AQUA]]**DU BEREITEST DEINE HARKE VOR**
|
||||
Skills.LowerHoe=[[DARK_AQUA]]**DU SENKST DEINE HARKE**
|
||||
Skills.ReadyAxe=[[AQUA]]**DU BEREITEST DEINE AXT VOR**
|
||||
Skills.LowerAxe=[[DARK_AQUA]]**DU SENKST DEINE AXT**
|
||||
Skills.ReadyFists=[[AQUA]]**DU BEREITEST DEINE FAEUSTE VOR**
|
||||
Skills.LowerFists=[[DARK_AQUA]]**DU SENKST DEINE FAUSTE**
|
||||
Skills.ReadyPickAxe=[[AQUA]]**DU BEREITEST DEINE SPITZHACKE VOR**
|
||||
Skills.LowerPickAxe=[[DARK_AQUA]]**DU SENKST DEINE SPITZHACKE**
|
||||
Skills.ReadyShovel=[[AQUA]]**DU BEREITEST DEINE SCHAUFEL VOR**
|
||||
Skills.LowerShovel=[[DARK_AQUA]]**DU SENKST DEINE SCHAUFEL**
|
||||
Skills.ReadySword=[[AQUA]]**DU ERHEBST DEIN SCHWERT**
|
||||
Skills.LowerSword=[[DARK_AQUA]]**DU SENKST DEIN SCHWERT**
|
||||
Skills.GreenTerraOn=[[AQUA]]**GRUENE WELT AKTIV**
|
||||
Skills.GreenTerraPlayer=[[AQUA]]{0}[[DARK_AQUA]] hat [[AQUA]]Green Terra[[DARK_AQUA]] benutzt!
|
||||
Skills.TreeFellerOn=[[YELLOW]]**BAUMFAELLER AKTIV**
|
||||
Skills.TreeFellerPlayer=[[AQUA]]{0}[[DARK_AQUA]] hat [[AQUA]]Baumfaeller[[DARK_AQUA]] benutzt!
|
||||
Skills.SuperBreakerOn=[[YELLOW]]**SUPER BRECHER AKTIV**
|
||||
Skills.SuperBreakerPlayer=[[AQUA]]{0}[[DARK_AQUA]] hat [[AQUA]]Super Brecher[[DARK_AQUA]] benutzt!
|
||||
Skills.SerratedStrikesOn=[[YELLOW]]**SAEGEZAHN-SCHLAG AKTIV**
|
||||
Skills.SerratedStrikesPlayer=[[AQUA]]{0}[[DARK_AQUA]] hat [[AQUA]]Saegezahn-Schlag[[DARK_AQUA]] benutzt!
|
||||
Skills.SkullSplitterOn=[[YELLOW]]**SCHAEDELSPALTER AKTIV**
|
||||
Skills.SkullSplitterPlayer=[[AQUA]]{0}[[DARK_AQUA]] hat [[AQUA]]Schaedelspalter[[DARK_AQUA]] benutzt!
|
||||
Skills.GigaDrillBreakerOn=[[YELLOW]]**GIGA BOHRER AKTIV**
|
||||
Skills.GigaDrillBreakerPlayer=[[AQUA]]{0}[[DARK_AQUA]] hat [[AQUA]]GigaBohrer[[DARK_AQUA]] benutzt!
|
||||
Skills.GreenTerraOff=[[DARK_AQUA]]**Gruene Welt ausgelaufen**
|
||||
Skills.TreeFellerOff=[[DARK_AQUA]]**Baumfaeller ausgelaufen**
|
||||
Skills.SuperBreakerOff=[[DARK_AQUA]]**Super Brecher ausgelaufen**
|
||||
Skills.SerratedStrikesOff=[[DARK_AQUA]]**Saegezahn-Schlag ausgelaufen**
|
||||
Skills.BerserkOff=[[DARK_AQUA]]**Berserker ausgelaufen**
|
||||
Skills.BerserkOn=[[AQUA]]**BERSERKER AKTIV**
|
||||
Skills.BerserkPlayer=[[AQUA]]{0}[[DARK_AQUA]] hat [[AQUA]]Berserker [[DARK_AQUA]] benutzt
|
||||
Skills.SkullSplitterOff=[[DARK_AQUA]]**Schaedelspalter ausgelaufen**
|
||||
Skills.GigaDrillBreakerOff=[[DARK_AQUA]]**Giga Bohrer ausgelaufen**
|
||||
Skills.TamingUp=[[AQUA]]Bestienkunde um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.AcrobaticsUp=[[AQUA]]Akrobatik um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.ArcheryUp=[[AQUA]]Bogenschiessen um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.SwordsUp=[[AQUA]]Schwert um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.AxesUp=[[AQUA]]Axt um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.UnarmedUp=[[AQUA]]Faustkampf um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.HerbalismUp=[[AQUA]]Krauterkunde um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.MiningUp=[[AQUA]]Bergbau um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.WoodcuttingUp=[[AQUA]]Holzfaeller um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.RepairUp=[[AQUA]]Reparieren um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.ExcavationUp=[[AQUA]]Graben um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.FeltEasy=[[AQUA]]Das fuehlt sich einfach an.
|
||||
Skills.StackedItems=[[DARK_RED]]Du kannst keine gestapelten Items reparieren
|
||||
Skills.NeedMore=[[DARK_AQUA]]Hierfuer brauchst du mehr [[YELLOW]]
|
||||
Skills.AdeptDiamond=[[DARK_RED]]Du bist nicht talentiert genug um Diamantwerkzeuge zu reparieren
|
||||
Skills.FullDurability=[[AQUA]]Dieses Item hat volle Haltbarkeit
|
||||
Skills.Disarmed=[[DARK_RED]]Du wurdest entwaffnet!
|
||||
mcPlayerListener.SorcerySkill=Zauberkunst Skill (Sorcery):
|
||||
m.SkillSorcery=Zauberkunst (Sorcery)
|
||||
Sorcery.HasCast=[[YELLOW]]**ZAUBERN**[[YELLOW]]
|
||||
Sorcery.Current_Mana=[[DARK_AQUA]]MP
|
||||
Sorcery.SpellSelected=[[YELLOW]]-=([[YELLOW]]{0}[[YELLOW]])=- [[RED]]([[AQUA]]{1}[[RED]])
|
||||
Sorcery.Cost=[[RED]][COST] {0} MP
|
||||
Sorcery.OOM=[[DARK_AQUA]][[[YELLOW]]{2}[[DARK_AQUA]]][[DARK_AQUA]] Kein Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[AQUA]]{1}[[YELLOW]])
|
||||
Sorcery.Water.Thunder=GEWITTER
|
||||
Sorcery.Curative.Self=HEILEN (SELBST)
|
||||
Sorcery.Curative.Other=HEILEN (ANDERE)
|
||||
m.LVL=[[AQUA]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]] ([[AQUA]]{1}[[YELLOW]]/[[AQUA]]{2}[[YELLOW]])
|
||||
Combat.BeastLore=[[YELLOW]]**BESTIENKUNDE**
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Besitzer ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Gesundheit ([[YELLOW]]{0}[[DARK_AQUA]]/20)
|
||||
Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Gesundheit ([[YELLOW]]{0}[[DARK_AQUA]]/8)
|
||||
mcMMO.Description=[[DARK_AQUA]]Q: Was ist mcMMO? [[GRAY]]mcMMO is ein Open Source [[GOLD]]RPG Plugin[[GRAY]] fuer,[[GRAY]]Bukkit von [[RED]]nossr50 [[GRAY]]welches Minecraft viele Skills hinzufuegt.,[[GRAY]]Man kann auf vielen Wegen Erfahrung sammeln.,[[GRAY]]Um mehr ueber einen Skill zu erfahren gebe [[GREEN]]/SKILLNAME[[GRAY]] ein.,[[DARK_AQUA]]Q: Was macht es genau? [[GRAY]]Beispiel: Mit [[DARK_AQUA]]Mining[[GRAY]] bekommst du passive,[[GRAY]]Fertigkeiten wie [[RED]]Doppelte Drops[[GRAY]] oder Aktive wie den,[[RED]]Super-Brecher[[GRAY]] welcher dir per Rechtsklick aktiviert erlaubt,[[GRAY]]fuer einige Zeit (basierend auf deinem Lvl) schneller zu Minen[[GRAY]],[[BLUE]]Mining [[GRAY]]zu leveln ist so einfach wie seltene Materialien zu,[[GRAY]]bekommen! [[DARK_AQUA]]Q: Was heisst das? [[GRAY]]Alle Skills von [[GOLD]]mcMMO[[GRAY]] fuegen,[[GRAY]]coole neue Sachen hinzu! [[GRAY]]Du kannst [[GREEN]]/{0}[[GRAY]] eingeben [[GRAY]]um dir die,[[GRAY]]Commands anzeigen zu lassen. [[GRAY]]Das Ziel,[[GRAY]]von [[GOLD]]mcMMO[[GRAY]] ist es dir ein hochwertiges [[GOLD]]RPG-System[[GRAY]] zu bieten.,[[DARK_AQUA]]Q: Wo kann ich neue Ideen vorschlagen?,[[GRAY]]Im mcMMO Thema auf [[AQUA]]dev.bukkit.org[[GRAY]],[[DARK_AQUA]]Q: Wie mache ich dies und das?,[[RED]]Bitte [[GRAY]]schau in das mcMMO WIKI! [[AQUA]]mcmmo.wikia.com,[[DARK_GRAY]]Uebersetzung: Jobsti
|
||||
Party.IsLocked=[[RED]]Gruppe ist gesperrt.
|
||||
Party.Locked=[[RED]]Gruppe ist gesperrt, nur der Besitzer kann neue User einladen.
|
||||
Party.IsntLocked=[[AQUA]]Gruppe ist nicht gesperrt
|
||||
Party.Unlocked=[[AQUA]]Gruppe entsperrt
|
||||
Party.Help1=[[RED]]Richtige Verwendung ist [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] oder [[WHITE]]'q' [[YELLOW]]zum Verlassen
|
||||
Party.Help2=[[RED]]Um in pwd-geschuetzte Gruppe einzusteigen nutze [[YELLOW]]/{0} [[WHITE]]<name> <password>
|
||||
Party.Help3=[[RED]]Befrage /{0} ? fuer weitere Infos
|
||||
Party.Help4=[[RED]]Benutze [[YELLOW]]/{0} [[WHITE]]<name> [[YELLOW]]um einer Gruppe beizutreten, oder [[WHITE]]'q' [[YELLOW]]zum Verlassen
|
||||
Party.Help5=[[RED]]Zum Gruppe sperren, nutze [[YELLOW]]/{0} [[WHITE]]lock
|
||||
Party.Help6=[[RED]]Zum Gruppe entsperren, nutze [[YELLOW]]/{0} [[WHITE]]unlock
|
||||
Party.Help7=[[RED]]Um Gruppe per Passwort zu sperren, nutze [[YELLOW]]/{0} [[WHITE]]password <password>
|
||||
Party.Help8=[[RED]]Um Spieler aus der Gruppe zu kicken, benutze [[YELLOW]]/{0} [[WHITE]]kick <player>
|
||||
Party.Help9=[[RED]]Um den Besitz deiner Gruppe abzugeben, nutze [[YELLOW]]/{0} [[WHITE]]owner <player>
|
||||
Party.NotOwner=[[DARK_RED]]Du bist nicht der Gruppenbesitzer
|
||||
Party.InvalidName=[[DARK_RED]]Dies ist kein gueltiger Gruppenname
|
||||
Party.PasswordSet=[[GREEN]]Gruppenpasswort zu {0} gesetzt
|
||||
Party.CouldNotKick=[[DARK_RED]]Spieler {0} kann nicht gekickt werden
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} ist nicht in deiner Gruppe
|
||||
Party.CouldNotSetOwner=[[DARK_RED]]Besitzer kann nicht zu {0} gewechselt werden
|
||||
Party.NewOwner={0} ist der neue Gruppenbesitzer.
|
||||
Party.PasswordWrong=[[DARK_RED]]Falsches Gruppen-Passwort.
|
||||
Party.NowOwner=[[RED]]Du bist nicht der Gruppenbesitzer.
|
||||
Party.NowNotOwner=[[RED]]Du bist nicht laenger der Gruppenbesitzer.
|
||||
Party.RequiresPass=[[RED]]Diese Gruppe benoetigt ein Passwort. Nutze [[YELLOW]]/{0}[[WHITE]] <party> <password>[[RED]] zum Beitreten.
|
||||
Party.PtpDelay=[[RED]]Du kannst dies nicht so schnell wieder benutzen [[WHITE]]([[YELLOW]]{0}s[[WHITE]])
|
||||
Commands.xprate.proper=[[DARK_AQUA]]Richtige Eingabe lautet /{0} [integer] [true:false]
|
||||
Commands.xprate.proper2=[[DARK_AQUA]]Du kanst ebenfalls /{0} reset eingeben, um alles zurueck auf normal zu setzen.
|
||||
Commands.xprate.proper3=[[RED]]Gebe true oder false als zweiten Wert ein
|
||||
Commands.xprate.over=[[RED]]Der mcMMO XP Rate Event ist vorbei!!
|
||||
Commands.xprate.started=[[YELLOW]]Der mcMMO XP EVENT HAT BEGONNEN!
|
||||
Commands.xprate.started2=[[YELLOW]]Die mcMMO XP RATE betraegt nun {0}x!!
|
||||
Commands.xplock.locked=[[YELLOW]]Deine XP BAR ist nun auf {0} gesperrt!
|
||||
Commands.xplock.unlocked=[[YELLOW]]Deine XP BAR ist nun wieder [[GREEN]]FREIGEGEBEN[[YELLOW]]!
|
||||
Commands.xplock.invalid=[[RED]]Dies ist kein gueltiger Skillname! Versuche /xplock mining
|
||||
m.SkillAlchemy=Alchemie(Alchemy)
|
||||
m.SkillEnchanting=Verzaubern (Enchanting)
|
||||
m.SkillFishing=Angeln (Fishing)
|
||||
mcPlayerListener.AlchemySkill=[[AQUA]]Alchemie Skill [[DARK_AQUA]](Alchemy):
|
||||
mcPlayerListener.EnchantingSkill=[[AQUA]]Verzauberungs Skill [[DARK_AQUA]](Enchanting):
|
||||
mcPlayerListener.FishingSkill=[[YELLOW]]Angeln Skill [[DARK_AQUA]](Fishing):
|
||||
Skills.AlchemyUp=[[AQUA]]Alchemie um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.EnchantingUp=[[AQUA]]Verzaubern um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Skills.FishingUp=[[AQUA]]Angeln um [[YELLOW]]{0} erhoeht. Gesamt [[YELLOW]]({1})
|
||||
Repair.LostEnchants=[[YELLOW]]Du hast nicht genug Skill, Verzauberung verloren.
|
||||
Repair.ArcanePerfect=[[YELLOW]]Du hast die Arkanen Zauber in diesem Gegenstand erhalten.
|
||||
Repair.Downgraded=[[YELLOW]]Die Arkanen Zauber in diesem Gegenstand wurden verringert.
|
||||
Repair.ArcaneFailed=[[RED]]Alle Arkanen Zauber wurden von diesem Gegenstand entfernt.
|
||||
m.EffectsRepair5_0=[[YELLOW]]Arkanes Schmieden
|
||||
m.EffectsRepair5_1=[[AQUA]]Verzauberte Gegenstaende reparieren
|
||||
m.ArcaneForgingRank=[[YELLOW]]Arkanes Schmieden: [[GREEN]]Rang {0}/4
|
||||
m.ArcaneEnchantKeepChance=[[AQUA]]AS Erfolgs-Chance: [[GREEN]]{0}%
|
||||
m.ArcaneEnchantDowngradeChance=[[AQUA]]AS Downgrade-Chance: [[GREEN]]{0}%
|
||||
m.ArcaneForgingMilestones=[[YELLOW]][TIP]Arkanes Schmieden: [[AQUA]]Rang 1 = 100+, Rang 2 = 250+,
|
||||
m.ArcaneForgingMilestones2=[[AQUA]] Rang 3 = 500+, Rang 4 = 750+
|
||||
Fishing.MagicFound=[[AQUA]]Du hast etwas magisches gefunden...
|
||||
Fishing.ItemFound=[[AQUA]]Du hast einen Schatz gefunden!
|
||||
m.SkillFishing=Angeln (Fishing)
|
||||
m.XPGainFishing=[[YELLOW]]Angeln
|
||||
m.EffectsFishing1_0=[[YELLOW]]Schatz-Jaeger (passiv)
|
||||
m.EffectsFishing1_1=[[AQUA]]Verschiedene Gegenstaende Angeln
|
||||
m.EffectsFishing2_0=[[YELLOW]]Zauber-Jaeger
|
||||
m.EffectsFishing2_1=[[AQUA]]Verzauberte gegenstaende Angeln
|
||||
m.EffectsFishing3_0=[[YELLOW]]Reissen
|
||||
m.EffectsFishing3_1=[[AQUA]]Reisse Items aus Mobs (per Angel)
|
||||
m.FishingRank=[[YELLOW]]Zauber-Jaeger Rang: [[GREEN]]{0}/5
|
||||
m.FishingMagicInfo=[[YELLOW]]Schatz-Jaeger: [[GREEN]] *Verbesert sich mit Schatz-Jaeger*
|
||||
m.ShakeInfo=[[YELLOW]]Reissen: [[AQUA]]Reisse Items aus Mobs und verstuemmelt sie dabei ;_;
|
||||
m.AbilLockFishing1=[[DARK_AQUA]]Gesperrt bis Skilllevel 150+ (Reissen)
|
||||
m.TamingSummon=[[YELLOW]]Beschwoerung abgeschlossen
|
||||
m.TamingSummonFailed=[[YELLOW]]Du hast zu viele Woelfe um dich um weitere zu beschwoeren.
|
||||
m.EffectsTaming7_0=[[YELLOW]]Ruf der Wildniss
|
||||
m.EffectsTaming7_1=[[AQUA]]Beschwoere einen Wolf auf deine Seite
|
||||
m.EffectsTaming7_2=[[YELLOW]]Info: [[AQUA]]Ducken und Rechtsklick mit {0} Knochen in der Hand
|
390
src/main/java/com/gmail/nossr50/locale/locale_en_us.properties
Normal file
390
src/main/java/com/gmail/nossr50/locale/locale_en_us.properties
Normal file
@ -0,0 +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
|
||||
m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand
|
390
src/main/java/com/gmail/nossr50/locale/locale_es_es.properties
Normal file
390
src/main/java/com/gmail/nossr50/locale/locale_es_es.properties
Normal file
@ -0,0 +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<64>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<64>o, Resistencia al fuego
|
||||
m.EffectsTaming6_0=A prueba de golpes
|
||||
m.EffectsTaming6_1=Reduccion del da<64>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<EFBFBD>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<64>o normal
|
||||
m.AbilBonusTaming4_0=Garras afiladas
|
||||
m.AbilBonusTaming4_1=+2 de Da<44>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<44>o
|
||||
m.EffectsArchery3_1=Modifica el da<64>o
|
||||
m.EffectsArchery4_0=Recuperaci<EFBFBD>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<44>o (Rank{0}): [[YELLOW]] {0} de bonus de da<64>o
|
||||
m.SkillAxes=HACHAS
|
||||
m.XPGainAxes=Ataque a monstruos
|
||||
m.EffectsAxes1_0=Cortador de cabecas (HABILIDAD)
|
||||
m.EffectsAxes1_1=Causa da<64>os en arena
|
||||
m.EffectsAxes2_0=Golpes criticos
|
||||
m.EffectsAxes2_1=Doble de da<64>o
|
||||
m.EffectsAxes3_0=Maestria de hacha
|
||||
m.EffectsAxes3_1=Modifica el da<64>o
|
||||
m.AbilLockAxes1=BLOQUEADO HASTA TENER HABILIDAD +500 (MAESTRIA DE HACHA)
|
||||
m.AbilBonusAxes1_0=Maestria de hacha
|
||||
m.AbilBonusAxes1_1=4 de da<64>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<64>o obtenido
|
||||
m.EffectsSwords2_0=Golpes dentados (HABILIDAD)
|
||||
m.EffectsSwords2_1=25% de da<64>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<64>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<64>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<64>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<64>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<64>os
|
||||
m.EffectsUnarmed4_0=Aprendiz desarmado
|
||||
m.EffectsUnarmed4_1=Mejora de da<64>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<64>o
|
||||
m.AbilBonusUnarmed2_0=Maestro desarmado
|
||||
m.AbilBonusUnarmed2_1=Mejora de +4 de da<64>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<50>OS ESTAN LISTOS PARA USAR ENLOQUECER**
|
||||
Skills.LowerFists=[[GRAY]]**TUS PU<50>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<75>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<73>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<73>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<73>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
|
369
src/main/java/com/gmail/nossr50/locale/locale_fi.properties
Normal file
369
src/main/java/com/gmail/nossr50/locale/locale_fi.properties
Normal file
@ -0,0 +1,369 @@
|
||||
Combat.WolfExamine=[[GREEN]]**Tutkit sutta k<>ytt<74>m<EFBFBD>ll<6C> Pedon Tarinaa**
|
||||
Combat.WolfShowMaster=[[DARK_GREEN]]Pedon is<69>nt<6E> : {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<72>tty
|
||||
Combat.WolfNoMaster=[[GRAY]]T<>ll<6C> pedolla ei ole is<69>nt<6E><74>...
|
||||
Combat.WolfHealth=[[GREEN]]T<>m<EFBFBD>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<54> EP<45>ONNISTUI\!**
|
||||
Item.ChimaeraWingPass=**KHIMAIRAN SIIPI**
|
||||
Item.InjuredWait=Sinua on haavoitettu <20>skett<74>in joten joudut odottaa t<>m<EFBFBD>n k<>ytt<74><74>. [[YELLOW]]({0}s)
|
||||
Item.NeedFeathers=[[GRAY]]Tarvitset lis<69><73> sulkia..
|
||||
m.mccPartyCommands=[[GREEN]]--RYHM<48>KOMENNOT--
|
||||
m.mccParty=[party name] [[RED]]- Luo/liity nimettyyn ryhm<68><6D>n
|
||||
m.mccPartyQ=[[RED]]- L<>hde ryhm<68>st<73>
|
||||
m.mccPartyToggle=[[RED]] - Laita ryhm<68>juttelu p<><70>lle/pois
|
||||
m.mccPartyInvite=[player name] [[RED]]- L<>het<65> ryhm<68>kutsu
|
||||
m.mccPartyAccept=[[RED]]- Hyv<79>ksy ryhm<68>kutsu
|
||||
m.mccPartyTeleport=[party member name] [[RED]]- Siirry ryhm<68>n j<>senen luo
|
||||
m.mccOtherCommands=[[GREEN]]--MUUT KOMENNOT--
|
||||
m.mccStats=- N<>yt<79> mcMMO tilastosi
|
||||
m.mccLeaderboards=- Tulostaulukko
|
||||
m.mccMySpawn=- Siirt<72><74> sinut myspawniin
|
||||
m.mccClearMySpawn=- Tyhj<68><6A> myspawnisi
|
||||
m.mccToggleAbility=- Laita taitojen aktivointi oikealla n<>pp<70>imell<6C> p<><70>lle/pois
|
||||
m.mccAdminToggle=- Laita admin juttelu p<><70>lle/pois
|
||||
m.mccWhois=[playername] [[RED]]- N<>yt<79> yksityiskohtaiset tiedot pelaajasta
|
||||
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Muokkaa kohdetta
|
||||
m.mccMcGod=- "God Mode"
|
||||
m.mccSkillInfo=[skillname] [[RED]]- N<>yt<79> ykistyiskohtaiset tiedot taidosta
|
||||
m.mccModDescription=[[RED]]- Lue lyhyt kuvaus modista
|
||||
m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
m.XPGain=[[DARK_GRAY]]KOKEMUSPISTEIDEN M<><4D>R<EFBFBD>: [[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<EFBFBD>MINEN
|
||||
m.XPGainTaming=Susien satuttaminen
|
||||
m.EffectsTaming1_0=Pedon Tarina
|
||||
m.EffectsTaming1_1=Luulla ly<6C>minen tutkii susia
|
||||
m.EffectsTaming2_0=Pisto
|
||||
m.EffectsTaming2_1=Kriittinen Isku joka lis<69><73> Verenvuodon
|
||||
m.EffectsTaming3_0=Teroitetut Kynnet
|
||||
m.EffectsTaming3_1=Tuhoamis Bonus
|
||||
m.EffectsTaming4_0=Ymp<EFBFBD>rist<EFBFBD>tietoinen
|
||||
m.EffectsTaming4_1=Kaktus/Laavapelko, immuuni Putousvahingolle
|
||||
m.EffectsTaming5_0=Paksu Turkki
|
||||
m.EffectsTaming5_1=Vahingon v<>hennys, Tulenkest<73>v<EFBFBD>
|
||||
m.EffectsTaming6_0=R<EFBFBD>j<EFBFBD>hdyskest<EFBFBD>v<EFBFBD>
|
||||
m.EffectsTaming6_1=R<EFBFBD>j<EFBFBD>hdysvahingon v<>hennys
|
||||
m.AbilLockTaming1=LUKITTU KUNNES 100+ TAITO (YMP<4D>RIST<53>TIETOINEN)
|
||||
m.AbilLockTaming2=LUKITTU KUNNES 250+ TAITO (PAKSU TURKKI)
|
||||
m.AbilLockTaming3=LUKITTU KUNNES 500+ TAITO (R<>J<EFBFBD>HDYSKEST<53>V<EFBFBD>)
|
||||
m.AbilLockTaming4=LUKITTU KUNNES 750+ TAITO (TEROITETUT KYNNET)
|
||||
m.AbilBonusTaming1_0=Ymp<EFBFBD>rist<EFBFBD>tietoinen
|
||||
m.AbilBonusTaming1_1=Sudet karttavat vaaraa
|
||||
m.AbilBonusTaming2_0=Paksu Turkki
|
||||
m.AbilBonusTaming2_1=Puolitettu vahinko, Tulenkest<73>v<EFBFBD>
|
||||
m.AbilBonusTaming3_0=R<EFBFBD>j<EFBFBD>hdyskest<EFBFBD>v<EFBFBD>
|
||||
m.AbilBonusTaming3_1=R<EFBFBD>j<EFBFBD>hteet vahingoittavat 1/6 v<>hemm<6D>n
|
||||
m.AbilBonusTaming4_0=Teroitetut Kynnet
|
||||
m.AbilBonusTaming4_1=+2 Vahinko
|
||||
m.TamingGoreChance=[[RED]]Piston todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.SkillWoodCutting=PUUN KAATO
|
||||
m.XPGainWoodCutting=Puiden pilkkominen
|
||||
m.EffectsWoodCutting1_0=Puunkaataja (TAITO)
|
||||
m.EffectsWoodCutting1_1=R<EFBFBD>j<EFBFBD>yt<EFBFBD> puita
|
||||
m.EffectsWoodCutting2_0=Lehdenpuhallin
|
||||
m.EffectsWoodCutting2_1=Puhalla lehti<74> 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<74> pois
|
||||
m.WoodCuttingDoubleDropChance=[[RED]]Tuplasaaliin todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[RED]]Puunkaatajan kesto: [[YELLOW]]{0}s
|
||||
m.SkillArchery=JOUSIAMMUNTA
|
||||
m.XPGainArchery=Hy<EFBFBD>kk<EFBFBD><EFBFBD>m<EFBFBD>ll<EFBFBD> hirvi<76>iden kimppuun
|
||||
m.EffectsArchery1_0=Sytytys
|
||||
m.EffectsArchery1_1=25% Todenn<6E>k<EFBFBD>isyys ett<74> vihollinen syttyy tuleen
|
||||
m.EffectsArchery2_0=P<EFBFBD>kerrys (Pelaajat)
|
||||
m.EffectsArchery2_1=Saa viholliset pois tolaltaan
|
||||
m.EffectsArchery3_0=Vahinko+
|
||||
m.EffectsArchery3_1=Muokkaa vahinkoa
|
||||
m.EffectsArchery4_0=Nuolenker<EFBFBD>ys
|
||||
m.EffectsArchery4_1=Todenn<EFBFBD>k<EFBFBD>isyys ker<65>t<EFBFBD> nuolia raadoista
|
||||
m.ArcheryDazeChance=[[RED]]Todenn<6E>k<EFBFBD>isyys P<>kerrytt<74><74>: [[YELLOW]]{0}%
|
||||
m.ArcheryRetrieveChance=[[RED]]Todenn<6E>k<EFBFBD>isyys ker<65>t<EFBFBD> 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<EFBFBD>kk<EFBFBD><EFBFBD>m<EFBFBD>ll<EFBFBD> hirvi<76>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<6E>k<EFBFBD>isyys iske<6B> kriittisesti: [[YELLOW]]{0}%
|
||||
m.AxesSkullLength=[[RED]]Kallonhalkojan kesto: [[YELLOW]]{0}s
|
||||
m.SkillSwords=MIEKAT
|
||||
m.XPGainSwords=Hy<EFBFBD>kk<EFBFBD><EFBFBD>m<EFBFBD>ll<EFBFBD> hirvi<76>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<EFBFBD><EFBFBD> saadun vahingon
|
||||
m.EffectsSwords5_0=Verenvuoto
|
||||
m.EffectsSwords5_1=Lis<EFBFBD><EFBFBD> Verenvuoto
|
||||
m.SwordsCounterAttChance=[[RED]]Vastaiskun todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.SwordsBleedLength=[[RED]]Verenvuodon kesto: [[YELLOW]]{0} vuotoa
|
||||
m.SwordsBleedChance=[[RED]]Verenvuodon todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0} %
|
||||
m.SwordsParryChance=[[RED]]Torjumisen todenn<6E>k<EFBFBD>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<EFBFBD>hent<EFBFBD><EFBFBD> tai est<73><74> vahinkoa
|
||||
m.EffectsAcrobatics2_0=Sulava Kieriminen
|
||||
m.EffectsAcrobatics2_1=Tuplasti tehokkaampi kuin Kieriminen
|
||||
m.EffectsAcrobatics3_0=V<EFBFBD>ist<EFBFBD>
|
||||
m.EffectsAcrobatics3_1=V<EFBFBD>hent<EFBFBD><EFBFBD> vahingon m<><6D>r<EFBFBD>n puoleen
|
||||
m.AcrobaticsRollChance=[[RED]]Kierimisen todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.AcrobaticsGracefulRollChance=[[RED]]Sulavan Kierimisen todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.AcrobaticsDodgeChance=[[RED]]V<>ist<73>n todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.SkillMining=LOUHINTA
|
||||
m.XPGainMining=Louhimalla kive<76> ja malmia
|
||||
m.EffectsMining1_0=Supermurskain (TAITO)
|
||||
m.EffectsMining1_1=Nopeus+, Triplaa saaliin tippumistodenn<6E>k<EFBFBD>isyys
|
||||
m.EffectsMining2_0=Tuplasaalis
|
||||
m.EffectsMining2_1=Tuplaa normaali saaliin m<><6D>r<EFBFBD>
|
||||
m.MiningDoubleDropChance=[[RED]]Tuplasaaliin todenn<6E>k<EFBFBD>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<74>kaluja ja haarniskoja
|
||||
m.EffectsRepair2_0=Korjausten Herra
|
||||
m.EffectsRepair2_1=Lis<EFBFBD>tty korjausten m<><6D>r<EFBFBD>
|
||||
m.EffectsRepair3_0=Superkorjaus
|
||||
m.EffectsRepair3_1=Tuplatehokkuus
|
||||
m.EffectsRepair4_0=Timanttikorjaus ({0}+ TAITO)
|
||||
m.EffectsRepair4_1=Korjaa timanttity<74>kaluja ja haarniskoja
|
||||
m.RepairRepairMastery=[[RED]]Korjausten Herra: [[YELLOW]]Extra {0}% kest<73>vyytt<74> palautettu
|
||||
m.RepairSuperRepairChance=[[RED]]Superkorjauksen todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.SkillUnarmed=ASEISTAMATON
|
||||
m.XPGainUnarmed=Hy<EFBFBD>kk<EFBFBD><EFBFBD>m<EFBFBD>ll<EFBFBD> hirvi<76>iden kimppuun
|
||||
m.EffectsUnarmed1_0=Raivop<EFBFBD><EFBFBD> (TAITO)
|
||||
m.EffectsUnarmed1_1=+50% vahinko, rikkoo heikkoja materiaaleja
|
||||
m.EffectsUnarmed2_0=Aseista riisuminen (Pelaajat)
|
||||
m.EffectsUnarmed2_1=Pudottaa vihollisen esineen k<>dest<73>
|
||||
m.EffectsUnarmed3_0=Aseistamattomuuden Herra
|
||||
m.EffectsUnarmed3_1=Suuri vahingonlis<69>ys
|
||||
m.EffectsUnarmed4_0=Aseistamattomuuden Aloittelija
|
||||
m.EffectsUnarmed4_1=Vahingonlis<EFBFBD>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<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.UnarmedDisarmChance=[[RED]]Aseista riisumisen todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.UnarmedBerserkLength=[[RED]]Raivop<6F><70>n kesto: [[YELLOW]]{0}s
|
||||
m.SkillHerbalism=YRTTIHOITO
|
||||
m.XPGainHerbalism=Ker<EFBFBD><EFBFBD>m<EFBFBD>ll<EFBFBD> yrttej<65>
|
||||
m.EffectsHerbalism1_0=Vihermaa (TAITO)
|
||||
m.EffectsHerbalism1_1=Levit<EFBFBD> vihreytt<74>, 3x saalis
|
||||
m.EffectsHerbalism2_0=Viherpeukalo (Vehn<68>)
|
||||
m.EffectsHerbalism2_1=Istuttaa vehn<68><6E> automaattisesti kun ker<65><72>t vehn<68><6E>
|
||||
m.EffectsHerbalism3_0=Viherpeukalo (Mukulakivi)
|
||||
m.EffectsHerbalism3_1=Mukulakivi -> Sammaleinen mukulakivi ja siemeni<6E>
|
||||
m.EffectsHerbalism4_0=Ruoka+
|
||||
m.EffectsHerbalism4_1=Muokkaa terveytt<74> jota saat leiv<69>st<73>/muhennoksesta
|
||||
m.EffectsHerbalism5_0=Tuplasaalis (Kaikki yrtit)
|
||||
m.EffectsHerbalism5_1=Tuplaa normaali saaliin m<><6D>r<EFBFBD>
|
||||
m.HerbalismGreenTerraLength=[[RED]]Vihermaan kesto: [[YELLOW]]{0}s
|
||||
m.HerbalismGreenThumbChance=[[RED]]Viherpeukalon todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.HerbalismGreenThumbStage=[[RED]]Viherpeukalon vaihe: [[YELLOW]] Vehn<68> kasvaa {0}:ssa vaiheessa
|
||||
m.HerbalismDoubleDropChance=[[RED]]Tuplasaaliin todenn<6E>k<EFBFBD>isyys: [[YELLOW]]{0}%
|
||||
m.HerbalismFoodPlus=[[RED]]Ruoka+ (Rank{0}): [[YELLOW]]Bonus {0} terveyden m<><6D>r<EFBFBD>
|
||||
m.SkillExcavation=KAIVANTO
|
||||
m.XPGainExcavation=Kaivamalla ja l<>yt<79>m<EFBFBD>ll<6C> aarteita
|
||||
m.EffectsExcavation1_0=Giga Drill Breaker (TAITO)
|
||||
m.EffectsExcavation1_1=3x saaliin m<><6D>r<EFBFBD>, 3x kokemuspisteiden m<><6D>r<EFBFBD>, +Nopeus
|
||||
m.EffectsExcavation2_0=Aarteenmets<EFBFBD>st<EFBFBD>j<EFBFBD>
|
||||
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<6C> voit korjata ty<74>kaluja ja haarniskoja.
|
||||
mcEntityListener.WolfComesBack=[[DARK_GRAY]]Sutesi kipitt<74><74> takaisin luoksesi...
|
||||
mcPlayerListener.AbilitiesOff=Taitojen k<>ytt<74> pois p<><70>lt<6C>
|
||||
mcPlayerListener.AbilitiesOn=Taitojen k<>ytt<74> p<><70>ll<6C>
|
||||
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<><70>lt<6C>
|
||||
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode p<><70>ll<6C>
|
||||
mcPlayerListener.GreenThumb=[[GREEN]]**VIHERPEUKALO**
|
||||
mcPlayerListener.GreenThumbFail=[[RED]]**VIHERPEUKALO EP<45>ONNISTUI**
|
||||
mcPlayerListener.HerbalismSkill=[[YELLOW]]Yrttihoito:
|
||||
mcPlayerListener.MiningSkill=[[YELLOW]]Kaivanto:
|
||||
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn on tyhj<68>tty.
|
||||
mcPlayerListener.MyspawnNotExist=[[RED]]M<><4D>r<EFBFBD><72> myspawnisi ensin laittamalla s<>nky maahan.
|
||||
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn on asetettu t<>m<EFBFBD>nhetkiseen sijaintiisi.
|
||||
mcPlayerListener.MyspawnTimeNotice=Sinun pit<69><74> odottaa {0}m {1}s k<>ytt<74><74>ksesi myspawnia
|
||||
mcPlayerListener.NoPermission=Puutteelliset oikeudet (mcPermissions)
|
||||
mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Jos sinulla ei ole k<>ytt<74>oikeutta johonkin taitoon, sit<69> ei n<>ytet<65> t<><74>ll<6C>.
|
||||
mcPlayerListener.NotInParty=[[RED]]Et ole ryhm<68>ss<73>.
|
||||
mcPlayerListener.InviteSuccess=[[GREEN]]Kutsu l<>hetetty.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]HUOMIO: [[GREEN]]Olet saanut ryhm<68>kutsun ryhm<68><6D>n {0} pelaajalta {1}
|
||||
mcPlayerListener.ReceivedInvite2=[[YELLOW]]Kirjoita [[GREEN]]/{0}[[YELLOW]] hyv<79>ksy<73>ksesi kutsun
|
||||
mcPlayerListener.InviteAccepted=[[GREEN]]Kutsu hyv<79>ksytty. Olet liittynyt ryhm<68><6D>n {0}
|
||||
mcPlayerListener.NoInvites=[[RED]]Sinulla ei ole kutsuja
|
||||
mcPlayerListener.YouAreInParty=[[GREEN]]Olet ryhm<68>ss<73> {0}
|
||||
mcPlayerListener.PartyMembers=[[GREEN]]Ryhm<68>n j<>senet
|
||||
mcPlayerListener.LeftParty=[[RED]]Olet l<>htenyt ryhm<68>st<73>
|
||||
mcPlayerListener.JoinedParty=Liityit ryhm<68><6D>n: {0}
|
||||
mcPlayerListener.PartyChatOn=Vain ryhm<68>juttelu [[GREEN]]P<><50>ll<6C>
|
||||
mcPlayerListener.PartyChatOff=Vain ryhm<68>juttelu [[RED]]Pois p<><70>lt<6C>
|
||||
mcPlayerListener.AdminChatOn=Vain admin juttelu [[GREEN]]P<><50>ll<6C>
|
||||
mcPlayerListener.AdminChatOff=Vain admin juttelu [[RED]]Pois p<><70>lt<6C>
|
||||
mcPlayerListener.MOTD=[[BLUE]]T<>ll<6C> serverill<6C> 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<68><6D>n
|
||||
Party.InformedOnQuit={0} [[GREEN]] on l<>htenyt ryhm<68>st<73>
|
||||
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
|
390
src/main/java/com/gmail/nossr50/locale/locale_fr.properties
Normal file
390
src/main/java/com/gmail/nossr50/locale/locale_fr.properties
Normal file
@ -0,0 +1,390 @@
|
||||
Combat.WolfExamine=[[GREEN]]**Vous examinez le loup avec le Beast Lore**
|
||||
Combat.WolfShowMaster=[[DARK_GREEN]]Le Ma<4D>tre des b<>tes \: {0}
|
||||
Combat.Ignition=[[RED]]**ALLUMAGE**
|
||||
Combat.BurningArrowHit=[[DARK_RED]]Vous avez <20>t<EFBFBD> frapp<70> par une fl<66>che br<62>lante\!
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Vous voyez flou. Vous vous sentez <20>tourdi.
|
||||
Combat.TargetDazed=La cible a <20>t<EFBFBD> [[DARK_RED]]<5D>tourdi
|
||||
Combat.WolfNoMaster=[[GRAY]]Cette b<>te n'a pas de ma<6D>tre...
|
||||
Combat.WolfHealth=[[GREEN]]Cette b<>te a {0} points de vie
|
||||
Combat.StruckByGore=[[RED]]**FRAPP<50> JUSQU'AU SANG**
|
||||
Combat.Gore=[[GREEN]]**SANG**
|
||||
Combat.ArrowDeflect=[[WHITE]]**FL<46>CHE DEVI<56>E**
|
||||
Item.ChimaeraWingFail=**CHIMAERA WING a <20>chou<6F> \!**
|
||||
Item.ChimaeraWingPass=**CHIMAERA WING**
|
||||
Item.InjuredWait=Vous avez <20>t<EFBFBD> bless<73> r<>cemment et vous devez attendre pour utiliser <20>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<43>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<EFBFBD>porte <20> un membre du groupe
|
||||
m.mccOtherCommands=[[GREEN]]--AUTRES COMMANDES--
|
||||
m.mccStats=- Voir vos statistiques
|
||||
m.mccLeaderboards=- Classements
|
||||
m.mccMySpawn=- Vous t<>l<EFBFBD>porte <20> votre spawn
|
||||
m.mccClearMySpawn=- <20>fface votre point de spawn
|
||||
m.mccToggleAbility=- Active les capacit<69>s sp<73>ciales avec clic droit
|
||||
m.mccAdminToggle=- Active le chat admin
|
||||
m.mccWhois=[playername] [[RED]]- Voir les infos d<>taill<6C>es du joueur
|
||||
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifier
|
||||
m.mccMcGod=- Mode dieu
|
||||
m.mccSkillInfo=[skillname] [[RED]]- Afficher des informations d<>taill<6C>es d'une comp<6D>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<69>es
|
||||
m.EffectsTaming3_1=Bonus de d<>g<EFBFBD>ts
|
||||
m.EffectsTaming4_0=Conscient de l'environnement
|
||||
m.EffectsTaming4_1=Resistance aux Cactus, <20> la lave et aux chutes.
|
||||
m.EffectsTaming5_0=Epaisse fourrure
|
||||
m.EffectsTaming5_1=R<EFBFBD>duction d<>g<EFBFBD>ts, R<>sistance au feu
|
||||
m.EffectsTaming6_0=R<EFBFBD>sistance aux chocs
|
||||
m.EffectsTaming6_1=R<EFBFBD>duction des dommages explosifs
|
||||
m.AbilLockTaming1=D<EFBFBD>bloqu<EFBFBD> au niveau 100 (Conscient de l'environnement)
|
||||
m.AbilLockTaming2=D<EFBFBD>bloqu<EFBFBD> au niveau 250 (<28>paisse fourrure)
|
||||
m.AbilLockTaming3=D<EFBFBD>bloqu<EFBFBD> au niveau 500 (R<>sistance aux chocs)
|
||||
m.AbilLockTaming4=D<EFBFBD>bloqu<EFBFBD> au niveau 750 (Griffes aiguis<69>es)
|
||||
m.AbilBonusTaming1_0=Conscient de l'environnement
|
||||
m.AbilBonusTaming1_1=Le loup <20>vite le danger
|
||||
m.AbilBonusTaming2_0=Epaisse fourrure
|
||||
m.AbilBonusTaming2_1=R<EFBFBD>duit de moiti<74> les dommages \+ r<>sistance au feu
|
||||
m.AbilBonusTaming3_0=R<EFBFBD>sistance aux chocs
|
||||
m.AbilBonusTaming3_1=divise par 6 les d<>gats d'explosions
|
||||
m.AbilBonusTaming4_0=Griffes aiguis<69>es
|
||||
m.AbilBonusTaming4_1=+2 Dommages
|
||||
m.TamingGoreChance=[[RED]]Chances de Morsure: [[YELLOW]]{0}%
|
||||
m.SkillWoodCutting=B<EFBFBD>CHERONNAGE
|
||||
m.XPGainWoodCutting=Abattre des arbres
|
||||
m.EffectsWoodCutting1_0=L'abatteur d'arbres (capacit<69> sp<73>ciale)
|
||||
m.EffectsWoodCutting1_1=Faire exploser les arbres
|
||||
m.EffectsWoodCutting2_0=Souffleur de feuilles
|
||||
m.EffectsWoodCutting2_1=D<EFBFBD>truire plus de feuilles
|
||||
m.EffectsWoodCutting3_0=Double Butin
|
||||
m.EffectsWoodCutting3_1=Double le butin normal
|
||||
m.AbilLockWoodCutting1=D<EFBFBD>bloqu<EFBFBD> au niveau 100 (Souffleur de feuilles)
|
||||
m.AbilBonusWoodCutting1_0=Soufler les feuilles
|
||||
m.AbilBonusWoodCutting1_1=D<EFBFBD>truire plus de feuilles
|
||||
m.WoodCuttingDoubleDropChance=[[RED]]Chance de double butin: [[YELLOW]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[RED]]Dur<75>e de votre capacit<69> sp<73>ciale : [[YELLOW]]{0}s
|
||||
m.SkillArchery=TIR <20> 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=<EFBFBD>tourdir (les joueurs)
|
||||
m.EffectsArchery2_1=<EFBFBD>tourdi les joueurs
|
||||
m.EffectsArchery3_0=D<EFBFBD>g<EFBFBD>ts+
|
||||
m.EffectsArchery3_1=Augmente les d<>g<EFBFBD>ts
|
||||
m.EffectsArchery4_0=R<EFBFBD>cup<EFBFBD>ration de fl<66>ches
|
||||
m.EffectsArchery4_1=Chances de r<>cup<75>rer vos fl<66>ches sur un cadavre
|
||||
m.ArcheryDazeChance=[[RED]]Chances d'<27>tourdir : [[YELLOW]]{0}%
|
||||
m.ArcheryRetrieveChance=[[RED]]Chances de r<>cup<75>ration des fl<66>ches : [[YELLOW]]{0}%
|
||||
m.ArcheryIgnitionLength=[[RED]]Dur<75>e du feu : [[YELLOW]]{0} secondes
|
||||
m.ArcheryDamagePlus=[[RED]]D<>g<EFBFBD>ts+ (Rang {0}): [[YELLOW]]Bonus de {0} dommages
|
||||
m.SkillAxes=HACHE
|
||||
m.XPGainAxes=Attaquer des monstres
|
||||
m.EffectsAxes1_0=Fendeur de cr<63>nes (capacit<69> sp<73>ciale)
|
||||
m.EffectsAxes1_1=provoque des d<>g<EFBFBD>ts de zone
|
||||
m.EffectsAxes2_0=Coup critiques
|
||||
m.EffectsAxes2_1=double les d<>g<EFBFBD>ts
|
||||
m.EffectsAxes3_0=Ma<EFBFBD>trise de la hache (niveau 500)
|
||||
m.EffectsAxes3_1=Augmente les d<>g<EFBFBD>ts
|
||||
m.AbilLockAxes1=D<EFBFBD>bloqu<EFBFBD> au niveau 500 (Ma<4D>trise de la hache)
|
||||
m.AbilBonusAxes1_0=Ma<EFBFBD>trise de la hache
|
||||
m.AbilBonusAxes1_1=4 Blessures en bonus
|
||||
m.AxesCritChance=[[RED]]Chances de coup critique : [[YELLOW]]{0}%
|
||||
m.AxesSkullLength=[[RED]]Dur<75>e de votre capacit<69> sp<73>ciale : [[YELLOW]]{0}s
|
||||
m.SkillSwords=<EFBFBD>P<EFBFBD>E
|
||||
m.XPGainSwords=Attaque des monstres
|
||||
m.EffectsSwords1_0=Contre-Attaque
|
||||
m.EffectsSwords1_1=Renvoie 50% des degats subis
|
||||
m.EffectsSwords2_0=Lame crant<6E>e (capacit<69> sp<73>ciale)
|
||||
m.EffectsSwords2_1=25% de d<>g<EFBFBD>ts et saignements succesifs.
|
||||
m.EffectsSwords3_0=Lame crant<6E>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<EFBFBD>t<EFBFBD>
|
||||
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<75>e de votre capacit<69> sp<73>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<EFBFBD>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<74>
|
||||
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<69> sp<73>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<75>e de votre capacit<69> sp<73>ciale : [[YELLOW]]{0}s
|
||||
m.SkillRepair=R<EFBFBD>PARATION
|
||||
m.XPGainRepair=R<EFBFBD>parer des objets
|
||||
m.EffectsRepair1_0=R<EFBFBD>parer
|
||||
m.EffectsRepair1_1=R<EFBFBD>paration d'outils & Armures en Fer
|
||||
m.EffectsRepair2_0=Ma<EFBFBD>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<69>
|
||||
m.EffectsRepair4_0=R<EFBFBD>paration du Diamant (requiert niveau {0})
|
||||
m.EffectsRepair4_1=R<EFBFBD>paration des outils & armures en diamant
|
||||
m.RepairRepairMastery=[[RED]]Ma<4D>tre en r<>paration : [[YELLOW]]{0}% de durabilit<69> restaur<75>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<69> sp<73>ciale)
|
||||
m.EffectsUnarmed1_1=+50% de d<>g<EFBFBD>ts, brise les mat<61>riaux faibles
|
||||
m.EffectsUnarmed2_0=D<EFBFBD>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<EFBFBD>ts
|
||||
m.EffectsUnarmed4_0=Ma<EFBFBD>trise du d<>sarmement
|
||||
m.EffectsUnarmed4_1=Beaucoup plus de d<>g<EFBFBD>ts
|
||||
m.EffectsUnarmed5_0=D<EFBFBD>viation des fl<66>ches
|
||||
m.EffectsUnarmed5_1=D<EFBFBD>vie les fl<66>ches qui vous foncent dessus
|
||||
m.AbilLockUnarmed1=D<EFBFBD>bloqu<EFBFBD> au niveau 250 (Apprenti du d<>sarmement)
|
||||
m.AbilLockUnarmed2=D<EFBFBD>bloqu<EFBFBD> au niveau 500 (Ma<4D>trise du d<>sarmement)
|
||||
m.AbilBonusUnarmed1_0=Apprenti du d<>sarmement
|
||||
m.AbilBonusUnarmed1_1=+2 d<>g<EFBFBD>ts
|
||||
m.AbilBonusUnarmed2_0=Ma<EFBFBD>trise du d<>sarmement
|
||||
m.AbilBonusUnarmed2_1=+4 d<>g<EFBFBD>ts
|
||||
m.UnarmedArrowDeflectChance=[[RED]]Chances d<>vier les fl<66>ches : [[YELLOW]]{0}%
|
||||
m.UnarmedDisarmChance=[[RED]]Chances de D<>sarmer : [[YELLOW]]{0}%
|
||||
m.UnarmedBerserkLength=[[RED]]Dur<75>e de votre capacit<69> sp<73>ciale : [[YELLOW]]{0}s
|
||||
m.SkillHerbalism=Herboristerie
|
||||
m.XPGainHerbalism=R<EFBFBD>coler des herbes
|
||||
m.EffectsHerbalism1_0=Main verte (capacit<69> sp<73>ciale)
|
||||
m.EffectsHerbalism1_1=r<EFBFBD>pand la main verte, 3x Butin
|
||||
m.EffectsHerbalism2_0=Main verte (Bl<42>)
|
||||
m.EffectsHerbalism2_1=Auto-plantes du bl<62> 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<6E> re<72>ue via le pain / rago<67>t
|
||||
m.EffectsHerbalism5_0=Double butin (Toutes cultures)
|
||||
m.EffectsHerbalism5_1=Double les r<>coltes
|
||||
m.HerbalismGreenTerraLength=[[RED]]Dur<75>e de la capacit<69> sp<73>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<74>sors
|
||||
m.EffectsExcavation1_0=Super broyeur (capacit<69> sp<73>ciale)
|
||||
m.EffectsExcavation1_1=3x Butin, 3x XP, +Vitesse
|
||||
m.EffectsExcavation2_0=Chercheur de tr<74>sors
|
||||
m.EffectsExcavation2_1=Capacit<EFBFBD> de trouver un tr<74>sor
|
||||
m.ExcavationGreenTerraLength=[[RED]]Dur<75>e de la capacit<69> sp<73>ciale : [[YELLOW]]{0}s
|
||||
mcBlockListener.PlacedAnvil=[[DARK_RED]]Vous avez plac<61> une enclume, Les enclumes peuvent r<>parer les outils et l'armure.
|
||||
mcEntityListener.WolfComesBack=[[DARK_GRAY]]Votre loup revient vers vous...
|
||||
mcPlayerListener.AbilitiesOff=Capacit<EFBFBD> sp<73>ciale d<>sactiv<69>e
|
||||
mcPlayerListener.AbilitiesOn=Capacit<EFBFBD> sp<73>ciale activ<69>e
|
||||
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**CAPACIT<49> RECHARG<52>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<69>
|
||||
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO godMode activ<69>
|
||||
mcPlayerListener.GreenThumb=[[GREEN]]**MAIN VERTE**
|
||||
mcPlayerListener.GreenThumbFail=[[RED]]**MAIN VERTE A ECHOU<4F>**
|
||||
mcPlayerListener.HerbalismSkill=[[YELLOW]]Herboriste (/Herbalism) :
|
||||
mcPlayerListener.MiningSkill=[[YELLOW]]Minage (/Mining):
|
||||
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Votre point de spawn a <20>t<EFBFBD> <20>ffac<61>.
|
||||
mcPlayerListener.MyspawnNotExist=[[RED]]Dormez dans un lit pour d<>finir votre point de spawn.
|
||||
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Votre point de spawn a <20>t<EFBFBD> enregistr<74> 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<63>s <20> une comp<6D>, elle ne sera pas affich<63>e ici.
|
||||
mcPlayerListener.NotInParty=[[RED]]Vous n'<27>tes pas dans un groupe.
|
||||
mcPlayerListener.InviteSuccess=[[GREEN]]L'invitation a <20>t<EFBFBD> envoy<6F>e avec succ<63>s.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]ALERTE: [[GREEN]]Vous avez re<72>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<70>e. Vous avez rejoint le groupe {0}
|
||||
mcPlayerListener.NoInvites=[[RED]]Vous n'avez pas d'invitation pour le moment
|
||||
mcPlayerListener.YouAreInParty=[[GREEN]]Vous <20>tes dans le groupe {0}
|
||||
mcPlayerListener.PartyMembers=[[GREEN]]Membres du groupe
|
||||
mcPlayerListener.LeftParty=[[RED]]Vous avez quitt<74> 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<74> votre groupe
|
||||
Skills.YourGreenTerra=[[GREEN]]Votre capacit<69>e sp<73>ciale [[YELLOW]]Main verte [[GREEN]]est recharg<72>e
|
||||
Skills.YourTreeFeller=[[GREEN]]Votre capacit<69>e sp<73>ciale [[YELLOW]]L'abatteur d'arbres [[GREEN]]est recharg<72>e
|
||||
Skills.YourSuperBreaker=[[GREEN]]Votre capacit<69>e sp<73>ciale [[YELLOW]]Super Breaker[[GREEN]]est recharg<72>e
|
||||
Skills.YourSerratedStrikes=[[GREEN]]Votre capacit<69>e sp<73>ciale [[YELLOW]]Epee crant<6E> [[GREEN]]est recharg<72>e
|
||||
Skills.YourBerserk=[[GREEN]]Votre capacit<69>e sp<73>ciale [[YELLOW]]Berserk [[GREEN]]est recharg<72>e
|
||||
Skills.YourSkullSplitter=[[GREEN]]Votre capacit<69>e sp<73>ciale [[YELLOW]]Fendeur de cr<63>nes [[GREEN]]est recharg<72>e
|
||||
Skills.YourGigaDrillBreaker=[[GREEN]]Votre capacit<69>e sp<73>ciale [[YELLOW]]Super broyeur [[GREEN]]est recharg<72>e
|
||||
Skills.TooTired=[[RED]]Vous <20>tes trop fatigu<67> pour utiliser cette capacit<69> pour l'instant.
|
||||
Skills.ReadyHoe=[[GREEN]]**Votre b<>che est charg<72>e**
|
||||
Skills.LowerHoe=[[GRAY]]Votre b<>che s'est d<>charg<72>e..
|
||||
Skills.ReadyAxe=[[GREEN]]**Votre hache est charg<72>e**
|
||||
Skills.LowerAxe=[[GRAY]]Votre hache s'est d<>charg<72>e..
|
||||
Skills.ReadyFists=[[GREEN]]**Vos poings sont charg<72>s**
|
||||
Skills.LowerFists=[[GRAY]]Vos poings se sont d<>charg<72>s..
|
||||
Skills.ReadyPickAxe=[[GREEN]]**Votre pioche est charg<72>e**
|
||||
Skills.LowerPickAxe=[[GRAY]]Votre pioche s'est d<>charg<72>e..
|
||||
Skills.ReadyShovel=[[GREEN]]**Votre pelle est charg<72>e**
|
||||
Skills.LowerShovel=[[GRAY]]Votre pelle s'est d<>charg<72>e..
|
||||
Skills.ReadySword=[[GREEN]]**Votre <20>p<EFBFBD>e est charg<72>e**
|
||||
Skills.LowerSword=[[GRAY]]Votre <20>p<EFBFBD>e s'est d<>charg<72>e..
|
||||
Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
|
||||
Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
|
||||
Skills.GreenTerraOn=[[GREEN]]**Comp<6D>tence [[YELLOW]]Main Verte [[GREEN]]activ<69>e**
|
||||
Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilis<69> la comp<6D>tence sp<73>ciale [[RED]]Main verte !
|
||||
Skills.TreeFellerOn=[[GREEN]]**Comp<6D>tence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]activ<69>e**
|
||||
Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilis<69> la comp<6D>tence sp<73>ciale [[RED]]Abatteur d'Arbres !
|
||||
Skills.SuperBreakerOn=[[GREEN]]**Comp<6D>tence [[YELLOW]]Super Breaker [[GREEN]]activ<69>e**
|
||||
Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilis<69> la comp<6D>tence sp<73>ciale [[RED]]Super Breaker !
|
||||
Skills.SerratedStrikesOn=[[GREEN]]**Comp<6D>tence [[YELLOW]]Lame Crant<6E>e [[GREEN]]activ<69>e**
|
||||
Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilis<69> la comp<6D>tence sp<73>ciale [[RED]]Lame crant<6E>e !
|
||||
Skills.SkullSplitterOn=[[GREEN]]**Comp<6D>tence [[YELLOW]]Fendeur de cr<63>nes [[GREEN]]activ<69>e**
|
||||
Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilis<69> la comp<6D>tence sp<73>ciale [[RED]]Fendeur de cr<63>nes !
|
||||
Skills.GigaDrillBreakerOn=[[GREEN]]**Comp<6D>tence [[YELLOW]]Super Broyeur [[GREEN]]activ<69>e**
|
||||
Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilis<69> la comp<6D>tence sp<73>ciale [[RED]]Super broyeur !
|
||||
Skills.GreenTerraOff=[[RED]]**Comp<6D>tence [[YELLOW]]Main Verte [[GREEN]]termin<69>e**
|
||||
Skills.TreeFellerOff=[[RED]]**Comp<6D>tence [[YELLOW]]L'abatteur d'Arbres [[GREEN]]termin<69>e**
|
||||
Skills.SuperBreakerOff=[[RED]]**Comp<6D>tence [[YELLOW]]Super Breaker [[GREEN]]termin<69>e**
|
||||
Skills.SerratedStrikesOff=[[RED]]**Comp<6D>tence [[YELLOW]]Lame Crant<6E>e [[GREEN]]termin<69>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<6E> de {0}. Total ({1})
|
||||
Skills.AcrobaticsUp=[[YELLOW]]La competence acrobatie a augment<6E> de {0}. Total ({1})
|
||||
Skills.ArcheryUp=[[YELLOW]]La competence tir a l'arc a augment<6E> de {0}. Total ({1})
|
||||
Skills.SwordsUp=[[YELLOW]]La competence <20>p<EFBFBD>e a augment<6E> de {0}. Total ({1})
|
||||
Skills.AxesUp=[[YELLOW]]La competence hache a augment<6E> de {0}. Total ({1})
|
||||
Skills.UnarmedUp=[[YELLOW]]La comp<6D>tence de combat <20> mains nues a augment<6E> de {0}. Total ({1})
|
||||
Skills.HerbalismUp=[[YELLOW]]La competence herboriste a augment<6E> de {0}. Total ({1})
|
||||
Skills.MiningUp=[[YELLOW]]La competence minage a augment<6E> de {0}. Total ({1})
|
||||
Skills.WoodcuttingUp=[[YELLOW]]La competence bucher<65>nage a augment<6E> de {0}. Total ({1})
|
||||
Skills.RepairUp=[[YELLOW]]La competence r<>paration a augment<6E> de {0}. Total ({1})
|
||||
Skills.ExcavationUp=[[YELLOW]]La competence excavation a augment<6E> de {0}. Total ({1})
|
||||
Skills.FeltEasy=[[GRAY]]That felt easy.
|
||||
Skills.StackedItems=[[DARK_RED]]Vous ne pouvez pas r<>parer les objets empil<69>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<EFBFBD> en bonne <20>tat.
|
||||
Skills.Disarmed=[[DARK_RED]]Vous avez <20>t<EFBFBD> d<>sarm<72> !
|
||||
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<72>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<63><72> par [[BLUE]]nossr50,[[GOLD]]mcMMO ajoute beaucoup de comp<6D>tences dans Minecraft,[[GOLD]]Vous pouvez gagner de l'exp<78>rience de diff<66>rentes fa<66>ons,[[GOLD]]Vous devriez taper [[GREEN]]/NOM_COMPETENCE[[GOLD]] pour en savoir plus.,[[DARK_AQUA]]Q: QU'EST-CE QUE <20>A FAIT?,[[GOLD]]Par exemple... en [[DARK_AQUA]]Minant[[GOLD]] Vous allez recevoir des b<>n<EFBFBD>fices comme,[[RED]]le Double Butin[[GOLD]] ou la comp<6D>tence [[RED]]Super Breaker[[GOLD]] qui lorsqu'elle est,[[GOLD]]activ<69>e avec clique droit permet de miner vite, sa dur<75>e,[[GOLD]]d<>pend du niveau de votre comp<6D>tence. Am<41>liorer [[BLUE]]Le Minage,[[GOLD]]Est aussi simple que de mine des ressources pr<70>cieuses !,[[DARK_AQUA]]Q: QU'EST-CE QUE <20>A VEUT DIRE ?,[[GOLD]]Presque toutes les comp<6D>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<63>er une exp<78>rience RPG de qualit<69>.,[[DARK_AQUA]]Q: O<> JE PEUX SUGG<47>RER DES ID<49>ES !?,[[DARK_AQUA]]bit.ly/MCmmoIDEA,[[DARK_AQUA]]Q: COMMENT JE FAIS CI ET <20>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
|
396
src/main/java/com/gmail/nossr50/locale/locale_nl.properties
Normal file
396
src/main/java/com/gmail/nossr50/locale/locale_nl.properties
Normal file
@ -0,0 +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
|
||||
m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand
|
390
src/main/java/com/gmail/nossr50/locale/locale_pl.properties
Normal file
390
src/main/java/com/gmail/nossr50/locale/locale_pl.properties
Normal file
@ -0,0 +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
|
||||
m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones in hand
|
404
src/main/java/com/gmail/nossr50/locale/locale_pt_br.properties
Normal file
404
src/main/java/com/gmail/nossr50/locale/locale_pt_br.properties
Normal file
@ -0,0 +1,404 @@
|
||||
Combat.WolfExamine=[[GREEN]]*Voc<6F> examinou um lobo usando Conhecimento de Feras*
|
||||
Combat.WolfShowMaster=[[DARK_GREEN]]O Mestre das Feras \: {0}
|
||||
Combat.Ignition=[[RED]]*IGNI<4E>AO*
|
||||
Combat.BurningArrowHit=[[DARK_RED]]Voc<6F> 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<EFBFBD> foi ferido recentemente e tem que esperar para usar isto. [[YELLOW]]({0}s)
|
||||
Item.NeedFeathers=[[GRAY]]Voc<6F> 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<63>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<6D>oes do jogador
|
||||
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modificar atributos do jogador
|
||||
m.mccMcGod=- Modo Deus
|
||||
m.mccSkillInfo=[skillname] [[RED]]- Ver informa<6D>oes sobre a habilidade
|
||||
m.mccModDescription=[[RED]]- Breve descri<72>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<63>tico que causa hemorragia
|
||||
m.EffectsTaming3_0=Garras afiadas
|
||||
m.EffectsTaming3_1=B<EFBFBD>nus de Dano
|
||||
m.EffectsTaming4_0=Consci<EFBFBD>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<EFBFBD>ao nos Danos, Resist<73>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<63>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<EFBFBD>ncia do ambiente
|
||||
m.AbilBonusTaming1_1=Lobos evitam perigo
|
||||
m.AbilBonusTaming2_0=Pele grossa
|
||||
m.AbilBonusTaming2_1=Danos pela metade, Resist<73>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 <20>rvores
|
||||
m.EffectsWoodCutting1_0=Derrubador de <20>rvores (HABILIDADE ESPECIAL)
|
||||
m.EffectsWoodCutting1_1=Explode <20>rvores
|
||||
m.EffectsWoodCutting2_0=Soprador de Folhas
|
||||
m.EffectsWoodCutting2_1=Destr<EFBFBD>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<EFBFBD>i folhas rapidamente
|
||||
m.WoodCuttingDoubleDropChance=[[RED]]Chance de Drop x2: [[YELLOW]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[RED]]Dura<72>ao do Derrubador de <20>rvores: [[YELLOW]]{0}s
|
||||
|
||||
m.SkillArchery=ARCO E FLECHA
|
||||
m.XPGainArchery=Atacando monstros/
|
||||
m.EffectsArchery1_0=Igni<EFBFBD>ao
|
||||
m.EffectsArchery1_1=25% de chance dos inimigos pegarem fogo
|
||||
m.EffectsArchery2_0=Atordoar (Jogadores)
|
||||
m.EffectsArchery2_1=Desorienta os advers<72>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<72>ao da Igni<6E>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<43>nios (HABILIDADE ESPECIAL)
|
||||
m.EffectsAxes1_1=Causa Danos em Area
|
||||
m.EffectsAxes2_0=Ataques Cr<43>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<EFBFBD>nus de 4 de dano
|
||||
m.AxesCritChance=[[RED]]Chance ataque cr<63>tico: [[YELLOW]]{0}%
|
||||
m.AxesSkullLength=[[RED]]Dura<72>ao do Rachador de Cr<43>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<72>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<72>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<EFBFBD>AO
|
||||
m.XPGainMining=Minerando Pedras e Min<69>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<72>ao da Super Britadeira: [[YELLOW]]{0}s
|
||||
|
||||
m.SkillRepair=REPARA<EFBFBD>AO
|
||||
m.XPGainRepair=Reparando itens
|
||||
m.EffectsRepair1_0=Reparar
|
||||
m.EffectsRepair1_1=Reparando Ferramentas e Armaduras de Ferro
|
||||
m.EffectsRepair2_0=Mestre em Rapara<72>ao
|
||||
m.EffectsRepair2_1=Aumenta a quantia reparada
|
||||
m.EffectsRepair3_0=Super Repara<72>ao
|
||||
m.EffectsRepair3_1=Dobra a efetividade da Repara<72>ao
|
||||
m.EffectsRepair4_0=Repara<EFBFBD>ao de diamantes (N<>vel {0})
|
||||
m.EffectsRepair4_1=Rapara Ferramentas e Armaduras de Diamante
|
||||
m.RepairRepairMastery=[[RED]]Mestre em Rapara<72>ao: [[YELLOW]]{0}% extra restaurado
|
||||
m.RepairSuperRepairChance=[[RED]]Chance de Super Repara<72>ao: [[YELLOW]]{0}%
|
||||
|
||||
m.SkillUnarmed=DESARMADO
|
||||
m.XPGainUnarmed=Atacando monstros
|
||||
m.EffectsUnarmed1_0=F<EFBFBD>ria (HABILIDADE ESPECIAL)
|
||||
m.EffectsUnarmed1_1=+50% de Dano, Quebra materiais fr<66>geis
|
||||
m.EffectsUnarmed2_0=Desarmar (Jogadores)
|
||||
m.EffectsUnarmed2_1=Derruba a arma que o advers<72>rio est<73> 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<6F>
|
||||
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<72>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<72>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<EFBFBD>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<EFBFBD>ad/or de Tesouros
|
||||
m.EffectsExcavation2_1=Encontra itens raros enquanto cava
|
||||
m.ExcavationGreenTerraLength=[[RED]]Dura<72>ao da Super Broca: [[YELLOW]]{0}s
|
||||
|
||||
mcBlockListener.PlacedAnvil=[[DARK_RED]] Voc<6F> colocou uma bigorna, a bigorna pode reparar ferramentas e armaduras.
|
||||
mcEntityListener.WolfComesBack=[[DARK_GRAY]]Seu lobo voltou para voc<6F>...
|
||||
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<EFBFBD>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<EFBFBD>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<EFBFBD> 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<6F> nao tem acesso a uma habilidade, ela nao ser<65> exibida aqui.
|
||||
mcPlayerListener.NotInParty=[[RED]]Voc<6F> nao est<73> em nenhuma equipe.
|
||||
mcPlayerListener.InviteSuccess=[[GREEN]]Convite enviado.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]ALERTA: [[GREEN]]Voc<6F> 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<6F> se juntou a equipe {0}
|
||||
mcPlayerListener.NoInvites=[[RED]]Voc<6F> nao tem convites pendentes.
|
||||
mcPlayerListener.YouAreInParty=[[GREEN]]Voc<6F> est<73> na equipe {0}
|
||||
mcPlayerListener.PartyMembers=[[GREEN]]Membros da Equipe
|
||||
mcPlayerListener.LeftParty=[[RED]]Voc<6F> 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<73> rodando o mcMMO {0} digite [[YELLOW]]/{1}[[BLUE]] para obter ajuda.
|
||||
mcPlayerListener.WIKI=[[BLUE]]Para mais informa<6D>oes - [[GREEN]]http://mcmmo.wikia.com
|
||||
mcPlayerListener.PowerLevel=[[RED]]NIVEL TOTAL:
|
||||
mcPlayerListener.PowerLevelLeaderboard=[[BLUE]]-Classifica<63>ao - [[GREEN]]N<>vel - [[WHITE]]Jogador-
|
||||
mcPlayerListener.SkillLeaderboard=[[BLUE]]-Classifica<63>ao em [[GREEN]]{0}
|
||||
mcPlayerListener.RepairSkill=Repara<EFBFBD>ao (Repair):
|
||||
mcPlayerListener.SwordsSkill=Espadas (Swords):
|
||||
mcPlayerListener.TamingSkill=Domar (Taming):
|
||||
mcPlayerListener.UnarmedSkill=Desarmado (Unarmed):
|
||||
mcPlayerListener.WoodcuttingSkill=Lenhador (Woodcutting):
|
||||
mcPlayerListener.YourStats=[[GREEN]][mcMMO] Estat<61>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<73> dispon<6F>vel!
|
||||
Skills.YourTreeFeller=[[GREEN]]Sua habilidade [[YELLOW]]Derrubador de Arvores [[GREEN]]est<73> dispon<6F>vel!
|
||||
Skills.YourSuperBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Britadeira [[GREEN]]est<73> dispon<6F>vel!
|
||||
Skills.YourSerratedStrikes=[[GREEN]]Sua habilidade [[YELLOW]]Ataques Cortantes [[GREEN]]est<73> dispon<6F>vel!
|
||||
Skills.YourBerserk=[[GREEN]]Sua habilidade [[YELLOW]]F<>ria [[GREEN]]est<73> dispon<6F>vel!
|
||||
Skills.YourSkullSplitter=[[GREEN]]Sua habilidade [[YELLOW]]Rachador de Cr<43>nios [[GREEN]]est<73> dispon<6F>vel!
|
||||
Skills.YourGigaDrillBreaker=[[GREEN]]Sua habilidade [[YELLOW]]Super Broca [[GREEN]]est<73> dispon<6F>vel!
|
||||
Skills.TooTired=[[RED]]Voc<6F> est<73> 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<43>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<43>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<72>ao aumentada em {0}. Total ({1})
|
||||
Skills.WoodcuttingUp=[[YELLOW]]Habilidade de Lenhador aumentada em {0}. Total ({1})
|
||||
Skills.RepairUp=[[YELLOW]]Habilidade de Repara<72>ao aumentada em {0}. Total ({1})
|
||||
Skills.ExcavationUp=[[YELLOW]]Habilidade de Escava<76>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<6F> precisa de mais
|
||||
Skills.AdeptDiamond=[[DARK_RED]]Voc<6F> nao tem o n<>vel necess<73>rio para reparar Diamante
|
||||
Skills.FullDurability=[[GRAY]]J<> est<73> com Durabilidade cheia.
|
||||
Skills.Disarmed=[[DARK_RED]]Voc<6F> foi Desarmado!
|
||||
mcPlayerListener.SorcerySkill=Feiti<EFBFBD>aria (Sorcery):
|
||||
|
||||
m.SkillSorcery=FEITI<EFBFBD>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 <20> 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<6F> pode ganhar experi<72>ncia de muitas maneiras.,[[GOLD]]Digite [[GREEN]]/NOME_DA_HABILIDADE[[GOLD]] para obter informa<6D>oes sobre a habilidade.,[[DARK_AQUA]]Q: O QUE ELE FAZ? [[GOLD]]Por exemplo... em [[DARK_AQUA]]Minera<72>ao[[GOLD]] voc<6F> receber<65> benef<65>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<72>ao. [[GOLD]]que depende do n<>vel da sua habilidade. Aumentar o n<>vel de [[BLUE]]Minera<72>ao[[GOLD]] <20> simples. basta minerar pedras ou min<69>rios!,[[GOLD]]O objetivo do mcMMO <20> criar uma experi<72>ncia de RPG de qualidade.,[[GOLD]]Digite [[GREEN]]/{0}[[GOLD]] para uma lista de comandos poss<73>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<6D>oes. leia a wiki do McMMO: [[RED]]mcmmo.wikia.com
|
||||
Party.Locked=[[RED]]Equipe est<73> trancada, s<> o l<>der pode convidar.
|
||||
Party.IsntLocked=[[GRAY]]Equipe nao est<73> trancada
|
||||
Party.Unlocked=[[GRAY]]Equipe foi Destrancada
|
||||
Party.Help1=[[RED]]O uso certo <20> [[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<6D>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<61>a da equipe use [[YELLOW]]/{0} [[WHITE]]owner <player>
|
||||
Party.NotOwner=[[DARK_RED]]Voc<6F> nao <20> o l<>der da equipe
|
||||
Party.InvalidName=[[DARK_RED]]Este nome nao <20> valido
|
||||
Party.PasswordSet=[[GREEN]]Senha da equipe: {0}
|
||||
Party.CouldNotKick=[[DARK_RED]]Nao foi poss<73>vel excluir o jogador {0}
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} nao est<73> na sua equipe
|
||||
Party.CouldNotSetOwner=[[DARK_RED]]Nao foi poss<73>vel passar a lideran<61>a para {0}
|
||||
Commands.xprate.proper=[[DARK_AQUA]]Uso certo <20> /{0} [integer] [true:false]
|
||||
Commands.xprate.proper2=[[DARK_AQUA]]Tamb<6D>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<4D>OU!
|
||||
Commands.xprate.started2=[[GOLD]]XP RATE AGORA <20> {0}x!!
|
||||
Commands.xplock.locked=[[GOLD]]Sua barra de XP BAR est<73> 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
|
382
src/main/java/com/gmail/nossr50/locale/locale_ru.properties
Normal file
382
src/main/java/com/gmail/nossr50/locale/locale_ru.properties
Normal file
@ -0,0 +1,382 @@
|
||||
Combat.WolfExamine=[[GREEN]]**<2A><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"**
|
||||
Combat.WolfExamine=[[GREEN]]**<2A><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"**
|
||||
Combat.WolfShowMaster=[[DARK_GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \: {0}
|
||||
Combat.Ignition=[[RED]]**<2A><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!**
|
||||
Combat.BurningArrowHit=[[DARK_RED]]<5D><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\!
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
Combat.TargetDazed=<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> [[DARK_RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Combat.WolfNoMaster=[[GRAY]]<5D> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Combat.WolfHealth=[[GREEN]]<5D> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> {0} <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Combat.StruckByGore=[[RED]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Combat.Gore=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Combat.ArrowDeflect=[[WHITE]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Item.ChimaeraWingFail=**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\!**
|
||||
Item.ChimaeraWingPass=**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>...**
|
||||
Item.InjuredWait=<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. [[YELLOW]]({0}s)
|
||||
Item.NeedFeathers=[[GRAY]]<5D><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..
|
||||
m.mccPartyCommands=[[GREEN]]--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
|
||||
m.mccParty=[party name] [[RED]]- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccPartyQ=[[RED]]- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccPartyToggle=[[RED]] - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.mccPartyInvite=[player name] [[RED]]- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccPartyAccept=[[RED]]- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccPartyTeleport=[party member name] [[RED]]- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccOtherCommands=[[GREEN]]--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
|
||||
m.mccStats=- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> McMMo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccLeaderboards=- <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccMySpawn=- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccClearMySpawn=- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccToggleAbility=- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.mccAdminToggle=- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.mccWhois=[playername] [[RED]]- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.mccMcGod=- <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.mccSkillInfo=[skillname] [[RED]]- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.mccModDescription=[[RED]]- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> 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=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.YourStats=<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.SkillTaming=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.XPGainTaming=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming3_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming4_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming4_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming5_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.EffectsTaming5_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming6_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsTaming6_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilLockTaming1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 100+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.AbilLockTaming2=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 250+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>)
|
||||
m.AbilLockTaming3=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 500+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.AbilLockTaming4=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 700+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.AbilBonusTaming1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilBonusTaming1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilBonusTaming2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.AbilBonusTaming2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilBonusTaming3_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilBonusTaming3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1/6 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilBonusTaming4_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilBonusTaming4_1=+2 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.TamingGoreChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.SkillWoodCutting=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.XPGainWoodCutting=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsWoodCutting1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsWoodCutting1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsWoodCutting2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsWoodCutting2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsWoodCutting3_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsWoodCutting3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.AbilLockWoodCutting1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 100+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.AbilBonusWoodCutting1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilBonusWoodCutting1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.WoodCuttingDoubleDropChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}s
|
||||
m.SkillArchery=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
m.XPGainArchery=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsArchery1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsArchery1_1=25% <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsArchery2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsArchery2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsArchery3_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD>+
|
||||
m.EffectsArchery3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsArchery4_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsArchery4_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.ArcheryDazeChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.ArcheryRetrieveChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.ArcheryIgnitionLength=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0} <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.ArcheryDamagePlus=[[RED]]<5D><><EFBFBD><EFBFBD>+ (Rank{0}): [[YELLOW]]Bonus {0} damage
|
||||
m.SkillAxes=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.XPGainAxes=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsAxes1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsAxes1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsAxes2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsAxes2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsAxes3_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(500 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsAxes3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilLockAxes1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 500+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.AbilBonusAxes1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilBonusAxes1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> 4 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AxesCritChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.AxesSkullLength=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}s
|
||||
m.SkillSwords=<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.XPGainSwords=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsSwords1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsSwords1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 50% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsSwords2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsSwords2_1=25% <20><><EFBFBD><EFBFBD><EFBFBD>+ <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsSwords3_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
m.EffectsSwords3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5 <20><><EFBFBD>
|
||||
m.EffectsSwords4_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsSwords4_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsSwords5_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsSwords5_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.SwordsCounterAttChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.SwordsBleedLength=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0} <20><><EFBFBD>
|
||||
m.SwordsBleedChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0} %
|
||||
m.SwordsParryChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0} %
|
||||
m.SwordsSSLength=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x <20><><EFBFBD><EFBFBD><EFBFBD>": [[YELLOW]]{0}s
|
||||
m.SwordsTickNote=[[GRAY]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]1 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.SkillAcrobatics=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.XPGainAcrobatics=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
m.EffectsAcrobatics1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsAcrobatics1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsAcrobatics2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsAcrobatics2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsAcrobatics3_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsAcrobatics3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AcrobaticsRollChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.AcrobaticsGracefulRollChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.AcrobaticsDodgeChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.SkillMining=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.XPGainMining=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsMining1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsMining1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsMining2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsMining2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.MiningDoubleDropChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.MiningSuperBreakerLength=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>": [[YELLOW]]{0}s
|
||||
m.SkillRepair=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.XPGainRepair=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsRepair1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsRepair1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsRepair2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsRepair2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsRepair3_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsRepair3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsRepair4_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ({0}+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsRepair4_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.RepairRepairMastery=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {0}% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.RepairSuperRepairChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.SkillUnarmed=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.XPGainUnarmed=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsUnarmed1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsUnarmed1_1=+50% <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsUnarmed2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsUnarmed2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>.
|
||||
m.EffectsUnarmed3_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.EffectsUnarmed3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsUnarmed4_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.EffectsUnarmed4_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsUnarmed5_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsUnarmed5_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilLockUnarmed1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 250+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>)
|
||||
m.AbilLockUnarmed2=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 500+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>)
|
||||
m.AbilBonusUnarmed1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.AbilBonusUnarmed1_1=+2 <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.AbilBonusUnarmed2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.AbilBonusUnarmed2_1=+4 <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.UnarmedArrowDeflectChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.UnarmedDisarmChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.UnarmedBerserkLength=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>": [[YELLOW]]{0}s
|
||||
m.SkillHerbalism=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.XPGainHerbalism=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsHerbalism1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsHerbalism1_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 3-<2D><> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsHerbalism2_0="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsHerbalism2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsHerbalism3_0="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"(<28><><EFBFBD>)
|
||||
m.EffectsHerbalism3_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsHerbalism4_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
m.EffectsHerbalism4_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m.EffectsHerbalism5_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsHerbalism5_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.HerbalismGreenTerraLength=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>": [[YELLOW]]{0}s
|
||||
m.HerbalismGreenThumbChance=[[RED]]<5D><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>": [[YELLOW]]{0}%
|
||||
m.HerbalismGreenThumbStage=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>": [[YELLOW]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {0}
|
||||
m.HerbalismDoubleDropChance=[[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: [[YELLOW]]{0}%
|
||||
m.HerbalismFoodPlus=[[RED]]<5D><><EFBFBD>+ (Rank{0}): [[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD> {0} <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.SkillExcavation=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.XPGainExcavation=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsExcavation1_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
m.EffectsExcavation1_1=3-<2D><> <20><><EFBFBD><EFBFBD>, 3-<2D><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsExcavation2_0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.EffectsExcavation2_1=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.ExcavationGreenTerraLength=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>": [[YELLOW]]{0}s
|
||||
mcBlockListener.PlacedAnvil=[[DARK_RED]]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
mcEntityListener.WolfComesBack=[[DARK_GRAY]]<5D><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
mcPlayerListener.AbilitiesOff=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.AbilitiesOn=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\!**
|
||||
mcPlayerListener.AcrobaticsSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.ArcherySkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.AxesSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.ExcavationSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.GreenThumb=[[GREEN]]**"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"**
|
||||
mcPlayerListener.GreenThumbFail=[[RED]]**"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
mcPlayerListener.HerbalismSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.MiningSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
mcPlayerListener.MyspawnNotExist=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]<5D><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
mcPlayerListener.MyspawnTimeNotice=<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {0}m {1}s <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.NoPermission=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
mcPlayerListener.NoSkillNote=[[DARK_GRAY]]<5D><><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
mcPlayerListener.NotInParty=[[RED]]<5D><> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
mcPlayerListener.InviteSuccess=[[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[GREEN]]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {0} <20><> {1}
|
||||
mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.InviteAccepted=[[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {0}
|
||||
mcPlayerListener.NoInvites=[[RED]]<5D> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.YouAreInParty=[[GREEN]]<5D><> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {0}
|
||||
mcPlayerListener.PartyMembers=[[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.LeftParty=[[RED]]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.JoinedParty=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: {0}
|
||||
mcPlayerListener.PartyChatOn=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.PartyChatOff=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.AdminChatOn=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> [[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.AdminChatOff=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> [[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.MOTD=[[BLUE]]<5D><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> McMMO {0} type [[YELLOW]]/{1}[[BLUE]] <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mcPlayerListener.PowerLevel=[[DARK_RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
|
||||
mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--
|
||||
mcPlayerListener.RepairSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.SwordsSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.TamingSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.UnarmedSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>:
|
||||
mcPlayerListener.WoodcuttingSkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mcPlayerListener.YourStats=[[GREEN]][mcMMO] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.InformedOnJoin={0} [[GREEN]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.InformedOnQuit={0} [[GREEN]] <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Skills.YourGreenTerra=[[GREEN]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[[YELLOW]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" [[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
Skills.YourTreeFeller=[[GREEN]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" [[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
Skills.YourSuperBreaker=[[GREEN]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" [[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
Skills.YourSerratedStrikes=[[GREEN]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" [[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
Skills.YourBerserk=[[GREEN]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" [[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
Skills.YourSkullSplitter=[[GREEN]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" [[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
Skills.YourGigaDrillBreaker=[[GREEN]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>" [[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
Skills.TooTired=[[RED]]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>.
|
||||
Skills.ReadyHoe=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.LowerHoe=[[GRAY]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.ReadyAxe=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.LowerAxe=[[GRAY]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.ReadyFists=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.LowerFists=[[GRAY]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.ReadyPickAxe=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.LowerPickAxe=[[GRAY]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.ReadyShovel=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.LowerShovel=[[GRAY]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.ReadySword=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>**
|
||||
Skills.LowerSword=[[GRAY]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>**
|
||||
Skills.BerserkOn=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"!
|
||||
Skills.GreenTerraOn=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"!
|
||||
Skills.TreeFellerOn=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"!
|
||||
Skills.SuperBreakerOn=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"!
|
||||
Skills.SerratedStrikesOn=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"!
|
||||
Skills.SkullSplitterOn=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"!
|
||||
Skills.GigaDrillBreakerOn=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"!
|
||||
Skills.GreenTerraOff=[[RED]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.TreeFellerOff=[[RED]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.SuperBreakerOff=[[RED]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.SerratedStrikesOff=[[RED]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.BerserkOff=[[RED]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.SkullSplitterOff=[[RED]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.GigaDrillBreakerOff=[[RED]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Skills.TamingUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.AcrobaticsUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.ArcheryUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.SwordsUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.AxesUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.UnarmedUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.HerbalismUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.MiningUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.WoodcuttingUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.RepairUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.ExcavationUp=[[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> {0}. <20><><EFBFBD><EFBFBD><EFBFBD> ({1})
|
||||
Skills.FeltEasy=[[GRAY]]<5D><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
Skills.StackedItems=[[DARK_RED]]<5D><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Skills.NeedMore=[[DARK_RED]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Skills.AdeptDiamond=[[DARK_RED]]<5D><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
Skills.FullDurability=[[GRAY]]<5D><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
Skills.Disarmed=[[DARK_RED]]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
mcPlayerListener.SorcerySkill=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
m.SkillSorcery=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Sorcery.HasCast=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"**[[GOLD]]
|
||||
Sorcery.Current_Mana=[[DARK_AQUA]] <20><><EFBFBD><EFBFBD>
|
||||
Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
|
||||
Sorcery.Cost=[[RED]][COST] {0} <20><><EFBFBD><EFBFBD>
|
||||
Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
|
||||
Sorcery.Water.Thunder=<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Sorcery.Curative.Self=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
Sorcery.Curative.Other=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m.LVL=[[DARK_GRAY]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Combat.BeastLore=[[GREEN]]**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ([[GREEN]]{0}[[DARK_AQUA]]/20)
|
||||
Combat.BeastLoreHealthWolf=[[DARK_AQUA]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ([[GREEN]]{0}[[DARK_AQUA]]/8)
|
||||
Party.Locked=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
Party.IsntLocked=[[GRAY]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.Unlocked=[[GRAY]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.Help1=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]/{0} [[WHITE]]<name>[[YELLOW]] <20><><EFBFBD> [[WHITE]]'q' [[YELLOW]]<5D><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.Help2=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]/{0} [[WHITE]]<<3C><><EFBFBD>> <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>
|
||||
Party.Help3=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /{0} ? <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.Help4=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]/{0} [[WHITE]]<<3C><><EFBFBD>> [[YELLOW]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> [[WHITE]]'q' [[YELLOW]]<5D><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.Help5=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]/{0} [[WHITE]]lock
|
||||
Party.Help6=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]/{0} [[WHITE]]unlock
|
||||
Party.Help7=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]/{0} [[WHITE]]password <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>
|
||||
Party.Help8=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]/{0} [[WHITE]]kick <<3C><><EFBFBD><EFBFBD><EFBFBD>>
|
||||
Party.Help9=[[RED]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[YELLOW]]/{0} [[WHITE]]owner <<3C><><EFBFBD><EFBFBD><EFBFBD>>
|
||||
Party.NotOwner=[[DARK_RED]]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.InvalidName=[[DARK_RED]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.PasswordSet=[[GREEN]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {0}
|
||||
Party.CouldNotKick=[[DARK_RED]]<5D><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {0}
|
||||
Party.NotInYourParty=[[DARK_RED]]{0} <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Party.CouldNotSetOwner=[[DARK_RED]]<5D><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {0}
|
||||
mcMMO.Description=[[DARK_AQUA]]Q: <20><><EFBFBD> <20><><EFBFBD>?,[[GOLD]]mcMMO <20><><EFBFBD> [[RED]]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>[[GOLD]] RPG <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Bukkit <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[BLUE]]nossr50,[[GOLD]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Minecraft <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.,[[GOLD]]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,[[GOLD]]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[GREEN]]/SKILLNAME[[GOLD]] ?,[[DARK_AQUA]]Q: <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?,[[GOLD]]<5D><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>... in [[DARK_AQUA]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[[GOLD]] <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]2-<2D><> <20><><EFBFBD><EFBFBD>[[GOLD]] <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[RED]]"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"[[GOLD]] ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[GOLD]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>,[[GOLD]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [[BLUE]]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,[[GOLD]]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>!
|
||||
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
|
91
src/main/java/com/gmail/nossr50/locale/mcLocale.java
Normal file
91
src/main/java/com/gmail/nossr50/locale/mcLocale.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
521
src/main/java/com/gmail/nossr50/m.java
Normal file
521
src/main/java/com/gmail/nossr50/m.java
Normal file
@ -0,0 +1,521 @@
|
||||
/*
|
||||
This file is part of mcMMO.
|
||||
|
||||
mcMMO is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
mcMMO is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileReader;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import com.gmail.nossr50.config.*;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.FakeBlockBreakEvent;
|
||||
import com.gmail.nossr50.datatypes.SkillType;
|
||||
|
||||
public class m
|
||||
{
|
||||
public static final Logger log = Logger.getLogger("Minecraft");
|
||||
/*
|
||||
* I'm storing my misc functions/methods in here in an unorganized manner. Spheal with it.
|
||||
* This is probably the most embarrassing part of my code for mcMMO
|
||||
* I really should find an organized place for these things!
|
||||
*/
|
||||
|
||||
public static String getCapitalized(String target)
|
||||
{
|
||||
String firstLetter = target.substring(0,1);
|
||||
String remainder = target.substring(1);
|
||||
String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
|
||||
|
||||
return capitalized;
|
||||
}
|
||||
public static int getInt(String string)
|
||||
{
|
||||
if(isInt(string))
|
||||
{
|
||||
return Integer.parseInt(string);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static Double getDouble(String string)
|
||||
{
|
||||
if(isDouble(string))
|
||||
{
|
||||
return Double.parseDouble(string);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (double) 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isDouble(String string)
|
||||
{
|
||||
try
|
||||
{
|
||||
Double.parseDouble(string);
|
||||
}
|
||||
catch(NumberFormatException nFE) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean shouldBeWatched(Block block)
|
||||
{
|
||||
int id = block.getTypeId();
|
||||
return id == 103 || id == 82 || id == 16 || id == 73 || id == 49 || id == 81 || id == 83 || id == 86 || id == 91 || id == 1 || id == 17 || id == 42 || id == 87 || id == 89 || id == 2 || id == 3 || id == 12 || id == 13 || id == 21 || id == 15 || id == 14 || id == 56 || id == 38 || id == 37 || id == 39 || id == 40 || id == 24;
|
||||
}
|
||||
|
||||
public static int getPowerLevel(Player player)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
int x = 0;
|
||||
if(mcPermissions.getInstance().taming(player))
|
||||
x+=PP.getSkillLevel(SkillType.TAMING);
|
||||
if(mcPermissions.getInstance().mining(player))
|
||||
x+=PP.getSkillLevel(SkillType.MINING);
|
||||
if(mcPermissions.getInstance().woodcutting(player))
|
||||
x+=PP.getSkillLevel(SkillType.WOODCUTTING);
|
||||
if(mcPermissions.getInstance().unarmed(player))
|
||||
x+=PP.getSkillLevel(SkillType.UNARMED);
|
||||
if(mcPermissions.getInstance().herbalism(player))
|
||||
x+=PP.getSkillLevel(SkillType.HERBALISM);
|
||||
if(mcPermissions.getInstance().excavation(player))
|
||||
x+=PP.getSkillLevel(SkillType.EXCAVATION);
|
||||
if(mcPermissions.getInstance().archery(player))
|
||||
x+=PP.getSkillLevel(SkillType.ARCHERY);
|
||||
if(mcPermissions.getInstance().swords(player))
|
||||
x+=PP.getSkillLevel(SkillType.SWORDS);
|
||||
if(mcPermissions.getInstance().axes(player))
|
||||
x+=PP.getSkillLevel(SkillType.AXES);
|
||||
if(mcPermissions.getInstance().acrobatics(player))
|
||||
x+=PP.getSkillLevel(SkillType.ACROBATICS);
|
||||
if(mcPermissions.getInstance().repair(player))
|
||||
x+=PP.getSkillLevel(SkillType.REPAIR);
|
||||
if(mcPermissions.getInstance().fishing(player))
|
||||
x+=PP.getSkillLevel(SkillType.FISHING);
|
||||
return x;
|
||||
}
|
||||
|
||||
public static boolean blockBreakSimulate(Block block, Player player)
|
||||
{
|
||||
FakeBlockBreakEvent event = new FakeBlockBreakEvent(block, player);
|
||||
if(block != null && player != null){
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
if(!event.isCancelled())
|
||||
{
|
||||
return true; //Return true if not cancelled
|
||||
} else {
|
||||
return false; //Return false if cancelled
|
||||
}
|
||||
} else {
|
||||
return false; //Return false if something went wrong
|
||||
}
|
||||
}
|
||||
|
||||
public static void damageTool(Player player, short damage)
|
||||
{
|
||||
if(player.getItemInHand().getTypeId() == 0)
|
||||
return;
|
||||
player.getItemInHand().setDurability((short) (player.getItemInHand().getDurability() + damage));
|
||||
if(player.getItemInHand().getDurability() >= getMaxDurability(getTier(player), player.getItemInHand()))
|
||||
{
|
||||
ItemStack[] inventory = player.getInventory().getContents();
|
||||
for(ItemStack x : inventory)
|
||||
{
|
||||
if(x != null && x.getTypeId() == player.getItemInHand().getTypeId() && x.getDurability() == player.getItemInHand().getDurability()){
|
||||
x.setTypeId(0);
|
||||
x.setAmount(0);
|
||||
player.getInventory().setContents(inventory);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public static Integer getTier(Player player)
|
||||
{
|
||||
int i = player.getItemInHand().getTypeId();
|
||||
if(i == 268 || i == 269 || i == 270 || i == 271 || i == 290){
|
||||
return 1; //WOOD
|
||||
} else if (i == 272 || i == 273 || i == 274 || i == 275 || i == 291){
|
||||
return 2; //STONE
|
||||
} else if (i == 256 || i == 257 || i == 258 || i == 267 || i == 292){
|
||||
return 3; //IRON
|
||||
} else if (i == 283 || i == 284 || i == 285 || i == 286 || i == 294){
|
||||
return 1; //GOLD
|
||||
} else if (i == 276 || i == 277 || i == 278 || i == 279 || i == 293){
|
||||
return 4; //DIAMOND
|
||||
} else {
|
||||
return 1; //UNRECOGNIZED
|
||||
}
|
||||
}
|
||||
public static Integer getMaxDurability(Integer tier, ItemStack item)
|
||||
{
|
||||
int id = item.getTypeId();
|
||||
if(tier == 1){
|
||||
if((id == 276 || id == 277 || id == 278 || id == 279 || id == 293)){
|
||||
return 33;
|
||||
} else {
|
||||
return 60;
|
||||
}
|
||||
} else if (tier == 2){
|
||||
return 132;
|
||||
} else if (tier == 3){
|
||||
return 251;
|
||||
} else if (tier == 4){
|
||||
return 1562;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static double getDistance(Location loca, Location locb)
|
||||
{
|
||||
return Math.sqrt(Math.pow(loca.getX() - locb.getX(), 2) + Math.pow(loca.getY() - locb.getY(), 2)
|
||||
+ Math.pow(loca.getZ() - locb.getZ(), 2));
|
||||
}
|
||||
|
||||
public static boolean abilityBlockCheck(Block block)
|
||||
{
|
||||
int i = block.getTypeId();
|
||||
if(i == 107 ||i == 117 || i == 116 || i == 96 || i == 68 || i == 355 || i == 26 || i == 323 || i == 25 || i == 54 || i == 69 || i == 92 || i == 77 || i == 58 || i == 61 || i == 62 || i == 42 || i == 71 || i == 64 || i == 84 || i == 324 || i == 330){
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isBlockAround(Location loc, Integer radius, Integer typeid)
|
||||
{
|
||||
Block blockx = loc.getBlock();
|
||||
int ox = blockx.getX();
|
||||
int oy = blockx.getY();
|
||||
int oz = blockx.getZ();
|
||||
for (int cx = -radius; cx <= radius; cx++) {
|
||||
for (int cy = -radius; cy <= radius; cy++) {
|
||||
for (int cz = -radius; cz <= radius; cz++) {
|
||||
Block block = loc.getWorld().getBlockAt(ox + cx, oy + cy, oz + cz);
|
||||
if (block.getTypeId() == typeid) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Integer calculateHealth(Integer health, Integer newvalue){
|
||||
if((health + newvalue) > 20){
|
||||
return 20;
|
||||
} else {
|
||||
return health+newvalue;
|
||||
}
|
||||
}
|
||||
public Integer calculateMinusHealth(Integer health, Integer newvalue){
|
||||
if((health - newvalue) < 1){
|
||||
return 0;
|
||||
} else {
|
||||
return health-newvalue;
|
||||
}
|
||||
}
|
||||
public static boolean isInt(String string)
|
||||
{
|
||||
try
|
||||
{
|
||||
Integer.parseInt(string);
|
||||
}
|
||||
catch(NumberFormatException nFE)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public static void mcDropItem(Location loc, int id)
|
||||
{
|
||||
if(loc != null)
|
||||
{
|
||||
Material mat = Material.getMaterial(id);
|
||||
byte damage = 0;
|
||||
ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
|
||||
loc.getWorld().dropItemNaturally(loc, item);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isSwords(ItemStack is)
|
||||
{
|
||||
return is.getTypeId() == 268 || is.getTypeId() == 267 || is.getTypeId() == 272 || is.getTypeId() == 283 || is.getTypeId() == 276;
|
||||
}
|
||||
|
||||
public static boolean isHoe(ItemStack is)
|
||||
{
|
||||
int id = is.getTypeId();
|
||||
return id == 290 || id == 291 || id == 292 || id == 293 || id == 294;
|
||||
}
|
||||
|
||||
public static boolean isShovel(ItemStack is){
|
||||
return is.getTypeId() == 269 || is.getTypeId() == 273 || is.getTypeId() == 277 || is.getTypeId() == 284 || is.getTypeId() == 256;
|
||||
}
|
||||
|
||||
public static boolean isAxes(ItemStack is){
|
||||
if(is.getTypeId() == 271 || is.getTypeId() == 258 || is.getTypeId() == 286 || is.getTypeId() == 279 || is.getTypeId() == 275){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static boolean isMiningPick(ItemStack is)
|
||||
{
|
||||
if(is.getTypeId() == 270 || is.getTypeId() == 274 || is.getTypeId() == 285 || is.getTypeId() == 257 || is.getTypeId() == 278)
|
||||
{
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public boolean isGold(ItemStack is)
|
||||
{
|
||||
int i = is.getTypeId();
|
||||
if(i == 283 || i == 284 || i == 285 || i == 286 || i == 294 || i == 314 || i == 315 || i == 316 || i == 317){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static void convertToMySQL()
|
||||
{
|
||||
if(!LoadProperties.useMySQL)
|
||||
return;
|
||||
|
||||
Bukkit.getScheduler().scheduleAsyncDelayedTask(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), new Runnable(){
|
||||
public void run() {
|
||||
String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users";
|
||||
try {
|
||||
//Open the user file
|
||||
FileReader file = new FileReader(location);
|
||||
BufferedReader in = new BufferedReader(file);
|
||||
String line = "";
|
||||
String playerName = null, mining = null, party = null, miningXP = null, woodcutting = null, woodCuttingXP = null, repair = null, unarmed = null, herbalism = null, excavation = null, archery = null, swords = null, axes = null, acrobatics = null, repairXP = null, unarmedXP = null, herbalismXP = null, excavationXP = null, archeryXP = null, swordsXP = null, axesXP = null, acrobaticsXP = null, taming = null, tamingXP = null, fishing = null, fishingXP = null;
|
||||
int id = 0, theCount = 0;
|
||||
while ((line = in.readLine()) != null) {
|
||||
//Find if the line contains the player we want.
|
||||
String[] character = line.split(":");
|
||||
playerName = character[0];
|
||||
//Check for things we don't want put in the DB
|
||||
if (playerName == null
|
||||
|| playerName.equals("null")
|
||||
|| playerName
|
||||
.equals("#Storage place for user information"))
|
||||
continue;
|
||||
|
||||
//Get Mining
|
||||
if (character.length > 1)
|
||||
mining = character[1];
|
||||
//Party
|
||||
if (character.length > 3)
|
||||
party = character[3];
|
||||
//Mining XP
|
||||
if (character.length > 4)
|
||||
miningXP = character[4];
|
||||
if (character.length > 5)
|
||||
woodcutting = character[5];
|
||||
if (character.length > 6)
|
||||
woodCuttingXP = character[6];
|
||||
if (character.length > 7)
|
||||
repair = character[7];
|
||||
if (character.length > 8)
|
||||
unarmed = character[8];
|
||||
if (character.length > 9)
|
||||
herbalism = character[9];
|
||||
if (character.length > 10)
|
||||
excavation = character[10];
|
||||
if (character.length > 11)
|
||||
archery = character[11];
|
||||
if (character.length > 12)
|
||||
swords = character[12];
|
||||
if (character.length > 13)
|
||||
axes = character[13];
|
||||
if (character.length > 14)
|
||||
acrobatics = character[14];
|
||||
if (character.length > 15)
|
||||
repairXP = character[15];
|
||||
if (character.length > 16)
|
||||
unarmedXP = character[16];
|
||||
if (character.length > 17)
|
||||
herbalismXP = character[17];
|
||||
if (character.length > 18)
|
||||
excavationXP = character[18];
|
||||
if (character.length > 19)
|
||||
archeryXP = character[19];
|
||||
if (character.length > 20)
|
||||
swordsXP = character[20];
|
||||
if (character.length > 21)
|
||||
axesXP = character[21];
|
||||
if (character.length > 22)
|
||||
acrobaticsXP = character[22];
|
||||
if (character.length > 24)
|
||||
taming = character[24];
|
||||
if (character.length > 25)
|
||||
tamingXP = character[25];
|
||||
if (character.length > 34)
|
||||
fishing = character[34];
|
||||
if (character.length > 35)
|
||||
fishingXP = character[35];
|
||||
|
||||
//Check to see if the user is in the DB
|
||||
id = mcMMO.database.GetInt("SELECT id FROM "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "users WHERE user = '" + playerName + "'");
|
||||
|
||||
if (id > 0) {
|
||||
theCount++;
|
||||
//Update the skill values
|
||||
mcMMO.database.Write("UPDATE "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "users SET lastlogin = " + 0
|
||||
+ " WHERE id = " + id);
|
||||
//if(getDouble(x) > 0 && getDouble(y) > 0 && getDouble(z) > 0)
|
||||
//mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + myspawnworld + "', x = " +getDouble(x)+", y = "+getDouble(y)+", z = "+getDouble(z)+" WHERE user_id = "+id);
|
||||
mcMMO.database.Write("UPDATE "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "skills SET " + " taming = taming+"
|
||||
+ getInt(taming) + ", mining = mining+"
|
||||
+ getInt(mining) + ", repair = repair+"
|
||||
+ getInt(repair)
|
||||
+ ", woodcutting = woodcutting+"
|
||||
+ getInt(woodcutting)
|
||||
+ ", unarmed = unarmed+" + getInt(unarmed)
|
||||
+ ", herbalism = herbalism+"
|
||||
+ getInt(herbalism)
|
||||
+ ", excavation = excavation+"
|
||||
+ getInt(excavation)
|
||||
+ ", archery = archery+" + getInt(archery)
|
||||
+ ", swords = swords+" + getInt(swords)
|
||||
+ ", axes = axes+" + getInt(axes)
|
||||
+ ", acrobatics = acrobatics+"
|
||||
+ getInt(acrobatics)
|
||||
+ ", fishing = fishing+" + getInt(fishing)
|
||||
+ " WHERE user_id = " + id);
|
||||
mcMMO.database.Write("UPDATE "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "experience SET " + " taming = "
|
||||
+ getInt(tamingXP) + ", mining = "
|
||||
+ getInt(miningXP) + ", repair = "
|
||||
+ getInt(repairXP) + ", woodcutting = "
|
||||
+ getInt(woodCuttingXP) + ", unarmed = "
|
||||
+ getInt(unarmedXP) + ", herbalism = "
|
||||
+ getInt(herbalismXP) + ", excavation = "
|
||||
+ getInt(excavationXP) + ", archery = "
|
||||
+ getInt(archeryXP) + ", swords = "
|
||||
+ getInt(swordsXP) + ", axes = "
|
||||
+ getInt(axesXP) + ", acrobatics = "
|
||||
+ getInt(acrobaticsXP) + ", fishing = "
|
||||
+ getInt(fishingXP) + " WHERE user_id = "
|
||||
+ id);
|
||||
} else {
|
||||
theCount++;
|
||||
//Create the user in the DB
|
||||
mcMMO.database.Write("INSERT INTO "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "users (user, lastlogin) VALUES ('"
|
||||
+ playerName + "',"
|
||||
+ System.currentTimeMillis() / 1000 + ")");
|
||||
id = mcMMO.database
|
||||
.GetInt("SELECT id FROM "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "users WHERE user = '"
|
||||
+ playerName + "'");
|
||||
mcMMO.database.Write("INSERT INTO "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "spawn (user_id) VALUES (" + id + ")");
|
||||
mcMMO.database.Write("INSERT INTO "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "skills (user_id) VALUES (" + id + ")");
|
||||
mcMMO.database.Write("INSERT INTO "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "experience (user_id) VALUES (" + id
|
||||
+ ")");
|
||||
//Update the skill values
|
||||
mcMMO.database.Write("UPDATE "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "users SET lastlogin = " + 0
|
||||
+ " WHERE id = " + id);
|
||||
mcMMO.database.Write("UPDATE "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "users SET party = '" + party
|
||||
+ "' WHERE id = " + id);
|
||||
/*
|
||||
if(getDouble(x) > 0 && getDouble(y) > 0 && getDouble(z) > 0)
|
||||
mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + myspawnworld + "', x = " +getDouble(x)+", y = "+getDouble(y)+", z = "+getDouble(z)+" WHERE user_id = "+id);
|
||||
*/
|
||||
mcMMO.database.Write("UPDATE "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "skills SET " + " taming = "
|
||||
+ getInt(taming) + ", mining = "
|
||||
+ getInt(mining) + ", repair = "
|
||||
+ getInt(repair) + ", woodcutting = "
|
||||
+ getInt(woodcutting) + ", unarmed = "
|
||||
+ getInt(unarmed) + ", herbalism = "
|
||||
+ getInt(herbalism) + ", excavation = "
|
||||
+ getInt(excavation) + ", archery = "
|
||||
+ getInt(archery) + ", swords = "
|
||||
+ getInt(swords) + ", axes = "
|
||||
+ getInt(axes) + ", acrobatics = "
|
||||
+ getInt(acrobatics) + ", fishing = "
|
||||
+ getInt(fishing) + " WHERE user_id = "
|
||||
+ id);
|
||||
mcMMO.database.Write("UPDATE "
|
||||
+ LoadProperties.MySQLtablePrefix
|
||||
+ "experience SET " + " taming = "
|
||||
+ getInt(tamingXP) + ", mining = "
|
||||
+ getInt(miningXP) + ", repair = "
|
||||
+ getInt(repairXP) + ", woodcutting = "
|
||||
+ getInt(woodCuttingXP) + ", unarmed = "
|
||||
+ getInt(unarmedXP) + ", herbalism = "
|
||||
+ getInt(herbalismXP) + ", excavation = "
|
||||
+ getInt(excavationXP) + ", archery = "
|
||||
+ getInt(archeryXP) + ", swords = "
|
||||
+ getInt(swordsXP) + ", axes = "
|
||||
+ getInt(axesXP) + ", acrobatics = "
|
||||
+ getInt(acrobaticsXP) + ", fishing = "
|
||||
+ getInt(fishingXP) + " WHERE user_id = "
|
||||
+ id);
|
||||
}
|
||||
}
|
||||
System.out
|
||||
.println("[mcMMO] MySQL Updated from users file, "
|
||||
+ theCount
|
||||
+ " items added/updated to MySQL DB");
|
||||
in.close();
|
||||
} catch (Exception e) {
|
||||
log.log(Level.SEVERE, "Exception while reading " + location
|
||||
+ " (Are you sure you formatted it correctly?)", e);
|
||||
}
|
||||
}
|
||||
}, 1);
|
||||
}
|
||||
}
|
418
src/main/java/com/gmail/nossr50/mcMMO.java
Normal file
418
src/main/java/com/gmail/nossr50/mcMMO.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
352
src/main/java/com/gmail/nossr50/mcPermissions.java
Normal file
352
src/main/java/com/gmail/nossr50/mcPermissions.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
||||
}
|
481
src/main/java/com/gmail/nossr50/party/Party.java
Normal file
481
src/main/java/com/gmail/nossr50/party/Party.java
Normal file
@ -0,0 +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(); }
|
||||
}
|
||||
}
|
80
src/main/java/com/gmail/nossr50/runnables/mcTimer.java
Normal file
80
src/main/java/com/gmail/nossr50/runnables/mcTimer.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
||||
}
|
105
src/main/java/com/gmail/nossr50/skills/Acrobatics.java
Normal file
105
src/main/java/com/gmail/nossr50/skills/Acrobatics.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
5
src/main/java/com/gmail/nossr50/skills/Alchemy.java
Normal file
5
src/main/java/com/gmail/nossr50/skills/Alchemy.java
Normal file
@ -0,0 +1,5 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
public class Alchemy {
|
||||
|
||||
}
|
119
src/main/java/com/gmail/nossr50/skills/Archery.java
Normal file
119
src/main/java/com/gmail/nossr50/skills/Archery.java
Normal file
@ -0,0 +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$
|
||||
}
|
||||
}
|
||||
}
|
172
src/main/java/com/gmail/nossr50/skills/Axes.java
Normal file
172
src/main/java/com/gmail/nossr50/skills/Axes.java
Normal file
@ -0,0 +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--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
5
src/main/java/com/gmail/nossr50/skills/Enchanting.java
Normal file
5
src/main/java/com/gmail/nossr50/skills/Enchanting.java
Normal file
@ -0,0 +1,5 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
public class Enchanting {
|
||||
|
||||
}
|
279
src/main/java/com/gmail/nossr50/skills/Excavation.java
Normal file
279
src/main/java/com/gmail/nossr50/skills/Excavation.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
800
src/main/java/com/gmail/nossr50/skills/Fishing.java
Normal file
800
src/main/java/com/gmail/nossr50/skills/Fishing.java
Normal file
@ -0,0 +1,800 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.craftbukkit.entity.CraftItem;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Chicken;
|
||||
import org.bukkit.entity.Cow;
|
||||
import org.bukkit.entity.Creeper;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Pig;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Sheep;
|
||||
import org.bukkit.entity.Skeleton;
|
||||
import org.bukkit.entity.Spider;
|
||||
import org.bukkit.event.player.PlayerFishEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.material.Wool;
|
||||
|
||||
import com.gmail.nossr50.Users;
|
||||
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 Fishing {
|
||||
|
||||
//Return the fishing tier for the player
|
||||
public static int getFishingLootTier(PlayerProfile PP)
|
||||
{
|
||||
int lvl = PP.getSkillLevel(SkillType.FISHING);
|
||||
|
||||
if(lvl < 100)
|
||||
{
|
||||
return 1;
|
||||
} else if (lvl >= 100 && lvl < 300)
|
||||
{
|
||||
return 2;
|
||||
} else if (lvl >= 300 && lvl < 600)
|
||||
{
|
||||
return 3;
|
||||
} else if (lvl >= 600 && lvl < 900)
|
||||
{
|
||||
return 4;
|
||||
} else
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
|
||||
public static short getItemMaxDurability(Material mat)
|
||||
{
|
||||
switch(mat)
|
||||
{
|
||||
case LEATHER_BOOTS:
|
||||
return (short) 40;
|
||||
case LEATHER_LEGGINGS:
|
||||
return (short) 46;
|
||||
case LEATHER_HELMET:
|
||||
return (short) 34;
|
||||
case LEATHER_CHESTPLATE:
|
||||
return (short) 49;
|
||||
case CHAINMAIL_BOOTS:
|
||||
return (short) 79;
|
||||
case CHAINMAIL_LEGGINGS:
|
||||
return (short) 92;
|
||||
case CHAINMAIL_HELMET:
|
||||
return (short) 67;
|
||||
case CHAINMAIL_CHESTPLATE:
|
||||
return (short) 96;
|
||||
case GOLD_BOOTS:
|
||||
return (short) 80;
|
||||
case GOLD_LEGGINGS:
|
||||
return (short) 92;
|
||||
case GOLD_HELMET:
|
||||
return (short) 68;
|
||||
case GOLD_CHESTPLATE:
|
||||
return (short) 96;
|
||||
case IRON_BOOTS:
|
||||
return (short) 160;
|
||||
case IRON_LEGGINGS:
|
||||
return (short) 184;
|
||||
case IRON_HELMET:
|
||||
return (short) 136;
|
||||
case IRON_CHESTPLATE:
|
||||
return (short) 192;
|
||||
case DIAMOND_BOOTS:
|
||||
return (short) 320;
|
||||
case DIAMOND_LEGGINGS:
|
||||
return (short) 368;
|
||||
case DIAMOND_HELMET:
|
||||
return (short) 272;
|
||||
case DIAMOND_CHESTPLATE:
|
||||
return (short) 384;
|
||||
case GOLD_AXE:
|
||||
return (short) 33;
|
||||
case GOLD_SWORD:
|
||||
return (short) 33;
|
||||
case GOLD_HOE:
|
||||
return (short) 33;
|
||||
case GOLD_SPADE:
|
||||
return (short) 33;
|
||||
case GOLD_PICKAXE:
|
||||
return (short) 33;
|
||||
case WOOD_AXE:
|
||||
return (short) 60;
|
||||
case WOOD_SWORD:
|
||||
return (short) 60;
|
||||
case WOOD_HOE:
|
||||
return (short) 60;
|
||||
case WOOD_SPADE:
|
||||
return (short) 60;
|
||||
case WOOD_PICKAXE:
|
||||
return (short) 60;
|
||||
case STONE_AXE:
|
||||
return (short) 132;
|
||||
case STONE_SWORD:
|
||||
return (short) 132;
|
||||
case STONE_HOE:
|
||||
return (short) 132;
|
||||
case STONE_SPADE:
|
||||
return (short) 132;
|
||||
case STONE_PICKAXE:
|
||||
return (short) 132;
|
||||
case IRON_AXE:
|
||||
return (short) 251;
|
||||
case IRON_SWORD:
|
||||
return (short) 251;
|
||||
case IRON_HOE:
|
||||
return (short) 251;
|
||||
case IRON_SPADE:
|
||||
return (short) 251;
|
||||
case IRON_PICKAXE:
|
||||
return (short) 251;
|
||||
case DIAMOND_AXE:
|
||||
return (short) 1562;
|
||||
case DIAMOND_SWORD:
|
||||
return (short) 1562;
|
||||
case DIAMOND_HOE:
|
||||
return (short) 1562;
|
||||
case DIAMOND_SPADE:
|
||||
return (short) 1562;
|
||||
case DIAMOND_PICKAXE:
|
||||
return (short) 1562;
|
||||
default:
|
||||
return (short) 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static void getFishingResults(Player player, PlayerFishEvent event)
|
||||
{
|
||||
switch(getFishingLootTier(Users.getProfile(player)))
|
||||
{
|
||||
case 1:
|
||||
getFishingResultsTier1(player, event);
|
||||
break;
|
||||
case 2:
|
||||
getFishingResultsTier2(player, event);
|
||||
break;
|
||||
case 3:
|
||||
getFishingResultsTier3(player, event);
|
||||
break;
|
||||
case 4:
|
||||
getFishingResultsTier4(player, event);
|
||||
break;
|
||||
case 5:
|
||||
getFishingResultsTier5(player, event);
|
||||
break;
|
||||
}
|
||||
player.getWorld().dropItem(player.getLocation(), new ItemStack(Material.RAW_FISH, 1));
|
||||
Users.getProfile(player).addXP(SkillType.FISHING, LoadProperties.mfishing, player);
|
||||
Skills.XpCheckSkill(SkillType.FISHING, player);
|
||||
}
|
||||
|
||||
private static void getFishingResultsTier1(Player player, PlayerFishEvent event)
|
||||
{
|
||||
int randomNum = (int)(Math.random() * 14);
|
||||
CraftItem theCatch = (CraftItem)event.getCaught();
|
||||
|
||||
if(Math.random() * 100 < 20)
|
||||
{
|
||||
switch(randomNum)
|
||||
{
|
||||
case 1:
|
||||
theCatch.setItemStack(new ItemStack(Material.LEATHER_BOOTS, 1));
|
||||
break;
|
||||
case 2:
|
||||
theCatch.setItemStack(new ItemStack(Material.LEATHER_HELMET, 1));
|
||||
break;
|
||||
case 3:
|
||||
theCatch.setItemStack(new ItemStack(Material.LEATHER_LEGGINGS, 1));
|
||||
break;
|
||||
case 4:
|
||||
theCatch.setItemStack(new ItemStack(Material.LEATHER_CHESTPLATE, 1));
|
||||
break;
|
||||
case 5:
|
||||
theCatch.setItemStack(new ItemStack(Material.WOOD_AXE, 1));
|
||||
break;
|
||||
case 6:
|
||||
theCatch.setItemStack(new ItemStack(Material.WOOD_PICKAXE, 1));
|
||||
break;
|
||||
case 7:
|
||||
theCatch.setItemStack(new ItemStack(Material.WOOD_SWORD, 1));
|
||||
break;
|
||||
case 8:
|
||||
theCatch.setItemStack(new ItemStack(Material.WOOD_HOE, 1));
|
||||
break;
|
||||
case 9:
|
||||
theCatch.setItemStack(new ItemStack(Material.WOOD_SPADE, 1));
|
||||
break;
|
||||
case 10:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_AXE, 1));
|
||||
break;
|
||||
case 11:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_PICKAXE, 1));
|
||||
break;
|
||||
case 12:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_SWORD, 1));
|
||||
break;
|
||||
case 13:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_HOE, 1));
|
||||
break;
|
||||
case 14:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_SPADE, 1));
|
||||
break;
|
||||
}
|
||||
} else
|
||||
{
|
||||
theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
|
||||
}
|
||||
//Change durability to random value
|
||||
theCatch.getItemStack().setDurability((short) (Math.random() * Fishing.getItemMaxDurability(theCatch.getItemStack().getType()))); //Change the damage value
|
||||
|
||||
}
|
||||
|
||||
private static void getFishingResultsTier2(Player player, PlayerFishEvent event)
|
||||
{
|
||||
int randomNum = (int)(Math.random() * 19);
|
||||
CraftItem theCatch = (CraftItem)event.getCaught();
|
||||
|
||||
if(Math.random() * 100 < 25)
|
||||
{
|
||||
switch(randomNum)
|
||||
{
|
||||
case 1:
|
||||
theCatch.setItemStack(new ItemStack(Material.LEATHER_BOOTS, 1));
|
||||
break;
|
||||
case 2:
|
||||
theCatch.setItemStack(new ItemStack(Material.LEATHER_HELMET, 1));
|
||||
break;
|
||||
case 3:
|
||||
theCatch.setItemStack(new ItemStack(Material.LEATHER_LEGGINGS, 1));
|
||||
break;
|
||||
case 4:
|
||||
theCatch.setItemStack(new ItemStack(Material.LEATHER_CHESTPLATE, 1));
|
||||
break;
|
||||
case 5:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_AXE, 1));
|
||||
break;
|
||||
case 6:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_PICKAXE, 1));
|
||||
break;
|
||||
case 7:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_SWORD, 1));
|
||||
break;
|
||||
case 8:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_HOE, 1));
|
||||
break;
|
||||
case 9:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_SPADE, 1));
|
||||
break;
|
||||
case 10:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_AXE, 1));
|
||||
break;
|
||||
case 11:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_PICKAXE, 1));
|
||||
break;
|
||||
case 12:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_SWORD, 1));
|
||||
break;
|
||||
case 13:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_HOE, 1));
|
||||
break;
|
||||
case 14:
|
||||
theCatch.setItemStack(new ItemStack(Material.STONE_SPADE, 1));
|
||||
break;
|
||||
case 15:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_BOOTS, 1));
|
||||
break;
|
||||
case 16:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_LEGGINGS, 1));
|
||||
break;
|
||||
case 17:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_CHESTPLATE, 1));
|
||||
break;
|
||||
case 18:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_HELMET, 1));
|
||||
break;
|
||||
case 19:
|
||||
theCatch.setItemStack(new ItemStack(Material.ENDER_PEARL, 1));
|
||||
break;
|
||||
}
|
||||
} else
|
||||
{
|
||||
theCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
|
||||
}
|
||||
|
||||
//Change durability to random value
|
||||
theCatch.getItemStack().setDurability((short) (Math.random() * Fishing.getItemMaxDurability(theCatch.getItemStack().getType())));
|
||||
}
|
||||
|
||||
private static void getFishingResultsTier3(Player player, PlayerFishEvent event)
|
||||
{
|
||||
int randomNum = (int)(Math.random() * 23);
|
||||
CraftItem theCatch = (CraftItem)event.getCaught();
|
||||
|
||||
if(Math.random() * 100 < 30)
|
||||
{
|
||||
switch(randomNum)
|
||||
{
|
||||
case 1:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_BOOTS, 1));
|
||||
break;
|
||||
case 2:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_HELMET, 1));
|
||||
break;
|
||||
case 3:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_LEGGINGS, 1));
|
||||
break;
|
||||
case 4:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_CHESTPLATE, 1));
|
||||
break;
|
||||
case 5:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_AXE, 1));
|
||||
break;
|
||||
case 6:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_PICKAXE, 1));
|
||||
break;
|
||||
case 7:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_SWORD, 1));
|
||||
break;
|
||||
case 8:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_HOE, 1));
|
||||
break;
|
||||
case 9:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_SPADE, 1));
|
||||
break;
|
||||
case 10:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_AXE, 1));
|
||||
break;
|
||||
case 11:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_PICKAXE, 1));
|
||||
break;
|
||||
case 12:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_SWORD, 1));
|
||||
break;
|
||||
case 13:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_HOE, 1));
|
||||
break;
|
||||
case 14:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_SPADE, 1));
|
||||
break;
|
||||
case 15:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_BOOTS, 1));
|
||||
break;
|
||||
case 16:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_LEGGINGS, 1));
|
||||
break;
|
||||
case 17:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_CHESTPLATE, 1));
|
||||
break;
|
||||
case 18:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_HELMET, 1));
|
||||
break;
|
||||
case 19:
|
||||
theCatch.setItemStack(new ItemStack(Material.ENDER_PEARL, 1));
|
||||
break;
|
||||
case 20:
|
||||
theCatch.setItemStack(new ItemStack(Material.BLAZE_ROD, 1));
|
||||
break;
|
||||
case 21:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_3, 1));
|
||||
break;
|
||||
case 22:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_4, 1));
|
||||
break;
|
||||
case 23:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_5, 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
theCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
|
||||
}
|
||||
//Change durability to random value
|
||||
theCatch.getItemStack().setDurability((short) (Math.random() * Fishing.getItemMaxDurability(theCatch.getItemStack().getType())));
|
||||
}
|
||||
|
||||
private static void getFishingResultsTier4(Player player, PlayerFishEvent event)
|
||||
{
|
||||
int randomNum = (int)(Math.random() * 40);
|
||||
CraftItem theCatch = (CraftItem)event.getCaught();
|
||||
|
||||
if(Math.random() * 100 < 35)
|
||||
{
|
||||
switch(randomNum)
|
||||
{
|
||||
case 1:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_BOOTS, 1));
|
||||
break;
|
||||
case 2:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_HELMET, 1));
|
||||
break;
|
||||
case 3:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_LEGGINGS, 1));
|
||||
break;
|
||||
case 4:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_CHESTPLATE, 1));
|
||||
break;
|
||||
case 5:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_AXE, 1));
|
||||
break;
|
||||
case 6:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_PICKAXE, 1));
|
||||
break;
|
||||
case 7:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_SWORD, 1));
|
||||
break;
|
||||
case 8:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_HOE, 1));
|
||||
break;
|
||||
case 9:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_SPADE, 1));
|
||||
break;
|
||||
case 10:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_AXE, 1));
|
||||
break;
|
||||
case 11:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_PICKAXE, 1));
|
||||
break;
|
||||
case 12:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_SWORD, 1));
|
||||
break;
|
||||
case 13:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_HOE, 1));
|
||||
break;
|
||||
case 14:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_SPADE, 1));
|
||||
break;
|
||||
case 15:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_BOOTS, 1));
|
||||
break;
|
||||
case 16:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_LEGGINGS, 1));
|
||||
break;
|
||||
case 17:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_CHESTPLATE, 1));
|
||||
break;
|
||||
case 18:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_HELMET, 1));
|
||||
break;
|
||||
case 19:
|
||||
theCatch.setItemStack(new ItemStack(Material.ENDER_PEARL, 1));
|
||||
break;
|
||||
case 20:
|
||||
theCatch.setItemStack(new ItemStack(Material.BLAZE_ROD, 1));
|
||||
break;
|
||||
case 21:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_3, 1));
|
||||
break;
|
||||
case 22:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_4, 1));
|
||||
break;
|
||||
case 23:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_5, 1));
|
||||
break;
|
||||
case 24:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_BOOTS, 1));
|
||||
break;
|
||||
case 25:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_HELMET, 1));
|
||||
break;
|
||||
case 26:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_LEGGINGS, 1));
|
||||
break;
|
||||
case 27:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_CHESTPLATE, 1));
|
||||
break;
|
||||
case 28:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_AXE, 1));
|
||||
break;
|
||||
case 29:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_PICKAXE, 1));
|
||||
break;
|
||||
case 30:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_SWORD, 1));
|
||||
break;
|
||||
case 31:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_HOE, 1));
|
||||
break;
|
||||
case 32:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_SPADE, 1));
|
||||
break;
|
||||
case 33:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_6, 1));
|
||||
break;
|
||||
case 34:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_7, 1));
|
||||
break;
|
||||
case 35:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_8, 1));
|
||||
break;
|
||||
case 36:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_9, 1));
|
||||
break;
|
||||
case 37:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_10, 1));
|
||||
break;
|
||||
case 38:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_11, 1));
|
||||
break;
|
||||
case 39:
|
||||
theCatch.setItemStack(new ItemStack(Material.REDSTONE_WIRE, 64));
|
||||
break;
|
||||
case 40:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND, (int)(Math.random() * 10)));
|
||||
break;
|
||||
}
|
||||
} else
|
||||
{
|
||||
theCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
|
||||
}
|
||||
//Change durability to random value
|
||||
theCatch.getItemStack().setDurability((short) (Math.random() * Fishing.getItemMaxDurability(theCatch.getItemStack().getType())));
|
||||
}
|
||||
|
||||
private static void getFishingResultsTier5(Player player, PlayerFishEvent event)
|
||||
{
|
||||
int randomNum = (int)(Math.random() * 49);
|
||||
CraftItem theCatch = (CraftItem)event.getCaught();
|
||||
|
||||
if(Math.random() * 100 < 40)
|
||||
{
|
||||
switch(randomNum)
|
||||
{
|
||||
case 1:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_BOOTS, 1));
|
||||
break;
|
||||
case 2:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_HELMET, 1));
|
||||
break;
|
||||
case 3:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_LEGGINGS, 1));
|
||||
break;
|
||||
case 4:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_CHESTPLATE, 1));
|
||||
break;
|
||||
case 5:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_AXE, 1));
|
||||
break;
|
||||
case 6:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_PICKAXE, 1));
|
||||
break;
|
||||
case 7:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_SWORD, 1));
|
||||
break;
|
||||
case 8:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_HOE, 1));
|
||||
break;
|
||||
case 9:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_SPADE, 1));
|
||||
break;
|
||||
case 10:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_AXE, 1));
|
||||
break;
|
||||
case 11:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_PICKAXE, 1));
|
||||
break;
|
||||
case 12:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_SWORD, 1));
|
||||
break;
|
||||
case 13:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_HOE, 1));
|
||||
break;
|
||||
case 14:
|
||||
theCatch.setItemStack(new ItemStack(Material.GOLD_SPADE, 1));
|
||||
break;
|
||||
case 15:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_BOOTS, 1));
|
||||
break;
|
||||
case 16:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_LEGGINGS, 1));
|
||||
break;
|
||||
case 17:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_CHESTPLATE, 1));
|
||||
break;
|
||||
case 18:
|
||||
theCatch.setItemStack(new ItemStack(Material.IRON_HELMET, 1));
|
||||
break;
|
||||
case 19:
|
||||
theCatch.setItemStack(new ItemStack(Material.ENDER_PEARL, 1));
|
||||
break;
|
||||
case 20:
|
||||
theCatch.setItemStack(new ItemStack(Material.BLAZE_ROD, 1));
|
||||
break;
|
||||
case 21:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_3, 1));
|
||||
break;
|
||||
case 22:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_4, 1));
|
||||
break;
|
||||
case 23:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_5, 1));
|
||||
break;
|
||||
case 24:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_BOOTS, 1));
|
||||
break;
|
||||
case 25:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_HELMET, 1));
|
||||
break;
|
||||
case 26:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_LEGGINGS, 1));
|
||||
break;
|
||||
case 27:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_CHESTPLATE, 1));
|
||||
break;
|
||||
case 28:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_AXE, 1));
|
||||
break;
|
||||
case 29:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_PICKAXE, 1));
|
||||
break;
|
||||
case 30:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_SWORD, 1));
|
||||
break;
|
||||
case 31:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_HOE, 1));
|
||||
break;
|
||||
case 32:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_SPADE, 1));
|
||||
break;
|
||||
case 33:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_6, 1));
|
||||
break;
|
||||
case 34:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_7, 1));
|
||||
break;
|
||||
case 35:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_8, 1));
|
||||
break;
|
||||
case 36:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_9, 1));
|
||||
break;
|
||||
case 37:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_10, 1));
|
||||
break;
|
||||
case 38:
|
||||
theCatch.setItemStack(new ItemStack(Material.RECORD_11, 1));
|
||||
break;
|
||||
case 39:
|
||||
theCatch.setItemStack(new ItemStack(Material.REDSTONE_WIRE, 64));
|
||||
break;
|
||||
case 40:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND, (int)(Math.random() * 20)));
|
||||
break;
|
||||
case 41:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_BOOTS, 1));
|
||||
break;
|
||||
case 42:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_HELMET, 1));
|
||||
break;
|
||||
case 43:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_LEGGINGS, 1));
|
||||
break;
|
||||
case 44:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_CHESTPLATE, 1));
|
||||
break;
|
||||
case 45:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_AXE, 1));
|
||||
break;
|
||||
case 46:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_PICKAXE, 1));
|
||||
break;
|
||||
case 47:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_SWORD, 1));
|
||||
break;
|
||||
case 48:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_HOE, 1));
|
||||
break;
|
||||
case 49:
|
||||
theCatch.setItemStack(new ItemStack(Material.DIAMOND_SPADE, 1));
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
theCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
|
||||
}
|
||||
//Change durability to random value
|
||||
theCatch.getItemStack().setDurability((short) (Math.random() * Fishing.getItemMaxDurability(theCatch.getItemStack().getType())));
|
||||
}
|
||||
public static void processResults(PlayerFishEvent event)
|
||||
{
|
||||
Player player = event.getPlayer();
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
|
||||
Fishing.getFishingResults(player, event);
|
||||
CraftItem theCatch = (CraftItem)event.getCaught();
|
||||
|
||||
if(theCatch.getItemStack().getType() != Material.RAW_FISH)
|
||||
{
|
||||
//Inform the player they retrieved a treasure...
|
||||
player.sendMessage(mcLocale.getString("Fishing.ItemFound"));
|
||||
|
||||
//Keep track of whether or not the treasure is enchanted
|
||||
boolean enchanted = false;
|
||||
|
||||
ItemStack fishingResults = theCatch.getItemStack();
|
||||
if(Repair.isArmor(fishingResults) || Repair.isTools(fishingResults))
|
||||
{
|
||||
//Fishing up items will have a 10% chance to enter them into random enchantment lottery
|
||||
if(Math.random() * 100 < 10)
|
||||
{
|
||||
for(Enchantment x : Enchantment.values())
|
||||
{
|
||||
if(x.canEnchantItem(fishingResults))
|
||||
{
|
||||
//Actual chance to have an enchantment is related to your fishing skill
|
||||
if(Math.random() * 15 < Fishing.getFishingLootTier(PP))
|
||||
{
|
||||
enchanted = true;
|
||||
int randomEnchantLevel = (int) Math.random() * x.getMaxLevel();
|
||||
|
||||
if(randomEnchantLevel == 0)
|
||||
randomEnchantLevel = 1;
|
||||
if(randomEnchantLevel > x.getMaxLevel())
|
||||
randomEnchantLevel = x.getMaxLevel();
|
||||
|
||||
fishingResults.addEnchantment(x, randomEnchantLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Inform the player of magical properties
|
||||
if(enchanted)
|
||||
{
|
||||
player.sendMessage(mcLocale.getString("Fishing.MagicFound"));
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void shakeMob(PlayerFishEvent event)
|
||||
{
|
||||
LivingEntity le = (LivingEntity)event.getCaught();
|
||||
if(le instanceof Player)
|
||||
return;
|
||||
le.damage(1);
|
||||
World world = le.getWorld();
|
||||
|
||||
if(le instanceof Sheep)
|
||||
{
|
||||
Sheep sheep = (Sheep)le;
|
||||
if(!sheep.isSheared())
|
||||
{
|
||||
Wool wool = new Wool();
|
||||
wool.setColor(sheep.getColor());
|
||||
ItemStack theWool = wool.toItemStack();
|
||||
theWool.setAmount((int)(Math.random() * 6));
|
||||
world.dropItemNaturally(le.getLocation(), theWool);
|
||||
sheep.setSheared(true);
|
||||
}
|
||||
} else if(le instanceof Pig)
|
||||
{
|
||||
world.dropItemNaturally(le.getLocation(), new ItemStack(Material.PORK, 1));
|
||||
} else if(le instanceof Skeleton)
|
||||
{
|
||||
if(Math.random() * 10 < 5)
|
||||
world.dropItemNaturally(le.getLocation(), new ItemStack(Material.BONE, 1));
|
||||
else
|
||||
world.dropItemNaturally(le.getLocation(), new ItemStack(Material.ARROW, 3));
|
||||
} else if(le instanceof Cow)
|
||||
{
|
||||
world.dropItemNaturally(le.getLocation(), new ItemStack(Material.LEATHER, 1));
|
||||
} else if(le instanceof Spider)
|
||||
{
|
||||
if(Math.random() * 10 < 5)
|
||||
world.dropItemNaturally(le.getLocation(), new ItemStack(Material.SPIDER_EYE, 1));
|
||||
else
|
||||
world.dropItemNaturally(le.getLocation(), new ItemStack(Material.STRING, 1));
|
||||
} else if(le instanceof Chicken)
|
||||
{
|
||||
if(Math.random() * 10 < 5)
|
||||
world.dropItemNaturally(le.getLocation(), new ItemStack(Material.FEATHER, 1));
|
||||
else
|
||||
world.dropItemNaturally(le.getLocation(), new ItemStack(Material.EGG, 1));
|
||||
} else if(le instanceof Creeper)
|
||||
{
|
||||
world.dropItemNaturally(le.getLocation(), new ItemStack(Material.SULPHUR, 1));
|
||||
}
|
||||
}
|
||||
}
|
338
src/main/java/com/gmail/nossr50/skills/Herbalism.java
Normal file
338
src/main/java/com/gmail/nossr50/skills/Herbalism.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
440
src/main/java/com/gmail/nossr50/skills/Mining.java
Normal file
440
src/main/java/com/gmail/nossr50/skills/Mining.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
624
src/main/java/com/gmail/nossr50/skills/Repair.java
Normal file
624
src/main/java/com/gmail/nossr50/skills/Repair.java
Normal file
@ -0,0 +1,624 @@
|
||||
/*
|
||||
This file is part of mcMMO.
|
||||
|
||||
mcMMO is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
mcMMO is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcPermissions;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.spout.SpoutStuff;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.SkillType;
|
||||
import com.gmail.nossr50.locale.mcLocale;
|
||||
|
||||
|
||||
public class Repair {
|
||||
|
||||
/*
|
||||
* Repair requirements for each material
|
||||
*/
|
||||
private static int rGold = LoadProperties.rGold;
|
||||
private static String nGold = LoadProperties.nGold;
|
||||
private static int rStone = LoadProperties.rStone;
|
||||
private static String nStone = LoadProperties.nStone;
|
||||
private static int rWood = LoadProperties.rWood;
|
||||
private static String nWood = LoadProperties.nWood;
|
||||
private static int rDiamond = LoadProperties.rDiamond;
|
||||
private static String nDiamond = LoadProperties.nDiamond;
|
||||
private static int rIron = LoadProperties.rIron;
|
||||
private static String nIron = LoadProperties.nIron;
|
||||
|
||||
|
||||
public static void repairCheck(Player player, ItemStack is, Block block){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
short durabilityBefore = player.getItemInHand().getDurability();
|
||||
short durabilityAfter = 0;
|
||||
short dif = 0;
|
||||
|
||||
//Stuff for keeping enchants
|
||||
Enchantment[] enchants = new Enchantment[is.getEnchantments().size()];
|
||||
int[] enchantsLevel = new int[is.getEnchantments().size()];
|
||||
|
||||
int pos = 0;
|
||||
for(Enchantment x : is.getEnchantments().keySet())
|
||||
{
|
||||
enchants[pos] = x;
|
||||
enchantsLevel[pos] = is.getEnchantmentLevel(x);
|
||||
pos++;
|
||||
}
|
||||
|
||||
if(block != null && mcPermissions.getInstance().repair(player))
|
||||
{
|
||||
if(player.getItemInHand().getDurability() > 0 && player.getItemInHand().getAmount() < 2){
|
||||
/*
|
||||
* ARMOR
|
||||
*/
|
||||
if(isArmor(is)){
|
||||
/*
|
||||
* DIAMOND ARMOR
|
||||
*/
|
||||
if(isDiamondArmor(is) && hasItem(player, rDiamond) && PP.getSkillLevel(SkillType.REPAIR) >= LoadProperties.repairdiamondlevel){
|
||||
removeItem(player, rDiamond);
|
||||
repairItem(player, enchants, enchantsLevel);
|
||||
|
||||
durabilityAfter = player.getItemInHand().getDurability();
|
||||
dif = (short) (durabilityBefore - durabilityAfter);
|
||||
dif = (short) (dif * 6); //Boost XP
|
||||
PP.addXP(SkillType.REPAIR, dif*10, player);
|
||||
|
||||
//CLANG CLANG
|
||||
if(LoadProperties.spoutEnabled)
|
||||
SpoutStuff.playRepairNoise(player);
|
||||
}
|
||||
else if (isIronArmor(is) && hasItem(player, rIron)){
|
||||
/*
|
||||
* IRON ARMOR
|
||||
*/
|
||||
removeItem(player, rIron);
|
||||
repairItem(player, enchants, enchantsLevel);
|
||||
|
||||
durabilityAfter = player.getItemInHand().getDurability();
|
||||
dif = (short) (durabilityBefore - durabilityAfter);
|
||||
dif = (short) (dif * 2); //Boost XP
|
||||
PP.addXP(SkillType.REPAIR, dif*10, player);
|
||||
|
||||
//CLANG CLANG
|
||||
if(LoadProperties.spoutEnabled)
|
||||
SpoutStuff.playRepairNoise(player);
|
||||
//GOLD ARMOR
|
||||
} else if (isGoldArmor(is) && hasItem(player, rGold)){
|
||||
removeItem(player, rGold);
|
||||
repairItem(player, enchants, enchantsLevel);
|
||||
|
||||
durabilityAfter = player.getItemInHand().getDurability();
|
||||
dif = (short) (durabilityBefore - durabilityAfter);
|
||||
dif = (short) (dif * 4); //Boost XP of Gold to around Iron
|
||||
PP.addXP(SkillType.REPAIR, dif*10, player);
|
||||
|
||||
//CLANG CLANG
|
||||
if(LoadProperties.spoutEnabled)
|
||||
SpoutStuff.playRepairNoise(player);
|
||||
} else {
|
||||
needMoreVespeneGas(is, player);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* TOOLS
|
||||
*/
|
||||
if(isTools(is)){
|
||||
if(isStoneTools(is) && hasItem(player, rStone)){
|
||||
removeItem(player, rStone);
|
||||
repairItem(player, enchants, enchantsLevel);
|
||||
|
||||
durabilityAfter = player.getItemInHand().getDurability();
|
||||
dif = (short) (durabilityBefore - durabilityAfter);
|
||||
if(m.isShovel(is))
|
||||
dif = (short) (dif / 3);
|
||||
if(m.isSwords(is))
|
||||
dif = (short) (dif / 2);
|
||||
if(m.isHoe(is))
|
||||
dif = (short) (dif / 2);
|
||||
//STONE NERF
|
||||
dif = (short) (dif / 2);
|
||||
|
||||
PP.addXP(SkillType.REPAIR, dif*10, player);
|
||||
} else if(isWoodTools(is) && hasItem(player,rWood)){
|
||||
removeItem(player,rWood);
|
||||
repairItem(player, enchants, enchantsLevel);
|
||||
|
||||
durabilityAfter = player.getItemInHand().getDurability();
|
||||
dif = (short) (durabilityBefore - durabilityAfter);
|
||||
if(m.isShovel(is))
|
||||
dif = (short) (dif / 3);
|
||||
if(m.isSwords(is))
|
||||
dif = (short) (dif / 2);
|
||||
if(m.isHoe(is))
|
||||
dif = (short) (dif / 2);
|
||||
//WOOD NERF
|
||||
dif = (short) (dif / 2);
|
||||
|
||||
PP.addXP(SkillType.REPAIR, dif*10, player);
|
||||
} else if(isIronTools(is) && hasItem(player, rIron)){
|
||||
removeItem(player, rIron);
|
||||
repairItem(player, enchants, enchantsLevel);
|
||||
|
||||
durabilityAfter = (short) (player.getItemInHand().getDurability()-getRepairAmount(is, player));
|
||||
dif = (short) (durabilityBefore - durabilityAfter);
|
||||
if(m.isShovel(is))
|
||||
dif = (short) (dif / 3);
|
||||
if(m.isSwords(is))
|
||||
dif = (short) (dif / 2);
|
||||
if(m.isHoe(is))
|
||||
dif = (short) (dif / 2);
|
||||
PP.addXP(SkillType.REPAIR, dif*10, player);
|
||||
|
||||
//CLANG CLANG
|
||||
if(LoadProperties.spoutEnabled)
|
||||
SpoutStuff.playRepairNoise(player);
|
||||
} else if (isDiamondTools(is) && hasItem(player, rDiamond) && PP.getSkillLevel(SkillType.REPAIR) >= LoadProperties.repairdiamondlevel){
|
||||
removeItem(player, rDiamond);
|
||||
repairItem(player, enchants, enchantsLevel);
|
||||
|
||||
durabilityAfter = player.getItemInHand().getDurability();
|
||||
dif = (short) (durabilityBefore - durabilityAfter);
|
||||
if(m.isShovel(is))
|
||||
dif = (short) (dif / 3);
|
||||
if(m.isSwords(is))
|
||||
dif = (short) (dif / 2);
|
||||
if(m.isHoe(is))
|
||||
dif = (short) (dif / 2);
|
||||
PP.addXP(SkillType.REPAIR, dif*10, player);
|
||||
|
||||
//CLANG CLANG
|
||||
if(LoadProperties.spoutEnabled)
|
||||
SpoutStuff.playRepairNoise(player);
|
||||
} else if(isGoldTools(is) && hasItem(player, rGold)){
|
||||
removeItem(player, rGold);
|
||||
repairItem(player, enchants, enchantsLevel);
|
||||
|
||||
durabilityAfter = player.getItemInHand().getDurability();
|
||||
dif = (short) (durabilityBefore - durabilityAfter);
|
||||
dif = (short) (dif * 7.6); //Boost XP for Gold to that of around Iron
|
||||
if(m.isShovel(is))
|
||||
dif = (short) (dif / 3);
|
||||
if(m.isSwords(is))
|
||||
dif = (short) (dif / 2);
|
||||
if(m.isHoe(is))
|
||||
dif = (short) (dif / 2);
|
||||
PP.addXP(SkillType.REPAIR, dif*10, player);
|
||||
|
||||
//CLANG CLANG
|
||||
if(LoadProperties.spoutEnabled)
|
||||
SpoutStuff.playRepairNoise(player);
|
||||
} else {
|
||||
needMoreVespeneGas(is, player);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
player.sendMessage(mcLocale.getString("Skills.FullDurability"));
|
||||
}
|
||||
//player.updateInventory();
|
||||
/*
|
||||
* GIVE SKILL IF THERE IS ENOUGH XP
|
||||
*/
|
||||
Skills.XpCheckSkill(SkillType.REPAIR, player);
|
||||
}
|
||||
}
|
||||
public static int getArcaneForgingRank(PlayerProfile PP)
|
||||
{
|
||||
int rank = 0;
|
||||
|
||||
if(PP.getSkillLevel(SkillType.REPAIR) >= 750)
|
||||
{
|
||||
rank = 4;
|
||||
} else if (PP.getSkillLevel(SkillType.REPAIR) >= 500)
|
||||
{
|
||||
rank = 3;
|
||||
} else if(PP.getSkillLevel(SkillType.REPAIR) >= 250)
|
||||
{
|
||||
rank = 2;
|
||||
} else if (PP.getSkillLevel(SkillType.REPAIR) >= 100)
|
||||
{
|
||||
rank = 1;
|
||||
}
|
||||
return rank;
|
||||
}
|
||||
public static void addEnchants(ItemStack is, Enchantment[] enchants, int[] enchantsLvl, PlayerProfile PP, Player player)
|
||||
{
|
||||
if(is.getEnchantments().keySet().size() == 0)
|
||||
return;
|
||||
|
||||
int pos = 0;
|
||||
int rank = getArcaneForgingRank(PP);
|
||||
|
||||
if(rank == 0)
|
||||
{
|
||||
player.sendMessage(mcLocale.getString("Repair.LostEnchants"));
|
||||
for(Enchantment x : enchants)
|
||||
{
|
||||
is.removeEnchantment(x);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
boolean failure = false, downgrade = false;
|
||||
|
||||
for(Enchantment x : enchants)
|
||||
{
|
||||
//Remove enchant
|
||||
is.removeEnchantment(x);
|
||||
|
||||
if(x.canEnchantItem(is))
|
||||
{
|
||||
if(Math.random() * 100 <= getEnchantChance(rank))
|
||||
{
|
||||
if(enchantsLvl[pos] > 1)
|
||||
{
|
||||
if(Math.random() * 100 <= getDowngradeChance(rank))
|
||||
{
|
||||
is.addEnchantment(x, enchantsLvl[pos]-1);
|
||||
downgrade = true;
|
||||
} else
|
||||
{
|
||||
is.addEnchantment(x, enchantsLvl[pos]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
is.addEnchantment(x, enchantsLvl[pos]);
|
||||
}
|
||||
} else {
|
||||
failure = true;
|
||||
}
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
|
||||
if(failure == false && downgrade == false)
|
||||
{
|
||||
player.sendMessage(mcLocale.getString("Repair.ArcanePerfect"));
|
||||
} else {
|
||||
if(failure == true)
|
||||
player.sendMessage(mcLocale.getString("Repair.ArcaneFailed"));
|
||||
if(downgrade == true)
|
||||
player.sendMessage(mcLocale.getString("Repair.Downgraded"));
|
||||
}
|
||||
}
|
||||
public static int getEnchantChance(int rank)
|
||||
{
|
||||
switch(rank)
|
||||
{
|
||||
case 4:
|
||||
return 40;
|
||||
case 3:
|
||||
return 30;
|
||||
case 2:
|
||||
return 20;
|
||||
case 1:
|
||||
return 10;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
public static int getDowngradeChance(int rank)
|
||||
{
|
||||
switch(rank)
|
||||
{
|
||||
case 4:
|
||||
return 15;
|
||||
case 3:
|
||||
return 25;
|
||||
case 2:
|
||||
return 50;
|
||||
case 1:
|
||||
return 75;
|
||||
default:
|
||||
return 100;
|
||||
}
|
||||
}
|
||||
public static boolean isArmor(ItemStack is){
|
||||
return is.getTypeId() == 306 || is.getTypeId() == 307 ||is.getTypeId() == 308 ||is.getTypeId() == 309 ||
|
||||
is.getTypeId() == 310 ||is.getTypeId() == 311 ||is.getTypeId() == 312 ||is.getTypeId() == 313 ||
|
||||
is.getTypeId() == 314 || is.getTypeId() == 315 || is.getTypeId() == 316 || is.getTypeId() == 317;
|
||||
}
|
||||
public static boolean isGoldArmor(ItemStack is){
|
||||
return is.getTypeId() == 314 || is.getTypeId() == 315 || is.getTypeId() == 316 || is.getTypeId() == 317;
|
||||
}
|
||||
public static boolean isIronArmor(ItemStack is){
|
||||
return is.getTypeId() == 306 || is.getTypeId() == 307 || is.getTypeId() == 308 || is.getTypeId() == 309;
|
||||
}
|
||||
public static boolean isDiamondArmor(ItemStack is){
|
||||
return is.getTypeId() == 310 || is.getTypeId() == 311 || is.getTypeId() == 312 || is.getTypeId() == 313;
|
||||
}
|
||||
public static boolean isTools(ItemStack is)
|
||||
{
|
||||
return is.getTypeId() == 359 || is.getTypeId() == 256 || is.getTypeId() == 257 || is.getTypeId() == 258 || is.getTypeId() == 267 || is.getTypeId() == 292 || //IRON
|
||||
is.getTypeId() == 276 || is.getTypeId() == 277 || is.getTypeId() == 278 || is.getTypeId() == 279 || is.getTypeId() == 293 || //DIAMOND
|
||||
is.getTypeId() == 283 || is.getTypeId() == 285 || is.getTypeId() == 286 || is.getTypeId() == 284 || //GOLD
|
||||
is.getTypeId() == 268 || is.getTypeId() == 269 || is.getTypeId() == 270 || is.getTypeId() == 271 || is.getTypeId() == 290 ||//WOOD
|
||||
is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275|| is.getTypeId() == 291; //STONE
|
||||
}
|
||||
public static boolean isStoneTools(ItemStack is){
|
||||
return is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275 || is.getTypeId() == 291;
|
||||
}
|
||||
public static boolean isWoodTools(ItemStack is){
|
||||
return is.getTypeId() == 268 || is.getTypeId() == 269 || is.getTypeId() == 270 || is.getTypeId() == 271 || is.getTypeId() == 290;
|
||||
}
|
||||
public static boolean isGoldTools(ItemStack is){
|
||||
return is.getTypeId() == 283 || is.getTypeId() == 285 || is.getTypeId() == 286 || is.getTypeId() == 284 || is.getTypeId() == 294;
|
||||
}
|
||||
public static boolean isIronTools(ItemStack is){
|
||||
return is.getTypeId() == 359 || is.getTypeId() == 256 || is.getTypeId() == 257 || is.getTypeId() == 258 || is.getTypeId() == 267 || is.getTypeId() == 292;
|
||||
}
|
||||
|
||||
public static boolean isDiamondTools(ItemStack is){
|
||||
if(is.getTypeId() == 276 || is.getTypeId() == 277 || is.getTypeId() == 278 || is.getTypeId() == 279 || is.getTypeId() == 293)
|
||||
{
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static void removeItem(Player player, int typeid)
|
||||
{
|
||||
ItemStack[] inventory = player.getInventory().getContents();
|
||||
for(ItemStack x : inventory){
|
||||
if(x != null && x.getTypeId() == typeid){
|
||||
if(x.getAmount() == 1){
|
||||
x.setTypeId(0);
|
||||
x.setAmount(0);
|
||||
player.getInventory().setContents(inventory);
|
||||
} else{
|
||||
x.setAmount(x.getAmount() - 1);
|
||||
player.getInventory().setContents(inventory);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
public static boolean hasItem(Player player, int typeid){
|
||||
ItemStack[] inventory = player.getInventory().getContents();
|
||||
for(ItemStack x : inventory){
|
||||
if(x != null && x.getTypeId() == typeid){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public static short repairCalculate(Player player, short durability, short ramt){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
float bonus = (PP.getSkillLevel(SkillType.REPAIR) / 500);
|
||||
bonus = (ramt * bonus);
|
||||
ramt = ramt+=bonus;
|
||||
if(checkPlayerProcRepair(player)){
|
||||
ramt = (short) (ramt * 2);
|
||||
}
|
||||
//player.sendMessage(ChatColor.DARK_RED + "test " +ChatColor.BLUE+ );
|
||||
durability-=ramt;
|
||||
// player.sendMessage(ChatColor.DARK_RED + "durability " +ChatColor.BLUE+ durability);
|
||||
if(durability < 0){
|
||||
durability = 0;
|
||||
}
|
||||
return durability;
|
||||
}
|
||||
public static short getRepairAmount(ItemStack is, Player player){
|
||||
short durability = is.getDurability();
|
||||
short ramt = 0;
|
||||
switch(is.getTypeId())
|
||||
{
|
||||
/*
|
||||
* TOOLS
|
||||
*/
|
||||
//SHEARS
|
||||
case 359:
|
||||
ramt = 119;
|
||||
break;
|
||||
//WOOD SWORD
|
||||
case 268:
|
||||
ramt = 30;
|
||||
break;
|
||||
//WOOD SHOVEL
|
||||
case 269:
|
||||
ramt = 60;
|
||||
break;
|
||||
//WOOD PICKAXE
|
||||
case 270:
|
||||
ramt = 20;
|
||||
break;
|
||||
//WOOD AXE
|
||||
case 271:
|
||||
ramt = 20;
|
||||
break;
|
||||
//WOOD HOE
|
||||
case 290:
|
||||
ramt = 30;
|
||||
break;
|
||||
//STONE SWORD
|
||||
case 272:
|
||||
ramt = 66;
|
||||
break;
|
||||
//STONE SHOVEL
|
||||
case 273:
|
||||
ramt = 132;
|
||||
break;
|
||||
//STONE PICKAXE
|
||||
case 274:
|
||||
ramt = 44;
|
||||
break;
|
||||
//STONE AXE
|
||||
case 275:
|
||||
ramt = 44;
|
||||
break;
|
||||
//STONE HOE
|
||||
case 291:
|
||||
ramt = 66;
|
||||
break;
|
||||
//GOLD SHOVEL
|
||||
case 284:
|
||||
ramt = 33;
|
||||
break;
|
||||
//IRON SHOVEL
|
||||
case 256:
|
||||
ramt = 251;
|
||||
break;
|
||||
//DIAMOND SHOVEL
|
||||
case 277:
|
||||
ramt = 1562;
|
||||
break;
|
||||
//IRON PICK
|
||||
case 257:
|
||||
ramt = 84;
|
||||
break;
|
||||
//IRON AXE
|
||||
case 258:
|
||||
ramt = 84;
|
||||
break;
|
||||
//IRON SWORD
|
||||
case 267:
|
||||
ramt = 126;
|
||||
break;
|
||||
//IRON HOE
|
||||
case 292:
|
||||
ramt = 126;
|
||||
break;
|
||||
//DIAMOND SWORD
|
||||
case 276:
|
||||
ramt = 781;
|
||||
break;
|
||||
//DIAMOND PICK
|
||||
case 278:
|
||||
ramt = 521;
|
||||
break;
|
||||
//DIAMOND AXE
|
||||
case 279:
|
||||
ramt = 521;
|
||||
break;
|
||||
//DIAMOND HOE
|
||||
case 293:
|
||||
ramt = 781;
|
||||
break;
|
||||
//GOLD SWORD
|
||||
case 283:
|
||||
ramt = 17;
|
||||
break;
|
||||
//GOLD PICK
|
||||
case 285:
|
||||
ramt = 11;
|
||||
break;
|
||||
//GOLD AXE
|
||||
case 286:
|
||||
ramt = 11;
|
||||
break;
|
||||
//GOLD HOE
|
||||
case 294:
|
||||
ramt = 17;
|
||||
break;
|
||||
/*
|
||||
* ARMOR
|
||||
*/
|
||||
case 306:
|
||||
ramt = 27;
|
||||
break;
|
||||
case 310:
|
||||
ramt = 55;
|
||||
break;
|
||||
case 307:
|
||||
ramt = 24;
|
||||
break;
|
||||
case 311:
|
||||
ramt = 48;
|
||||
break;
|
||||
case 308:
|
||||
ramt = 27;
|
||||
break;
|
||||
case 312:
|
||||
ramt = 53;
|
||||
break;
|
||||
case 309:
|
||||
ramt = 40;
|
||||
break;
|
||||
case 313:
|
||||
ramt = 80;
|
||||
break;
|
||||
case 314:
|
||||
ramt = 13;
|
||||
break;
|
||||
case 315:
|
||||
ramt = 12;
|
||||
break;
|
||||
case 316:
|
||||
ramt = 14;
|
||||
break;
|
||||
case 317:
|
||||
ramt = 20;
|
||||
break;
|
||||
}
|
||||
return repairCalculate(player, durability, ramt);
|
||||
}
|
||||
public static void needMoreVespeneGas(ItemStack is, Player player)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if ((isDiamondTools(is) || isDiamondArmor(is)) && PP.getSkillLevel(SkillType.REPAIR) < LoadProperties.repairdiamondlevel)
|
||||
{
|
||||
player.sendMessage(mcLocale.getString("Skills.AdeptDiamond"));
|
||||
} else if (isDiamondTools(is) && !hasItem(player, rDiamond) || isIronTools(is) && !hasItem(player, rIron) || isGoldTools(is) && !hasItem(player, rGold)){
|
||||
if(isDiamondTools(is) && !hasItem(player, rDiamond))
|
||||
player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond);
|
||||
if(isIronTools(is) && !hasItem(player, rIron))
|
||||
player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron);
|
||||
if(isGoldTools(is) && !hasItem(player, rGold))
|
||||
player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GOLD+nGold);
|
||||
if(isWoodTools(is) && !hasItem(player,rWood))
|
||||
player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.DARK_GREEN+ nWood);
|
||||
if(isStoneTools(is) && !hasItem(player, rStone))
|
||||
player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+nStone);
|
||||
} else if (isDiamondArmor(is) && !hasItem(player, rDiamond)){
|
||||
player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond);
|
||||
} else if (isIronArmor(is) && !hasItem(player, rIron)){
|
||||
player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron);
|
||||
} else if (isGoldArmor(is) && !hasItem(player, rGold)){
|
||||
player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GOLD+ nGold);
|
||||
} else if (is.getAmount() > 1)
|
||||
player.sendMessage(mcLocale.getString("Skills.StackedItems"));
|
||||
}
|
||||
public static boolean checkPlayerProcRepair(Player player)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(player != null)
|
||||
{
|
||||
if(Math.random() * 1000 <= PP.getSkillLevel(SkillType.REPAIR))
|
||||
{
|
||||
player.sendMessage(mcLocale.getString("Skills.FeltEasy"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public static void repairItem(Player player, Enchantment[] enchants, int[] enchantsLevel)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
ItemStack is = player.getItemInHand();
|
||||
//Handle the enchantments
|
||||
addEnchants(player.getItemInHand(), enchants, enchantsLevel, PP, player);
|
||||
player.getItemInHand().setDurability(getRepairAmount(is, player));
|
||||
}
|
||||
}
|
437
src/main/java/com/gmail/nossr50/skills/Skills.java
Normal file
437
src/main/java/com/gmail/nossr50/skills/Skills.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
252
src/main/java/com/gmail/nossr50/skills/Swords.java
Normal file
252
src/main/java/com/gmail/nossr50/skills/Swords.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
70
src/main/java/com/gmail/nossr50/skills/Taming.java
Normal file
70
src/main/java/com/gmail/nossr50/skills/Taming.java
Normal file
@ -0,0 +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";
|
||||
}
|
||||
}
|
111
src/main/java/com/gmail/nossr50/skills/Unarmed.java
Normal file
111
src/main/java/com/gmail/nossr50/skills/Unarmed.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
169
src/main/java/com/gmail/nossr50/skills/WoodCutting.java
Normal file
169
src/main/java/com/gmail/nossr50/skills/WoodCutting.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
||||
}
|
577
src/main/java/com/gmail/nossr50/spout/SpoutStuff.java
Normal file
577
src/main/java/com/gmail/nossr50/spout/SpoutStuff.java
Normal file
@ -0,0 +1,577 @@
|
||||
/*
|
||||
This file is part of mcMMO.
|
||||
|
||||
mcMMO is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
mcMMO is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.gmail.nossr50.spout;
|
||||
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarFile;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.Event.Priority;
|
||||
import org.getspout.spoutapi.SpoutManager;
|
||||
import org.getspout.spoutapi.gui.Color;
|
||||
import org.getspout.spoutapi.keyboard.Keyboard;
|
||||
import org.getspout.spoutapi.player.SpoutPlayer;
|
||||
import org.getspout.spoutapi.sound.SoundEffect;
|
||||
import org.getspout.spoutapi.sound.SoundManager;
|
||||
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.HUDType;
|
||||
import com.gmail.nossr50.datatypes.HUDmmo;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.popups.PopupMMO;
|
||||
import com.gmail.nossr50.datatypes.SkillType;
|
||||
import com.gmail.nossr50.listeners.mcSpoutInputListener;
|
||||
import com.gmail.nossr50.listeners.mcSpoutListener;
|
||||
import com.gmail.nossr50.listeners.mcSpoutScreenListener;
|
||||
|
||||
public class SpoutStuff
|
||||
{
|
||||
static mcMMO plugin = (mcMMO) Bukkit.getServer().getPluginManager().getPlugin("mcMMO");
|
||||
|
||||
private final static mcSpoutListener spoutListener = new mcSpoutListener(plugin);
|
||||
private final static mcSpoutInputListener spoutInputListener = new mcSpoutInputListener(plugin);
|
||||
private final static mcSpoutScreenListener spoutScreenListener = new mcSpoutScreenListener(plugin);
|
||||
|
||||
public static HashMap<Player, HUDmmo> playerHUDs = new HashMap<Player, HUDmmo>();
|
||||
public static HashMap<SpoutPlayer, PopupMMO> playerScreens = new HashMap<SpoutPlayer, PopupMMO>();
|
||||
|
||||
public static Keyboard keypress;
|
||||
|
||||
public static void writeFile(String theFileName, String theFilePath)
|
||||
{
|
||||
try {
|
||||
File currentFile = new File("plugins/mcMMO/Resources/"+theFilePath+theFileName);
|
||||
@SuppressWarnings("static-access")
|
||||
JarFile jar = new JarFile(plugin.mcmmo);
|
||||
JarEntry entry = jar.getJarEntry("resources/"+theFileName);
|
||||
InputStream is = jar.getInputStream(entry);
|
||||
byte[] buf = new byte[2048];
|
||||
int nbRead;
|
||||
OutputStream os = new BufferedOutputStream(new FileOutputStream(currentFile));
|
||||
while((nbRead = is.read(buf)) != -1) {
|
||||
os.write(buf, 0, nbRead);
|
||||
}
|
||||
os.flush();
|
||||
os.close();
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void extractFiles()
|
||||
{
|
||||
//Setup directories
|
||||
new File("plugins/mcMMO/Resources/").mkdir();
|
||||
new File("plugins/mcMMO/Resources/HUD/").mkdir();
|
||||
new File("plugins/mcMMO/Resources/HUD/Standard/").mkdir();
|
||||
new File("plugins/mcMMO/Resources/HUD/Retro/").mkdir();
|
||||
new File("plugins/mcMMO/Resources/Sound/").mkdir();
|
||||
|
||||
//Xp Bar images
|
||||
for(int x =0; x < 255; x++)
|
||||
{
|
||||
//String s = File.separator;
|
||||
String theFilePath = "HUD/Standard/";
|
||||
if(x < 10)
|
||||
{
|
||||
String theFileName = "xpbar_inc00"+x+".png";
|
||||
writeFile(theFileName, theFilePath);
|
||||
} else if (x < 100)
|
||||
{
|
||||
String theFileName = "xpbar_inc0"+x+".png";
|
||||
writeFile(theFileName, theFilePath);
|
||||
} else
|
||||
{
|
||||
String theFileName = "xpbar_inc"+x+".png";
|
||||
writeFile(theFileName, theFilePath);
|
||||
}
|
||||
}
|
||||
|
||||
//Standard XP Icons
|
||||
|
||||
String theFilePathA = "HUD/Standard/";
|
||||
String theFilePathB = "HUD/Retro/";
|
||||
|
||||
for(SkillType y : SkillType.values())
|
||||
{
|
||||
if(y == SkillType.ALL || y == SkillType.ENCHANTING || y == SkillType.ALCHEMY)
|
||||
continue;
|
||||
|
||||
String theFileNameA = m.getCapitalized(y.toString())+".png";
|
||||
String theFileNameB = m.getCapitalized(y.toString())+"_r.png";
|
||||
|
||||
writeFile(theFileNameA, theFilePathA);
|
||||
writeFile(theFileNameB, theFilePathB);
|
||||
}
|
||||
|
||||
//Blank icons
|
||||
|
||||
writeFile("Icon.png", theFilePathA);
|
||||
writeFile("Icon_r.png", theFilePathB);
|
||||
|
||||
String theSoundFilePath = "Sound/";
|
||||
//Repair SFX
|
||||
writeFile("repair.wav", theSoundFilePath);
|
||||
writeFile("level.wav", theSoundFilePath);
|
||||
}
|
||||
|
||||
public static void setupSpoutConfigs()
|
||||
{
|
||||
String temp = LoadProperties.readString("Spout.Menu.Key", "KEY_M");
|
||||
|
||||
for(Keyboard x : Keyboard.values())
|
||||
{
|
||||
if(x.toString().equalsIgnoreCase(temp))
|
||||
{
|
||||
keypress = x;
|
||||
}
|
||||
}
|
||||
|
||||
if(keypress == null)
|
||||
{
|
||||
System.out.println("Invalid KEY for Spout.Menu.Key, using KEY_M");
|
||||
keypress = Keyboard.KEY_M;
|
||||
}
|
||||
}
|
||||
public static ArrayList<File> getFiles()
|
||||
{
|
||||
ArrayList<File> files = new ArrayList<File>();
|
||||
String dir = "plugins/mcMMO/Resources/";
|
||||
int x = 0;
|
||||
|
||||
//XP BAR
|
||||
while(x < 255)
|
||||
{
|
||||
if(x < 10)
|
||||
{
|
||||
files.add(new File(dir+"HUD/Standard/xpbar_inc00"+x+".png"));
|
||||
} else if (x < 100)
|
||||
{
|
||||
files.add(new File(dir+"HUD/Standard/xpbar_inc0"+x+".png"));
|
||||
} else
|
||||
{
|
||||
files.add(new File(dir+"HUD/Standard/xpbar_inc"+x+".png"));
|
||||
}
|
||||
x++;
|
||||
}
|
||||
|
||||
//Standard XP Icons
|
||||
for(SkillType y : SkillType.values())
|
||||
{
|
||||
if(y == SkillType.ALL || y == SkillType.ENCHANTING || y == SkillType.ALCHEMY)
|
||||
continue;
|
||||
files.add(new File(dir+"HUD/Standard/"+m.getCapitalized(y.toString())+".png"));
|
||||
files.add(new File(dir+"HUD/Retro/"+m.getCapitalized(y.toString())+"_r.png"));
|
||||
}
|
||||
|
||||
//Blank icons
|
||||
files.add(new File(dir+"HUD/Standard/Icon.png"));
|
||||
files.add(new File(dir+"HUD/Retro/Icon_r.png"));
|
||||
//Repair SFX
|
||||
files.add(new File(dir+"Sound/repair.wav"));
|
||||
//Level SFX
|
||||
files.add(new File(dir+"Sound/level.wav"));
|
||||
|
||||
return files;
|
||||
}
|
||||
public static void registerCustomEvent()
|
||||
{
|
||||
Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutListener, Priority.Normal, plugin);
|
||||
Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutInputListener, Priority.Normal, plugin);
|
||||
Bukkit.getServer().getPluginManager().registerEvent(Event.Type.CUSTOM_EVENT, spoutScreenListener, Priority.Normal, plugin);
|
||||
}
|
||||
|
||||
public static Color getRetroColor(SkillType type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case ACROBATICS:
|
||||
return new Color((float) LoadProperties.acrobatics_r, (float) LoadProperties.acrobatics_g, (float) LoadProperties.acrobatics_b, 1);
|
||||
case ARCHERY:
|
||||
return new Color((float) LoadProperties.archery_r, (float)LoadProperties.archery_g, (float)LoadProperties.archery_b, 1f);
|
||||
case AXES:
|
||||
return new Color((float) LoadProperties.axes_r, (float)LoadProperties.axes_g, (float)LoadProperties.axes_b, 1f);
|
||||
case EXCAVATION:
|
||||
return new Color((float)LoadProperties.excavation_r, (float)LoadProperties.excavation_g, (float)LoadProperties.excavation_b, 1f);
|
||||
case HERBALISM:
|
||||
return new Color((float)LoadProperties.herbalism_r, (float)LoadProperties.herbalism_g, (float)LoadProperties.herbalism_b, 1f);
|
||||
case MINING:
|
||||
return new Color((float)LoadProperties.mining_r, (float)LoadProperties.mining_g, (float)LoadProperties.mining_b, 1f);
|
||||
case REPAIR:
|
||||
return new Color((float)LoadProperties.repair_r, (float)LoadProperties.repair_g, (float)LoadProperties.repair_b, 1f);
|
||||
case SWORDS:
|
||||
return new Color((float)LoadProperties.swords_r, (float)LoadProperties.swords_g, (float)LoadProperties.swords_b, 1f);
|
||||
case TAMING:
|
||||
return new Color((float)LoadProperties.taming_r, (float)LoadProperties.taming_g, (float)LoadProperties.taming_b, 1f);
|
||||
case UNARMED:
|
||||
return new Color((float)LoadProperties.unarmed_r, (float)LoadProperties.unarmed_g, (float)LoadProperties.unarmed_b, 1f);
|
||||
case WOODCUTTING:
|
||||
return new Color((float)LoadProperties.woodcutting_r, (float)LoadProperties.woodcutting_g, (float)LoadProperties.woodcutting_b, 1f);
|
||||
case FISHING:
|
||||
return new Color((float)LoadProperties.fishing_r, (float)LoadProperties.fishing_g, (float)LoadProperties.fishing_b, 1f);
|
||||
default:
|
||||
return new Color(0.3f, 0.3f, 0.75f, 1f);
|
||||
}
|
||||
}
|
||||
public static SpoutPlayer getSpoutPlayer(String playerName)
|
||||
{
|
||||
for(Player x : Bukkit.getServer().getOnlinePlayers())
|
||||
{
|
||||
if(x.getName().equalsIgnoreCase(playerName))
|
||||
{
|
||||
return SpoutManager.getPlayer(x);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void playSoundForPlayer(SoundEffect effect, Player player, Location location)
|
||||
{
|
||||
//Contrib stuff
|
||||
SoundManager SM = SpoutManager.getSoundManager();
|
||||
SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
|
||||
SM.playSoundEffect(sPlayer, effect, location);
|
||||
}
|
||||
|
||||
public static void playRepairNoise(Player player)
|
||||
{
|
||||
SoundManager SM = SpoutManager.getSoundManager();
|
||||
SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
|
||||
SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "http://mcmmo.rycochet.net/mcmmo/Sound/repair.wav", false);
|
||||
}
|
||||
|
||||
public static void playLevelUpNoise(Player player)
|
||||
{
|
||||
SoundManager SM = SpoutManager.getSoundManager();
|
||||
SpoutPlayer sPlayer = SpoutManager.getPlayer(player);
|
||||
SM.playCustomSoundEffect(Bukkit.getServer().getPluginManager().getPlugin("mcMMO"), sPlayer, "http://mcmmo.rycochet.net/mcmmo/Sound/level.wav", false);
|
||||
}
|
||||
|
||||
public static void levelUpNotification(SkillType skillType, SpoutPlayer sPlayer)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(sPlayer);
|
||||
|
||||
Material mat = null;
|
||||
switch(skillType)
|
||||
{
|
||||
case TAMING:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.PORK;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.PORK;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.GRILLED_PORK;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.GRILLED_PORK;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.BONE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case MINING:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.COAL_ORE;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.IRON_ORE;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.GOLD_ORE;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.LAPIS_ORE;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.DIAMOND_ORE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case WOODCUTTING:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.WOOD;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.WOOD;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.WOOD;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.LOG;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.LOG;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case REPAIR:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.COBBLESTONE;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.IRON_BLOCK;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.GOLD_BLOCK;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.LAPIS_BLOCK;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.DIAMOND_BLOCK;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case HERBALISM:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.YELLOW_FLOWER;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.RED_ROSE;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.BROWN_MUSHROOM;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.RED_MUSHROOM;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.PUMPKIN;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ACROBATICS:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.LEATHER_BOOTS;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.CHAINMAIL_BOOTS;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.IRON_BOOTS;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.GOLD_BOOTS;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.DIAMOND_BOOTS;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SWORDS:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.WOOD_SWORD;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.STONE_SWORD;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.IRON_SWORD;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.GOLD_SWORD;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.DIAMOND_SWORD;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ARCHERY:
|
||||
mat = Material.ARROW;
|
||||
break;
|
||||
case UNARMED:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.LEATHER_HELMET;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.CHAINMAIL_HELMET;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.IRON_HELMET;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.GOLD_HELMET;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.DIAMOND_HELMET;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EXCAVATION:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.WOOD_SPADE;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.STONE_SPADE;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.IRON_SPADE;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.GOLD_SPADE;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.DIAMOND_SPADE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AXES:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.WOOD_AXE;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.STONE_AXE;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.IRON_AXE;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.GOLD_AXE;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.DIAMOND_AXE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case FISHING:
|
||||
switch(getNotificationTier(PP.getSkillLevel(skillType)))
|
||||
{
|
||||
case 1:
|
||||
mat = Material.RAW_FISH;
|
||||
break;
|
||||
case 2:
|
||||
mat = Material.RAW_FISH;
|
||||
break;
|
||||
case 3:
|
||||
mat = Material.COOKED_FISH;
|
||||
break;
|
||||
case 4:
|
||||
mat = Material.COOKED_FISH;
|
||||
break;
|
||||
case 5:
|
||||
mat = Material.FISHING_ROD;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
mat = Material.WATCH;
|
||||
break;
|
||||
}
|
||||
sPlayer.sendNotification(ChatColor.GREEN+"Level Up!", ChatColor.YELLOW+m.getCapitalized(skillType.toString())+ChatColor.DARK_AQUA+" ("+ChatColor.GREEN+PP.getSkillLevel(skillType)+ChatColor.DARK_AQUA+")", mat);
|
||||
playLevelUpNoise(sPlayer);
|
||||
}
|
||||
|
||||
public static Integer getNotificationTier(Integer level)
|
||||
{
|
||||
if(level < 200)
|
||||
return 1;
|
||||
else if (level >= 200 && level < 400)
|
||||
return 2;
|
||||
else if (level >= 400 && level < 600)
|
||||
return 3;
|
||||
else if (level >= 600 && level < 800)
|
||||
return 4;
|
||||
else
|
||||
return 5;
|
||||
}
|
||||
|
||||
public static Integer getXpInc(int skillxp, int xptolevel, HUDType hud)
|
||||
{
|
||||
if(hud == HUDType.STANDARD)
|
||||
{
|
||||
double percentage = (double) skillxp/xptolevel;
|
||||
double inc = 0.0039370078740157;
|
||||
return (int) (percentage/inc);
|
||||
} else if (hud == HUDType.RETRO)
|
||||
{
|
||||
double percentage = (double) skillxp/xptolevel;
|
||||
double inc = 0.0079365079365079;
|
||||
return (int) (percentage/inc);
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
public static void updateXpBar(Player player)
|
||||
{
|
||||
playerHUDs.get(player).updateXpBarDisplay(Users.getProfile(player).getHUDType(), player);
|
||||
}
|
||||
|
||||
public static String getUrlBar(Integer number)
|
||||
{
|
||||
if(number.toString().toCharArray().length == 1)
|
||||
{
|
||||
return "xpbar_inc00"+number+".png";
|
||||
} else if (number.toString().toCharArray().length == 2)
|
||||
{
|
||||
return "xpbar_inc0"+number+".png";
|
||||
} else {
|
||||
return "xpbar_inc"+number+".png";
|
||||
}
|
||||
}
|
||||
|
||||
public static String getUrlIcon(SkillType skillType)
|
||||
{
|
||||
return m.getCapitalized(skillType.toString())+".png";
|
||||
}
|
||||
public static boolean shouldBeFilled(PlayerProfile PP)
|
||||
{
|
||||
return PP.getXpBarInc() < getXpInc(PP.getSkillXpLevel(PP.getLastGained()), PP.getXpToLevel(PP.getLastGained()), HUDType.STANDARD);
|
||||
}
|
||||
}
|
269
src/main/java/com/gmail/nossr50/spout/mmoHelper.java
Normal file
269
src/main/java/com/gmail/nossr50/spout/mmoHelper.java
Normal file
@ -0,0 +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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
112
src/main/java/com/gmail/nossr50/spout/util/ArrayListString.java
Normal file
112
src/main/java/com/gmail/nossr50/spout/util/ArrayListString.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
65
src/main/java/com/gmail/nossr50/spout/util/GenericFace.java
Normal file
65
src/main/java/com/gmail/nossr50/spout/util/GenericFace.java
Normal file
@ -0,0 +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;
|
||||
}
|
||||
}
|
@ -0,0 +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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user