mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-22 21:26:46 +01:00
Version 1.0.33
This commit is contained in:
parent
e9099a286a
commit
5194f23df1
@ -1,11 +1,169 @@
|
||||
Changelog:
|
||||
#Versions without changelogs probably had very small misc fixes, like tweaks to the source code
|
||||
Version 1.0.33
|
||||
Fixed the toggle for the Excavation drop 'Cocoa Beans'
|
||||
Fixed bug where Unarmed users could disarm without being bare handed
|
||||
Cocoa Beans now have an XP modifier in config.yml
|
||||
You can now toggle whether or not Mobspawners will give XP (in config.yml)
|
||||
MySQL version now makes requests to the MySQL server less frequently (should help performance)
|
||||
Fixed bug with Skull Splitter hitting the user
|
||||
|
||||
Version 1.0.32
|
||||
Added "General.Performance.Print_Reports" node to config.yml to help identify causes of performance issues
|
||||
Fixed bug of swords users hurting themselves with serrated strikes
|
||||
|
||||
Version 1.0.31
|
||||
Fixed bug of trying to cast Animals to non-animals
|
||||
|
||||
Version 1.0.30
|
||||
Mobs that spawn from spawners no longer give XP (for reals this time)
|
||||
|
||||
Version 1.0.29
|
||||
Mobs that spawn from spawners no longer give XP (again)
|
||||
Fixed bug where Serrated Strikes did not Bleed additional targets
|
||||
Identified and solved a potential memory leak in Bleed Simulation
|
||||
Renamed the Object Config to Misc and rewrote parts of it
|
||||
Rewrote Party/Admin/God toggles
|
||||
Added Polish language support (pl)
|
||||
|
||||
Version 1.0.28
|
||||
Actually fixed /stats showing excavation values for swords
|
||||
Made some improvements to how Bleed Simulation was handled for different entity types
|
||||
Obsidian now does normal durability damage during Super Breaker
|
||||
|
||||
Version 1.0.27
|
||||
Fixed /stats showing excavation values for swords
|
||||
Hopefully fixed a wide range of NPE errors
|
||||
Updated German (de) localization
|
||||
|
||||
Version 1.0.26
|
||||
Fixed accidentally making power levels go above 9,000
|
||||
|
||||
Version 1.0.25
|
||||
Compatible with the latest CB
|
||||
Beast Lore now functions correctly
|
||||
Wolves are no longer invincible to players
|
||||
Changed the look of Beast Lore
|
||||
Skill info pages now show your stat in that skill (if you have permission)
|
||||
/stats and /whois has been alphabetized and divided into three categories (Gathering/Combat/Misc)
|
||||
Abilities will not trigger on Trap Doors
|
||||
|
||||
Version 1.0.24
|
||||
Now compatible with latest RB (928)
|
||||
Taming now receives XP from your wolves harming foes
|
||||
Taming is now easier to level
|
||||
Green Thumb now drops seeds when harvesting Wheat
|
||||
|
||||
Version 1.0.23
|
||||
Modified Bleed Simulation to fix performance problems
|
||||
Rewrote MySpawn to be more efficient when calculating time left
|
||||
Rewrote Skills to be more efficient when calculating time left
|
||||
|
||||
Version 1.0.22
|
||||
Added 'Name' nodes to commands for renaming them
|
||||
|
||||
Version 1.0.21
|
||||
Fixed Skull Splitter length in /axes displaying incorrectly
|
||||
Fire rate limiter now correctly uses the value in the config file
|
||||
Stone XP now correctly uses the value in the config file
|
||||
Cobble -> Mossy now correctly uses the value in the config file
|
||||
Removed setmyspawn from config file as it serves no purpose
|
||||
All commands now have an 'Enabled' node in the config file that when set to false disables the command completely
|
||||
Fixed color scheme inconsistency for Mining in /whois results
|
||||
|
||||
Version 1.0.20
|
||||
Fixed Array Index Out of Bounds error
|
||||
|
||||
Version 1.0.19
|
||||
Removed a failsafe for the Timer that is no longer necessary (should improve performance)
|
||||
Fixed /myspawn not working by rewriting it :3
|
||||
Fixed exploit where players could break a freshly placed mushroom for XP
|
||||
MySQL User Passwords can now be blank (Although you really should have a password...)
|
||||
Fixed a few NPE errors
|
||||
|
||||
Version 1.0.18
|
||||
Fixed MySQL default TablePrefix
|
||||
Fixed Wheat not being configurable
|
||||
|
||||
Version 1.0.17
|
||||
Brand new YAML Configuration file
|
||||
Ability to configure XP for all gathering skills in config file
|
||||
German Language added to mcMMO
|
||||
French Language added to mcMMO
|
||||
MySpawn will no longer heal players
|
||||
/<skillname> commands now also check for their localized names for displaying help
|
||||
Added many more Strings to localization files
|
||||
Added more safeguards to MySpawn for NPE
|
||||
Fixed bug where Tree Feller Radius depended on WoodCutting XP rather than Skill Level
|
||||
Fixed bug where Readying a Hoe returned a missing localization string
|
||||
Added some safeguards into Bleed Simulation to prevent possible memory leaks
|
||||
Performance improvements to storing/calling Skill/XP Values
|
||||
Plugged a potential memory leak with PlayerProfiles not being removed correctly
|
||||
Disabled the mob spawner camping anti-exploit in favor of performance
|
||||
|
||||
Version 1.0.16
|
||||
Fixed bug where localization file failed to load
|
||||
Changed en_US to lowercase
|
||||
mcMMO now requires locale files to be in lowercase
|
||||
Fixed a few strings missing from the localization file
|
||||
|
||||
Version 1.0.15
|
||||
Removed leftover code that spammed SQL errors
|
||||
|
||||
Version 1.0.14
|
||||
Added many missed strings into localization
|
||||
Finnish Localization updated for the new strings
|
||||
Green Thumb should respect Block Protection plugins now
|
||||
Fixed Number Format Exception when loading a PlayerProfile
|
||||
|
||||
Version 1.0.13
|
||||
Fixed bug/NPE where stats would not load and therefore 'reset' for players
|
||||
Fixed NPE involving /ptp
|
||||
Added "enableMOTD" setting to properties file
|
||||
|
||||
Version 1.0.12
|
||||
Fixed another NPE error
|
||||
Non-Gathering skills should correctly gain XP if PVP is set to false now
|
||||
Localization will now support language codes that do not have two parts like "fi"
|
||||
Fixed bug where Wiki MOTD message would not be loaded from localization file
|
||||
|
||||
Version 1.0.11
|
||||
Fixed bug where players could not gain experience in several skills
|
||||
Removed PVP flag from mcmmo.properties as its not needed anymore
|
||||
Fixed a few NPE errors
|
||||
Mushroom XP reduced from 25 to 15
|
||||
Fixed an exploit where players who just logged in could be farmed for experience because they were invulnerable
|
||||
|
||||
Version 1.0.10
|
||||
Added Localization/String Customization
|
||||
Mushroom XP reduced from 40 to 25
|
||||
Removed "clears inventory" warning in /mcc for /myspawn since this no longer happens
|
||||
|
||||
Version 1.0.09
|
||||
Fixed the NPE that occurs when players gain experience (Sorry!)
|
||||
Fixed bug where /myspawn & /clearmyspawn would work if MySpawn was disabled in the properties file
|
||||
Changed strings containing "MMO" to read "mcMMO"
|
||||
Removed a lot of unused or unnecessary variables from the PlayerProfiles in mcMMO, this should lower the memory footprint
|
||||
Added getXpToLevel() for modders
|
||||
|
||||
Version 1.0.08
|
||||
Added removeXP() for modders
|
||||
Fixed bug where stone swords only repaired by 33% instead of 50%
|
||||
Fixed bug where stone/wooden hoes wouldn't repair
|
||||
Big overhaul to how skill values and xp values were handled in the code
|
||||
Modifying the players skill levels now sets the corresponding skill xp to zero
|
||||
Using Serrated Strikes/Skull Splitter on mobs should no longer harm nearby players when PVP is disabled
|
||||
Switching to another weapon after firing your bow should no longer trigger procs for that weapon when the arrow hits
|
||||
Slimes/Ghasts now give XP for combat skills
|
||||
Added "EnableHpRegeneration" property setting
|
||||
Added "EnableMySpawn" property setting
|
||||
|
||||
Version 1.0.07
|
||||
Added more repair customization by solarcloud7
|
||||
Leaderboards ignore players with the respective stat at 0
|
||||
Reconnecting to MySQL will reload player data
|
||||
Fixed a NPE with MySQL's Leaderboards
|
||||
Removed "Loop iteration" debug message from mcMMO
|
||||
Added more repair customization by solarcloud7
|
||||
|
||||
Version 1.0.06
|
||||
MySQL will attempt to reconnect if the connection is closed
|
||||
|
@ -1,27 +1,14 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.Creature;
|
||||
import org.bukkit.entity.Creeper;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Monster;
|
||||
import org.bukkit.entity.PigZombie;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Skeleton;
|
||||
import org.bukkit.entity.Spider;
|
||||
import org.bukkit.entity.Squid;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.entity.Zombie;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByProjectileEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.party.Party;
|
||||
@ -33,151 +20,248 @@ import com.gmail.nossr50.skills.Taming;
|
||||
import com.gmail.nossr50.skills.Unarmed;
|
||||
|
||||
public class Combat {
|
||||
private static mcMMO plugin;
|
||||
public Combat(mcMMO instance) {
|
||||
plugin = instance;
|
||||
}
|
||||
public static void combatChecks(EntityDamageEvent event, Plugin pluginx){
|
||||
public static void combatChecks(EntityDamageEvent event, mcMMO pluginx)
|
||||
{
|
||||
if(event.isCancelled() || event.getDamage() == 0)
|
||||
return;
|
||||
/*
|
||||
* OFFENSIVE CHECKS FOR PLAYERS VERSUS ENTITIES
|
||||
* CHANGE DAMAGE BASED ON DIFFICULTY
|
||||
*/
|
||||
if(event instanceof EntityDamageByEntityEvent && ((EntityDamageByEntityEvent) event).getDamager() instanceof Player)
|
||||
if(event instanceof EntityDamageByEntityEvent)
|
||||
{
|
||||
//Declare Things
|
||||
EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent) event;
|
||||
Player attacker = (Player)((EntityDamageByEntityEvent) event).getDamager();
|
||||
PlayerProfile PPa = Users.getProfile(attacker);
|
||||
EntityDamageByEntityEvent eventx = (EntityDamageByEntityEvent) event;
|
||||
/*
|
||||
* MOB DIFFICULTY STUFF
|
||||
*/
|
||||
|
||||
//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) && PPa.getAxesInt() >= 500)
|
||||
event.setDamage(event.getDamage()+4);
|
||||
/*
|
||||
if(eventx.getDamager() instanceof Monster)
|
||||
{
|
||||
Integer theMob = eventx.getDamager().getEntityId();
|
||||
//System.out.println("FIRST STAGE");
|
||||
if(pluginx.mob.mobDiff.containsKey(theMob))
|
||||
{
|
||||
//System.out.println("STAGE TWO");
|
||||
if(eventx.getEntity() instanceof Player)
|
||||
{
|
||||
Player player = (Player) eventx.getEntity();
|
||||
player.sendMessage("Mob Difficulty: "+((int) pluginx.mob.mobDiff.get(theMob)+1));
|
||||
//System.out.println("STAGE THREE");
|
||||
|
||||
//SETUP DMG
|
||||
event.setDamage((pluginx.mob.mobDiff.get(theMob)+1) * event.getDamage());
|
||||
}
|
||||
} else
|
||||
{
|
||||
pluginx.mob.assignDifficulty(eventx.getDamager());
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
//If there are any abilities to activate
|
||||
combatAbilityChecks(attacker, PPa, pluginx);
|
||||
|
||||
//Check for offensive procs
|
||||
if(mcPermissions.getInstance().axes(attacker))
|
||||
Axes.axeCriticalCheck(attacker, eventb, pluginx); //Axe Criticals
|
||||
if(!Config.getInstance().isBleedTracked(event.getEntity())) //Swords Bleed
|
||||
Swords.bleedCheck(attacker, 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() + 5000 && defender.getHealth() >= 1)
|
||||
{
|
||||
if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker))
|
||||
PPa.addAxesXP((event.getDamage() * 3) * LoadProperties.pvpxprewardmodifier);
|
||||
if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker))
|
||||
PPa.addSwordsXP((event.getDamage() * 3) * LoadProperties.pvpxprewardmodifier);
|
||||
if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker))
|
||||
PPa.addUnarmedXP((event.getDamage() * 3) * LoadProperties.pvpxprewardmodifier);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(event.getEntity() instanceof Monster)
|
||||
{
|
||||
int xp = 0;
|
||||
if(event.getEntity() instanceof Creeper)
|
||||
xp = (event.getDamage() * 4) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Spider)
|
||||
xp = (event.getDamage() * 3) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Skeleton)
|
||||
xp = (event.getDamage() * 2) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Zombie)
|
||||
xp = (event.getDamage() * 2) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof PigZombie)
|
||||
xp = (event.getDamage() * 3) * LoadProperties.xpGainMultiplier;
|
||||
/*
|
||||
* 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);
|
||||
|
||||
if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker))
|
||||
PPa.addSwordsXP(xp);
|
||||
if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker))
|
||||
PPa.addAxesXP(xp);
|
||||
if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker))
|
||||
PPa.addUnarmedXP(xp);
|
||||
}
|
||||
Skills.XpCheck(attacker);
|
||||
|
||||
//Taming Debug Stuff
|
||||
if(event.getEntity() instanceof Wolf)
|
||||
{
|
||||
if(Party.getInstance().inSameParty(attacker, Taming.getOwner(event.getEntity(), pluginx)))
|
||||
event.setCancelled(true);
|
||||
if(attacker.getItemInHand().getTypeId() == 352 && mcPermissions.getInstance().taming(attacker))
|
||||
{
|
||||
attacker.sendMessage(ChatColor.GREEN+"**You examine the Wolf using Beast Lore**");
|
||||
if(Taming.getOwnerName(event.getEntity()) != null)
|
||||
attacker.sendMessage(ChatColor.DARK_GREEN+"The Beast's Master : "+Taming.getOwnerName(event.getEntity()));
|
||||
else
|
||||
attacker.sendMessage(ChatColor.GRAY+"This Beast has no Master...");
|
||||
attacker.sendMessage(ChatColor.GREEN+"This beast has "+((Wolf)event.getEntity()).getHealth()+" Health");
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
//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) && PPa.getSkill("axes") >= 500)
|
||||
event.setDamage(event.getDamage()+4);
|
||||
|
||||
//If there are any abilities to activate
|
||||
combatAbilityChecks(attacker, PPa, pluginx);
|
||||
|
||||
//Check for offensive procs
|
||||
if(!(event instanceof EntityDamageByProjectileEvent))
|
||||
{
|
||||
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() + 5000
|
||||
&& ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis()
|
||||
&& defender.getHealth() >= 1)
|
||||
{
|
||||
if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker))
|
||||
PPa.addAxesXP((event.getDamage() * 2) * LoadProperties.pvpxprewardmodifier);
|
||||
if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker))
|
||||
PPa.addSwordsXP((event.getDamage() * 2) * LoadProperties.pvpxprewardmodifier);
|
||||
if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker))
|
||||
PPa.addUnarmedXP((event.getDamage() * 2) * LoadProperties.pvpxprewardmodifier);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(event.getEntity() instanceof Monster && !pluginx.misc.mobSpawnerList.contains(event.getEntity()))
|
||||
{
|
||||
int xp = 0;
|
||||
if(event.getEntity() instanceof Creeper)
|
||||
xp = (event.getDamage() * 4) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Spider)
|
||||
xp = (event.getDamage() * 3) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Skeleton)
|
||||
xp = (event.getDamage() * 2) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Zombie)
|
||||
xp = (event.getDamage() * 2) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof PigZombie)
|
||||
xp = (event.getDamage() * 3) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Slime)
|
||||
xp = (event.getDamage() * 3) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Ghast)
|
||||
xp = (event.getDamage() * 3) * LoadProperties.xpGainMultiplier;
|
||||
|
||||
if(pluginx.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
|
||||
{
|
||||
pluginx.mob.isAggressive.put(event.getEntity().getEntityId(), true);
|
||||
//ARMOR REDUCTION BASED ON ENEMY RANKING
|
||||
int modifiedDmg = event.getDamage() / (pluginx.mob.mobDiff.get(event.getEntity().getEntityId())+1);
|
||||
if(modifiedDmg < 1)
|
||||
modifiedDmg = 1;
|
||||
event.setDamage(modifiedDmg);
|
||||
}
|
||||
|
||||
//ADJUST TO DIFFICULTY
|
||||
if(pluginx.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
|
||||
{
|
||||
xp = xp * (pluginx.mob.mobDiff.get(event.getEntity().getEntityId())+1);
|
||||
}
|
||||
|
||||
if(m.isSwords(attacker.getItemInHand()) && mcPermissions.getInstance().swords(attacker))
|
||||
PPa.addSwordsXP(xp);
|
||||
if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker))
|
||||
PPa.addAxesXP(xp);
|
||||
if(attacker.getItemInHand().getTypeId() == 0 && mcPermissions.getInstance().unarmed(attacker))
|
||||
PPa.addUnarmedXP(xp);
|
||||
}
|
||||
Skills.XpCheck(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(Messages.getString("Combat.BeastLore")+" "+
|
||||
Messages.getString("Combat.BeastLoreOwner", new Object[] {Taming.getOwnerName(theWolf)})+" "+
|
||||
Messages.getString("Combat.BeastLoreHealthWolfTamed", new Object[] {theWolf.getHealth()}));
|
||||
}
|
||||
else
|
||||
{
|
||||
attacker.sendMessage(Messages.getString("Combat.BeastLore")+" "+
|
||||
Messages.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;
|
||||
if(Taming.hasOwner(eventb.getDamager(), pluginx))
|
||||
Wolf theWolf = (Wolf) eventb.getDamager();
|
||||
if(Taming.ownerOnline(theWolf, pluginx))
|
||||
{
|
||||
Player master = Taming.getOwner(eventb.getDamager(), pluginx);
|
||||
Player master = Taming.getOwner(theWolf, pluginx);
|
||||
PlayerProfile PPo = Users.getProfile(master);
|
||||
if(mcPermissions.getInstance().taming(master)){
|
||||
|
||||
if(mcPermissions.getInstance().taming(master))
|
||||
{
|
||||
//Sharpened Claws
|
||||
if(PPo.getTamingInt() >= 750)
|
||||
if(PPo.getSkill("taming") >= 750)
|
||||
{
|
||||
event.setDamage(event.getDamage() + 2);
|
||||
}
|
||||
|
||||
//Gore
|
||||
if(Math.random() * 1000 <= PPo.getTamingInt())
|
||||
if(Math.random() * 1000 <= PPo.getSkill("taming"))
|
||||
{
|
||||
event.setDamage(event.getDamage() * 2);
|
||||
|
||||
if(event.getEntity() instanceof Player)
|
||||
{
|
||||
Player target = (Player)event.getEntity();
|
||||
target.sendMessage(ChatColor.RED+"**STRUCK BY GORE**");
|
||||
target.sendMessage(Messages.getString("Combat.StruckByGore")); //$NON-NLS-1$
|
||||
Users.getProfile(target).setBleedTicks(2);
|
||||
}
|
||||
else
|
||||
Config.getInstance().addToBleedQue(event.getEntity());
|
||||
pluginx.misc.addToBleedQue((LivingEntity) event.getEntity());
|
||||
|
||||
master.sendMessage(ChatColor.GREEN+"**GORE**");
|
||||
master.sendMessage(Messages.getString("Combat.Gore")); //$NON-NLS-1$
|
||||
}
|
||||
if(!event.getEntity().isDead() && !pluginx.misc.mobSpawnerList.contains(event.getEntity()))
|
||||
{
|
||||
int xp = 0;
|
||||
if(event.getEntity() instanceof Monster)
|
||||
{
|
||||
if(event.getEntity() instanceof Creeper)
|
||||
xp = (event.getDamage() * 6) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Spider)
|
||||
xp = (event.getDamage() * 5) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Skeleton)
|
||||
xp = (event.getDamage() * 3) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Zombie)
|
||||
xp = (event.getDamage() * 3) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof PigZombie)
|
||||
xp = (event.getDamage() * 4) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Slime)
|
||||
xp = (event.getDamage() * 4) * LoadProperties.xpGainMultiplier;
|
||||
if(event.getEntity() instanceof Ghast)
|
||||
xp = (event.getDamage() * 4) * LoadProperties.xpGainMultiplier;
|
||||
Users.getProfile(master).addTamingXP(xp);
|
||||
}
|
||||
if(event.getEntity() instanceof Player)
|
||||
{
|
||||
xp = (event.getDamage() * 2) * LoadProperties.xpGainMultiplier;
|
||||
Users.getProfile(master).addTamingXP(xp);
|
||||
}
|
||||
Skills.XpCheck(master);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Another offensive check for Archery
|
||||
if(event instanceof EntityDamageByProjectileEvent)
|
||||
archeryCheck((EntityDamageByProjectileEvent) event);
|
||||
archeryCheck((EntityDamageByProjectileEvent) event, pluginx);
|
||||
|
||||
/*
|
||||
* DEFENSIVE CHECKS
|
||||
@ -192,29 +276,34 @@ public class Combat {
|
||||
/*
|
||||
* DEFENSIVE CHECKS FOR WOLVES
|
||||
*/
|
||||
if(event.getEntity() instanceof Wolf){
|
||||
if(Taming.hasOwner(event.getEntity(), pluginx))
|
||||
|
||||
if(event.getEntity() instanceof Wolf)
|
||||
{
|
||||
Wolf theWolf = (Wolf) event.getEntity();
|
||||
|
||||
if(Taming.ownerOnline(theWolf, pluginx))
|
||||
{
|
||||
Player master = Taming.getOwner(event.getEntity(), pluginx);
|
||||
Player master = Taming.getOwner(theWolf, pluginx);
|
||||
PlayerProfile PPo = Users.getProfile(master);
|
||||
if(mcPermissions.getInstance().taming(master))
|
||||
{
|
||||
/*
|
||||
* TEMPORARY FIX AS WOLVES AREN'T TRIGGERING DAMAGE EVENTS WHEN ATTACKING NON PLAYERS AT THE TIME OF WRITING
|
||||
*/
|
||||
if(!event.isCancelled() && event.getCause() != DamageCause.LIGHTNING){
|
||||
if(!event.isCancelled() && event.getCause() != DamageCause.LIGHTNING)
|
||||
{
|
||||
PPo.addTamingXP(event.getDamage() * 3);
|
||||
Skills.XpCheck(master);
|
||||
}
|
||||
|
||||
//Shock-Proof
|
||||
if((event.getCause() == DamageCause.ENTITY_EXPLOSION || event.getCause() == DamageCause.BLOCK_EXPLOSION) && PPo.getTamingInt() >= 500)
|
||||
if((event.getCause() == DamageCause.ENTITY_EXPLOSION || event.getCause() == DamageCause.BLOCK_EXPLOSION) && PPo.getSkill("taming") >= 500)
|
||||
{
|
||||
event.setDamage(2);
|
||||
}
|
||||
|
||||
//Thick Fur
|
||||
if(PPo.getTamingInt() >= 250)
|
||||
if(PPo.getSkill("taming") >= 250)
|
||||
event.setDamage(event.getDamage() / 2);
|
||||
}
|
||||
}
|
||||
@ -231,24 +320,31 @@ public class Combat {
|
||||
if(PPa.getFistsPreparationMode())
|
||||
Unarmed.berserkActivationCheck(attacker, pluginx);
|
||||
}
|
||||
public static void archeryCheck(EntityDamageByProjectileEvent event){
|
||||
public static void archeryCheck(EntityDamageByProjectileEvent event, mcMMO pluginx)
|
||||
{
|
||||
Entity y = event.getDamager();
|
||||
Entity x = event.getEntity();
|
||||
if(event.getProjectile().toString().equals("CraftArrow") && x instanceof Player){
|
||||
Projectile projectile = event.getProjectile();
|
||||
if(projectile.toString().equals("CraftArrow") && x instanceof Player)
|
||||
{ //$NON-NLS-1$
|
||||
Player defender = (Player)x;
|
||||
PlayerProfile PPd = Users.getProfile(defender);
|
||||
if(PPd == null)
|
||||
Users.addUser(defender);
|
||||
if(mcPermissions.getInstance().unarmed(defender) && defender.getItemInHand().getTypeId() == 0){
|
||||
if(defender != null && PPd.getUnarmedInt() >= 1000){
|
||||
if(Math.random() * 1000 <= 500){
|
||||
if(mcPermissions.getInstance().unarmed(defender) && defender.getItemInHand().getTypeId() == 0)
|
||||
{
|
||||
if(defender != null && PPd.getSkill("unarmed") >= 1000)
|
||||
{
|
||||
if(Math.random() * 1000 <= 500)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
defender.sendMessage(ChatColor.WHITE+"**ARROW DEFLECT**");
|
||||
defender.sendMessage(Messages.getString("Combat.ArrowDeflect")); //$NON-NLS-1$
|
||||
return;
|
||||
}
|
||||
} else if(defender != null && Math.random() * 1000 <= (PPd.getUnarmedInt() / 2)){
|
||||
} else if(defender != null && Math.random() * 1000 <= (PPd.getSkill("unarmed") / 2))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
defender.sendMessage(ChatColor.WHITE+"**ARROW DEFLECT**");
|
||||
defender.sendMessage(Messages.getString("Combat.ArrowDeflect")); //$NON-NLS-1$
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -256,22 +352,30 @@ public class Combat {
|
||||
/*
|
||||
* If attacker is player
|
||||
*/
|
||||
if(y instanceof Player){
|
||||
if(y instanceof Player)
|
||||
{
|
||||
Player attacker = (Player)y;
|
||||
PlayerProfile PPa = Users.getProfile(attacker);
|
||||
if(event.getProjectile().toString().equals("CraftArrow") && mcPermissions.getInstance().archery(attacker)){
|
||||
if(!Config.getInstance().isTracked(x) && event.getDamage() > 0){
|
||||
Config.getInstance().addArrowTrack(x, 0);
|
||||
if(attacker != null){
|
||||
if(Math.random() * 1000 <= PPa.getArcheryInt()){
|
||||
Config.getInstance().addArrowCount(x, 1);
|
||||
if(projectile.toString().equals("CraftArrow") && mcPermissions.getInstance().archery(attacker))
|
||||
{ //$NON-NLS-1$
|
||||
if(!pluginx.misc.arrowTracker.containsKey(x) && event.getDamage() > 0)
|
||||
{
|
||||
pluginx.misc.arrowTracker.put(x, 0);
|
||||
if(attacker != null)
|
||||
{
|
||||
if(Math.random() * 1000 <= PPa.getSkill("archery"))
|
||||
{
|
||||
pluginx.misc.arrowTracker.put(x, 1);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(event.getDamage() > 0){
|
||||
} else
|
||||
{
|
||||
if(event.getDamage() > 0)
|
||||
{
|
||||
if(attacker != null){
|
||||
if(Math.random() * 1000 <= PPa.getArcheryInt()){
|
||||
Config.getInstance().addArrowCount(x, 1);
|
||||
if(Math.random() * 1000 <= PPa.getSkill("archery"))
|
||||
{
|
||||
pluginx.misc.arrowTracker.put(x, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -279,15 +383,15 @@ public class Combat {
|
||||
/*
|
||||
* DAMAGE MODIFIER
|
||||
*/
|
||||
if(PPa.getArcheryInt() >= 50 && PPa.getArcheryInt() < 250)
|
||||
if(PPa.getSkill("archery") >= 50 && PPa.getSkill("archery") < 250)
|
||||
event.setDamage(event.getDamage()+1);
|
||||
if(PPa.getArcheryInt() >= 250 && PPa.getArcheryInt() < 575)
|
||||
if(PPa.getSkill("archery") >= 250 && PPa.getSkill("archery") < 575)
|
||||
event.setDamage(event.getDamage()+2);
|
||||
if(PPa.getArcheryInt() >= 575 && PPa.getArcheryInt() < 725)
|
||||
if(PPa.getSkill("archery") >= 575 && PPa.getSkill("archery") < 725)
|
||||
event.setDamage(event.getDamage()+3);
|
||||
if(PPa.getArcheryInt() >= 725 && PPa.getArcheryInt() < 1000)
|
||||
if(PPa.getSkill("archery") >= 725 && PPa.getSkill("archery") < 1000)
|
||||
event.setDamage(event.getDamage()+4);
|
||||
if(PPa.getArcheryInt() >= 1000)
|
||||
if(PPa.getSkill("archery") >= 1000)
|
||||
event.setDamage(event.getDamage()+5);
|
||||
|
||||
/*
|
||||
@ -296,27 +400,27 @@ public class Combat {
|
||||
if(Math.random() * 100 >= 75){
|
||||
|
||||
int ignition = 20;
|
||||
if(PPa.getArcheryInt() >= 200)
|
||||
if(PPa.getSkill("archery") >= 200)
|
||||
ignition+=20;
|
||||
if(PPa.getArcheryInt() >= 400)
|
||||
if(PPa.getSkill("archery") >= 400)
|
||||
ignition+=20;
|
||||
if(PPa.getArcheryInt() >= 600)
|
||||
if(PPa.getSkill("archery") >= 600)
|
||||
ignition+=20;
|
||||
if(PPa.getArcheryInt() >= 800)
|
||||
if(PPa.getSkill("archery") >= 800)
|
||||
ignition+=20;
|
||||
if(PPa.getArcheryInt() >= 1000)
|
||||
if(PPa.getSkill("archery") >= 1000)
|
||||
ignition+=20;
|
||||
|
||||
if(x instanceof Player){
|
||||
Player Defender = (Player)x;
|
||||
if(!Party.getInstance().inSameParty(attacker, Defender)){
|
||||
event.getEntity().setFireTicks(ignition);
|
||||
attacker.sendMessage(ChatColor.RED+"**IGNITION**");
|
||||
Defender.sendMessage(ChatColor.DARK_RED+"You were struck by a burning arrow!");
|
||||
attacker.sendMessage(Messages.getString("Combat.Ignition")); //$NON-NLS-1$
|
||||
Defender.sendMessage(Messages.getString("Combat.BurningArrowHit")); //$NON-NLS-1$
|
||||
}
|
||||
} else {
|
||||
event.getEntity().setFireTicks(ignition);
|
||||
attacker.sendMessage(ChatColor.RED+"**IGNITION**");
|
||||
attacker.sendMessage(Messages.getString("Combat.Ignition")); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
/*
|
||||
@ -324,27 +428,25 @@ public class Combat {
|
||||
*/
|
||||
if(x instanceof Monster){
|
||||
//XP
|
||||
if(!Config.getInstance().isMobSpawnTracked(x)){
|
||||
if(x instanceof Creeper)
|
||||
PPa.addArcheryXP((event.getDamage() * 4) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof Spider)
|
||||
PPa.addArcheryXP((event.getDamage() * 3) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof Skeleton)
|
||||
PPa.addArcheryXP((event.getDamage() * 2) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof Zombie)
|
||||
PPa.addArcheryXP((event.getDamage() * 2) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof PigZombie)
|
||||
PPa.addArcheryXP((event.getDamage() * 3) * LoadProperties.xpGainMultiplier);
|
||||
}
|
||||
if(x instanceof Creeper)
|
||||
PPa.addArcheryXP((event.getDamage() * 4) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof Spider)
|
||||
PPa.addArcheryXP((event.getDamage() * 3) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof Skeleton)
|
||||
PPa.addArcheryXP((event.getDamage() * 2) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof Zombie)
|
||||
PPa.addArcheryXP((event.getDamage() * 2) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof PigZombie)
|
||||
PPa.addArcheryXP((event.getDamage() * 3) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof Slime)
|
||||
PPa.addArcheryXP((event.getDamage() * 3) * LoadProperties.xpGainMultiplier);
|
||||
if(x instanceof Ghast)
|
||||
PPa.addArcheryXP((event.getDamage() * 3) * LoadProperties.xpGainMultiplier);
|
||||
}
|
||||
/*
|
||||
* Attacker is Player
|
||||
*/
|
||||
if(x instanceof Player){
|
||||
if(LoadProperties.pvp == false){
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
Player defender = (Player)x;
|
||||
PlayerProfile PPd = Users.getProfile(defender);
|
||||
/*
|
||||
@ -359,7 +461,8 @@ public class Combat {
|
||||
/*
|
||||
* PVP XP
|
||||
*/
|
||||
if(LoadProperties.pvpxp && !Party.getInstance().inSameParty(attacker, defender)){
|
||||
if(LoadProperties.pvpxp && !Party.getInstance().inSameParty(attacker, defender)
|
||||
&& ((PPd.getLastLogin()+5)*1000) < System.currentTimeMillis()){
|
||||
PPa.addArcheryXP((event.getDamage() * 3) * LoadProperties.pvpxprewardmodifier);
|
||||
}
|
||||
/*
|
||||
@ -371,16 +474,16 @@ public class Combat {
|
||||
} else {
|
||||
loc.setPitch(-90);
|
||||
}
|
||||
if(PPa.getArcheryInt() >= 1000){
|
||||
if(PPa.getSkill("archery") >= 1000){
|
||||
if(Math.random() * 1000 <= 500){
|
||||
defender.teleport(loc);
|
||||
defender.sendMessage(ChatColor.DARK_RED+"Touched Fuzzy. Felt Dizzy.");
|
||||
attacker.sendMessage("Target was "+ChatColor.DARK_RED+"Dazed");
|
||||
defender.sendMessage(Messages.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$
|
||||
attacker.sendMessage(Messages.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
} else if(Math.random() * 2000 <= PPa.getArcheryInt()){
|
||||
} else if(Math.random() * 2000 <= PPa.getSkill("archery")){
|
||||
defender.teleport(loc);
|
||||
defender.sendMessage(ChatColor.DARK_RED+"Touched Fuzzy. Felt Dizzy.");
|
||||
attacker.sendMessage("Target was "+ChatColor.DARK_RED+"Dazed");
|
||||
defender.sendMessage(Messages.getString("Combat.TouchedFuzzy")); //$NON-NLS-1$
|
||||
attacker.sendMessage(Messages.getString("Combat.TargetDazed")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -398,4 +501,11 @@ public class Combat {
|
||||
((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;
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,6 @@ import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.HashMap;
|
||||
import java.util.ArrayList;
|
||||
import java.sql.PreparedStatement;
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
@ -50,7 +49,7 @@ public class Item {
|
||||
y++;
|
||||
if(player != null){
|
||||
if(player.getLocation().getWorld().getBlockAt(block.getX(), y, block.getZ()).getType() != Material.AIR){
|
||||
player.sendMessage("**CHIMAERA WING FAILED!**");
|
||||
player.sendMessage(Messages.getString("Item.ChimaeraWingFail")); //$NON-NLS-1$
|
||||
player.teleport(player.getLocation().getWorld().getBlockAt(block.getX(), (y - 1), block.getZ()).getLocation());
|
||||
return;
|
||||
}
|
||||
@ -67,12 +66,11 @@ public class Item {
|
||||
} else {
|
||||
player.teleport(player.getWorld().getSpawnLocation());
|
||||
}
|
||||
player.sendMessage("**CHIMAERA WING**");
|
||||
player.sendMessage(Messages.getString("Item.ChimaeraWingPass")); //$NON-NLS-1$
|
||||
} else if (!Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= 10) {
|
||||
player.sendMessage("You were injured recently and must wait to use this."
|
||||
+ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)+"s)");
|
||||
player.sendMessage(Messages.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)})); //$NON-NLS-1$
|
||||
} else if (is.getTypeId() == 288 && is.getAmount() <= 9){
|
||||
player.sendMessage("You need more of that to use it");
|
||||
player.sendMessage(Messages.getString("Item.NeedFeathers")); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,8 +13,8 @@ import com.gmail.nossr50.datatypes.PlayerStat;
|
||||
import com.gmail.nossr50.datatypes.Tree;
|
||||
|
||||
public class Leaderboard {
|
||||
static String location = "plugins/mcMMO/mcmmo.users";
|
||||
protected static final Logger log = Logger.getLogger("Minecraft");
|
||||
static String location = "plugins/mcMMO/mcmmo.users"; //$NON-NLS-1$
|
||||
protected static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$
|
||||
|
||||
/*
|
||||
* Read from the file
|
||||
@ -39,11 +39,11 @@ public class Leaderboard {
|
||||
//Open the user file
|
||||
FileReader file = new FileReader(location);
|
||||
BufferedReader in = new BufferedReader(file);
|
||||
String line = "";
|
||||
String line = ""; //$NON-NLS-1$
|
||||
while((line = in.readLine()) != null)
|
||||
{
|
||||
|
||||
String[] character = line.split(":");
|
||||
String[] character = line.split(":"); //$NON-NLS-1$
|
||||
String p = character[0];
|
||||
|
||||
|
||||
@ -99,26 +99,26 @@ public class Leaderboard {
|
||||
}
|
||||
in.close();
|
||||
} catch (Exception e) {
|
||||
log.log(Level.SEVERE, "Exception while reading "
|
||||
+ location + " (Are you sure you formatted it correctly?)", 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(), "mining");
|
||||
leaderWrite(WoodCutting.inOrder(), "woodcutting");
|
||||
leaderWrite(Repair.inOrder(), "repair");
|
||||
leaderWrite(Unarmed.inOrder(), "unarmed");
|
||||
leaderWrite(Herbalism.inOrder(), "herbalism");
|
||||
leaderWrite(Excavation.inOrder(), "excavation");
|
||||
leaderWrite(Archery.inOrder(), "archery");
|
||||
leaderWrite(Swords.inOrder(), "swords");
|
||||
leaderWrite(Axes.inOrder(), "axes");
|
||||
leaderWrite(Acrobatics.inOrder(), "acrobatics");
|
||||
leaderWrite(Taming.inOrder(), "taming");
|
||||
leaderWrite(PowerLevel.inOrder(), "powerlevel");
|
||||
leaderWrite(Mining.inOrder(), "mining"); //$NON-NLS-1$
|
||||
leaderWrite(WoodCutting.inOrder(), "woodcutting"); //$NON-NLS-1$
|
||||
leaderWrite(Repair.inOrder(), "repair"); //$NON-NLS-1$
|
||||
leaderWrite(Unarmed.inOrder(), "unarmed"); //$NON-NLS-1$
|
||||
leaderWrite(Herbalism.inOrder(), "herbalism"); //$NON-NLS-1$
|
||||
leaderWrite(Excavation.inOrder(), "excavation"); //$NON-NLS-1$
|
||||
leaderWrite(Archery.inOrder(), "archery"); //$NON-NLS-1$
|
||||
leaderWrite(Swords.inOrder(), "swords"); //$NON-NLS-1$
|
||||
leaderWrite(Axes.inOrder(), "axes"); //$NON-NLS-1$
|
||||
leaderWrite(Acrobatics.inOrder(), "acrobatics"); //$NON-NLS-1$
|
||||
leaderWrite(Taming.inOrder(), "taming"); //$NON-NLS-1$
|
||||
leaderWrite(PowerLevel.inOrder(), "powerlevel"); //$NON-NLS-1$
|
||||
}
|
||||
public static void leaderWrite(PlayerStat[] ps, String statName)
|
||||
{
|
||||
String theLocation = "plugins/mcMMO/" + statName + ".mcmmo";
|
||||
String theLocation = "plugins/mcMMO/" + statName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
|
||||
//CHECK IF THE FILE EXISTS
|
||||
File theDir = new File(theLocation);
|
||||
if(!theDir.exists()){
|
||||
@ -127,14 +127,14 @@ public class Leaderboard {
|
||||
try {
|
||||
writer = new FileWriter(theLocation);
|
||||
} catch (Exception e) {
|
||||
log.log(Level.SEVERE, "Exception while creating " + theLocation, 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);
|
||||
log.log(Level.SEVERE, "Exception while closing writer for " + theLocation, e); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -147,12 +147,12 @@ public class Leaderboard {
|
||||
|
||||
for(PlayerStat p : ps)
|
||||
{
|
||||
if(p.name.equals("$mcMMO_DummyInfo"))
|
||||
if(p.name.equals("$mcMMO_DummyInfo")) //$NON-NLS-1$
|
||||
continue;
|
||||
if(p.statVal == 0)
|
||||
continue;
|
||||
writer.append(p.name + ":" + p.statVal);
|
||||
writer.append("\r\n");
|
||||
writer.append(p.name + ":" + p.statVal); //$NON-NLS-1$
|
||||
writer.append("\r\n"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
in.close();
|
||||
@ -161,7 +161,7 @@ public class Leaderboard {
|
||||
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);
|
||||
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
|
||||
@ -170,7 +170,7 @@ public class Leaderboard {
|
||||
}
|
||||
|
||||
public static String[] retrieveInfo(String statName, int pagenumber){
|
||||
String theLocation = "plugins/mcMMO/" + statName + ".mcmmo";
|
||||
String theLocation = "plugins/mcMMO/" + statName + ".mcmmo"; //$NON-NLS-1$ //$NON-NLS-2$
|
||||
try {
|
||||
FileReader file = new FileReader(theLocation);
|
||||
BufferedReader in = new BufferedReader(file);
|
||||
@ -178,7 +178,7 @@ public class Leaderboard {
|
||||
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 = "";
|
||||
String line = ""; //$NON-NLS-1$
|
||||
String[] info = new String[10]; //what to return
|
||||
while((line = in.readLine()) != null && y < 10)
|
||||
{
|
||||
@ -191,41 +191,41 @@ public class Leaderboard {
|
||||
in.close();
|
||||
return info;
|
||||
} catch (Exception e) {
|
||||
log.log(Level.SEVERE, "Exception while reading "
|
||||
+ theLocation + " (Are you sure you formatted it correctly?)", 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, String statName){
|
||||
if(LoadProperties.useMySQL)
|
||||
return;
|
||||
String theLocation = "plugins/mcMMO/" + statName + ".mcmmo";
|
||||
String theLocation = "plugins/mcMMO/" + statName + ".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 = "";
|
||||
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)
|
||||
if(Integer.valueOf(line.split(":")[1]) < ps.statVal && !inserted) //$NON-NLS-1$
|
||||
{
|
||||
writer.append(ps.name + ":" + ps.statVal).append("\r\n");
|
||||
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))
|
||||
if(!line.split(":")[0].equalsIgnoreCase(ps.name)) //$NON-NLS-1$
|
||||
{
|
||||
writer.append(line).append("\r\n");
|
||||
writer.append(line).append("\r\n"); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
||||
if(!inserted)
|
||||
{
|
||||
writer.append(ps.name + ":" + ps.statVal).append("\r\n");
|
||||
writer.append(ps.name + ":" + ps.statVal).append("\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
|
||||
in.close();
|
||||
@ -234,7 +234,7 @@ public class Leaderboard {
|
||||
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);
|
||||
log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
}
|
||||
public static boolean isInt(String string){
|
||||
|
73
mcMMO/com/gmail/nossr50/Messages.java
Normal file
73
mcMMO/com/gmail/nossr50/Messages.java
Normal file
@ -0,0 +1,73 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
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 Messages {
|
||||
private static final String BUNDLE_NAME = "com.gmail.nossr50.messages"; //$NON-NLS-1$
|
||||
|
||||
private static ResourceBundle RESOURCE_BUNDLE = null;
|
||||
|
||||
private Messages() {
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
76
mcMMO/com/gmail/nossr50/Mob.java
Normal file
76
mcMMO/com/gmail/nossr50/Mob.java
Normal file
@ -0,0 +1,76 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.bukkit.entity.*;
|
||||
|
||||
public class Mob
|
||||
{
|
||||
HashMap<Integer, Short> mobDiff = new HashMap<Integer, Short>();
|
||||
HashMap<Integer, Boolean> isAggressive = new HashMap<Integer, Boolean>();
|
||||
|
||||
public void assignDifficulty(Entity entity)
|
||||
{
|
||||
short x = 0;
|
||||
|
||||
if(entity.getLocation().getY() >= 45)
|
||||
{
|
||||
//LEVEL 2
|
||||
if(Math.random() * 100 > 50)
|
||||
{
|
||||
x = 0;
|
||||
}
|
||||
//LEVEL 3
|
||||
else
|
||||
{
|
||||
x = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
double y = Math.random() * 100;
|
||||
//HIGH CHANCE FOR 5's
|
||||
if(entity.getLocation().getY() < 20)
|
||||
{
|
||||
//ASSIGN INTO THE 5 RANKS
|
||||
if(y >= 0 && y < 50)
|
||||
x = 0;
|
||||
if(y >= 50 && y < 80)
|
||||
x = 1;
|
||||
if(y >= 80 && y < 95)
|
||||
x = 2;
|
||||
if(y >= 95 && y < 98)
|
||||
x = 3;
|
||||
if(y >= 98 && y <= 100)
|
||||
x = 4;
|
||||
}
|
||||
//HIGH CHANCE FOR 4's
|
||||
else
|
||||
{
|
||||
//ASSIGN INTO THE 5 RANKS
|
||||
if(y >= 0 && y < 50)
|
||||
x = 0;
|
||||
if(y >= 50 && y < 74)
|
||||
x = 1;
|
||||
if(y >= 74 && y < 89)
|
||||
x = 2;
|
||||
if(y >= 89 && y < 99)
|
||||
x = 3;
|
||||
if(y >= 99 && y <= 100)
|
||||
x = 4;
|
||||
}
|
||||
if(x > 1)
|
||||
{
|
||||
isAggressive.put(entity.getEntityId(), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(!mobDiff.containsKey(entity.getEntityId()))
|
||||
{
|
||||
mobDiff.put(entity.getEntityId(), x);
|
||||
//System.out.println("Mob "+entity.getEntityId()+" (DIFFICULTY) "+
|
||||
//(x +1)+"(DEPTH) "+entity.getLocation().getY());
|
||||
}
|
||||
}
|
||||
}
|
@ -1,16 +1,12 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Properties;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
|
||||
|
||||
@ -28,15 +24,18 @@ public class Users {
|
||||
properties.load(new FileInputStream(location));
|
||||
}
|
||||
//To save
|
||||
public void save() {
|
||||
try {
|
||||
properties.store(new FileOutputStream(location), null);
|
||||
}catch(IOException ex) {
|
||||
}
|
||||
public void save()
|
||||
{
|
||||
try
|
||||
{
|
||||
properties.store(new FileOutputStream(location), null);
|
||||
}catch(IOException ex) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void loadUsers(){
|
||||
public void loadUsers()
|
||||
{
|
||||
File theDir = new File(location);
|
||||
if(!theDir.exists()){
|
||||
//properties = new PropertiesFile(location);
|
||||
@ -77,9 +76,12 @@ public class Users {
|
||||
return players;
|
||||
}
|
||||
|
||||
public static void removeUser(Player player){
|
||||
public static void removeUser(Player player)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(PP != null){
|
||||
|
||||
if(PP != null)
|
||||
{
|
||||
PP.save();
|
||||
if(players.containsKey(player))
|
||||
players.remove(player);
|
||||
@ -87,7 +89,13 @@ public class Users {
|
||||
}
|
||||
|
||||
public static PlayerProfile getProfile(Player player){
|
||||
return players.get(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() {
|
||||
@ -96,8 +104,5 @@ public class Users {
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
public static void getRow(){
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,176 +0,0 @@
|
||||
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.Player;
|
||||
|
||||
public class Config {
|
||||
private static volatile Config instance;
|
||||
String location = "mcmmo.properties";
|
||||
protected static final Logger log = Logger.getLogger("Minecraft");
|
||||
public static ArrayList<Player> removalQue = new ArrayList<Player>();
|
||||
static ArrayList<String> adminChatList = new ArrayList<String>();
|
||||
static ArrayList<Block> blockWatchList = new ArrayList<Block>();
|
||||
static ArrayList<Block> treeFeller = new ArrayList<Block>();
|
||||
static ArrayList<String> partyChatList = new ArrayList<String>();
|
||||
static ArrayList<String> godModeList = new ArrayList<String>();
|
||||
HashMap<Entity, Integer> arrowTracker = new HashMap<Entity, Integer>();
|
||||
static ArrayList<Entity> bleedTracker = new ArrayList<Entity>();
|
||||
static ArrayList<Entity> mobSpawnTracker = new ArrayList<Entity>();
|
||||
|
||||
/*
|
||||
* The Bleed Que Stuff
|
||||
*/
|
||||
public Entity[] bleedQue = new Entity[20];
|
||||
public int bleedQuePos = 0;
|
||||
|
||||
public void addToBleedQue(Entity 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
|
||||
Entity[] temp = new Entity[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 Entity[] getBleedQue(){return bleedQue;}
|
||||
|
||||
public void clearBleedQue(){
|
||||
bleedQue = new Entity[bleedQue.length];
|
||||
setBleedQuePos(0);
|
||||
}
|
||||
public void setBleedQuePos(int x){bleedQuePos = x;}
|
||||
|
||||
/*
|
||||
* The Bleed Removal Que Stuff
|
||||
*/
|
||||
|
||||
public Entity[] bleedRemovalQue = new Entity[20];
|
||||
public int bleedRemovalQuePos = 0;
|
||||
|
||||
public void addToBleedRemovalQue(Entity 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
|
||||
Entity[] temp = new Entity[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;
|
||||
}
|
||||
}
|
||||
|
||||
public Entity[] getBleedRemovalQue(){return bleedRemovalQue;}
|
||||
|
||||
public void clearBleedRemovalQue(){
|
||||
bleedQue = new Entity[bleedRemovalQue.length];
|
||||
setBleedQuePos(0);
|
||||
}
|
||||
public void setBleedRemovalQuePos(int x){bleedRemovalQuePos = x;}
|
||||
|
||||
|
||||
public boolean isBlockWatched(Block block) {return blockWatchList.contains(block);}
|
||||
public boolean isTreeFellerWatched(Block block) {return treeFeller.contains(block);}
|
||||
public ArrayList<Block> getTreeFeller() {return treeFeller;}
|
||||
public void removeBlockWatch(Block block) {blockWatchList.remove(blockWatchList.indexOf(block));}
|
||||
public void addBlockWatch(Block block) {blockWatchList.add(block);}
|
||||
public void removeTreeFeller(Block block) {treeFeller.remove(treeFeller.indexOf(block));}
|
||||
public void addTreeFeller(Block block) {treeFeller.add(block);}
|
||||
public void addBleedTrack(Entity entity) {bleedTracker.add(entity);}
|
||||
public void addMobSpawnTrack(Entity entity) {mobSpawnTracker.add(entity);}
|
||||
public void removeMobSpawnTrack(Entity entity) {mobSpawnTracker.remove(entity);}
|
||||
public ArrayList<Entity> getBleedTracked() {return bleedTracker;}
|
||||
public void addArrowTrack(Entity entity, Integer arrowcount) {arrowTracker.put(entity, arrowcount);}
|
||||
public Integer getArrowCount(Entity entity) {return arrowTracker.get(entity);}
|
||||
public void removeArrowTracked(Entity entity){
|
||||
if(arrowTracker.containsKey(entity)){
|
||||
arrowTracker.remove(entity);
|
||||
}
|
||||
}
|
||||
public void removeBleedTrack(Entity entity){
|
||||
bleedTracker.remove(entity);
|
||||
}
|
||||
public void clearTreeFeller(){
|
||||
treeFeller.clear();
|
||||
}
|
||||
public void setBleedCount(Entity entity, Integer newvalue){
|
||||
bleedTracker.add(entity);
|
||||
}
|
||||
public void addArrowCount(Entity entity, Integer newvalue) {
|
||||
arrowTracker.put(entity, arrowTracker.get(entity) + newvalue);
|
||||
}
|
||||
public boolean isTracked(Entity entity) {
|
||||
if(arrowTracker.containsKey(entity)){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public boolean isMobSpawnTracked(Entity entity) {
|
||||
if(mobSpawnTracker.contains(entity)){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public boolean isBleedTracked(Entity entity) {
|
||||
if(bleedTracker.contains(entity)){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public boolean isAdminToggled(String playerName) {return adminChatList.contains(playerName);}
|
||||
public boolean isPartyToggled(String playerName) {return partyChatList.contains(playerName);}
|
||||
public boolean isGodModeToggled(String playerName) {return godModeList.contains(playerName);}
|
||||
public void removeGodModeToggled(String playerName) {godModeList.remove(godModeList.indexOf(playerName));}
|
||||
public void removePartyToggled(String playerName) {partyChatList.remove(partyChatList.indexOf(playerName));}
|
||||
public void removeAdminToggled(String playerName) {adminChatList.remove(adminChatList.indexOf(playerName));}
|
||||
public void addGodModeToggled(String playerName) {godModeList.add(playerName);}
|
||||
public void addPartyToggled(String playerName) {partyChatList.add(playerName);}
|
||||
public void addAdminToggled(String playerName) {adminChatList.add(playerName);}
|
||||
|
||||
public static Config getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new Config();
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
public void toggleAdminChat(String playerName){
|
||||
if(isAdminToggled(playerName)){
|
||||
removeAdminToggled(playerName);
|
||||
} else {
|
||||
addAdminToggled(playerName);
|
||||
}
|
||||
}
|
||||
public void toggleGodMode(String playerName){
|
||||
if(isGodModeToggled(playerName)){
|
||||
removeGodModeToggled(playerName);
|
||||
} else {
|
||||
addGodModeToggled(playerName);
|
||||
}
|
||||
}
|
||||
public void togglePartyChat(String playerName){
|
||||
if(isPartyToggled(playerName)){
|
||||
removePartyToggled(playerName);
|
||||
} else {
|
||||
addPartyToggled(playerName);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,131 +1,415 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import org.bukkit.util.config.Configuration;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
public class LoadProperties {
|
||||
public static Boolean enableCobbleToMossy, useMySQL, cocoabeans, archeryFireRateLimit, mushrooms, toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, pvp, eggs, apples, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
|
||||
public static String MySQLtablePrefix, MySQLuserName, MySQLserverName, MySQLdbName, MySQLdbPass, mctop, addxp, mcability, mcmmo, mcc, mcrefresh, mcitem, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn, nWood, nStone, nIron, nGold, nDiamond;;
|
||||
public static int MySQLport, xpGainMultiplier, superBreakerCooldown, greenTerraCooldown, gigaDrillBreakerCooldown, treeFellerCooldown, berserkCooldown, serratedStrikeCooldown, skullSplitterCooldown, abilityDurabilityLoss, feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, tamingxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier, rWood, rStone, rIron, rGold, rDiamond;;
|
||||
public static Boolean xpGainsMobSpawners=false, print_reports = false, myspawnEnable = true, mccEnable = true, mcmmoEnable = true, partyEnable = true, inviteEnable = true, acceptEnable = true, whoisEnable = true, statsEnable = true, addxpEnable = true, ptpEnable = true, mmoeditEnable = true, clearmyspawnEnable = true, mcgodEnable = true, mcabilityEnable = true, mctopEnable = true, mcrefreshEnable = true, enableMotd, enableMySpawn, enableRegen, enableCobbleToMossy, useMySQL, cocoabeans, archeryFireRateLimit, mushrooms, toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, eggs, apples, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
|
||||
public static String MySQLtablePrefix, MySQLuserName, MySQLserverName, MySQLdbName, MySQLdbPass, mctop, addxp, mcability, mcmmo, mcc, mcrefresh, mcgod, stats, mmoedit, ptp, party, myspawn, whois, invite, accept, clearmyspawn, nWood, nStone, nIron, nGold, nDiamond, locale;
|
||||
public static int mcocoa = 10, water_thunder = 75, cure_self = 5, cure_other = 5, mbones, msulphur, mslowsand, mmushroom2, mglowstone2, mmusic, mdiamond2, mbase, mapple, meggs, mcake, mpine, mbirch, mspruce, mcactus, mmushroom, mflower, msugar, mpumpkin, mwheat, mgold, mdiamond, miron, mredstone, mlapus, mobsidian, mnetherrack, mglowstone, mcoal, mstone, MySQLport, xpGainMultiplier, superBreakerCooldown = 240, greenTerraCooldown = 240, gigaDrillBreakerCooldown = 240, treeFellerCooldown = 240, berserkCooldown = 240, serratedStrikeCooldown = 240, skullSplitterCooldown = 240, abilityDurabilityLoss, feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, tamingxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, sorceryxpmodifier = 2, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier, rWood, rStone, rIron, rGold, rDiamond;
|
||||
private static mcMMO plugin;
|
||||
|
||||
public static void loadMain(){
|
||||
String propertiesFile = mcMMO.maindirectory + "mcmmo.properties";
|
||||
mcProperties properties = new mcProperties(propertiesFile);
|
||||
properties.load();
|
||||
|
||||
/*
|
||||
* COOLDOWN CONTROL
|
||||
*/
|
||||
greenTerraCooldown = properties.getInteger("greenTerraCooldown", 240);
|
||||
superBreakerCooldown = properties.getInteger("superBreakerCooldown", 240);
|
||||
gigaDrillBreakerCooldown = properties.getInteger("gigaDrillBreakerCooldown", 240);
|
||||
treeFellerCooldown = properties.getInteger("treeFellerCooldown", 240);
|
||||
berserkCooldown = properties.getInteger("berserkCooldown", 240);
|
||||
serratedStrikeCooldown = properties.getInteger("serratedStrikeCooldown", 240);
|
||||
skullSplitterCooldown = properties.getInteger("skullSplitterCooldown", 240);
|
||||
|
||||
/*
|
||||
* MySQL Stuff
|
||||
*/
|
||||
|
||||
MySQLserverName = properties.getString("MySQLServer", "ipofserver");
|
||||
MySQLdbPass = properties.getString("MySQLdbPass", "defaultdbpass");
|
||||
MySQLdbName = properties.getString("MySQLdbName", "defaultdbname");
|
||||
MySQLuserName = properties.getString("MySQLuserName", "defaultusername");
|
||||
MySQLtablePrefix = properties.getString("MySQLTablePrefix", "mcmmo_");
|
||||
MySQLport = properties.getInteger("MySQLport", 3306);
|
||||
useMySQL = properties.getBoolean("UseMySQL", false);
|
||||
|
||||
/*
|
||||
* OTHER
|
||||
*/
|
||||
|
||||
enableCobbleToMossy = properties.getBoolean("enableGreenThumbCobbleToMossy", true);
|
||||
archeryFireRateLimit = properties.getBoolean("archeryFireRateLimit", true);
|
||||
xpGainMultiplier = properties.getInteger("xpGainMultiplier", 1);
|
||||
toolsLoseDurabilityFromAbilities = properties.getBoolean("toolsLoseDurabilityFromAbilities", true);
|
||||
abilityDurabilityLoss = properties.getInteger("abilityDurabilityLoss", 2);
|
||||
feathersConsumedByChimaeraWing = properties.getInteger("feathersConsumedByChimaeraWing", 10);
|
||||
pvpxp = properties.getBoolean("pvpGivesXP", true);
|
||||
pvpxprewardmodifier = properties.getInteger("pvpXpRewardModifier", 1);
|
||||
miningrequirespickaxe = properties.getBoolean("miningRequiresPickaxe", true);
|
||||
woodcuttingrequiresaxe = properties.getBoolean("woodcuttingRequiresAxe", true);
|
||||
repairdiamondlevel = properties.getInteger("repairDiamondLevel", 50);
|
||||
/*
|
||||
* EXPERIENCE RATE MODIFIER
|
||||
*/
|
||||
globalxpmodifier = properties.getInteger("globalXpModifier", 1);
|
||||
tamingxpmodifier = properties.getInteger("tamingXpModifier", 2);
|
||||
miningxpmodifier = properties.getInteger("miningXpModifier", 2);
|
||||
repairxpmodifier = properties.getInteger("repairXpModifier", 2);
|
||||
woodcuttingxpmodifier = properties.getInteger("woodcuttingXpModifier", 2);
|
||||
unarmedxpmodifier = properties.getInteger("unarmedXpModifier", 2);
|
||||
herbalismxpmodifier = properties.getInteger("herbalismXpModifier", 2);
|
||||
excavationxpmodifier = properties.getInteger("excavationXpModifier", 2);
|
||||
archeryxpmodifier = properties.getInteger("archeryXpModifier", 2);
|
||||
swordsxpmodifier = properties.getInteger("swordsXpModifier", 2);
|
||||
axesxpmodifier = properties.getInteger("axesXpModifier", 2);
|
||||
acrobaticsxpmodifier = properties.getInteger("acrobaticsXpModifier", 2);
|
||||
/*
|
||||
* TOGGLE CLAY
|
||||
*/
|
||||
clay = properties.getBoolean("gravelToClay", true);
|
||||
/*
|
||||
* ANVIL MESSAGES
|
||||
*/
|
||||
anvilmessages = properties.getBoolean("anvilMessages", true);
|
||||
|
||||
/*
|
||||
* ANVIL REPAIR (REQUIRED ITEM) AND (NAME OF ITEM)
|
||||
*/
|
||||
rGold = properties.getInteger("GoldRepairItemNumber", 266);
|
||||
nGold = properties.getString("GoldItemRepairName", "Gold Bars");
|
||||
rStone = properties.getInteger("CobblestoneRepairItemNumber", 4);
|
||||
nStone = properties.getString("CobblestoneItemRepairName", "Cobblestone");
|
||||
rWood = properties.getInteger("WoodRepairItemNumber", 5);
|
||||
nWood = properties.getString("WoodItemRepairName", "Wood Planks");
|
||||
rDiamond = properties.getInteger("DiamondRepairItemNumber", 264);
|
||||
nDiamond = properties.getString("DiamondItemRepairName", "Diamond Ore");
|
||||
rIron = properties.getInteger("IronRepairItemNumber", 265);
|
||||
nIron = properties.getString("IronItemRepairName", "Iron Bars");
|
||||
/*
|
||||
* EXCAVATION LOOT TOGGLES
|
||||
*/
|
||||
cocoabeans = properties.getBoolean("canExcavateCocoaBeans", true);
|
||||
mushrooms = properties.getBoolean("canExcavateMushrooms", true);
|
||||
glowstone = properties.getBoolean("canExcavateGlowstone", true);
|
||||
pvp = properties.getBoolean("pvp", true);
|
||||
eggs = properties.getBoolean("canExcavateEggs", true);
|
||||
apples = properties.getBoolean("canExcavateApples", true);
|
||||
cake = properties.getBoolean("canExcavateCake", true);
|
||||
music = properties.getBoolean("canExcavateMusic", true);
|
||||
diamond = properties.getBoolean("canExcavateDiamond", true);
|
||||
slowsand = properties.getBoolean("canExcavateSlowSand", true);
|
||||
sulphur = properties.getBoolean("canExcavateSulphur", true);
|
||||
netherrack = properties.getBoolean("canExcavateNetherrack", true);
|
||||
bones = properties.getBoolean("canExcavateBones", true);
|
||||
|
||||
/*
|
||||
* CUSTOM COMMANDS
|
||||
*/
|
||||
mctop = properties.getString("/mctop", "mctop");
|
||||
addxp = properties.getString("/addxp", "addxp");
|
||||
mcability = properties.getString("/mcability", "mcability");
|
||||
mcrefresh = properties.getString("/mcrefresh", "mcrefresh");
|
||||
mcitem = properties.getString("/mcitem", "mcitem");
|
||||
mcmmo = properties.getString("/mcmmo", "mcmmo");
|
||||
mcc = properties.getString("/mcc", "mcc");
|
||||
mcgod = properties.getString("/mcgod", "mcgod");
|
||||
stats = properties.getString("/stats", "stats");
|
||||
mmoedit = properties.getString("/mmoedit", "mmoedit");
|
||||
ptp = properties.getString("/ptp", "ptp");
|
||||
party = properties.getString("/party", "party");
|
||||
myspawn = properties.getString("/myspawn", "myspawn");
|
||||
setmyspawn = properties.getString("/setmyspawn", "setmyspawn");
|
||||
whois = properties.getString("/whois", "whois");
|
||||
invite = properties.getString("/invite", "invite");
|
||||
accept = properties.getString("/accept", "accept");
|
||||
clearmyspawn = properties.getString("/clearmyspawn", "clearmyspawn");
|
||||
properties.save("==McMMO Configuration==\r\nYou can turn off excavation loot tables by turning the option to false\r\nYou can customize mcMMOs command names by modifying them here as well\r\nThis is an early version of the configuration file, eventually you'll be able to customize messages from mcMMO and XP gains");
|
||||
//herp derp
|
||||
}
|
||||
}
|
||||
public String directory = "plugins/mcMMO/";
|
||||
File file = new File(directory + File.separator + "config.yml");
|
||||
|
||||
public void configCheck()
|
||||
{
|
||||
new File(directory).mkdir();
|
||||
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)
|
||||
{
|
||||
Configuration config = load();
|
||||
return config.getBoolean(root, false);
|
||||
}
|
||||
private Integer readInteger(String root)
|
||||
{
|
||||
Configuration config = load();
|
||||
return config.getInt(root, 0);
|
||||
}
|
||||
|
||||
private Double readDouble(String root)
|
||||
{
|
||||
Configuration config = load();
|
||||
return config.getDouble(root, 0);
|
||||
}
|
||||
private List<String> readStringList(String root)
|
||||
{
|
||||
Configuration config = load();
|
||||
return config.getKeys(root);
|
||||
}
|
||||
private String readString(String root)
|
||||
{
|
||||
Configuration config = load();
|
||||
return config.getString(root);
|
||||
}
|
||||
private Configuration load()
|
||||
{
|
||||
|
||||
try {
|
||||
Configuration config = new Configuration(file);
|
||||
config.load();
|
||||
return config;
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private void addDefaults(){
|
||||
plugin.log.info("Generating Config File...");
|
||||
|
||||
//Put in defaults
|
||||
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("General.Performance.Print_Reports", false);
|
||||
|
||||
write("Items.Chimaera_Wing.Feather_Cost", 10);
|
||||
|
||||
write("XP.PVP.Rewards", true);
|
||||
write("XP.Gains.Multiplier.PVP", 1);
|
||||
write("XP.Gains.Mobspawners.Enabled", false);
|
||||
write("XP.Gains.Multiplier.Global", 1);
|
||||
write("XP.Formula.Multiplier.Global", 1);
|
||||
write("XP.Formula.Multiplier.Taming", 2);
|
||||
write("XP.Formula.Multiplier.Mining", 2);
|
||||
write("XP.Formula.Multiplier.Repair", 2);
|
||||
write("XP.Formula.Multiplier.Woodcutting", 2);
|
||||
write("XP.Formula.Multiplier.Unarmed", 2);
|
||||
write("XP.Formula.Multiplier.Herbalism", 2);
|
||||
write("XP.Formula.Multiplier.Excavation", 2);
|
||||
write("XP.Formula.Multiplier.Swords", 2);
|
||||
write("XP.Formula.Multiplier.Archery", 2);
|
||||
write("XP.Formula.Multiplier.Axes", 2);
|
||||
write("XP.Formula.Multiplier.Sorcery", 2);
|
||||
write("XP.Formula.Multiplier.Acrobatics", 2);
|
||||
write("XP.Mining.Gold", 35);
|
||||
write("XP.Mining.Diamond", 75);
|
||||
write("XP.Mining.Iron", 25);
|
||||
write("XP.Mining.Redstone", 15);
|
||||
write("XP.Mining.Lapus", 40);
|
||||
write("XP.Mining.Obsidian", 15);
|
||||
write("XP.Mining.Netherrack", 3);
|
||||
write("XP.Mining.Glowstone", 3);
|
||||
write("XP.Mining.Coal", 10);
|
||||
write("XP.Mining.Stone", 3);
|
||||
write("XP.Herbalism.Sugar_Cane", 3);
|
||||
write("XP.Herbalism.Cactus", 3);
|
||||
write("XP.Herbalism.Pumpkin", 55);
|
||||
write("XP.Herbalism.Flowers", 10);
|
||||
write("XP.Herbalism.Wheat", 5);
|
||||
write("XP.Herbalism.Mushrooms", 15);
|
||||
write("XP.Woodcutting.Pine", 9);
|
||||
write("XP.Woodcutting.Birch", 7);
|
||||
write("XP.Woodcutting.Spruce", 8);
|
||||
write("XP.Excavation.Base", 4);
|
||||
write("XP.Excavation.Mushroom", 8);
|
||||
write("XP.Excavation.Sulphur", 3);
|
||||
write("XP.Excavation.Slowsand", 8);
|
||||
write("XP.Excavation.Glowstone", 8);
|
||||
write("XP.Excavation.Music", 300);
|
||||
write("XP.Excavation.Bones", 3);
|
||||
write("XP.Excavation.Diamond", 100);
|
||||
write("XP.Excavation.Apple", 10);
|
||||
write("XP.Excavation.Eggs", 10);
|
||||
write("XP.Excavation.Cake", 300);
|
||||
write("XP.Excavation.Cocoa_Beans", 10);
|
||||
|
||||
write("Sorcery.Spells.Water.Thunder", 75);
|
||||
write("Sorcery.Spells.Curative.Cure_Self.Mana_Cost", 5);
|
||||
write("Sorcery.Spells.Curative.Cure_Other.Mana_Cost", 5);
|
||||
|
||||
write("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("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.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("Abilities.Tools.Durability_Loss_Enabled", true);
|
||||
write("Abilities.Tools.Durability_Loss", 2);
|
||||
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("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 Ore");
|
||||
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.Archery.Fire_Rate_Limiter", true);
|
||||
write("Skills.Mining.Requires_Pickaxe", true);
|
||||
write("Skills.Woodcutting.Requires_Axe", true);
|
||||
|
||||
loadkeys();
|
||||
}
|
||||
private void loadkeys(){
|
||||
plugin.log.info("Loading Config File...");
|
||||
|
||||
System.out.println("print_reports = "+readBoolean("General.Performance.Print_Reports"));
|
||||
|
||||
xpGainsMobSpawners = readBoolean("XP.Gains.Mobspawners.Enabled");
|
||||
|
||||
if(readBoolean("General.Performance.Print_Reports") != null)
|
||||
print_reports = readBoolean("General.Performance.Print_Reports");
|
||||
else
|
||||
print_reports = false;
|
||||
|
||||
cure_self = readInteger("Sorcery.Spells.Curative.Cure_Self.Mana_Cost");
|
||||
cure_other = readInteger("Sorcery.Spells.Curative.Cure_Other.Mana_Cost");
|
||||
water_thunder = readInteger("Sorcery.Spells.Water.Thunder");
|
||||
|
||||
msulphur = readInteger("XP.Excavation.Sulphur");
|
||||
mbones = readInteger("XP.Excavation.Bones");
|
||||
mbase = readInteger("XP.Excavation.Base");
|
||||
mmushroom2 = readInteger("XP.Excavation.Mushroom");
|
||||
mslowsand = readInteger("XP.Excavation.Slowsand");
|
||||
mglowstone2 = readInteger("XP.Excavation.Glowstone");
|
||||
mmusic = readInteger("XP.Excavation.Music");
|
||||
mdiamond2 = readInteger("XP.Excavation.Diamond");
|
||||
mapple = readInteger("XP.Excavation.Apple");
|
||||
meggs = readInteger("XP.Excavation.Eggs");
|
||||
mcake = readInteger("XP.Excavation.Cake");
|
||||
mcocoa = readInteger("XP.Excavation.Cocoa_Beans");
|
||||
|
||||
msugar = readInteger("XP.Herbalism.Sugar_Cane");
|
||||
mwheat = readInteger("XP.Herbalism.Wheat");
|
||||
mcactus = readInteger("XP.Herbalism.Cactus");
|
||||
mpumpkin = readInteger("XP.Herbalism.Pumpkin");
|
||||
mflower = readInteger("XP.Herbalism.Flowers");
|
||||
mmushroom = readInteger("XP.Herbalism.Mushrooms");
|
||||
|
||||
mpine = readInteger("XP.Woodcutting.Pine");
|
||||
mbirch = readInteger("XP.Woodcutting.Birch");
|
||||
mspruce = readInteger("XP.Woodcutting.Spruce");
|
||||
|
||||
mgold = readInteger("XP.Mining.Gold");
|
||||
mdiamond = readInteger("XP.Mining.Diamond");
|
||||
miron = readInteger("XP.Mining.Iron");
|
||||
mredstone = readInteger("XP.Mining.Redstone");
|
||||
mlapus = readInteger("XP.Mining.Lapus");
|
||||
mobsidian = readInteger("XP.Mining.Obsidian");
|
||||
mnetherrack = readInteger("XP.Mining.Netherrack");
|
||||
mglowstone = readInteger("XP.Mining.Glowstone");
|
||||
mcoal = readInteger("XP.Mining.Coal");
|
||||
mstone = readInteger("XP.Mining.Stone");
|
||||
|
||||
enableMotd = readBoolean("enableMOTD");
|
||||
|
||||
greenTerraCooldown = readInteger("Abilities.Cooldowns.Green_Terra");
|
||||
superBreakerCooldown = readInteger("Abilities.Cooldowns.Super_Breaker");
|
||||
gigaDrillBreakerCooldown = readInteger("Abilities.Cooldowns.Giga_Drill_Breaker");
|
||||
treeFellerCooldown = readInteger("Abilities.Cooldowns.Tree_Feller");
|
||||
berserkCooldown = readInteger("Abilities.Cooldowns.Berserk");
|
||||
serratedStrikeCooldown = readInteger("Abilities.Cooldowns.Serrated_Strikes");
|
||||
skullSplitterCooldown = readInteger("Abilities.Cooldowns.Skull_Splitter");
|
||||
|
||||
MySQLserverName = readString("MySQL.Server.Address");
|
||||
|
||||
if(readString("MySQL.Database.User.Password") != null)
|
||||
MySQLdbPass = readString("MySQL.Database.User.Password");
|
||||
else
|
||||
MySQLdbPass = "";
|
||||
|
||||
MySQLdbName = readString("MySQL.Database.Name");
|
||||
MySQLuserName = readString("MySQL.Database.User.Name");
|
||||
MySQLtablePrefix = readString("MySQL.Database.TablePrefix");
|
||||
MySQLport = readInteger("MySQL.Server.Port");
|
||||
useMySQL = readBoolean("MySQL.Enabled");
|
||||
|
||||
locale = readString("General.Locale");
|
||||
enableMotd = readBoolean("General.MOTD.Enabled");
|
||||
enableMySpawn = readBoolean("General.MySpawn.Enabled");
|
||||
enableRegen = readBoolean("General.HP_Regeneration.Enabled");
|
||||
|
||||
enableCobbleToMossy = readBoolean("Skills.Herbalism.Green_Thumb.Cobble_To_Mossy");
|
||||
archeryFireRateLimit = readBoolean("Skills.Archery.Fire_Rate_Limiter");
|
||||
|
||||
xpGainMultiplier = readInteger("XP.Gains.Multiplier.Global");
|
||||
toolsLoseDurabilityFromAbilities = readBoolean("Abilities.Tools.Durability_Loss_Enabled");
|
||||
abilityDurabilityLoss = readInteger("Abilities.Tools.Durability_Loss");
|
||||
|
||||
feathersConsumedByChimaeraWing = readInteger("Items.Chimaera_Wing.Feather_Cost");
|
||||
pvpxp = readBoolean("XP.PVP.Rewards");
|
||||
pvpxprewardmodifier = readInteger("XP.Gains.Multiplier.PVP");
|
||||
miningrequirespickaxe = readBoolean("Skills.Mining.Requires_Pickaxe");
|
||||
woodcuttingrequiresaxe = readBoolean("Skills.Woodcutting.Requires_Axe");
|
||||
repairdiamondlevel = readInteger("Skills.Repair.Diamond.Level_Required");
|
||||
|
||||
globalxpmodifier = readInteger("XP.Formula.Multiplier.Global");
|
||||
if(readInteger("XP.Formula.Multiplier.Sorcery") != null)
|
||||
sorceryxpmodifier = readInteger("XP.Formula.Multiplier.Sorcery");
|
||||
else
|
||||
sorceryxpmodifier = 2;
|
||||
tamingxpmodifier = readInteger("XP.Formula.Multiplier.Taming");
|
||||
miningxpmodifier = readInteger("XP.Formula.Multiplier.Mining");
|
||||
repairxpmodifier = readInteger("XP.Formula.Multiplier.Repair");
|
||||
woodcuttingxpmodifier = readInteger("XP.Formula.Multiplier.Woodcutting");
|
||||
unarmedxpmodifier = readInteger("XP.Formula.Multiplier.Unarmed");
|
||||
herbalismxpmodifier = readInteger("XP.Formula.Multiplier.Herbalism");
|
||||
excavationxpmodifier = readInteger("XP.Formula.Multiplier.Excavation");
|
||||
archeryxpmodifier = readInteger("XP.Formula.Multiplier.Archery");
|
||||
swordsxpmodifier = readInteger("XP.Formula.Multiplier.Swords");
|
||||
axesxpmodifier = readInteger("XP.Formula.Multiplier.Axes");
|
||||
acrobaticsxpmodifier = readInteger("XP.Formula.Multiplier.Acrobatics");
|
||||
|
||||
anvilmessages = readBoolean("Skills.Repair.Anvil_Messages");
|
||||
|
||||
rGold = readInteger("Skills.Repair.Gold.ID");
|
||||
nGold = readString("Skills.Repair.Gold.Name");
|
||||
rStone = readInteger("Skills.Repair.Stone.ID");
|
||||
nStone = readString("Skills.Repair.Stone.Name");
|
||||
rWood = readInteger("Skills.Repair.Wood.ID");
|
||||
nWood = readString("Skills.Repair.Wood.Name");
|
||||
rDiamond = readInteger("Skills.Repair.Diamond.ID");
|
||||
nDiamond = readString("Skills.Repair.Diamond.Name");
|
||||
rIron = readInteger("Skills.Repair.Iron.ID");
|
||||
nIron = readString("Skills.Repair.Iron.Name");
|
||||
|
||||
cocoabeans = readBoolean("Excavation.Drops.Cocoa_Beans");
|
||||
mushrooms = readBoolean("Excavation.Drops.Mushrooms");
|
||||
glowstone = readBoolean("Excavation.Drops.Glowstone");
|
||||
eggs = readBoolean("Excavation.Drops.Eggs");
|
||||
apples = readBoolean("Excavation.Drops.Apples");
|
||||
cake = readBoolean("Excavation.Drops.Cake");
|
||||
music = readBoolean("Excavation.Drops.Music");
|
||||
diamond = readBoolean("Excavation.Drops.Diamond");
|
||||
slowsand = readBoolean("Excavation.Drops.Slowsand");
|
||||
sulphur = readBoolean("Excavation.Drops.Sulphur");
|
||||
netherrack = readBoolean("Excavation.Drops.Netherrack");
|
||||
bones = readBoolean("Excavation.Drops.Bones");
|
||||
|
||||
mctop = readString("Commands.mctop.Name");
|
||||
mctopEnable = readBoolean("Commands.mctop.Enabled");
|
||||
|
||||
addxp = readString("Commands.addxp.Name");
|
||||
addxpEnable = readBoolean("Commands.addxp.Enabled");
|
||||
|
||||
mcability = readString("Commands.mcability.Name");
|
||||
mcabilityEnable = readBoolean("Commands.mcability.Enabled");
|
||||
|
||||
mcrefresh = readString("Commands.mcrefresh.Name");
|
||||
mcrefreshEnable = readBoolean("Commands.mcrefresh.Enabled");
|
||||
|
||||
mcmmo = readString("Commands.mcmmo.Name");
|
||||
mcmmoEnable = readBoolean("Commands.mcmmo.Enabled");
|
||||
|
||||
mcc = readString("Commands.mcc.Name");
|
||||
mccEnable = readBoolean("Commands.mcc.Enabled");
|
||||
|
||||
mcgod = readString("Commands.mcgod.Name");
|
||||
mcgodEnable = readBoolean("Commands.mcgodEnable.Enabled");
|
||||
|
||||
stats = readString("Commands.stats.Name");
|
||||
statsEnable = readBoolean("Commands.stats.Enabled");
|
||||
|
||||
mmoedit = readString("Commands.mmoedit.Name");
|
||||
mmoeditEnable = readBoolean("Commands.mmoedit.Enabled");
|
||||
|
||||
ptp = readString("Commands.ptp.Name");
|
||||
ptpEnable = readBoolean("Commands.ptp.Enabled");
|
||||
|
||||
party = readString("Commands.party.Name");
|
||||
partyEnable = readBoolean("Commands.party.Enabled");
|
||||
|
||||
myspawn = readString("Commands.myspawn.Name");
|
||||
myspawnEnable = readBoolean("Commands.myspawn.Enabled");
|
||||
|
||||
whois = readString("Commands.whois.Name");
|
||||
whoisEnable = readBoolean("Commands.whois.Enabled");
|
||||
|
||||
invite = readString("Commands.invite.Name");
|
||||
inviteEnable = readBoolean("Commands.invite.Enabled");
|
||||
|
||||
accept = readString("Commands.accept.Name");
|
||||
acceptEnable = readBoolean("Commands.accept.Enabled");
|
||||
|
||||
clearmyspawn = readString("Commands.clearmyspawn.Name");
|
||||
clearmyspawnEnable = readBoolean("Commands.clearmyspawn.Enabled");
|
||||
}
|
||||
}
|
74
mcMMO/com/gmail/nossr50/config/Misc.java
Normal file
74
mcMMO/com/gmail/nossr50/config/Misc.java
Normal file
@ -0,0 +1,74 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class mcProperties extends Properties{
|
||||
//private static volatile mcProperties instance;
|
||||
private String fileName;
|
||||
public mcProperties(String file) {
|
||||
this.fileName = file;
|
||||
}
|
||||
public void load() {
|
||||
File file = new File(this.fileName);
|
||||
if(file.exists()) {
|
||||
try {
|
||||
load(new FileInputStream(this.fileName));
|
||||
} catch (IOException ex) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void makeProperties(File Properties, Logger log){
|
||||
if(!Properties.exists()){
|
||||
try {
|
||||
Properties.createNewFile();
|
||||
FileWriter writer = null;
|
||||
try {
|
||||
writer = new FileWriter(Properties);
|
||||
} catch (Exception e) {
|
||||
log.log(Level.SEVERE, "Exception while creating " + Properties, e);
|
||||
} finally {
|
||||
try {
|
||||
if (writer != null) {
|
||||
writer.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.log(Level.SEVERE, "Exception while closing writer for " + Properties, e);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
public void save(String start){
|
||||
try{
|
||||
store(new FileOutputStream(this.fileName), start);
|
||||
} catch (IOException ex) {
|
||||
|
||||
}
|
||||
}
|
||||
public int getInteger(String key, int value){
|
||||
if(containsKey(key)){
|
||||
return Integer.parseInt(getProperty(key));
|
||||
}
|
||||
put(key, String.valueOf(value));
|
||||
return value;
|
||||
}
|
||||
public String getString(String key, String value){
|
||||
if(containsKey(key)){
|
||||
return getProperty(key);
|
||||
}
|
||||
put(key, value);
|
||||
return value;
|
||||
}
|
||||
public Boolean getBoolean(String key, boolean value) {
|
||||
if (containsKey(key)) {
|
||||
String boolString = getProperty(key);
|
||||
return (boolString.length() > 0)
|
||||
&& (boolString.toLowerCase().charAt(0) == 't');
|
||||
}
|
||||
put(key, value ? "true" : "false");
|
||||
return value;
|
||||
}
|
||||
public double getDouble(String key, double value) {
|
||||
if (containsKey(key)) {
|
||||
return Double.parseDouble(getProperty(key));
|
||||
}
|
||||
|
||||
put(key, String.valueOf(value));
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,7 @@
|
||||
package com.gmail.nossr50.datatypes;
|
||||
|
||||
public class PlayerStat {
|
||||
public class PlayerStat
|
||||
{
|
||||
public String name;
|
||||
public int statVal = 0;
|
||||
}
|
@ -2,8 +2,6 @@ package com.gmail.nossr50.datatypes;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gmail.nossr50.datatypes.PlayerStat;
|
||||
|
||||
public class Tree {
|
||||
|
@ -2,18 +2,18 @@ package com.gmail.nossr50.datatypes;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gmail.nossr50.datatypes.PlayerStat;
|
||||
|
||||
public class TreeNode {
|
||||
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) {
|
||||
public void add (String p, int in)
|
||||
{
|
||||
if (in >= ps.statVal)
|
||||
{
|
||||
if (left == null)
|
||||
@ -32,13 +32,17 @@ public class TreeNode {
|
||||
|
||||
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 = left.inOrder(a);
|
||||
|
||||
a.add(ps);
|
||||
|
||||
if(right != null)
|
||||
a = right.inOrder(a);
|
||||
a = right.inOrder(a);
|
||||
|
||||
return a;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,9 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Statistic;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
@ -16,11 +13,7 @@ import org.bukkit.event.block.BlockListener;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gmail.nossr50.config.*;
|
||||
import com.gmail.nossr50.datatypes.*;
|
||||
import com.gmail.nossr50.skills.*;
|
||||
import com.gmail.nossr50.party.*;
|
||||
|
||||
import com.gmail.nossr50.datatypes.FakeBlockBreakEvent;
|
||||
|
||||
|
||||
@ -31,26 +24,40 @@ public class mcBlockListener extends BlockListener {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public void onBlockPlace(BlockPlaceEvent event) {
|
||||
public void onBlockPlace(BlockPlaceEvent event)
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
Block block;
|
||||
Player player = event.getPlayer();
|
||||
if (event.getBlock() != null && event.getBlockReplacedState() != null && event.getBlockReplacedState().getTypeId() == 78) {
|
||||
if (event.getBlock() != null && event.getBlockReplacedState() != null && event.getBlockReplacedState().getTypeId() == 78)
|
||||
{
|
||||
block = event.getBlockAgainst();
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
block = event.getBlock();
|
||||
}
|
||||
if(player != null && m.shouldBeWatched(block)){
|
||||
if(block.getTypeId() != 17)
|
||||
if(player != null && m.shouldBeWatched(block))
|
||||
{
|
||||
if(block.getTypeId() != 17 && block.getTypeId() != 39 && block.getTypeId() != 40 && block.getTypeId() != 91 && block.getTypeId() != 86)
|
||||
block.setData((byte) 5); //Change the byte
|
||||
if(block.getTypeId() == 17 || block.getTypeId() == 91 || block.getTypeId() == 86)
|
||||
Config.getInstance().addBlockWatch(block);
|
||||
if(block.getTypeId() == 17 || block.getTypeId() == 39 || block.getTypeId() == 40 || block.getTypeId() == 91 || block.getTypeId() == 86)
|
||||
plugin.misc.blockWatchList.add(block);
|
||||
}
|
||||
if(block.getTypeId() == 42 && LoadProperties.anvilmessages)
|
||||
event.getPlayer().sendMessage(ChatColor.DARK_RED+"You have placed an anvil, anvils can repair tools and armor.");
|
||||
event.getPlayer().sendMessage(Messages.getString("mcBlockListener.PlacedAnvil")); //$NON-NLS-1$
|
||||
|
||||
long after = System.currentTimeMillis();
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
plugin.onBlockPlace+=(after-before);
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
public void onBlockBreak(BlockBreakEvent event)
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
|
||||
Player player = event.getPlayer();
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
Block block = event.getBlock();
|
||||
@ -59,21 +66,19 @@ public class mcBlockListener extends BlockListener {
|
||||
return;
|
||||
if (event instanceof FakeBlockBreakEvent)
|
||||
return;
|
||||
/*
|
||||
* Check if the Timer is doing its job
|
||||
*/
|
||||
Skills.monitorSkills(player);
|
||||
|
||||
/*
|
||||
* HERBALISM
|
||||
*/
|
||||
if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalismAbility(player) && block.getTypeId() == 59 && block.getData() == (byte) 0x07){
|
||||
if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalismAbility(player) && block.getTypeId() == 59 && block.getData() == (byte) 0x07)
|
||||
{
|
||||
Herbalism.greenTerraCheck(player, block, plugin);
|
||||
}
|
||||
//Wheat && Triple drops
|
||||
if(PP.getGreenTerraMode() && Herbalism.canBeGreenTerra(block)){
|
||||
Herbalism.herbalismProcCheck(block, player, event);
|
||||
Herbalism.greenTerraWheat(player, block, event);
|
||||
if(PP.getGreenTerraMode() && Herbalism.canBeGreenTerra(block))
|
||||
{
|
||||
Herbalism.herbalismProcCheck(block, player, event, plugin);
|
||||
Herbalism.greenTerraWheat(player, block, event, plugin);
|
||||
}
|
||||
|
||||
|
||||
@ -83,43 +88,49 @@ public class mcBlockListener extends BlockListener {
|
||||
if(mcPermissions.getInstance().mining(player)){
|
||||
if(LoadProperties.miningrequirespickaxe){
|
||||
if(m.isMiningPick(inhand))
|
||||
Mining.miningBlockCheck(player, block);
|
||||
Mining.miningBlockCheck(player, block, plugin);
|
||||
} else {
|
||||
Mining.miningBlockCheck(player, block);
|
||||
Mining.miningBlockCheck(player, block, plugin);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* WOOD CUTTING
|
||||
*/
|
||||
|
||||
if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player)){
|
||||
if(LoadProperties.woodcuttingrequiresaxe){
|
||||
if(m.isAxes(inhand)){
|
||||
if(!Config.getInstance().isBlockWatched(block)){
|
||||
if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player))
|
||||
{
|
||||
if(LoadProperties.woodcuttingrequiresaxe)
|
||||
{
|
||||
if(m.isAxes(inhand))
|
||||
{
|
||||
if(!plugin.misc.blockWatchList.contains(block))
|
||||
{
|
||||
WoodCutting.woodCuttingProcCheck(player, block);
|
||||
//Default
|
||||
if(block.getData() == (byte)0)
|
||||
PP.addWoodcuttingXP(7 * LoadProperties.xpGainMultiplier);
|
||||
PP.addWoodcuttingXP(LoadProperties.mpine * LoadProperties.xpGainMultiplier);
|
||||
//Spruce
|
||||
if(block.getData() == (byte)1)
|
||||
PP.addWoodcuttingXP(8 * LoadProperties.xpGainMultiplier);
|
||||
PP.addWoodcuttingXP(LoadProperties.mspruce * LoadProperties.xpGainMultiplier);
|
||||
//Birch
|
||||
if(block.getData() == (byte)2)
|
||||
PP.addWoodcuttingXP(9 * LoadProperties.xpGainMultiplier);
|
||||
PP.addWoodcuttingXP(LoadProperties.mbirch * LoadProperties.xpGainMultiplier);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(!Config.getInstance().isBlockWatched(block)){
|
||||
} else
|
||||
{
|
||||
if(!plugin.misc.blockWatchList.contains(block))
|
||||
{
|
||||
WoodCutting.woodCuttingProcCheck(player, block);
|
||||
//Default
|
||||
if(block.getData() == (byte)0)
|
||||
PP.addWoodcuttingXP(7 * LoadProperties.xpGainMultiplier);
|
||||
PP.addWoodcuttingXP(LoadProperties.mpine * LoadProperties.xpGainMultiplier);
|
||||
//Spruce
|
||||
if(block.getData() == (byte)1)
|
||||
PP.addWoodcuttingXP(8 * LoadProperties.xpGainMultiplier);
|
||||
PP.addWoodcuttingXP(LoadProperties.mspruce * LoadProperties.xpGainMultiplier);
|
||||
//Birch
|
||||
if(block.getData() == (byte)2)
|
||||
PP.addWoodcuttingXP(9 * LoadProperties.xpGainMultiplier);
|
||||
PP.addWoodcuttingXP(LoadProperties.mbirch * LoadProperties.xpGainMultiplier);
|
||||
}
|
||||
}
|
||||
Skills.XpCheck(player);
|
||||
@ -132,8 +143,9 @@ public class mcBlockListener extends BlockListener {
|
||||
&& block.getTypeId() == 17
|
||||
&& m.blockBreakSimulate(block, player, plugin)){
|
||||
|
||||
WoodCutting.treeFeller(block, player);
|
||||
for(Block blockx : Config.getInstance().getTreeFeller()){
|
||||
WoodCutting.treeFeller(block, player, plugin);
|
||||
for(Block blockx : plugin.misc.treeFeller)
|
||||
{
|
||||
if(blockx != null){
|
||||
Material mat = Material.getMaterial(block.getTypeId());
|
||||
byte type = 0;
|
||||
@ -143,12 +155,14 @@ public class mcBlockListener extends BlockListener {
|
||||
if(blockx.getTypeId() == 17){
|
||||
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
||||
//XP WOODCUTTING
|
||||
if(!Config.getInstance().isBlockWatched(block)){
|
||||
if(!plugin.misc.blockWatchList.contains(block))
|
||||
{
|
||||
WoodCutting.woodCuttingProcCheck(player, blockx);
|
||||
PP.addWoodcuttingXP(7);
|
||||
PP.addWoodcuttingXP(LoadProperties.mpine);
|
||||
}
|
||||
}
|
||||
if(blockx.getTypeId() == 18){
|
||||
if(blockx.getTypeId() == 18)
|
||||
{
|
||||
mat = Material.SAPLING;
|
||||
|
||||
item = new ItemStack(mat, 1, (short)0, blockx.getData());
|
||||
@ -163,7 +177,7 @@ public class mcBlockListener extends BlockListener {
|
||||
}
|
||||
if(LoadProperties.toolsLoseDurabilityFromAbilities)
|
||||
m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss);
|
||||
Config.getInstance().clearTreeFeller();
|
||||
plugin.misc.treeFeller.clear();
|
||||
}
|
||||
}
|
||||
/*
|
||||
@ -174,27 +188,42 @@ public class mcBlockListener extends BlockListener {
|
||||
/*
|
||||
* HERBALISM
|
||||
*/
|
||||
if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalism(player) && Herbalism.canBeGreenTerra(block)){
|
||||
if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalism(player) && Herbalism.canBeGreenTerra(block))
|
||||
{
|
||||
Herbalism.greenTerraCheck(player, block, plugin);
|
||||
}
|
||||
if(mcPermissions.getInstance().herbalism(player) && block.getData() != (byte) 5)
|
||||
Herbalism.herbalismProcCheck(block, player, event);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
long after = System.currentTimeMillis();
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
plugin.onBlockBreak+=(after-before);
|
||||
}
|
||||
}
|
||||
public void onBlockDamage(BlockDamageEvent event) {
|
||||
public void onBlockDamage(BlockDamageEvent event)
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
|
||||
if(event.isCancelled())
|
||||
return;
|
||||
Player player = event.getPlayer();
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
ItemStack inhand = player.getItemInHand();
|
||||
Block block = event.getBlock();
|
||||
/*
|
||||
* Check if the Timer is doing its job
|
||||
*/
|
||||
Skills.monitorSkills(player);
|
||||
|
||||
Skills.monitorSkills(player);
|
||||
|
||||
/*
|
||||
* ABILITY PREPARATION CHECKS
|
||||
*/
|
||||
@ -219,10 +248,7 @@ public class mcBlockListener extends BlockListener {
|
||||
/*
|
||||
* GIGA DRILL BREAKER CHECKS
|
||||
*/
|
||||
if(PP.getGigaDrillBreakerMode()
|
||||
&& m.blockBreakSimulate(block, player, plugin)
|
||||
&& Excavation.canBeGigaDrillBroken(block)
|
||||
&& m.isShovel(inhand)){
|
||||
if(PP.getGigaDrillBreakerMode() && m.blockBreakSimulate(block, player, plugin) && Excavation.canBeGigaDrillBroken(block) && m.isShovel(inhand)){
|
||||
|
||||
if(m.getTier(player) >= 2)
|
||||
Excavation.excavationProcCheck(block, player);
|
||||
@ -265,20 +291,22 @@ public class mcBlockListener extends BlockListener {
|
||||
*/
|
||||
if(PP.getSuperBreakerMode()
|
||||
&& Mining.canBeSuperBroken(block)
|
||||
&& m.blockBreakSimulate(block, player, plugin)){
|
||||
&& m.blockBreakSimulate(block, player, plugin))
|
||||
{
|
||||
|
||||
if(LoadProperties.miningrequirespickaxe){
|
||||
if(LoadProperties.miningrequirespickaxe)
|
||||
{
|
||||
if(m.isMiningPick(inhand))
|
||||
Mining.SuperBreakerBlockCheck(player, block);
|
||||
Mining.SuperBreakerBlockCheck(player, block, plugin);
|
||||
} else {
|
||||
Mining.SuperBreakerBlockCheck(player, block);
|
||||
Mining.SuperBreakerBlockCheck(player, block, plugin);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* LEAF BLOWER
|
||||
*/
|
||||
if(block.getTypeId() == 18 && mcPermissions.getInstance().woodcutting(player) && PP.getWoodCuttingInt() >= 100 && m.isAxes(player.getItemInHand()) && m.blockBreakSimulate(block, player, plugin))
|
||||
if(block.getTypeId() == 18 && mcPermissions.getInstance().woodcutting(player) && PP.getSkill("woodcutting") >= 100 && m.isAxes(player.getItemInHand()) && m.blockBreakSimulate(block, player, plugin))
|
||||
{
|
||||
m.damageTool(player, (short)1);
|
||||
if(Math.random() * 10 > 9)
|
||||
@ -289,13 +317,31 @@ public class mcBlockListener extends BlockListener {
|
||||
block.setType(Material.AIR);
|
||||
player.incrementStatistic(Statistic.MINE_BLOCK, event.getBlock().getType());
|
||||
}
|
||||
if(block.getType() == Material.AIR && plugin.misc.blockWatchList.contains(block))
|
||||
{
|
||||
plugin.misc.blockWatchList.remove(block);
|
||||
}
|
||||
long after = System.currentTimeMillis();
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
plugin.onBlockDamage+=(after-before);
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockFromTo(BlockFromToEvent event) {
|
||||
public void onBlockFromTo(BlockFromToEvent event)
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
|
||||
Block blockFrom = event.getBlock();
|
||||
Block blockTo = event.getToBlock();
|
||||
if(m.shouldBeWatched(blockFrom) && blockFrom.getData() == (byte)5){
|
||||
if(m.shouldBeWatched(blockFrom) && blockFrom.getData() == (byte)5)
|
||||
{
|
||||
blockTo.setData((byte)5);
|
||||
}
|
||||
long after = System.currentTimeMillis();
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
plugin.onBlockFromTo+=(after-before);
|
||||
}
|
||||
}
|
||||
}
|
@ -2,23 +2,22 @@ package com.gmail.nossr50;
|
||||
|
||||
import net.minecraft.server.EntityLiving;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.craftbukkit.entity.CraftEntity;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Monster;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByProjectileEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.entity.EntityListener;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.party.Party;
|
||||
@ -33,13 +32,7 @@ public class mcEntityListener extends EntityListener {
|
||||
public mcEntityListener(final mcMMO plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
public boolean isBow(ItemStack is){
|
||||
if (is.getTypeId() == 261){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
/*
|
||||
public void onCreatureSpawn(CreatureSpawnEvent event) {
|
||||
Location loc = event.getLocation();
|
||||
Entity spawnee = event.getEntity();
|
||||
@ -47,16 +40,18 @@ public class mcEntityListener extends EntityListener {
|
||||
Config.getInstance().addMobSpawnTrack(spawnee);
|
||||
}
|
||||
}
|
||||
public void onEntityDamage(EntityDamageEvent event) {
|
||||
*/
|
||||
public void onEntityDamage(EntityDamageEvent event)
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
|
||||
if(event.isCancelled())
|
||||
return;
|
||||
/*
|
||||
* CHECK FOR mcMMO PVP FLAG
|
||||
*/
|
||||
//Check for world pvp flag
|
||||
if(event instanceof EntityDamageByEntityEvent)
|
||||
{
|
||||
EntityDamageByEntityEvent eventb = (EntityDamageByEntityEvent)event;
|
||||
if(eventb.getEntity() instanceof Player && eventb.getDamager() instanceof Player && !LoadProperties.pvp)
|
||||
if(eventb.getEntity() instanceof Player && eventb.getDamager() instanceof Player && !event.getEntity().getWorld().getPVP())
|
||||
return;
|
||||
}
|
||||
/*
|
||||
@ -66,7 +61,7 @@ public class mcEntityListener extends EntityListener {
|
||||
{
|
||||
Player defender = (Player)event.getEntity();
|
||||
PlayerProfile PPd = Users.getProfile(defender);
|
||||
if(defender != null && Config.getInstance().isGodModeToggled(defender.getName()))
|
||||
if(defender != null && PPd.getGodMode())
|
||||
event.setCancelled(true);
|
||||
if(PPd == null)
|
||||
Users.addUser(defender);
|
||||
@ -82,23 +77,24 @@ public class mcEntityListener extends EntityListener {
|
||||
{
|
||||
Entity x = event.getEntity();
|
||||
DamageCause type = event.getCause();
|
||||
if(event.getEntity() instanceof Wolf)
|
||||
if(event.getEntity() instanceof Wolf && ((Wolf)event.getEntity()).isTamed() && Taming.getOwner(((Wolf)event.getEntity()), plugin) != null)
|
||||
{
|
||||
Player master = Taming.getOwner(event.getEntity(), plugin);
|
||||
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.getTamingInt() >= 100)
|
||||
if((event.getCause() == DamageCause.CONTACT || event.getCause() == DamageCause.LAVA || event.getCause() == DamageCause.FIRE) && PPo.getSkill("taming") >= 100)
|
||||
{
|
||||
if(event.getDamage() < ((Wolf) event.getEntity()).getHealth())
|
||||
{
|
||||
event.getEntity().teleport(Taming.getOwner(event.getEntity(), plugin).getLocation());
|
||||
master.sendMessage(ChatColor.DARK_GRAY+"Your wolf scurries back to you...");
|
||||
event.getEntity().teleport(Taming.getOwner(theWolf, plugin).getLocation());
|
||||
master.sendMessage(Messages.getString("mcEntityListener.WolfComesBack")); //$NON-NLS-1$
|
||||
event.getEntity().setFireTicks(0);
|
||||
}
|
||||
}
|
||||
if(event.getCause() == DamageCause.FALL && PPo.getTamingInt() >= 100)
|
||||
if(event.getCause() == DamageCause.FALL && PPo.getSkill("taming") >= 100)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
@ -151,26 +147,94 @@ public class mcEntityListener extends EntityListener {
|
||||
}
|
||||
}
|
||||
}
|
||||
long after = System.currentTimeMillis();
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
plugin.onEntityDamage+=(after-before);
|
||||
}
|
||||
}
|
||||
|
||||
public void onEntityDeath(EntityDeathEvent event) {
|
||||
public void onEntityDeath(EntityDeathEvent event)
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
Entity x = event.getEntity();
|
||||
x.setFireTicks(0);
|
||||
|
||||
//Remove bleed track
|
||||
if(Config.getInstance().isBleedTracked(x))
|
||||
Config.getInstance().addToBleedRemovalQue(x);
|
||||
//cleanup mob diff
|
||||
if(plugin.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
|
||||
plugin.mob.mobDiff.remove(event.getEntity().getEntityId());
|
||||
|
||||
Skills.arrowRetrievalCheck(x);
|
||||
|
||||
//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);
|
||||
}
|
||||
long after = System.currentTimeMillis();
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
plugin.onEntityDeath+=(after-before);
|
||||
}
|
||||
}
|
||||
public boolean isPlayer(Entity entity){
|
||||
|
||||
public void onCreatureSpawn(CreatureSpawnEvent event)
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
SpawnReason reason = event.getSpawnReason();
|
||||
|
||||
if(reason == SpawnReason.SPAWNER && !LoadProperties.xpGainsMobSpawners)
|
||||
{
|
||||
plugin.misc.mobSpawnerList.add(event.getEntity());
|
||||
} else
|
||||
{
|
||||
if(event.getEntity() instanceof Monster && !plugin.mob.mobDiff.containsKey(event.getEntity().getEntityId()))
|
||||
plugin.mob.assignDifficulty(event.getEntity());
|
||||
}
|
||||
long after = System.currentTimeMillis();
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
plugin.onCreatureSpawn+=(after-before);
|
||||
}
|
||||
}
|
||||
|
||||
public void onEntityTarget(EntityTargetEvent event)
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
int type = event.getEntity().getEntityId();
|
||||
//Make 3+ non-aggressive
|
||||
if(event.getEntity() instanceof Monster
|
||||
&& plugin.mob.mobDiff.containsKey(type)
|
||||
&& plugin.mob.isAggressive.containsKey(type))
|
||||
{
|
||||
if(plugin.mob.mobDiff.get(type) >= 2 && plugin.mob.isAggressive.get(type) == false)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
event.setTarget(null);
|
||||
}
|
||||
}
|
||||
long after = System.currentTimeMillis();
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
plugin.onEntityTarget+=(after-before);
|
||||
}
|
||||
}
|
||||
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{
|
||||
|
@ -2,9 +2,7 @@ package com.gmail.nossr50;
|
||||
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.config.*;
|
||||
import com.gmail.nossr50.datatypes.*;
|
||||
import com.gmail.nossr50.skills.*;
|
||||
import com.gmail.nossr50.party.*;
|
||||
import com.nijikokun.bukkit.Permissions.Permissions;
|
||||
import com.nijiko.Messaging;
|
||||
import com.nijiko.permissions.PermissionHandler;
|
||||
@ -13,19 +11,7 @@ import org.bukkit.plugin.Plugin;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.DatabaseMetaData;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.Statement;
|
||||
import java.sql.ResultSet;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Timer;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@ -37,25 +23,85 @@ import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class mcMMO extends JavaPlugin {
|
||||
public static String maindirectory = "plugins/mcMMO/";
|
||||
static File Properties = new File(maindirectory + "mcmmo.properties");
|
||||
public static final Logger log = Logger.getLogger("Minecraft");
|
||||
public class mcMMO extends JavaPlugin
|
||||
{
|
||||
public static String maindirectory = "plugins/mcMMO/"; //$NON-NLS-1$
|
||||
File file = new File(maindirectory + File.separator + "config.yml");
|
||||
public static final Logger log = Logger.getLogger("Minecraft"); //$NON-NLS-1$
|
||||
private final mcPlayerListener playerListener = new mcPlayerListener(this);
|
||||
private final mcBlockListener blockListener = new mcBlockListener(this);
|
||||
private final mcEntityListener entityListener = new mcEntityListener(this);
|
||||
private final String name = "mcMMO";
|
||||
private final String name = "mcMMO"; //$NON-NLS-1$
|
||||
public static PermissionHandler PermissionsHandler = null;
|
||||
private Permissions permissions;
|
||||
private Timer mcMMO_Timer = new Timer(true);
|
||||
|
||||
//PERFORMANCE DEBUG STUFF
|
||||
public long onPlayerRespawn=0, onPlayerQuit=0, onPlayerLogin=0, onPlayerInteract=0,onPlayerJoin=0, onPlayerCommandPreprocess=0, onPlayerChat=0, onBlockDamage=0, onBlockBreak=0, onBlockFromTo=0, onBlockPlace=0,
|
||||
onEntityTarget=0, onEntityDeath=0, onEntityDamage=0, onCreatureSpawn=0, bleedSimulation=0, mcTimerx=0;
|
||||
|
||||
public void printDelays()
|
||||
{
|
||||
log.log(Level.INFO,"####mcMMO PERFORMANCE REPORT####");
|
||||
log.log(Level.INFO,"[These are the cumulative milliseconds mcMMO has lagged in the last 40 seconds]");
|
||||
log.log(Level.INFO,"[1000ms = 1 second, lower is better]");
|
||||
|
||||
log.log(Level.INFO,"onPlayerRespawn: "+onPlayerRespawn+"ms");
|
||||
log.log(Level.INFO,"onPlayerQuit: "+onPlayerQuit+"ms");
|
||||
log.log(Level.INFO,"onPlayerLogin: "+onPlayerLogin+"ms");
|
||||
log.log(Level.INFO,"onPlayerInteract: "+onPlayerInteract+"ms");
|
||||
log.log(Level.INFO,"onPlayerJoin: "+onPlayerJoin+"ms");
|
||||
log.log(Level.INFO,"onPlayerCommandPreProcess: "+onPlayerCommandPreprocess+"ms");
|
||||
log.log(Level.INFO,"onPlayerChat: "+onPlayerChat+"ms");
|
||||
|
||||
log.log(Level.INFO,"onBlockDamage: "+onBlockDamage+"ms");
|
||||
log.log(Level.INFO,"onBlockBreak: "+onBlockBreak+"ms");
|
||||
log.log(Level.INFO,"onBlockFromTo: "+onBlockFromTo+"ms");
|
||||
log.log(Level.INFO,"onBlockPlace: "+onBlockPlace+"ms");
|
||||
|
||||
log.log(Level.INFO,"onEntityTarget: "+onEntityTarget+"ms");
|
||||
log.log(Level.INFO,"onEntityDeath: "+onEntityDeath+"ms");
|
||||
log.log(Level.INFO,"onEntityDamage: "+onEntityDamage+"ms");
|
||||
log.log(Level.INFO,"onCreatureSpawn: "+onCreatureSpawn+"ms");
|
||||
|
||||
log.log(Level.INFO,"mcTimer (HPREGEN/ETC): "+mcTimerx+"ms");
|
||||
log.log(Level.INFO,"bleedSimulation: "+bleedSimulation+"ms");
|
||||
log.log(Level.INFO,"####mcMMO END OF PERFORMANCE REPORT####");
|
||||
|
||||
onPlayerRespawn=0;
|
||||
onPlayerQuit=0;
|
||||
onPlayerLogin=0;
|
||||
onPlayerJoin=0;
|
||||
onPlayerInteract=0;
|
||||
onPlayerCommandPreprocess=0;
|
||||
onPlayerChat=0;
|
||||
onBlockDamage=0;
|
||||
onBlockBreak=0;
|
||||
onBlockFromTo=0;
|
||||
onBlockPlace=0;
|
||||
onEntityTarget=0;
|
||||
onEntityDeath=0;
|
||||
onEntityDamage=0;
|
||||
onCreatureSpawn=0;
|
||||
mcTimerx=0;
|
||||
bleedSimulation=0;
|
||||
}
|
||||
|
||||
private Timer mcMMO_Timer = new Timer(true); //BLEED AND REGENERATION
|
||||
//private Timer mcMMO_SpellTimer = new Timer(true);
|
||||
|
||||
public static Database database = null;
|
||||
public Mob mob = new Mob();
|
||||
public Misc misc = new Misc(this);
|
||||
public Sorcery sorcery = new Sorcery(this);
|
||||
|
||||
//Config file stuff
|
||||
LoadProperties config = new LoadProperties();
|
||||
|
||||
public void onEnable()
|
||||
{
|
||||
|
||||
new File(maindirectory).mkdir();
|
||||
mcProperties.makeProperties(Properties, log); //Make Props file
|
||||
LoadProperties.loadMain(); //Load Props file
|
||||
//new File(maindirectory).mkdir();
|
||||
config.configCheck();
|
||||
|
||||
Users.getInstance().loadUsers(); //Load Users file
|
||||
|
||||
/*
|
||||
@ -63,59 +109,55 @@ public class mcMMO extends JavaPlugin {
|
||||
*/
|
||||
|
||||
PluginManager pm = getServer().getPluginManager();
|
||||
|
||||
//Player Stuff
|
||||
pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.BLOCK_DAMAGE, blockListener, Priority.Highest, this);
|
||||
pm.registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Priority.Monitor, this);
|
||||
pm.registerEvent(Event.Type.PLAYER_RESPAWN, playerListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this);
|
||||
|
||||
//Block Stuff
|
||||
pm.registerEvent(Event.Type.BLOCK_DAMAGE, blockListener, Priority.Highest, this);
|
||||
pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Highest, this);
|
||||
pm.registerEvent(Event.Type.BLOCK_FROMTO, blockListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Normal, this);
|
||||
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_ITEM_HELD, playerListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this);
|
||||
pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal, this);
|
||||
|
||||
//Entity Stuff
|
||||
pm.registerEvent(Event.Type.ENTITY_TARGET, entityListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this);
|
||||
pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this);
|
||||
pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this);
|
||||
|
||||
PluginDescriptionFile pdfFile = this.getDescription();
|
||||
mcPermissions.initialize(getServer());
|
||||
mcLoadMySQL();
|
||||
|
||||
if(LoadProperties.useMySQL)
|
||||
database.createStructure(); //Make Structure
|
||||
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!" );
|
||||
System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" ); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
mcMMO_Timer.schedule(new mcTimer(this), (long)0, (long)(1000));
|
||||
}
|
||||
|
||||
public void mcLoadMySQL()
|
||||
{
|
||||
if (LoadProperties.useMySQL) {
|
||||
// create database object
|
||||
database = new Database(this);
|
||||
}
|
||||
//mcMMO_SpellTimer.schedule(new mcTimerSpells(this), (long)0, (long)(100));
|
||||
}
|
||||
|
||||
public void setupPermissions() {
|
||||
Plugin test = this.getServer().getPluginManager().getPlugin("Permissions");
|
||||
Plugin test = this.getServer().getPluginManager().getPlugin("Permissions"); //$NON-NLS-1$
|
||||
if(this.PermissionsHandler == null) {
|
||||
if(test != null) {
|
||||
this.PermissionsHandler = ((Permissions)test).getHandler();
|
||||
} else {
|
||||
log.info(Messaging.bracketize(name) + " Permission system not enabled. Disabling plugin.");
|
||||
log.info(Messaging.bracketize(name) + " Permission system not enabled. Disabling plugin."); //$NON-NLS-1$
|
||||
this.getServer().getPluginManager().disablePlugin(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
public boolean isPartyChatToggled(Player player){
|
||||
if(Config.getInstance().isPartyToggled(player.getName())){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
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())){
|
||||
@ -127,9 +169,17 @@ public class mcMMO extends JavaPlugin {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public void getXpToLevel(Player player, String skillname){
|
||||
Users.getProfile(player).getXpToLevel(skillname.toLowerCase());
|
||||
}
|
||||
public void removeXp(Player player, String skillname, Integer newvalue){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
PP.removeXP(skillname, newvalue);
|
||||
Skills.XpCheck(player);
|
||||
}
|
||||
public void addXp(Player player, String skillname, Integer newvalue){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
PP.addXpToSkill(newvalue, skillname, player);
|
||||
PP.addXP(skillname, newvalue);
|
||||
Skills.XpCheck(player);
|
||||
}
|
||||
public void modifySkill(Player player, String skillname, Integer newvalue){
|
||||
@ -137,16 +187,16 @@ public class mcMMO extends JavaPlugin {
|
||||
PP.modifyskill(newvalue, skillname);
|
||||
}
|
||||
public ArrayList<String> getParties(){
|
||||
String location = "plugins/mcMMO/mcmmo.users";
|
||||
String location = "plugins/mcMMO/mcmmo.users"; //$NON-NLS-1$
|
||||
ArrayList<String> parties = new ArrayList<String>();
|
||||
try {
|
||||
//Open the users file
|
||||
FileReader file = new FileReader(location);
|
||||
BufferedReader in = new BufferedReader(file);
|
||||
String line = "";
|
||||
String line = ""; //$NON-NLS-1$
|
||||
while((line = in.readLine()) != null)
|
||||
{
|
||||
String[] character = line.split(":");
|
||||
String[] character = line.split(":"); //$NON-NLS-1$
|
||||
String theparty = null;
|
||||
//Party
|
||||
if(character.length > 3)
|
||||
@ -156,8 +206,8 @@ public class mcMMO extends JavaPlugin {
|
||||
}
|
||||
in.close();
|
||||
} catch (Exception e) {
|
||||
log.log(Level.SEVERE, "Exception while reading "
|
||||
+ location + " (Are you sure you formatted it correctly?)", e);
|
||||
log.log(Level.SEVERE, "Exception while reading " //$NON-NLS-1$
|
||||
+ location + " (Are you sure you formatted it correctly?)", e); //$NON-NLS-1$
|
||||
}
|
||||
return parties;
|
||||
}
|
||||
@ -169,17 +219,10 @@ public class mcMMO extends JavaPlugin {
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
return PP.inParty();
|
||||
}
|
||||
public boolean isAdminChatToggled(Player player){
|
||||
if(Config.getInstance().isAdminToggled(player.getName())){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public Permissions getPermissions() {
|
||||
return permissions;
|
||||
}
|
||||
public void onDisable() {
|
||||
System.out.println("mcMMO was disabled.");
|
||||
System.out.println("mcMMO was disabled."); //$NON-NLS-1$
|
||||
}
|
||||
}
|
@ -190,6 +190,60 @@ public class mcPermissions {
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
public boolean sorcery(Player player){
|
||||
if (permissionsEnabled) {
|
||||
return permission(player, "mcmmo.skills.sorcery");
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* SORCERY WATER
|
||||
*/
|
||||
public boolean sorceryWater(Player player)
|
||||
{
|
||||
if (permissionsEnabled) {
|
||||
return permission(player, "mcmmo.skills.sorcery.water");
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public boolean sorceryWaterThunder(Player player)
|
||||
{
|
||||
if (permissionsEnabled) {
|
||||
return permission(player, "mcmmo.skills.sorcery.water.thunder");
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* SORCERY CURATIVE
|
||||
*/
|
||||
public boolean sorceryCurative(Player player)
|
||||
{
|
||||
if (permissionsEnabled) {
|
||||
return permission(player, "mcmmo.skills.curative");
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public boolean sorceryCurativeHealOther(Player player)
|
||||
{
|
||||
if (permissionsEnabled) {
|
||||
return permission(player, "mcmmo.skills.curative.heal.other");
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public boolean sorceryCurativeHealSelf(Player player)
|
||||
{
|
||||
if (permissionsEnabled) {
|
||||
return permission(player, "mcmmo.skills.curative.heal.self");
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean taming(Player player) {
|
||||
if (permissionsEnabled) {
|
||||
return permission(player, "mcmmo.skills.taming");
|
||||
@ -211,7 +265,7 @@ public class mcPermissions {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public static boolean repair(Player player) {
|
||||
public boolean repair(Player player) {
|
||||
if (permissionsEnabled) {
|
||||
return permission(player, "mcmmo.skills.repair");
|
||||
} else {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,50 +1,73 @@
|
||||
package com.gmail.nossr50;
|
||||
import java.awt.Color;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.*;
|
||||
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.skills.Skills;
|
||||
import com.gmail.nossr50.skills.Swords;
|
||||
|
||||
|
||||
public class mcTimer extends TimerTask{
|
||||
public class mcTimer extends TimerTask
|
||||
{
|
||||
private final mcMMO plugin;
|
||||
int thecount = 1;
|
||||
|
||||
public mcTimer(final mcMMO plugin) {
|
||||
public mcTimer(final mcMMO plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public void run() {
|
||||
Player[] playerlist = plugin.getServer().getOnlinePlayers();
|
||||
for(Player player : playerlist)
|
||||
public void run()
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
for(Player player : plugin.getServer().getOnlinePlayers())
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(player == null)
|
||||
continue;
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
|
||||
if(PP == null)
|
||||
Users.addUser(player);
|
||||
continue;
|
||||
|
||||
/*
|
||||
* MONITOR SKILLS
|
||||
*/
|
||||
Skills.monitorSkills(player);
|
||||
|
||||
/*
|
||||
* COOLDOWN MONITORING
|
||||
*/
|
||||
Skills.watchCooldowns(player);
|
||||
|
||||
/*
|
||||
* MANA MONITORING
|
||||
*/
|
||||
/*
|
||||
if(mcPermissions.getInstance().sorcery(player) && thecount == 20 && PP.getCurrentMana() < PP.getMaxMana())
|
||||
{
|
||||
PP.setMana(PP.getCurrentMana()+PP.getMaxMana()/5);
|
||||
|
||||
//MAKE SURE THE MANA IS NOT ABOVE MAXIMUM
|
||||
if(PP.getMaxMana() < PP.getCurrentMana())
|
||||
PP.setMana(PP.getMaxMana());
|
||||
|
||||
if(PP.getMaxMana() != PP.getCurrentMana())
|
||||
player.sendMessage(Messages.getString("Sorcery.Current_Mana")+" "+ChatColor.GREEN+PP.getCurrentMana()+"/"+PP.getMaxMana());
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
* PLAYER BLEED MONITORING
|
||||
*/
|
||||
if(thecount % 2 == 0 && PP != null && PP.getBleedTicks() >= 1){
|
||||
if(thecount % 2 == 0 && PP.getBleedTicks() >= 1)
|
||||
{
|
||||
player.damage(2);
|
||||
PP.decreaseBleedTicks();
|
||||
}
|
||||
|
||||
if(mcPermissions.getInstance().regeneration(player) && PP != null && System.currentTimeMillis() >= PP.getRecentlyHurt() + 60000)
|
||||
if(LoadProperties.enableRegen && mcPermissions.getInstance().regeneration(player) && System.currentTimeMillis() >= PP.getRecentlyHurt() + 60000)
|
||||
{
|
||||
if(thecount == 10 || thecount == 20 || thecount == 30 || thecount == 40){
|
||||
if(player != null &&
|
||||
@ -61,7 +84,8 @@ public class mcTimer extends TimerTask{
|
||||
player.setHealth(m.calculateHealth(player.getHealth(), 1));
|
||||
}
|
||||
}
|
||||
if(thecount == 40){
|
||||
if(thecount == 40)
|
||||
{
|
||||
if(player != null &&
|
||||
player.getHealth() > 0 && player.getHealth() < 20
|
||||
&& m.getPowerLevel(player) < 500){
|
||||
@ -71,18 +95,27 @@ public class mcTimer extends TimerTask{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* NON-PLAYER BLEED MONITORING
|
||||
*/
|
||||
if(thecount % 2 == 0)
|
||||
Swords.bleedSimulate();
|
||||
|
||||
if(thecount < 40)
|
||||
{
|
||||
thecount++;
|
||||
} else
|
||||
{
|
||||
if(thecount % 2 == 0)
|
||||
Swords.bleedSimulate(plugin);
|
||||
|
||||
//SETUP FOR HP REGEN/BLEED
|
||||
thecount++;
|
||||
if(thecount >= 41)
|
||||
thecount = 1;
|
||||
|
||||
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
long after = System.currentTimeMillis();
|
||||
plugin.mcTimerx+=(after-before);
|
||||
|
||||
if(thecount == 40)
|
||||
plugin.printDelays();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
20
mcMMO/com/gmail/nossr50/mcTimerSpells.java
Normal file
20
mcMMO/com/gmail/nossr50/mcTimerSpells.java
Normal file
@ -0,0 +1,20 @@
|
||||
package com.gmail.nossr50;
|
||||
|
||||
import java.util.TimerTask;
|
||||
|
||||
public class mcTimerSpells extends TimerTask
|
||||
{
|
||||
mcMMO plugin = null;
|
||||
|
||||
public mcTimerSpells(mcMMO pluginx)
|
||||
{
|
||||
plugin = pluginx;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
321
mcMMO/com/gmail/nossr50/messages_de.properties
Normal file
321
mcMMO/com/gmail/nossr50/messages_de.properties
Normal file
@ -0,0 +1,321 @@
|
||||
Combat.WolfExamine=[[GREEN]]**du musterst den Wolf mit Bestienkunde**
|
||||
Combat.WolfShowMaster=[[DARK_GREEN]]Der Bestienmeister \: {0}
|
||||
Combat.Ignition=[[RED]]**ENTZUENDEN**
|
||||
Combat.BurningArrowHit=[[DARK_RED]]Du wurdest von einem brennenden Pfeil gestriffen\!
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Benommen. fuehlt sich schwindelig.
|
||||
Combat.TargetDazed=Target was [[DARK_RED]]benommen
|
||||
Combat.WolfNoMaster=[[GRAY]]Diese Bestie hat keinen Meister...
|
||||
Combat.WolfHealth=[[GREEN]]Die Bestie hat {0} Lebensenergie
|
||||
Combat.StruckByGore=[[RED]]**Getroffen von Biss**
|
||||
Combat.Gore=[[GREEN]]**BISS**
|
||||
Combat.ArrowDeflect=[[WHITE]]**PFEIL ABGELENKT**
|
||||
Item.ChimaeraWingFail=**CHIMAERA FLUEGEL fehlgeschlagen\!**
|
||||
Item.ChimaeraWingPass=**CHIMAERA FLUEGEL**
|
||||
Item.InjuredWait=du wurdest kurz zuvor verletzt und musst mit der Benutzung warten. [[YELLOW]]({0}s)
|
||||
Item.NeedFeathers=[[GRAY]]Du brauchst mehr Federn..
|
||||
m.mccPartyCommands=[[GREEN]]--GRUPPEN BEFEHLE--
|
||||
m.mccParty=[party name] [[RED]]- Erstellen/beitreten einer Gruppe
|
||||
m.mccPartyQ=[[RED]]- Verlasse aktuelle Gruppe
|
||||
m.mccPartyToggle=[[RED]] - aktiviert Gruppenchat
|
||||
m.mccPartyInvite=[player name] [[RED]]- sende Gruppeneinladung
|
||||
m.mccPartyAccept=[[RED]]- Gruppeneinladung akzeptieren
|
||||
m.mccPartyTeleport=[party member name] [[RED]]- Teleport zu Gruppenmitglied
|
||||
m.mccOtherCommands=[[GREEN]]--ANDERE BEFEHLE--
|
||||
m.mccStats=- zeigt deinen Status
|
||||
m.mccLeaderboards=- Ranglisten
|
||||
m.mccMySpawn=- Teleport zum Spawnpunkt
|
||||
m.mccClearMySpawn=- Spawnpunkt loeschen
|
||||
m.mccToggleAbility=- Faehigkeitsaktivierung mit rechtsklick an/aus schalten
|
||||
m.mccAdminToggle=- Adminchat aktivieren
|
||||
m.mccWhois=[playername] [[RED]]- Detailierte Spielerinfos zeigen
|
||||
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Ziel modifizieren
|
||||
m.mccMcGod=- God Mode
|
||||
m.mccSkillInfo=[skillname] [[RED]]- Detailierte Skillinfos zeigen
|
||||
m.mccModDescription=[[RED]]- kurze MOD-Beschreibung lesen
|
||||
m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
m.XPGain=[[DARK_GRAY]]XP Erhalten: [[WHITE]]{0}
|
||||
m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
m.AbilityLockTemplate=[[GRAY]]{0}
|
||||
m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
|
||||
m.Effects=EFFEKTE
|
||||
m.YourStats=DEINE WERTE
|
||||
m.SkillTaming=Bestienkunde (Taming)
|
||||
m.XPGainTaming=wenn Woelfe Schaden bekommen
|
||||
m.EffectsTaming1_0=Bestienkunde
|
||||
m.EffectsTaming1_1=mit Knochen schlagen inspiziert Woelfe
|
||||
m.EffectsTaming2_0=Biss
|
||||
m.EffectsTaming2_1=Kritischer Schlag mit Blutungseffekt
|
||||
m.EffectsTaming3_0=Geschaerfte Krallen
|
||||
m.EffectsTaming3_1=Schadens-Bonus
|
||||
m.EffectsTaming4_0=Umweltbewusst
|
||||
m.EffectsTaming4_1=Kaktus/Lava Phobie, Fall Schaden Immun
|
||||
m.EffectsTaming5_0=Dichtes Fell
|
||||
m.EffectsTaming5_1=Schadens-Reduzierung, Feuer-Resistenz
|
||||
m.EffectsTaming6_0=schockfest
|
||||
m.EffectsTaming6_1=Explosions-Schaden-Reduzierung
|
||||
m.AbilLockTaming1=gesperrt bis 100+ Skilllevel (Umweltbewusst)
|
||||
m.AbilLockTaming2=gesperrt bis 250+ Skillevel (Dichtes Fell)
|
||||
m.AbilLockTaming3=gesperrt bis 500+ Skillevel (Schockfest)
|
||||
m.AbilLockTaming4=gesperrt bis 750+ Skillevel (Geschaerfte Krallen)
|
||||
m.AbilBonusTaming1_0=Umweltbewusst
|
||||
m.AbilBonusTaming1_1=Woelfe meiden Gefahr
|
||||
m.AbilBonusTaming2_0=Dichtes Fell
|
||||
m.AbilBonusTaming2_1=Halber Schaden, Feuer-Resistenz
|
||||
m.AbilBonusTaming3_0=Schockfest
|
||||
m.AbilBonusTaming3_1=Explosionen machen 1/6 normalen Schaden
|
||||
m.AbilBonusTaming4_0=Geschärfte Krallen
|
||||
m.AbilBonusTaming4_1=+2 Schaden
|
||||
m.TamingGoreChance=[[RED]]Biss Chance: [[YELLOW]]{0}%
|
||||
m.SkillWoodCutting=Holzfaellen (WoodCutting)
|
||||
m.XPGainWoodCutting=Baeume faellen
|
||||
m.EffectsWoodCutting1_0=Baumfaeller (Faehigkeit)
|
||||
m.EffectsWoodCutting1_1=Bringt Baeume zum explodieren
|
||||
m.EffectsWoodCutting2_0=Blaetter-Sturm
|
||||
m.EffectsWoodCutting2_1=blaest Blaetter weg
|
||||
m.EffectsWoodCutting3_0=Doppelte Drops
|
||||
m.EffectsWoodCutting3_1=doppelte Anzahl Items
|
||||
m.AbilLockWoodCutting1=gesperrt bis 100+ Skilllevel (Blaetter-Sturm)
|
||||
m.AbilBonusWoodCutting1_0=Blaetter-Sturm
|
||||
m.AbilBonusWoodCutting1_1=blaest Blaetter weg
|
||||
m.WoodCuttingDoubleDropChance=[[RED]]Doppelte Drop Chance: [[YELLOW]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[RED]]Baumfaeller Dauer: [[YELLOW]]{0}s
|
||||
m.SkillArchery=Bogenschiessen (Archery)
|
||||
m.XPGainArchery=Monster/Spieler angreifen
|
||||
m.EffectsArchery1_0=Entzuenden
|
||||
m.EffectsArchery1_1=25% Chance das Feind Feuer faengt
|
||||
m.EffectsArchery2_0=Blenden (Spieler)
|
||||
m.EffectsArchery2_1=Disorientiert Feinde
|
||||
m.EffectsArchery3_0=Schaden+
|
||||
m.EffectsArchery3_1=Modifiziert Schaden
|
||||
m.EffectsArchery4_0=Pfeil Rueckgewinnung
|
||||
m.EffectsArchery4_1=Chance Pfeile von Leichen zurueckzugewinnen
|
||||
m.ArcheryDazeChance=[[RED]]Chance zu blenden: [[YELLOW]]{0}%
|
||||
m.ArcheryRetrieveChance=[[RED]]Chance Pfeile zurueckzugewinnen: [[YELLOW]]{0}%
|
||||
m.ArcheryIgnitionLength=[[RED]]Dauer von Entzuenden: [[YELLOW]]{0} seconds
|
||||
m.ArcheryDamagePlus=[[RED]]Schaden+ (Rank{0}): [[YELLOW]]Bonus {0} damage
|
||||
m.SkillAxes=Axt (Axes)
|
||||
m.XPGainAxes=Monster/Spieler angreifen
|
||||
m.EffectsAxes1_0=Schaedelspalter (Faehigkeit)
|
||||
m.EffectsAxes1_1=Verursacht Flaechenschaden
|
||||
m.EffectsAxes2_0=Kritischer Schlag
|
||||
m.EffectsAxes2_1=doppelter Schaden
|
||||
m.EffectsAxes3_0=Axtmeister (500 Skilllevel)
|
||||
m.EffectsAxes3_1=Modifiziert Schaden
|
||||
m.AbilLockAxes1=gesperrt bis 500+ Skilllevel(Axtmeister)
|
||||
m.AbilBonusAxes1_0=Axtmeister
|
||||
m.AbilBonusAxes1_1=4 Bonus-Schaden
|
||||
m.AxesCritChance=[[RED]]Chance fuer kritische Treffer: [[YELLOW]]{0}%
|
||||
m.AxesSkullLength=[[RED]]Schaedelspalter Dauer: [[YELLOW]]{0}s
|
||||
m.SkillSwords=Schwert (Swords)
|
||||
m.XPGainSwords=Monster/Spieler angreifen
|
||||
m.EffectsSwords1_0=Konter
|
||||
m.EffectsSwords1_1=Reflektiert 50% des erhaltenen Schadens
|
||||
m.EffectsSwords2_0=Saegezahn-Schlag (Faehigkeit)
|
||||
m.EffectsSwords2_1=25% Flaechenschaden, Blutung+ Flaecheneffekt
|
||||
m.EffectsSwords3_0=Saegezahn-Schlag Blutung+
|
||||
m.EffectsSwords3_1=5 Tick Blutung
|
||||
m.EffectsSwords4_0=parrieren
|
||||
m.EffectsSwords4_1=negiert Schaden
|
||||
m.EffectsSwords5_0=Blutung
|
||||
m.EffectsSwords5_1=hinterlaesst Blutungs-DOT
|
||||
m.SwordsCounterAttChance=[[RED]]Konter Chance: [[YELLOW]]{0}%
|
||||
m.SwordsBleedLength=[[RED]]Blutung Dauer: [[YELLOW]]{0} ticks
|
||||
m.SwordsBleedChance=[[RED]]Blutung Chance: [[YELLOW]]{0} %
|
||||
m.SwordsParryChance=[[RED]]Parieren Chance: [[YELLOW]]{0} %
|
||||
m.SwordsSSLength=[[RED]]Saegezahn-Schlag Dauer: [[YELLOW]]{0}s
|
||||
m.SwordsTickNote=[[GRAY]]NOTIZ: [[YELLOW]]1 Tick erfolgt aller 2 Sekunden
|
||||
m.SkillAcrobatics=Akrobatik (Acrobatics)
|
||||
m.XPGainAcrobatics=runterfallen
|
||||
m.EffectsAcrobatics1_0=Rolle
|
||||
m.EffectsAcrobatics1_1=Reduziert oder negiert Schaden
|
||||
m.EffectsAcrobatics2_0=elegante Rolle
|
||||
m.EffectsAcrobatics2_1=Doppelt so effektiv wie Rolle
|
||||
m.EffectsAcrobatics3_0=Ausweichen
|
||||
m.EffectsAcrobatics3_1=halbiert Schaden
|
||||
m.AcrobaticsRollChance=[[RED]]Rolle Chance: [[YELLOW]]{0}%
|
||||
m.AcrobaticsGracefulRollChance=[[RED]]elegante Rolle Chance: [[YELLOW]]{0}%
|
||||
m.AcrobaticsDodgeChance=[[RED]]Ausweichen Chance: [[YELLOW]]{0}%
|
||||
m.SkillMining=Bergbau (Mining)
|
||||
m.XPGainMining=Abbauen von Stein und Erz
|
||||
m.EffectsMining1_0=Super Brecher (Faehigkeit)
|
||||
m.EffectsMining1_1=Tempo+, dreifache Drop Chance
|
||||
m.EffectsMining2_0=doppelte Drops
|
||||
m.EffectsMining2_1=doppelte Anzahl Items
|
||||
m.MiningDoubleDropChance=[[RED]]doppelte Drops Chance: [[YELLOW]]{0}%
|
||||
m.MiningSuperBreakerLength=[[RED]]Super Brecher Dauer: [[YELLOW]]{0}s
|
||||
m.SkillRepair=Reparieren (Repair)
|
||||
m.XPGainRepair=reparieren
|
||||
m.EffectsRepair1_0=reparieren
|
||||
m.EffectsRepair1_1=reparieren von Eisenwerkzeugen und Ruestung
|
||||
m.EffectsRepair2_0=reparieren - Meister
|
||||
m.EffectsRepair2_1=erhoeht Reparierwert
|
||||
m.EffectsRepair3_0=Super Reparatur
|
||||
m.EffectsRepair3_1=doppelte Effektivitaet
|
||||
m.EffectsRepair4_0=Diamanten Reparatur ({0}+ SKILL)
|
||||
m.EffectsRepair4_1=Reparieren von Diamantwerkzeugen und Ruestung
|
||||
m.RepairRepairMastery=[[RED]]reparieren - Meister: [[YELLOW]]Extra {0}% Haltbarkeit
|
||||
m.RepairSuperRepairChance=[[RED]]Super Reparatur Chance: [[YELLOW]]{0}%
|
||||
m.SkillUnarmed=Faustkampf (Unarmed)
|
||||
m.XPGainUnarmed=Monster/Spieler angreifen
|
||||
m.EffectsUnarmed1_0=Berserker (Faehigkeit)
|
||||
m.EffectsUnarmed1_1=+50% Schaden, bricht weiches Material (Bsp. Erde)
|
||||
m.EffectsUnarmed2_0=Entwaffnen (Spieler)
|
||||
m.EffectsUnarmed2_1=Droppt Item welches Feind in Hand haelt
|
||||
m.EffectsUnarmed3_0=Faustkampfmeister
|
||||
m.EffectsUnarmed3_1=grosse Schadenssteigerung
|
||||
m.EffectsUnarmed4_0=Faustkampflehrling
|
||||
m.EffectsUnarmed4_1=Schadens-Bonus
|
||||
m.EffectsUnarmed5_0=Pfeil ablenken
|
||||
m.EffectsUnarmed5_1=wehrt Pfeile ab
|
||||
m.AbilLockUnarmed1=gesperrt bis 250+ Skilllevel (Faustkampflehrling)
|
||||
m.AbilLockUnarmed2=gesperrt bis 500+ Skilllevel (Faustkampfmeister)
|
||||
m.AbilBonusUnarmed1_0=Faustkampflehrling
|
||||
m.AbilBonusUnarmed1_1=+2 Schadens-Bonus
|
||||
m.AbilBonusUnarmed2_0=Faustkampfmeister
|
||||
m.AbilBonusUnarmed2_1=+4 Schadens-Bonus
|
||||
m.UnarmedArrowDeflectChance=[[RED]]Pfeil ablenken Chance: [[YELLOW]]{0}%
|
||||
m.UnarmedDisarmChance=[[RED]]Entwaffnen Chance: [[YELLOW]]{0}%
|
||||
m.UnarmedBerserkLength=[[RED]]Berserker Dauer: [[YELLOW]]{0}s
|
||||
m.SkillHerbalism=Kraeutersammler (Herbalism)
|
||||
m.XPGainHerbalism=Kraeuter sammeln
|
||||
m.EffectsHerbalism1_0=Gruene Welt (Faehigkeit)
|
||||
m.EffectsHerbalism1_1=Pflegt die Welt, dreifache Drops
|
||||
m.EffectsHerbalism2_0=Gruener Daumen (Weizen)
|
||||
m.EffectsHerbalism2_1=automatisches neupflanzen nach ernten
|
||||
m.EffectsHerbalism3_0=Gruener Daumen (Cobble)
|
||||
m.EffectsHerbalism3_1=verwandelt Cobblestone zu Mossy Cobblestone mithilfe von Samen
|
||||
m.EffectsHerbalism4_0=Nahrung+
|
||||
m.EffectsHerbalism4_1=Modifiziert Heilung von Brot/Suppe
|
||||
m.EffectsHerbalism5_0=Doppelte Drops (Alle Kraeuter)
|
||||
m.EffectsHerbalism5_1=doppelte Anzahl Items
|
||||
m.HerbalismGreenTerraLength=[[RED]]Gruene Welt Dauer: [[YELLOW]]{0}s
|
||||
m.HerbalismGreenThumbChance=[[RED]]Gruener Daumen Chance: [[YELLOW]]{0}%
|
||||
m.HerbalismGreenThumbStage=[[RED]]Gruener Daumen Stufe: [[YELLOW]] Getreide waechst auf Stufe {0}
|
||||
m.HerbalismDoubleDropChance=[[RED]]Doppelte Drop Chance: [[YELLOW]]{0}%
|
||||
m.HerbalismFoodPlus=[[RED]]Nahrung+ (Rank{0}): [[YELLOW]]Bonus-Heilung {0}
|
||||
m.SkillExcavation=Graben (Excavation)
|
||||
m.XPGainExcavation=Graben und finden von Schaetzen
|
||||
m.EffectsExcavation1_0=Giga Bohrer (Faehigkeit)
|
||||
m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Tempo
|
||||
m.EffectsExcavation2_0=Schatzjaeger
|
||||
m.EffectsExcavation2_1=Faehigkeit nach Schaetzen zu graben
|
||||
m.ExcavationGreenTerraLength=[[RED]]Giga Bohrer Dauer: [[YELLOW]]{0}s
|
||||
mcBlockListener.PlacedAnvil=[[DARK_RED]]Du hast einen Ambos platziert, du kannst hier Werkzeuge und Ruestungen reparieren.
|
||||
mcEntityListener.WolfComesBack=[[DARK_GRAY]]Dein Wolf hastet zurueck zu dir...
|
||||
mcPlayerListener.AbilitiesOff=Faehigkeiten nutzen (rechtsklick) aus
|
||||
mcPlayerListener.AbilitiesOn=Faehigkeiten nutzen (rechtsklick) an
|
||||
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**Faehigkeiten aufgefrischt\!**
|
||||
mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Akrobatik Skill (Acrobatics):
|
||||
mcPlayerListener.ArcherySkill=[[YELLOW]]Bogenschiessen Skill (Archery):
|
||||
mcPlayerListener.AxesSkill=[[YELLOW]]Axt Skill (Axes):
|
||||
mcPlayerListener.ExcavationSkill=[[YELLOW]]Graben Skill (Excavations):
|
||||
mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode deaktiviert
|
||||
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode aktiviert
|
||||
mcPlayerListener.GreenThumb=[[GREEN]]**GRUENER DAUMEN**
|
||||
mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FEHLGESCHLAGEN**
|
||||
mcPlayerListener.HerbalismSkill=[[YELLOW]]Kraeuterkunde Skill (Herbalism):
|
||||
mcPlayerListener.MiningSkill=[[YELLOW]]Bergbau Skill (Mining):
|
||||
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn ist freigegeben
|
||||
mcPlayerListener.MyspawnNotExist=[[RED]]Lege deinen myspawn erst mit einem Bett fest
|
||||
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn wurde an deine aktuelle Position gesetzt
|
||||
mcPlayerListener.MyspawnTimeNotice=Du musst {0}m {1}s warten um myspawn zu nutzen
|
||||
mcPlayerListener.NoPermission=unzureichende mcPermissions.
|
||||
mcPlayerListener.NoSkillNote=[[DARK_GRAY]]wenn du keinen Zugriff auf einen Skill hast wird er nicht hier gezeigt
|
||||
mcPlayerListener.NotInParty=[[RED]]Du bist in keiner Gruppe.
|
||||
mcPlayerListener.InviteSuccess=[[GREEN]]Einladung erfolgreich versendet.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]Du hast eine Gruppeneinladung für {0} von {1}
|
||||
mcPlayerListener.ReceivedInvite2=[[YELLOW]]Schreibe[[GREEN]]/{0}[[YELLOW]] um die Einladung zu akzeptieren
|
||||
mcPlayerListener.InviteAccepted=[[GREEN]]Einladung akzeptiert. du bist {0} beigetreten
|
||||
mcPlayerListener.NoInvites=[[RED]]Du hast derzeit keine Einladungen
|
||||
mcPlayerListener.YouAreInParty=[[GREEN]]Du bist in Gruppe {0}
|
||||
mcPlayerListener.PartyMembers=[[GREEN]]Gruppen Mitglieder
|
||||
mcPlayerListener.LeftParty=[[RED]]Du hast die Gruppe verlassen
|
||||
mcPlayerListener.JoinedParty=beigetrettene Gruppe: {0}
|
||||
mcPlayerListener.PartyChatOn=nur Gruppenchat [[RED]]an
|
||||
mcPlayerListener.PartyChatOff=nur Gruppenchat [[RED]]aus
|
||||
mcPlayerListener.AdminChatOn=nur Adminchat [[GREEN]]an
|
||||
mcPlayerListener.AdminChatOff=nur Adminchat [[RED]]aus
|
||||
mcPlayerListener.MOTD=[[BLUE]]Auf diesem Server laeuft {0} schreibe[[YELLOW]]/{1}[[BLUE]] fuer Hilfe. <frei Uebersetzt von g3oliver>
|
||||
mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
|
||||
mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL:
|
||||
mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Rangliste--
|
||||
mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Rangliste--
|
||||
mcPlayerListener.RepairSkill=[[YELLOW]]Reparieren Skill (Repair):
|
||||
mcPlayerListener.SwordsSkill=[[YELLOW]]Schwert Skill (Swords):
|
||||
mcPlayerListener.TamingSkill=[[YELLOW]]Bestienkunde Skill (Taming):
|
||||
mcPlayerListener.UnarmedSkill=[[YELLOW]]Faustkampf Skill (Unarmed):
|
||||
mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Holzfaeller Skill (Woodcutting):
|
||||
mcPlayerListener.YourStats=[[GREEN]]Deine MMO Werte
|
||||
Party.InformedOnJoin={0} [[GREEN]] ist deiner Gruppe beigetreten
|
||||
Party.InformedOnQuit={0} [[GREEN]] hat deine Gruppe verlassen
|
||||
Skills.YourGreenTerra=[[GREEN]]Deine [[YELLOW]]Gruene Welt [[GREEN]]Faehigkeit ist bereit!
|
||||
Skills.YourTreeFeller=[[GREEN]]Deine [[YELLOW]]Baumfaeller [[GREEN]]Faehigkeit ist bereit!
|
||||
Skills.YourSuperBreaker=[[GREEN]]Deine [[YELLOW]]Super Brecher [[GREEN]]Faehigkeit ist bereit!
|
||||
Skills.YourSerratedStrikes=[[GREEN]]Deine [[YELLOW]]Saegezahn-Schlag [[GREEN]]Faehigkeit ist bereit!
|
||||
Skills.YourBerserk=[[GREEN]]Deine [[YELLOW]]Berserker [[GREEN]]Faehigkeit ist bereit!
|
||||
Skills.YourSkullSplitter=[[GREEN]]Deine [[YELLOW]]Schaedelspalter[[GREEN]]Faehigkeit ist bereit!
|
||||
Skills.YourGigaDrillBreaker=[[GREEN]]Deine [[YELLOW]]Giga Bohrer[[GREEN]]Faehigkeit ist bereit!
|
||||
Skills.TooTired=[[RED]]Du bist zu muede um diese Faehigkeit erneut zu nutzen.
|
||||
Skills.ReadyHoe=[[GREEN]]**DU BEREITEST DEINE HARKE VOR**
|
||||
Skills.LowerHoe=[[GRAY]]**DU SENKST DEINE HARKE**
|
||||
Skills.ReadyAxe=[[GREEN]]**DU BEREITEST DEINE AXT VOR**
|
||||
Skills.LowerAxe=[[GRAY]]**DU SENKST DEINE AXT**
|
||||
Skills.ReadyFists=[[GREEN]]**DU BEREITEST DEINE FAEUSTE VOR**
|
||||
Skills.LowerFists=[[GRAY]]**DU SENKST DEINE FAUSTE**
|
||||
Skills.ReadyPickAxe=[[GREEN]]**DU BEREITEST DEINE SPITZHACKE VOR**
|
||||
Skills.LowerPickAxe=[[GRAY]]**DU SENKST DEINE SPITZHACKE**
|
||||
Skills.ReadyShovel=[[GREEN]]**DU BEREITEST DEINE SCHAUFEL VOR**
|
||||
Skills.LowerShovel=[[GRAY]]**DU SENKST DEINE SCHAUFEL**
|
||||
Skills.ReadySword=[[GREEN]]**DU ERHEBST DEIN SCHWERT**
|
||||
Skills.LowerSword=[[GRAY]]**DU SENKST DEIN SCHWERT**
|
||||
Skills.GreenTerraOn=[[GREEN]]**GRUENE WELT AKTIV**
|
||||
Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Green Terra[[DARK_GREEN]] benutzt!
|
||||
Skills.TreeFellerOn=[[GREEN]]**BAUMFAELLER AKTIV**
|
||||
Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Baumfaeller[[DARK_GREEN]] benutzt!
|
||||
Skills.SuperBreakerOn=[[GREEN]]**SUPER BRECHER AKTIV**
|
||||
Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Super Brecher[[DARK_GREEN]] benutzt!
|
||||
Skills.SerratedStrikesOn=[[GREEN]]**SAEGEZAHN-SCHLAG AKTIV**
|
||||
Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Saegezahn-Schlag[[DARK_GREEN]] benutzt!
|
||||
Skills.SkullSplitterOn=[[GREEN]]**SCHAEDELSPALTER AKTIV**
|
||||
Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]Schaedelspalter[[DARK_GREEN]] benutzt!
|
||||
Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA BOHRER AKTIV**
|
||||
Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] hat [[RED]]GigaBohrer[[DARK_GREEN]] benutzt!
|
||||
Skills.GreenTerraOff=[[RED]]**Gruene Welt ausgelaufen**
|
||||
Skills.TreeFellerOff=[[RED]]**Baumfaeller ausgelaufen**
|
||||
Skills.SuperBreakerOff=[[RED]]**Super Brecher ausgelaufen**
|
||||
Skills.SerratedStrikesOff=[[RED]]**Saegezahn-Schlag ausgelaufen**
|
||||
Skills.BerserkOff=[[RED]]**Berserker ausgelaufen**
|
||||
Skills.SkullSplitterOff=[[RED]]**Schaedelspalter ausgelaufen**
|
||||
Skills.GigaDrillBreakerOff=[[RED]]**Gruene Welt ausgelaufen**
|
||||
Skills.TamingUp=[[YELLOW]]Bestienkunde um {0} erhoeht. Gesamt ({1})
|
||||
Skills.AcrobaticsUp=[[YELLOW]]Akrobatik um {0} erhoeht. Gesamt ({1})
|
||||
Skills.ArcheryUp=[[YELLOW]]Bogenschiessen um {0} erhoeht. Gesamt ({1})
|
||||
Skills.SwordsUp=[[YELLOW]]Schwert um {0} erhoeht. Gesamt ({1})
|
||||
Skills.AxesUp=[[YELLOW]]Axt um {0} erhoeht. Gesamt ({1})
|
||||
Skills.UnarmedUp=[[YELLOW]]Faustkampf um {0} erhoeht. Gesamt ({1})
|
||||
Skills.HerbalismUp=[[YELLOW]]Krauterkunde um {0} erhoeht. Gesamt ({1})
|
||||
Skills.MiningUp=[[YELLOW]]Bergbau um {0} erhoeht. Gesamt ({1})
|
||||
Skills.WoodcuttingUp=[[YELLOW]]Holzfaeller um {0} erhoeht. Gesamt ({1})
|
||||
Skills.RepairUp=[[YELLOW]]Reparieren um {0} erhoeht. Gesamt ({1})
|
||||
Skills.ExcavationUp=[[YELLOW]]Graben um {0} erhoeht. Gesamt ({1})
|
||||
Skills.FeltEasy=[[GRAY]]Das fuehlt sich einfach an.
|
||||
Skills.StackedItems=[[DARK_RED]]Du kannst keine gestapelten Items reparieren
|
||||
Skills.NeedMore=[[DARK_RED]]Du brauchst mehr
|
||||
Skills.AdeptDiamond=[[DARK_RED]]Du bist nicht talentiert genug um Diamantwerkzeuge zu reparieren
|
||||
Skills.FullDurability=[[GRAY]]Dieses Item hat volle Haltbarkeit
|
||||
Skills.Disarmed=[[DARK_RED]]Du wurdest entwaffnet!
|
||||
mcPlayerListener.SorcerySkill=Zauberkunst Skill (Sorcery):
|
||||
m.SkillSorcery=Zauberkunst (Sorcery)
|
||||
Sorcery.HasCast=[[GREEN]]**ZAUBERN**[[GOLD]]
|
||||
Sorcery.Current_Mana=[[DARK_AQUA]]MP
|
||||
Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
|
||||
Sorcery.Cost=[[RED]][COST] {0} MP
|
||||
Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Kein Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
|
||||
Sorcery.Water.Thunder=GEWITTER
|
||||
Sorcery.Curative.Self=HEILEN (SELBST)
|
||||
Sorcery.Curative.Other=HEILEN (ANDERE)
|
||||
m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Combat.BeastLore=[[GREEN]]**BESTIENKUNDE**
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]BEsitzer ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Gesundheit ([[GREEN]]{0}[[DARK_AQUA]]/20)
|
||||
Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Gesundheit ([[GREEN]]{0}[[DARK_AQUA]]/8)
|
323
mcMMO/com/gmail/nossr50/messages_en_us.properties
Normal file
323
mcMMO/com/gmail/nossr50/messages_en_us.properties
Normal file
@ -0,0 +1,323 @@
|
||||
Combat.WolfExamine=[[GREEN]]**You examine the Wolf using Beast Lore**
|
||||
Combat.WolfShowMaster=[[DARK_GREEN]]The Beast's Master \: {0}
|
||||
Combat.Ignition=[[RED]]**IGNITION**
|
||||
Combat.BurningArrowHit=[[DARK_RED]]You were struck by a burning arrow\!
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy.
|
||||
Combat.TargetDazed=Target was [[DARK_RED]]Dazed
|
||||
Combat.WolfNoMaster=[[GRAY]]This Beast has no Master...
|
||||
Combat.WolfHealth=[[GREEN]]This beast has {0} Health
|
||||
Combat.StruckByGore=[[RED]]**STRUCK BY GORE**
|
||||
Combat.Gore=[[GREEN]]**GORE**
|
||||
Combat.ArrowDeflect=[[WHITE]]**ARROW DEFLECT**
|
||||
Item.ChimaeraWingFail=**CHIMAERA WING FAILED\!**
|
||||
Item.ChimaeraWingPass=**CHIMAERA WING**
|
||||
Item.InjuredWait=You were injured recently and must wait to use this. [[YELLOW]]({0}s)
|
||||
Item.NeedFeathers=[[GRAY]]You need more feathers..
|
||||
m.mccPartyCommands=[[GREEN]]--PARTY COMMANDS--
|
||||
m.mccParty=[party name] [[RED]]- Create/Join designated party
|
||||
m.mccPartyQ=[[RED]]- Leave your current party
|
||||
m.mccPartyToggle=[[RED]] - Toggle Party Chat
|
||||
m.mccPartyInvite=[player name] [[RED]]- Send party invite
|
||||
m.mccPartyAccept=[[RED]]- Accept party invite
|
||||
m.mccPartyTeleport=[party member name] [[RED]]- Teleport to party member
|
||||
m.mccOtherCommands=[[GREEN]]--OTHER COMMANDS--
|
||||
m.mccStats=- View your mcMMO stats
|
||||
m.mccLeaderboards=- Leaderboards
|
||||
m.mccMySpawn=- Teleports to myspawn
|
||||
m.mccClearMySpawn=- Clears your MySpawn
|
||||
m.mccToggleAbility=- Toggle ability activation with right click
|
||||
m.mccAdminToggle=- Toggle admin chat
|
||||
m.mccWhois=[playername] [[RED]]- View detailed player info
|
||||
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modify target
|
||||
m.mccMcGod=- God Mode
|
||||
m.mccSkillInfo=[skillname] [[RED]]- View detailed information about a skill
|
||||
m.mccModDescription=[[RED]]- Read brief mod description
|
||||
m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0}
|
||||
m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
m.AbilityLockTemplate=[[GRAY]]{0}
|
||||
m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
|
||||
m.Effects=EFFECTS
|
||||
m.YourStats=YOUR STATS
|
||||
m.SkillTaming=TAMING
|
||||
m.XPGainTaming=Wolves getting harmed
|
||||
m.EffectsTaming1_0=Beast Lore
|
||||
m.EffectsTaming1_1=Bone-whacking inspects wolves
|
||||
m.EffectsTaming2_0=Gore
|
||||
m.EffectsTaming2_1=Critical Strike that applies Bleed
|
||||
m.EffectsTaming3_0=Sharpened Claws
|
||||
m.EffectsTaming3_1=Damage Bonus
|
||||
m.EffectsTaming4_0=Environmentally Aware
|
||||
m.EffectsTaming4_1=Cactus/Lava Phobia, Fall DMG Immune
|
||||
m.EffectsTaming5_0=Thick Fur
|
||||
m.EffectsTaming5_1=DMG Reduction, Fire Resistance
|
||||
m.EffectsTaming6_0=Shock Proof
|
||||
m.EffectsTaming6_1=Explosive Damage Reduction
|
||||
m.AbilLockTaming1=LOCKED UNTIL 100+ SKILL (ENVIRONMENTALLY AWARE)
|
||||
m.AbilLockTaming2=LOCKED UNTIL 250+ SKILL (THICK FUR)
|
||||
m.AbilLockTaming3=LOCKED UNTIL 500+ SKILL (SHOCK PROOF)
|
||||
m.AbilLockTaming4=LOCKED UNTIL 750+ SKILL (SHARPENED CLAWS)
|
||||
m.AbilBonusTaming1_0=Environmentally Aware
|
||||
m.AbilBonusTaming1_1=Wolves avoid danger
|
||||
m.AbilBonusTaming2_0=Thick Fur
|
||||
m.AbilBonusTaming2_1=Halved Damage, Fire Resistance
|
||||
m.AbilBonusTaming3_0=Shock Proof
|
||||
m.AbilBonusTaming3_1=Explosives do 1/6 normal damage
|
||||
m.AbilBonusTaming4_0=Sharpened Claws
|
||||
m.AbilBonusTaming4_1=+2 Damage
|
||||
m.TamingGoreChance=[[RED]]Gore Chance: [[YELLOW]]{0}%
|
||||
m.SkillWoodCutting=WOODCUTTING
|
||||
m.XPGainWoodCutting=Chopping down trees
|
||||
m.EffectsWoodCutting1_0=Tree Feller (ABILITY)
|
||||
m.EffectsWoodCutting1_1=Make trees explode
|
||||
m.EffectsWoodCutting2_0=Leaf Blower
|
||||
m.EffectsWoodCutting2_1=Blow Away Leaves
|
||||
m.EffectsWoodCutting3_0=Double Drops
|
||||
m.EffectsWoodCutting3_1=Double the normal loot
|
||||
m.AbilLockWoodCutting1=LOCKED UNTIL 100+ SKILL (LEAF BLOWER)
|
||||
m.AbilBonusWoodCutting1_0=Leaf Blower
|
||||
m.AbilBonusWoodCutting1_1=Blow away leaves
|
||||
m.WoodCuttingDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller Length: [[YELLOW]]{0}s
|
||||
m.SkillArchery=ARCHERY
|
||||
m.XPGainArchery=Attacking Monsters
|
||||
m.EffectsArchery1_0=Ignition
|
||||
m.EffectsArchery1_1=25% Chance Enemies will ignite
|
||||
m.EffectsArchery2_0=Daze (Players)
|
||||
m.EffectsArchery2_1=Disorients foes
|
||||
m.EffectsArchery3_0=Damage+
|
||||
m.EffectsArchery3_1=Modifies Damage
|
||||
m.EffectsArchery4_0=Arrow Retrieval
|
||||
m.EffectsArchery4_1=Chance to retrieve arrows from corpses
|
||||
m.ArcheryDazeChance=[[RED]]Chance to Daze: [[YELLOW]]{0}%
|
||||
m.ArcheryRetrieveChance=[[RED]]Chance to Retrieve Arrows: [[YELLOW]]{0}%
|
||||
m.ArcheryIgnitionLength=[[RED]]Length of Ignition: [[YELLOW]]{0} seconds
|
||||
m.ArcheryDamagePlus=[[RED]]Damage+ (Rank{0}): [[YELLOW]]Bonus {0} damage
|
||||
m.SkillAxes=AXES
|
||||
m.XPGainAxes=Attacking Monsters
|
||||
m.EffectsAxes1_0=Skull Splitter (ABILITY)
|
||||
m.EffectsAxes1_1=Deal AoE Damage
|
||||
m.EffectsAxes2_0=Critical Strikes
|
||||
m.EffectsAxes2_1=Double Damage
|
||||
m.EffectsAxes3_0=Axe Mastery (500 SKILL)
|
||||
m.EffectsAxes3_1=Modifies Damage
|
||||
m.AbilLockAxes1=LOCKED UNTIL 500+ SKILL (AXEMASTERY)
|
||||
m.AbilBonusAxes1_0=Axe Mastery
|
||||
m.AbilBonusAxes1_1=Bonus 4 damage
|
||||
m.AxesCritChance=[[RED]]Chance to critically strike: [[YELLOW]]{0}%
|
||||
m.AxesSkullLength=[[RED]]Skull Splitter Length: [[YELLOW]]{0}s
|
||||
m.SkillSwords=SWORDS
|
||||
m.XPGainSwords=Attacking Monsters
|
||||
m.EffectsSwords1_0=Counter Attack
|
||||
m.EffectsSwords1_1=Reflect 50% of damage taken
|
||||
m.EffectsSwords2_0=Serrated Strikes (ABILITY)
|
||||
m.EffectsSwords2_1=25% DMG AoE, Bleed+ AoE
|
||||
m.EffectsSwords3_0=Serrated Strikes Bleed+
|
||||
m.EffectsSwords3_1=5 Tick Bleed
|
||||
m.EffectsSwords4_0=Parrying
|
||||
m.EffectsSwords4_1=Negates Damage
|
||||
m.EffectsSwords5_0=Bleed
|
||||
m.EffectsSwords5_1=Apply a bleed DoT
|
||||
m.SwordsCounterAttChance=[[RED]]Counter Attack Chance: [[YELLOW]]{0}%
|
||||
m.SwordsBleedLength=[[RED]]Bleed Length: [[YELLOW]]{0} ticks
|
||||
m.SwordsBleedChance=[[RED]]Bleed Chance: [[YELLOW]]{0} %
|
||||
m.SwordsParryChance=[[RED]]Parry Chance: [[YELLOW]]{0} %
|
||||
m.SwordsSSLength=[[RED]]Serrated Strikes Length: [[YELLOW]]{0}s
|
||||
m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 Tick happens every 2 seconds
|
||||
m.SkillAcrobatics=ACROBATICS
|
||||
m.XPGainAcrobatics=Falling
|
||||
m.EffectsAcrobatics1_0=Roll
|
||||
m.EffectsAcrobatics1_1=Reduces or Negates damage
|
||||
m.EffectsAcrobatics2_0=Graceful Roll
|
||||
m.EffectsAcrobatics2_1=Twice as effective as Roll
|
||||
m.EffectsAcrobatics3_0=Dodge
|
||||
m.EffectsAcrobatics3_1=Reduce damage by half
|
||||
m.AcrobaticsRollChance=[[RED]]Roll Chance: [[YELLOW]]{0}%
|
||||
m.AcrobaticsGracefulRollChance=[[RED]]Graceful Roll Chance: [[YELLOW]]{0}%
|
||||
m.AcrobaticsDodgeChance=[[RED]]Dodge Chance: [[YELLOW]]{0}%
|
||||
m.SkillMining=MINING
|
||||
m.XPGainMining=Mining Stone & Ore
|
||||
m.EffectsMining1_0=Super Breaker (ABILITY)
|
||||
m.EffectsMining1_1=Speed+, Triple Drop Chance
|
||||
m.EffectsMining2_0=Double Drops
|
||||
m.EffectsMining2_1=Double the normal loot
|
||||
m.MiningDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}%
|
||||
m.MiningSuperBreakerLength=[[RED]]Super Breaker Length: [[YELLOW]]{0}s
|
||||
m.SkillRepair=REPAIR
|
||||
m.XPGainRepair=Repairing
|
||||
m.EffectsRepair1_0=Repair
|
||||
m.EffectsRepair1_1=Repair Iron Tools & Armor
|
||||
m.EffectsRepair2_0=Repair Mastery
|
||||
m.EffectsRepair2_1=Increased repair amount
|
||||
m.EffectsRepair3_0=Super Repair
|
||||
m.EffectsRepair3_1=Double effectiveness
|
||||
m.EffectsRepair4_0=Diamond Repair ({0}+ SKILL)
|
||||
m.EffectsRepair4_1=Repair Diamond Tools & Armor
|
||||
m.RepairRepairMastery=[[RED]]Repair Mastery: [[YELLOW]]Extra {0}% durability restored
|
||||
m.RepairSuperRepairChance=[[RED]]Super Repair Chance: [[YELLOW]]{0}%
|
||||
m.SkillUnarmed=UNARMED
|
||||
m.XPGainUnarmed=Attacking Monsters
|
||||
m.EffectsUnarmed1_0=Berserk (ABILITY)
|
||||
m.EffectsUnarmed1_1=+50% DMG, Breaks weak materials
|
||||
m.EffectsUnarmed2_0=Disarm (Players)
|
||||
m.EffectsUnarmed2_1=Drops the foes item held in hand
|
||||
m.EffectsUnarmed3_0=Unarmed Mastery
|
||||
m.EffectsUnarmed3_1=Large Damage Upgrade
|
||||
m.EffectsUnarmed4_0=Unarmed Apprentice
|
||||
m.EffectsUnarmed4_1=Damage Upgrade
|
||||
m.EffectsUnarmed5_0=Arrow Deflect
|
||||
m.EffectsUnarmed5_1=Deflect arrows
|
||||
m.AbilLockUnarmed1=LOCKED UNTIL 250+ SKILL (UNARMED APPRENTICE)
|
||||
m.AbilLockUnarmed2=LOCKED UNTIL 500+ SKILL (UNARMED MASTERY)
|
||||
m.AbilBonusUnarmed1_0=Unarmed Apprentice
|
||||
m.AbilBonusUnarmed1_1=+2 DMG Upgrade
|
||||
m.AbilBonusUnarmed2_0=Unarmed Mastery
|
||||
m.AbilBonusUnarmed2_1=+4 DMG Upgrade
|
||||
m.UnarmedArrowDeflectChance=[[RED]]Arrow Deflect Chance: [[YELLOW]]{0}%
|
||||
m.UnarmedDisarmChance=[[RED]]Disarm Chance: [[YELLOW]]{0}%
|
||||
m.UnarmedBerserkLength=[[RED]]Berserk Length: [[YELLOW]]{0}s
|
||||
m.SkillHerbalism=HERBALISM
|
||||
m.XPGainHerbalism=Harvesting Herbs
|
||||
m.EffectsHerbalism1_0=Green Terra (ABILITY)
|
||||
m.EffectsHerbalism1_1=Spread the Terra, 3x Drops
|
||||
m.EffectsHerbalism2_0=Green Thumb (Wheat)
|
||||
m.EffectsHerbalism2_1=Auto-Plants wheat when harvesting
|
||||
m.EffectsHerbalism3_0=Green Thumb (Cobble)
|
||||
m.EffectsHerbalism3_1=Cobblestone -> Mossy w/ Seeds
|
||||
m.EffectsHerbalism4_0=Food+
|
||||
m.EffectsHerbalism4_1=Modifies health received from bread/stew
|
||||
m.EffectsHerbalism5_0=Double Drops (All Herbs)
|
||||
m.EffectsHerbalism5_1=Double the normal loot
|
||||
m.HerbalismGreenTerraLength=[[RED]]Green Terra Length: [[YELLOW]]{0}s
|
||||
m.HerbalismGreenThumbChance=[[RED]]Green Thumb Chance: [[YELLOW]]{0}%
|
||||
m.HerbalismGreenThumbStage=[[RED]]Green Thumb Stage: [[YELLOW]] Wheat grows in stage {0}
|
||||
m.HerbalismDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}%
|
||||
m.HerbalismFoodPlus=[[RED]]Food+ (Rank{0}): [[YELLOW]]Bonus {0} healing
|
||||
m.SkillExcavation=EXCAVATION
|
||||
m.XPGainExcavation=Digging and finding treasures
|
||||
m.EffectsExcavation1_0=Giga Drill Breaker (ABILITY)
|
||||
m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Speed
|
||||
m.EffectsExcavation2_0=Treasure Hunter
|
||||
m.EffectsExcavation2_1=Ability to dig for treasure
|
||||
m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker Length: [[YELLOW]]{0}s
|
||||
mcBlockListener.PlacedAnvil=[[DARK_RED]]You have placed an anvil, anvils can repair tools and armor.
|
||||
mcEntityListener.WolfComesBack=[[DARK_GRAY]]Your wolf scurries back to you...
|
||||
mcPlayerListener.AbilitiesOff=Ability use toggled off
|
||||
mcPlayerListener.AbilitiesOn=Ability use toggled on
|
||||
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES REFRESHED\!**
|
||||
mcPlayerListener.AcrobaticsSkill=Acrobatics:
|
||||
mcPlayerListener.ArcherySkill=Archery:
|
||||
mcPlayerListener.AxesSkill=Axes:
|
||||
mcPlayerListener.ExcavationSkill=Excavation:
|
||||
mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode Disabled
|
||||
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode Enabled
|
||||
mcPlayerListener.GreenThumb=[[GREEN]]**GREEN THUMB**
|
||||
mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FAIL**
|
||||
mcPlayerListener.HerbalismSkill=Herbalism:
|
||||
mcPlayerListener.MiningSkill=Mining:
|
||||
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn is now cleared.
|
||||
mcPlayerListener.MyspawnNotExist=[[RED]]Configure your myspawn first with a bed.
|
||||
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn has been set to your current location.
|
||||
mcPlayerListener.MyspawnTimeNotice=You must wait {0}m {1}s to use myspawn
|
||||
mcPlayerListener.NoPermission=Insufficient mcPermissions.
|
||||
mcPlayerListener.NoSkillNote=[[DARK_GRAY]]If you don't have access to a skill it will not be shown here.
|
||||
mcPlayerListener.NotInParty=[[RED]]You are not in a party.
|
||||
mcPlayerListener.InviteSuccess=[[GREEN]]Invite sent successfully.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]You have received a party invite for {0} from {1}
|
||||
mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] to accept the invite
|
||||
mcPlayerListener.InviteAccepted=[[GREEN]]Invite Accepted. You have joined party {0}
|
||||
mcPlayerListener.NoInvites=[[RED]]You have no invites at this time
|
||||
mcPlayerListener.YouAreInParty=[[GREEN]]You are in party {0}
|
||||
mcPlayerListener.PartyMembers=[[GREEN]]Party Members
|
||||
mcPlayerListener.LeftParty=[[RED]]You have left that party
|
||||
mcPlayerListener.JoinedParty=Joined Party: {0}
|
||||
mcPlayerListener.PartyChatOn=Party Chat only [[GREEN]]On
|
||||
mcPlayerListener.PartyChatOff=Party Chat only [[RED]]Off
|
||||
mcPlayerListener.AdminChatOn=Admin Chat only [[GREEN]]On
|
||||
mcPlayerListener.AdminChatOff=Admin Chat only [[RED]]Off
|
||||
mcPlayerListener.MOTD=[[BLUE]]This server is running mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] for help.
|
||||
mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
|
||||
mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL:
|
||||
mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
|
||||
mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
|
||||
mcPlayerListener.RepairSkill=Repair:
|
||||
mcPlayerListener.SwordsSkill=Swords:
|
||||
mcPlayerListener.TamingSkill=Taming:
|
||||
mcPlayerListener.UnarmedSkill=Unarmed:
|
||||
mcPlayerListener.WoodcuttingSkill=Woodcutting:
|
||||
mcPlayerListener.YourStats=[[GREEN]][mcMMO] Stats
|
||||
Party.InformedOnJoin={0} [[GREEN]] has joined your party
|
||||
Party.InformedOnQuit={0} [[GREEN]] has left your party
|
||||
Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed!
|
||||
Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed!
|
||||
Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed!
|
||||
Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed!
|
||||
Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed!
|
||||
Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed!
|
||||
Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed!
|
||||
Skills.TooTired=[[RED]]You are too tired to use that ability again.
|
||||
Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE**
|
||||
Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE**
|
||||
Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE**
|
||||
Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE**
|
||||
Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS**
|
||||
Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS**
|
||||
Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE**
|
||||
Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE**
|
||||
Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL**
|
||||
Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL**
|
||||
Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD**
|
||||
Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD**
|
||||
Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
|
||||
Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
|
||||
Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED**
|
||||
Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra!
|
||||
Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED**
|
||||
Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller!
|
||||
Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED**
|
||||
Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker!
|
||||
Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED**
|
||||
Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes!
|
||||
Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED**
|
||||
Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter!
|
||||
Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED**
|
||||
Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker!
|
||||
Skills.GreenTerraOff=[[RED]]**Green Terra has worn off**
|
||||
Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off**
|
||||
Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off**
|
||||
Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off**
|
||||
Skills.BerserkOff=[[RED]]**Berserk has worn off**
|
||||
Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off**
|
||||
Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off**
|
||||
Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1})
|
||||
Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1})
|
||||
Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1})
|
||||
Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1})
|
||||
Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1})
|
||||
Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1})
|
||||
Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1})
|
||||
Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1})
|
||||
Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1})
|
||||
Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1})
|
||||
Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1})
|
||||
Skills.FeltEasy=[[GRAY]]That felt easy.
|
||||
Skills.StackedItems=[[DARK_RED]]You can't repair stacked items
|
||||
Skills.NeedMore=[[DARK_RED]]You need more
|
||||
Skills.AdeptDiamond=[[DARK_RED]]You're not skilled enough to repair Diamond
|
||||
Skills.FullDurability=[[GRAY]]That is at full durability.
|
||||
Skills.Disarmed=[[DARK_RED]]You have been disarmed!
|
||||
mcPlayerListener.SorcerySkill=Sorcery:
|
||||
m.SkillSorcery=SORCERY
|
||||
Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]]
|
||||
Sorcery.Current_Mana=[[DARK_AQUA]]MP
|
||||
Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
|
||||
Sorcery.Cost=[[RED]][COST] {0} MP
|
||||
Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
|
||||
Sorcery.Water.Thunder=THUNDER
|
||||
Sorcery.Curative.Self=CURE SELF
|
||||
Sorcery.Curative.Other=CURE OTHER
|
||||
m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Combat.BeastLore=[[GREEN]]**BEAST LORE**
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20)
|
||||
Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/8)
|
323
mcMMO/com/gmail/nossr50/messages_fi.properties
Normal file
323
mcMMO/com/gmail/nossr50/messages_fi.properties
Normal file
@ -0,0 +1,323 @@
|
||||
Combat.WolfExamine=[[GREEN]]**Tutkit sutta käyttämällä Pedon Tarinaa**
|
||||
Combat.WolfShowMaster=[[DARK_GREEN]]Pedon isäntä \: {0}
|
||||
Combat.Ignition=[[RED]]**SYTYTYS**
|
||||
Combat.BurningArrowHit=[[DARK_RED]]Palava nuoli osui sinuun\!
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy.
|
||||
Combat.TargetDazed=Kohde [[DARK_RED]]tyrmätty
|
||||
Combat.WolfNoMaster=[[GRAY]]Tällä pedolla ei ole isäntää...
|
||||
Combat.WolfHealth=[[GREEN]]Tämän pedon terveys on {0}
|
||||
Combat.StruckByGore=[[RED]]**SINUA ON PISTETTY**
|
||||
Combat.Gore=[[GREEN]]**PISTO**
|
||||
Combat.ArrowDeflect=[[WHITE]]**NUOLI TORJUTTU**
|
||||
Item.ChimaeraWingFail=**KHIMAIRAN SIIVEN KÄYTTÖ EPÄONNISTUI\!**
|
||||
Item.ChimaeraWingPass=**KHIMAIRAN SIIPI**
|
||||
Item.InjuredWait=Sinua on haavoitettu äskettäin joten joudut odottaa tämän käyttöä. [[YELLOW]]({0}s)
|
||||
Item.NeedFeathers=[[GRAY]]Tarvitset lisää sulkia..
|
||||
m.mccPartyCommands=[[GREEN]]--RYHMÄKOMENNOT--
|
||||
m.mccParty=[party name] [[RED]]- Luo/liity nimettyyn ryhmään
|
||||
m.mccPartyQ=[[RED]]- Lähde ryhmästä
|
||||
m.mccPartyToggle=[[RED]] - Laita ryhmäjuttelu päälle/pois
|
||||
m.mccPartyInvite=[player name] [[RED]]- Lähetä ryhmäkutsu
|
||||
m.mccPartyAccept=[[RED]]- Hyväksy ryhmäkutsu
|
||||
m.mccPartyTeleport=[party member name] [[RED]]- Siirry ryhmän jäsenen luo
|
||||
m.mccOtherCommands=[[GREEN]]--MUUT KOMENNOT--
|
||||
m.mccStats=- Näytä mcMMO tilastosi
|
||||
m.mccLeaderboards=- Tulostaulukko
|
||||
m.mccMySpawn=- Siirtää sinut myspawniin
|
||||
m.mccClearMySpawn=- Tyhjää myspawnisi
|
||||
m.mccToggleAbility=- Laita taitojen aktivointi oikealla näppäimellä päälle/pois
|
||||
m.mccAdminToggle=- Laita admin juttelu päälle/pois
|
||||
m.mccWhois=[playername] [[RED]]- Näytä yksityiskohtaiset tiedot pelaajasta
|
||||
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Muokkaa kohdetta
|
||||
m.mccMcGod=- "God Mode"
|
||||
m.mccSkillInfo=[skillname] [[RED]]- Näytä ykistyiskohtaiset tiedot taidosta
|
||||
m.mccModDescription=[[RED]]- Lue lyhyt kuvaus modista
|
||||
m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
m.XPGain=[[DARK_GRAY]]KOKEMUSPISTEIDEN MÄÄRÄ: [[WHITE]]{0}
|
||||
m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
m.AbilityLockTemplate=[[GRAY]]{0}
|
||||
m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
|
||||
m.Effects=EFEKTIT
|
||||
m.YourStats=TILASTOSI
|
||||
m.SkillTaming=KESYTTÄMINEN
|
||||
m.XPGainTaming=Susien satuttaminen
|
||||
m.EffectsTaming1_0=Pedon Tarina
|
||||
m.EffectsTaming1_1=Luulla lyöminen tutkii susia
|
||||
m.EffectsTaming2_0=Pisto
|
||||
m.EffectsTaming2_1=Kriittinen Isku joka lisää Verenvuodon
|
||||
m.EffectsTaming3_0=Teroitetut Kynnet
|
||||
m.EffectsTaming3_1=Tuhoamis Bonus
|
||||
m.EffectsTaming4_0=Ympäristötietoinen
|
||||
m.EffectsTaming4_1=Kaktus/Laavapelko, immuuni Putousvahingolle
|
||||
m.EffectsTaming5_0=Paksu Turkki
|
||||
m.EffectsTaming5_1=Vahingon vähennys, Tulenkestävä
|
||||
m.EffectsTaming6_0=Räjähdyskestävä
|
||||
m.EffectsTaming6_1=Räjähdysvahingon vähennys
|
||||
m.AbilLockTaming1=LUKITTU KUNNES 100+ TAITO (YMPÄRISTÖTIETOINEN)
|
||||
m.AbilLockTaming2=LUKITTU KUNNES 250+ TAITO (PAKSU TURKKI)
|
||||
m.AbilLockTaming3=LUKITTU KUNNES 500+ TAITO (RÄJÄHDYSKESTÄVÄ)
|
||||
m.AbilLockTaming4=LUKITTU KUNNES 750+ TAITO (TEROITETUT KYNNET)
|
||||
m.AbilBonusTaming1_0=Ympäristötietoinen
|
||||
m.AbilBonusTaming1_1=Sudet karttavat vaaraa
|
||||
m.AbilBonusTaming2_0=Paksu Turkki
|
||||
m.AbilBonusTaming2_1=Puolitettu vahinko, Tulenkestävä
|
||||
m.AbilBonusTaming3_0=Räjähdyskestävä
|
||||
m.AbilBonusTaming3_1=Räjähteet vahingoittavat 1/6 vähemmän
|
||||
m.AbilBonusTaming4_0=Teroitetut Kynnet
|
||||
m.AbilBonusTaming4_1=+2 Vahinko
|
||||
m.TamingGoreChance=[[RED]]Piston todennäköisyys: [[YELLOW]]{0}%
|
||||
m.SkillWoodCutting=PUUN KAATO
|
||||
m.XPGainWoodCutting=Puiden pilkkominen
|
||||
m.EffectsWoodCutting1_0=Puunkaataja (TAITO)
|
||||
m.EffectsWoodCutting1_1=Räjäytä puita
|
||||
m.EffectsWoodCutting2_0=Lehdenpuhallin
|
||||
m.EffectsWoodCutting2_1=Puhalla lehtiä pois
|
||||
m.EffectsWoodCutting3_0=Tuplasaalis
|
||||
m.EffectsWoodCutting3_1=Tuplaa normaali saalis
|
||||
m.AbilLockWoodCutting1=LUKITTU KUNNES 100+ TAITO (LEHDENPUHALLIN)
|
||||
m.AbilBonusWoodCutting1_0=Lehdenpuhallin
|
||||
m.AbilBonusWoodCutting1_1=Puhalla lehtiä pois
|
||||
m.WoodCuttingDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[RED]]Puunkaatajan kesto: [[YELLOW]]{0}s
|
||||
m.SkillArchery=JOUSIAMMUNTA
|
||||
m.XPGainArchery=Hyökkäämällä hirviöiden kimppuun
|
||||
m.EffectsArchery1_0=Sytytys
|
||||
m.EffectsArchery1_1=25% Todennäköisyys että vihollinen syttyy tuleen
|
||||
m.EffectsArchery2_0=Pökerrys (Pelaajat)
|
||||
m.EffectsArchery2_1=Saa viholliset pois tolaltaan
|
||||
m.EffectsArchery3_0=Vahinko+
|
||||
m.EffectsArchery3_1=Muokkaa vahinkoa
|
||||
m.EffectsArchery4_0=Nuolenkeräys
|
||||
m.EffectsArchery4_1=Todennäköisyys kerätä nuolia raadoista
|
||||
m.ArcheryDazeChance=[[RED]]Todennäköisyys Pökerryttää: [[YELLOW]]{0}%
|
||||
m.ArcheryRetrieveChance=[[RED]]Todennäköisyys kerätä nuolia: [[YELLOW]]{0}%
|
||||
m.ArcheryIgnitionLength=[[RED]]Sytytyksen kesto: [[YELLOW]]{0} sekuntia
|
||||
m.ArcheryDamagePlus=[[RED]]Vahinko+ (Rank{0}): [[YELLOW]]Bonus {0} vahinko
|
||||
m.SkillAxes=KIRVEET
|
||||
m.XPGainAxes=Hyökkäämällä hirviöiden kimppuun
|
||||
m.EffectsAxes1_0=Kallonhalkoja (TAITO)
|
||||
m.EffectsAxes1_1=Tee aluevahinkoa
|
||||
m.EffectsAxes2_0=Kriittiset Iskut
|
||||
m.EffectsAxes2_1=Tuplavahinko
|
||||
m.EffectsAxes3_0=Kirveiden Herra (500 TAITO)
|
||||
m.EffectsAxes3_1=Muokkaa vahinkoa
|
||||
m.AbilLockAxes1=LUKITTU KUNNES 500+ TAITO (KIRVEIDEN HERRA)
|
||||
m.AbilBonusAxes1_0=Kirveiden Herra
|
||||
m.AbilBonusAxes1_1=+4 Vahinko
|
||||
m.AxesCritChance=[[RED]]Todennäköisyys iskeä kriittisesti: [[YELLOW]]{0}%
|
||||
m.AxesSkullLength=[[RED]]Kallonhalkojan kesto: [[YELLOW]]{0}s
|
||||
m.SkillSwords=MIEKAT
|
||||
m.XPGainSwords=Hyökkäämällä hirviöiden kimppuun
|
||||
m.EffectsSwords1_0=Vastaisku
|
||||
m.EffectsSwords1_1=Kimmota 50% saadusta vahingosta
|
||||
m.EffectsSwords2_0=Sahalaitaiset Iskut (TAITO)
|
||||
m.EffectsSwords2_1=25% Aluevahinko, Verenvuoto+ Aluevahinko
|
||||
m.EffectsSwords3_0=Sahalaitaiset Iskut Verenvuoto+
|
||||
m.EffectsSwords3_1=5 Aiheuta Verenvuotoa
|
||||
m.EffectsSwords4_0=Torjuminen
|
||||
m.EffectsSwords4_1=Estää saadun vahingon
|
||||
m.EffectsSwords5_0=Verenvuoto
|
||||
m.EffectsSwords5_1=Lisää Verenvuoto
|
||||
m.SwordsCounterAttChance=[[RED]]Vastaiskun todennäköisyys: [[YELLOW]]{0}%
|
||||
m.SwordsBleedLength=[[RED]]Verenvuodon kesto: [[YELLOW]]{0} vuotoa
|
||||
m.SwordsBleedChance=[[RED]]Verenvuodon todennäköisyys: [[YELLOW]]{0} %
|
||||
m.SwordsParryChance=[[RED]]Torjumisen todennäköisyys: [[YELLOW]]{0} %
|
||||
m.SwordsSSLength=[[RED]]Sahalaitaisten Iskujen kesto: [[YELLOW]]{0}s
|
||||
m.SwordsTickNote=[[GRAY]]HUOMAA: [[YELLOW]]1 vuoto tapahtuu joka kahdes sekunti
|
||||
m.SkillAcrobatics=AKROBATIA
|
||||
m.XPGainAcrobatics=Tippumalla
|
||||
m.EffectsAcrobatics1_0=Kieriminen
|
||||
m.EffectsAcrobatics1_1=Vähentää tai estää vahinkoa
|
||||
m.EffectsAcrobatics2_0=Sulava Kieriminen
|
||||
m.EffectsAcrobatics2_1=Tuplasti tehokkaampi kuin Kieriminen
|
||||
m.EffectsAcrobatics3_0=Väistö
|
||||
m.EffectsAcrobatics3_1=Vähentää vahingon määrän puoleen
|
||||
m.AcrobaticsRollChance=[[RED]]Kierimisen todennäköisyys: [[YELLOW]]{0}%
|
||||
m.AcrobaticsGracefulRollChance=[[RED]]Sulavan Kierimisen todennäköisyys: [[YELLOW]]{0}%
|
||||
m.AcrobaticsDodgeChance=[[RED]]Väistön todennäköisyys: [[YELLOW]]{0}%
|
||||
m.SkillMining=LOUHINTA
|
||||
m.XPGainMining=Louhimalla kiveä ja malmia
|
||||
m.EffectsMining1_0=Supermurskain (TAITO)
|
||||
m.EffectsMining1_1=Nopeus+, Triplaa saaliin tippumistodennäköisyys
|
||||
m.EffectsMining2_0=Tuplasaalis
|
||||
m.EffectsMining2_1=Tuplaa normaali saaliin määrä
|
||||
m.MiningDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}%
|
||||
m.MiningSuperBreakerLength=[[RED]]Supermurskaimen kesto: [[YELLOW]]{0}s
|
||||
m.SkillRepair=KORJAUS
|
||||
m.XPGainRepair=Korjaamalla
|
||||
m.EffectsRepair1_0=Korjaa
|
||||
m.EffectsRepair1_1=Korjaa rautatyökaluja ja haarniskoja
|
||||
m.EffectsRepair2_0=Korjausten Herra
|
||||
m.EffectsRepair2_1=Lisätty korjausten määrä
|
||||
m.EffectsRepair3_0=Superkorjaus
|
||||
m.EffectsRepair3_1=Tuplatehokkuus
|
||||
m.EffectsRepair4_0=Timanttikorjaus ({0}+ TAITO)
|
||||
m.EffectsRepair4_1=Korjaa timanttityökaluja ja haarniskoja
|
||||
m.RepairRepairMastery=[[RED]]Korjausten Herra: [[YELLOW]]Extra {0}% kestävyyttä palautettu
|
||||
m.RepairSuperRepairChance=[[RED]]Superkorjauksen todennäköisyys: [[YELLOW]]{0}%
|
||||
m.SkillUnarmed=ASEISTAMATON
|
||||
m.XPGainUnarmed=Hyökkäämällä hirviöiden kimppuun
|
||||
m.EffectsUnarmed1_0=Raivopää (TAITO)
|
||||
m.EffectsUnarmed1_1=+50% vahinko, rikkoo heikkoja materiaaleja
|
||||
m.EffectsUnarmed2_0=Aseista riisuminen (Pelaajat)
|
||||
m.EffectsUnarmed2_1=Pudottaa vihollisen esineen kädestä
|
||||
m.EffectsUnarmed3_0=Aseistamattomuuden Herra
|
||||
m.EffectsUnarmed3_1=Suuri vahingonlisäys
|
||||
m.EffectsUnarmed4_0=Aseistamattomuuden Aloittelija
|
||||
m.EffectsUnarmed4_1=Vahingonlisäys
|
||||
m.EffectsUnarmed5_0=Nuolentorjunta
|
||||
m.EffectsUnarmed5_1=Torjuu nuolia
|
||||
m.AbilLockUnarmed1=LUKITTU KUNNES 250+ TAITO (ASEISTAMATTOMUUDEN ALOITTELIJA)
|
||||
m.AbilLockUnarmed2=LUKITTU KUNNES 500+ TAITO (ASEISTAMATTOMUUDEN HERRA)
|
||||
m.AbilBonusUnarmed1_0=Aseistamattomuuden Aloittelija
|
||||
m.AbilBonusUnarmed1_1=+2 Vahinko
|
||||
m.AbilBonusUnarmed2_0=Aseistamattomuuden Herra
|
||||
m.AbilBonusUnarmed2_1=+4 Vahinko
|
||||
m.UnarmedArrowDeflectChance=[[RED]]Nuolentorjunnan todennäköisyys: [[YELLOW]]{0}%
|
||||
m.UnarmedDisarmChance=[[RED]]Aseista riisumisen todennäköisyys: [[YELLOW]]{0}%
|
||||
m.UnarmedBerserkLength=[[RED]]Raivopään kesto: [[YELLOW]]{0}s
|
||||
m.SkillHerbalism=YRTTIHOITO
|
||||
m.XPGainHerbalism=Keräämällä yrttejä
|
||||
m.EffectsHerbalism1_0=Vihermaa (TAITO)
|
||||
m.EffectsHerbalism1_1=Levitä vihreyttä, 3x saalis
|
||||
m.EffectsHerbalism2_0=Viherpeukalo (Vehnä)
|
||||
m.EffectsHerbalism2_1=Istuttaa vehnää automaattisesti kun keräät vehnää
|
||||
m.EffectsHerbalism3_0=Viherpeukalo (Mukulakivi)
|
||||
m.EffectsHerbalism3_1=Mukulakivi -> Sammaleinen mukulakivi ja siemeniä
|
||||
m.EffectsHerbalism4_0=Ruoka+
|
||||
m.EffectsHerbalism4_1=Muokkaa terveyttä jota saat leivästä/muhennoksesta
|
||||
m.EffectsHerbalism5_0=Tuplasaalis (Kaikki yrtit)
|
||||
m.EffectsHerbalism5_1=Tuplaa normaali saaliin määrä
|
||||
m.HerbalismGreenTerraLength=[[RED]]Vihermaan kesto: [[YELLOW]]{0}s
|
||||
m.HerbalismGreenThumbChance=[[RED]]Viherpeukalon todennäköisyys: [[YELLOW]]{0}%
|
||||
m.HerbalismGreenThumbStage=[[RED]]Viherpeukalon vaihe: [[YELLOW]] Vehnä kasvaa {0}:ssa vaiheessa
|
||||
m.HerbalismDoubleDropChance=[[RED]]Tuplasaaliin todennäköisyys: [[YELLOW]]{0}%
|
||||
m.HerbalismFoodPlus=[[RED]]Ruoka+ (Rank{0}): [[YELLOW]]Bonus {0} terveyden määrä
|
||||
m.SkillExcavation=KAIVANTO
|
||||
m.XPGainExcavation=Kaivamalla ja löytämällä aarteita
|
||||
m.EffectsExcavation1_0=Giga Drill Breaker (TAITO)
|
||||
m.EffectsExcavation1_1=3x saaliin määrä, 3x kokemuspisteiden määrä, +Nopeus
|
||||
m.EffectsExcavation2_0=Aarteenmetsästäjä
|
||||
m.EffectsExcavation2_1=Taito jonka avulla voit kaivaa aarteita
|
||||
m.ExcavationGreenTerraLength=[[RED]]Giga Drill Breaker kesto: [[YELLOW]]{0}s
|
||||
mcBlockListener.PlacedAnvil=[[DARK_RED]]Olet asettanut alasimen maahan, sillä voit korjata työkaluja ja haarniskoja.
|
||||
mcEntityListener.WolfComesBack=[[DARK_GRAY]]Sutesi kipittää takaisin luoksesi...
|
||||
mcPlayerListener.AbilitiesOff=Taitojen käyttö pois päältä
|
||||
mcPlayerListener.AbilitiesOn=Taitojen käyttö päällä
|
||||
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**TAIDOT PÄIVITETTY\!**
|
||||
mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Akrobatia:
|
||||
mcPlayerListener.ArcherySkill=[[YELLOW]]Jousiammunta:
|
||||
mcPlayerListener.AxesSkill=[[YELLOW]]Kirveet:
|
||||
mcPlayerListener.ExcavationSkill=[[YELLOW]]Kaivanto:
|
||||
mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode pois päältä
|
||||
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode päällä
|
||||
mcPlayerListener.GreenThumb=[[GREEN]]**VIHERPEUKALO**
|
||||
mcPlayerListener.GreenThumbFail=[[RED]]**VIHERPEUKALO EPÄONNISTUI**
|
||||
mcPlayerListener.HerbalismSkill=[[YELLOW]]Yrttihoito:
|
||||
mcPlayerListener.MiningSkill=[[YELLOW]]Kaivanto:
|
||||
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn on tyhjätty.
|
||||
mcPlayerListener.MyspawnNotExist=[[RED]]Määrää myspawnisi ensin laittamalla sänky maahan.
|
||||
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn on asetettu tämänhetkiseen sijaintiisi.
|
||||
mcPlayerListener.MyspawnTimeNotice=Sinun pitää odottaa {0}m {1}s käyttääksesi myspawnia
|
||||
mcPlayerListener.NoPermission=Puutteelliset oikeudet (mcPermissions)
|
||||
mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Jos sinulla ei ole käyttöoikeutta johonkin taitoon, sitä ei näytetä täällä.
|
||||
mcPlayerListener.NotInParty=[[RED]]Et ole ryhmässä.
|
||||
mcPlayerListener.InviteSuccess=[[GREEN]]Kutsu lähetetty.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]HUOMIO: [[GREEN]]Olet saanut ryhmäkutsun ryhmään {0} pelaajalta {1}
|
||||
mcPlayerListener.ReceivedInvite2=[[YELLOW]]Kirjoita [[GREEN]]/{0}[[YELLOW]] hyväksyäksesi kutsun
|
||||
mcPlayerListener.InviteAccepted=[[GREEN]]Kutsu hyväksytty. Olet liittynyt ryhmään {0}
|
||||
mcPlayerListener.NoInvites=[[RED]]Sinulla ei ole kutsuja
|
||||
mcPlayerListener.YouAreInParty=[[GREEN]]Olet ryhmässä {0}
|
||||
mcPlayerListener.PartyMembers=[[GREEN]]Ryhmän jäsenet
|
||||
mcPlayerListener.LeftParty=[[RED]]Olet lähtenyt ryhmästä
|
||||
mcPlayerListener.JoinedParty=Liityit ryhmään: {0}
|
||||
mcPlayerListener.PartyChatOn=Vain ryhmäjuttelu [[GREEN]]Päällä
|
||||
mcPlayerListener.PartyChatOff=Vain ryhmäjuttelu [[RED]]Pois päältä
|
||||
mcPlayerListener.AdminChatOn=Vain admin juttelu [[GREEN]]Päällä
|
||||
mcPlayerListener.AdminChatOff=Vain admin juttelu [[RED]]Pois päältä
|
||||
mcPlayerListener.MOTD=[[BLUE]]Tällä serverillä on mcMMO {0} kirjoita [[YELLOW]]/{1}[[BLUE]] apua varten.
|
||||
mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
|
||||
mcPlayerListener.PowerLevel=[[DARK_RED]]VOIMATASO:
|
||||
mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Voimataso [[YELLOW]]Tulostaulukko--
|
||||
mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Tulostaulukko--
|
||||
mcPlayerListener.RepairSkill=[[YELLOW]]Korjaus:
|
||||
mcPlayerListener.SwordsSkill=[[YELLOW]]Miekat:
|
||||
mcPlayerListener.TamingSkill=[[YELLOW]]Kesytys:
|
||||
mcPlayerListener.UnarmedSkill=[[YELLOW]]Aseistamattomuus:
|
||||
mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Puunkaato:
|
||||
mcPlayerListener.YourStats=[[GREEN]]Sinun MMO tilastosi
|
||||
Party.InformedOnJoin={0} [[GREEN]] on liittynyt ryhmään
|
||||
Party.InformedOnQuit={0} [[GREEN]] on lähtenyt ryhmästä
|
||||
Skills.YourGreenTerra=[[GREEN]]Voit taas käyttää [[YELLOW]]Vihermaa [[GREEN]]taitoasi!
|
||||
Skills.YourTreeFeller=[[GREEN]]Voit taas käyttää [[YELLOW]]Puunkaataja [[GREEN]]taitoasi!
|
||||
Skills.YourSuperBreaker=[[GREEN]]Voit taas käyttää [[YELLOW]]Supermurskain [[GREEN]]taitoasi!
|
||||
Skills.YourSerratedStrikes=[[GREEN]]Voit taas käyttää [[YELLOW]]Sahalaitaiset Iskut [[GREEN]]taitoasi!
|
||||
Skills.YourBerserk=[[GREEN]]Voit taas käyttää [[YELLOW]]Raivopää [[GREEN]]taitoasi!
|
||||
Skills.YourSkullSplitter=[[GREEN]]Voit taas käyttää [[YELLOW]]Kallonhalkoja [[GREEN]]taitoasi!
|
||||
Skills.YourGigaDrillBreaker=[[GREEN]]Voit taas käyttää [[YELLOW]]Giga Drill Breaker [[GREEN]]taitoasi!
|
||||
Skills.TooTired=[[RED]]Olet liian väsynyt käyttääksesi tuota taitoa uudestaan.
|
||||
Skills.ReadyHoe=[[GREEN]]**OLET VALMIINA KÄYTTÄMÄÄN KUOKKAA**
|
||||
Skills.LowerHoe=[[GRAY]]**LASKET KUOKKASI**
|
||||
Skills.ReadyAxe=[[GREEN]]**OLET VALMIINA KÄYTTÄMÄÄN KIRVESTÄ**
|
||||
Skills.LowerAxe=[[GRAY]]**LASKET KIRVEESI**
|
||||
Skills.ReadyFists=[[GREEN]]**OLET VALMIINA KÄYTTÄMÄÄN NYRKKEJÄSI**
|
||||
Skills.LowerFists=[[GRAY]]**LASKET NYRKKISI**
|
||||
Skills.ReadyPickAxe=[[GREEN]]**OLET VALMIINA KÄYTTÄMÄÄN HAKKUASI**
|
||||
Skills.LowerPickAxe=[[GRAY]]**LASKET HAKKUSI**
|
||||
Skills.ReadyShovel=[[GREEN]]**OLET VALMIINA KÄYTTÄMÄÄN LAPIOTASI**
|
||||
Skills.LowerShovel=[[GRAY]]**LASKET LAPIOSI**
|
||||
Skills.ReadySword=[[GREEN]]**OLET VALMIINA KÄYTTÄMÄÄN MIEKKAASI**
|
||||
Skills.LowerSword=[[GRAY]]**LASKET MIEKKASI**
|
||||
Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED**
|
||||
Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk!
|
||||
Skills.GreenTerraOn=[[GREEN]]**VIHERMAA AKTIVOITU**
|
||||
Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] käytti [[RED]]Vihermaata!
|
||||
Skills.TreeFellerOn=[[GREEN]]**PUUNKAATAJA AKTIVOITU**
|
||||
Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] käytti [[RED]]Puunkaatajaa!
|
||||
Skills.SuperBreakerOn=[[GREEN]]**SUPERMURSKAIN AKTIVOITU**
|
||||
Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] käytti [[RED]]Supermurskainta!
|
||||
Skills.SerratedStrikesOn=[[GREEN]]**SAHALAITAISET ISKUT AKTIVOITU**
|
||||
Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] käytti [[RED]]Sahalaitaisia Iskuja!
|
||||
Skills.SkullSplitterOn=[[GREEN]]**KALLONHALKOJA AKTIVOITU**
|
||||
Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] käytti [[RED]]Kallonhalkojaa!
|
||||
Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER AKTIVOITU**
|
||||
Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] käytti [[RED]]Giga Drill Breakeria!
|
||||
Skills.GreenTerraOff=[[RED]]**Vihermaa kului pois**
|
||||
Skills.TreeFellerOff=[[RED]]**Puunkaataja kului pois**
|
||||
Skills.SuperBreakerOff=[[RED]]**Supermurskain kului pois**
|
||||
Skills.SerratedStrikesOff=[[RED]]**Sahalaitaiset Iskut kului pois**
|
||||
Skills.BerserkOff=[[RED]]**Raivopää kului pois**
|
||||
Skills.SkullSplitterOff=[[RED]]**Kallonhalkoja kului pois**
|
||||
Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker kului pois**
|
||||
Skills.TamingUp=[[YELLOW]]Sait {0} kesytyspistettä. Kokonaismäärä ({1})
|
||||
Skills.AcrobaticsUp=[[YELLOW]]Sait {0} akrobatiikkapistettä. Kokonaismäärä ({1})
|
||||
Skills.ArcheryUp=[[YELLOW]]Sait {0} jousiammuntapistettä. Kokonaismäärä ({1})
|
||||
Skills.SwordsUp=[[YELLOW]]Sait {0} miekkapistettä. Kokonaismäärä ({1})
|
||||
Skills.AxesUp=[[YELLOW]]Sait {0} kirvespistettä. Kokonaismäärä ({1})
|
||||
Skills.UnarmedUp=[[YELLOW]]Sait {0} aseistamattomuuspistettä. Kokonaismäärä ({1})
|
||||
Skills.HerbalismUp=[[YELLOW]]Sait {0} yrttihoitopistettä. Kokonaismäärä ({1})
|
||||
Skills.MiningUp=[[YELLOW]]Sait {0} louhimispistettä. Kokonaismäärä ({1})
|
||||
Skills.WoodcuttingUp=[[YELLOW]]Sait {0} puunkaatopistettä. Kokonaismäärä ({1})
|
||||
Skills.RepairUp=[[YELLOW]]Sait {0} korjauspistettä. Kokonaismäärä ({1})
|
||||
Skills.ExcavationUp=[[YELLOW]]Sait {0} kaivantopistettä. Kokonaismäärä ({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)
|
321
mcMMO/com/gmail/nossr50/messages_fr.properties
Normal file
321
mcMMO/com/gmail/nossr50/messages_fr.properties
Normal file
@ -0,0 +1,321 @@
|
||||
Combat.WolfExamine=[[GREEN]]**Vous exminez le loup avec le Beast Lore**
|
||||
Combat.WolfShowMaster=[[DARK_GREEN]]Le Maitre des betes \: {0}
|
||||
Combat.Ignition=[[RED]]**ALLUMAGE**
|
||||
Combat.BurningArrowHit=[[DARK_RED]]Vous avez été frappé par une flèche brûlante\!
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Vous voyez floue. Vous vous senter étourdi.
|
||||
Combat.TargetDazed=La cible a été [[DARK_RED]]Étourdi
|
||||
Combat.WolfNoMaster=[[GRAY]]Cette bete n'a pas de maitre...
|
||||
Combat.WolfHealth=[[GREEN]]Cette bete a {0} de Vie
|
||||
Combat.StruckByGore=[[RED]]**FRAPPE JUSQU'AU SANG**
|
||||
Combat.Gore=[[GREEN]]**SANG**
|
||||
Combat.ArrowDeflect=[[WHITE]]**FLECHE DEVIER**
|
||||
Item.ChimaeraWingFail=**CHIMAERA WING MANQUE\!**
|
||||
Item.ChimaeraWingPass=**CHIMAERA WING**
|
||||
Item.InjuredWait=Vous avez été blessé récemment et vous devez attendre pour l'utiliser. [[YELLOW]]({0}s)
|
||||
Item.NeedFeathers=[[GRAY]]Vous avez besoin de plus de plumes..
|
||||
m.mccPartyCommands=[[GREEN]]--COMMANDES PARTIE--
|
||||
m.mccParty=[party name] [[RED]]- Créer / Rejoignez partie désignée
|
||||
m.mccPartyQ=[[RED]]- Vous quitter la partie en cours
|
||||
m.mccPartyToggle=[[RED]] - Active le Chat en groupe
|
||||
m.mccPartyInvite=[player name] [[RED]]- Envoye une invite
|
||||
m.mccPartyAccept=[[RED]]- Accepter l'invitation
|
||||
m.mccPartyTeleport=[party member name] [[RED]]- Vous teleporte vers la partie
|
||||
m.mccOtherCommands=[[GREEN]]--AUTRES COMMANDES--
|
||||
m.mccStats=- Voir les statistiques de votre mcMMO
|
||||
m.mccLeaderboards=- Classements
|
||||
m.mccMySpawn=- Téléporte au myspawn
|
||||
m.mccClearMySpawn=- Efface le MySpawn
|
||||
m.mccToggleAbility=- Active les capacités avec un clic droit
|
||||
m.mccAdminToggle=- Active le chat admin
|
||||
m.mccWhois=[playername] [[RED]]- Voir les infos détaillées du joueur
|
||||
m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modifier
|
||||
m.mccMcGod=- Mod dieu
|
||||
m.mccSkillInfo=[skillname] [[RED]]- Afficher des informations détaillées sur une compétence
|
||||
m.mccModDescription=[[RED]]- Affiche la description de Mcmmo
|
||||
m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
m.XPGain=[[DARK_GRAY]]XP GAGNER: [[WHITE]]{0}
|
||||
m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
m.AbilityLockTemplate=[[GRAY]]{0}
|
||||
m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
|
||||
m.Effects=EFFETS
|
||||
m.YourStats=VOS STATISTIQUES
|
||||
m.SkillTaming=APPRIVOISER
|
||||
m.XPGainTaming=Attaque avec les loups
|
||||
m.EffectsTaming1_0=Connaissance des betes
|
||||
m.EffectsTaming1_1=Bone-whacking inspects wolves
|
||||
m.EffectsTaming2_0=Morsures
|
||||
m.EffectsTaming2_1=Des coups critiques qui s'applique a la morsures
|
||||
m.EffectsTaming3_0=Griffes aiguisées
|
||||
m.EffectsTaming3_1=Bonus de dégâts
|
||||
m.EffectsTaming4_0=Conscient de l'environnement
|
||||
m.EffectsTaming4_1=Resistance Cactus/Lava Phobia
|
||||
m.EffectsTaming5_0=Epaisse fourrure
|
||||
m.EffectsTaming5_1=Réduction DMG, Résistance au feu
|
||||
m.EffectsTaming6_0=Résistance aux chocs
|
||||
m.EffectsTaming6_1=Réduction des dommages explosifs
|
||||
m.AbilLockTaming1=Verrouillé jusqu'à+ SKILL (Previent du danger)
|
||||
m.AbilLockTaming2=Verrouillé jusqu'à 250+ SKILL (épaisse fourrure)
|
||||
m.AbilLockTaming3=Verrouillé jusqu'à 500+ SKILL (antichoc)
|
||||
m.AbilLockTaming4=Verrouillé jusqu'à 750+ SKILL (Griffes aiguisées)
|
||||
m.AbilBonusTaming1_0=Conscient de l'environnement
|
||||
m.AbilBonusTaming1_1=Les loups previent du danger
|
||||
m.AbilBonusTaming2_0=Epaisse fourrure
|
||||
m.AbilBonusTaming2_1=Réduit de moitié les dommages dus à la résistance au feu
|
||||
m.AbilBonusTaming3_0=Résistance aux chocs
|
||||
m.AbilBonusTaming3_1=1/6 des explotion par rapport au dommages normaux
|
||||
m.AbilBonusTaming4_0=Griffes aiguisées
|
||||
m.AbilBonusTaming4_1=+2 Dommages
|
||||
m.TamingGoreChance=[[RED]]Chancede Morsures: [[YELLOW]]{0}%
|
||||
m.SkillWoodCutting=COUPAGES DE BOIS
|
||||
m.XPGainWoodCutting=Abattre des arbres
|
||||
m.EffectsWoodCutting1_0=Arbre Félée (CAPACITE)
|
||||
m.EffectsWoodCutting1_1=Faire exploser des arbres
|
||||
m.EffectsWoodCutting2_0=Soufler les feuilles
|
||||
m.EffectsWoodCutting2_1=Soufler les feuilles encore +
|
||||
m.EffectsWoodCutting3_0=Double Drops
|
||||
m.EffectsWoodCutting3_1=Double du butin normal
|
||||
m.AbilLockWoodCutting1=Verrouillé jusqu'à 100+ SKILL (LEAF BLOWER)
|
||||
m.AbilBonusWoodCutting1_0=Soufler les feuilles
|
||||
m.AbilBonusWoodCutting1_1=Soufler les feuilles encore +
|
||||
m.WoodCuttingDoubleDropChance=[[RED]]Chance de drop doubler: [[YELLOW]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[RED]]Temps de votre Arbre Félée: [[YELLOW]]{0}s
|
||||
m.SkillArchery=TIR A L'ARC
|
||||
m.XPGainArchery=Attaque de monstre
|
||||
m.EffectsArchery1_0=Bruler
|
||||
m.EffectsArchery1_1=25% de chance que l'ennemi s'enflamment
|
||||
m.EffectsArchery2_0=Etourdir (les joueurs)
|
||||
m.EffectsArchery2_1=Ennemis désoriente
|
||||
m.EffectsArchery3_0=Dommages+
|
||||
m.EffectsArchery3_1=Modifie les dommages
|
||||
m.EffectsArchery4_0=Récupération de fleches
|
||||
m.EffectsArchery4_1=Chance pour récupérer les flèches sur un cadavres
|
||||
m.ArcheryDazeChance=[[RED]]Chance d'étourdir: [[YELLOW]]{0}%
|
||||
m.ArcheryRetrieveChance=[[RED]]Chance pour récupérer les flèches: [[YELLOW]]{0}%
|
||||
m.ArcheryIgnitionLength=[[RED]]Durée du feux: [[YELLOW]]{0} seconds
|
||||
m.ArcheryDamagePlus=[[RED]]Dégâts+ (Rank{0}): [[YELLOW]]Bonus {0} dommages
|
||||
m.SkillAxes=HACHES
|
||||
m.XPGainAxes=Attaque de monstre
|
||||
m.EffectsAxes1_0=Casseur de tete (capacité)
|
||||
m.EffectsAxes1_1=Frappes de dommages AoE
|
||||
m.EffectsAxes2_0=Coup critiques
|
||||
m.EffectsAxes2_1=Double Dommages
|
||||
m.EffectsAxes3_0=Maîtrise de la hache (500 SKILL)
|
||||
m.EffectsAxes3_1=Modifie les dommages
|
||||
m.AbilLockAxes1=Verrouillé jusqu'à 500+ SKILL (MAITRISE DE LA HACHE)
|
||||
m.AbilBonusAxes1_0=Maîtrise de la hache
|
||||
m.AbilBonusAxes1_1=4 Blessures en bonus
|
||||
m.AxesCritChance=[[RED]]Chance de coup critique: [[YELLOW]]{0}%
|
||||
m.AxesSkullLength=[[RED]]Temps de votre Casseur de tete: [[YELLOW]]{0}s
|
||||
m.SkillSwords=EPEE
|
||||
m.XPGainSwords=Attaque de monstre
|
||||
m.EffectsSwords1_0=Contre-Attaque
|
||||
m.EffectsSwords1_1=Renvoie 50% des degats subis
|
||||
m.EffectsSwords2_0=Epee cranté (capacité)
|
||||
m.EffectsSwords2_1=25% DMG AoE, saignement+ AoE
|
||||
m.EffectsSwords3_0=Epee cranté et saignement+
|
||||
m.EffectsSwords3_1=5 saignement
|
||||
m.EffectsSwords4_0=Parer
|
||||
m.EffectsSwords4_1=Inverse les dommages
|
||||
m.EffectsSwords5_0=Saignement
|
||||
m.EffectsSwords5_1=Applique un saignement DoT
|
||||
m.SwordsCounterAttChance=[[RED]]Chance de Contre-Attaque : [[YELLOW]]{0}%
|
||||
m.SwordsBleedLength=[[RED]]La longueur du saignement : [[YELLOW]]{0} ticks
|
||||
m.SwordsBleedChance=[[RED]]Chance de faire saigner: [[YELLOW]]{0} %
|
||||
m.SwordsParryChance=[[RED]]Chance de parer: [[YELLOW]]{0} %
|
||||
m.SwordsSSLength=[[RED]]Temps de votre epée cranté: [[YELLOW]]{0}s
|
||||
m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 Le Tick va durer 2 secondes
|
||||
m.SkillAcrobatics=VOLTIGE
|
||||
m.XPGainAcrobatics=Chute
|
||||
m.EffectsAcrobatics1_0=Roulade
|
||||
m.EffectsAcrobatics1_1=Réduit ou Inverse les dommages
|
||||
m.EffectsAcrobatics2_0=Super roulade
|
||||
m.EffectsAcrobatics2_1=Roulade deux fois plus efficace
|
||||
m.EffectsAcrobatics3_0=Esquive
|
||||
m.EffectsAcrobatics3_1=Domages reduit de moitié
|
||||
m.AcrobaticsRollChance=[[RED]]Chance de rouler: [[YELLOW]]{0}%
|
||||
m.AcrobaticsGracefulRollChance=[[RED]]Chance de super roulade: [[YELLOW]]{0}%
|
||||
m.AcrobaticsDodgeChance=[[RED]]Chance d'esquive: [[YELLOW]]{0}%
|
||||
m.SkillMining=MINAGE
|
||||
m.XPGainMining=Extraction de pierre et de minerais
|
||||
m.EffectsMining1_0=Super Breaker (capacité)
|
||||
m.EffectsMining1_1=Vitesse+, Triple Chance de loot
|
||||
m.EffectsMining2_0=Double Drops
|
||||
m.EffectsMining2_1=Double du butin normal
|
||||
m.MiningDoubleDropChance=[[RED]]Double Chance de drop: [[YELLOW]]{0}%
|
||||
m.MiningSuperBreakerLength=[[RED]]Super Breaker Length: [[YELLOW]]{0}s
|
||||
m.SkillRepair=RÉPARATION
|
||||
m.XPGainRepair=Réparation
|
||||
m.EffectsRepair1_0=Réparer
|
||||
m.EffectsRepair1_1=Réparation Outils en fer & Armure
|
||||
m.EffectsRepair2_0=Maitre en reparation
|
||||
m.EffectsRepair2_1=Augmentation des réparations
|
||||
m.EffectsRepair3_0=Super Réparation
|
||||
m.EffectsRepair3_1=Double efficacité
|
||||
m.EffectsRepair4_0=Réparation du Diamant ({0}+ compétence)
|
||||
m.EffectsRepair4_1=Réparation des outils diamant & Armure
|
||||
m.RepairRepairMastery=[[RED]]Maitre en reparation: [[YELLOW]]En plus {0}% durabilité restauré
|
||||
m.RepairSuperRepairChance=[[RED]]Chance de super réparation: [[YELLOW]]{0}%
|
||||
m.SkillUnarmed=Sans armes
|
||||
m.XPGainUnarmed=Attaque de monstre
|
||||
m.EffectsUnarmed1_0=Berserk (CAPACITE)
|
||||
m.EffectsUnarmed1_1=+50% DMG, Rend matériaux faibles
|
||||
m.EffectsUnarmed2_0=Désarmer (Players)
|
||||
m.EffectsUnarmed2_1=Vole l'objet ennemis dans la main
|
||||
m.EffectsUnarmed3_0=Maitres en désarmement
|
||||
m.EffectsUnarmed3_1=De gros dégâts ajouter
|
||||
m.EffectsUnarmed4_0=Apprentissage désarmement
|
||||
m.EffectsUnarmed4_1=Dommages ajouter
|
||||
m.EffectsUnarmed5_0=Fleches dévier
|
||||
m.EffectsUnarmed5_1=Déviation de fleches
|
||||
m.AbilLockUnarmed1=Verrouillé jusqu'à 250+ SKILL (APPRENTIE DESARMER)
|
||||
m.AbilLockUnarmed2=Verrouillé jusqu'à 500+ SKILL (MAITRES EN DESARMEMENT)
|
||||
m.AbilBonusUnarmed1_0=Apprentissage désarmement
|
||||
m.AbilBonusUnarmed1_1=+2 DMG ajouter
|
||||
m.AbilBonusUnarmed2_0=Maitres en désarmement
|
||||
m.AbilBonusUnarmed2_1=+4 DMG ajouter
|
||||
m.UnarmedArrowDeflectChance=[[RED]]Chance de Fleches dévier: [[YELLOW]]{0}%
|
||||
m.UnarmedDisarmChance=[[RED]]Chance de Désarmer: [[YELLOW]]{0}%
|
||||
m.UnarmedBerserkLength=[[RED]]Temps de votre Berserk: [[YELLOW]]{0}s
|
||||
m.SkillHerbalism=Herboristerie
|
||||
m.XPGainHerbalism=La récolte des herbes
|
||||
m.EffectsHerbalism1_0=Main verte (CAPACITE)
|
||||
m.EffectsHerbalism1_1=Propage la Main verte, 3x Items
|
||||
m.EffectsHerbalism2_0=Main verte (Wheat)
|
||||
m.EffectsHerbalism2_1=Auto-plantes lors de la récolte de blé
|
||||
m.EffectsHerbalism3_0=Main verte (Cobble)
|
||||
m.EffectsHerbalism3_1=Cobblestone -> Mossy w/ Seeds
|
||||
m.EffectsHerbalism4_0=Nouriture+
|
||||
m.EffectsHerbalism4_1=Modifie la santé a reçu du pain / ragoût
|
||||
m.EffectsHerbalism5_0=Double items (Toutes les cultures)
|
||||
m.EffectsHerbalism5_1=Double tout les items
|
||||
m.HerbalismGreenTerraLength=[[RED]]Temps de la Main verte: [[YELLOW]]{0}s
|
||||
m.HerbalismGreenThumbChance=[[RED]]Main verte Taux de chance: [[YELLOW]]{0}%
|
||||
m.HerbalismGreenThumbStage=[[RED]]Main verte par niveaux: [[YELLOW]] Wheat grows in stage {0}
|
||||
m.HerbalismDoubleDropChance=[[RED]]Double Chance de dropper: [[YELLOW]]{0}%
|
||||
m.HerbalismFoodPlus=[[RED]]Nourriture+ (Rank{0}): [[YELLOW]]Bonus {0} curatif
|
||||
m.SkillExcavation=CREUSAGE
|
||||
m.XPGainExcavation=Creuser et de trouver des trésors
|
||||
m.EffectsExcavation1_0=Super broyeur (Capacité)
|
||||
m.EffectsExcavation1_1=3x Drop Rate, 3x EXPERIENCE, +Vitesse
|
||||
m.EffectsExcavation2_0=Chercheur de trésor
|
||||
m.EffectsExcavation2_1=Capacité de trouver un trésor
|
||||
m.ExcavationGreenTerraLength=[[RED]]Temps de votre Super broyeur: [[YELLOW]]{0}s
|
||||
mcBlockListener.PlacedAnvil=[[DARK_RED]]Vous avez placé une enclume, Les enclumes peuvent réparer les outils et l'armure.
|
||||
mcEntityListener.WolfComesBack=[[DARK_GRAY]]Votre loup se précipite de nouveau vers vous...
|
||||
mcPlayerListener.AbilitiesOff=Capacité bascule off
|
||||
mcPlayerListener.AbilitiesOn=Capacité bascule on
|
||||
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**CAPACITE RAFRAICHIE\!**
|
||||
mcPlayerListener.AcrobaticsSkill=[[YELLOW]]Acrobaties compétences**/Acrobatics**:
|
||||
mcPlayerListener.ArcherySkill=[[YELLOW]]Tir a l'arc compétences**/Archery**:
|
||||
mcPlayerListener.AxesSkill=[[YELLOW]]Haches compétences**/Axes**:
|
||||
mcPlayerListener.ExcavationSkill=[[YELLOW]]Pelle compétences**/Excavation**:
|
||||
mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Mode Dieux Desactiver
|
||||
mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Mode Dieux Activer
|
||||
mcPlayerListener.GreenThumb=[[GREEN]]**GREEN THUMB**
|
||||
mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FAIL**
|
||||
mcPlayerListener.HerbalismSkill=[[YELLOW]]Herboriste compétences**/Herbalism**:
|
||||
mcPlayerListener.MiningSkill=[[YELLOW]]Minage compétences**/Mining**:
|
||||
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Myspawn est maintenant effacée.
|
||||
mcPlayerListener.MyspawnNotExist=[[RED]]Configurez votre myspawn en 1er avec un lit.
|
||||
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Myspawn a été enregistrer à votre emplacement actuel.
|
||||
mcPlayerListener.MyspawnTimeNotice=Vous devez attendre {0}m {1}s pour utiliser myspawn
|
||||
mcPlayerListener.NoPermission=Insufficient mcPermissions.
|
||||
mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Vous n'avez pas accès a la compétence.
|
||||
mcPlayerListener.NotInParty=[[RED]]Vous n'êtes pas dans un groupe.
|
||||
mcPlayerListener.InviteSuccess=[[GREEN]]Invitation a été envoyé avec succès.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]Vous avez reçu un invitation pour la partie {0} a partir de {1}
|
||||
mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] à accepter l'invitation
|
||||
mcPlayerListener.InviteAccepted=[[GREEN]]Invite acceptées. Vous avez rejoint la partie {0}
|
||||
mcPlayerListener.NoInvites=[[RED]]Vous n'avez pas d'invitation pour le moment
|
||||
mcPlayerListener.YouAreInParty=[[GREEN]]Vous avez dans la partie {0}
|
||||
mcPlayerListener.PartyMembers=[[GREEN]]Partie Membres
|
||||
mcPlayerListener.LeftParty=[[RED]]Vous avez quitté la partie
|
||||
mcPlayerListener.JoinedParty=Joidre la partie: {0}
|
||||
mcPlayerListener.PartyChatOn=Party Chat uniquement [[GREEN]]On
|
||||
mcPlayerListener.PartyChatOff=Party Chat uniquement [[RED]]Off
|
||||
mcPlayerListener.AdminChatOn=Admin Chat uniquement [[GREEN]]On
|
||||
mcPlayerListener.AdminChatOff=Admin Chat uniquement [[RED]]Off
|
||||
mcPlayerListener.MOTD=[[BLUE]]Ce serveur fonctionne avec mcMMO {0} [[YELLOW]]/{1}[[BLUE]] pour voir l'aide.
|
||||
mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki - [[YELLOW]]Traduit par avalondrey
|
||||
mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL:
|
||||
mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
|
||||
mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
|
||||
mcPlayerListener.RepairSkill=[[YELLOW]]Réparation Compétence**/Repair**:
|
||||
mcPlayerListener.SwordsSkill=[[YELLOW]]Epee compétence**/Swords**:
|
||||
mcPlayerListener.TamingSkill=[[YELLOW]]Dressage compétence**/Taming**:
|
||||
mcPlayerListener.UnarmedSkill=[[YELLOW]]Mains nue Compétence**/Unarmed**:
|
||||
mcPlayerListener.WoodcuttingSkill=[[YELLOW]]Bucheron Compétence**/Woodcutting**:
|
||||
mcPlayerListener.YourStats=[[GREEN]]Votre MMO Stats
|
||||
Party.InformedOnJoin={0} [[GREEN]] a join votre partie
|
||||
Party.InformedOnQuit={0} [[GREEN]] a quitté votre partie
|
||||
Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Main verte [[GREEN]]la capacité est revenue!
|
||||
Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Massacre à la tronçonneuse [[GREEN]]la capacité est revenue!
|
||||
Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Broyeur [[GREEN]]la capacité est revenue!
|
||||
Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Epee cranté [[GREEN]]la capacité est revenue!
|
||||
Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]la capacité est revenue!
|
||||
Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Casseur de tete [[GREEN]]la capacité est revenue!
|
||||
Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Super broyeur [[GREEN]]la capacité est revenue!
|
||||
Skills.TooTired=[[RED]]Vous êtes trop fatigué pour utiliser cette capacité à nouveau.
|
||||
Skills.ReadyHoe=[[GREEN]]**TA BINETTE EST PRETE**
|
||||
Skills.LowerHoe=[[GRAY]]**Ta binette n'est plus prete**
|
||||
Skills.ReadyAxe=[[GREEN]]**TA HACHE EST PRETE**
|
||||
Skills.LowerAxe=[[GRAY]]**Ta hache n'est plus prete**
|
||||
Skills.ReadyFists=[[GREEN]]**TON POINGS EST PRETE**
|
||||
Skills.LowerFists=[[GRAY]]**Ton poings n'est plus pret**
|
||||
Skills.ReadyPickAxe=[[GREEN]]**TA PIOCHE EST PRETE**
|
||||
Skills.LowerPickAxe=[[GRAY]]**Ta pioche n'est plus prete**
|
||||
Skills.ReadyShovel=[[GREEN]]**TA PELLE EST PRETE**
|
||||
Skills.LowerShovel=[[GRAY]]**Ta pelle n'est plus prete**
|
||||
Skills.ReadySword=[[GREEN]]**TON EPEE EST PRETE**
|
||||
Skills.LowerSword=[[GRAY]]**Ton épee n'est plus prete**
|
||||
Skills.GreenTerraOn=[[GREEN]]**MAIN VERTE ACTIF**
|
||||
Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Main verte!
|
||||
Skills.TreeFellerOn=[[GREEN]]**MASSACRE A LA TRONCONNEUSE ACTIF**
|
||||
Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Massacre à la tronçonneuse!
|
||||
Skills.SuperBreakerOn=[[GREEN]]**BROYEUR ACTIF**
|
||||
Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Broyeur!
|
||||
Skills.SerratedStrikesOn=[[GREEN]]**EPEE CRANTER ACTIF**
|
||||
Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Epee cranté!
|
||||
Skills.SkullSplitterOn=[[GREEN]]**CASSEUR DE TETE ACTIF**
|
||||
Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Casseur de tete!
|
||||
Skills.GigaDrillBreakerOn=[[GREEN]]**SUPER BROYEUR ACTIF**
|
||||
Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] a utilisé [[RED]]Super broyeur!
|
||||
Skills.GreenTerraOff=[[RED]]**Main verte est fini**
|
||||
Skills.TreeFellerOff=[[RED]]**Massacre à la tronçonneuse est fini**
|
||||
Skills.SuperBreakerOff=[[RED]]**Le broyeur est fini**
|
||||
Skills.SerratedStrikesOff=[[RED]]**Epee cranté est fini**
|
||||
Skills.BerserkOff=[[RED]]**Berserk est fini**
|
||||
Skills.SkullSplitterOff=[[RED]]**Casseur de tete est fini**
|
||||
Skills.GigaDrillBreakerOff=[[RED]]**Super broyeur est fini**
|
||||
Skills.TamingUp=[[YELLOW]]La competence du dressage a augmenté de {0}. Total ({1})
|
||||
Skills.AcrobaticsUp=[[YELLOW]]La competence acrobaties a augmenté de {0}. Total ({1})
|
||||
Skills.ArcheryUp=[[YELLOW]]La competence tir a l'arc a augmenté de {0}. Total ({1})
|
||||
Skills.SwordsUp=[[YELLOW]]La competence epee a augmenté de {0}. Total ({1})
|
||||
Skills.AxesUp=[[YELLOW]]La competence hache a augmenté de {0}. Total ({1})
|
||||
Skills.UnarmedUp=[[YELLOW]]La compétence de combat à mains nues a augmenté de {0}. Total ({1})
|
||||
Skills.HerbalismUp=[[YELLOW]]La competence herboriste a augmenté de {0}. Total ({1})
|
||||
Skills.MiningUp=[[YELLOW]]La competence minage a augmenté de {0}. Total ({1})
|
||||
Skills.WoodcuttingUp=[[YELLOW]]La competence coupe de bois a augmenté de {0}. Total ({1})
|
||||
Skills.RepairUp=[[YELLOW]]La competence réparation a augmenté de {0}. Total ({1})
|
||||
Skills.ExcavationUp=[[YELLOW]]La competence creusage a augmenté de {0}. Total ({1})
|
||||
Skills.FeltEasy=[[GRAY]]That felt easy.
|
||||
Skills.StackedItems=[[DARK_RED]]You can't repair stacked items
|
||||
Skills.NeedMore=[[DARK_RED]]You need more
|
||||
Skills.AdeptDiamond=[[DARK_RED]]You're not skilled enough to repair Diamond
|
||||
Skills.FullDurability=[[GRAY]]That is at full durability.
|
||||
Skills.Disarmed=[[DARK_RED]]You have been disarmed!
|
||||
mcPlayerListener.SorcerySkill=Sorcery:
|
||||
m.SkillSorcery=SORCERY
|
||||
Sorcery.HasCast=[[GREEN]]**CASTING**[[GOLD]]
|
||||
Sorcery.Current_Mana=[[DARK_AQUA]]MP
|
||||
Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
|
||||
Sorcery.Cost=[[RED]][COST] {0} MP
|
||||
Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Out Of Mana [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
|
||||
Sorcery.Water.Thunder=THUNDER
|
||||
Sorcery.Curative.Self=CURE SELF
|
||||
Sorcery.Curative.Other=CURE OTHER
|
||||
m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Combat.BeastLore=[[GREEN]]**BEAST LORE**
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/20)
|
||||
Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/8)
|
323
mcMMO/com/gmail/nossr50/messages_pl.properties
Normal file
323
mcMMO/com/gmail/nossr50/messages_pl.properties
Normal file
@ -0,0 +1,323 @@
|
||||
Combat.WolfExamine=[[GREEN]]**Zbadales Wilka uzywajac Wiedzy Besti**
|
||||
Combat.WolfShowMaster=[[DARK_GREEN]]Wlascicielem besti jest \: {0}
|
||||
Combat.Ignition=[[RED]]**PODPALENIE**
|
||||
Combat.BurningArrowHit=[[DARK_RED]]Zostales trafiony plonaca strzala\!
|
||||
Combat.TouchedFuzzy=[[DARK_RED]]Czujesz sie oszolomiony.
|
||||
Combat.TargetDazed=Target was [[DARK_RED]]Oszolomiony.
|
||||
Combat.WolfNoMaster=[[GRAY]]Ta Bestia nie ma wlasciciela...
|
||||
Combat.WolfHealth=[[GREEN]]Ta bestia ma {0} zycia.
|
||||
Combat.StruckByGore=[[RED]]**POWALONY**
|
||||
Combat.Gore=[[GREEN]]**WYLEW KRWI**
|
||||
Combat.ArrowDeflect=[[WHITE]]**ODBICIE STRZALU**
|
||||
Item.ChimaeraWingFail=**UZYCIE SKRZYDLA CHIMAERY NIE POWIODLO SIE\!**
|
||||
Item.ChimaeraWingPass=**UZYLES SKRZYDEL CHIMAERY**
|
||||
Item.InjuredWait=Musisz poczekac aby znowu to uzyc. [[YELLOW]]({0}sekund)
|
||||
Item.NeedFeathers=[[GRAY]]Potrzebujesz wiecej pior.
|
||||
m.mccPartyCommands=[[GREEN]]--KOMENDY DRUZYNOWE--
|
||||
m.mccParty=[party name] [[RED]]- Tworzy lub dolacza do danej druzyny.
|
||||
m.mccPartyQ=[[RED]]- Pozwala opuscic druzyne.
|
||||
m.mccPartyToggle=[[RED]] - Wlacza chat druzyny.
|
||||
m.mccPartyInvite=[player name] [[RED]]- Wysyla zaproszenie do druzyny.
|
||||
m.mccPartyAccept=[[RED]]- Akceptuje zaproszenie do druzyny.
|
||||
m.mccPartyTeleport=[party member name] [[RED]]- Teleportuje cie do czlonka druzyny.
|
||||
m.mccOtherCommands=[[GREEN]]--INNE KOMENDY--
|
||||
m.mccStats=- Pokazuje twoje statystyki.
|
||||
m.mccLeaderboards=- Pokazuje najlepszych graczy.
|
||||
m.mccMySpawn=- Teleportuje do spawna.
|
||||
m.mccClearMySpawn=- Kasuje twoj spawn i zmienia na domyslny.
|
||||
m.mccToggleAbility=- Wlacza specjalna umiejetnosc prawym przyciskiem myszy.
|
||||
m.mccAdminToggle=- Wlacza chat adminow.
|
||||
m.mccWhois=[nazwa gracza] [[RED]]- Zobacz dokladne informacje na temat gracza.
|
||||
m.mccMmoedit=[nazwa gracza] [umiejetnosc] [nowa wartosc] [[RED]]- Modyfikuje cel.
|
||||
m.mccMcGod=- Tryb Boga.
|
||||
m.mccSkillInfo=[nazwa umiejetnosci (np. Mining)] [[RED]]- Pokazuje dokladne informacje o umiejetnosci.
|
||||
m.mccModDescription=[[RED]]- Wyswietla opis moda.
|
||||
m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]-----
|
||||
m.XPGain=[[DARK_GRAY]]Dostajesz doswiadczenie za: [[WHITE]]{0}
|
||||
m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1}
|
||||
m.AbilityLockTemplate=[[GRAY]]{0}
|
||||
m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1}
|
||||
m.Effects=EFEKTY
|
||||
m.YourStats=TWOJE STATYSTYKI
|
||||
m.SkillTaming=OSWAJANIE
|
||||
m.XPGainTaming=Wilki zostaja oswojone.
|
||||
m.EffectsTaming1_0=Wiedza Besti
|
||||
m.EffectsTaming1_1=Kosci pozwalaja sprawdzic wilki.
|
||||
m.EffectsTaming2_0=Krwotok
|
||||
m.EffectsTaming2_1=Atak Krytyczny powodujacy silny krwotok.
|
||||
m.EffectsTaming3_0=Naostrzone pazury
|
||||
m.EffectsTaming3_1=Bonus do obrazen
|
||||
m.EffectsTaming4_0=Swiadome srodowisko
|
||||
m.EffectsTaming4_1=Strach przed kaktusami i lawa, odpornosc na obrazenia ze spadania.
|
||||
m.EffectsTaming5_0=Grube Futro
|
||||
m.EffectsTaming5_1=Redukcja obrazen, obrona przeciw ogniowi.
|
||||
m.EffectsTaming6_0=Odpornosc na wstrzasy.
|
||||
m.EffectsTaming6_1=Redukajca obrazen spowodowanych wybuchem.
|
||||
m.AbilLockTaming1=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 100+ (SWIADOME SRODOWISKO)
|
||||
m.AbilLockTaming2=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 250+ (GRUBE FUTRO)
|
||||
m.AbilLockTaming3=Zablokowane puki nie osiganiesz umiejetnosci na poziomie 500+ (ODPORNOSC NA WSTRZASY)
|
||||
m.AbilLockTaming4=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 750+ (NAOSTRZONE PAZURY)
|
||||
m.AbilBonusTaming1_0=Swiadome srodowisko.
|
||||
m.AbilBonusTaming1_1=Wilki unikaja zagrozenia.
|
||||
m.AbilBonusTaming2_0=Grube futro.
|
||||
m.AbilBonusTaming2_1=Polowa obrazen, obrona przeciw ogniowi.
|
||||
m.AbilBonusTaming3_0=Odpornosc na wstrzasy.
|
||||
m.AbilBonusTaming3_1=Wybuchy powoduja 1/6 normalnych obrazen.
|
||||
m.AbilBonusTaming4_0=Naostrzone pazury
|
||||
m.AbilBonusTaming4_1=+2 Obrazen
|
||||
m.TamingGoreChance=[[RED]]Szansa na spowodowanie krwotoku: [[YELLOW]]{0}%
|
||||
m.SkillWoodCutting=Scinanie Drzew
|
||||
m.XPGainWoodCutting=Powalanie drzew
|
||||
m.EffectsWoodCutting1_0=Powalacz drzew (UMIEJETNOSC)
|
||||
m.EffectsWoodCutting1_1=Powoduje ze drzewa blyskawicznie zostaja powalone
|
||||
m.EffectsWoodCutting2_0=Wysadzacz lisci
|
||||
m.EffectsWoodCutting2_1=Wyrzuca liscie
|
||||
m.EffectsWoodCutting3_0=Podwojna Zaplata
|
||||
m.EffectsWoodCutting3_1=Podwaja normalny drop przedmiotow.
|
||||
m.AbilLockWoodCutting1=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 100+ (WYSADZACZ LISCI)
|
||||
m.AbilBonusWoodCutting1_0=Wysadzacz lisci
|
||||
m.AbilBonusWoodCutting1_1=Wyrzuca liscie
|
||||
m.WoodCuttingDoubleDropChance=[[RED]]Szansa na Podwojna Zaplate: [[YELLOW]]{0}%
|
||||
m.WoodCuttingTreeFellerLength=[[RED]]Dlugosc Powalacza Drzew: [[YELLOW]]{0}sekund
|
||||
m.SkillArchery=LUCZNICTWO
|
||||
m.XPGainArchery=Atakowanie potworow przy uzyciu luku.
|
||||
m.EffectsArchery1_0=Podpalenie
|
||||
m.EffectsArchery1_1=25% szansy, ze cel zostanie podpalony.
|
||||
m.EffectsArchery2_0=Oszolomienie(Tylko na graczy)
|
||||
m.EffectsArchery2_1=Dezorientuje przeciwnikow.
|
||||
m.EffectsArchery3_0=Obrazenia+
|
||||
m.EffectsArchery3_1=Modyfikuje obrazenia.
|
||||
m.EffectsArchery4_0=Odzyskanie strzal.
|
||||
m.EffectsArchery4_1=Szansa na wyciagniecie strzalow ze zwlok.
|
||||
m.ArcheryDazeChance=[[RED]]Szansa na oszolomienie: [[YELLOW]]{0}%
|
||||
m.ArcheryRetrieveChance=[[RED]]Szansa na odzyskanie strzal: [[YELLOW]]{0}%
|
||||
m.ArcheryIgnitionLength=[[RED]]Dlugosc podpalenia: [[YELLOW]]{0} sekund
|
||||
m.ArcheryDamagePlus=[[RED]]Obrazenia+ (Rank{0}): [[YELLOW]]Dodatkowe {0} obrazenia
|
||||
m.SkillAxes=TOPORY
|
||||
m.XPGainAxes=Atakowanie potworow przy uzyciu toporow.
|
||||
m.EffectsAxes1_0=Lamacz Czaszek (UMIEJETNOSC)
|
||||
m.EffectsAxes1_1=Powoduje obrazenia dla calego obszaru.
|
||||
m.EffectsAxes2_0=Krytyczne Ataki
|
||||
m.EffectsAxes2_1=Podwojna Sila
|
||||
m.EffectsAxes3_0=Mistrzostwo Toporow
|
||||
m.EffectsAxes3_1=Modyfikuje obrazenia
|
||||
m.AbilLockAxes1=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 500+ (MISTRZOSTWO TOPOROW)
|
||||
m.AbilBonusAxes1_0=Mistrzostwo Toporow
|
||||
m.AbilBonusAxes1_1=Dodatkowe 4 obrazen
|
||||
m.AxesCritChance=[[RED]]Szansa na krytyczne ataki: [[YELLOW]]{0}%
|
||||
m.AxesSkullLength=[[RED]]Dlugosc Lamacza Czaszek: [[YELLOW]]{0}sekund
|
||||
m.SkillSwords=MIECZE
|
||||
m.XPGainSwords=Atakowanie potworow przy uzyciu mieczy.
|
||||
m.EffectsSwords1_0=Konter-Atak
|
||||
m.EffectsSwords1_1=Odbija 50% poniesionych obrazen.
|
||||
m.EffectsSwords2_0=Zabkowany Atak (UMIEJETNOSC)
|
||||
m.EffectsSwords2_1=25% obrazen obszarowych, Krwotok+ obszarowy
|
||||
m.EffectsSwords3_0=Zabkowany Atak, Krwotok+
|
||||
m.EffectsSwords3_1=Powoduje dlugotrwaly krwotok.
|
||||
m.EffectsSwords4_0=Blok.
|
||||
m.EffectsSwords4_1=Nie ponosisz obrazen.
|
||||
m.EffectsSwords5_0=Krwotok
|
||||
m.EffectsSwords5_1=Powoduje Krwotok
|
||||
m.SwordsCounterAttChance=[[RED]]Szansa na Konter-Atak: [[YELLOW]]{0}%
|
||||
m.SwordsBleedLength=[[RED]]Dlugosc Krwotoku: [[YELLOW]]{0} wylewow krwi.
|
||||
m.SwordsBleedChance=[[RED]]Szansa na spowodowanie Krwotoku: [[YELLOW]]{0} %
|
||||
m.SwordsParryChance=[[RED]]Parry Chance: [[YELLOW]]{0} %
|
||||
m.SwordsSSLength=[[RED]]Dlugosc Zabkowanego Ataku: [[YELLOW]]{0}sekund
|
||||
m.SwordsTickNote=[[GRAY]]UWAGA: [[YELLOW]]1 Wylew Krwi pojawia sie co 2 sekundy.
|
||||
m.SkillAcrobatics=AKROBATYKI
|
||||
m.XPGainAcrobatics=Spadanie
|
||||
m.EffectsAcrobatics1_0=Rolowanie sie.
|
||||
m.EffectsAcrobatics1_1=Redukuje albo usuwa obrazenia.
|
||||
m.EffectsAcrobatics2_0=Wielka przewrotka
|
||||
m.EffectsAcrobatics2_1=Dwa razy efektowowniejsze niz rolowanie sie.
|
||||
m.EffectsAcrobatics3_0=Unik
|
||||
m.EffectsAcrobatics3_1=Redukuje polowe obrazen.
|
||||
m.AcrobaticsRollChance=[[RED]]Szansa na rolowanie sie: [[YELLOW]]{0}%
|
||||
m.AcrobaticsGracefulRollChance=[[RED]]Szansa na wielka przewrotke: [[YELLOW]]{0}%
|
||||
m.AcrobaticsDodgeChance=[[RED]]Szansa na unik: [[YELLOW]]{0}%
|
||||
m.SkillMining=WYKOPALISKA
|
||||
m.XPGainMining=Wykopywanie kamienia i roznych rud.
|
||||
m.EffectsMining1_0=Super Kopacz (UMIEJETNOSC)
|
||||
m.EffectsMining1_1=Szybkosc+, Szansa na potrujna zaplate.
|
||||
m.EffectsMining2_0=Podwojna zaplata.
|
||||
m.EffectsMining2_1=Podwaja normalny drop.
|
||||
m.MiningDoubleDropChance=[[RED]]Szansa na podwojna zaplate: [[YELLOW]]{0}%
|
||||
m.MiningSuperBreakerLength=[[RED]]Dlugosc super kopania: [[YELLOW]]{0}sekund
|
||||
m.SkillRepair=NAPRAWA
|
||||
m.XPGainRepair=Naprawianie przedmiotow.
|
||||
m.EffectsRepair1_0=Naprawa
|
||||
m.EffectsRepair1_1=Naprawianie zelaznych przedmiotow.
|
||||
m.EffectsRepair2_0=Mistrz naprawy
|
||||
m.EffectsRepair2_1=Powiekszona liczba napraw.
|
||||
m.EffectsRepair3_0=Super Naprawa
|
||||
m.EffectsRepair3_1=Podwojna efektownosc.
|
||||
m.EffectsRepair4_0=Diamentowa Odnowa ({0}+ UMIEJETNOSC)
|
||||
m.EffectsRepair4_1=Naprawia diamentowe przedmioty.
|
||||
m.RepairRepairMastery=[[RED]]Mistrz naprawy: [[YELLOW]]Dodatkowe {0}% wytrzymalosci odzyskane.
|
||||
m.RepairSuperRepairChance=[[RED]]Szansa na Super Odnowe: [[YELLOW]]{0}%
|
||||
m.SkillUnarmed=BEZBRONNY
|
||||
m.XPGainUnarmed=Atakowanie potworow piescia.
|
||||
m.EffectsUnarmed1_0=Furia (UMIEJETNOSC)
|
||||
m.EffectsUnarmed1_1=+50% obrazen, niszczy slabe materialy.
|
||||
m.EffectsUnarmed2_0=Rozbrojenie (Gracze)
|
||||
m.EffectsUnarmed2_1=Wyrzuca przedmioty przyciwnikow trzymane przez nich w rekach.
|
||||
m.EffectsUnarmed3_0=Mistrzostwo walki gola piescia
|
||||
m.EffectsUnarmed3_1=Ogromne ulepszenie obrazen
|
||||
m.EffectsUnarmed4_0=Poczatkujacy bezbronny
|
||||
m.EffectsUnarmed4_1=Ulepszenie obrazen
|
||||
m.EffectsUnarmed5_0=Odbicie strzaly
|
||||
m.EffectsUnarmed5_1=Odbija strzaly
|
||||
m.AbilLockUnarmed1=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 250+ (POCZATKUJACY BEZBRONNY)
|
||||
m.AbilLockUnarmed2=Zablokowane puki nie osiagniesz umiejetnosci na poziomie 500+ (MISTRZOSTWO WALKI GOLA PIESCIA)
|
||||
m.AbilBonusUnarmed1_0=Poczatkujacy bezbronny
|
||||
m.AbilBonusUnarmed1_1=+2 obrazen
|
||||
m.AbilBonusUnarmed2_0=Mistrzostwo walki gola piescia
|
||||
m.AbilBonusUnarmed2_1=+4 obrazen
|
||||
m.UnarmedArrowDeflectChance=[[RED]]Szansa na odbicie strzaly: [[YELLOW]]{0}%
|
||||
m.UnarmedDisarmChance=[[RED]]Szansa na rozbrojenie: [[YELLOW]]{0}%
|
||||
m.UnarmedBerserkLength=[[RED]]Dlugosc Furii: [[YELLOW]]{0}s
|
||||
m.SkillHerbalism=ZIELARSTWO
|
||||
m.XPGainHerbalism=Zbieranie ziol.
|
||||
m.EffectsHerbalism1_0=Zielona Ziemia (UMIEJETNOSC)
|
||||
m.EffectsHerbalism1_1=Rozprzestrzenia ziemie, Potraja Wynagrodzenie.
|
||||
m.EffectsHerbalism2_0=Zielony Kciuk (Zboze)
|
||||
m.EffectsHerbalism2_1=Automatycznie zasadza nasiona przy zbieraniu zboza.
|
||||
m.EffectsHerbalism3_0=Zielony Kciuk (Cobbletone)
|
||||
m.EffectsHerbalism3_1=Zamienia Cooblestone w Mossy Stone
|
||||
m.EffectsHerbalism4_0=Jedzenie+
|
||||
m.EffectsHerbalism4_1=Modyfikuje ilosc zycia regenerowana przez zjedzenie chleba/zupy grzybowej.
|
||||
m.EffectsHerbalism5_0=Podwojne wynagrodzenie
|
||||
m.EffectsHerbalism5_1=Podwaja normalny drop
|
||||
m.HerbalismGreenTerraLength=[[RED]]Czas Trwania Zielonego Kciuka: [[YELLOW]]{0}sekund
|
||||
m.HerbalismGreenThumbChance=[[RED]]Szansa na powodzenie Zielonego Kciuka: [[YELLOW]]{0}%
|
||||
m.HerbalismGreenThumbStage=[[RED]]Poziom Zielonego Kciuka: [[YELLOW]] Zboze rosnie na poziomie {0}
|
||||
m.HerbalismDoubleDropChance=[[RED]]Podwojne wynagrodzenie: [[YELLOW]]{0}%
|
||||
m.HerbalismFoodPlus=[[RED]]Jedzenie+ (Rank{0}): [[YELLOW]]Dodatkowe {0} zycia
|
||||
m.SkillExcavation=ARCHEOLOGIA
|
||||
m.XPGainExcavation=Kopanie i odnajdywanie skarbow
|
||||
m.EffectsExcavation1_0=Wielki Lamacz Wiertla (UMIEJETNOSC)
|
||||
m.EffectsExcavation1_1=3x wieksze wynagrodzenei, 3x wiecej doswiadczenia, +Szybkosc
|
||||
m.EffectsExcavation2_0=Lowca Skarbow
|
||||
m.EffectsExcavation2_1=Umiejetnosc znajdywania skarbow
|
||||
m.ExcavationGreenTerraLength=[[RED]]Wielki Lamacz Wiertla: [[YELLOW]]{0}s
|
||||
mcBlockListener.PlacedAnvil=[[DARK_RED]]Polozyles kowadlo, ktore pozwala na naprawe przedmiotow.
|
||||
mcEntityListener.WolfComesBack=[[DARK_GRAY]]Twoj Wilk do Ciebie wraca.
|
||||
mcPlayerListener.AbilitiesOff=Uzywanie umiejetnosci wylaczone
|
||||
mcPlayerListener.AbilitiesOn=Uzywanie umiejetnosci wlaczone
|
||||
mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**UMIEJETNOSCI ODSWIEZONE\!**
|
||||
mcPlayerListener.AcrobaticsSkill=Akrobatyka:
|
||||
mcPlayerListener.ArcherySkill=Lucznictwo:
|
||||
mcPlayerListener.AxesSkill=Topory:
|
||||
mcPlayerListener.ExcavationSkill=Archeologia:
|
||||
mcPlayerListener.GodModeDisabled=[[YELLOW]]Tryb boga wylaczony
|
||||
mcPlayerListener.GodModeEnabled=[[YELLOW]]Tryb boga wlaczony
|
||||
mcPlayerListener.GreenThumb=[[GREEN]]**UZYLES ZIELONY KCIUK**
|
||||
mcPlayerListener.GreenThumbFail=[[RED]]**UZYWANIE ZIELONEGO KCIUKA NIE POWIODLO SIE**
|
||||
mcPlayerListener.HerbalismSkill=Zielarstwo:
|
||||
mcPlayerListener.MiningSkill=Wykopaliska:
|
||||
mcPlayerListener.MyspawnCleared=[[DARK_AQUA]]Twoj spawn jest teraz oczyszczony.
|
||||
mcPlayerListener.MyspawnNotExist=[[RED]]Ustaw wpierw swoj spawn za pomoca lozka.
|
||||
mcPlayerListener.MyspawnSet=[[DARK_AQUA]]Twoj spawn zostal ustawiony na twoje aktualne polozenie.
|
||||
mcPlayerListener.MyspawnTimeNotice=Musisz zaczekac {0}minut i {1}sekund aby przeteleportowac sie na spawn.
|
||||
mcPlayerListener.NoPermission=Brak mcPermissions.
|
||||
mcPlayerListener.NoSkillNote=[[DARK_GRAY]]Jesli nie masz prawa do uzywania umiejetnosci, nie pokaze sie ona tu.
|
||||
mcPlayerListener.NotInParty=[[RED]]Nie jestes w grupie.
|
||||
mcPlayerListener.InviteSuccess=[[GREEN]]Zaproszenie wyslane.
|
||||
mcPlayerListener.ReceivedInvite1=[[RED]]UWAGA: [[GREEN]]Dostales zaproszenie do grupy {0} od {1}
|
||||
mcPlayerListener.ReceivedInvite2=[[YELLOW]Wpisz [[GREEN]]/{0}[[YELLOW]] aby zaakceptowac zaproszenie
|
||||
mcPlayerListener.InviteAccepted=[[GREEN]]Zaproszenie akceptowane. Doszles do grupy {0}
|
||||
mcPlayerListener.NoInvites=[[RED]]Nie masz zadnych zaproszen do grupy
|
||||
mcPlayerListener.YouAreInParty=[[GREEN]]Jestes w grupie {0}
|
||||
mcPlayerListener.PartyMembers=[[GREEN]]Czlonkowie grupy
|
||||
mcPlayerListener.LeftParty=[[RED]]Wyszles z tej grupy
|
||||
mcPlayerListener.JoinedParty=Doszedles do grupy: {0}
|
||||
mcPlayerListener.PartyChatOn=Chat tylko dla grupy [[GREEN]]WLACZONY
|
||||
mcPlayerListener.PartyChatOff=Chat tylko dla grupy [[RED]]WYLACZONY
|
||||
mcPlayerListener.AdminChatOn=Chat tylko dla adminow [[GREEN]]WLACZONY
|
||||
mcPlayerListener.AdminChatOff=Chat tylko dla adminow [[RED]]WYLACZONY
|
||||
mcPlayerListener.MOTD=[[BLUE]]Ten server uzywa plugina mcMMO {0} wpisz [[YELLOW]]/{1}[[BLUE]] aby uzyskac pomoc.
|
||||
mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki
|
||||
mcPlayerListener.PowerLevel=[[DARK_RED]]POZIOM MOCY:
|
||||
mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--Ranking [[BLUE]]poziomu mocy [[YELLOW]]mcMMO--
|
||||
mcPlayerListener.SkillLeaderboard=[[YELLOW]]--Ranking [[BLUE]]{0}[[YELLOW]] mcMMO--
|
||||
mcPlayerListener.RepairSkill=Naprawa:
|
||||
mcPlayerListener.SwordsSkill=Miecze:
|
||||
mcPlayerListener.TamingSkill=Oswajanie:
|
||||
mcPlayerListener.UnarmedSkill=Bezbronny:
|
||||
mcPlayerListener.WoodcuttingSkill=Scinanie drzew:
|
||||
mcPlayerListener.YourStats=[[GREEN]][mcMMO] Statystyki
|
||||
Party.InformedOnJoin={0} [[GREEN]] dolaczyl do twojej grupy
|
||||
Party.InformedOnQuit={0} [[GREEN]] wyszedl z twojej grupy
|
||||
Skills.YourGreenTerra=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Zielona Ziemia [[GREEN]]zostala naladowana!
|
||||
Skills.YourTreeFeller=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Powalacz Drzew [[GREEN]]zostala naladowana!
|
||||
Skills.YourSuperBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Super Kopacz [[GREEN]]zostala naladowana!
|
||||
Skills.YourSerratedStrikes=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Zabkowany Atak [[GREEN]]zostala naladowana!
|
||||
Skills.YourBerserk=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Furia [[GREEN]]zostala naladowana!
|
||||
Skills.YourSkullSplitter=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Lamacz Czaszek [[GREEN]]zostala naladowana!
|
||||
Skills.YourGigaDrillBreaker=[[GREEN]]Twoja umiejetnosc [[YELLOW]]Wielki Lamacz Wiertla [[GREEN]]zostala naladowana!
|
||||
Skills.TooTired=[[RED]]Jestes zbyt zmeczony zeby uzyc znowu tej umiejetnosci.
|
||||
Skills.ReadyHoe=[[GREEN]]**NALADOWALES SWOJA MOTYKE**
|
||||
Skills.LowerHoe=[[GRAY]]**ZWOLNILES SWOJA MOTYKE**
|
||||
Skills.ReadyAxe=[[GREEN]]**NALADOWALES SWOJ TOPOR**
|
||||
Skills.LowerAxe=[[GRAY]]**ZWOLNILES SWOJ TOPOR**
|
||||
Skills.ReadyFists=[[GREEN]]**NALADOWALES SWOJE PIESCI**
|
||||
Skills.LowerFists=[[GRAY]]**ZWOLNILES SWOJE PIESCI**
|
||||
Skills.ReadyPickAxe=[[GREEN]]**NALADOWALES SWOJ KILOF**
|
||||
Skills.LowerPickAxe=[[GRAY]]**ZWOLNILES SWOJ KILOF**
|
||||
Skills.ReadyShovel=[[GREEN]]**NALADOWALES SWOJA LOPATE**
|
||||
Skills.LowerShovel=[[GRAY]]**ZWOLNILES SWOJA LOPATE**
|
||||
Skills.ReadySword=[[GREEN]]**NALADOWALES SWOJ MIECZ**
|
||||
Skills.LowerSword=[[GRAY]]**ZWOLNILES SWOJ MIECZ**
|
||||
Skills.BerserkOn=[[GREEN]]**FURIA AKTYWOWANA**
|
||||
Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Furie!
|
||||
Skills.GreenTerraOn=[[GREEN]]**ZIELONA ZIEMIA AKTYWOWANA**
|
||||
Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Zielona Ziemie!
|
||||
Skills.TreeFellerOn=[[GREEN]]**POWALACZ DRZEW AKTYWOWANY**
|
||||
Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Powalacza Drzew!
|
||||
Skills.SuperBreakerOn=[[GREEN]]**SUPER KOPACZ AKTYWOWANY**
|
||||
Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Super Kopacza!
|
||||
Skills.SerratedStrikesOn=[[GREEN]]**ZABKOWANY ATAK AKTYWOWANY**
|
||||
Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Zabkowany Atak!
|
||||
Skills.SkullSplitterOn=[[GREEN]]**LAMACZ CZASZEK AKTYWOWANY**
|
||||
Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Lamacza Czaszek!
|
||||
Skills.GigaDrillBreakerOn=[[GREEN]]**WIELKI LAMACZ WIERTLA AKTYWOWANY**
|
||||
Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] uzyl [[RED]]Wielki Lamacz Wiertla!
|
||||
Skills.GreenTerraOff=[[RED]]**Zielona Ziemia zostala zuzyta**
|
||||
Skills.TreeFellerOff=[[RED]]**Powalacz drzew zostal zuzyty**
|
||||
Skills.SuperBreakerOff=[[RED]]**Super Kopacz zostal zuzyty**
|
||||
Skills.SerratedStrikesOff=[[RED]]**Zabkowany Atak zostal zuzyty**
|
||||
Skills.BerserkOff=[[RED]]**Furia zostala zuzyta**
|
||||
Skills.SkullSplitterOff=[[RED]]**Lamacz czaszek zostal zuzyty**
|
||||
Skills.GigaDrillBreakerOff=[[RED]]**Wielki Lamacz Wiertla zostal zuzyty**
|
||||
Skills.TamingUp=[[YELLOW]]Umiejetnosc oswajania ulepszona o {0}. Razem ({1})
|
||||
Skills.AcrobaticsUp=[[YELLOW]]Umiejetnosci akrobatyczne ulepszone o {0}. Razem ({1})
|
||||
Skills.ArcheryUp=[[YELLOW]]Umiejetnosc lucznictwa ulepszona o {0}. Razem ({1})
|
||||
Skills.SwordsUp=[[YELLOW]]Umiejetnosc uzywania mieczy ulepszona o {0}. Razem ({1})
|
||||
Skills.AxesUp=[[YELLOW]]Umiejetnosc uzywania topora ulepszona o {0}. Razem ({1})
|
||||
Skills.UnarmedUp=[[YELLOW]]Umiejetnosc bezbronnosci ulepszona o {0}. Razem ({1})
|
||||
Skills.HerbalismUp=[[YELLOW]]Umiejetnosc zielarstwa ulepszona o {0}. Razem ({1})
|
||||
Skills.MiningUp=[[YELLOW]]Umiejetnosc wykopalisk ulepszona o {0}. Razem ({1})
|
||||
Skills.WoodcuttingUp=[[YELLOW]]Umiejetnosc ciecia drzew ulepszona o {0}. Razem ({1})
|
||||
Skills.RepairUp=[[YELLOW]]Umiejetnosc naprawy ulepszona o {0}. Razem ({1})
|
||||
Skills.ExcavationUp=[[YELLOW]]Umiejetnosc archeologii ulepszona o {0}. Razem ({1})
|
||||
Skills.FeltEasy=[[GRAY]]To poszlo latwo.
|
||||
Skills.StackedItems=[[DARK_RED]]Nie mozesz naprawiac przedmiotow ulozonych na sterte.
|
||||
Skills.NeedMore=[[DARK_RED]]Potrzebujesz wiecej
|
||||
Skills.AdeptDiamond=[[DARK_RED]]Nie jestes wystarczajaco utalentowany zeby naprawic Diament
|
||||
Skills.FullDurability=[[GRAY]]Ten przedmiot jest w pelni wytrzymaly.
|
||||
Skills.Disarmed=[[DARK_RED]]Zostales rozbrojony!
|
||||
mcPlayerListener.SorcerySkill=Magia:
|
||||
m.SkillSorcery=MAGIA
|
||||
Sorcery.HasCast=[[GREEN]]**RZUCANIE ZAKLECIA**[[GOLD]]
|
||||
Sorcery.Current_Mana=[[DARK_AQUA]]MP
|
||||
Sorcery.SpellSelected=[[GREEN]]-=([[GOLD]]{0}[[GREEN]])=- [[RED]]([[GRAY]]{1}[[RED]])
|
||||
Sorcery.Cost=[[RED]][COST] {0} MP
|
||||
Sorcery.OOM=[[DARK_AQUA]][[[GOLD]]{2}[[DARK_AQUA]]][[DARK_GRAY]] Koniec Many [[YELLOW]]([[RED]]{0}[[YELLOW]]/[[GRAY]]{1}[[YELLOW]])
|
||||
Sorcery.Water.Thunder=PIORUN
|
||||
Sorcery.Curative.Self=LECZENIE SIEBIE
|
||||
Sorcery.Curative.Other=LECZENIE INNYCH LUDZI
|
||||
m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]Doswiadczenia[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]])
|
||||
Combat.BeastLore=[[GREEN]]**WIEDZA BESTI**
|
||||
Combat.BeastLoreOwner=[[DARK_AQUA]]Wlasciciel ([[RED]]{0}[[DARK_AQUA]])
|
||||
Combat.BeastLoreHealthWolfTamed=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/20)
|
||||
Combat.BeastLoreHealthWolf=[[DARK_AQUA]]Zycie ([[GREEN]]{0}[[DARK_AQUA]]/8)
|
@ -1,8 +1,8 @@
|
||||
package com.gmail.nossr50.party;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
@ -50,22 +50,24 @@ public class Party {
|
||||
for(Player p : players){
|
||||
if(player != null && p != null){
|
||||
if(inSameParty(player, p) && !p.getName().equals(player.getName())){
|
||||
p.sendMessage(player.getName() + ChatColor.GREEN + " has joined your party");
|
||||
p.sendMessage(Messages.getString("Party.InformedOnJoin", new Object[] {player.getName()}));
|
||||
x++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void informPartyMembersQuit(Player player, Player[] players){
|
||||
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(player.getName() + ChatColor.GREEN + " has left your party");
|
||||
x++;
|
||||
if(player != null && p != null){
|
||||
if(inSameParty(player, p) && !p.getName().equals(player.getName()))
|
||||
{
|
||||
p.sendMessage(Messages.getString("Party.InformedOnQuit", new Object[] {player.getName()}));
|
||||
x++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
@ -16,7 +15,7 @@ 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.getAcrobaticsInt();
|
||||
int acrovar = PP.getSkill("acrobatics");
|
||||
if(player.isSneaking())
|
||||
acrovar = acrovar * 2;
|
||||
if(Math.random() * 1000 <= acrovar && !event.isCancelled()){
|
||||
@ -55,8 +54,8 @@ public class Acrobatics {
|
||||
PlayerProfile PPd = Users.getProfile(defender);
|
||||
|
||||
if(mcPermissions.getInstance().acrobatics(defender)){
|
||||
if(PPd.getAcrobaticsInt() <= 800){
|
||||
if(Math.random() * 4000 <= PPd.getAcrobaticsInt()){
|
||||
if(PPd.getSkill("acrobatics") <= 800){
|
||||
if(Math.random() * 4000 <= PPd.getSkill("acrobatics")){
|
||||
defender.sendMessage(ChatColor.GREEN+"**DODGE**");
|
||||
if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){
|
||||
PPd.addAcrobaticsXP(event.getDamage() * 12);
|
||||
|
@ -3,12 +3,15 @@ package com.gmail.nossr50.skills;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Monster;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.Combat;
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcPermissions;
|
||||
@ -27,25 +30,24 @@ public class Axes {
|
||||
PP.setAxePreparationMode(false);
|
||||
}
|
||||
int ticks = 2;
|
||||
int x = PP.getAxesInt();
|
||||
int x = PP.getSkill("axes");
|
||||
while(x >= 50){
|
||||
x-=50;
|
||||
ticks++;
|
||||
}
|
||||
|
||||
if(!PP.getSkullSplitterMode() && Skills.cooldownOver(player, PP.getSkullSplitterDeactivatedTimeStamp(), LoadProperties.skullSplitterCooldown)){
|
||||
player.sendMessage(ChatColor.GREEN+"**SKULL SPLITTER ACTIVATED**");
|
||||
player.sendMessage(Messages.getString("Skills.SkullSplitterOn"));
|
||||
for(Player y : pluginx.getServer().getOnlinePlayers()){
|
||||
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
|
||||
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Skull Splitter!");
|
||||
y.sendMessage(Messages.getString("Skills.SkullSplitterPlayer", new Object[] {player.getName()}));
|
||||
}
|
||||
PP.setSkullSplitterTicks(ticks * 1000);
|
||||
PP.setSkullSplitterActivatedTimeStamp(System.currentTimeMillis());
|
||||
PP.setSkullSplitterDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
|
||||
PP.setSkullSplitterMode(true);
|
||||
}
|
||||
if(!PP.getSkullSplitterMode() && !Skills.cooldownOver(player, PP.getSkullSplitterDeactivatedTimeStamp(), LoadProperties.skullSplitterCooldown)){
|
||||
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
|
||||
player.sendMessage(Messages.getString("Skills.TooTired")
|
||||
+ChatColor.YELLOW+" ("+Skills.calculateTimeLeft(player, PP.getSkullSplitterDeactivatedTimeStamp(), LoadProperties.skullSplitterCooldown)+"s)");
|
||||
}
|
||||
}
|
||||
@ -54,14 +56,17 @@ public class Axes {
|
||||
Entity x = event.getEntity();
|
||||
if(x instanceof Wolf){
|
||||
Wolf wolf = (Wolf)x;
|
||||
if(Taming.getOwner(wolf, pluginx) == attacker)
|
||||
return;
|
||||
if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx)))
|
||||
return;
|
||||
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.getAxesInt() >= 750){
|
||||
if(PPa.getSkill("axes") >= 750){
|
||||
if(Math.random() * 1000 <= 750){
|
||||
if(x instanceof Player){
|
||||
Player player = (Player)x;
|
||||
@ -74,7 +79,7 @@ public class Axes {
|
||||
}
|
||||
attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
|
||||
}
|
||||
} else if(Math.random() * 1000 <= PPa.getAxesInt()){
|
||||
} else if(Math.random() * 1000 <= PPa.getSkill("axes")){
|
||||
if(x instanceof Player){
|
||||
Player player = (Player)x;
|
||||
player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
|
||||
@ -89,38 +94,44 @@ public class Axes {
|
||||
}
|
||||
}
|
||||
|
||||
public static void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx){
|
||||
public static void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx)
|
||||
{
|
||||
int targets = 0;
|
||||
Entity x = event.getEntity();
|
||||
targets = m.getTier(attacker);
|
||||
for(Entity derp : x.getWorld().getEntities()){
|
||||
if(m.getDistance(x.getLocation(), derp.getLocation()) < 5){
|
||||
if(derp instanceof Player){
|
||||
Player target = (Player)derp;
|
||||
if(Party.getInstance().inSameParty(attacker, target))
|
||||
continue;
|
||||
if(!target.getName().equals(attacker.getName()) && targets >= 1){
|
||||
target.damage(event.getDamage() / 2);
|
||||
target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!");
|
||||
targets--;
|
||||
for(Entity derp : x.getWorld().getEntities())
|
||||
{
|
||||
if(m.getDistance(x.getLocation(), derp.getLocation()) < 5)
|
||||
{
|
||||
if(derp instanceof Player)
|
||||
{
|
||||
if(Combat.pvpAllowed(event, derp.getWorld()))
|
||||
{
|
||||
Player target = (Player)derp;
|
||||
if(Party.getInstance().inSameParty(attacker, target))
|
||||
continue;
|
||||
if(!target.getName().equals(attacker.getName()) && targets >= 1)
|
||||
{
|
||||
target.damage(event.getDamage() / 2);
|
||||
target.sendMessage(ChatColor.DARK_RED+"Struck by CLEAVE!");
|
||||
targets--;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(derp instanceof Monster && targets >= 1){
|
||||
Monster target = (Monster)derp;
|
||||
target.damage(event.getDamage() / 2);
|
||||
targets--;
|
||||
}
|
||||
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;
|
||||
}
|
||||
if(derp instanceof Animals && targets >= 1){
|
||||
Animals target = (Animals)derp;
|
||||
target.damage(event.getDamage() / 2);
|
||||
targets--;
|
||||
} else if(derp instanceof LivingEntity && targets >= 1)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
//Deal the damage
|
||||
LivingEntity target = (LivingEntity)derp;
|
||||
target.damage(event.getDamage() / 2);
|
||||
targets--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
@ -8,18 +7,14 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
|
||||
|
||||
public class Excavation {
|
||||
private static mcMMO plugin;
|
||||
public Excavation(mcMMO instance) {
|
||||
plugin = instance;
|
||||
}
|
||||
public static void gigaDrillBreakerActivationCheck(Player player, Block block, Plugin pluginx){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(m.isShovel(player.getItemInHand())){
|
||||
@ -31,19 +26,18 @@ public class Excavation {
|
||||
PP.setShovelPreparationMode(false);
|
||||
}
|
||||
int ticks = 2;
|
||||
int x = PP.getExcavationInt();
|
||||
int x = PP.getSkill("excavation");
|
||||
while(x >= 50){
|
||||
x-=50;
|
||||
ticks++;
|
||||
}
|
||||
|
||||
if(!PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerCooldown() == 0){
|
||||
player.sendMessage(ChatColor.GREEN+"**GIGA DRILL BREAKER ACTIVATED**");
|
||||
if(!PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerDeactivatedTimeStamp() < System.currentTimeMillis()){
|
||||
player.sendMessage(Messages.getString("Skills.GigaDrillBreakerOn"));
|
||||
for(Player y : pluginx.getServer().getOnlinePlayers()){
|
||||
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
|
||||
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Giga Drill Breaker!");
|
||||
y.sendMessage(Messages.getString("Skills.GigaDrillBreakerPlayer", new Object[] {player.getName()}));
|
||||
}
|
||||
PP.setGigaDrillBreakerTicks(ticks * 1000);
|
||||
PP.setGigaDrillBreakerActivatedTimeStamp(System.currentTimeMillis());
|
||||
PP.setGigaDrillBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
|
||||
PP.setGigaDrillBreakerMode(true);
|
||||
@ -69,17 +63,17 @@ public class Excavation {
|
||||
return;
|
||||
}
|
||||
if(type == 2){
|
||||
if(PP.getExcavationInt() > 250){
|
||||
if(PP.getSkill("excavation") > 250){
|
||||
//CHANCE TO GET EGGS
|
||||
if(LoadProperties.eggs == true && Math.random() * 100 > 99){
|
||||
PP.addExcavationXP(10 * LoadProperties.xpGainMultiplier);
|
||||
PP.addExcavationXP(LoadProperties.meggs * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(344);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
//CHANCE TO GET APPLES
|
||||
if(LoadProperties.apples == true && Math.random() * 100 > 99){
|
||||
PP.addExcavationXP(10 * LoadProperties.xpGainMultiplier);
|
||||
PP.addExcavationXP(LoadProperties.mapple * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(260);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
@ -88,39 +82,39 @@ public class Excavation {
|
||||
}
|
||||
//DIRT SAND OR GRAVEL
|
||||
if(type == 3 || type == 13 || type == 2 || type == 12){
|
||||
PP.addExcavationXP(4 * LoadProperties.xpGainMultiplier);
|
||||
if(PP.getExcavationInt() > 750){
|
||||
PP.addExcavationXP(LoadProperties.mbase * LoadProperties.xpGainMultiplier);
|
||||
if(PP.getSkill("excavation") > 750){
|
||||
//CHANCE TO GET CAKE
|
||||
if(LoadProperties.cake == true && Math.random() * 2000 > 1999){
|
||||
PP.addExcavationXP(300 * LoadProperties.xpGainMultiplier);
|
||||
PP.addExcavationXP(LoadProperties.mcake * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(354);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
}
|
||||
if(PP.getExcavationInt() > 350){
|
||||
if(PP.getSkill("excavation") > 350){
|
||||
//CHANCE TO GET DIAMOND
|
||||
if(LoadProperties.diamond == true && Math.random() * 750 > 749){
|
||||
PP.addExcavationXP(100 * LoadProperties.xpGainMultiplier);
|
||||
PP.addExcavationXP(LoadProperties.mdiamond2 * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(264);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
}
|
||||
if(PP.getExcavationInt() > 250){
|
||||
if(PP.getSkill("excavation") > 250){
|
||||
//CHANCE TO GET YELLOW MUSIC
|
||||
if(LoadProperties.music == true && Math.random() * 2000 > 1999){
|
||||
PP.addExcavationXP(300 * LoadProperties.xpGainMultiplier);
|
||||
PP.addExcavationXP(LoadProperties.mmusic * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(2256);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
|
||||
}
|
||||
if(PP.getExcavationInt() > 350){
|
||||
if(PP.getSkill("excavation") > 350){
|
||||
//CHANCE TO GET GREEN MUSIC
|
||||
if(LoadProperties.music == true && Math.random() * 2000 > 1999){
|
||||
PP.addExcavationXP(300 * LoadProperties.xpGainMultiplier);
|
||||
PP.addExcavationXP(LoadProperties.mmusic * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(2257);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
@ -130,15 +124,15 @@ public class Excavation {
|
||||
//SAND
|
||||
if(type == 12){
|
||||
//CHANCE TO GET GLOWSTONE
|
||||
if(LoadProperties.glowstone == true && PP.getExcavationInt() > 50 && Math.random() * 100 > 95){
|
||||
PP.addExcavationXP(8 * LoadProperties.xpGainMultiplier);
|
||||
if(LoadProperties.glowstone == true && PP.getSkill("excavation") > 50 && Math.random() * 100 > 95){
|
||||
PP.addExcavationXP(LoadProperties.mglowstone2 * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(348);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
//CHANCE TO GET SLOWSAND
|
||||
if(LoadProperties.slowsand == true && PP.getExcavationInt() > 650 && Math.random() * 200 > 199){
|
||||
PP.addExcavationXP(8 * LoadProperties.xpGainMultiplier);
|
||||
if(LoadProperties.slowsand == true && PP.getSkill("excavation") > 650 && Math.random() * 200 > 199){
|
||||
PP.addExcavationXP(LoadProperties.mslowsand * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(88);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
@ -146,10 +140,10 @@ public class Excavation {
|
||||
}
|
||||
//GRASS OR DIRT
|
||||
if(type == 2 || type == 3){
|
||||
if(PP.getExcavationInt() > 50){
|
||||
if(PP.getSkill("excavation") > 50){
|
||||
//CHANCE FOR COCOA BEANS
|
||||
if(LoadProperties.eggs == true && Math.random() * 75 > 74){
|
||||
PP.addExcavationXP(10 * LoadProperties.xpGainMultiplier);
|
||||
if(LoadProperties.cocoabeans == true && Math.random() * 75 > 74){
|
||||
PP.addExcavationXP(LoadProperties.mcocoa * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(351);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
is.setDurability((byte) 3); //COCOA
|
||||
@ -157,8 +151,8 @@ public class Excavation {
|
||||
}
|
||||
}
|
||||
//CHANCE FOR SHROOMS
|
||||
if(LoadProperties.mushrooms == true && PP.getExcavationInt() > 500 && Math.random() * 200 > 199){
|
||||
PP.addExcavationXP(8 * LoadProperties.xpGainMultiplier);
|
||||
if(LoadProperties.mushrooms == true && PP.getSkill("excavation") > 500 && Math.random() * 200 > 199){
|
||||
PP.addExcavationXP(LoadProperties.mmushroom2 * LoadProperties.xpGainMultiplier);
|
||||
if(Math.random() * 10 > 5){
|
||||
mat = Material.getMaterial(39);
|
||||
} else {
|
||||
@ -168,8 +162,8 @@ public class Excavation {
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
//CHANCE TO GET GLOWSTONE
|
||||
if(LoadProperties.glowstone == true && PP.getExcavationInt() > 25 && Math.random() * 100 > 95){
|
||||
PP.addExcavationXP(8 * LoadProperties.xpGainMultiplier);
|
||||
if(LoadProperties.glowstone == true && PP.getSkill("excavation") > 25 && Math.random() * 100 > 95){
|
||||
PP.addExcavationXP(LoadProperties.mglowstone2 * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(348);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
@ -178,25 +172,25 @@ public class Excavation {
|
||||
//GRAVEL
|
||||
if(type == 13){
|
||||
//CHANCE TO GET NETHERRACK
|
||||
if(LoadProperties.netherrack == true && PP.getExcavationInt() > 850 && Math.random() * 200 > 199){
|
||||
PP.addExcavationXP(3 * LoadProperties.xpGainMultiplier);
|
||||
if(LoadProperties.netherrack == true && PP.getSkill("excavation") > 850 && Math.random() * 200 > 199){
|
||||
PP.addExcavationXP(LoadProperties.mnetherrack * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(87);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
//CHANCE TO GET SULPHUR
|
||||
if(LoadProperties.sulphur == true && PP.getExcavationInt() > 75){
|
||||
if(LoadProperties.sulphur == true && PP.getSkill("excavation") > 75){
|
||||
if(Math.random() * 10 > 9){
|
||||
PP.addExcavationXP(3 * LoadProperties.xpGainMultiplier);
|
||||
PP.addExcavationXP(LoadProperties.msulphur * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(289);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
}
|
||||
//CHANCE TO GET BONES
|
||||
if(LoadProperties.bones == true && PP.getExcavationInt() > 175){
|
||||
if(LoadProperties.bones == true && PP.getSkill("excavation") > 175){
|
||||
if(Math.random() * 10 > 9){
|
||||
PP.addExcavationXP(3 * LoadProperties.xpGainMultiplier);
|
||||
PP.addExcavationXP(LoadProperties.mbones * LoadProperties.xpGainMultiplier);
|
||||
mat = Material.getMaterial(352);
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
@ -10,22 +9,20 @@ import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
|
||||
|
||||
public class Herbalism {
|
||||
private static mcMMO plugin;
|
||||
public Herbalism(mcMMO instance) {
|
||||
plugin = instance;
|
||||
}
|
||||
|
||||
public static void greenTerraWheat(Player player, Block block, BlockBreakEvent event){
|
||||
if(block.getType() == Material.WHEAT && block.getData() == (byte) 0x07){
|
||||
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);
|
||||
@ -33,8 +30,14 @@ public class Herbalism {
|
||||
ItemStack is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
PP.addHerbalismXP(5 * LoadProperties.xpGainMultiplier);
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
herbalismProcCheck(block, player, event);
|
||||
herbalismProcCheck(block, player, event);
|
||||
|
||||
//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);
|
||||
}
|
||||
}
|
||||
@ -42,7 +45,8 @@ public class Herbalism {
|
||||
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){
|
||||
if(hasSeeds(player) && block.getType() != Material.WHEAT)
|
||||
{
|
||||
removeSeeds(player);
|
||||
if(block.getType() == Material.DIRT)
|
||||
block.setType(Material.GRASS);
|
||||
@ -95,19 +99,18 @@ public class Herbalism {
|
||||
PP.setHoePreparationMode(false);
|
||||
}
|
||||
int ticks = 2;
|
||||
int x = PP.getHerbalismInt();
|
||||
int x = PP.getSkill("herbalism");
|
||||
while(x >= 50){
|
||||
x-=50;
|
||||
ticks++;
|
||||
}
|
||||
|
||||
if(!PP.getGreenTerraMode() && Skills.cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)){
|
||||
player.sendMessage(ChatColor.GREEN+"**GREEN TERRA ACTIVATED**");
|
||||
player.sendMessage(Messages.getString("Skills.GreenTerraOn"));
|
||||
for(Player y : pluginx.getServer().getOnlinePlayers()){
|
||||
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
|
||||
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Green Terra!");
|
||||
y.sendMessage(Messages.getString("Skills.GreenTerraPlayer", new Object[] {player.getName()}));
|
||||
}
|
||||
PP.setGreenTerraTicks(ticks * 1000);
|
||||
PP.setGreenTerraActivatedTimeStamp(System.currentTimeMillis());
|
||||
PP.setGreenTerraDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
|
||||
PP.setGreenTerraMode(true);
|
||||
@ -115,39 +118,45 @@ public class Herbalism {
|
||||
|
||||
}
|
||||
}
|
||||
public static void herbalismProcCheck(Block block, Player player, BlockBreakEvent event){
|
||||
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(Config.getInstance().isBlockWatched(block)){
|
||||
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.addHerbalismXP(5 * LoadProperties.xpGainMultiplier);
|
||||
PP.addHerbalismXP(LoadProperties.mwheat * LoadProperties.xpGainMultiplier);
|
||||
if(player != null){
|
||||
if(Math.random() * 1000 <= PP.getHerbalismInt()){
|
||||
if(Math.random() * 1000 <= PP.getSkill("herbalism")){
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
}
|
||||
//GREEN THUMB
|
||||
if(Math.random() * 1500 <= PP.getHerbalismInt()){
|
||||
if(Math.random() * 1500 <= PP.getSkill("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.getHerbalismInt() >= 200)
|
||||
if(PP.getSkill("herbalism") >= 200)
|
||||
bonus++;
|
||||
if(PP.getHerbalismInt() >= 400)
|
||||
if(PP.getSkill("herbalism") >= 400)
|
||||
bonus++;
|
||||
if(PP.getHerbalismInt() >= 600)
|
||||
if(PP.getSkill("herbalism") >= 600)
|
||||
bonus++;
|
||||
|
||||
//Change wheat to be whatever stage based on the bonus
|
||||
@ -190,11 +199,11 @@ public class Herbalism {
|
||||
is = new ItemStack(Material.CACTUS, 1, (byte)0, (byte)0);
|
||||
if(byteArray[x] != (byte) 5)
|
||||
{
|
||||
if(Math.random() * 1000 <= PP.getHerbalismInt())
|
||||
if(Math.random() * 1000 <= PP.getSkill("herbalism"))
|
||||
{
|
||||
loc.getWorld().dropItemNaturally(target.getLocation(), is);
|
||||
}
|
||||
PP.addHerbalismXP(3 * LoadProperties.xpGainMultiplier);
|
||||
PP.addHerbalismXP(LoadProperties.mcactus * LoadProperties.xpGainMultiplier);
|
||||
}
|
||||
}
|
||||
x++;
|
||||
@ -228,11 +237,11 @@ public class Herbalism {
|
||||
//Check for being placed by the player
|
||||
if(byteArray[x] != (byte) 5)
|
||||
{
|
||||
if(Math.random() * 1000 <= PP.getHerbalismInt())
|
||||
if(Math.random() * 1000 <= PP.getSkill("herbalism"))
|
||||
{
|
||||
loc.getWorld().dropItemNaturally(target.getLocation(), is);
|
||||
}
|
||||
PP.addHerbalismXP(3 * LoadProperties.xpGainMultiplier);
|
||||
PP.addHerbalismXP(LoadProperties.msugar * LoadProperties.xpGainMultiplier);
|
||||
}
|
||||
}
|
||||
x++;
|
||||
@ -240,81 +249,88 @@ public class Herbalism {
|
||||
}
|
||||
|
||||
//Pumpkins
|
||||
if((type == 91 || type == 86) && !Config.getInstance().isBlockWatched(block)){
|
||||
if((type == 91 || type == 86) && plugin.misc.blockWatchList.contains(block))
|
||||
{
|
||||
mat = Material.getMaterial(block.getTypeId());
|
||||
is = new ItemStack(mat, 1, (byte)0, (byte)0);
|
||||
if(player != null){
|
||||
if(Math.random() * 1000 <= PP.getHerbalismInt()){
|
||||
if(Math.random() * 1000 <= PP.getSkill("herbalism")){
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
}
|
||||
PP.addHerbalismXP(55 * LoadProperties.xpGainMultiplier);
|
||||
PP.addHerbalismXP(LoadProperties.mpumpkin * LoadProperties.xpGainMultiplier);
|
||||
}
|
||||
//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.getHerbalismInt()){
|
||||
if(Math.random() * 1000 <= PP.getSkill("herbalism")){
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
}
|
||||
PP.addHerbalismXP(40 * LoadProperties.xpGainMultiplier);
|
||||
PP.addHerbalismXP(LoadProperties.mmushroom * LoadProperties.xpGainMultiplier);
|
||||
}
|
||||
//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.getHerbalismInt()){
|
||||
if(Math.random() * 1000 <= PP.getSkill("herbalism")){
|
||||
loc.getWorld().dropItemNaturally(loc, is);
|
||||
}
|
||||
}
|
||||
PP.addHerbalismXP(10 * LoadProperties.xpGainMultiplier);
|
||||
PP.addHerbalismXP(LoadProperties.mflower * LoadProperties.xpGainMultiplier);
|
||||
}
|
||||
}
|
||||
Skills.XpCheck(player);
|
||||
}
|
||||
public static void breadCheck(Player player, ItemStack is){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(is.getTypeId() == 297){
|
||||
if(PP.getHerbalismInt() >= 50 && PP.getHerbalismInt() < 150){
|
||||
player.setHealth(player.getHealth() + 1);
|
||||
} else if (PP.getHerbalismInt() >= 150 && PP.getHerbalismInt() < 250){
|
||||
player.setHealth(player.getHealth() + 2);
|
||||
} else if (PP.getHerbalismInt() >= 250 && PP.getHerbalismInt() < 350){
|
||||
player.setHealth(player.getHealth() + 3);
|
||||
} else if (PP.getHerbalismInt() >= 350 && PP.getHerbalismInt() < 450){
|
||||
player.setHealth(player.getHealth() + 4);
|
||||
} else if (PP.getHerbalismInt() >= 450 && PP.getHerbalismInt() < 550){
|
||||
player.setHealth(player.getHealth() + 5);
|
||||
} else if (PP.getHerbalismInt() >= 550 && PP.getHerbalismInt() < 650){
|
||||
player.setHealth(player.getHealth() + 6);
|
||||
} else if (PP.getHerbalismInt() >= 650 && PP.getHerbalismInt() < 750){
|
||||
player.setHealth(player.getHealth() + 7);
|
||||
} else if (PP.getHerbalismInt() >= 750){
|
||||
player.setHealth(player.getHealth() + 8);
|
||||
}
|
||||
}
|
||||
int herbalism = PP.getSkill("herbalism");
|
||||
if(is != null && PP != null)
|
||||
{
|
||||
if(is.getTypeId() == 297)
|
||||
{
|
||||
if(herbalism >= 50 && herbalism < 150){
|
||||
player.setHealth(player.getHealth() + 1);
|
||||
} else if (herbalism >= 150 && herbalism < 250){
|
||||
player.setHealth(player.getHealth() + 2);
|
||||
} else if (herbalism >= 250 && herbalism < 350){
|
||||
player.setHealth(player.getHealth() + 3);
|
||||
} else if (herbalism >= 350 && herbalism < 450){
|
||||
player.setHealth(player.getHealth() + 4);
|
||||
} else if (herbalism >= 450 && herbalism < 550){
|
||||
player.setHealth(player.getHealth() + 5);
|
||||
} else if (herbalism >= 550 && herbalism < 650){
|
||||
player.setHealth(player.getHealth() + 6);
|
||||
} else if (herbalism >= 650 && herbalism < 750){
|
||||
player.setHealth(player.getHealth() + 7);
|
||||
} else if (herbalism >= 750){
|
||||
player.setHealth(player.getHealth() + 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void stewCheck(Player player, ItemStack is){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
int herbalism = PP.getSkill("herbalism");
|
||||
if(is.getTypeId() == 282){
|
||||
if(PP.getHerbalismInt() >= 50 && PP.getHerbalismInt() < 150){
|
||||
if(herbalism >= 50 && herbalism < 150){
|
||||
player.setHealth(player.getHealth() + 1);
|
||||
} else if (PP.getHerbalismInt() >= 150 && PP.getHerbalismInt() < 250){
|
||||
} else if (herbalism >= 150 && herbalism < 250){
|
||||
player.setHealth(player.getHealth() + 2);
|
||||
} else if (PP.getHerbalismInt() >= 250 && PP.getHerbalismInt() < 350){
|
||||
} else if (herbalism >= 250 && herbalism < 350){
|
||||
player.setHealth(player.getHealth() + 3);
|
||||
} else if (PP.getHerbalismInt() >= 350 && PP.getHerbalismInt() < 450){
|
||||
} else if (herbalism >= 350 && herbalism < 450){
|
||||
player.setHealth(player.getHealth() + 4);
|
||||
} else if (PP.getHerbalismInt() >= 450 && PP.getHerbalismInt() < 550){
|
||||
} else if (herbalism >= 450 && herbalism < 550){
|
||||
player.setHealth(player.getHealth() + 5);
|
||||
} else if (PP.getHerbalismInt() >= 550 && PP.getHerbalismInt() < 650){
|
||||
} else if (herbalism >= 550 && herbalism < 650){
|
||||
player.setHealth(player.getHealth() + 6);
|
||||
} else if (PP.getHerbalismInt() >= 650 && PP.getHerbalismInt() < 750){
|
||||
} else if (herbalism >= 650 && herbalism < 750){
|
||||
player.setHealth(player.getHealth() + 7);
|
||||
} else if (PP.getHerbalismInt() >= 750){
|
||||
} else if (herbalism >= 750){
|
||||
player.setHealth(player.getHealth() + 8);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Statistic;
|
||||
@ -9,19 +8,15 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
|
||||
|
||||
public class Mining {
|
||||
private static mcMMO plugin;
|
||||
public Mining(mcMMO instance) {
|
||||
plugin = instance;
|
||||
}
|
||||
|
||||
public static void superBreakerCheck(Player player, Block block, Plugin pluginx)
|
||||
{
|
||||
@ -35,19 +30,20 @@ public class Mining {
|
||||
PP.setPickaxePreparationMode(false);
|
||||
}
|
||||
int ticks = 2;
|
||||
int x = PP.getMiningInt();
|
||||
while(x >= 50){
|
||||
int x = PP.getSkill("mining");
|
||||
while(x >= 50)
|
||||
{
|
||||
x-=50;
|
||||
ticks++;
|
||||
}
|
||||
|
||||
if(!PP.getSuperBreakerMode() && Skills.cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)){
|
||||
player.sendMessage(ChatColor.GREEN+"**SUPER BREAKER ACTIVATED**");
|
||||
for(Player y : pluginx.getServer().getOnlinePlayers()){
|
||||
player.sendMessage(Messages.getString("Skills.SuperBreakerOn"));
|
||||
for(Player y : pluginx.getServer().getOnlinePlayers())
|
||||
{
|
||||
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
|
||||
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Super Breaker!");
|
||||
y.sendMessage(Messages.getString("Skills.SuperBreakerPlayer", new Object[] {player.getName()}));
|
||||
}
|
||||
PP.setSuperBreakerTicks(ticks * 1000);
|
||||
PP.setSuperBreakerActivatedTimeStamp(System.currentTimeMillis());
|
||||
PP.setSuperBreakerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
|
||||
PP.setSuperBreakerMode(true);
|
||||
@ -106,65 +102,65 @@ public class Mining {
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(player != null){
|
||||
if(Math.random() * 1000 <= PP.getMiningInt()){
|
||||
if(Math.random() * 1000 <= PP.getSkill("mining")){
|
||||
blockProcSimulate(block);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void miningBlockCheck(Player player, Block block)
|
||||
public static void miningBlockCheck(Player player, Block block, mcMMO plugin)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(Config.getInstance().isBlockWatched(block) || block.getData() == (byte) 5)
|
||||
if(plugin.misc.blockWatchList.contains(block) || block.getData() == (byte) 5)
|
||||
return;
|
||||
int xp = 0;
|
||||
if(block.getTypeId() == 1 || block.getTypeId() == 24){
|
||||
xp += 3;
|
||||
xp += LoadProperties.mstone;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
//OBSIDIAN
|
||||
if(block.getTypeId() == 49){
|
||||
xp += 15;
|
||||
xp += LoadProperties.mobsidian;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
//NETHERRACK
|
||||
if(block.getTypeId() == 87){
|
||||
xp += 3;
|
||||
xp += LoadProperties.mnetherrack;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
//GLOWSTONE
|
||||
if(block.getTypeId() == 89){
|
||||
xp += 3;
|
||||
xp += LoadProperties.mglowstone;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
//COAL
|
||||
if(block.getTypeId() == 16){
|
||||
xp += 10;
|
||||
xp += LoadProperties.mcoal;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
//GOLD
|
||||
if(block.getTypeId() == 14){
|
||||
xp += 35;
|
||||
xp += LoadProperties.mgold;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
//DIAMOND
|
||||
if(block.getTypeId() == 56){
|
||||
xp += 75;
|
||||
xp += LoadProperties.mdiamond;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
//IRON
|
||||
if(block.getTypeId() == 15){
|
||||
xp += 25;
|
||||
xp += LoadProperties.miron;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
//REDSTONE
|
||||
if(block.getTypeId() == 73 || block.getTypeId() == 74){
|
||||
xp += 15;
|
||||
xp += LoadProperties.mredstone;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
//LAPUS
|
||||
if(block.getTypeId() == 21){
|
||||
xp += 40;
|
||||
xp += LoadProperties.mlapus;
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
PP.addMiningXP(xp * LoadProperties.xpGainMultiplier);
|
||||
@ -181,7 +177,7 @@ public class Mining {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static void SuperBreakerBlockCheck(Player player, Block block){
|
||||
public static void SuperBreakerBlockCheck(Player player, Block block, mcMMO plugin){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(LoadProperties.toolsLoseDurabilityFromAbilities)
|
||||
m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss);
|
||||
@ -192,14 +188,17 @@ public class Mining {
|
||||
ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
|
||||
if(block.getTypeId() == 1 || block.getTypeId() == 24)
|
||||
{
|
||||
if(!Config.getInstance().isBlockWatched(block) && block.getData() != (byte) 5){
|
||||
if(!plugin.misc.blockWatchList.contains(block) && block.getData() != (byte) 5)
|
||||
{
|
||||
xp += 3;
|
||||
blockProcCheck(block, player);
|
||||
blockProcCheck(block, player);
|
||||
}
|
||||
if(block.getTypeId() == 1){
|
||||
if(block.getTypeId() == 1)
|
||||
{
|
||||
mat = Material.COBBLESTONE;
|
||||
} else {
|
||||
} else
|
||||
{
|
||||
mat = Material.SANDSTONE;
|
||||
}
|
||||
item = new ItemStack(mat, 1, (byte)0, damage);
|
||||
@ -210,7 +209,7 @@ public class Mining {
|
||||
//NETHERRACK
|
||||
if(block.getTypeId() == 87)
|
||||
{
|
||||
if(!Config.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
|
||||
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
|
||||
xp += 3;
|
||||
blockProcCheck(block, player);
|
||||
blockProcCheck(block, player);
|
||||
@ -224,7 +223,7 @@ public class Mining {
|
||||
//GLOWSTONE
|
||||
if(block.getTypeId() == 89)
|
||||
{
|
||||
if(!Config.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
|
||||
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
|
||||
xp += 3;
|
||||
blockProcCheck(block, player);
|
||||
blockProcCheck(block, player);
|
||||
@ -238,7 +237,7 @@ public class Mining {
|
||||
//COAL
|
||||
if(block.getTypeId() == 16)
|
||||
{
|
||||
if(!Config.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
|
||||
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
|
||||
xp += 10;
|
||||
blockProcCheck(block, player);
|
||||
blockProcCheck(block, player);
|
||||
@ -252,7 +251,7 @@ public class Mining {
|
||||
//GOLD
|
||||
if(block.getTypeId() == 14 && m.getTier(player) >= 3)
|
||||
{
|
||||
if(!Config.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
|
||||
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
|
||||
xp += 35;
|
||||
blockProcCheck(block, player);
|
||||
blockProcCheck(block, player);
|
||||
@ -266,8 +265,8 @@ public class Mining {
|
||||
if(block.getTypeId() == 49 && m.getTier(player) >= 4)
|
||||
{
|
||||
if(LoadProperties.toolsLoseDurabilityFromAbilities)
|
||||
m.damageTool(player, (short) 104);
|
||||
if(!Config.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
|
||||
m.damageTool(player, (short) LoadProperties.abilityDurabilityLoss);
|
||||
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
|
||||
xp += 15;
|
||||
blockProcCheck(block, player);
|
||||
blockProcCheck(block, player);
|
||||
@ -281,7 +280,7 @@ public class Mining {
|
||||
//DIAMOND
|
||||
if(block.getTypeId() == 56 && m.getTier(player) >= 3)
|
||||
{
|
||||
if(!Config.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
|
||||
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
|
||||
xp += 75;
|
||||
blockProcCheck(block, player);
|
||||
blockProcCheck(block, player);
|
||||
@ -295,7 +294,7 @@ public class Mining {
|
||||
//IRON
|
||||
if(block.getTypeId() == 15 && m.getTier(player) >= 2)
|
||||
{
|
||||
if(!Config.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
|
||||
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
|
||||
xp += 25;
|
||||
blockProcCheck(block, player);
|
||||
blockProcCheck(block, player);
|
||||
@ -308,7 +307,7 @@ public class Mining {
|
||||
//REDSTONE
|
||||
if((block.getTypeId() == 73 || block.getTypeId() == 74) && m.getTier(player) >= 4)
|
||||
{
|
||||
if(!Config.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5)
|
||||
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5)
|
||||
{
|
||||
xp += 15;
|
||||
blockProcCheck(block, player);
|
||||
@ -328,7 +327,7 @@ public class Mining {
|
||||
}
|
||||
//LAPUS
|
||||
if(block.getTypeId() == 21 && m.getTier(player) >= 3){
|
||||
if(!Config.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
|
||||
if(!plugin.misc.blockWatchList.contains(block)&& block.getData() != (byte) 5){
|
||||
xp += 40;
|
||||
blockProcCheck(block, player);
|
||||
blockProcCheck(block, player);
|
||||
|
@ -5,20 +5,15 @@ import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcPermissions;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
|
||||
|
||||
public class Repair {
|
||||
private static mcMMO plugin;
|
||||
public Repair(mcMMO instance) {
|
||||
plugin = instance;
|
||||
}
|
||||
private static volatile Repair instance;
|
||||
|
||||
/*
|
||||
* Repair requirements for each material
|
||||
@ -40,8 +35,7 @@ public class Repair {
|
||||
short durabilityBefore = player.getItemInHand().getDurability();
|
||||
short durabilityAfter = 0;
|
||||
short dif = 0;
|
||||
if(block != null
|
||||
&& mcPermissions.repair(player)){
|
||||
if(block != null && mcPermissions.getInstance().repair(player)){
|
||||
if(player.getItemInHand().getDurability() > 0 && player.getItemInHand().getAmount() < 2){
|
||||
/*
|
||||
* ARMOR
|
||||
@ -50,7 +44,7 @@ public class Repair {
|
||||
/*
|
||||
* DIAMOND ARMOR
|
||||
*/
|
||||
if(isDiamondArmor(is) && hasItem(player, rDiamond) && PP.getRepairInt() >= LoadProperties.repairdiamondlevel){
|
||||
if(isDiamondArmor(is) && hasItem(player, rDiamond) && PP.getSkill("repair") >= LoadProperties.repairdiamondlevel){
|
||||
removeItem(player, rDiamond);
|
||||
player.getItemInHand().setDurability(getRepairAmount(is, player));
|
||||
durabilityAfter = player.getItemInHand().getDurability();
|
||||
@ -136,7 +130,7 @@ public class Repair {
|
||||
if(m.isHoe(is))
|
||||
dif = (short) (dif / 2);
|
||||
PP.addRepairXP(dif * LoadProperties.xpGainMultiplier);
|
||||
} else if (isDiamondTools(is) && hasItem(player, rDiamond) && PP.getRepairInt() >= LoadProperties.repairdiamondlevel){ //Check if its diamond and the player has diamonds
|
||||
} else if (isDiamondTools(is) && hasItem(player, rDiamond) && PP.getSkill("repair") >= LoadProperties.repairdiamondlevel){ //Check if its diamond and the player has diamonds
|
||||
/*
|
||||
* DIAMOND TOOLS
|
||||
*/
|
||||
@ -170,7 +164,7 @@ public class Repair {
|
||||
}
|
||||
|
||||
} else {
|
||||
player.sendMessage("That is at full durability.");
|
||||
player.sendMessage(Messages.getString("Skills.FullDurability"));
|
||||
}
|
||||
player.updateInventory();
|
||||
/*
|
||||
@ -215,8 +209,8 @@ public class Repair {
|
||||
if(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 || //WOOD
|
||||
is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275) //STONE
|
||||
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
|
||||
{
|
||||
return true;
|
||||
} else {
|
||||
@ -224,14 +218,14 @@ public class Repair {
|
||||
}
|
||||
}
|
||||
public static boolean isStoneTools(ItemStack is){
|
||||
if(is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275){
|
||||
if(is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275 || is.getTypeId() == 291){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static boolean isWoodTools(ItemStack is){
|
||||
if(is.getTypeId() == 268 || is.getTypeId() == 269 || is.getTypeId() == 270 || is.getTypeId() == 271){
|
||||
if(is.getTypeId() == 268 || is.getTypeId() == 269 || is.getTypeId() == 270 || is.getTypeId() == 271 || is.getTypeId() == 290){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@ -261,7 +255,8 @@ public class Repair {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static void removeItem(Player player, int typeid){
|
||||
public static void removeItem(Player player, int typeid)
|
||||
{
|
||||
ItemStack[] inventory = player.getInventory().getContents();
|
||||
for(ItemStack x : inventory){
|
||||
if(x != null && x.getTypeId() == typeid){
|
||||
@ -288,7 +283,7 @@ public class Repair {
|
||||
}
|
||||
public static short repairCalculate(Player player, short durability, short ramt){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
float bonus = (PP.getRepairInt() / 500);
|
||||
float bonus = (PP.getSkill("repair") / 500);
|
||||
bonus = (ramt * bonus);
|
||||
ramt = ramt+=bonus;
|
||||
if(checkPlayerProcRepair(player)){
|
||||
@ -326,9 +321,13 @@ public class Repair {
|
||||
case 271:
|
||||
ramt = 20;
|
||||
break;
|
||||
//WOOD HOE
|
||||
case 290:
|
||||
ramt = 30;
|
||||
break;
|
||||
//STONE SWORD
|
||||
case 272:
|
||||
ramt = 44;
|
||||
ramt = 66;
|
||||
break;
|
||||
//STONE SHOVEL
|
||||
case 273:
|
||||
@ -342,6 +341,10 @@ public class Repair {
|
||||
case 275:
|
||||
ramt = 44;
|
||||
break;
|
||||
//STONE HOE
|
||||
case 291:
|
||||
ramt = 66;
|
||||
break;
|
||||
//GOLD SHOVEL
|
||||
case 284:
|
||||
ramt = 33;
|
||||
@ -446,33 +449,33 @@ public class Repair {
|
||||
}
|
||||
public static void needMoreVespeneGas(ItemStack is, Player player){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if ((isDiamondTools(is) || isDiamondArmor(is)) && PP.getRepairInt() < LoadProperties.repairdiamondlevel){
|
||||
player.sendMessage(ChatColor.DARK_RED +"You're not adept enough to repair Diamond");
|
||||
if ((isDiamondTools(is) || isDiamondArmor(is)) && PP.getSkill("repair") < LoadProperties.repairdiamondlevel){
|
||||
player.sendMessage(Messages.getString("AdeptDiamond"));
|
||||
} else if (isDiamondTools(is) && !hasItem(player, rDiamond) || isIronTools(is) && !hasItem(player, rIron) || isGoldTools(is) && !hasItem(player, rGold)){
|
||||
if(isDiamondTools(is) && !hasItem(player, rDiamond))
|
||||
player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.BLUE+ nDiamond);
|
||||
player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond);
|
||||
if(isIronTools(is) && !hasItem(player, rIron))
|
||||
player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.GRAY+ nIron);
|
||||
player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron);
|
||||
if(isGoldTools(is) && !hasItem(player, rGold))
|
||||
player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.GOLD+nGold);
|
||||
player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GOLD+nGold);
|
||||
if(isWoodTools(is) && !hasItem(player,rWood))
|
||||
player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.DARK_GREEN+ nWood);
|
||||
player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.DARK_GREEN+ nWood);
|
||||
if(isStoneTools(is) && !hasItem(player, rStone))
|
||||
player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.GRAY+nStone);
|
||||
player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GRAY+nStone);
|
||||
} else if (isDiamondArmor(is) && !hasItem(player, rDiamond)){
|
||||
player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.BLUE+ nDiamond);
|
||||
player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.BLUE+ nDiamond);
|
||||
} else if (isIronArmor(is) && !hasItem(player, rIron)){
|
||||
player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.GRAY+ nIron);
|
||||
player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GRAY+ nIron);
|
||||
} else if (isGoldArmor(is) && !hasItem(player, rGold)){
|
||||
player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.GOLD+ nGold);
|
||||
player.sendMessage(Messages.getString("Skills.NeedMore")+" "+ChatColor.GOLD+ nGold);
|
||||
} else if (is.getAmount() > 1)
|
||||
player.sendMessage(ChatColor.DARK_RED+"You can't repair stacked items");
|
||||
player.sendMessage(Messages.getString("Skills.StackedItems"));
|
||||
}
|
||||
public static boolean checkPlayerProcRepair(Player player){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(player != null){
|
||||
if(Math.random() * 1000 <= PP.getRepairInt()){
|
||||
player.sendMessage(ChatColor.GRAY + "That felt easy.");
|
||||
if(Math.random() * 1000 <= PP.getSkill("repair")){
|
||||
player.sendMessage(Messages.getString("Skills.FeltEasy"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -6,14 +6,12 @@ import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.Leaderboard;
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcPermissions;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.PlayerStat;
|
||||
@ -21,7 +19,6 @@ import com.gmail.nossr50.datatypes.PlayerStat;
|
||||
|
||||
public class Skills {
|
||||
|
||||
private static volatile Skills instance;
|
||||
protected static final Logger log = Logger.getLogger("Minecraft");
|
||||
|
||||
public void updateSQLfromFile(Player player){
|
||||
@ -51,15 +48,12 @@ public class Skills {
|
||||
}
|
||||
}
|
||||
}
|
||||
public static int calculateTimeLeft(Player player, long deactivatedTimeStamp, int cooldown){
|
||||
long currentTime = System.currentTimeMillis();
|
||||
int x = 0;
|
||||
while(currentTime < deactivatedTimeStamp + (cooldown * 1000)){
|
||||
currentTime += 1000;
|
||||
x++;
|
||||
}
|
||||
return x;
|
||||
|
||||
public static int calculateTimeLeft(Player player, long deactivatedTimeStamp, int cooldown)
|
||||
{
|
||||
return (int) (((deactivatedTimeStamp + (cooldown * 1000)) - System.currentTimeMillis())/1000);
|
||||
}
|
||||
|
||||
public static boolean isAllCooldownsOver(PlayerProfile PP)
|
||||
{
|
||||
long t = System.currentTimeMillis();
|
||||
@ -80,42 +74,42 @@ public class Skills {
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(!PP.getGreenTerraInformed() && System.currentTimeMillis() - PP.getGreenTerraDeactivatedTimeStamp() >= (LoadProperties.greenTerraCooldown * 1000)){
|
||||
PP.setGreenTerraInformed(true);
|
||||
player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Green Terra "+ChatColor.GREEN+"ability is refreshed!");
|
||||
player.sendMessage(Messages.getString("Skills.YourGreenTerra"));
|
||||
}
|
||||
if(!PP.getTreeFellerInformed() && System.currentTimeMillis() - PP.getTreeFellerDeactivatedTimeStamp() >= (LoadProperties.greenTerraCooldown * 1000)){
|
||||
PP.setTreeFellerInformed(true);
|
||||
player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Tree Feller "+ChatColor.GREEN+"ability is refreshed!");
|
||||
player.sendMessage(Messages.getString("Skills.YourTreeFeller"));
|
||||
}
|
||||
if(!PP.getSuperBreakerInformed() && System.currentTimeMillis() - PP.getSuperBreakerDeactivatedTimeStamp() >= (LoadProperties.superBreakerCooldown * 1000)){
|
||||
PP.setSuperBreakerInformed(true);
|
||||
player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Super Breaker "+ChatColor.GREEN+"ability is refreshed!");
|
||||
player.sendMessage(Messages.getString("Skills.YourSuperBreaker"));
|
||||
}
|
||||
if(!PP.getSerratedStrikesInformed() && System.currentTimeMillis() - PP.getSerratedStrikesDeactivatedTimeStamp() >= (LoadProperties.serratedStrikeCooldown * 1000)){
|
||||
PP.setSerratedStrikesInformed(true);
|
||||
player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Serrated Strikes "+ChatColor.GREEN+"ability is refreshed!");
|
||||
player.sendMessage(Messages.getString("Skills.YourSerratedStrikes"));
|
||||
}
|
||||
if(!PP.getBerserkInformed() && System.currentTimeMillis() - PP.getBerserkDeactivatedTimeStamp() >= (LoadProperties.berserkCooldown * 1000)){
|
||||
PP.setBerserkInformed(true);
|
||||
player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Berserk "+ChatColor.GREEN+"ability is refreshed!");
|
||||
player.sendMessage(Messages.getString("Skills.YourBerserk"));
|
||||
}
|
||||
if(!PP.getSkullSplitterInformed() && System.currentTimeMillis() - PP.getSkullSplitterDeactivatedTimeStamp() >= (LoadProperties.skullSplitterCooldown * 1000)){
|
||||
PP.setSkullSplitterInformed(true);
|
||||
player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Skull Splitter "+ChatColor.GREEN+"ability is refreshed!");
|
||||
player.sendMessage(Messages.getString("Skills.YourSkullSplitter"));
|
||||
}
|
||||
if(!PP.getGigaDrillBreakerInformed() && System.currentTimeMillis() - PP.getGigaDrillBreakerDeactivatedTimeStamp() >= (LoadProperties.gigaDrillBreakerCooldown * 1000)){
|
||||
PP.setGigaDrillBreakerInformed(true);
|
||||
player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Giga Drill Breaker "+ChatColor.GREEN+"ability is refreshed!");
|
||||
player.sendMessage(Messages.getString("Skills.YourGigaDrillBreaker"));
|
||||
}
|
||||
}
|
||||
public static void hoeReadinessCheck(Player player){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(mcPermissions.getInstance().herbalismAbility(player) && m.isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){
|
||||
if(!PP.getGreenTerraMode() && !cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)){
|
||||
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
|
||||
player.sendMessage(Messages.getString("Skills.TooTired")
|
||||
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getGreenTerraDeactivatedTimeStamp(), LoadProperties.greenTerraCooldown)+"s)");
|
||||
return;
|
||||
}
|
||||
player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR HOE**");
|
||||
player.sendMessage(Messages.getString("Skills.ReadyHoe"));
|
||||
PP.setHoePreparationATS(System.currentTimeMillis());
|
||||
PP.setHoePreparationMode(true);
|
||||
}
|
||||
@ -124,151 +118,157 @@ public class Skills {
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(PP == null)
|
||||
Users.addUser(player);
|
||||
if(PP.getHoePreparationMode() && System.currentTimeMillis() - PP.getHoePreparationATS() >= 4000){
|
||||
PP.setHoePreparationMode(false);
|
||||
player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR HOE**");
|
||||
}
|
||||
if(PP.getAxePreparationMode() && System.currentTimeMillis() - PP.getAxePreparationATS() >= 4000){
|
||||
if(PP != null)
|
||||
{
|
||||
if(PP.getHoePreparationMode() && System.currentTimeMillis() - PP.getHoePreparationATS() >= 4000){
|
||||
PP.setHoePreparationMode(false);
|
||||
player.sendMessage(Messages.getString("Skills.LowerHoe"));
|
||||
}
|
||||
if(PP.getAxePreparationMode() && System.currentTimeMillis() - PP.getAxePreparationATS() >= 4000){
|
||||
PP.setAxePreparationMode(false);
|
||||
player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR AXE**");
|
||||
}
|
||||
if(PP.getPickaxePreparationMode() && System.currentTimeMillis() - PP.getPickaxePreparationATS() >= 4000){
|
||||
PP.setPickaxePreparationMode(false);
|
||||
player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR PICKAXE**");
|
||||
}
|
||||
if(PP.getSwordsPreparationMode() && System.currentTimeMillis() - PP.getSwordsPreparationATS() >= 4000){
|
||||
PP.setSwordsPreparationMode(false);
|
||||
player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR SWORD**");
|
||||
}
|
||||
if(PP.getFistsPreparationMode() && System.currentTimeMillis() - PP.getFistsPreparationATS() >= 4000){
|
||||
PP.setFistsPreparationMode(false);
|
||||
player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR FISTS**");
|
||||
}
|
||||
if(PP.getShovelPreparationMode() && System.currentTimeMillis() - PP.getShovelPreparationATS() >= 4000){
|
||||
PP.setShovelPreparationMode(false);
|
||||
player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR SHOVEL**");
|
||||
}
|
||||
/*
|
||||
* HERBALISM ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().herbalismAbility(player)){
|
||||
if(PP.getGreenTerraMode() && PP.getGreenTerraActivatedTimeStamp() + PP.getGreenTerraTicks() <= System.currentTimeMillis()){
|
||||
player.sendMessage(Messages.getString("Skills.LowerAxe"));
|
||||
}
|
||||
if(PP.getPickaxePreparationMode() && System.currentTimeMillis() - PP.getPickaxePreparationATS() >= 4000){
|
||||
PP.setPickaxePreparationMode(false);
|
||||
player.sendMessage(Messages.getString("Skills.LowerPickAxe"));
|
||||
}
|
||||
if(PP.getSwordsPreparationMode() && System.currentTimeMillis() - PP.getSwordsPreparationATS() >= 4000){
|
||||
PP.setSwordsPreparationMode(false);
|
||||
player.sendMessage(Messages.getString("Skills.LowerSword"));
|
||||
}
|
||||
if(PP.getFistsPreparationMode() && System.currentTimeMillis() - PP.getFistsPreparationATS() >= 4000){
|
||||
PP.setFistsPreparationMode(false);
|
||||
player.sendMessage(Messages.getString("Skills.LowerFists"));
|
||||
}
|
||||
if(PP.getShovelPreparationMode() && System.currentTimeMillis() - PP.getShovelPreparationATS() >= 4000){
|
||||
PP.setShovelPreparationMode(false);
|
||||
player.sendMessage(Messages.getString("Skills.LowerShovel"));
|
||||
}
|
||||
|
||||
/*
|
||||
* HERBALISM ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().herbalismAbility(player)){
|
||||
if(PP.getGreenTerraMode() && PP.getGreenTerraDeactivatedTimeStamp() <= System.currentTimeMillis()){
|
||||
PP.setGreenTerraMode(false);
|
||||
PP.setGreenTerraInformed(false);
|
||||
player.sendMessage(ChatColor.RED+"**Green Terra has worn off**");
|
||||
player.sendMessage(Messages.getString("Skills.GreenTerraOff"));
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* AXES ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().axesAbility(player)){
|
||||
if(PP.getSkullSplitterMode() && PP.getSkullSplitterActivatedTimeStamp() + PP.getSkullSplitterTicks() <= System.currentTimeMillis()){
|
||||
PP.setSkullSplitterMode(false);
|
||||
PP.setSkullSplitterInformed(false);
|
||||
player.sendMessage(ChatColor.RED+"**Skull Splitter has worn off**");
|
||||
/*
|
||||
* AXES ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().axesAbility(player)){
|
||||
if(PP.getSkullSplitterMode() && PP.getSkullSplitterDeactivatedTimeStamp() <= System.currentTimeMillis()){
|
||||
PP.setSkullSplitterMode(false);
|
||||
PP.setSkullSplitterInformed(false);
|
||||
player.sendMessage(Messages.getString("Skills.SkullSplitterOff"));
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* WOODCUTTING ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().woodCuttingAbility(player)){
|
||||
if(PP.getTreeFellerMode() && PP.getTreeFellerActivatedTimeStamp() + PP.getTreeFellerTicks() <= System.currentTimeMillis()){
|
||||
PP.setTreeFellerMode(false);
|
||||
PP.setTreeFellerInformed(false);
|
||||
player.sendMessage(ChatColor.RED+"**Tree Feller has worn off**");
|
||||
/*
|
||||
* WOODCUTTING ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().woodCuttingAbility(player)){
|
||||
if(PP.getTreeFellerMode() && PP.getTreeFellerDeactivatedTimeStamp() <= System.currentTimeMillis()){
|
||||
PP.setTreeFellerMode(false);
|
||||
PP.setTreeFellerInformed(false);
|
||||
player.sendMessage(Messages.getString("Skills.TreeFellerOff"));
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* MINING ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().miningAbility(player)){
|
||||
if(PP.getSuperBreakerMode() && PP.getSuperBreakerActivatedTimeStamp() + PP.getSuperBreakerTicks() <= System.currentTimeMillis()){
|
||||
PP.setSuperBreakerMode(false);
|
||||
PP.setSuperBreakerInformed(false);
|
||||
player.sendMessage(ChatColor.RED+"**Super Breaker has worn off**");
|
||||
/*
|
||||
* MINING ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().miningAbility(player)){
|
||||
if(PP.getSuperBreakerMode() && PP.getSuperBreakerDeactivatedTimeStamp() <= System.currentTimeMillis()){
|
||||
PP.setSuperBreakerMode(false);
|
||||
PP.setSuperBreakerInformed(false);
|
||||
player.sendMessage(Messages.getString("Skills.SuperBreakerOff"));
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* EXCAVATION ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().excavationAbility(player)){
|
||||
if(PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerActivatedTimeStamp() + PP.getGigaDrillBreakerTicks() <= System.currentTimeMillis()){
|
||||
PP.setGigaDrillBreakerMode(false);
|
||||
PP.setGigaDrillBreakerInformed(false);
|
||||
player.sendMessage(ChatColor.RED+"**Giga Drill Breaker has worn off**");
|
||||
/*
|
||||
* EXCAVATION ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().excavationAbility(player)){
|
||||
if(PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerDeactivatedTimeStamp() <= System.currentTimeMillis()){
|
||||
PP.setGigaDrillBreakerMode(false);
|
||||
PP.setGigaDrillBreakerInformed(false);
|
||||
player.sendMessage(Messages.getString("Skills.GigaDrillBreakerOff"));
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* SWORDS ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().swordsAbility(player)){
|
||||
if(PP.getSerratedStrikesMode() && PP.getSerratedStrikesActivatedTimeStamp() + PP.getSerratedStrikesTicks() <= System.currentTimeMillis()){
|
||||
PP.setSerratedStrikesMode(false);
|
||||
PP.setSerratedStrikesInformed(false);
|
||||
player.sendMessage(ChatColor.RED+"**Serrated Strikes has worn off**");
|
||||
/*
|
||||
* SWORDS ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().swordsAbility(player)){
|
||||
if(PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() <= System.currentTimeMillis()){
|
||||
PP.setSerratedStrikesMode(false);
|
||||
PP.setSerratedStrikesInformed(false);
|
||||
player.sendMessage(Messages.getString("Skills.SerratedStrikesOff"));
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* UNARMED ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().unarmedAbility(player)){
|
||||
if(PP.getBerserkMode() && PP.getBerserkActivatedTimeStamp() + PP.getBerserkTicks() <= System.currentTimeMillis()){
|
||||
PP.setBerserkMode(false);
|
||||
PP.setBerserkInformed(false);
|
||||
player.sendMessage(ChatColor.RED+"**Berserk has worn off**");
|
||||
/*
|
||||
* UNARMED ABILITY
|
||||
*/
|
||||
if(mcPermissions.getInstance().unarmedAbility(player)){
|
||||
if(PP.getBerserkMode() && PP.getBerserkDeactivatedTimeStamp() <= System.currentTimeMillis()){
|
||||
PP.setBerserkMode(false);
|
||||
PP.setBerserkInformed(false);
|
||||
player.sendMessage(Messages.getString("Skills.BerserkOff"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void abilityActivationCheck(Player player){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(!PP.getAbilityUse())
|
||||
return;
|
||||
if(mcPermissions.getInstance().miningAbility(player) && m.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode()){
|
||||
if(!PP.getSuperBreakerMode() && !cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)){
|
||||
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
|
||||
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)+"s)");
|
||||
if(PP != null){
|
||||
if(!PP.getAbilityUse())
|
||||
return;
|
||||
if(mcPermissions.getInstance().miningAbility(player) && m.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode()){
|
||||
if(!PP.getSuperBreakerMode() && !cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)){
|
||||
player.sendMessage(Messages.getString("Skills.TooTired")
|
||||
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSuperBreakerDeactivatedTimeStamp(), LoadProperties.superBreakerCooldown)+"s)");
|
||||
return;
|
||||
}
|
||||
player.sendMessage(Messages.getString("Skills.ReadyPickAxe"));
|
||||
PP.setPickaxePreparationATS(System.currentTimeMillis());
|
||||
PP.setPickaxePreparationMode(true);
|
||||
}
|
||||
player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR PICKAXE**");
|
||||
PP.setPickaxePreparationATS(System.currentTimeMillis());
|
||||
PP.setPickaxePreparationMode(true);
|
||||
}
|
||||
if(mcPermissions.getInstance().excavationAbility(player) && m.isShovel(player.getItemInHand()) && !PP.getShovelPreparationMode()){
|
||||
if(!PP.getGigaDrillBreakerMode() && !cooldownOver(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), LoadProperties.gigaDrillBreakerCooldown)){
|
||||
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
|
||||
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), LoadProperties.gigaDrillBreakerCooldown)+"s)");
|
||||
return;
|
||||
if(mcPermissions.getInstance().excavationAbility(player) && m.isShovel(player.getItemInHand()) && !PP.getShovelPreparationMode()){
|
||||
if(!PP.getGigaDrillBreakerMode() && !cooldownOver(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), LoadProperties.gigaDrillBreakerCooldown)){
|
||||
player.sendMessage(Messages.getString("Skills.TooTired")
|
||||
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), LoadProperties.gigaDrillBreakerCooldown)+"s)");
|
||||
return;
|
||||
}
|
||||
player.sendMessage(Messages.getString("Skills.ReadyShovel"));
|
||||
PP.setShovelPreparationATS(System.currentTimeMillis());
|
||||
PP.setShovelPreparationMode(true);
|
||||
}
|
||||
player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR SHOVEL**");
|
||||
PP.setShovelPreparationATS(System.currentTimeMillis());
|
||||
PP.setShovelPreparationMode(true);
|
||||
}
|
||||
if(mcPermissions.getInstance().swordsAbility(player) && m.isSwords(player.getItemInHand()) && !PP.getSwordsPreparationMode()){
|
||||
if(!PP.getSerratedStrikesMode() && !cooldownOver(player, PP.getSerratedStrikesDeactivatedTimeStamp(), LoadProperties.serratedStrikeCooldown)){
|
||||
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
|
||||
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSerratedStrikesDeactivatedTimeStamp(), LoadProperties.serratedStrikeCooldown)+"s)");
|
||||
return;
|
||||
if(mcPermissions.getInstance().swordsAbility(player) && m.isSwords(player.getItemInHand()) && !PP.getSwordsPreparationMode()){
|
||||
if(!PP.getSerratedStrikesMode() && !cooldownOver(player, PP.getSerratedStrikesDeactivatedTimeStamp(), LoadProperties.serratedStrikeCooldown)){
|
||||
player.sendMessage(Messages.getString("Skills.TooTired")
|
||||
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSerratedStrikesDeactivatedTimeStamp(), LoadProperties.serratedStrikeCooldown)+"s)");
|
||||
return;
|
||||
}
|
||||
player.sendMessage(Messages.getString("Skills.ReadySword"));
|
||||
PP.setSwordsPreparationATS(System.currentTimeMillis());
|
||||
PP.setSwordsPreparationMode(true);
|
||||
}
|
||||
player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR SWORD**");
|
||||
PP.setSwordsPreparationATS(System.currentTimeMillis());
|
||||
PP.setSwordsPreparationMode(true);
|
||||
}
|
||||
if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !PP.getFistsPreparationMode()){
|
||||
if(!PP.getBerserkMode() && !cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)){
|
||||
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
|
||||
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)+"s)");
|
||||
return;
|
||||
if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !PP.getFistsPreparationMode()){
|
||||
if(!PP.getBerserkMode() && !cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)){
|
||||
player.sendMessage(Messages.getString("Skills.TooTired")
|
||||
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)+"s)");
|
||||
return;
|
||||
}
|
||||
player.sendMessage(Messages.getString("Skills.ReadyFists"));
|
||||
PP.setFistsPreparationATS(System.currentTimeMillis());
|
||||
PP.setFistsPreparationMode(true);
|
||||
}
|
||||
if((mcPermissions.getInstance().axes(player) || mcPermissions.getInstance().woodcutting(player)) && !PP.getAxePreparationMode()){
|
||||
if(m.isAxes(player.getItemInHand())){
|
||||
player.sendMessage(Messages.getString("Skills.ReadyAxe"));
|
||||
PP.setAxePreparationATS(System.currentTimeMillis());
|
||||
PP.setAxePreparationMode(true);
|
||||
}
|
||||
}
|
||||
player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR FISTS**");
|
||||
PP.setFistsPreparationATS(System.currentTimeMillis());
|
||||
PP.setFistsPreparationMode(true);
|
||||
}
|
||||
if((mcPermissions.getInstance().axes(player) || mcPermissions.getInstance().woodcutting(player)) && !PP.getAxePreparationMode()){
|
||||
if(m.isAxes(player.getItemInHand())){
|
||||
player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR AXE**");
|
||||
PP.setAxePreparationATS(System.currentTimeMillis());
|
||||
PP.setAxePreparationMode(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void XpCheck(Player player){
|
||||
@ -277,9 +277,9 @@ public class Skills {
|
||||
* TAMING
|
||||
*/
|
||||
if(player != null){
|
||||
if(PP.getTamingXPInt() >= PP.getXpToLevel("taming")){
|
||||
if(PP.getSkill("tamingXP") >= PP.getXpToLevel("taming")){
|
||||
int skillups = 0;
|
||||
while(PP.getTamingXPInt() >= PP.getXpToLevel("taming")){
|
||||
while(PP.getSkill("tamingXP") >= PP.getXpToLevel("taming")){
|
||||
skillups++;
|
||||
PP.removeTamingXP(PP.getXpToLevel("taming"));
|
||||
PP.skillUpTaming(1);
|
||||
@ -289,19 +289,19 @@ public class Skills {
|
||||
*/
|
||||
PlayerStat ps = new PlayerStat();
|
||||
if(!LoadProperties.useMySQL){
|
||||
ps.statVal = PP.getTamingInt();
|
||||
ps.statVal = PP.getSkill("taming");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "taming");
|
||||
}
|
||||
if(player != null && PP != null && PP.getTaming() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Taming skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getTaming()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("taming") != null)
|
||||
player.sendMessage(Messages.getString("Skills.TamingUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("taming")}));
|
||||
}
|
||||
/*
|
||||
* ACROBATICS
|
||||
*/
|
||||
if(PP.getAcrobaticsXPInt() >= PP.getXpToLevel("acrobatics")){
|
||||
if(PP.getSkill("acrobaticsXP") >= PP.getXpToLevel("acrobatics")){
|
||||
int skillups = 0;
|
||||
while(PP.getAcrobaticsXPInt() >= PP.getXpToLevel("acrobatics")){
|
||||
while(PP.getSkill("acrobaticsXP") >= PP.getXpToLevel("acrobatics")){
|
||||
skillups++;
|
||||
PP.removeAcrobaticsXP(PP.getXpToLevel("acrobatics"));
|
||||
PP.skillUpAcrobatics(1);
|
||||
@ -311,20 +311,20 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getAcrobaticsInt();
|
||||
ps.statVal = PP.getSkill("acrobatics");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "acrobatics");
|
||||
}
|
||||
|
||||
if(player != null && PP != null && PP.getAcrobatics() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Acrobatics skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getAcrobatics()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("acrobatics") != null)
|
||||
player.sendMessage(Messages.getString("Skills.AcrobaticsUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("acrobatics")}));
|
||||
}
|
||||
/*
|
||||
* ARCHERY
|
||||
*/
|
||||
if(PP.getArcheryXPInt() >= PP.getXpToLevel("archery")){
|
||||
if(PP.getSkill("archeryXP") >= PP.getXpToLevel("archery")){
|
||||
int skillups = 0;
|
||||
while(PP.getArcheryXPInt() >= PP.getXpToLevel("archery")){
|
||||
while(PP.getSkill("archeryXP") >= PP.getXpToLevel("archery")){
|
||||
skillups++;
|
||||
PP.removeArcheryXP(PP.getXpToLevel("archery"));
|
||||
PP.skillUpArchery(1);
|
||||
@ -334,19 +334,19 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getArcheryInt();
|
||||
ps.statVal = PP.getSkill("archery");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "archery");
|
||||
}
|
||||
if(player != null && PP != null && PP.getArchery() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Archery skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getArchery()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("archery") != null)
|
||||
player.sendMessage(Messages.getString("Skills.ArcheryUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("archery")}));
|
||||
}
|
||||
/*
|
||||
* SWORDS
|
||||
*/
|
||||
if(PP.getSwordsXPInt() >= PP.getXpToLevel("swords")){
|
||||
if(PP.getSkill("swordsXP") >= PP.getXpToLevel("swords")){
|
||||
int skillups = 0;
|
||||
while(PP.getSwordsXPInt() >= PP.getXpToLevel("swords")){
|
||||
while(PP.getSkill("swordsXP") >= PP.getXpToLevel("swords")){
|
||||
skillups++;
|
||||
PP.removeSwordsXP(PP.getXpToLevel("swords"));
|
||||
PP.skillUpSwords(1);
|
||||
@ -356,20 +356,20 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getSwordsInt();
|
||||
ps.statVal = PP.getSkill("swords");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "swords");
|
||||
}
|
||||
|
||||
if(player != null && PP != null && PP.getSwords() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Swords skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getSwords()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("swords") != null)
|
||||
player.sendMessage(Messages.getString("Skills.SwordsUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("swords")}));
|
||||
}
|
||||
/*
|
||||
* AXES
|
||||
*/
|
||||
if(PP.getAxesXPInt() >= PP.getXpToLevel("axes")){
|
||||
if(PP.getSkill("axesXP") >= PP.getXpToLevel("axes")){
|
||||
int skillups = 0;
|
||||
while(PP.getAxesXPInt() >= PP.getXpToLevel("axes")){
|
||||
while(PP.getSkill("axesXP") >= PP.getXpToLevel("axes")){
|
||||
skillups++;
|
||||
PP.removeAxesXP(PP.getXpToLevel("axes"));
|
||||
PP.skillUpAxes(1);
|
||||
@ -379,19 +379,19 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getAxesInt();
|
||||
ps.statVal = PP.getSkill("axes");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "axes");
|
||||
}
|
||||
if(player != null && PP != null && PP.getAxes() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Axes skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getAxes()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("axes") != null)
|
||||
player.sendMessage(Messages.getString("Skills.AxesUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("axes")}));
|
||||
}
|
||||
/*
|
||||
* UNARMED
|
||||
*/
|
||||
if(PP.getUnarmedXPInt() >= PP.getXpToLevel("unarmed")){
|
||||
if(PP.getSkill("unarmedXP") >= PP.getXpToLevel("unarmed")){
|
||||
int skillups = 0;
|
||||
while(PP.getUnarmedXPInt() >= PP.getXpToLevel("unarmed")){
|
||||
while(PP.getSkill("unarmedXP") >= PP.getXpToLevel("unarmed")){
|
||||
skillups++;
|
||||
PP.removeUnarmedXP(PP.getXpToLevel("unarmed"));
|
||||
PP.skillUpUnarmed(1);
|
||||
@ -401,19 +401,19 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getUnarmedInt();
|
||||
ps.statVal = PP.getSkill("unarmed");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "unarmed");
|
||||
}
|
||||
if(player != null && PP != null && PP.getUnarmed() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Unarmed skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getUnarmed()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("unarmed") != null)
|
||||
player.sendMessage(Messages.getString("Skills.UnarmedUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("unarmed")}));
|
||||
}
|
||||
/*
|
||||
* HERBALISM
|
||||
*/
|
||||
if(PP.getHerbalismXPInt() >= PP.getXpToLevel("herbalism")){
|
||||
if(PP.getSkill("herbalismXP") >= PP.getXpToLevel("herbalism")){
|
||||
int skillups = 0;
|
||||
while(PP.getHerbalismXPInt() >= PP.getXpToLevel("herbalism")){
|
||||
while(PP.getSkill("herbalismXP") >= PP.getXpToLevel("herbalism")){
|
||||
skillups++;
|
||||
PP.removeHerbalismXP(PP.getXpToLevel("herbalism"));
|
||||
PP.skillUpHerbalism(1);
|
||||
@ -423,19 +423,19 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getHerbalismInt();
|
||||
ps.statVal = PP.getSkill("herbalism");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "herbalism");
|
||||
}
|
||||
if(player != null && PP != null && PP.getHerbalism() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Herbalism skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getHerbalism()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("herbalism") != null)
|
||||
player.sendMessage(Messages.getString("Skills.HerbalismUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("herbalism")}));
|
||||
}
|
||||
/*
|
||||
* MINING
|
||||
*/
|
||||
if(player != null && PP.getMiningXPInt() >= PP.getXpToLevel("mining")){
|
||||
if(player != null && PP.getSkill("miningXP") >= PP.getXpToLevel("mining")){
|
||||
int skillups = 0;
|
||||
while(PP.getMiningXPInt() >= PP.getXpToLevel("mining")){
|
||||
while(PP.getSkill("miningXP") >= PP.getXpToLevel("mining")){
|
||||
skillups++;
|
||||
PP.removeMiningXP(PP.getXpToLevel("mining"));
|
||||
PP.skillUpMining(1);
|
||||
@ -445,19 +445,19 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getMiningInt();
|
||||
ps.statVal = PP.getSkill("mining");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "mining");
|
||||
}
|
||||
if(player != null && PP != null && PP.getMining() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Mining skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getMining()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("mining") != null)
|
||||
player.sendMessage(Messages.getString("Skills.MiningUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("mining")}));
|
||||
}
|
||||
/*
|
||||
* WOODCUTTING
|
||||
*/
|
||||
if(player != null && PP.getWoodCuttingXPInt() >= PP.getXpToLevel("woodcutting")){
|
||||
if(player != null && PP.getSkill("woodcuttingXP") >= PP.getXpToLevel("woodcutting")){
|
||||
int skillups = 0;
|
||||
while(PP.getWoodCuttingXPInt() >= PP.getXpToLevel("woodcutting")){
|
||||
while(PP.getSkill("woodcuttingXP") >= PP.getXpToLevel("woodcutting")){
|
||||
skillups++;
|
||||
PP.removeWoodCuttingXP(PP.getXpToLevel("woodcutting"));
|
||||
PP.skillUpWoodCutting(1);
|
||||
@ -467,19 +467,19 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getWoodCuttingInt();
|
||||
ps.statVal = PP.getSkill("woodcutting");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "woodcutting");
|
||||
}
|
||||
if(player != null && PP != null && PP.getWoodCutting() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"WoodCutting skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getWoodCutting()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("woodcutting") != null)
|
||||
player.sendMessage(Messages.getString("Skills.WoodcuttingUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("woodcutting")}));
|
||||
}
|
||||
/*
|
||||
* REPAIR
|
||||
*/
|
||||
if(PP.getRepairXPInt() >= PP.getXpToLevel("repair")){
|
||||
if(PP.getSkill("repairXP") >= PP.getXpToLevel("repair")){
|
||||
int skillups = 0;
|
||||
while(PP.getRepairXPInt() >= PP.getXpToLevel("repair")){
|
||||
while(PP.getSkill("repairXP") >= PP.getXpToLevel("repair")){
|
||||
skillups++;
|
||||
PP.removeRepairXP(PP.getXpToLevel("repair"));
|
||||
PP.skillUpRepair(1);
|
||||
@ -489,19 +489,19 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getRepairInt();
|
||||
ps.statVal = PP.getSkill("repair");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "repair");
|
||||
}
|
||||
if(player != null && PP != null && PP.getRepair() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Repair skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getRepair()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("repair") != null)
|
||||
player.sendMessage(Messages.getString("Skills.RepairUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("repair")}));
|
||||
}
|
||||
/*
|
||||
* EXCAVATION
|
||||
*/
|
||||
if(PP.getExcavationXPInt() >= PP.getXpToLevel("excavation")){
|
||||
if(PP.getSkill("excavationXP") >= PP.getXpToLevel("excavation")){
|
||||
int skillups = 0;
|
||||
while(PP.getExcavationXPInt() >= PP.getXpToLevel("excavation")){
|
||||
while(PP.getSkill("excavationXP") >= PP.getXpToLevel("excavation")){
|
||||
skillups++;
|
||||
PP.removeExcavationXP(PP.getXpToLevel("excavation"));
|
||||
PP.skillUpExcavation(1);
|
||||
@ -511,18 +511,21 @@ public class Skills {
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = PP.getExcavationInt();
|
||||
ps.statVal = PP.getSkill("excavation");
|
||||
ps.name = player.getName();
|
||||
Leaderboard.updateLeaderboard(ps, "excavation");
|
||||
}
|
||||
if(player != null && PP != null && PP.getExcavation() != null)
|
||||
player.sendMessage(ChatColor.YELLOW+"Excavation skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getExcavation()+")");
|
||||
if(player != null && PP != null && PP.getSkillToString("excavation") != null)
|
||||
player.sendMessage(Messages.getString("Skills.ExcavationUp", new Object[] {String.valueOf(skillups), PP.getSkillToString("excavation")}));
|
||||
//player.sendMessage(ChatColor.YELLOW+"Excavation skill increased by "+String.valueOf(skillups)+"."+" Total ("+PP.getSkillToString("excavation")+")");
|
||||
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Leaderboard updating stuff
|
||||
*/
|
||||
if(!LoadProperties.useMySQL){
|
||||
if(!LoadProperties.useMySQL)
|
||||
{
|
||||
PlayerStat ps = new PlayerStat();
|
||||
ps.statVal = m.getPowerLevel(player);
|
||||
ps.name = player.getName();
|
||||
@ -534,6 +537,9 @@ public class Skills {
|
||||
if(skillname.equals("all")){
|
||||
return true;
|
||||
}
|
||||
if(skillname.equals("sorcery")){
|
||||
return true;
|
||||
}
|
||||
if(skillname.equals("taming")){
|
||||
return true;
|
||||
}
|
||||
@ -570,15 +576,48 @@ public class Skills {
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static void arrowRetrievalCheck(Entity entity){
|
||||
if(Config.getInstance().isTracked(entity)){
|
||||
}
|
||||
public static void arrowRetrievalCheck(Entity entity, mcMMO plugin)
|
||||
{
|
||||
if(plugin.misc.arrowTracker.containsKey(entity))
|
||||
{
|
||||
Integer x = 0;
|
||||
while(x < Config.getInstance().getArrowCount(entity)){
|
||||
m.mcDropItem(entity.getLocation(), 262);
|
||||
x++;
|
||||
while(x < plugin.misc.arrowTracker.get(entity))
|
||||
{
|
||||
m.mcDropItem(entity.getLocation(), 262);
|
||||
x++;
|
||||
}
|
||||
}
|
||||
Config.getInstance().removeArrowTracked(entity);
|
||||
plugin.misc.arrowTracker.remove(entity);
|
||||
}
|
||||
public static String getSkillStats(String skillname, String level, String 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().sorcery(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;
|
||||
}
|
||||
}
|
||||
|
115
mcMMO/com/gmail/nossr50/skills/Sorcery.java
Normal file
115
mcMMO/com/gmail/nossr50/skills/Sorcery.java
Normal file
@ -0,0 +1,115 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcPermissions;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
|
||||
public class Sorcery
|
||||
{
|
||||
mcMMO plugin = null;
|
||||
|
||||
public Sorcery(mcMMO pluginx)
|
||||
{
|
||||
plugin = pluginx;
|
||||
}
|
||||
|
||||
public Block getSpellTargetBlock(Player player)
|
||||
{
|
||||
List<Block> blocks = player.getLineOfSight(null, 25);
|
||||
for(Block x : blocks)
|
||||
{
|
||||
Material y = Material.AIR;
|
||||
if(x.getType() != y)
|
||||
return x;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public void informSelected(String spellname, int cost, Player player)
|
||||
{
|
||||
player.sendMessage(Messages.getString("Sorcery.SpellSelected", new Object[] {spellname, cost}));
|
||||
}
|
||||
|
||||
public void informSpell(String spellname, Player player)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
player.sendMessage(Messages.getString("Sorcery.HasCast") +" "+spellname+" "+ Messages.getString("Sorcery.Current_Mana")+ChatColor.YELLOW+"("+ChatColor.GRAY+PP.getCurrentMana()+ChatColor.YELLOW+"/"+ChatColor.GREEN+PP.getMaxMana()+ChatColor.YELLOW+")");
|
||||
}
|
||||
|
||||
public void shoutSpell(String spellname, Player player)
|
||||
{
|
||||
for(Player x : plugin.getServer().getOnlinePlayers())
|
||||
{
|
||||
if(x == player)
|
||||
continue;
|
||||
if(m.getDistance(x.getLocation(), player.getLocation()) < 35)
|
||||
{
|
||||
x.sendMessage(ChatColor.GREEN+"-"+ChatColor.DARK_AQUA+"="+ChatColor.GOLD+spellname+ChatColor.DARK_AQUA+"="+ChatColor.GREEN+"-"
|
||||
+" "+ChatColor.YELLOW+"["+ChatColor.DARK_RED+player.getName()+ChatColor.YELLOW+"]");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void handleGreenDyeCycle(Player player)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
|
||||
//The selector is used to account for permissions removing spells from this order.
|
||||
|
||||
//Check if player has access to curative spell
|
||||
if(!hasCurativeSpellPermission(player))
|
||||
PP.setDyeChanged(true);
|
||||
|
||||
switch(PP.getGreenDyeCycleSel())
|
||||
{
|
||||
case 0:
|
||||
if(mcPermissions.getInstance().sorceryCurativeHealSelf(player))
|
||||
{
|
||||
PP.setDyeChanged(true);
|
||||
PP.setGreenDyeCycleSel(1);
|
||||
PP.setGreenDyeCycle(0);
|
||||
|
||||
informSelected(Messages.getString("Sorcery.Curative.Self"), LoadProperties.cure_self, player);
|
||||
break;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
PP.setGreenDyeCycleSel(1);
|
||||
}
|
||||
case 1:
|
||||
if(mcPermissions.getInstance().sorceryCurativeHealOther(player))
|
||||
{
|
||||
PP.setDyeChanged(true);
|
||||
PP.setGreenDyeCycleSel(0);
|
||||
PP.setGreenDyeCycle(1);
|
||||
|
||||
informSelected(Messages.getString("Sorcery.Curative.Other"), LoadProperties.cure_other, player);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
PP.setGreenDyeCycleSel(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
public boolean hasCurativeSpellPermission (Player player)
|
||||
{
|
||||
if(mcPermissions.getInstance().sorceryCurativeHealOther(player) == false
|
||||
&& mcPermissions.getInstance().sorceryCurativeHealSelf(player) == false)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -3,7 +3,7 @@ package com.gmail.nossr50.skills;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Monster;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
@ -12,10 +12,11 @@ import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.Combat;
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcPermissions;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
import com.gmail.nossr50.datatypes.PlayerProfile;
|
||||
import com.gmail.nossr50.party.Party;
|
||||
@ -24,24 +25,28 @@ public class Swords {
|
||||
|
||||
public static void serratedStrikesActivationCheck(Player player, Plugin pluginx){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(m.isSwords(player.getItemInHand())){
|
||||
if(PP.getSwordsPreparationMode()){
|
||||
if(m.isSwords(player.getItemInHand()))
|
||||
{
|
||||
if(PP.getSwordsPreparationMode())
|
||||
{
|
||||
PP.setSwordsPreparationMode(false);
|
||||
}
|
||||
int ticks = 2;
|
||||
int x = PP.getSwordsInt();
|
||||
while(x >= 50){
|
||||
int x = PP.getSkill("swords");
|
||||
while(x >= 50)
|
||||
{
|
||||
x-=50;
|
||||
ticks++;
|
||||
}
|
||||
|
||||
if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesCooldown() == 0){
|
||||
player.sendMessage(ChatColor.GREEN+"**SERRATED STRIKES ACTIVATED**");
|
||||
for(Player y : pluginx.getServer().getOnlinePlayers()){
|
||||
if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesDeactivatedTimeStamp() < System.currentTimeMillis())
|
||||
{
|
||||
player.sendMessage(Messages.getString("Skills.SerratedStrikesOn"));
|
||||
for(Player y : pluginx.getServer().getOnlinePlayers())
|
||||
{
|
||||
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
|
||||
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Serrated Strikes!");
|
||||
y.sendMessage(Messages.getString("Skills.SerratedStrikesPlayer", new Object[] {player.getName()}));
|
||||
}
|
||||
PP.setSerratedStrikesTicks((ticks * 2) * 1000);
|
||||
PP.setSerratedStrikesActivatedTimeStamp(System.currentTimeMillis());
|
||||
PP.setSerratedStrikesDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
|
||||
PP.setSerratedStrikesMode(true);
|
||||
@ -50,30 +55,42 @@ public class Swords {
|
||||
}
|
||||
}
|
||||
|
||||
public static void bleedCheck(Player attacker, Entity x, Plugin pluginx){
|
||||
public static void bleedCheck(Player attacker, LivingEntity x, mcMMO pluginx)
|
||||
{
|
||||
PlayerProfile PPa = Users.getProfile(attacker);
|
||||
if(x instanceof Wolf){
|
||||
|
||||
if(x instanceof Wolf)
|
||||
{
|
||||
Wolf wolf = (Wolf)x;
|
||||
if(Taming.getOwner(wolf, pluginx) == attacker)
|
||||
return;
|
||||
if(Party.getInstance().inSameParty(attacker, Taming.getOwner(wolf, pluginx)))
|
||||
return;
|
||||
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.getSwordsInt() >= 750){
|
||||
if(Math.random() * 1000 >= 750){
|
||||
if(PPa.getSkill("swords") >= 750)
|
||||
{
|
||||
if(Math.random() * 1000 >= 750)
|
||||
{
|
||||
if(!(x instanceof Player))
|
||||
Config.getInstance().addToBleedQue(x);
|
||||
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.getSwordsInt()){
|
||||
}
|
||||
else if (Math.random() * 1000 <= PPa.getSkill("swords"))
|
||||
{
|
||||
if(!(x instanceof Player))
|
||||
Config.getInstance().addToBleedQue(x);
|
||||
if(x instanceof Player){
|
||||
pluginx.misc.addToBleedQue(x);
|
||||
if(x instanceof Player)
|
||||
{
|
||||
Player target = (Player)x;
|
||||
Users.getProfile(target).addBleedTicks(2);
|
||||
}
|
||||
@ -81,69 +98,94 @@ public class Swords {
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, Plugin pluginx){
|
||||
public static void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, mcMMO pluginx)
|
||||
{
|
||||
int targets = 0;
|
||||
Entity x = event.getEntity();
|
||||
targets = m.getTier(attacker);
|
||||
for(Entity derp : x.getWorld().getEntities())
|
||||
|
||||
if(event.getEntity() instanceof LivingEntity)
|
||||
{
|
||||
if(m.getDistance(x.getLocation(), derp.getLocation()) < 5){
|
||||
if(derp instanceof Player){
|
||||
Player target = (Player)derp;
|
||||
if(Party.getInstance().inSameParty(attacker, target))
|
||||
continue;
|
||||
if(!target.getName().equals(attacker.getName()) && targets >= 1){
|
||||
target.damage(event.getDamage() / 4);
|
||||
target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!");
|
||||
Users.getProfile(target).addBleedTicks(5);
|
||||
targets--;
|
||||
}
|
||||
}
|
||||
if(derp instanceof Monster && targets >= 1){
|
||||
if(!Config.getInstance().isBleedTracked(derp))
|
||||
Config.getInstance().addToBleedQue(x);
|
||||
Monster target = (Monster)derp;
|
||||
target.damage(event.getDamage() / 4);
|
||||
targets--;
|
||||
}
|
||||
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;
|
||||
}
|
||||
if(derp instanceof Animals && targets >= 1){
|
||||
if(!Config.getInstance().isBleedTracked(derp))
|
||||
Config.getInstance().addToBleedQue(x);
|
||||
Animals target = (Animals)derp;
|
||||
target.damage(event.getDamage() / 4);
|
||||
targets--;
|
||||
}
|
||||
}
|
||||
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 && derp.getWorld().getPVP())
|
||||
{
|
||||
Player target = (Player)derp;
|
||||
|
||||
if(target.getName().equals(attacker.getName()))
|
||||
continue;
|
||||
|
||||
if(Party.getInstance().inSameParty(attacker, target))
|
||||
continue;
|
||||
if(targets >= 1)
|
||||
{
|
||||
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 parryCheck(EntityDamageByEntityEvent event, Player defender){
|
||||
|
||||
public static void parryCheck(EntityDamageByEntityEvent event, Player defender)
|
||||
{
|
||||
Entity y = event.getDamager();
|
||||
PlayerProfile PPd = Users.getProfile(defender);
|
||||
if(defender != null && m.isSwords(defender.getItemInHand())
|
||||
&& mcPermissions.getInstance().swords(defender)){
|
||||
if(PPd.getSwordsInt() >= 900){
|
||||
if(Math.random() * 3000 <= 900){
|
||||
if(PPd.getSkill("swords") >= 900)
|
||||
{
|
||||
if(Math.random() * 3000 <= 900)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
defender.sendMessage(ChatColor.GREEN+"**PARRIED**");
|
||||
defender.getItemInHand().setDurability((short) (defender.getItemInHand().getDurability() + 1));
|
||||
if(y instanceof Player){
|
||||
if(y instanceof Player)
|
||||
{
|
||||
Player attacker = (Player)y;
|
||||
attacker.sendMessage(ChatColor.GREEN+"**PARRIED**");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(Math.random() * 3000 <= PPd.getSwordsInt()){
|
||||
} else
|
||||
{
|
||||
if(Math.random() * 3000 <= PPd.getSkill("swords"))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
defender.sendMessage(ChatColor.YELLOW+"*CLANG* SUCCESSFUL PARRY *CLANG*");
|
||||
defender.getItemInHand().setDurability((short) (defender.getItemInHand().getDurability() + 1));
|
||||
if(y instanceof Player){
|
||||
if(y instanceof Player)
|
||||
{
|
||||
Player attacker = (Player)y;
|
||||
attacker.sendMessage(ChatColor.DARK_RED+"**TARGET HAS PARRIED THAT ATTACK**");
|
||||
}
|
||||
@ -153,8 +195,10 @@ public class Swords {
|
||||
}
|
||||
public static void counterAttackChecks(EntityDamageEvent event){
|
||||
//Don't want to counter attack arrows
|
||||
|
||||
if(event instanceof EntityDamageByProjectileEvent)
|
||||
return;
|
||||
|
||||
if(event instanceof EntityDamageByEntityEvent)
|
||||
{
|
||||
Entity f = ((EntityDamageByEntityEvent) event).getDamager();
|
||||
@ -164,7 +208,7 @@ public class Swords {
|
||||
PlayerProfile PPd = Users.getProfile(defender);
|
||||
if(m.isSwords(defender.getItemInHand()) && mcPermissions.getInstance().swords(defender))
|
||||
{
|
||||
if(PPd.getSwordsInt() >= 600)
|
||||
if(PPd.getSkill("swords") >= 600)
|
||||
{
|
||||
if(Math.random() * 2000 <= 600)
|
||||
{
|
||||
@ -174,7 +218,7 @@ public class Swords {
|
||||
((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
|
||||
}
|
||||
}
|
||||
else if (Math.random() * 2000 <= PPd.getSwordsInt())
|
||||
else if (Math.random() * 2000 <= PPd.getSkill("swords"))
|
||||
{
|
||||
Combat.dealDamage(f, event.getDamage() / 2);
|
||||
defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
|
||||
@ -185,39 +229,51 @@ public class Swords {
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void bleedSimulate(){
|
||||
public static void bleedSimulate(mcMMO plugin)
|
||||
{
|
||||
long before = System.currentTimeMillis();
|
||||
|
||||
//Add items from Que list to BleedTrack list
|
||||
for(Entity x : Config.getInstance().getBleedQue()){
|
||||
Config.getInstance().addBleedTrack(x);
|
||||
|
||||
for(LivingEntity x : plugin.misc.bleedQue)
|
||||
{
|
||||
plugin.misc.bleedTracker.add(x);
|
||||
}
|
||||
|
||||
//Clear list
|
||||
Config.getInstance().clearBleedQue();
|
||||
plugin.misc.bleedQue = new LivingEntity[plugin.misc.bleedQue.length];
|
||||
plugin.misc.bleedQuePos = 0;
|
||||
|
||||
//Cleanup any dead entities from the list
|
||||
for(Entity x : Config.getInstance().getBleedRemovalQue()){
|
||||
Config.getInstance().removeBleedTrack(x);
|
||||
for(LivingEntity x : plugin.misc.bleedRemovalQue)
|
||||
{
|
||||
plugin.misc.bleedTracker.remove(x);
|
||||
}
|
||||
|
||||
//Clear bleed removal list
|
||||
Config.getInstance().clearBleedRemovalQue();
|
||||
plugin.misc.bleedRemovalQue = new LivingEntity[plugin.misc.bleedRemovalQue.length];
|
||||
plugin.misc.bleedRemovalQuePos = 0;
|
||||
|
||||
//Bleed monsters/animals
|
||||
for(Entity x : Config.getInstance().getBleedTracked()){
|
||||
if(x == null){
|
||||
for(LivingEntity x : plugin.misc.bleedTracker)
|
||||
{
|
||||
if(x == null){continue;}
|
||||
|
||||
if(x.getHealth() <= 0)
|
||||
{
|
||||
plugin.misc.addToBleedRemovalQue(x);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(m.getHealth(x) <= 0){
|
||||
continue;
|
||||
else
|
||||
{
|
||||
x.damage(2);
|
||||
}
|
||||
|
||||
if(x instanceof Animals){
|
||||
((Animals) x).damage(2);
|
||||
}
|
||||
|
||||
if(x instanceof Monster){((Monster) x).damage(2);}
|
||||
}
|
||||
|
||||
long after = System.currentTimeMillis();
|
||||
if(LoadProperties.print_reports)
|
||||
{
|
||||
plugin.bleedSimulation+=(after-before);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,34 +1,52 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
import net.minecraft.server.EntityWolf;
|
||||
|
||||
import org.bukkit.craftbukkit.entity.CraftWolf;
|
||||
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 String getOwnerName(Entity theWolf){
|
||||
CraftWolf cWolf = (CraftWolf)theWolf;
|
||||
EntityWolf eWolf = (EntityWolf)cWolf.getHandle();
|
||||
|
||||
String playerName = eWolf.x();
|
||||
return playerName;
|
||||
}
|
||||
public static boolean hasOwner(Entity theWolf, Plugin pluginx){
|
||||
for(Player x : pluginx.getServer().getOnlinePlayers()){
|
||||
if(x != null && x.getName().equals(getOwnerName(theWolf))){
|
||||
return true;
|
||||
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 theWolf, Plugin pluginx){
|
||||
for(Player x : pluginx.getServer().getOnlinePlayers()){
|
||||
if(x != null && x.getName().equals(getOwnerName(theWolf))){
|
||||
return x;
|
||||
|
||||
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)
|
||||
{
|
||||
AnimalTamer tamer = (AnimalTamer)x;
|
||||
if(theWolf.getOwner() == tamer)
|
||||
return x;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getOwnerName(Wolf theWolf)
|
||||
{
|
||||
Player owner = (Player)theWolf.getOwner();
|
||||
if(owner != null)
|
||||
{
|
||||
return owner.getName();
|
||||
}
|
||||
else
|
||||
return "Offline Master";
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
package com.gmail.nossr50.skills;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.config.LoadProperties;
|
||||
@ -20,19 +20,18 @@ public class Unarmed {
|
||||
PP.setFistsPreparationMode(false);
|
||||
}
|
||||
int ticks = 2;
|
||||
int x = PP.getUnarmedInt();
|
||||
int x = PP.getSkill("unarmed");
|
||||
while(x >= 50){
|
||||
x-=50;
|
||||
ticks++;
|
||||
}
|
||||
|
||||
if(!PP.getBerserkMode() && Skills.cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), LoadProperties.berserkCooldown)){
|
||||
player.sendMessage(ChatColor.GREEN+"**BERSERK ACTIVATED**");
|
||||
player.sendMessage(Messages.getString("Skills.BerserkOn"));
|
||||
for(Player y : pluginx.getServer().getOnlinePlayers()){
|
||||
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
|
||||
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Berserk!");
|
||||
y.sendMessage(Messages.getString("Skills.BerserkPlayer", new Object[] {player.getName()}));
|
||||
}
|
||||
PP.setBerserkTicks(ticks * 1000);
|
||||
PP.setBerserkActivatedTimeStamp(System.currentTimeMillis());
|
||||
PP.setBerserkDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
|
||||
PP.setBerserkMode(true);
|
||||
@ -43,47 +42,50 @@ public class Unarmed {
|
||||
{
|
||||
PlayerProfile PPa = Users.getProfile(attacker);
|
||||
int bonus = 0;
|
||||
if (PPa.getUnarmedInt() >= 250)
|
||||
if (PPa.getSkill("unarmed") >= 250)
|
||||
bonus+=2;
|
||||
if (PPa.getUnarmedInt() >= 500)
|
||||
if (PPa.getSkill("unarmed") >= 500)
|
||||
bonus+=2;
|
||||
event.setDamage(event.getDamage()+bonus);
|
||||
}
|
||||
public static void disarmProcCheck(Player attacker, Player defender)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(attacker);
|
||||
if(PP.getUnarmedInt() >= 1000){
|
||||
if(Math.random() * 4000 <= 1000){
|
||||
Location loc = defender.getLocation();
|
||||
if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
|
||||
{
|
||||
attacker.sendMessage(ChatColor.DARK_RED+"You have hit with great force.");
|
||||
defender.sendMessage(ChatColor.DARK_RED+"You have been disarmed!");
|
||||
ItemStack item = defender.getItemInHand();
|
||||
if(item != null)
|
||||
if(attacker.getItemInHand().getTypeId() == 0)
|
||||
{
|
||||
if(PP.getSkill("unarmed") >= 1000)
|
||||
{
|
||||
if(Math.random() * 4000 <= 1000)
|
||||
{
|
||||
Location loc = defender.getLocation();
|
||||
if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
|
||||
{
|
||||
loc.getWorld().dropItemNaturally(loc, item);
|
||||
ItemStack itemx = null;
|
||||
defender.setItemInHand(itemx);
|
||||
defender.sendMessage(Messages.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.getUnarmedInt()){
|
||||
Location loc = defender.getLocation();
|
||||
if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
|
||||
{
|
||||
attacker.sendMessage(ChatColor.DARK_RED+"You have hit with great force.");
|
||||
defender.sendMessage(ChatColor.DARK_RED+"You have been disarmed!");
|
||||
ItemStack item = defender.getItemInHand();
|
||||
if(item != null)
|
||||
}
|
||||
} else {
|
||||
if(Math.random() * 4000 <= PP.getSkill("unarmed")){
|
||||
Location loc = defender.getLocation();
|
||||
if(defender.getItemInHand() != null && defender.getItemInHand().getTypeId() != 0)
|
||||
{
|
||||
loc.getWorld().dropItemNaturally(loc, item);
|
||||
ItemStack itemx = null;
|
||||
defender.setItemInHand(itemx);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
defender.sendMessage(Messages.getString("Skills.Disarmed"));
|
||||
ItemStack item = defender.getItemInHand();
|
||||
if(item != null)
|
||||
{
|
||||
loc.getWorld().dropItemNaturally(loc, item);
|
||||
ItemStack itemx = null;
|
||||
defender.setItemInHand(itemx);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.gmail.nossr50.Messages;
|
||||
import com.gmail.nossr50.Users;
|
||||
import com.gmail.nossr50.m;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
@ -20,49 +21,48 @@ import com.gmail.nossr50.config.*;
|
||||
public class WoodCutting {
|
||||
static int w = 0;
|
||||
private static boolean isdone = false;
|
||||
private static mcMMO plugin;
|
||||
public WoodCutting(mcMMO instance) {
|
||||
plugin = instance;
|
||||
}
|
||||
|
||||
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.getWoodCuttingInt()){
|
||||
if(Math.random() * 1000 <= PP.getSkill("woodcutting")){
|
||||
ItemStack item = new ItemStack(mat, 1, (short) 0, type);
|
||||
block.getWorld().dropItemNaturally(block.getLocation(), item);
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void treeFellerCheck(Player player, Block block, Plugin pluginx){
|
||||
public static void treeFellerCheck(Player player, Block block, Plugin pluginx)
|
||||
{
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
if(m.isAxes(player.getItemInHand())){
|
||||
if(block != null){
|
||||
if(m.isAxes(player.getItemInHand()))
|
||||
{
|
||||
if(block != null)
|
||||
{
|
||||
if(!m.abilityBlockCheck(block))
|
||||
return;
|
||||
}
|
||||
/*
|
||||
* CHECK FOR AXE PREP MODE
|
||||
*/
|
||||
if(PP.getAxePreparationMode()){
|
||||
if(PP.getAxePreparationMode())
|
||||
{
|
||||
PP.setAxePreparationMode(false);
|
||||
}
|
||||
int ticks = 2;
|
||||
int x = PP.getWoodCuttingInt();
|
||||
int x = PP.getSkill("woodcutting");
|
||||
while(x >= 50){
|
||||
x-=50;
|
||||
ticks++;
|
||||
}
|
||||
|
||||
if(!PP.getTreeFellerMode() && Skills.cooldownOver(player, PP.getTreeFellerDeactivatedTimeStamp(), LoadProperties.treeFellerCooldown)){
|
||||
player.sendMessage(ChatColor.GREEN+"**TREE FELLING ACTIVATED**");
|
||||
player.sendMessage(Messages.getString("Skills.TreeFellerOn"));
|
||||
for(Player y : pluginx.getServer().getOnlinePlayers()){
|
||||
if(y != null && y != player && m.getDistance(player.getLocation(), y.getLocation()) < 10)
|
||||
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Tree Feller!");
|
||||
y.sendMessage(Messages.getString("Skills.TreeFellerPlayer", new Object[] {player.getName()}));
|
||||
}
|
||||
PP.setTreeFellerTicks(ticks * 1000);
|
||||
PP.setTreeFellerActivatedTimeStamp(System.currentTimeMillis());
|
||||
PP.setTreeFellerDeactivatedTimeStamp(System.currentTimeMillis() + (ticks * 1000));
|
||||
PP.setTreeFellerMode(true);
|
||||
@ -73,12 +73,12 @@ public class WoodCutting {
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void treeFeller(Block block, Player player){
|
||||
public static void treeFeller(Block block, Player player, mcMMO plugin){
|
||||
PlayerProfile PP = Users.getProfile(player);
|
||||
int radius = 1;
|
||||
if(PP.getWoodCuttingXPInt() >= 500)
|
||||
if(PP.getSkill("woodcutting") >= 500)
|
||||
radius++;
|
||||
if(PP.getWoodCuttingXPInt() >= 950)
|
||||
if(PP.getSkill("woodcutting") >= 950)
|
||||
radius++;
|
||||
ArrayList<Block> blocklist = new ArrayList<Block>();
|
||||
ArrayList<Block> toAdd = new ArrayList<Block>();
|
||||
@ -93,9 +93,10 @@ public class WoodCutting {
|
||||
* 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(!Config.getInstance().isTreeFellerWatched(x))
|
||||
Config.getInstance().addTreeFeller(x);
|
||||
for(Block x : toAdd)
|
||||
{
|
||||
if(!plugin.misc.treeFeller.contains(x))
|
||||
plugin.misc.treeFeller.add(x);
|
||||
}
|
||||
toAdd.clear();
|
||||
}
|
||||
|
@ -1,3 +1,3 @@
|
||||
name: mcMMO
|
||||
main: com.gmail.nossr50.mcMMO
|
||||
version: 1.0.07
|
||||
version: 1.0.33
|
Loading…
Reference in New Issue
Block a user