All changes up to 0.8

This commit is contained in:
nossr50 2011-02-25 14:59:00 -08:00
parent 2beaf41057
commit 4cf35a317d
11 changed files with 387 additions and 127 deletions

View File

@ -1,5 +1,11 @@
Changelog: Changelog:
#Versions without changelogs probably had very small misc fixes, like tweaks to the source code# #Versions without changelogs probably had very small misc fixes, like tweaks to the source code#
Version 0.8
Archery skill now lets players recover arrows from downed foes
Health regenerates based on power level
Added toggle to myspawn clearing player inventory in settings file
Swords now have a bleed effect
Rewrote Skill descriptions to be more informative/better
Version 0.7.9 Version 0.7.9
XP Curve now follows a new formula XP Curve now follows a new formula
Acrobatics XP gains changed Acrobatics XP gains changed

View File

@ -7,6 +7,7 @@ import java.util.logging.Logger;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import java.util.Map.Entry; import java.util.Map.Entry;
@ -19,12 +20,44 @@ public class mcConfig {
static ArrayList<String> coordsWatchList = new ArrayList<String>(); static ArrayList<String> coordsWatchList = new ArrayList<String>();
static ArrayList<Block> blockWatchList = new ArrayList<Block>(); static ArrayList<Block> blockWatchList = new ArrayList<Block>();
static ArrayList<String> partyChatList = new ArrayList<String>(); static ArrayList<String> partyChatList = new ArrayList<String>();
HashMap<Entity, Integer> arrowTracker = new HashMap<Entity, Integer>();
HashMap<Entity, Integer> bleedTracker = new HashMap<Entity, Integer>();
public boolean isBlockWatched(Block block) {return blockWatchList.contains(block);} public boolean isBlockWatched(Block block) {return blockWatchList.contains(block);}
public boolean isCoordsWatched(String xyz) {return coordsWatchList.contains(xyz);} public boolean isCoordsWatched(String xyz) {return coordsWatchList.contains(xyz);}
public void removeBlockWatch(Block block) {blockWatchList.remove(blockWatchList.indexOf(block));} public void removeBlockWatch(Block block) {blockWatchList.remove(blockWatchList.indexOf(block));}
public void removeCoordsWatch(String xyz) {coordsWatchList.remove(coordsWatchList.indexOf(xyz));} public void removeCoordsWatch(String xyz) {coordsWatchList.remove(coordsWatchList.indexOf(xyz));}
public void addBlockWatch(Block block) {blockWatchList.add(block);} public void addBlockWatch(Block block) {blockWatchList.add(block);}
public void addCoordsWatch(String xyz) {coordsWatchList.add(xyz);} public void addCoordsWatch(String xyz) {coordsWatchList.add(xyz);}
public void addArrowTrack(Entity entity, Integer arrowcount) {arrowTracker.put(entity, arrowcount);}
public void addBleedTrack(Entity entity, Integer duration) {bleedTracker.put(entity, duration);}
public Integer getArrowCount(Entity entity) {return arrowTracker.get(entity);}
public Integer getBleedCount(Entity entity) {return bleedTracker.get(entity);}
public void removeBleedTrack(Entity entity){
bleedTracker.remove(entity);
}
public void setBleedCount(Entity entity, Integer newvalue){
bleedTracker.put(entity, newvalue);
}
public void removeBleedCount(Entity entity, Integer newvalue) {
bleedTracker.put(entity, bleedTracker.get(entity) - newvalue);
}
public void addArrowCount(Entity entity, Integer newvalue) {
arrowTracker.put(entity, arrowTracker.get(entity) + newvalue);
}
public boolean isTracked(Entity entity) {
if(arrowTracker.containsKey(entity)){
return true;
} else {
return false;
}
}
public boolean isBleedTracked(Entity entity) {
if(bleedTracker.containsKey(entity)){
return true;
} else {
return false;
}
}
public boolean isAdminToggled(String playerName) {return adminChatList.contains(playerName);} public boolean isAdminToggled(String playerName) {return adminChatList.contains(playerName);}
public boolean isPartyToggled(String playerName) {return partyChatList.contains(playerName);} public boolean isPartyToggled(String playerName) {return partyChatList.contains(playerName);}
public void removePartyToggled(String playerName) {partyChatList.remove(partyChatList.indexOf(playerName));} public void removePartyToggled(String playerName) {partyChatList.remove(partyChatList.indexOf(playerName));}

View File

@ -71,6 +71,9 @@ public class mcEntityListener extends EntityListener {
*/ */
if(e instanceof Player){ if(e instanceof Player){
Player defender = (Player)e; Player defender = (Player)e;
if(f instanceof Monster){
mcUsers.getProfile(defender).setRecentlyHurt(60);
}
/* /*
* PARRYING CHECK, CHECK TO SEE IF ITS A SUCCESSFUL PARRY OR NOT * PARRYING CHECK, CHECK TO SEE IF ITS A SUCCESSFUL PARRY OR NOT
*/ */

View File

@ -1,7 +1,7 @@
package com.gmail.nossr50; package com.gmail.nossr50;
public class mcLoadProperties { public class mcLoadProperties {
public static Boolean pvp, eggs, apples, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages; public static Boolean pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
public static String mcmmo, mcc, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn; public static String mcmmo, mcc, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn;
public static int xpmodifier; public static int xpmodifier;
@ -25,6 +25,7 @@ public class mcLoadProperties {
/* /*
* EXCAVATION LOOT TOGGLES * EXCAVATION LOOT TOGGLES
*/ */
myspawnclearsinventory = properties.getBoolean("myspawnclearsinventory", true);
glowstone = properties.getBoolean("glowstone", true); glowstone = properties.getBoolean("glowstone", true);
pvp = properties.getBoolean("pvp", true); pvp = properties.getBoolean("pvp", true);
eggs = properties.getBoolean("eggs", true); eggs = properties.getBoolean("eggs", true);

View File

@ -9,6 +9,7 @@ import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Timer;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.event.player.*; import org.bukkit.event.player.*;
@ -33,6 +34,7 @@ public class mcMMO extends JavaPlugin {
private final String name = "mcMMO"; private final String name = "mcMMO";
public static PermissionHandler PermissionsHandler = null; public static PermissionHandler PermissionsHandler = null;
private Permissions permissions; private Permissions permissions;
private Timer mcMMO_Timer = new Timer(true);
/* /*
public mcMMO(PluginLoader pluginLoader, Server instance, PluginDescriptionFile desc, File folder, File plugin, ClassLoader cLoader) { public mcMMO(PluginLoader pluginLoader, Server instance, PluginDescriptionFile desc, File folder, File plugin, ClassLoader cLoader) {
@ -41,6 +43,7 @@ public class mcMMO extends JavaPlugin {
*/ */
//herp //herp
public void onEnable() { public void onEnable() {
mcMMO_Timer.schedule(new mcTimer(this), 0, (long)(1000));
//Make the directory if it does not exist //Make the directory if it does not exist
new File(maindirectory).mkdir(); new File(maindirectory).mkdir();
//Make the file if it does not exist //Make the file if it does not exist

View File

@ -37,6 +37,13 @@ public class mcPermissions {
return true; return true;
} }
} }
public boolean regeneration(Player player){
if (permissionsEnabled) {
return permission(player, "mcmmo.skills.regeneration");
} else {
return true;
}
}
public boolean motd(Player player) { public boolean motd(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.motd"); return permission(player, "mcmmo.motd");

View File

@ -423,6 +423,7 @@ public class mcPlayerListener extends PlayerListener {
} }
event.setCancelled(true); event.setCancelled(true);
if(mcUsers.getProfile(player).getMySpawn(player) != null){ if(mcUsers.getProfile(player).getMySpawn(player) != null){
if(mcLoadProperties.myspawnclearsinventory)
player.getInventory().clear(); player.getInventory().clear();
player.setHealth(20); player.setHealth(20);
Location mySpawn = mcUsers.getProfile(player).getMySpawn(player); Location mySpawn = mcUsers.getProfile(player).getMySpawn(player);

View File

@ -0,0 +1,147 @@
package com.gmail.nossr50;
import java.util.Timer;
import java.util.TimerTask;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.entity.*;
import org.bukkit.inventory.ItemStack;
public class mcTimer extends TimerTask{
private final mcMMO plugin;
int thecount = 1;
public mcTimer(final mcMMO plugin) {
this.plugin = plugin;
}
public Integer calculateHealth(Integer health, Integer newvalue){
if((health + newvalue) > 20){
return 20;
} else {
return health+newvalue;
}
}
public Integer calculateMinusHealth(Integer health, Integer newvalue){
if((health - newvalue) < 1){
return 0;
} else {
return health-newvalue;
}
}
public Integer getHealth(Entity entity){
if(entity instanceof Monster){
Monster monster = (Monster)entity;
return monster.getHealth();
} else if (entity instanceof Animals){
Animals animals = (Animals)entity;
return animals.getHealth();
} else if (entity instanceof Player){
Player player = (Player)entity;
return player.getHealth();
} else {
return 0;
}
}
public void run() {
for(World world : plugin.getServer().getWorlds()){
for(Entity entity : world.getEntities()){
if(entity == null || getHealth(entity) <= 0)
return;
if(mcConfig.getInstance().getBleedCount(entity) < 1)
return;
if(mcConfig.getInstance().isBleedTracked(entity)){
if(entity instanceof Player){
Player player = (Player)entity;
if(player.getHealth() >= 1){
player.setHealth(calculateMinusHealth(player.getHealth(), 1));
player.sendMessage(ChatColor.RED+"**BLEED**");
if(player.getHealth() <= 0){
for(ItemStack items : player.getInventory().getContents()){
if(items.getTypeId() != 0)
player.getLocation().getWorld().dropItemNaturally(player.getLocation(), items);
}
}
}
}
if(entity instanceof Animals){
Animals animals = (Animals)entity;
if(animals.getHealth() >= 1){
animals.setHealth(calculateMinusHealth(animals.getHealth(), 1));
if(animals.getHealth() <= 0){
mcm.getInstance().simulateNaturalDrops(entity);
}
}
}
if(entity instanceof Monster){
Monster monster = (Monster)entity;
if(monster.getHealth() >= 1){
monster.setHealth(calculateMinusHealth(monster.getHealth(), 1));
if(monster.getHealth() <= 0){
mcm.getInstance().simulateNaturalDrops(entity);
}
}
}
}
}
}
for(World world : plugin.getServer().getWorlds()){
for(Entity entity : world.getEntities()){
if(mcConfig.getInstance().isBleedTracked(entity)){
if(mcConfig.getInstance().getBleedCount(entity) >= 2){
mcConfig.getInstance().removeBleedCount(entity, 1);
} else if(mcConfig.getInstance().getBleedCount(entity) == 1){
mcConfig.getInstance().removeBleedTrack(entity);
}
}
}
}
if(thecount == 10 || thecount == 20 || thecount == 30 || thecount == 40){
for(Player player : plugin.getServer().getOnlinePlayers()){
if(player != null && mcUsers.getProfile(player).getRecentlyHurt() >= 1)
mcUsers.getProfile(player).decreaseLastHurt();
}
}
for(Player player : plugin.getServer().getOnlinePlayers()){
if(player != null &&
player.getHealth() > 0 && player.getHealth() < 20
&& mcUsers.getProfile(player).getPowerLevel() >= 1000
&& mcUsers.getProfile(player).getRecentlyHurt() == 0
&& mcPermissions.getInstance().regeneration(player)){
player.setHealth(calculateHealth(player.getHealth(), 1));
}
}
if(thecount == 20 || thecount == 40){
for(Player player : plugin.getServer().getOnlinePlayers()){
if(player != null &&
player.getHealth() > 0 && player.getHealth() < 20
&& mcUsers.getProfile(player).getPowerLevel() >= 500
&& mcUsers.getProfile(player).getPowerLevel() < 1000
&& mcUsers.getProfile(player).getRecentlyHurt() == 0
&& mcPermissions.getInstance().regeneration(player)){
player.setHealth(calculateHealth(player.getHealth(), 1));
}
}
}
if(thecount == 40){
for(Player player : plugin.getServer().getOnlinePlayers()){
if(player != null &&
player.getHealth() > 0 && player.getHealth() < 20
&& mcUsers.getProfile(player).getPowerLevel() >= 100
&& mcUsers.getProfile(player).getPowerLevel() < 500
&& mcUsers.getProfile(player).getRecentlyHurt() == 0
&& mcPermissions.getInstance().regeneration(player)){
player.setHealth(calculateHealth(player.getHealth(), 1));
}
}
}
/*
* RESET THE COUNT
*/
if(thecount < 40){
thecount++;
} else {
thecount = 1;
}
}
}

View File

@ -156,6 +156,7 @@ class PlayerList
private String playerName, gather, wgather, woodcutting, repair, mining, party, myspawn, myspawnworld, unarmed, herbalism, excavation, private String playerName, gather, wgather, woodcutting, repair, mining, party, myspawn, myspawnworld, unarmed, herbalism, excavation,
archery, swords, axes, invite, acrobatics, repairgather, unarmedgather, herbalismgather, excavationgather, archerygather, swordsgather, axesgather, acrobaticsgather; archery, swords, axes, invite, acrobatics, repairgather, unarmedgather, herbalismgather, excavationgather, archerygather, swordsgather, axesgather, acrobaticsgather;
private boolean dead; private boolean dead;
private int recentlyhurt = 0;
Player thisplayer; Player thisplayer;
char defaultColor; char defaultColor;
@ -415,6 +416,17 @@ class PlayerList
{ {
return player.getName().equals(playerName); return player.getName().equals(playerName);
} }
public void decreaseLastHurt(){
if(recentlyhurt >= 1){
recentlyhurt--;
}
}
public Integer getRecentlyHurt(){
return recentlyhurt;
}
public void setRecentlyHurt(Integer newvalue){
recentlyhurt = newvalue;
}
public void skillUpAxes(int newskill){ public void skillUpAxes(int newskill){
int x = 0; int x = 0;
if(axes != null){ if(axes != null){
@ -1172,6 +1184,11 @@ class PlayerList
return 0; return 0;
} }
} }
public int getPowerLevel(){
int x = 0;
x+=getMiningInt()+getRepairInt()+getWoodCuttingInt()+getUnarmedInt()+getHerbalismInt()+getExcavationInt()+getArcheryInt()+getSwordsInt()+getAxesInt()+getAcrobaticsInt();
return x;
}
public int getMiningGatherInt() { public int getMiningGatherInt() {
if(isInt(gather)){ if(isInt(gather)){
return Integer.parseInt(gather); return Integer.parseInt(gather);

View File

@ -102,6 +102,15 @@ public class mcm {
} }
return true; return true;
} }
public void arrowRetrievalCheck(Entity entity){
if(mcConfig.getInstance().isTracked(entity)){
Integer x = 0;
while(x < mcConfig.getInstance().getArrowCount(entity)){
mcDropItem(entity.getLocation(), 262);
x++;
}
}
}
public void archeryCheck(EntityDamageByProjectileEvent event){ public void archeryCheck(EntityDamageByProjectileEvent event){
Entity y = event.getDamager(); Entity y = event.getDamager();
Entity x = event.getEntity(); Entity x = event.getEntity();
@ -110,16 +119,59 @@ public class mcm {
*/ */
if(y instanceof Player){ if(y instanceof Player){
Player attacker = (Player)y; Player attacker = (Player)y;
/*
* DEBUG MESSAGE
*/
//attacker.sendMessage(event.getProjectile().toString());
if(event.getProjectile().toString().equals("CraftArrow") && mcPermissions.getInstance().archery(attacker)){ if(event.getProjectile().toString().equals("CraftArrow") && mcPermissions.getInstance().archery(attacker)){
if(!mcConfig.getInstance().isTracked(x) && event.getDamage() > 0){
mcConfig.getInstance().addArrowTrack(x, 0);
if(mcUsers.getProfile(attacker).getArcheryInt() >= 50 && mcUsers.getProfile(attacker).getArcheryInt() < 200){
if(Math.random() * 10 > 8){
mcConfig.getInstance().addArrowCount(x, 1);
}
} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 200 && mcUsers.getProfile(attacker).getArcheryInt() < 400){
if(Math.random() * 10 > 6){
mcConfig.getInstance().addArrowCount(x, 1);
}
} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 400 && mcUsers.getProfile(attacker).getArcheryInt() < 600){
if(Math.random() * 10 > 4){
mcConfig.getInstance().addArrowCount(x, 1);
}
} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 600 && mcUsers.getProfile(attacker).getArcheryInt() < 800){
if(Math.random() * 10 > 2){
mcConfig.getInstance().addArrowCount(x, 1);
}
} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 800){
mcConfig.getInstance().addArrowCount(x, 1);
}
} else {
if(event.getDamage() > 0){
if(mcUsers.getProfile(attacker).getArcheryInt() >= 50 && mcUsers.getProfile(attacker).getArcheryInt() < 200){
if(Math.random() * 10 > 8){
mcConfig.getInstance().addArrowCount(x, 1);
}
} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 200 && mcUsers.getProfile(attacker).getArcheryInt() < 400){
if(Math.random() * 10 > 6){
mcConfig.getInstance().addArrowCount(x, 1);
}
} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 400 && mcUsers.getProfile(attacker).getArcheryInt() < 600){
if(Math.random() * 10 > 4){
mcConfig.getInstance().addArrowCount(x, 1);
}
} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 600 && mcUsers.getProfile(attacker).getArcheryInt() < 800){
if(Math.random() * 10 > 2){
mcConfig.getInstance().addArrowCount(x, 1);
}
} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 800){
mcConfig.getInstance().addArrowCount(x, 1);
}
}
}
/* /*
* Defender is Monster * Defender is Monster
*/ */
if(x instanceof Monster){ if(x instanceof Monster){
Monster defender = (Monster)x; Monster defender = (Monster)x;
/*
* TRACK ARROWS USED AGAINST THE ENTITY
*/
if(mcUsers.getProfile(attacker).getArcheryInt() >= 50 && mcUsers.getProfile(attacker).getArcheryInt() < 250) if(mcUsers.getProfile(attacker).getArcheryInt() >= 50 && mcUsers.getProfile(attacker).getArcheryInt() < 250)
defender.setHealth(mcm.getInstance().calculateDamage(defender, 1)); defender.setHealth(mcm.getInstance().calculateDamage(defender, 1));
if(mcUsers.getProfile(attacker).getArcheryInt() >= 250 && mcUsers.getProfile(attacker).getArcheryInt() < 575) if(mcUsers.getProfile(attacker).getArcheryInt() >= 250 && mcUsers.getProfile(attacker).getArcheryInt() < 575)
@ -130,8 +182,9 @@ public class mcm {
defender.setHealth(mcm.getInstance().calculateDamage(defender, 4)); defender.setHealth(mcm.getInstance().calculateDamage(defender, 4));
if(mcUsers.getProfile(attacker).getArcheryInt() >= 1000) if(mcUsers.getProfile(attacker).getArcheryInt() >= 1000)
defender.setHealth(mcm.getInstance().calculateDamage(defender, 5)); defender.setHealth(mcm.getInstance().calculateDamage(defender, 5));
if(defender.getHealth() <= 0) if(defender.getHealth() <= 0){
mcm.getInstance().simulateNaturalDrops(defender); simulateNaturalDrops(defender);
}
//XP //XP
if(x instanceof Creeper) if(x instanceof Creeper)
mcUsers.getProfile(attacker).addArcheryGather(10); mcUsers.getProfile(attacker).addArcheryGather(10);
@ -394,8 +447,7 @@ public class mcm {
mcDropItem(loc, 351); mcDropItem(loc, 351);
} }
} }
arrowRetrievalCheck(entity);
} }
public void mcDropItem(Location loc, int id){ public void mcDropItem(Location loc, int id){
if(loc != null){ if(loc != null){
@ -696,6 +748,31 @@ public class mcm {
} }
return false; return false;
} }
public void bleedCheck(Player attacker, Entity x){
if(mcm.getInstance().isSwords(attacker.getItemInHand()) && !mcConfig.getInstance().isBleedTracked(x)){
if(mcUsers.getProfile(attacker).getSwordsInt() >= 50 && mcUsers.getProfile(attacker).getSwordsInt() < 200){
if(Math.random() * 10 > 8){
mcConfig.getInstance().addBleedTrack(x, 4);
attacker.sendMessage(ChatColor.RED+"**Your target is bleeding**");
}
} else if(mcUsers.getProfile(attacker).getSwordsInt() >= 200 && mcUsers.getProfile(attacker).getSwordsInt() < 600){
if(Math.random() * 10 > 6){
mcConfig.getInstance().addBleedTrack(x, 4);
attacker.sendMessage(ChatColor.RED+"**Your target is bleeding**");
}
} else if(mcUsers.getProfile(attacker).getSwordsInt() >= 600 && mcUsers.getProfile(attacker).getSwordsInt() < 900){
if(Math.random() * 10 > 4){
mcConfig.getInstance().addBleedTrack(x, 6);
attacker.sendMessage(ChatColor.RED+"**Your target is bleeding**");
}
} else if(mcUsers.getProfile(attacker).getSwordsInt() >= 900){
if(Math.random() * 100 > 75){
mcConfig.getInstance().addBleedTrack(x, 6);
attacker.sendMessage(ChatColor.RED+"**Your target is bleeding**");
}
}
}
}
public void playerVersusPlayerChecks(Entity x, Player attacker, EntityDamageByEntityEvent event, Plugin plugin){ public void playerVersusPlayerChecks(Entity x, Player attacker, EntityDamageByEntityEvent event, Plugin plugin){
if(x instanceof Player){ if(x instanceof Player){
if(mcLoadProperties.pvp == false){ if(mcLoadProperties.pvp == false){
@ -709,10 +786,14 @@ public class mcm {
return; return;
} }
} }
mcUsers.getProfile(defender).setRecentlyHurt(60);
/* /*
* AXE CRITICAL CHECK * AXE CRITICAL CHECK
*/ */
axeCriticalCheckPlayer(attacker, event, x, plugin); axeCriticalCheckPlayer(attacker, event, x, plugin);
if(!mcConfig.getInstance().isBleedTracked(x)){
bleedCheck(attacker, x);
}
if(mcPermissions.getInstance().unarmed(attacker) && attacker.getItemInHand().getTypeId() == 0){ if(mcPermissions.getInstance().unarmed(attacker) && attacker.getItemInHand().getTypeId() == 0){
//DMG MODIFIER //DMG MODIFIER
if(mcUsers.getProfile(attacker).getUnarmedInt() >= 50 && mcUsers.getProfile(attacker).getUnarmedInt() < 100){ if(mcUsers.getProfile(attacker).getUnarmedInt() >= 50 && mcUsers.getProfile(attacker).getUnarmedInt() < 100){
@ -793,6 +874,9 @@ public class mcm {
} }
public void playerVersusSquidChecks(EntityDamageByEntityEvent event, Player attacker, Entity x, int type){ public void playerVersusSquidChecks(EntityDamageByEntityEvent event, Player attacker, Entity x, int type){
if(x instanceof Squid){ if(x instanceof Squid){
if(!mcConfig.getInstance().isBleedTracked(x)){
bleedCheck(attacker, x);
}
Squid defender = (Squid)event.getEntity(); Squid defender = (Squid)event.getEntity();
if(isSwords(attacker.getItemInHand()) && defender.getHealth() > 0 && mcPermissions.getInstance().swords(attacker)){ if(isSwords(attacker.getItemInHand()) && defender.getHealth() > 0 && mcPermissions.getInstance().swords(attacker)){
mcUsers.getProfile(attacker).addSwordsGather(10); mcUsers.getProfile(attacker).addSwordsGather(10);
@ -872,6 +956,9 @@ public class mcm {
} }
public void playerVersusAnimalsChecks(Entity x, Player attacker, EntityDamageByEntityEvent event, int type){ public void playerVersusAnimalsChecks(Entity x, Player attacker, EntityDamageByEntityEvent event, int type){
if(x instanceof Animals){ if(x instanceof Animals){
if(!mcConfig.getInstance().isBleedTracked(x)){
bleedCheck(attacker, x);
}
Animals defender = (Animals)event.getEntity(); Animals defender = (Animals)event.getEntity();
if(isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){ if(isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(defender.getHealth() <= 0) if(defender.getHealth() <= 0)
@ -908,45 +995,15 @@ public class mcm {
} }
} }
} }
public void playerDeathByMonsterMessageCheck(Entity y, Player defender, Plugin plugin){
if(y instanceof Monster){
if(mcUsers.getProfile(defender).isDead())
return;
if(defender.getHealth() <= 0){
mcm.getInstance().simulateNaturalDrops(defender);
if(y instanceof Creeper){
mcUsers.getProfile(defender).setDead(true);
for(Player derp : plugin.getServer().getOnlinePlayers()){
derp.sendMessage(ChatColor.GRAY + "A "+ChatColor.DARK_GREEN+"Creeper"+ChatColor.GRAY+" has killed "+ChatColor.DARK_RED+defender.getName());
}
}
if(y instanceof Skeleton){
mcUsers.getProfile(defender).setDead(true);
for(Player derp : plugin.getServer().getOnlinePlayers()){
derp.sendMessage(ChatColor.GRAY + "A "+ChatColor.WHITE+"Skeleton"+ChatColor.GRAY+" has killed "+ChatColor.DARK_RED+defender.getName());
}
}
if(y instanceof Spider){
mcUsers.getProfile(defender).setDead(true);
for(Player derp : plugin.getServer().getOnlinePlayers()){
derp.sendMessage(ChatColor.GRAY + "A "+ChatColor.DARK_PURPLE+"Spider"+ChatColor.GRAY+" has killed "+ChatColor.DARK_RED+defender.getName());
}
}
if(y instanceof Zombie){
mcUsers.getProfile(defender).setDead(true);
for(Player derp : plugin.getServer().getOnlinePlayers()){
derp.sendMessage(ChatColor.GRAY + "A "+ChatColor.DARK_AQUA+"Zombie"+ChatColor.GRAY+" has killed "+ChatColor.DARK_RED+defender.getName());
}
}
}
}
}
public void playerVersusMonsterChecks(EntityDamageByEntityEvent event, Player attacker, Entity x, int type){ public void playerVersusMonsterChecks(EntityDamageByEntityEvent event, Player attacker, Entity x, int type){
if(x instanceof Monster){ if(x instanceof Monster){
/* /*
* AXE PROC CHECKS * AXE PROC CHECKS
*/ */
axeCriticalCheckMonster(attacker, event, x); axeCriticalCheckMonster(attacker, event, x);
if(!mcConfig.getInstance().isBleedTracked(x)){
bleedCheck(attacker, x);
}
Monster defender = (Monster)event.getEntity(); Monster defender = (Monster)event.getEntity();
if(isSwords(attacker.getItemInHand()) if(isSwords(attacker.getItemInHand())
&& defender.getHealth() > 0 && defender.getHealth() > 0
@ -1004,8 +1061,9 @@ public class mcm {
if(mcUsers.getProfile(attacker).getAxesInt() >= 500){ if(mcUsers.getProfile(attacker).getAxesInt() >= 500){
defender.setHealth(calculateDamage(defender, (4 - axeNerf(attacker.getItemInHand().getTypeId())))); defender.setHealth(calculateDamage(defender, (4 - axeNerf(attacker.getItemInHand().getTypeId()))));
} }
if(defender.getHealth() <= 0) if(defender.getHealth() <= 0 || defender.getHealth() - event.getDamage() <= 0){
mcm.getInstance().simulateNaturalDrops(defender); simulateNaturalDrops(defender);
}
} }
if(type == 0 && mcPermissions.getInstance().unarmed(attacker)){ if(type == 0 && mcPermissions.getInstance().unarmed(attacker)){
if(defender.getHealth() <= 0) if(defender.getHealth() <= 0)
@ -1047,8 +1105,9 @@ public class mcm {
} }
attacker.sendMessage(ChatColor.YELLOW+"Unarmed skill increased by "+skillups+"."+" Total ("+mcUsers.getProfile(attacker).getUnarmed()+")"); attacker.sendMessage(ChatColor.YELLOW+"Unarmed skill increased by "+skillups+"."+" Total ("+mcUsers.getProfile(attacker).getUnarmed()+")");
} }
if(defender.getHealth() <= 0) if(defender.getHealth() <= 0 || defender.getHealth() - event.getDamage() <= 0){
mcm.getInstance().simulateNaturalDrops(defender); simulateNaturalDrops(defender);
}
} }
} }
} }
@ -1108,7 +1167,7 @@ public class mcm {
Animals animal = (Animals)x; Animals animal = (Animals)x;
animal.setHealth(0); animal.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1118,7 +1177,7 @@ public class mcm {
Animals animal = (Animals)x; Animals animal = (Animals)x;
animal.setHealth(0); animal.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1128,7 +1187,7 @@ public class mcm {
Animals animal = (Animals)x; Animals animal = (Animals)x;
animal.setHealth(0); animal.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1138,7 +1197,7 @@ public class mcm {
Animals animal = (Animals)x; Animals animal = (Animals)x;
animal.setHealth(0); animal.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1148,7 +1207,7 @@ public class mcm {
Animals animal = (Animals)x; Animals animal = (Animals)x;
animal.setHealth(0); animal.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1162,7 +1221,7 @@ public class mcm {
Monster monster = (Monster)x; Monster monster = (Monster)x;
monster.setHealth(0); monster.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1172,7 +1231,7 @@ public class mcm {
Monster monster = (Monster)x; Monster monster = (Monster)x;
monster.setHealth(0); monster.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1182,7 +1241,7 @@ public class mcm {
Monster monster = (Monster)x; Monster monster = (Monster)x;
monster.setHealth(0); monster.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1192,7 +1251,7 @@ public class mcm {
Monster monster = (Monster)x; Monster monster = (Monster)x;
monster.setHealth(0); monster.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1202,7 +1261,7 @@ public class mcm {
Monster monster = (Monster)x; Monster monster = (Monster)x;
monster.setHealth(0); monster.setHealth(0);
simulateNaturalDrops(x); simulateNaturalDrops(x);
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
} }
} }
} }
@ -1215,7 +1274,7 @@ public class mcm {
if(x instanceof Player){ if(x instanceof Player){
Player player = (Player)x; Player player = (Player)x;
player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage()))); player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage())));
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
} }
} }
@ -1225,7 +1284,7 @@ public class mcm {
if(x instanceof Player){ if(x instanceof Player){
Player player = (Player)x; Player player = (Player)x;
player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage()))); player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage())));
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
} }
} }
@ -1235,7 +1294,7 @@ public class mcm {
if(x instanceof Player){ if(x instanceof Player){
Player player = (Player)x; Player player = (Player)x;
player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage()))); player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage())));
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
} }
} }
@ -1245,7 +1304,7 @@ public class mcm {
if(x instanceof Player){ if(x instanceof Player){
Player player = (Player)x; Player player = (Player)x;
player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage()))); player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage())));
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
} }
} }
@ -1255,7 +1314,7 @@ public class mcm {
if(x instanceof Player){ if(x instanceof Player){
Player player = (Player)x; Player player = (Player)x;
player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage()))); player.setHealth(calculateDamage(player, (player.getHealth() - event.getDamage())));
attacker.sendMessage(ChatColor.RED+"CRTICIAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!"); player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
} }
} }
@ -1334,90 +1393,81 @@ public class mcm {
public void mcmmoHelpCheck(String[] split, Player player, PlayerChatEvent event){ public void mcmmoHelpCheck(String[] split, Player player, PlayerChatEvent event){
if(split[0].equalsIgnoreCase("/woodcutting")){ if(split[0].equalsIgnoreCase("/woodcutting")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~WOODCUTTING INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"WOODCUTTING"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Chop down trees."); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Chopping down trees");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GRAY+"Double Drops start to happen at 10 woodcutting skill"); player.sendMessage(ChatColor.DARK_AQUA+"Double Drops: "+ChatColor.GREEN+"Double the normal loot");
player.sendMessage(ChatColor.GRAY+"and it gets more frequent from there.");
} }
if(split[0].equalsIgnoreCase("/archery")){ if(split[0].equalsIgnoreCase("/archery")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~ARCHERY INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"ARCHERY"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Shooting monsters."); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Attacking Monsters");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GRAY+"Damage scales with Archery skill"); player.sendMessage(ChatColor.DARK_AQUA+"Daze (Monsters): "+ChatColor.GREEN+"Enemies lose interest for 1 second");
player.sendMessage(ChatColor.GRAY+"Chance to daze player opponents with high skill lvl"); player.sendMessage(ChatColor.DARK_AQUA+"Daze (Players): "+ChatColor.GREEN+"Disorients foes");
player.sendMessage(ChatColor.DARK_AQUA+"Damage+: "+ChatColor.GREEN+"Modifies Damage");
} }
if(split[0].equalsIgnoreCase("/axes")){ if(split[0].equalsIgnoreCase("/axes")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~AXES INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"AXES"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Hacking up Monsters."); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Attacking Monsters");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GRAY+"Damage with Axes changes after 500 skill"); player.sendMessage(ChatColor.DARK_AQUA+"Critical Strikes (Monster): "+ChatColor.GREEN+"Instant kill");
player.sendMessage(ChatColor.GRAY+"Chance to do critical hits scales with skill"); player.sendMessage(ChatColor.DARK_AQUA+"Critical Strikes (Players): "+ChatColor.GREEN+"Double Damage");
player.sendMessage(ChatColor.DARK_AQUA+"Axe Mastery (500 SKILL): "+ChatColor.GREEN+"Modifies Damage");
} }
if(split[0].equalsIgnoreCase("/swords")){ if(split[0].equalsIgnoreCase("/swords")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~SWORDS INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"SWORDS"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Slicing up monsters"); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Attacking Monsters");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GRAY+"Parrying. It negates damage."); player.sendMessage(ChatColor.DARK_AQUA+"Parrying: "+ChatColor.GREEN+"Negates Damage");
player.sendMessage(ChatColor.GRAY+"Chance to parry scales with skill."); player.sendMessage(ChatColor.DARK_AQUA+"Bleed: "+ChatColor.GREEN+"Apply a 2 second bleed DoT to enemies");
} }
if(split[0].equalsIgnoreCase("/acrobatics")){ if(split[0].equalsIgnoreCase("/acrobatics")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~ACROBATICS INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"ACROBATICS"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Spraining ankles."); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Falling");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GRAY+"Rolling. Negates fall damage."); player.sendMessage(ChatColor.DARK_AQUA+"Roll: "+ChatColor.GREEN+"Negates Damage");
player.sendMessage(ChatColor.GRAY+"Chance to roll scales with skill.");
} }
if(split[0].equalsIgnoreCase("/mining")){ if(split[0].equalsIgnoreCase("/mining")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~MINING INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"MINING"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Mining ore and stone,"); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Mining Stone & Ore");
player.sendMessage(ChatColor.DARK_GRAY+"the xp rate depends entirely upon the rarity of what you're harvesting."); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.DARK_AQUA+"Double Drops: "+ChatColor.GREEN+"Double the normal loot");
player.sendMessage(ChatColor.GRAY+"Double Drops start to happen at 25 Mining skill,");
player.sendMessage(ChatColor.GRAY+"and the chance for it increases with skill.");
} }
if(split[0].equalsIgnoreCase("/repair")){ if(split[0].equalsIgnoreCase("/repair")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~REPAIR INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"REPAIR"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Repairing tools and armor."); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Repairing");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GRAY+"High skill levels make a proc to fully repair items happen more often."); player.sendMessage(ChatColor.DARK_AQUA+"Repair: "+ChatColor.GREEN+"Repair Iron Tools & Armor");
player.sendMessage(ChatColor.GREEN+"~~USE~~"); player.sendMessage(ChatColor.DARK_AQUA+"Diamond Repair (50+ SKILL): "+ChatColor.GREEN+"Repair Diamond Tools & Armor");
player.sendMessage(ChatColor.GRAY+"Approach an Anvil (Iron Block) with the item you wish ");
player.sendMessage(ChatColor.GRAY+"to repair in hand, right click to consume resources of the");
player.sendMessage(ChatColor.GRAY+"same type to repair it. This does not work for stone/wood/gold");
} }
if(split[0].equalsIgnoreCase("/unarmed")){ if(split[0].equalsIgnoreCase("/unarmed")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~UNARMED INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"UNARMED"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Punching monsters and players."); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Attacking Monsters");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GRAY+"Damage scales with unarmed skill. The first damage increase"); player.sendMessage(ChatColor.DARK_AQUA+"Disarm (Players): "+ChatColor.GREEN+"Drops the foes item held in hand");
player.sendMessage(ChatColor.DARK_GRAY+"happens at 50 skill. At very high skill levels, you will"); player.sendMessage(ChatColor.DARK_AQUA+"Damage+: "+ChatColor.GREEN+"Modifies Damage");
player.sendMessage(ChatColor.DARK_GRAY+"gain a proc to disarm player opponents on hit");
} }
if(split[0].equalsIgnoreCase("/herbalism")){ if(split[0].equalsIgnoreCase("/herbalism")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~HERBALISM INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"HERBALISM"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Farming and picking herbs."); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Harvesting Herbs");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GRAY+"Increases healing effects of bread and stew."); player.sendMessage(ChatColor.DARK_AQUA+"Food+: "+ChatColor.GREEN+"Modifies health received from bread/stew");
player.sendMessage(ChatColor.GRAY+"Allows for chance to receive double drops based on skill"); player.sendMessage(ChatColor.DARK_AQUA+"Double Drops (Wheat): "+ChatColor.GREEN+"Double the normal loot");
} }
if(split[0].equalsIgnoreCase("/excavation")){ if(split[0].equalsIgnoreCase("/excavation")){
event.setCancelled(true); event.setCancelled(true);
player.sendMessage(ChatColor.GREEN+"~~EXCAVATION INFO~~"); player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"ARCHERY"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.GREEN+"Gaining Skill: "+ChatColor.DARK_GRAY+"Digging."); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Digging and finding treasures");
player.sendMessage(ChatColor.GREEN+"~~EFFECTS~~"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
player.sendMessage(ChatColor.GRAY+"You will find treasures while digging based on your excavation,"); player.sendMessage(ChatColor.DARK_AQUA+"Treasure Hunter: "+ChatColor.GREEN+"Ability to dig for treasure");
player.sendMessage(ChatColor.GRAY+"and at high levels the rewards are quite nice. The items you get");
player.sendMessage(ChatColor.GRAY+"depend on the block you're digging.");
player.sendMessage(ChatColor.GRAY+"Different blocks give diffrent stuff.");
} }
if(split[0].equalsIgnoreCase("/"+mcLoadProperties.mcmmo)){ if(split[0].equalsIgnoreCase("/"+mcLoadProperties.mcmmo)){
event.setCancelled(true); event.setCancelled(true);
@ -1481,25 +1531,20 @@ public class mcm {
if(block != null if(block != null
&& block.getTypeId() == 42 && block.getTypeId() == 42
&& mcPermissions.getInstance().repair(player)){ && mcPermissions.getInstance().repair(player)){
player.sendMessage("DEBUG CODE 0");
short durability = is.getDurability(); short durability = is.getDurability();
if(player.getItemInHand().getDurability() > 0){ if(player.getItemInHand().getDurability() > 0){
//player.sendMessage("DEBUG CODE 1");
/* /*
* ARMOR * ARMOR
*/ */
if(mcm.getInstance().isArmor(is) && block.getTypeId() == 42){ if(mcm.getInstance().isArmor(is) && block.getTypeId() == 42){
//player.sendMessage("DEBUG CODE 2");
/* /*
* DIAMOND ARMOR * DIAMOND ARMOR
*/ */
if(mcm.getInstance().isDiamondArmor(is) && mcm.getInstance().hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= 50){ if(mcm.getInstance().isDiamondArmor(is) && mcm.getInstance().hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= 50){
//player.sendMessage("DEBUG CODE 3");
mcm.getInstance().removeDiamond(player); mcm.getInstance().removeDiamond(player);
player.getItemInHand().setDurability(mcm.getInstance().getArmorRepairAmount(is, player)); player.getItemInHand().setDurability(mcm.getInstance().getArmorRepairAmount(is, player));
mcUsers.getProfile(player).addRepairGather(50); mcUsers.getProfile(player).addRepairGather(50);
} else if (mcm.getInstance().isIronArmor(is) && mcm.getInstance().hasIron(player)){ } else if (mcm.getInstance().isIronArmor(is) && mcm.getInstance().hasIron(player)){
//player.sendMessage("DEBUG CODE 3");
/* /*
* IRON ARMOR * IRON ARMOR
*/ */
@ -1517,17 +1562,14 @@ public class mcm {
* TOOLS * TOOLS
*/ */
if(mcm.getInstance().isTools(is) && block.getTypeId() == 42){ if(mcm.getInstance().isTools(is) && block.getTypeId() == 42){
//player.sendMessage("DEBUG CODE 4");
/* /*
* IRON TOOLS * IRON TOOLS
*/ */
if(mcm.getInstance().isIronTools(is) && mcm.getInstance().hasIron(player)){ if(mcm.getInstance().isIronTools(is) && mcm.getInstance().hasIron(player)){
//player.sendMessage("DEBUG CODE 5");
is.setDurability(mcm.getInstance().getToolRepairAmount(is, durability, player)); is.setDurability(mcm.getInstance().getToolRepairAmount(is, durability, player));
mcm.getInstance().removeIron(player); mcm.getInstance().removeIron(player);
mcUsers.getProfile(player).addRepairGather(20); mcUsers.getProfile(player).addRepairGather(20);
} else if (mcm.getInstance().isDiamondTools(is) && mcm.getInstance().hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= 50){ //Check if its diamond and the player has diamonds } else if (mcm.getInstance().isDiamondTools(is) && mcm.getInstance().hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= 50){ //Check if its diamond and the player has diamonds
//player.sendMessage("DEBUG CODE 5");
/* /*
* DIAMOND TOOLS * DIAMOND TOOLS
*/ */

View File

@ -1,3 +1,3 @@
name: mcMMO name: mcMMO
main: com.gmail.nossr50.mcMMO main: com.gmail.nossr50.mcMMO
version: 0.7.10 version: 0.8