This commit is contained in:
nossr50 2011-04-15 04:50:28 -07:00
parent bc0c3c7a57
commit 3352a74765
26 changed files with 778 additions and 402 deletions

View File

@ -1,5 +1,10 @@
Changelog:
#Versions without changelogs probably had very small misc fixes, like tweaks to the source code#
Version 1.0
Taming Skill
Leaderboards
Players won't hand out XP if they died within the last 5 seconds
Version 0.9.29
Fixes critical bug involving water turning anything into clay

View File

@ -0,0 +1,6 @@
package com.gmail.nossr50;
public class PlayerStat {
public String name;
public int statVal = 0;
}

View File

@ -6,11 +6,11 @@ import org.bukkit.entity.Player;
public class Tree {
TreeNode root;
TreeNode root = null;
public Tree(){}
public void add(Player p, int in )
public void add(String p, int in)
{
if(root == null)
root = new TreeNode(p, in);
@ -18,9 +18,10 @@ public class Tree {
root.add(p,in);
}
public Player[] inOrder()
public PlayerStat[] inOrder()
{
return (Player[]) root.inOrder(new ArrayList<Player>()).toArray();
ArrayList<PlayerStat> order = root.inOrder(new ArrayList<PlayerStat>());
return order.toArray(new PlayerStat[order.size()]);
}
}

View File

@ -7,20 +7,19 @@ import org.bukkit.entity.Player;
public class TreeNode {
TreeNode left = null
, right = null;
Player player;
int stat;
PlayerStat ps = new PlayerStat();
public TreeNode(Player p, int in) {stat = in; player = p;}
public TreeNode(String p, int in) {ps.statVal = in; ps.name = p;}
public void add (Player p, int in) {
if (in <= stat)
public void add (String p, int in) {
if (in >= ps.statVal)
{
if (left == null)
left = new TreeNode(p,in);
else
left.add(p, in);
}
else if(in > stat)
else if(in < ps.statVal)
{
if (right == null)
right = new TreeNode(p,in);
@ -29,12 +28,12 @@ public class TreeNode {
}
}
public ArrayList<Player> inOrder(ArrayList<Player> a)
public ArrayList<PlayerStat> inOrder(ArrayList<PlayerStat> a)
{
if(left != null)
a = left.inOrder(a);
a.add(player);
a.add(ps);
if(right != null)
a = right.inOrder(a);

View File

@ -35,7 +35,7 @@ public class mcAcrobatics {
if(player.getHealth() - newDamage >= 1){
if(!event.isCancelled())
PP.addAcrobaticsXP((event.getDamage() * 8) * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(player);
mcSkills.XpCheck(player);
event.setDamage(newDamage);
if(event.getDamage() <= 0)
event.setCancelled(true);
@ -48,7 +48,7 @@ public class mcAcrobatics {
} else if (!event.isCancelled()){
if(player.getHealth() - event.getDamage() >= 1){
PP.addAcrobaticsXP((event.getDamage() * 12) * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(player);
mcSkills.XpCheck(player);
}
}
}

View File

@ -31,7 +31,7 @@ public class mcBlockListener extends BlockListener {
else {
block = event.getBlock();
}
if(player != null && mcm.getInstance().shouldBeWatched(block)){
if(player != null && mcm.shouldBeWatched(block)){
if(block.getTypeId() != 17)
block.setData((byte) 5); //Change the byte
if(block.getTypeId() == 17)
@ -53,18 +53,18 @@ public class mcBlockListener extends BlockListener {
/*
* Check if the Timer is doing its job
*/
mcSkills.getInstance().monitorSkills(player);
mcSkills.monitorSkills(player);
/*
* HERBALISM
*/
if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalismAbility(player) && block.getTypeId() == 59 && block.getData() == (byte) 0x07){
mcHerbalism.getInstance().greenTerraCheck(player, block, plugin);
mcHerbalism.greenTerraCheck(player, block, plugin);
}
//Wheat && Triple drops
if(PP.getGreenTerraMode() && mcHerbalism.getInstance().canBeGreenTerra(block)){
mcHerbalism.getInstance().herbalismProcCheck(block, player, event);
mcHerbalism.getInstance().greenTerraWheat(player, block, event);
if(PP.getGreenTerraMode() && mcHerbalism.canBeGreenTerra(block)){
mcHerbalism.herbalismProcCheck(block, player, event);
mcHerbalism.greenTerraWheat(player, block, event);
}
@ -73,10 +73,10 @@ public class mcBlockListener extends BlockListener {
*/
if(mcPermissions.getInstance().mining(player)){
if(mcLoadProperties.miningrequirespickaxe){
if(mcm.getInstance().isMiningPick(inhand))
mcMining.getInstance().miningBlockCheck(player, block);
if(mcm.isMiningPick(inhand))
mcMining.miningBlockCheck(player, block);
} else {
mcMining.getInstance().miningBlockCheck(player, block);
mcMining.miningBlockCheck(player, block);
}
}
/*
@ -85,19 +85,19 @@ public class mcBlockListener extends BlockListener {
if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player)){
if(mcLoadProperties.woodcuttingrequiresaxe){
if(mcm.getInstance().isAxes(inhand)){
if(mcm.isAxes(inhand)){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcWoodCutting.getInstance().woodCuttingProcCheck(player, block);
mcWoodCutting.woodCuttingProcCheck(player, block);
PP.addWoodcuttingXP(7 * mcLoadProperties.xpGainMultiplier);
}
}
} else {
if(block.getData() != 5){
mcWoodCutting.getInstance().woodCuttingProcCheck(player, block);
mcWoodCutting.woodCuttingProcCheck(player, block);
PP.addWoodcuttingXP(7 * mcLoadProperties.xpGainMultiplier);
}
}
mcSkills.getInstance().XpCheck(player);
mcSkills.XpCheck(player);
/*
* IF PLAYER IS USING TREEFELLER
@ -105,9 +105,9 @@ public class mcBlockListener extends BlockListener {
if(mcPermissions.getInstance().woodCuttingAbility(player)
&& PP.getTreeFellerMode()
&& block.getTypeId() == 17
&& mcm.getInstance().blockBreakSimulate(block, player, plugin)){
&& mcm.blockBreakSimulate(block, player, plugin)){
mcWoodCutting.getInstance().treeFeller(block, player);
mcWoodCutting.treeFeller(block, player);
for(Block blockx : mcConfig.getInstance().getTreeFeller()){
if(blockx != null){
Material mat = Material.getMaterial(block.getTypeId());
@ -119,7 +119,7 @@ public class mcBlockListener extends BlockListener {
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
//XP WOODCUTTING
if(!mcConfig.getInstance().isBlockWatched(block)){
mcWoodCutting.getInstance().woodCuttingProcCheck(player, blockx);
mcWoodCutting.woodCuttingProcCheck(player, blockx);
PP.addWoodcuttingXP(7);
}
}
@ -133,7 +133,7 @@ public class mcBlockListener extends BlockListener {
}
}
if(mcLoadProperties.toolsLoseDurabilityFromAbilities)
mcm.getInstance().damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
mcm.damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
mcConfig.getInstance().clearTreeFeller();
}
}
@ -141,15 +141,15 @@ public class mcBlockListener extends BlockListener {
* EXCAVATION
*/
if(mcPermissions.getInstance().excavation(player) && block.getData() != (byte) 5)
mcExcavation.getInstance().excavationProcCheck(block, player);
mcExcavation.excavationProcCheck(block, player);
/*
* HERBALISM
*/
if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalism(player) && mcHerbalism.getInstance().canBeGreenTerra(block)){
mcHerbalism.getInstance().greenTerraCheck(player, block, plugin);
if(PP.getHoePreparationMode() && mcPermissions.getInstance().herbalism(player) && mcHerbalism.canBeGreenTerra(block)){
mcHerbalism.greenTerraCheck(player, block, plugin);
}
if(mcPermissions.getInstance().herbalism(player) && block.getData() != (byte) 5)
mcHerbalism.getInstance().herbalismProcCheck(block, player, event);
mcHerbalism.herbalismProcCheck(block, player, event);
//Change the byte back when broken
if(block.getData() == 5)
@ -165,41 +165,41 @@ public class mcBlockListener extends BlockListener {
/*
* Check if the Timer is doing its job
*/
mcSkills.getInstance().monitorSkills(player);
mcSkills.monitorSkills(player);
/*
* ABILITY PREPARATION CHECKS
*/
if(PP.getHoePreparationMode() && mcHerbalism.getInstance().canBeGreenTerra(block))
mcHerbalism.getInstance().greenTerraCheck(player, block, plugin);
if(PP.getHoePreparationMode() && mcHerbalism.canBeGreenTerra(block))
mcHerbalism.greenTerraCheck(player, block, plugin);
if(PP.getAxePreparationMode() && block.getTypeId() == 17)
mcWoodCutting.getInstance().treeFellerCheck(player, block, plugin);
mcWoodCutting.treeFellerCheck(player, block, plugin);
if(PP.getPickaxePreparationMode())
mcMining.getInstance().superBreakerCheck(player, block, plugin);
if(PP.getShovelPreparationMode() && mcExcavation.getInstance().canBeGigaDrillBroken(block))
mcExcavation.getInstance().gigaDrillBreakerActivationCheck(player, block, plugin);
if(PP.getFistsPreparationMode() && mcExcavation.getInstance().canBeGigaDrillBroken(block))
mcSkills.getInstance().berserkActivationCheck(player, plugin);
mcMining.superBreakerCheck(player, block, plugin);
if(PP.getShovelPreparationMode() && mcExcavation.canBeGigaDrillBroken(block))
mcExcavation.gigaDrillBreakerActivationCheck(player, block, plugin);
if(PP.getFistsPreparationMode() && mcExcavation.canBeGigaDrillBroken(block))
mcSkills.berserkActivationCheck(player, plugin);
/*
* GREEN TERRA STUFF
*/
if(PP.getGreenTerraMode() && mcPermissions.getInstance().herbalismAbility(player) && PP.getGreenTerraMode()){
mcHerbalism.getInstance().greenTerra(player, block);
mcHerbalism.greenTerra(player, block);
}
/*
* GIGA DRILL BREAKER CHECKS
*/
if(PP.getGigaDrillBreakerMode()
&& mcm.getInstance().blockBreakSimulate(block, player, plugin)
&& mcExcavation.getInstance().canBeGigaDrillBroken(block)
&& mcm.getInstance().isShovel(inhand)){
&& mcm.blockBreakSimulate(block, player, plugin)
&& mcExcavation.canBeGigaDrillBroken(block)
&& mcm.isShovel(inhand)){
if(mcm.getInstance().getTier(player) >= 2)
mcExcavation.getInstance().excavationProcCheck(block, player);
if(mcm.getInstance().getTier(player) >= 3)
mcExcavation.getInstance().excavationProcCheck(block, player);
if(mcm.getInstance().getTier(player) >= 4)
mcExcavation.getInstance().excavationProcCheck(block, player);
if(mcm.getTier(player) >= 2)
mcExcavation.excavationProcCheck(block, player);
if(mcm.getTier(player) >= 3)
mcExcavation.excavationProcCheck(block, player);
if(mcm.getTier(player) >= 4)
mcExcavation.excavationProcCheck(block, player);
Material mat = Material.getMaterial(block.getTypeId());
if(block.getTypeId() == 2)
mat = Material.DIRT;
@ -207,16 +207,16 @@ public class mcBlockListener extends BlockListener {
ItemStack item = new ItemStack(mat, 1, (byte)0, type);
block.setType(Material.AIR);
if(mcLoadProperties.toolsLoseDurabilityFromAbilities)
mcm.getInstance().damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
mcm.damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
}
/*
* BERSERK MODE CHECKS
*/
if(PP.getBerserkMode()
&& mcm.getInstance().blockBreakSimulate(block, player, plugin)
&& mcm.blockBreakSimulate(block, player, plugin)
&& player.getItemInHand().getTypeId() == 0
&& mcExcavation.getInstance().canBeGigaDrillBroken(block)){
&& mcExcavation.canBeGigaDrillBroken(block)){
Material mat = Material.getMaterial(block.getTypeId());
if(block.getTypeId() == 2)
mat = Material.DIRT;
@ -230,14 +230,14 @@ public class mcBlockListener extends BlockListener {
* SUPER BREAKER CHECKS
*/
if(PP.getSuperBreakerMode()
&& mcMining.getInstance().canBeSuperBroken(block)
&& mcm.getInstance().blockBreakSimulate(block, player, plugin)){
&& mcMining.canBeSuperBroken(block)
&& mcm.blockBreakSimulate(block, player, plugin)){
if(mcLoadProperties.miningrequirespickaxe){
if(mcm.getInstance().isMiningPick(inhand))
mcMining.getInstance().SuperBreakerBlockCheck(player, block);
if(mcm.isMiningPick(inhand))
mcMining.SuperBreakerBlockCheck(player, block);
} else {
mcMining.getInstance().SuperBreakerBlockCheck(player, block);
mcMining.SuperBreakerBlockCheck(player, block);
}
}

View File

@ -26,14 +26,7 @@ public class mcCombat {
public mcCombat(mcMMO instance) {
plugin = instance;
}
private static volatile mcCombat instance;
public static mcCombat getInstance() {
if (instance == null) {
instance = new mcCombat(plugin);
}
return instance;
}
public void playerVersusPlayerChecks(Entity x, Player attacker, EntityDamageByEntityEvent event){
public static void playerVersusPlayerChecks(Entity x, Player attacker, EntityDamageByEntityEvent event){
if(x instanceof Player){
if(mcLoadProperties.pvp == false){
event.setCancelled(true);
@ -92,37 +85,39 @@ public class mcCombat {
if(attacker != null && defender != null && mcLoadProperties.pvpxp){
if(PPd.inParty() && PPa.inParty() && mcParty.getInstance().inSameParty(attacker, defender))
return;
if(mcm.getInstance().isAxes(attacker.getItemInHand()))
if(System.currentTimeMillis() >= PPd.getRespawnATS() + 5000 && defender.getHealth() >= 1){
if(mcm.isAxes(attacker.getItemInHand()))
PPa.addAxesXP((event.getDamage() * 3) * mcLoadProperties.pvpxprewardmodifier);
if(mcm.getInstance().isSwords(attacker.getItemInHand()))
if(mcm.isSwords(attacker.getItemInHand()))
PPa.addSwordsXP((event.getDamage() * 3) * mcLoadProperties.pvpxprewardmodifier);
if(attacker.getItemInHand().getTypeId() == 0)
PPa.addUnarmedXP((event.getDamage() * 3) * mcLoadProperties.pvpxprewardmodifier);
}
}
/*
* CHECK FOR LEVEL UPS
*/
mcSkills.getInstance().XpCheck(attacker);
mcSkills.XpCheck(attacker);
}
}
public void playerVersusSquidChecks(EntityDamageByEntityEvent event, Player attacker, Entity x, int type){
public static void playerVersusSquidChecks(EntityDamageByEntityEvent event, Player attacker, Entity x, int type){
PlayerProfile PPa = mcUsers.getProfile(attacker.getName());
if(x instanceof Squid){
if(!mcConfig.getInstance().isBleedTracked(x)){
bleedCheck(attacker, x);
}
Squid defender = (Squid)event.getEntity();
if(mcm.getInstance().isSwords(attacker.getItemInHand()) && defender.getHealth() > 0 && mcPermissions.getInstance().swords(attacker)){
if(mcm.isSwords(attacker.getItemInHand()) && defender.getHealth() > 0 && mcPermissions.getInstance().swords(attacker)){
PPa.addSwordsXP(10 * mcLoadProperties.xpGainMultiplier);
}
mcSkills.getInstance().XpCheck(attacker);
if(mcm.getInstance().isAxes(attacker.getItemInHand())
mcSkills.XpCheck(attacker);
if(mcm.isAxes(attacker.getItemInHand())
&& defender.getHealth() > 0
&& mcPermissions.getInstance().axes(attacker)){
PPa.addAxesXP(10 * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(attacker);
mcSkills.XpCheck(attacker);
}
if(mcm.getInstance().isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(mcm.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(PPa.getAxesInt() >= 500){
event.setDamage(calculateDamage(event, 4));
}
@ -145,19 +140,19 @@ public class mcCombat {
//XP
if(defender.getHealth() != 0){
PPa.addUnarmedXP(10 * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(attacker);
mcSkills.XpCheck(attacker);
}
}
}
}
public void playerVersusAnimalsChecks(Entity x, Player attacker, EntityDamageByEntityEvent event, int type){
public static void playerVersusAnimalsChecks(Entity x, Player attacker, EntityDamageByEntityEvent event, int type){
PlayerProfile PPa = mcUsers.getProfile(attacker.getName());
if(x instanceof Animals){
if(!mcConfig.getInstance().isBleedTracked(x)){
bleedCheck(attacker, x);
}
Animals defender = (Animals)event.getEntity();
if(mcm.getInstance().isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(mcm.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(defender.getHealth() <= 0)
return;
if(PPa.getAxesInt() >= 500){
@ -175,7 +170,7 @@ public class mcCombat {
}
}
}
public void playerVersusMonsterChecks(EntityDamageByEntityEvent event, Player attacker, Entity x, int type){
public static void playerVersusMonsterChecks(EntityDamageByEntityEvent event, Player attacker, Entity x, int type){
PlayerProfile PPa = mcUsers.getProfile(attacker.getName());
if(x instanceof Monster){
/*
@ -186,7 +181,7 @@ public class mcCombat {
bleedCheck(attacker, x);
}
Monster defender = (Monster)event.getEntity();
if(mcm.getInstance().isSwords(attacker.getItemInHand())
if(mcm.isSwords(attacker.getItemInHand())
&& defender.getHealth() > 0
&& mcPermissions.getInstance().swords(attacker)){
if(!mcConfig.getInstance().isMobSpawnTracked(x)){
@ -201,9 +196,9 @@ public class mcCombat {
if(x instanceof PigZombie)
PPa.addSwordsXP((event.getDamage() * 3) * mcLoadProperties.xpGainMultiplier);
}
mcSkills.getInstance().XpCheck(attacker);
mcSkills.XpCheck(attacker);
}
if(mcm.getInstance().isAxes(attacker.getItemInHand())
if(mcm.isAxes(attacker.getItemInHand())
&& defender.getHealth() > 0
&& mcPermissions.getInstance().axes(attacker)){
if(!mcConfig.getInstance().isMobSpawnTracked(x)){
@ -218,12 +213,12 @@ public class mcCombat {
if(x instanceof PigZombie)
PPa.addAxesXP((event.getDamage() * 3) * mcLoadProperties.xpGainMultiplier);
}
mcSkills.getInstance().XpCheck(attacker);
mcSkills.XpCheck(attacker);
}
/*
* AXE DAMAGE SCALING && LOOT CHECKS
*/
if(mcm.getInstance().isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(mcm.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(PPa.getAxesInt() >= 500){
event.setDamage(calculateDamage(event, 4));
}
@ -253,11 +248,11 @@ public class mcCombat {
if(x instanceof PigZombie)
PPa.addUnarmedXP((event.getDamage() * 3) * mcLoadProperties.xpGainMultiplier);
}
mcSkills.getInstance().XpCheck(attacker);
mcSkills.XpCheck(attacker);
}
}
}
public void archeryCheck(EntityDamageByProjectileEvent event){
public static void archeryCheck(EntityDamageByProjectileEvent event){
Entity y = event.getDamager();
Entity x = event.getEntity();
if(event.getProjectile().toString().equals("CraftArrow") && x instanceof Player){
@ -450,10 +445,10 @@ public class mcCombat {
event.setDamage(calculateDamage(event, 5));
}
}
mcSkills.getInstance().XpCheck(attacker);
mcSkills.XpCheck(attacker);
}
}
public boolean simulateUnarmedProc(Player player){
public static boolean simulateUnarmedProc(Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(PP.getUnarmedInt() >= 1000){
if(Math.random() * 4000 <= 1000){
@ -466,9 +461,9 @@ public class mcCombat {
}
return false;
}
public void bleedCheck(Player attacker, Entity x){
public static void bleedCheck(Player attacker, Entity x){
PlayerProfile PPa = mcUsers.getProfile(attacker.getName());
if(mcPermissions.getInstance().swords(attacker) && mcm.getInstance().isSwords(attacker.getItemInHand())){
if(mcPermissions.getInstance().swords(attacker) && mcm.isSwords(attacker.getItemInHand())){
if(PPa.getSwordsInt() >= 750){
if(Math.random() * 1000 >= 750){
if(!(x instanceof Player))
@ -490,10 +485,10 @@ public class mcCombat {
}
}
}
public int calculateDamage(EntityDamageEvent event, int dmg){
public static int calculateDamage(EntityDamageEvent event, int dmg){
return event.getDamage() + dmg;
}
public void dealDamage(Entity target, int dmg){
public static void dealDamage(Entity target, int dmg){
if(target instanceof Player){
((Player) target).damage(dmg);
}
@ -504,11 +499,11 @@ public class mcCombat {
((Monster) target).damage(dmg);
}
}
public void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Entity x){
public static void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Entity x){
int targets = 0;
targets = mcm.getInstance().getTier(attacker);
targets = mcm.getTier(attacker);
for(Entity derp : x.getWorld().getEntities()){
if(mcm.getInstance().getDistance(x.getLocation(), derp.getLocation()) < 5){
if(mcm.getDistance(x.getLocation(), derp.getLocation()) < 5){
if(derp instanceof Player){
Player target = (Player)derp;
if(mcParty.getInstance().inSameParty(attacker, target))
@ -535,11 +530,11 @@ public class mcCombat {
}
}
}
public void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, Entity x){
public static void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, Entity x){
int targets = 0;
targets = mcm.getInstance().getTier(attacker);
targets = mcm.getTier(attacker);
for(Entity derp : x.getWorld().getEntities()){
if(mcm.getInstance().getDistance(x.getLocation(), derp.getLocation()) < 5){
if(mcm.getDistance(x.getLocation(), derp.getLocation()) < 5){
if(derp instanceof Player){
Player target = (Player)derp;
if(mcParty.getInstance().inSameParty(attacker, target))
@ -569,12 +564,12 @@ public class mcCombat {
targets--;
}
}
//attacker.sendMessage(ChatColor.GREEN+"**SERRATED STRIKES HIT "+(mcm.getInstance().getTier(attacker)-targets)+" FOES**");
//attacker.sendMessage(ChatColor.GREEN+"**SERRATED STRIKES HIT "+(mcm.getTier(attacker)-targets)+" FOES**");
}
}
public void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Entity x){
public static void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Entity x){
PlayerProfile PPa = mcUsers.getProfile(attacker.getName());
if(mcm.getInstance().isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(mcm.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(PPa.getAxesInt() >= 750){
if(Math.random() * 1000 <= 750){
if(x instanceof Player){
@ -602,9 +597,9 @@ public class mcCombat {
}
}
}
public void parryCheck(Player defender, EntityDamageByEntityEvent event, Entity y){
public static void parryCheck(Player defender, EntityDamageByEntityEvent event, Entity y){
PlayerProfile PPd = mcUsers.getProfile(defender.getName());
if(defender != null && mcm.getInstance().isSwords(defender.getItemInHand())
if(defender != null && mcm.isSwords(defender.getItemInHand())
&& mcPermissions.getInstance().swords(defender)){
if(PPd.getSwordsInt() >= 900){
if(Math.random() * 3000 <= 900){
@ -629,7 +624,7 @@ public class mcCombat {
}
}
}
public void bleedSimulate(){
public static void bleedSimulate(){
//Add items from Que list to BleedTrack list
for(Entity x : mcConfig.getInstance().getBleedQue()){
@ -652,7 +647,7 @@ public class mcCombat {
continue;
}
if(mcm.getInstance().getHealth(x) <= 0){
if(mcm.getHealth(x) <= 0){
continue;
}

View File

@ -36,7 +36,7 @@ public class mcEntityListener extends EntityListener {
public void onCreatureSpawn(CreatureSpawnEvent event) {
Location loc = event.getLocation();
Entity spawnee = event.getEntity();
if(mcm.getInstance().isBlockAround(loc, 5, 52)){
if(mcm.isBlockAround(loc, 5, 52)){
mcConfig.getInstance().addMobSpawnTrack(spawnee);
}
}
@ -90,7 +90,7 @@ public class mcEntityListener extends EntityListener {
/*
* PARRYING CHECK, CHECK TO SEE IF ITS A SUCCESSFUL PARRY OR NOT
*/
mcCombat.getInstance().parryCheck(defender, eventb, f);
mcCombat.parryCheck(defender, eventb, f);
}
/*
@ -98,7 +98,7 @@ public class mcEntityListener extends EntityListener {
*/
if(!event.isCancelled() && event instanceof EntityDamageByProjectileEvent && event.getDamage() >= 1){
EntityDamageByProjectileEvent c = (EntityDamageByProjectileEvent)event;
mcCombat.getInstance().archeryCheck(c);
mcCombat.archeryCheck(c);
}
/*
@ -117,18 +117,18 @@ public class mcEntityListener extends EntityListener {
/*
* Check if the Timer is doing its job
*/
mcSkills.getInstance().monitorSkills(attacker);
mcSkills.monitorSkills(attacker);
PlayerProfile PPa = mcUsers.getProfile(attacker.getName());
/*
* ACTIVATE ABILITIES
*/
if(PPa.getAxePreparationMode())
mcSkills.getInstance().skullSplitterCheck(attacker, plugin);
mcSkills.skullSplitterCheck(attacker, plugin);
if(PPa.getSwordsPreparationMode())
mcSkills.getInstance().serratedStrikesActivationCheck(attacker, plugin);
mcSkills.serratedStrikesActivationCheck(attacker, plugin);
if(PPa.getFistsPreparationMode())
mcSkills.getInstance().berserkActivationCheck(attacker, plugin);
mcSkills.berserkActivationCheck(attacker, plugin);
/*
* BERSERK DAMAGE MODIFIER
*/
@ -137,29 +137,29 @@ public class mcEntityListener extends EntityListener {
/*
* Player versus Monster checks, this handles all skill damage modifiers and any procs.
*/
mcCombat.getInstance().playerVersusMonsterChecks(eventb, attacker, e, typeid);
mcCombat.playerVersusMonsterChecks(eventb, attacker, e, typeid);
/*
* Player versus Squid checks, this handles all skill damage modifiers and any procs.
*/
mcCombat.getInstance().playerVersusSquidChecks(eventb, attacker, e, typeid);
mcCombat.playerVersusSquidChecks(eventb, attacker, e, typeid);
/*
* Player versus Player checks, these checks make sure players are not in the same party, etc. They also check for any procs from skills and handle damage modifiers.
*/
if(mcm.getInstance().isPvpEnabled())
mcCombat.getInstance().playerVersusPlayerChecks(e, attacker, eventb);
if(mcm.isPvpEnabled())
mcCombat.playerVersusPlayerChecks(e, attacker, eventb);
/*
* Player versus Animals checks, these checks handle any skill modifiers or procs
*/
mcCombat.getInstance().playerVersusAnimalsChecks(e, attacker, eventb, typeid);
mcCombat.playerVersusAnimalsChecks(e, attacker, eventb, typeid);
/*
* This will do AOE damage from the axes ability
*/
if(!event.isCancelled() && PPa.getSkullSplitterMode() && mcm.getInstance().isAxes(attacker.getItemInHand())){
mcCombat.getInstance().applyAoeDamage(attacker, eventb, x);
if(!event.isCancelled() && PPa.getSkullSplitterMode() && mcm.isAxes(attacker.getItemInHand())){
mcCombat.applyAoeDamage(attacker, eventb, x);
}
if(!event.isCancelled() && PPa.getSerratedStrikesMode() && mcm.getInstance().isSwords(attacker.getItemInHand())){
mcCombat.getInstance().applySerratedStrikes(attacker, eventb, x);
if(!event.isCancelled() && PPa.getSerratedStrikesMode() && mcm.isSwords(attacker.getItemInHand())){
mcCombat.applySerratedStrikes(attacker, eventb, x);
}
}
/*
@ -179,7 +179,7 @@ public class mcEntityListener extends EntityListener {
* COUNTER ATTACK STUFF
*/
if(mcPermissions.getInstance().swords(defender)
&& mcm.getInstance().isSwords(defender.getItemInHand())){
&& mcm.isSwords(defender.getItemInHand())){
boolean isArrow = false;
if (event instanceof EntityDamageByProjectileEvent) {
final EntityDamageByProjectileEvent realEvent =
@ -190,13 +190,13 @@ public class mcEntityListener extends EntityListener {
//defender.sendMessage("isArrow ="+isArrow);
if(PPd.getSwordsInt() >= 600){
if(Math.random() * 2000 <= 600){
mcCombat.getInstance().dealDamage(f, event.getDamage() / 2);
mcCombat.dealDamage(f, event.getDamage() / 2);
defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
if(f instanceof Player)
((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
}
} else if (Math.random() * 2000 <= PPd.getSwordsInt()){
mcCombat.getInstance().dealDamage(f, event.getDamage() / 2);
mcCombat.dealDamage(f, event.getDamage() / 2);
defender.sendMessage(ChatColor.GREEN+"**COUNTER-ATTACKED**");
if(f instanceof Player)
((Player) f).sendMessage(ChatColor.DARK_RED+"Hit with counterattack!");
@ -210,8 +210,10 @@ public class mcEntityListener extends EntityListener {
if(PPd.getAcrobaticsInt() <= 800){
if(Math.random() * 4000 <= PPd.getAcrobaticsInt()){
defender.sendMessage(ChatColor.GREEN+"**DODGE**");
if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){
PPd.addAcrobaticsXP(event.getDamage() * 12);
mcSkills.getInstance().XpCheck(defender);
mcSkills.XpCheck(defender);
}
event.setDamage(event.getDamage() / 2);
//Needs to do minimal damage
if(event.getDamage() <= 0)
@ -219,8 +221,10 @@ public class mcEntityListener extends EntityListener {
}
} else if(Math.random() * 4000 <= 800) {
defender.sendMessage(ChatColor.GREEN+"**DODGE**");
if(System.currentTimeMillis() >= 5000 + PPd.getRespawnATS() && defender.getHealth() >= 1){
PPd.addAcrobaticsXP(event.getDamage() * 12);
mcSkills.getInstance().XpCheck(defender);
mcSkills.XpCheck(defender);
}
event.setDamage(event.getDamage() / 2);
//Needs to do minimal damage
if(event.getDamage() <= 0)
@ -233,7 +237,7 @@ public class mcEntityListener extends EntityListener {
*/
if(f instanceof Wolf){
Wolf theWolf = (Wolf)f;
if(mcTaming.getInstance().hasOwner(theWolf, plugin)){
if(mcTaming.hasOwner(theWolf, plugin) && mcTaming.getInstance().getOwner(theWolf, plugin) != null){
Player wolfMaster = mcTaming.getInstance().getOwner(theWolf, plugin);
if(!event.isCancelled()){
mcUsers.getProfile(wolfMaster.getName()).addXpToSkill(event.getDamage(), "Taming");
@ -262,7 +266,7 @@ public class mcEntityListener extends EntityListener {
if(mcConfig.getInstance().isBleedTracked(x))
mcConfig.getInstance().addToBleedRemovalQue(x);
mcSkills.getInstance().arrowRetrievalCheck(x);
mcSkills.arrowRetrievalCheck(x);
if(mcConfig.getInstance().isMobSpawnTracked(x)){
mcConfig.getInstance().removeMobSpawnTrack(x);
}

View File

@ -16,18 +16,11 @@ public class mcExcavation {
public mcExcavation(mcMMO instance) {
plugin = instance;
}
private static volatile mcExcavation instance;
public static mcExcavation getInstance() {
if (instance == null) {
instance = new mcExcavation(plugin);
}
return instance;
}
public void gigaDrillBreakerActivationCheck(Player player, Block block, Plugin pluginx){
public static void gigaDrillBreakerActivationCheck(Player player, Block block, Plugin pluginx){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(mcm.getInstance().isShovel(player.getItemInHand())){
if(mcm.isShovel(player.getItemInHand())){
if(block != null){
if(!mcm.getInstance().abilityBlockCheck(block))
if(!mcm.abilityBlockCheck(block))
return;
}
if(PP.getShovelPreparationMode()){
@ -43,7 +36,7 @@ public class mcExcavation {
if(!PP.getGigaDrillBreakerMode() && PP.getGigaDrillBreakerCooldown() == 0){
player.sendMessage(ChatColor.GREEN+"**GIGA DRILL BREAKER ACTIVATED**");
for(Player y : pluginx.getServer().getOnlinePlayers()){
if(y != null && y != player && mcm.getInstance().getDistance(player.getLocation(), y.getLocation()) < 10)
if(y != null && y != player && mcm.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Giga Drill Breaker!");
}
PP.setGigaDrillBreakerTicks(ticks * 1000);
@ -53,7 +46,7 @@ public class mcExcavation {
}
}
public boolean canBeGigaDrillBroken(Block block){
public static boolean canBeGigaDrillBroken(Block block){
int i = block.getTypeId();
if(i == 2||i == 3||i == 12||i == 13){
return true;
@ -61,7 +54,7 @@ public class mcExcavation {
return false;
}
}
public void excavationProcCheck(Block block, Player player){
public static void excavationProcCheck(Block block, Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
int type = block.getTypeId();
Location loc = block.getLocation();
@ -205,6 +198,6 @@ public class mcExcavation {
}
}
}
mcSkills.getInstance().XpCheck(player);
mcSkills.XpCheck(player);
}
}

View File

@ -18,14 +18,8 @@ public class mcHerbalism {
public mcHerbalism(mcMMO instance) {
plugin = instance;
}
private static volatile mcHerbalism instance;
public static mcHerbalism getInstance() {
if (instance == null) {
instance = new mcHerbalism(plugin);
}
return instance;
}
public void greenTerraWheat(Player player, Block block, BlockBreakEvent event){
public static void greenTerraWheat(Player player, Block block, BlockBreakEvent event){
if(block.getType() == Material.WHEAT && block.getData() == (byte) 0x07){
event.setCancelled(true);
PlayerProfile PP = mcUsers.getProfile(player.getName());
@ -39,7 +33,7 @@ public class mcHerbalism {
block.setData((byte) 0x03);
}
}
public void greenTerra(Player player, Block block){
public static void greenTerra(Player player, Block block){
if(block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT){
if(!hasSeeds(player))
player.sendMessage("You need more seeds to spread Green Terra");
@ -52,7 +46,7 @@ public class mcHerbalism {
}
}
}
public Boolean canBeGreenTerra(Block block){
public static Boolean canBeGreenTerra(Block block){
int t = block.getTypeId();
if(t == 4 || t == 3 || t == 59 || t == 81 || t == 83 || t == 91 || t == 86 || t == 39 || t == 46 || t == 37 || t == 38){
return true;
@ -60,7 +54,7 @@ public class mcHerbalism {
return false;
}
}
public boolean hasSeeds(Player player){
public static boolean hasSeeds(Player player){
ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 295){
@ -69,7 +63,7 @@ public class mcHerbalism {
}
return false;
}
public void removeSeeds(Player player){
public static void removeSeeds(Player player){
ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 295){
@ -85,11 +79,11 @@ public class mcHerbalism {
}
}
}
public void greenTerraCheck(Player player, Block block, Plugin pluginx){
public static void greenTerraCheck(Player player, Block block, Plugin pluginx){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(mcm.getInstance().isHoe(player.getItemInHand())){
if(mcm.isHoe(player.getItemInHand())){
if(block != null){
if(!mcm.getInstance().abilityBlockCheck(block))
if(!mcm.abilityBlockCheck(block))
return;
}
if(PP.getHoePreparationMode()){
@ -102,10 +96,10 @@ public class mcHerbalism {
ticks++;
}
if(!PP.getGreenTerraMode() && mcSkills.getInstance().cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), mcLoadProperties.greenTerraCooldown)){
if(!PP.getGreenTerraMode() && mcSkills.cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), mcLoadProperties.greenTerraCooldown)){
player.sendMessage(ChatColor.GREEN+"**GREEN TERRA ACTIVATED**");
for(Player y : pluginx.getServer().getOnlinePlayers()){
if(y != null && y != player && mcm.getInstance().getDistance(player.getLocation(), y.getLocation()) < 10)
if(y != null && y != player && mcm.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Green Terra!");
}
PP.setGreenTerraTicks(ticks * 1000);
@ -115,7 +109,7 @@ public class mcHerbalism {
}
}
public void herbalismProcCheck(Block block, Player player, BlockBreakEvent event){
public static void herbalismProcCheck(Block block, Player player, BlockBreakEvent event){
PlayerProfile PP = mcUsers.getProfile(player.getName());
int type = block.getTypeId();
Location loc = block.getLocation();
@ -218,9 +212,9 @@ public class mcHerbalism {
PP.addHerbalismXP(10 * mcLoadProperties.xpGainMultiplier);
}
}
mcSkills.getInstance().XpCheck(player);
mcSkills.XpCheck(player);
}
public void breadCheck(Player player, ItemStack is){
public static void breadCheck(Player player, ItemStack is){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(is.getTypeId() == 297){
if(PP.getHerbalismInt() >= 50 && PP.getHerbalismInt() < 150){
@ -242,7 +236,7 @@ public class mcHerbalism {
}
}
}
public void stewCheck(Player player, ItemStack is){
public static void stewCheck(Player player, ItemStack is){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(is.getTypeId() == 282){
if(PP.getHerbalismInt() >= 50 && PP.getHerbalismInt() < 150){

View File

@ -12,29 +12,19 @@ import com.gmail.nossr50.PlayerList.PlayerProfile;
public class mcItem {
private static mcMMO plugin;
public mcItem(mcMMO instance) {
plugin = instance;
}
private static volatile mcItem instance;
public static mcItem getInstance() {
if (instance == null) {
instance = new mcItem(plugin);
}
return instance;
}
public void itemChecks(Player player, Plugin pluginx){
public static void itemChecks(Player player, Plugin plugin){
ItemStack inhand = player.getItemInHand();
if(inhand.getTypeId() == 288){
chimaerawing(player, pluginx);
chimaerawing(player, plugin);
}
}
public void chimaerawing(Player player, Plugin pluginx){
public static void chimaerawing(Player player, Plugin plugin){
PlayerProfile PP = mcUsers.getProfile(player.getName());
ItemStack is = player.getItemInHand();
Block block = player.getLocation().getBlock();
if(mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == 288){
if(mcSkills.getInstance().cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= mcLoadProperties.feathersConsumedByChimaeraWing){
if(mcSkills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= mcLoadProperties.feathersConsumedByChimaeraWing){
Block derp = player.getLocation().getBlock();
int y = derp.getY();
ItemStack[] inventory = player.getInventory().getContents();
@ -66,8 +56,8 @@ public class mcItem {
}
if(PP.getMySpawn(player) != null){
Location mySpawn = PP.getMySpawn(player);
if(mySpawn != null && pluginx.getServer().getWorld(PP.getMySpawnWorld(pluginx)) != null)
mySpawn.setWorld(pluginx.getServer().getWorld(PP.getMySpawnWorld(pluginx)));
if(mySpawn != null && plugin.getServer().getWorld(PP.getMySpawnWorld(plugin)) != null)
mySpawn.setWorld(plugin.getServer().getWorld(PP.getMySpawnWorld(plugin)));
if(mySpawn != null){
player.teleportTo(mySpawn);//Do it twice to prevent weird stuff
player.teleportTo(mySpawn);
@ -76,9 +66,9 @@ public class mcItem {
player.teleportTo(player.getWorld().getSpawnLocation());
}
player.sendMessage("**CHIMAERA WING**");
} else if (!mcSkills.getInstance().cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= 10) {
} else if (!mcSkills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= 10) {
player.sendMessage("You were injured recently and must wait to use this."
+ChatColor.YELLOW+" ("+mcSkills.getInstance().calculateTimeLeft(player, PP.getRecentlyHurt(), 60)+"s)");
+ChatColor.YELLOW+" ("+mcSkills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)+"s)");
} else if (is.getTypeId() == 288 && is.getAmount() <= 9){
player.sendMessage("You need more of that to use it");
}

View File

@ -0,0 +1,237 @@
package com.gmail.nossr50;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class mcLeaderboard {
static String location = "plugins/mcMMO/mcmmo.users";
protected static final Logger log = Logger.getLogger("Minecraft");
/*
* Read from the file
*/
public static void makeLeaderboards(){
//Make Trees
Tree Mining = new Tree();
Tree WoodCutting = new Tree();
Tree Herbalism = new Tree();
Tree Excavation = new Tree();
Tree Acrobatics = new Tree();
Tree Repair = new Tree();
Tree Swords = new Tree();
Tree Axes = new Tree();
Tree Archery = new Tree();
Tree Unarmed = new Tree();
Tree Taming = new Tree();
Tree PowerLevel = new Tree();
//Add Data To Trees
try {
//Open the user file
FileReader file = new FileReader(location);
BufferedReader in = new BufferedReader(file);
String line = "";
while((line = in.readLine()) != null)
{
String[] character = line.split(":");
String p = character[0];
int Plvl = 0;
if(character.length > 1 && isInt(character[1]))
{
Mining.add(p, Integer.valueOf(character[1]));
Plvl += Integer.valueOf(character[1]);
}
if(character.length > 5 && isInt(character[5])){
WoodCutting.add(p, Integer.valueOf(character[5]));
Plvl += Integer.valueOf(character[5]);
}
if(character.length > 7 && isInt(character[7])){
Repair.add(p, Integer.valueOf(character[7]));
Plvl += Integer.valueOf(character[7]);
}
if(character.length > 8 && isInt(character[8])){
Unarmed.add(p, Integer.valueOf(character[8]));
Plvl += Integer.valueOf(character[8]);
}
if(character.length > 9 && isInt(character[9])){
Herbalism.add(p, Integer.valueOf(character[9]));
Plvl += Integer.valueOf(character[9]);
}
if(character.length > 10 && isInt(character[10])){
Excavation.add(p, Integer.valueOf(character[10]));
Plvl += Integer.valueOf(character[10]);
}
if(character.length > 11 && isInt(character[11])){
Archery.add(p, Integer.valueOf(character[11]));
Plvl += Integer.valueOf(character[11]);
}
if(character.length > 12 && isInt(character[12])){
Swords.add(p, Integer.valueOf(character[12]));
Plvl += Integer.valueOf(character[12]);
}
if(character.length > 13 && isInt(character[13])){
Axes.add(p, Integer.valueOf(character[13]));
Plvl += Integer.valueOf(character[13]);
}
if(character.length > 14 && isInt(character[14])){
Acrobatics.add(p, Integer.valueOf(character[14]));
Plvl += Integer.valueOf(character[14]);
}
if(character.length > 24 && isInt(character[24])){
Taming.add(p, Integer.valueOf(character[24]));
Plvl += Integer.valueOf(character[24]);
}
PowerLevel.add(p, Plvl);
}
in.close();
} catch (Exception e) {
log.log(Level.SEVERE, "Exception while reading "
+ location + " (Are you sure you formatted it correctly?)", e);
}
//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");
}
public static void leaderWrite(PlayerStat[] ps, String statName)
{
String theLocation = "plugins/mcMMO/" + statName + ".mcmmo";
//CHECK IF THE FILE EXISTS
File theDir = new File(theLocation);
if(!theDir.exists()){
//properties = new PropertiesFile(location);
FileWriter writer = null;
try {
writer = new FileWriter(theLocation);
} catch (Exception e) {
log.log(Level.SEVERE, "Exception while creating " + theLocation, e);
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
log.log(Level.SEVERE, "Exception while closing writer for " + theLocation, e);
}
}
} else {
try {
FileReader file = new FileReader(theLocation);
//HERP
BufferedReader in = new BufferedReader(file);
StringBuilder writer = new StringBuilder();
String line = "";
for(PlayerStat p : ps)
{
writer.append(p.name + ":" + p.statVal);
writer.append("\r\n");
}
in.close();
//Write the new file
FileWriter out = new FileWriter(theLocation);
out.write(writer.toString());
out.close();
} catch (Exception e) {
log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e);
}
}
//Create/open the file
//Loop through backward writing each player
//Close the file
}
public static String[] retrieveInfo(String statName, int pagenumber){
String theLocation = "plugins/mcMMO/" + statName + ".mcmmo";
try {
FileReader file = new FileReader(theLocation);
BufferedReader in = new BufferedReader(file);
int destination = (pagenumber - 1) * 10; //How many lines to skip through
int x = 0; //how many lines we've gone through
int y = 0; //going through the lines
String line = "";
String[] info = new String[10]; //what to return
while((line = in.readLine()) != null && y < 10)
{
x++;
if(x >= destination && y < 10){
info[y] = line.toString();
y++;
}
}
in.close();
return info;
} catch (Exception e) {
log.log(Level.SEVERE, "Exception while reading "
+ theLocation + " (Are you sure you formatted it correctly?)", e);
}
return null; //Shouldn't get here
}
public static void updateLeaderboard(PlayerStat ps, String statName){
String theLocation = "plugins/mcMMO/" + statName + ".mcmmo";
try {
//Open the file
FileReader file = new FileReader(theLocation);
BufferedReader in = new BufferedReader(file);
StringBuilder writer = new StringBuilder();
String line = "";
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)
{
writer.append(ps.name + ":" + ps.statVal).append("\r\n");
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))
{
writer.append(line).append("\r\n");
}
}
if(!inserted)
{
writer.append(ps.name + ":" + ps.statVal).append("\r\n");
}
in.close();
//Write the new file
FileWriter out = new FileWriter(theLocation);
out.write(writer.toString());
out.close();
} catch (Exception e) {
log.log(Level.SEVERE, "Exception while writing to " + theLocation + " (Are you sure you formatted it correctly?)", e);
}
}
public static boolean isInt(String string){
try {
int x = Integer.parseInt(string);
}
catch(NumberFormatException nFE) {
return false;
}
return true;
}
}

View File

@ -2,7 +2,7 @@ package com.gmail.nossr50;
public class mcLoadProperties {
public static Boolean cocoabeans, archeryFireRateLimit, mushrooms, toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
public static String addxp, mcability, mcmmo, mcc, mcrefresh, mcitem, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn;
public static String mctop, addxp, mcability, mcmmo, mcc, mcrefresh, mcitem, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn;
public static int xpGainMultiplier, superBreakerCooldown, greenTerraCooldown, gigaDrillBreakerCooldown, treeFellerCooldown, berserkCooldown, serratedStrikeCooldown, skullSplitterCooldown, abilityDurabilityLoss, feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, tamingxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
public static void loadMain(){
@ -77,6 +77,7 @@ public class mcLoadProperties {
/*
* CUSTOM COMMANDS
*/
mctop = properties.getString("/mctop", "mctop");
addxp = properties.getString("/addxp", "addxp");
mcability = properties.getString("/mcability", "mcability");
mcrefresh = properties.getString("/mcrefresh", "mcrefresh");

View File

@ -84,6 +84,7 @@ public class mcMMO extends JavaPlugin {
PluginDescriptionFile pdfFile = this.getDescription();
mcPermissions.initialize(getServer());
mcLeaderboard.makeLeaderboards(); //Make the leaderboards
System.out.println( pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" );
}
public void setupPermissions() {
@ -118,7 +119,7 @@ public class mcMMO extends JavaPlugin {
public void addXp(Player player, String skillname, Integer newvalue){
PlayerProfile PP = mcUsers.getProfile(player.getName());
PP.addXpToSkill(newvalue, skillname);
mcSkills.getInstance().XpCheck(player);
mcSkills.XpCheck(player);
}
public void modifySkill(Player player, String skillname, Integer newvalue){
PlayerProfile PP = mcUsers.getProfile(player.getName());

View File

@ -15,20 +15,13 @@ public class mcMining {
private static mcMMO plugin;
public mcMining(mcMMO instance) {
plugin = instance;
}
private static volatile mcMining instance;
public static mcMining getInstance() {
if (instance == null) {
instance = new mcMining(plugin);
}
return instance;
}
public void superBreakerCheck(Player player, Block block, Plugin pluginx){
public static void superBreakerCheck(Player player, Block block, Plugin pluginx){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(mcm.getInstance().isMiningPick(player.getItemInHand())){
if(mcm.isMiningPick(player.getItemInHand())){
if(block != null){
if(!mcm.getInstance().abilityBlockCheck(block))
if(!mcm.abilityBlockCheck(block))
return;
}
if(PP.getPickaxePreparationMode()){
@ -41,10 +34,10 @@ public class mcMining {
ticks++;
}
if(!PP.getSuperBreakerMode() && mcSkills.getInstance().cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), mcLoadProperties.superBreakerCooldown)){
if(!PP.getSuperBreakerMode() && mcSkills.cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), mcLoadProperties.superBreakerCooldown)){
player.sendMessage(ChatColor.GREEN+"**SUPER BREAKER ACTIVATED**");
for(Player y : pluginx.getServer().getOnlinePlayers()){
if(y != null && y != player && mcm.getInstance().getDistance(player.getLocation(), y.getLocation()) < 10)
if(y != null && y != player && mcm.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Super Breaker!");
}
PP.setSuperBreakerTicks(ticks * 1000);
@ -54,7 +47,7 @@ public class mcMining {
}
}
public void blockProcSimulate(Block block){
public static void blockProcSimulate(Block block){
Location loc = block.getLocation();
Material mat = Material.getMaterial(block.getTypeId());
byte damage = 0;
@ -100,7 +93,7 @@ public class mcMining {
loc.getWorld().dropItemNaturally(loc, item);
}
}
public void blockProcCheck(Block block, Player player){
public static void blockProcCheck(Block block, Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(player != null){
if(Math.random() * 1000 <= PP.getMiningInt()){
@ -109,7 +102,7 @@ public class mcMining {
}
}
}
public void miningBlockCheck(Player player, Block block){
public static void miningBlockCheck(Player player, Block block){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(mcConfig.getInstance().isBlockWatched(block) || block.getData() == (byte) 5)
return;
@ -164,12 +157,12 @@ public class mcMining {
blockProcCheck(block, player);
}
PP.addMiningXP(xp * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(player);
mcSkills.XpCheck(player);
}
/*
* Handling SuperBreaker stuff
*/
public Boolean canBeSuperBroken(Block block){
public static Boolean canBeSuperBroken(Block block){
int t = block.getTypeId();
if(t == 49 || t == 87 || t == 89 || t == 73 || t == 74 || t == 56 || t == 21 || t == 1 || t == 16 || t == 14 || t == 15){
return true;
@ -177,10 +170,10 @@ public class mcMining {
return false;
}
}
public void SuperBreakerBlockCheck(Player player, Block block){
public static void SuperBreakerBlockCheck(Player player, Block block){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(mcLoadProperties.toolsLoseDurabilityFromAbilities)
mcm.getInstance().damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
mcm.damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
Location loc = block.getLocation();
Material mat = Material.getMaterial(block.getTypeId());
int xp = 0;
@ -238,7 +231,7 @@ public class mcMining {
block.setType(Material.AIR);
}
//GOLD
if(block.getTypeId() == 14 && mcm.getInstance().getTier(player) >= 3){
if(block.getTypeId() == 14 && mcm.getTier(player) >= 3){
if(!mcConfig.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
xp += 35;
blockProcCheck(block, player);
@ -249,9 +242,9 @@ public class mcMining {
block.setType(Material.AIR);
}
//OBSIDIAN
if(block.getTypeId() == 49 && mcm.getInstance().getTier(player) >= 4){
if(block.getTypeId() == 49 && mcm.getTier(player) >= 4){
if(mcLoadProperties.toolsLoseDurabilityFromAbilities)
mcm.getInstance().damageTool(player, (short) 104);
mcm.damageTool(player, (short) 104);
if(!mcConfig.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
xp += 15;
blockProcCheck(block, player);
@ -263,7 +256,7 @@ public class mcMining {
block.setType(Material.AIR);
}
//DIAMOND
if(block.getTypeId() == 56 && mcm.getInstance().getTier(player) >= 3){
if(block.getTypeId() == 56 && mcm.getTier(player) >= 3){
if(!mcConfig.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
xp += 75;
blockProcCheck(block, player);
@ -275,7 +268,7 @@ public class mcMining {
block.setType(Material.AIR);
}
//IRON
if(block.getTypeId() == 15 && mcm.getInstance().getTier(player) >= 2){
if(block.getTypeId() == 15 && mcm.getTier(player) >= 2){
if(!mcConfig.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
xp += 25;
blockProcCheck(block, player);
@ -286,7 +279,7 @@ public class mcMining {
block.setType(Material.AIR);
}
//REDSTONE
if((block.getTypeId() == 73 || block.getTypeId() == 74) && mcm.getInstance().getTier(player) >= 4){
if((block.getTypeId() == 73 || block.getTypeId() == 74) && mcm.getTier(player) >= 4){
if(!mcConfig.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
xp += 15;
blockProcCheck(block, player);
@ -303,7 +296,7 @@ public class mcMining {
block.setType(Material.AIR);
}
//LAPUS
if(block.getTypeId() == 21 && mcm.getInstance().getTier(player) >= 3){
if(block.getTypeId() == 21 && mcm.getTier(player) >= 3){
if(!mcConfig.getInstance().isBlockWatched(block)&& block.getData() != (byte) 5){
xp += 40;
blockProcCheck(block, player);
@ -319,6 +312,6 @@ public class mcMining {
}
if(block.getData() != (byte) 5)
PP.addMiningXP(xp * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(player);
mcSkills.XpCheck(player);
}
}

View File

@ -27,7 +27,7 @@ public class mcPermissions {
}
}
private boolean permission(Player player, String string) {
private static boolean permission(Player player, String string) {
return permissionsPlugin.Security.permission(player, string);
}
public boolean mcrefresh(Player player) {
@ -204,7 +204,7 @@ public class mcPermissions {
return true;
}
}
public boolean repair(Player player) {
public static boolean repair(Player player) {
if (permissionsEnabled) {
return permission(player, "mcmmo.skills.repair");
} else {

View File

@ -29,10 +29,12 @@ public class mcPlayerListener extends PlayerListener {
public mcPlayerListener(mcMMO instance) {
plugin = instance;
}
public void onPlayerRespawn(PlayerRespawnEvent event) {
Player player = event.getPlayer();
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(player != null){
PP.setRespawnATS(System.currentTimeMillis());
Location mySpawn = PP.getMySpawn(player);
if(mySpawn != null && plugin.getServer().getWorld(PP.getMySpawnWorld(plugin)) != null)
mySpawn.setWorld(plugin.getServer().getWorld(PP.getMySpawnWorld(plugin)));
@ -80,8 +82,8 @@ public class mcPlayerListener extends PlayerListener {
if(player.getItemInHand().getTypeId() == 261 && mcLoadProperties.archeryFireRateLimit){
if(System.currentTimeMillis() < PP.getArcheryShotATS() + 1000){
/*
if(mcm.getInstance().hasArrows(player))
mcm.getInstance().addArrows(player);
if(mcm.hasArrows(player))
mcm.addArrows(player);
*/
player.updateInventory();
event.setCancelled(true);
@ -104,22 +106,22 @@ public class mcPlayerListener extends PlayerListener {
}
}
if(block != null && player != null && mcPermissions.getInstance().repair(player) && event.getClickedBlock().getTypeId() == 42){
mcRepair.getInstance().repairCheck(player, is, event.getClickedBlock());
mcRepair.repairCheck(player, is, event.getClickedBlock());
}
if(mcm.getInstance().abilityBlockCheck(block))
if(mcm.abilityBlockCheck(block))
{
if(block != null && mcm.getInstance().isHoe(player.getItemInHand()) && block.getTypeId() != 3 && block.getTypeId() != 2 && block.getTypeId() != 60){
mcSkills.getInstance().hoeReadinessCheck(player);
if(block != null && mcm.isHoe(player.getItemInHand()) && block.getTypeId() != 3 && block.getTypeId() != 2 && block.getTypeId() != 60){
mcSkills.hoeReadinessCheck(player);
}
mcSkills.getInstance().abilityActivationCheck(player);
mcSkills.abilityActivationCheck(player);
}
//GREEN THUMB
if(block != null && (block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT) && player.getItemInHand().getType() == Material.SEEDS){
boolean pass = false;
if(mcHerbalism.getInstance().hasSeeds(player)){
mcHerbalism.getInstance().removeSeeds(player);
if(mcHerbalism.hasSeeds(player)){
mcHerbalism.removeSeeds(player);
if(block.getType() == Material.COBBLESTONE && Math.random() * 1500 <= PP.getHerbalismInt()){
player.sendMessage(ChatColor.GREEN+"**GREEN THUMB**");
block.setType(Material.MOSSY_COBBLESTONE);
@ -137,25 +139,25 @@ public class mcPlayerListener extends PlayerListener {
}
}
if(action == Action.RIGHT_CLICK_AIR){
mcSkills.getInstance().hoeReadinessCheck(player);
mcSkills.getInstance().abilityActivationCheck(player);
mcSkills.hoeReadinessCheck(player);
mcSkills.abilityActivationCheck(player);
/*
* HERBALISM MODIFIERS
*/
if(mcPermissions.getInstance().herbalism(player)){
mcHerbalism.getInstance().breadCheck(player, player.getItemInHand());
mcHerbalism.getInstance().stewCheck(player, player.getItemInHand());
mcHerbalism.breadCheck(player, player.getItemInHand());
mcHerbalism.stewCheck(player, player.getItemInHand());
}
}
/*
* ITEM CHECKS
*/
if(action == Action.RIGHT_CLICK_AIR)
mcItem.getInstance().itemChecks(player, plugin);
mcItem.itemChecks(player, plugin);
if(action == Action.RIGHT_CLICK_BLOCK){
if(mcm.getInstance().abilityBlockCheck(event.getClickedBlock()))
mcItem.getInstance().itemChecks(player, plugin);
if(mcm.abilityBlockCheck(event.getClickedBlock()))
mcItem.itemChecks(player, plugin);
}
}
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
@ -164,7 +166,7 @@ public class mcPlayerListener extends PlayerListener {
String[] split = event.getMessage().split(" ");
String playerName = player.getName();
//Check if the command is an mcMMO related help command
mcm.getInstance().mcmmoHelpCheck(split, player, event);
mcm.mcmmoHelpCheck(split, player, event);
if(mcPermissions.permissionsEnabled && split[0].equalsIgnoreCase("/"+mcLoadProperties.mcability)){
event.setCancelled(true);
if(PP.getAbilityUse()){
@ -175,6 +177,102 @@ public class mcPlayerListener extends PlayerListener {
PP.toggleAbilityUse();
}
}
/*
* LEADER BOARD COMMAND
*/
if(split[0].equalsIgnoreCase("/"+mcLoadProperties.mctop)){
event.setCancelled(true);
//Format: /mctop <skillname> <pagenumber>
/*
* POWER LEVEL INFO RETRIEVAL
*/
if(split.length == 1){
int p = 1;
String[] info = mcLeaderboard.retrieveInfo("powerlevel", p);
player.sendMessage(ChatColor.YELLOW+"--mcMMO"+ChatColor.BLUE+" Power Level "+ChatColor.YELLOW+"Leaderboard--");
int n = 1 * p; //Position
for(String x : info){
if(x != null){
String digit = String.valueOf(n);
if(n < 10)
digit ="0"+String.valueOf(n);
String[] splitx = x.split(":");
//Format: 1. Playername - skill value
player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);
n++;
}
}
}
if(split.length >= 2 && mcLeaderboard.isInt(split[1])){
int p = 1;
//Grab page value if specified
if(split.length >= 2){
if(mcLeaderboard.isInt(split[1])){
p = Integer.valueOf(split[1]);
}
}
int pt = p;
if(p > 1){
pt -= 1;
pt += (pt * 10);
pt = 10;
}
String[] info = mcLeaderboard.retrieveInfo("powerlevel", p);
player.sendMessage("--mcMMO Power Level Leaderboard--");
int n = 1 * pt; //Position
for(String x : info){
if(x != null){
String digit = String.valueOf(n);
if(n < 10)
digit ="0"+String.valueOf(n);
String[] splitx = x.split(":");
//Format: 1. Playername - skill value
player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);
n++;
}
}
}
/*
* SKILL SPECIFIED INFO RETRIEVAL
*/
if(split.length >= 2 && mcSkills.isSkill(split[1])){
int p = 1;
//Grab page value if specified
if(split.length >= 3){
if(mcLeaderboard.isInt(split[2])){
p = Integer.valueOf(split[2]);
}
}
int pt = p;
if(p > 1){
pt -= 1;
pt += (pt * 10);
pt = 10;
}
String firstLetter = split[1].substring(0,1); // Get first letter
String remainder = split[1].substring(1); // Get remainder of word.
String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
String[] info = mcLeaderboard.retrieveInfo(split[1].toLowerCase(), p);
player.sendMessage(ChatColor.YELLOW+"--mcMMO "+ChatColor.BLUE+capitalized+ChatColor.YELLOW+" Leaderboard--");
int n = 1 * pt; //Position
for(String x : info){
if(x != null){
String digit = String.valueOf(n);
if(n < 10)
digit ="0"+String.valueOf(n);
String[] splitx = x.split(":");
//Format: 1. Playername - skill value
player.sendMessage(digit+". "+ChatColor.GREEN+splitx[1]+" - "+ChatColor.WHITE+splitx[0]);
n++;
}
}
}
}
/*
if(split[0].equalsIgnoreCase("/mutechat")){
event.setCancelled(true);
@ -278,14 +376,14 @@ public class mcPlayerListener extends PlayerListener {
return;
}
if(split.length == 4){
if(isPlayer(split[1]) && mcm.getInstance().isInt(split[3]) && mcSkills.getInstance().isSkill(split[2])){
if(isPlayer(split[1]) && mcm.isInt(split[3]) && mcSkills.isSkill(split[2])){
int newvalue = Integer.valueOf(split[3]);
mcUsers.getProfile(getPlayer(split[1]).getName()).modifyskill(newvalue, split[2]);
player.sendMessage(ChatColor.RED+split[2]+" has been modified.");
}
}
else if(split.length == 3){
if(mcm.getInstance().isInt(split[2]) && mcSkills.getInstance().isSkill(split[1])){
if(mcm.isInt(split[2]) && mcSkills.isSkill(split[1])){
int newvalue = Integer.valueOf(split[2]);
PP.modifyskill(newvalue, split[1]);
player.sendMessage(ChatColor.RED+split[1]+" has been modified.");
@ -308,7 +406,7 @@ public class mcPlayerListener extends PlayerListener {
return;
}
if(split.length == 4){
if(isPlayer(split[1]) && mcm.getInstance().isInt(split[3]) && mcSkills.getInstance().isSkill(split[2])){
if(isPlayer(split[1]) && mcm.isInt(split[3]) && mcSkills.isSkill(split[2])){
int newvalue = Integer.valueOf(split[3]);
mcUsers.getProfile(getPlayer(split[1]).getName()).addXpToSkill(newvalue, split[2]);
getPlayer(split[1]).sendMessage(ChatColor.GREEN+"Experience granted!");
@ -316,7 +414,7 @@ public class mcPlayerListener extends PlayerListener {
}
}
else if(split.length == 3){
if(mcm.getInstance().isInt(split[2]) && mcSkills.getInstance().isSkill(split[1])){
if(mcm.isInt(split[2]) && mcSkills.isSkill(split[1])){
int newvalue = Integer.valueOf(split[2]);
PP.addXpToSkill(newvalue, split[1]);
player.sendMessage(ChatColor.RED+split[1]+" has been modified.");
@ -417,7 +515,7 @@ public class mcPlayerListener extends PlayerListener {
player.sendMessage(ChatColor.YELLOW + "Acrobatics Skill: " + ChatColor.GREEN + PPt.getAcrobatics()+ChatColor.DARK_AQUA
+ " XP("+PPt.getAcrobaticsXP()
+"/"+PPt.getXpToLevel("acrobatics")+")");
player.sendMessage(ChatColor.DARK_RED+"POWER LEVEL: "+ChatColor.GREEN+(mcm.getInstance().getPowerLevel(target)));
player.sendMessage(ChatColor.DARK_RED+"POWER LEVEL: "+ChatColor.GREEN+(mcm.getPowerLevel(target)));
player.sendMessage(ChatColor.GREEN+"~~COORDINATES~~");
player.sendMessage("X: "+x);
player.sendMessage("Y: "+y);
@ -477,7 +575,7 @@ public class mcPlayerListener extends PlayerListener {
player.sendMessage(ChatColor.YELLOW + "Acrobatics Skill: " + ChatColor.GREEN + PP.getAcrobatics()+ChatColor.DARK_AQUA
+ " XP("+PP.getAcrobaticsXP()
+"/"+PP.getXpToLevel("acrobatics")+")");
player.sendMessage(ChatColor.DARK_RED+"POWER LEVEL: "+ChatColor.GREEN+(mcm.getInstance().getPowerLevel(player)));
player.sendMessage(ChatColor.DARK_RED+"POWER LEVEL: "+ChatColor.GREEN+(mcm.getPowerLevel(player)));
}
//Invite Command
if(mcPermissions.getInstance().party(player) && split[0].equalsIgnoreCase("/"+mcLoadProperties.invite)){

View File

@ -14,19 +14,14 @@ public class mcRepair {
plugin = instance;
}
private static volatile mcRepair instance;
public static mcRepair getInstance() {
if (instance == null) {
instance = new mcRepair(plugin);
}
return instance;
}
public void repairCheck(Player player, ItemStack is, Block block){
public static void repairCheck(Player player, ItemStack is, Block block){
PlayerProfile PP = mcUsers.getProfile(player.getName());
short durabilityBefore = player.getItemInHand().getDurability();
short durabilityAfter = 0;
short dif = 0;
if(block != null
&& mcPermissions.getInstance().repair(player)){
&& mcPermissions.repair(player)){
if(player.getItemInHand().getDurability() > 0 && player.getItemInHand().getAmount() < 2){
/*
* ARMOR
@ -80,11 +75,11 @@ public class mcRepair {
player.getItemInHand().setDurability(getToolRepairAmount(is, player));
durabilityAfter = player.getItemInHand().getDurability();
dif = (short) (durabilityBefore - durabilityAfter);
if(mcm.getInstance().isShovel(is))
if(mcm.isShovel(is))
dif = (short) (dif / 3);
if(mcm.getInstance().isSwords(is))
if(mcm.isSwords(is))
dif = (short) (dif / 2);
if(mcm.getInstance().isHoe(is))
if(mcm.isHoe(is))
dif = (short) (dif / 2);
PP.addRepairXP(dif * mcLoadProperties.xpGainMultiplier);
} else if (isDiamondTools(is) && hasDiamond(player) && PP.getRepairInt() >= mcLoadProperties.repairdiamondlevel){ //Check if its diamond and the player has diamonds
@ -95,11 +90,11 @@ public class mcRepair {
removeDiamond(player);
durabilityAfter = player.getItemInHand().getDurability();
dif = (short) (durabilityBefore - durabilityAfter);
if(mcm.getInstance().isShovel(is))
if(mcm.isShovel(is))
dif = (short) (dif / 3);
if(mcm.getInstance().isSwords(is))
if(mcm.isSwords(is))
dif = (short) (dif / 2);
if(mcm.getInstance().isHoe(is))
if(mcm.isHoe(is))
dif = (short) (dif / 2);
PP.addRepairXP(dif * mcLoadProperties.xpGainMultiplier);
} else if(isGoldTools(is) && hasGold(player)){
@ -108,11 +103,11 @@ public class mcRepair {
durabilityAfter = player.getItemInHand().getDurability();
dif = (short) (durabilityBefore - durabilityAfter);
dif = (short) (dif * 7.6); //Boost XP for Gold to that of around Iron
if(mcm.getInstance().isShovel(is))
if(mcm.isShovel(is))
dif = (short) (dif / 3);
if(mcm.getInstance().isSwords(is))
if(mcm.isSwords(is))
dif = (short) (dif / 2);
if(mcm.getInstance().isHoe(is))
if(mcm.isHoe(is))
dif = (short) (dif / 2);
PP.addRepairXP(dif * mcLoadProperties.xpGainMultiplier);
} else {
@ -127,10 +122,10 @@ public class mcRepair {
/*
* GIVE SKILL IF THERE IS ENOUGH XP
*/
mcSkills.getInstance().XpCheck(player);
mcSkills.XpCheck(player);
}
}
public boolean isArmor(ItemStack is){
public static boolean isArmor(ItemStack is){
if(is.getTypeId() == 306 || is.getTypeId() == 307 ||is.getTypeId() == 308 ||is.getTypeId() == 309 ||
is.getTypeId() == 310 ||is.getTypeId() == 311 ||is.getTypeId() == 312 ||is.getTypeId() == 313 ||
is.getTypeId() == 314 || is.getTypeId() == 315 || is.getTypeId() == 316 || is.getTypeId() == 317){
@ -139,14 +134,14 @@ public class mcRepair {
return false;
}
}
public boolean isGoldArmor(ItemStack is){
public static boolean isGoldArmor(ItemStack is){
if(is.getTypeId() == 314 || is.getTypeId() == 315 || is.getTypeId() == 316 || is.getTypeId() == 317){
return true;
} else {
return false;
}
}
public boolean isIronArmor(ItemStack is){
public static boolean isIronArmor(ItemStack is){
if(is.getTypeId() == 306 || is.getTypeId() == 307 || is.getTypeId() == 308 || is.getTypeId() == 309)
{
return true;
@ -154,7 +149,7 @@ public class mcRepair {
return false;
}
}
public boolean isDiamondArmor(ItemStack is){
public static boolean isDiamondArmor(ItemStack is){
if(is.getTypeId() == 310 || is.getTypeId() == 311 || is.getTypeId() == 312 || is.getTypeId() == 313)
{
return true;
@ -162,7 +157,7 @@ public class mcRepair {
return false;
}
}
public boolean isTools(ItemStack is){
public static boolean isTools(ItemStack is){
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
@ -172,14 +167,14 @@ public class mcRepair {
return false;
}
}
public boolean isGoldTools(ItemStack is){
public static boolean isGoldTools(ItemStack is){
if(is.getTypeId() == 283 || is.getTypeId() == 285 || is.getTypeId() == 286 || is.getTypeId() == 284 || is.getTypeId() == 294){
return true;
} else {
return false;
}
}
public boolean isIronTools(ItemStack is){
public static boolean isIronTools(ItemStack is){
if(is.getTypeId() == 256 || is.getTypeId() == 257 || is.getTypeId() == 258 || is.getTypeId() == 267 || is.getTypeId() == 292)
{
return true;
@ -188,7 +183,7 @@ public class mcRepair {
}
}
public boolean isDiamondTools(ItemStack is){
public static boolean isDiamondTools(ItemStack is){
if(is.getTypeId() == 276 || is.getTypeId() == 277 || is.getTypeId() == 278 || is.getTypeId() == 279 || is.getTypeId() == 293)
{
return true;
@ -196,7 +191,7 @@ public class mcRepair {
return false;
}
}
public void removeIron(Player player){
public static void removeIron(Player player){
ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 265){
@ -212,7 +207,7 @@ public class mcRepair {
}
}
}
public void removeGold(Player player){
public static void removeGold(Player player){
ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 266){
@ -228,7 +223,7 @@ public class mcRepair {
}
}
}
public void removeDiamond(Player player){
public static void removeDiamond(Player player){
ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 264){
@ -244,7 +239,7 @@ public class mcRepair {
}
}
}
public boolean hasGold(Player player){
public static boolean hasGold(Player player){
ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 266){
@ -253,7 +248,7 @@ public class mcRepair {
}
return false;
}
public boolean hasDiamond(Player player){
public static boolean hasDiamond(Player player){
ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 264){
@ -262,7 +257,7 @@ public class mcRepair {
}
return false;
}
public boolean hasIron(Player player){
public static boolean hasIron(Player player){
ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){
if(x != null && x.getTypeId() == 265){
@ -271,7 +266,7 @@ public class mcRepair {
}
return false;
}
public short repairCalculate(Player player, short durability, short ramt){
public static short repairCalculate(Player player, short durability, short ramt){
PlayerProfile PP = mcUsers.getProfile(player.getName());
float bonus = (PP.getRepairInt() / 500);
bonus = (ramt * bonus);
@ -285,7 +280,7 @@ public class mcRepair {
}
return durability;
}
public short getToolRepairAmount(ItemStack is, Player player){
public static short getToolRepairAmount(ItemStack is, Player player){
short durability = is.getDurability();
short ramt = 0;
switch(is.getTypeId())
@ -354,7 +349,7 @@ public class mcRepair {
return repairCalculate(player, durability, ramt);
}
//This determines how much we repair
public short getArmorRepairAmount(ItemStack is, Player player){
public static short getArmorRepairAmount(ItemStack is, Player player){
short durability = is.getDurability();
short ramt = 0;
switch(is.getTypeId())
@ -400,7 +395,7 @@ public class mcRepair {
durability = 0;
return repairCalculate(player, durability, ramt);
}
public void needMoreVespeneGas(ItemStack is, Player player){
public static void needMoreVespeneGas(ItemStack is, Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if ((isDiamondTools(is) || isDiamondArmor(is)) && PP.getRepairInt() < mcLoadProperties.repairdiamondlevel){
player.sendMessage(ChatColor.DARK_RED +"You're not adept enough to repair Diamond");
@ -421,7 +416,7 @@ public class mcRepair {
} else if (is.getAmount() > 1)
player.sendMessage(ChatColor.DARK_RED+"You can't repair stacked items");
}
public boolean checkPlayerProcRepair(Player player){
public static boolean checkPlayerProcRepair(Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(player != null){
if(Math.random() * 1000 <= PP.getRepairInt()){

View File

@ -16,13 +16,8 @@ public class mcSkills {
plugin = instance;
}
private static volatile mcSkills instance;
public static mcSkills getInstance() {
if (instance == null) {
instance = new mcSkills(plugin);
}
return instance;
}
public boolean cooldownOver(Player player, long oldTime, int cooldown){
public static boolean cooldownOver(Player player, long oldTime, int cooldown){
long currentTime = System.currentTimeMillis();
if(currentTime - oldTime >= (cooldown * 1000)){
return true;
@ -46,7 +41,7 @@ public class mcSkills {
}
}
}
public int calculateTimeLeft(Player player, long deactivatedTimeStamp, int cooldown){
public static int calculateTimeLeft(Player player, long deactivatedTimeStamp, int cooldown){
long currentTime = System.currentTimeMillis();
int x = 0;
while(currentTime < deactivatedTimeStamp + (cooldown * 1000)){
@ -55,7 +50,7 @@ public class mcSkills {
}
return x;
}
public void watchCooldowns(Player player){
public static void watchCooldowns(Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(!PP.getGreenTerraInformed() && System.currentTimeMillis() - PP.getGreenTerraDeactivatedTimeStamp() >= (mcLoadProperties.greenTerraCooldown * 1000)){
PP.setGreenTerraInformed(true);
@ -86,9 +81,9 @@ public class mcSkills {
player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Giga Drill Breaker "+ChatColor.GREEN+"ability is refreshed!");
}
}
public void hoeReadinessCheck(Player player){
public static void hoeReadinessCheck(Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(mcPermissions.getInstance().herbalismAbility(player) && mcm.getInstance().isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){
if(mcPermissions.getInstance().herbalismAbility(player) && mcm.isHoe(player.getItemInHand()) && !PP.getHoePreparationMode()){
if(!PP.getGreenTerraMode() && !cooldownOver(player, PP.getGreenTerraDeactivatedTimeStamp(), mcLoadProperties.greenTerraCooldown)){
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getGreenTerraDeactivatedTimeStamp(), mcLoadProperties.greenTerraCooldown)+"s)");
@ -99,11 +94,11 @@ public class mcSkills {
PP.setHoePreparationMode(true);
}
}
public void abilityActivationCheck(Player player){
public static void abilityActivationCheck(Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(!PP.getAbilityUse())
return;
if(mcPermissions.getInstance().miningAbility(player) && mcm.getInstance().isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode()){
if(mcPermissions.getInstance().miningAbility(player) && mcm.isMiningPick(player.getItemInHand()) && !PP.getPickaxePreparationMode()){
if(!PP.getSuperBreakerMode() && !cooldownOver(player, PP.getSuperBreakerDeactivatedTimeStamp(), mcLoadProperties.superBreakerCooldown)){
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSuperBreakerDeactivatedTimeStamp(), mcLoadProperties.superBreakerCooldown)+"s)");
@ -113,7 +108,7 @@ public class mcSkills {
PP.setPickaxePreparationATS(System.currentTimeMillis());
PP.setPickaxePreparationMode(true);
}
if(mcPermissions.getInstance().excavationAbility(player) && mcm.getInstance().isShovel(player.getItemInHand()) && !PP.getShovelPreparationMode()){
if(mcPermissions.getInstance().excavationAbility(player) && mcm.isShovel(player.getItemInHand()) && !PP.getShovelPreparationMode()){
if(!PP.getGigaDrillBreakerMode() && !cooldownOver(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), mcLoadProperties.gigaDrillBreakerCooldown)){
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getGigaDrillBreakerDeactivatedTimeStamp(), mcLoadProperties.gigaDrillBreakerCooldown)+"s)");
@ -123,7 +118,7 @@ public class mcSkills {
PP.setShovelPreparationATS(System.currentTimeMillis());
PP.setShovelPreparationMode(true);
}
if(mcPermissions.getInstance().swordsAbility(player) && mcm.getInstance().isSwords(player.getItemInHand()) && !PP.getSwordsPreparationMode()){
if(mcPermissions.getInstance().swordsAbility(player) && mcm.isSwords(player.getItemInHand()) && !PP.getSwordsPreparationMode()){
if(!PP.getSerratedStrikesMode() && !cooldownOver(player, PP.getSerratedStrikesDeactivatedTimeStamp(), mcLoadProperties.serratedStrikeCooldown)){
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+ChatColor.YELLOW+" ("+calculateTimeLeft(player, PP.getSerratedStrikesDeactivatedTimeStamp(), mcLoadProperties.serratedStrikeCooldown)+"s)");
@ -144,16 +139,16 @@ public class mcSkills {
PP.setFistsPreparationMode(true);
}
if((mcPermissions.getInstance().axes(player) || mcPermissions.getInstance().woodcutting(player)) && !PP.getAxePreparationMode()){
if(mcm.getInstance().isAxes(player.getItemInHand())){
if(mcm.isAxes(player.getItemInHand())){
player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR AXE**");
PP.setAxePreparationATS(System.currentTimeMillis());
PP.setAxePreparationMode(true);
}
}
}
public void serratedStrikesActivationCheck(Player player, Plugin pluginx){
public static void serratedStrikesActivationCheck(Player player, Plugin pluginx){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(mcm.getInstance().isSwords(player.getItemInHand())){
if(mcm.isSwords(player.getItemInHand())){
if(PP.getSwordsPreparationMode()){
PP.setSwordsPreparationMode(false);
}
@ -167,7 +162,7 @@ public class mcSkills {
if(!PP.getSerratedStrikesMode() && PP.getSerratedStrikesCooldown() == 0){
player.sendMessage(ChatColor.GREEN+"**SERRATED STRIKES ACTIVATED**");
for(Player y : pluginx.getServer().getOnlinePlayers()){
if(y != null && y != player && mcm.getInstance().getDistance(player.getLocation(), y.getLocation()) < 10)
if(y != null && y != player && mcm.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Serrated Strikes!");
}
PP.setSerratedStrikesTicks((ticks * 2) * 1000);
@ -177,7 +172,7 @@ public class mcSkills {
}
}
public void berserkActivationCheck(Player player, Plugin pluginx){
public static void berserkActivationCheck(Player player, Plugin pluginx){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(player.getItemInHand().getTypeId() == 0){
if(PP.getFistsPreparationMode()){
@ -193,7 +188,7 @@ public class mcSkills {
if(!PP.getBerserkMode() && cooldownOver(player, PP.getBerserkDeactivatedTimeStamp(), mcLoadProperties.berserkCooldown)){
player.sendMessage(ChatColor.GREEN+"**BERSERK ACTIVATED**");
for(Player y : pluginx.getServer().getOnlinePlayers()){
if(y != null && y != player && mcm.getInstance().getDistance(player.getLocation(), y.getLocation()) < 10)
if(y != null && y != player && mcm.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Berserk!");
}
PP.setBerserkTicks(ticks * 1000);
@ -202,9 +197,9 @@ public class mcSkills {
}
}
}
public void skullSplitterCheck(Player player, Plugin pluginx){
public static void skullSplitterCheck(Player player, Plugin pluginx){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(mcm.getInstance().isAxes(player.getItemInHand()) && mcPermissions.getInstance().axesAbility(player)){
if(mcm.isAxes(player.getItemInHand()) && mcPermissions.getInstance().axesAbility(player)){
/*
* CHECK FOR AXE PREP MODE
*/
@ -221,7 +216,7 @@ public class mcSkills {
if(!PP.getSkullSplitterMode() && cooldownOver(player, PP.getSkullSplitterDeactivatedTimeStamp(), mcLoadProperties.skullSplitterCooldown)){
player.sendMessage(ChatColor.GREEN+"**SKULL SPLITTER ACTIVATED**");
for(Player y : pluginx.getServer().getOnlinePlayers()){
if(y != null && y != player && mcm.getInstance().getDistance(player.getLocation(), y.getLocation()) < 10)
if(y != null && y != player && mcm.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Skull Splitter!");
}
PP.setSkullSplitterTicks(ticks * 1000);
@ -234,7 +229,7 @@ public class mcSkills {
}
}
}
public void monitorSkills(Player player){
public static void monitorSkills(Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(PP == null)
mcUsers.addUser(player);
@ -340,7 +335,7 @@ public class mcSkills {
}
}
}
public void XpCheck(Player player){
public static void XpCheck(Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
/*
* TAMING
@ -352,6 +347,13 @@ public class mcSkills {
PP.removeTamingXP(PP.getXpToLevel("taming"));
PP.skillUpTaming(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getTamingInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "taming");
if(player != null && PP.getTaming() != null)
player.sendMessage(ChatColor.YELLOW+"Taming skill increased by "+skillups+"."+" Total ("+PP.getTaming()+")");
}
@ -365,6 +367,14 @@ public class mcSkills {
PP.removeAcrobaticsXP(PP.getXpToLevel("acrobatics"));
PP.skillUpAcrobatics(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getAcrobaticsInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "acrobatics");
if(player != null && PP.getAcrobatics() != null)
player.sendMessage(ChatColor.YELLOW+"Acrobatics skill increased by "+skillups+"."+" Total ("+PP.getAcrobatics()+")");
}
@ -378,6 +388,14 @@ public class mcSkills {
PP.removeArcheryXP(PP.getXpToLevel("archery"));
PP.skillUpArchery(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getArcheryInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "archery");
if(player != null && PP.getArchery() != null)
player.sendMessage(ChatColor.YELLOW+"Archery skill increased by "+skillups+"."+" Total ("+PP.getArchery()+")");
}
@ -391,6 +409,14 @@ public class mcSkills {
PP.removeSwordsXP(PP.getXpToLevel("swords"));
PP.skillUpSwords(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getSwordsInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "swords");
if(player != null && PP.getSwords() != null)
player.sendMessage(ChatColor.YELLOW+"Swords skill increased by "+skillups+"."+" Total ("+PP.getSwords()+")");
}
@ -404,6 +430,14 @@ public class mcSkills {
PP.removeAxesXP(PP.getXpToLevel("axes"));
PP.skillUpAxes(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getAxesInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "axes");
if(player != null && PP.getAxes() != null)
player.sendMessage(ChatColor.YELLOW+"Axes skill increased by "+skillups+"."+" Total ("+PP.getAxes()+")");
}
@ -417,6 +451,14 @@ public class mcSkills {
PP.removeUnarmedXP(PP.getXpToLevel("unarmed"));
PP.skillUpUnarmed(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getUnarmedInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "unarmed");
if(player != null && PP.getUnarmed() != null)
player.sendMessage(ChatColor.YELLOW+"Unarmed skill increased by "+skillups+"."+" Total ("+PP.getUnarmed()+")");
}
@ -430,6 +472,14 @@ public class mcSkills {
PP.removeHerbalismXP(PP.getXpToLevel("herbalism"));
PP.skillUpHerbalism(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getHerbalismInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "herbalism");
if(player != null && PP.getHerbalism() != null)
player.sendMessage(ChatColor.YELLOW+"Herbalism skill increased by "+skillups+"."+" Total ("+PP.getHerbalism()+")");
}
@ -443,6 +493,14 @@ public class mcSkills {
PP.removeMiningXP(PP.getXpToLevel("mining"));
PP.skillUpMining(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getMiningInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "mining");
if(player != null && PP.getMining() != null)
player.sendMessage(ChatColor.YELLOW+"Mining skill increased by "+skillups+"."+" Total ("+PP.getMining()+")");
}
@ -456,6 +514,14 @@ public class mcSkills {
PP.removeWoodCuttingXP(PP.getXpToLevel("woodcutting"));
PP.skillUpWoodCutting(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getWoodCuttingInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "woodcutting");
if(player != null && PP.getWoodCutting() != null)
player.sendMessage(ChatColor.YELLOW+"WoodCutting skill increased by "+skillups+"."+" Total ("+PP.getWoodCutting()+")");
}
@ -469,6 +535,14 @@ public class mcSkills {
PP.removeRepairXP(PP.getXpToLevel("repair"));
PP.skillUpRepair(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getRepairInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "repair");
if(player != null && PP.getRepair() != null)
player.sendMessage(ChatColor.YELLOW+"Repair skill increased by "+skillups+"."+" Total ("+PP.getRepair()+")");
}
@ -482,11 +556,26 @@ public class mcSkills {
PP.removeExcavationXP(PP.getXpToLevel("excavation"));
PP.skillUpExcavation(1);
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = PP.getExcavationInt();
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "excavation");
if(player != null && PP.getExcavation() != null)
player.sendMessage(ChatColor.YELLOW+"Excavation skill increased by "+skillups+"."+" Total ("+PP.getExcavation()+")");
}
/*
* Leaderboard updating stuff
*/
PlayerStat ps = new PlayerStat();
ps.statVal = mcm.getPowerLevel(player);
ps.name = player.getName();
mcLeaderboard.updateLeaderboard(ps, "powerlevel");
}
public boolean isSkill(String skillname){
public static boolean isSkill(String skillname){
skillname = skillname.toLowerCase();
if(skillname.equals("all")){
return true;
@ -528,11 +617,11 @@ public class mcSkills {
return false;
}
}
public void arrowRetrievalCheck(Entity entity){
public static void arrowRetrievalCheck(Entity entity){
if(mcConfig.getInstance().isTracked(entity)){
Integer x = 0;
while(x < mcConfig.getInstance().getArrowCount(entity)){
mcm.getInstance().mcDropItem(entity.getLocation(), 262);
mcm.mcDropItem(entity.getLocation(), 262);
x++;
}
}

View File

@ -15,20 +15,14 @@ public class mcTaming {
private static volatile mcTaming instance;
public static mcTaming getInstance() {
if (instance == null) {
instance = new mcTaming(plugin);
}
return instance;
}
public String getOwnerName(Entity theWolf){
public static String getOwnerName(Entity theWolf){
CraftWolf cWolf = (CraftWolf)theWolf;
EntityWolf eWolf = (EntityWolf)cWolf.getHandle();
String playerName = eWolf.v();
return playerName;
}
public boolean hasOwner(Entity theWolf, Plugin pluginx){
public static boolean hasOwner(Entity theWolf, Plugin pluginx){
for(Player x : pluginx.getServer().getOnlinePlayers()){
if(x != null && x.getName().equals(getOwnerName(theWolf))){
return true;
@ -44,4 +38,8 @@ public class mcTaming {
}
return null;
}
public static mcTaming getInstance() {
// TODO Auto-generated method stub
return null;
}
}

View File

@ -27,11 +27,11 @@ public class mcTimer extends TimerTask{
/*
* MONITOR SKILLS
*/
mcSkills.getInstance().monitorSkills(player);
mcSkills.monitorSkills(player);
/*
* COOLDOWN MONITORING
*/
mcSkills.getInstance().watchCooldowns(player);
mcSkills.watchCooldowns(player);
/*
* PLAYER BLEED MONITORING
@ -45,23 +45,23 @@ public class mcTimer extends TimerTask{
if(thecount == 10 || thecount == 20 || thecount == 30 || thecount == 40){
if(player != null &&
player.getHealth() > 0 && player.getHealth() < 20
&& mcm.getInstance().getPowerLevel(player) >= 1000){
player.setHealth(mcm.getInstance().calculateHealth(player.getHealth(), 1));
&& mcm.getPowerLevel(player) >= 1000){
player.setHealth(mcm.calculateHealth(player.getHealth(), 1));
}
}
if(thecount == 20 || thecount == 40){
if(player != null &&
player.getHealth() > 0 && player.getHealth() < 20
&& mcm.getInstance().getPowerLevel(player) >= 500
&& mcm.getInstance().getPowerLevel(player) < 1000){
player.setHealth(mcm.getInstance().calculateHealth(player.getHealth(), 1));
&& mcm.getPowerLevel(player) >= 500
&& mcm.getPowerLevel(player) < 1000){
player.setHealth(mcm.calculateHealth(player.getHealth(), 1));
}
}
if(thecount == 40){
if(player != null &&
player.getHealth() > 0 && player.getHealth() < 20
&& mcm.getInstance().getPowerLevel(player) < 500){
player.setHealth(mcm.getInstance().calculateHealth(player.getHealth(), 1));
&& mcm.getPowerLevel(player) < 500){
player.setHealth(mcm.calculateHealth(player.getHealth(), 1));
}
}
}
@ -71,7 +71,7 @@ public class mcTimer extends TimerTask{
* NON-PLAYER BLEED MONITORING
*/
if(thecount % 2 == 0)
mcCombat.getInstance().bleedSimulate();
mcCombat.bleedSimulate();
if(thecount < 40){
thecount++;

View File

@ -160,7 +160,7 @@ class PlayerList
private boolean greenTerraMode, partyChatOnly = false, greenTerraInformed = true, berserkInformed = true, skullSplitterInformed = true, gigaDrillBreakerInformed = true, superBreakerInformed = true, serratedStrikesInformed = true, treeFellerInformed = true, dead, abilityuse = true, treeFellerMode, superBreakerMode, gigaDrillBreakerMode, serratedStrikesMode, hoePreparationMode, shovelPreparationMode, swordsPreparationMode, fistsPreparationMode, pickaxePreparationMode, axePreparationMode, skullSplitterMode, berserkMode;
private long gigaDrillBreakerCooldown = 0, berserkCooldown = 0, superBreakerCooldown = 0, skullSplitterCooldown = 0, serratedStrikesCooldown = 0,
greenTerraCooldown = 0, treeFellerCooldown = 0, recentlyHurt = 0, archeryShotATS = 0, berserkATS = 0, berserkDATS = 0, gigaDrillBreakerATS = 0, gigaDrillBreakerDATS = 0,
mySpawnATS = 0, greenTerraATS = 0, greenTerraDATS = 0, superBreakerATS = 0, superBreakerDATS = 0, serratedStrikesATS = 0, serratedStrikesDATS = 0, treeFellerATS = 0, treeFellerDATS = 0,
respawnATS = 0, mySpawnATS = 0, greenTerraATS = 0, greenTerraDATS = 0, superBreakerATS = 0, superBreakerDATS = 0, serratedStrikesATS = 0, serratedStrikesDATS = 0, treeFellerATS = 0, treeFellerDATS = 0,
skullSplitterATS = 0, skullSplitterDATS = 0, hoePreparationATS = 0, axePreparationATS = 0, pickaxePreparationATS = 0, fistsPreparationATS = 0, shovelPreparationATS = 0, swordsPreparationATS = 0;
private int berserkTicks = 0, bleedticks = 0, greenTerraTicks = 0, gigaDrillBreakerTicks = 0, superBreakerTicks = 0, serratedStrikesTicks = 0, skullSplitterTicks = 0, treeFellerTicks = 0;
//ATS = (Time of) Activation Time Stamp
@ -221,23 +221,6 @@ class PlayerList
addPlayer();
}
public void scoreBoard()
{
try {
//Open the user file
FileReader file = new FileReader(location);
BufferedReader in = new BufferedReader(file);
String line = "";
while((line = in.readLine()) != null)
{
}
in.close();
} catch (Exception e) {
log.log(Level.SEVERE, "Exception while reading "
+ location + " (Are you sure you formatted it correctly?)", e);
}
}
public boolean load()
{
try {
@ -473,6 +456,12 @@ class PlayerList
return false;
}
}
/*
* EXPLOIT PREVENTION
*/
public long getRespawnATS() {return respawnATS;}
public void setRespawnATS(long newvalue) {respawnATS = newvalue;}
/*
* ARCHERY NERF STUFF
*/
@ -1607,7 +1596,7 @@ class PlayerList
axesXP = String.valueOf(Integer.valueOf(axesXP)+newvalue);
}
save();
mcSkills.getInstance().XpCheck(thisplayer);
mcSkills.XpCheck(thisplayer);
}
public void modifyskill(int newvalue, String skillname){
if(skillname.toLowerCase().equals("taming")){

View File

@ -14,20 +14,14 @@ import com.gmail.nossr50.PlayerList.PlayerProfile;
public class mcWoodCutting {
int w = 0;
private boolean isdone = false;
static int w = 0;
private static boolean isdone = false;
private static mcMMO plugin;
public mcWoodCutting(mcMMO instance) {
plugin = instance;
}
private static volatile mcWoodCutting instance;
public static mcWoodCutting getInstance() {
if (instance == null) {
instance = new mcWoodCutting(plugin);
}
return instance;
}
public void woodCuttingProcCheck(Player player, Block block){
public static void woodCuttingProcCheck(Player player, Block block){
PlayerProfile PP = mcUsers.getProfile(player.getName());
byte type = block.getData();
Material mat = Material.getMaterial(block.getTypeId());
@ -38,11 +32,11 @@ public class mcWoodCutting {
}
}
}
public void treeFellerCheck(Player player, Block block, Plugin pluginx){
public static void treeFellerCheck(Player player, Block block, Plugin pluginx){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(mcm.getInstance().isAxes(player.getItemInHand())){
if(mcm.isAxes(player.getItemInHand())){
if(block != null){
if(!mcm.getInstance().abilityBlockCheck(block))
if(!mcm.abilityBlockCheck(block))
return;
}
/*
@ -58,23 +52,23 @@ public class mcWoodCutting {
ticks++;
}
if(!PP.getTreeFellerMode() && mcSkills.getInstance().cooldownOver(player, PP.getTreeFellerDeactivatedTimeStamp(), mcLoadProperties.treeFellerCooldown)){
if(!PP.getTreeFellerMode() && mcSkills.cooldownOver(player, PP.getTreeFellerDeactivatedTimeStamp(), mcLoadProperties.treeFellerCooldown)){
player.sendMessage(ChatColor.GREEN+"**TREE FELLING ACTIVATED**");
for(Player y : pluginx.getServer().getOnlinePlayers()){
if(y != null && y != player && mcm.getInstance().getDistance(player.getLocation(), y.getLocation()) < 10)
if(y != null && y != player && mcm.getDistance(player.getLocation(), y.getLocation()) < 10)
y.sendMessage(ChatColor.GREEN+player.getName()+ChatColor.DARK_GREEN+" has used "+ChatColor.RED+"Tree Feller!");
}
PP.setTreeFellerTicks(ticks * 1000);
PP.setTreeFellerActivatedTimeStamp(System.currentTimeMillis());
PP.setTreeFellerMode(true);
}
if(!PP.getTreeFellerMode() && !mcSkills.getInstance().cooldownOver(player, PP.getTreeFellerDeactivatedTimeStamp(), mcLoadProperties.treeFellerCooldown)){
if(!PP.getTreeFellerMode() && !mcSkills.cooldownOver(player, PP.getTreeFellerDeactivatedTimeStamp(), mcLoadProperties.treeFellerCooldown)){
player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+ChatColor.YELLOW+" ("+mcSkills.getInstance().calculateTimeLeft(player, PP.getTreeFellerDeactivatedTimeStamp(), mcLoadProperties.treeFellerCooldown)+"s)");
+ChatColor.YELLOW+" ("+mcSkills.calculateTimeLeft(player, PP.getTreeFellerDeactivatedTimeStamp(), mcLoadProperties.treeFellerCooldown)+"s)");
}
}
}
public void treeFeller(Block block, Player player){
public static void treeFeller(Block block, Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
int radius = 1;
if(PP.getWoodCuttingXPInt() >= 500)
@ -100,7 +94,7 @@ public class mcWoodCutting {
}
toAdd.clear();
}
public void addBlocksToTreeFelling(ArrayList<Block> blocklist, ArrayList<Block> toAdd, Integer radius){
public static void addBlocksToTreeFelling(ArrayList<Block> blocklist, ArrayList<Block> toAdd, Integer radius){
int u = 0;
for (Block x : blocklist){
u++;

View File

@ -25,15 +25,8 @@ public class mcm {
public mcm(mcMMO instance) {
plugin = instance;
}
private static volatile mcm instance;
public static mcm getInstance() {
if (instance == null) {
instance = new mcm(plugin);
}
return instance;
}
public int getPowerLevel(Player player){
public static int getPowerLevel(Player player){
PlayerProfile PP = mcUsers.getProfile(player.getName());
int x = 0;
if(mcPermissions.getInstance().mining(player))
@ -58,7 +51,7 @@ public class mcm {
x+=PP.getRepairInt();
return x;
}
public boolean blockBreakSimulate(Block block, Player player, Plugin plugin){
public static boolean blockBreakSimulate(Block block, Player player, Plugin plugin){
FakeBlockBreakEvent event = new FakeBlockBreakEvent(block, player);
if(block != null && plugin != null && player != null){
@ -74,11 +67,11 @@ public class mcm {
}
}
public void damageTool(Player player, short damage){
public static void damageTool(Player player, short damage){
if(player.getItemInHand().getTypeId() == 0)
return;
player.getItemInHand().setDurability((short) (player.getItemInHand().getDurability() + damage));
if(player.getItemInHand().getDurability() >= getMaxDurability(mcm.getInstance().getTier(player), player.getItemInHand())){
if(player.getItemInHand().getDurability() >= getMaxDurability(getTier(player), player.getItemInHand())){
ItemStack[] inventory = player.getInventory().getContents();
for(ItemStack x : inventory){
if(x != null && x.getTypeId() == player.getItemInHand().getTypeId() && x.getDurability() == player.getItemInHand().getDurability()){
@ -109,7 +102,7 @@ public class mcm {
}
}
}
public Integer getTier(Player player){
public static Integer getTier(Player player){
int i = player.getItemInHand().getTypeId();
if(i == 268 || i == 269 || i == 270 || i == 271 || i == 290){
return 1; //WOOD
@ -125,7 +118,7 @@ public class mcm {
return 1; //UNRECOGNIZED
}
}
public Integer getMaxDurability(Integer tier, ItemStack item){
public static Integer getMaxDurability(Integer tier, ItemStack item){
int id = item.getTypeId();
if(tier == 1){
if((id == 276 || id == 277 || id == 278 || id == 279 || id == 293)){
@ -143,12 +136,12 @@ public class mcm {
return 0;
}
}
public double getDistance(Location loca, Location locb)
public static double getDistance(Location loca, Location locb)
{
return Math.sqrt(Math.pow(loca.getX() - locb.getX(), 2) + Math.pow(loca.getY() - locb.getY(), 2)
+ Math.pow(loca.getZ() - locb.getZ(), 2));
}
public boolean abilityBlockCheck(Block block){
public static boolean abilityBlockCheck(Block block){
int i = block.getTypeId();
if(i == 68 || i == 355 || i == 26 || i == 323 || i == 25 || i == 54 || i == 69 || i == 92 || i == 77 || i == 58 || i == 61 || i == 62 || i == 42 || i == 71 || i == 64 || i == 84 || i == 324 || i == 330){
return false;
@ -156,7 +149,7 @@ public class mcm {
return true;
}
}
public boolean isBlockAround(Location loc, Integer radius, Integer typeid){
public static boolean isBlockAround(Location loc, Integer radius, Integer typeid){
Block blockx = loc.getBlock();
int ox = blockx.getX();
int oy = blockx.getY();
@ -174,7 +167,7 @@ public class mcm {
}
return false;
}
public boolean isPvpEnabled(){
public static boolean isPvpEnabled(){
String propertyName = "pvp";
FileReader fr = null;
try {
@ -205,7 +198,7 @@ public class mcm {
return false;
}
}
public boolean shouldBeWatched(Block block){
public static boolean shouldBeWatched(Block block){
int id = block.getTypeId();
if(id == 49 || id == 81 || id == 83 || id == 86 || id == 91 || id == 1 || id == 17 || id == 42 || id == 87 || id == 89 || id == 2 || id == 3 || id == 12 || id == 13 || id == 21 || id == 15 || id == 14 || id == 56 || id == 38 || id == 37 || id == 39 || id == 40 || id == 24){
return true;
@ -213,7 +206,7 @@ public class mcm {
return false;
}
}
public Integer calculateHealth(Integer health, Integer newvalue){
public static Integer calculateHealth(Integer health, Integer newvalue){
if((health + newvalue) > 20){
return 20;
} else {
@ -227,7 +220,7 @@ public class mcm {
return health-newvalue;
}
}
public Integer getHealth(Entity entity){
public static Integer getHealth(Entity entity){
if(entity instanceof Monster){
Monster monster = (Monster)entity;
return monster.getHealth();
@ -241,7 +234,7 @@ public class mcm {
return 0;
}
}
public boolean isInt(String string){
public static boolean isInt(String string){
try {
int x = Integer.parseInt(string);
}
@ -250,7 +243,7 @@ public class mcm {
}
return true;
}
public void mcDropItem(Location loc, int id){
public static void mcDropItem(Location loc, int id){
if(loc != null){
Material mat = Material.getMaterial(id);
byte damage = 0;
@ -259,14 +252,14 @@ public class mcm {
}
}
public boolean isSwords(ItemStack is){
public static boolean isSwords(ItemStack is){
if(is.getTypeId() == 268 || is.getTypeId() == 267 || is.getTypeId() == 272 || is.getTypeId() == 283 || is.getTypeId() == 276){
return true;
} else {
return false;
}
}
public boolean isHoe(ItemStack is){
public static boolean isHoe(ItemStack is){
int id = is.getTypeId();
if(id == 290 || id == 291 || id == 292 || id == 293 || id == 294){
return true;
@ -274,21 +267,21 @@ public class mcm {
return false;
}
}
public boolean isShovel(ItemStack is){
public static boolean isShovel(ItemStack is){
if(is.getTypeId() == 269 || is.getTypeId() == 273 || is.getTypeId() == 277 || is.getTypeId() == 284 || is.getTypeId() == 256){
return true;
} else {
return false;
}
}
public boolean isAxes(ItemStack is){
public static boolean isAxes(ItemStack is){
if(is.getTypeId() == 271 || is.getTypeId() == 258 || is.getTypeId() == 286 || is.getTypeId() == 279 || is.getTypeId() == 275){
return true;
} else {
return false;
}
}
public boolean isMiningPick(ItemStack is){
public static boolean isMiningPick(ItemStack is){
if(is.getTypeId() == 270 || is.getTypeId() == 274 || is.getTypeId() == 285 || is.getTypeId() == 257 || is.getTypeId() == 278){
return true;
} else {
@ -303,7 +296,7 @@ public class mcm {
return false;
}
}
public void mcmmoHelpCheck(String[] split, Player player, PlayerChatEvent event){
public static void mcmmoHelpCheck(String[] split, Player player, PlayerChatEvent event){
PlayerProfile PP = mcUsers.getProfile(player.getName());
if(split[0].equalsIgnoreCase("/woodcutting")){
event.setCancelled(true);
@ -665,6 +658,7 @@ public class mcm {
player.sendMessage("/"+mcLoadProperties.clearmyspawn+" "+ChatColor.RED+"- Clears your MySpawn");
}
player.sendMessage(ChatColor.GREEN+"--OTHER COMMANDS--");
player.sendMessage("/mctop <skillname> <page> "+ChatColor.RED+"- Leaderboards");
if(mcPermissions.getInstance().mcAbility(player))
player.sendMessage("/"+mcLoadProperties.mcability+ChatColor.RED+" - Toggle ability activation with right click");
if(mcPermissions.getInstance().adminChat(player)){

View File

@ -1,3 +1,3 @@
name: mcMMO
main: com.gmail.nossr50.mcMMO
version: 0.9.30 WIP
version: 1.0 WIP