From a8a35ae7a906c807e81ecc4400d61a7f511ca1d6 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Tue, 15 Mar 2011 19:02:06 -0700 Subject: [PATCH] Another WIP of 0.9 --- mcMMO/Changelog.txt | 9 ++- mcMMO/com/gmail/nossr50/mcBlockListener.java | 25 ++++++-- mcMMO/com/gmail/nossr50/mcCombat.java | 6 +- mcMMO/com/gmail/nossr50/mcEntityListener.java | 1 + mcMMO/com/gmail/nossr50/mcExcavation.java | 45 ++++++++++++++- mcMMO/com/gmail/nossr50/mcLoadProperties.java | 4 +- mcMMO/com/gmail/nossr50/mcMMO.java | 4 +- mcMMO/com/gmail/nossr50/mcMining.java | 2 +- mcMMO/com/gmail/nossr50/mcPermissions.java | 14 +++++ mcMMO/com/gmail/nossr50/mcPlayerListener.java | 42 ++++++++++++++ mcMMO/com/gmail/nossr50/mcSkills.java | 35 ++++++++++-- mcMMO/com/gmail/nossr50/mcUsers.java | 57 ++++++++++++++----- mcMMO/com/gmail/nossr50/mcWoodCutting.java | 5 +- mcMMO/com/gmail/nossr50/mcm.java | 32 ++++++++++- 14 files changed, 241 insertions(+), 40 deletions(-) diff --git a/mcMMO/Changelog.txt b/mcMMO/Changelog.txt index 4392deda8..d85a2366b 100644 --- a/mcMMO/Changelog.txt +++ b/mcMMO/Changelog.txt @@ -4,18 +4,23 @@ Version 0.9 --NEW CONTENT-- Woodcutting now has the "Tree Feller" Ability Mining now has the "Super Breaker" Ability +Axes now has the "Skull Splitter" Ability +Excavation now has the "Giga Drill Breaker" Ability +Added /mcrefresh tool for refreshing cooldowns Unarmed now has the "Deflect Arrows" passive skill Chimaera Wing Item Added --CHANGES-- +Woodcutting will drop the appropriate log on double drop procs Herbalism now applies double drops to herbs / now shows much more information to the player regarding their stats Axes skill Critical Strikes are now based directly on your skill level -Swords skill Bleed is now based directly on your skill level -Unarmed disarm is now based directly on your skill level +Swords skill Bleed chance is now based directly on your skill level +Unarmed disarm chance is now based directly on your skill level Acrobatics now gives XP when you roll --BUGFIXES-- +Capped skills now have the correct proc chance /mmoedit is no longer case sensitive More NPE errors fixed diff --git a/mcMMO/com/gmail/nossr50/mcBlockListener.java b/mcMMO/com/gmail/nossr50/mcBlockListener.java index 3fd7a2b52..9ce45fa9d 100644 --- a/mcMMO/com/gmail/nossr50/mcBlockListener.java +++ b/mcMMO/com/gmail/nossr50/mcBlockListener.java @@ -1,7 +1,5 @@ package com.gmail.nossr50; -import java.util.ArrayList; - import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; @@ -55,6 +53,21 @@ public class mcBlockListener extends BlockListener { Location loc = block.getLocation(); int dmg = event.getDamageLevel().getLevel(); + /* + * GIGA DRILL BREAKER CHECKS + */ + if(mcUsers.getProfile(player).getGigaDrillBreakerMode() && dmg == 0 && mcExcavation.getInstance().canBeGigaDrillBroken(block) && mcm.getInstance().isShovel(inhand)){ + mcExcavation.getInstance().excavationProcCheck(block, player); + mcExcavation.getInstance().excavationProcCheck(block, player); + mcExcavation.getInstance().excavationProcCheck(block, player); + Material mat = Material.getMaterial(block.getTypeId()); + if(block.getTypeId() == 2) + mat = Material.DIRT; + byte type = block.getData(); + ItemStack item = new ItemStack(mat, 1, (byte)0, type); + block.setType(Material.AIR); + block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item); + } /* * SUPER BREAKER CHECKS */ @@ -112,8 +125,10 @@ public class mcBlockListener extends BlockListener { for(Block blockx : mcConfig.getInstance().getTreeFeller()){ if(blockx != null){ Material mat = Material.getMaterial(block.getTypeId()); - byte damage = 0; - ItemStack item = new ItemStack(mat, 1, (byte)0, damage); + byte type = 0; + if(block.getTypeId() == 17) + type = block.getData(); + ItemStack item = new ItemStack(mat, 1, (byte)0, type); if(blockx.getTypeId() == 17){ blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item); mcWoodCutting.getInstance().woodCuttingProcCheck(player, blockx, blockx.getLocation()); @@ -121,7 +136,7 @@ public class mcBlockListener extends BlockListener { } if(blockx.getTypeId() == 18){ mat = Material.getMaterial(6); - item = new ItemStack(mat, 1, (byte)0, damage); + item = new ItemStack(mat, 1, (byte)0, type); if(Math.random() * 10 > 8) blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item); } diff --git a/mcMMO/com/gmail/nossr50/mcCombat.java b/mcMMO/com/gmail/nossr50/mcCombat.java index 4944f0426..5cf83bdc5 100644 --- a/mcMMO/com/gmail/nossr50/mcCombat.java +++ b/mcMMO/com/gmail/nossr50/mcCombat.java @@ -289,7 +289,7 @@ public class mcCombat { Player defender = (Player)x; if(mcPermissions.getInstance().unarmed(defender) && defender.getItemInHand().getTypeId() == 0){ if(mcUsers.getProfile(defender).getUnarmedInt() >= 1000){ - if(Math.random() * 1000 >= 500){ + if(Math.random() * 1000 <= 500){ event.setCancelled(true); defender.sendMessage(ChatColor.WHITE+"**ARROW DEFLECT**"); return; @@ -462,7 +462,7 @@ public class mcCombat { } public boolean simulateUnarmedProc(Player player){ if(mcUsers.getProfile(player).getUnarmedInt() >= 750){ - if(Math.random() * 1000 >= 750){ + if(Math.random() * 1000 <= 750){ return true; } } else { @@ -522,7 +522,7 @@ public class mcCombat { public void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Entity x){ if(mcm.getInstance().isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){ if(mcUsers.getProfile(attacker).getAxesInt() >= 750){ - if(Math.random() * 1000 >= 750){ + if(Math.random() * 1000 <= 750){ event.setDamage(event.getDamage() * 2); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!"); if(x instanceof Player){ diff --git a/mcMMO/com/gmail/nossr50/mcEntityListener.java b/mcMMO/com/gmail/nossr50/mcEntityListener.java index 0282f9527..ddec98e1f 100644 --- a/mcMMO/com/gmail/nossr50/mcEntityListener.java +++ b/mcMMO/com/gmail/nossr50/mcEntityListener.java @@ -13,6 +13,7 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityListener; import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; public class mcEntityListener extends EntityListener { private final mcMMO plugin; diff --git a/mcMMO/com/gmail/nossr50/mcExcavation.java b/mcMMO/com/gmail/nossr50/mcExcavation.java index 61de2ad52..8243e0a68 100644 --- a/mcMMO/com/gmail/nossr50/mcExcavation.java +++ b/mcMMO/com/gmail/nossr50/mcExcavation.java @@ -19,7 +19,50 @@ public class mcExcavation { } return instance; } - + public void gigaDrillBreakerActivationCheck(Player player, Block block){ + if(mcm.getInstance().isShovel(player.getItemInHand())){ + if(block != null){ + if(!mcm.getInstance().abilityBlockCheck(block)) + return; + } + + int ticks = 2; + if(mcUsers.getProfile(player).getExcavationInt() >= 50) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 150) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 250) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 350) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 450) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 550) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 650) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 750) + ticks++; + + if(!mcUsers.getProfile(player).getGigaDrillBreakerMode() && mcUsers.getProfile(player).getGigaDrillBreakerCooldown() == 0){ + player.sendMessage(ChatColor.GREEN+"**GIGA DRILL BREAKER ACTIVATED**"); + mcUsers.getProfile(player).setGigaDrillBreakerTicks(ticks); + mcUsers.getProfile(player).setGigaDrillBreakerMode(true); + } + + if(!mcUsers.getProfile(player).getGigaDrillBreakerMode() && mcUsers.getProfile(player).getGigaDrillBreakerCooldown() >= 1){ + player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."); + } + } + } + public boolean canBeGigaDrillBroken(Block block){ + int i = block.getTypeId(); + if(i == 2||i == 3||i == 12||i == 13){ + return true; + } else { + return false; + } + } public void excavationProcCheck(Block block, Player player){ int type = block.getTypeId(); Location loc = block.getLocation(); diff --git a/mcMMO/com/gmail/nossr50/mcLoadProperties.java b/mcMMO/com/gmail/nossr50/mcLoadProperties.java index 6df264a09..816c9d5d2 100644 --- a/mcMMO/com/gmail/nossr50/mcLoadProperties.java +++ b/mcMMO/com/gmail/nossr50/mcLoadProperties.java @@ -2,7 +2,7 @@ package com.gmail.nossr50; public class mcLoadProperties { public static Boolean pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages; - public static String mcmmo, mcc, mcitem, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn; + public static String mcmmo, mcc, mcrefresh, mcitem, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn; public static int feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier; public static void loadMain(){ @@ -53,9 +53,11 @@ public class mcLoadProperties { sulphur = properties.getBoolean("canexcavatesulphur", true); netherrack = properties.getBoolean("canexcavatenetherrack", true); bones = properties.getBoolean("canexcavatebones", true); + /* * CUSTOM COMMANDS */ + mcrefresh = properties.getString("/mcrefresh", "mcrefresh"); mcitem = properties.getString("/mcitem", "mcitem"); mcmmo = properties.getString("/mcmmo", "mcmmo"); mcc = properties.getString("/mcc", "mcc"); diff --git a/mcMMO/com/gmail/nossr50/mcMMO.java b/mcMMO/com/gmail/nossr50/mcMMO.java index 8efa50bba..16adbb9e9 100644 --- a/mcMMO/com/gmail/nossr50/mcMMO.java +++ b/mcMMO/com/gmail/nossr50/mcMMO.java @@ -67,7 +67,7 @@ public class mcMMO extends JavaPlugin { PluginManager pm = getServer().getPluginManager(); pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal, this); pm.registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Priority.Normal, this); - pm.registerEvent(Event.Type.BLOCK_DAMAGED, blockListener, Priority.Normal, this); + pm.registerEvent(Event.Type.BLOCK_DAMAGED, blockListener, Priority.Low, this); pm.registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Monitor, this); pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.High, this); pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this); @@ -76,7 +76,7 @@ public class mcMMO extends JavaPlugin { pm.registerEvent(Event.Type.PLAYER_ITEM, playerListener, Priority.Monitor, this); pm.registerEvent(Event.Type.PLAYER_RESPAWN, playerListener, Priority.Normal, this); pm.registerEvent(Event.Type.PLAYER_ITEM_HELD, playerListener, Priority.Normal, this); - pm.registerEvent(Event.Type.ENTITY_DAMAGED, entityListener, Priority.Normal, this); + pm.registerEvent(Event.Type.ENTITY_DAMAGED, entityListener, Priority.Low, this); pm.registerEvent(Event.Type.BLOCK_RIGHTCLICKED, blockListener, Priority.Normal, this); //pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this); //Displays a message when plugin is loaded diff --git a/mcMMO/com/gmail/nossr50/mcMining.java b/mcMMO/com/gmail/nossr50/mcMining.java index 83ea7e964..f0778a989 100644 --- a/mcMMO/com/gmail/nossr50/mcMining.java +++ b/mcMMO/com/gmail/nossr50/mcMining.java @@ -26,7 +26,7 @@ public class mcMining { return; } - int miningticks = 3; + int miningticks = 2; if(mcUsers.getProfile(player).getMiningInt() >= 50) miningticks++; if(mcUsers.getProfile(player).getMiningInt() >= 150) diff --git a/mcMMO/com/gmail/nossr50/mcPermissions.java b/mcMMO/com/gmail/nossr50/mcPermissions.java index 9f16d2d3a..fb0931f30 100644 --- a/mcMMO/com/gmail/nossr50/mcPermissions.java +++ b/mcMMO/com/gmail/nossr50/mcPermissions.java @@ -30,6 +30,13 @@ public class mcPermissions { private boolean permission(Player player, String string) { return permissionsPlugin.Security.permission(player, string); } + public boolean mcrefresh(Player player) { + if (permissionsEnabled) { + return permission(player, "mcmmo.tools.mcrefresh"); + } else { + return true; + } + } public boolean mmoedit(Player player) { if (permissionsEnabled) { return permission(player, "mcmmo.tools.mmoedit"); @@ -37,6 +44,13 @@ public class mcPermissions { return true; } } + public boolean excavationAbility(Player player){ + if (permissionsEnabled) { + return permission(player, "mcmmo.ability.excavation"); + } else { + return true; + } + } public boolean unarmedAbility(Player player){ if (permissionsEnabled) { return permission(player, "mcmmo.ability.unarmed"); diff --git a/mcMMO/com/gmail/nossr50/mcPlayerListener.java b/mcMMO/com/gmail/nossr50/mcPlayerListener.java index fe9545176..b3d23fbb9 100644 --- a/mcMMO/com/gmail/nossr50/mcPlayerListener.java +++ b/mcMMO/com/gmail/nossr50/mcPlayerListener.java @@ -92,6 +92,48 @@ public class mcPlayerListener extends PlayerListener { String playerName = player.getName(); //Check if the command is an mcMMO related help command mcm.getInstance().mcmmoHelpCheck(split, player, event); + if(mcPermissions.permissionsEnabled && split[0].equalsIgnoreCase("/"+mcLoadProperties.mcrefresh)){ + event.setCancelled(true); + if(!mcPermissions.getInstance().mcrefresh(player)){ + player.sendMessage(ChatColor.YELLOW+"[mcMMO]"+ChatColor.DARK_RED +" Insufficient permissions."); + return; + } + if(split.length >= 2 && isPlayer(split[1])){ + player.sendMessage("You have refreshed "+split[1]+"'s cooldowns!"); + player = getPlayer(split[1]); + } + /* + * AXE PREPARATION MODE + */ + mcUsers.getProfile(player).setAxePreparationMode(false); + mcUsers.getProfile(player).setAxePreparationTicks(0); + /* + * GIGA DRILL BREAKER + */ + mcUsers.getProfile(player).setGigaDrillBreakerCooldown(0); + mcUsers.getProfile(player).setGigaDrillBreakerMode(false); + mcUsers.getProfile(player).setGigaDrillBreakerTicks(0); + /* + * SERRATED STRIKE + */ + mcUsers.getProfile(player).setSerratedStrikesCooldown(0); + mcUsers.getProfile(player).setSerratedStrikesMode(false); + mcUsers.getProfile(player).setSerratedStrikesTicks(0); + /* + * SUPER BREAKER + */ + mcUsers.getProfile(player).setSuperBreakerCooldown(0); + mcUsers.getProfile(player).setSuperBreakerMode(false); + mcUsers.getProfile(player).setSuperBreakerTicks(0); + /* + * TREE FELLER + */ + mcUsers.getProfile(player).setTreeFellerCooldown(0); + mcUsers.getProfile(player).setTreeFellerMode(false); + mcUsers.getProfile(player).setTreeFellerTicks(0); + + player.sendMessage(ChatColor.GREEN+"**ABILITIES REFRESHED!**"); + } if(split[0].equalsIgnoreCase("/"+mcLoadProperties.mcitem)){ } diff --git a/mcMMO/com/gmail/nossr50/mcSkills.java b/mcMMO/com/gmail/nossr50/mcSkills.java index fad0bdfba..e72cf7d92 100644 --- a/mcMMO/com/gmail/nossr50/mcSkills.java +++ b/mcMMO/com/gmail/nossr50/mcSkills.java @@ -38,25 +38,31 @@ public class mcSkills { if(mcUsers.getProfile(player).getTreeFellerCooldown() >= 1){ mcUsers.getProfile(player).decreaseTreeFellerCooldown(); if(mcUsers.getProfile(player).getTreeFellerCooldown() == 0){ - player.sendMessage(ChatColor.GREEN+"Your Tree Felling ability is refreshed!"); + player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Tree Feller "+ChatColor.GREEN+"ability is refreshed!"); } } if(mcUsers.getProfile(player).getSuperBreakerCooldown() >= 1){ mcUsers.getProfile(player).decreaseSuperBreakerCooldown(); if(mcUsers.getProfile(player).getSuperBreakerCooldown() == 0){ - player.sendMessage(ChatColor.GREEN+"Your Super Breaker ability is refreshed!"); + player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Super Breaker "+ChatColor.GREEN+"ability is refreshed!"); } } if(mcUsers.getProfile(player).getSerratedStrikesCooldown() >= 1){ mcUsers.getProfile(player).decreaseSerratedStrikesCooldown(); if(mcUsers.getProfile(player).getSuperBreakerCooldown() == 0){ - player.sendMessage(ChatColor.GREEN+"Your Serrated Strikes ability is refreshed!"); + player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Serrated Strikes "+ChatColor.GREEN+"ability is refreshed!"); } } if(mcUsers.getProfile(player).getSkullSplitterCooldown() >= 1){ mcUsers.getProfile(player).decreaseSkullSplitterCooldown(); if(mcUsers.getProfile(player).getSkullSplitterCooldown() == 0){ - player.sendMessage(ChatColor.GREEN+"Your Skull Splitter ability is refreshed!"); + player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Skull Splitter "+ChatColor.GREEN+"ability is refreshed!"); + } + } + if(mcUsers.getProfile(player).getGigaDrillBreakerCooldown() >= 1){ + mcUsers.getProfile(player).decreaseGigaDrillBreakerCooldown(); + if(mcUsers.getProfile(player).getGigaDrillBreakerCooldown() == 0){ + player.sendMessage(ChatColor.GREEN+"Your "+ChatColor.YELLOW+"Giga Drill Breaker "+ChatColor.GREEN+"ability is refreshed!"); } } } @@ -79,6 +85,9 @@ public class mcSkills { if(mcPermissions.getInstance().miningability(player)){ mcMining.getInstance().superBreakerCheck(player, block); } + if(mcPermissions.getInstance().excavationAbility(player)){ + mcExcavation.getInstance().gigaDrillBreakerActivationCheck(player, block); + } axeActivationCheck(player, block); } public void skullSplitterCheck(Player player){ @@ -90,7 +99,7 @@ public class mcSkills { mcUsers.getProfile(player).setAxePreparationMode(false); mcUsers.getProfile(player).setAxePreparationTicks(0); } - int ticks = 3; + int ticks = 2; if(mcUsers.getProfile(player).getAxesInt() >= 50) ticks++; if(mcUsers.getProfile(player).getAxesInt() >= 150) @@ -136,7 +145,7 @@ public class mcSkills { * AXES ABILITY */ if(mcPermissions.getInstance().axesAbility(player)){ - //Monitor the length of TreeFeller mode + //Monitor the length of Skull Splitter mode if(mcUsers.getProfile(player).getSkullSplitterMode()){ mcUsers.getProfile(player).decreaseSkullSplitterTicks(); if(mcUsers.getProfile(player).getSkullSplitterTicks() <= 0){ @@ -174,6 +183,20 @@ public class mcSkills { } } } + /* + * EXCAVATION ABILITY + */ + if(mcPermissions.getInstance().excavationAbility(player)){ + //Monitor the length of Giga Drill Breaker mode + if(mcUsers.getProfile(player).getGigaDrillBreakerMode()){ + mcUsers.getProfile(player).decreaseGigaDrillBreakerTicks(); + if(mcUsers.getProfile(player).getGigaDrillBreakerTicks() <= 0){ + mcUsers.getProfile(player).setGigaDrillBreakerMode(false); + mcUsers.getProfile(player).setGigaDrillBreakerCooldown(120); + player.sendMessage(ChatColor.GRAY+"**You feel spiral energy leaving you**"); + } + } + } } public void XpCheck(Player player){ /* diff --git a/mcMMO/com/gmail/nossr50/mcUsers.java b/mcMMO/com/gmail/nossr50/mcUsers.java index 4204efd05..b21088215 100644 --- a/mcMMO/com/gmail/nossr50/mcUsers.java +++ b/mcMMO/com/gmail/nossr50/mcUsers.java @@ -156,8 +156,8 @@ class PlayerList protected final Logger log = Logger.getLogger("Minecraft"); 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; - private boolean dead, treeFellerMode, superbreakermode, serratedStrikesMode, axePreparationMode, skullSplitterMode; - private int recentlyhurt = 0, bleedticks = 0, superbreakerticks = 0, superbreakercooldown = 0, + private boolean dead, treeFellerMode, superBreakerMode, gigaDrillBreakerMode, serratedStrikesMode, axePreparationMode, skullSplitterMode; + private int recentlyhurt = 0, bleedticks = 0, gigaDrillBreaker = 0, gigaDrillBreakerCooldown = 0, gigaDrillBreakerTicks = 0, superBreakerTicks = 0, superBreakerCooldown = 0, serratedStrikesTicks = 0, skullSplitterTicks = 0, skullSplitterCooldown = 0, serratedStrikesCooldown = 0, treeFellerTicks = 0, treeFellerCooldown = 0, axePreparationTicks = 0; Player thisplayer; @@ -436,7 +436,7 @@ class PlayerList bleedticks = newvalue; } public Boolean hasCooldowns(){ - if((treeFellerCooldown + superbreakercooldown) >= 1){ + if((treeFellerCooldown + superBreakerCooldown) >= 1){ return true; } else { return false; @@ -524,6 +524,37 @@ class PlayerList serratedStrikesCooldown--; } } + /* + * GIGA DRILL BREAKER + */ + public boolean getGigaDrillBreakerMode(){ + return gigaDrillBreakerMode; + } + public void setGigaDrillBreakerMode(Boolean bool){ + gigaDrillBreakerMode = bool; + } + public Integer getGigaDrillBreakerTicks(){ + return gigaDrillBreakerTicks; + } + public void setGigaDrillBreakerTicks(Integer newvalue){ + gigaDrillBreakerTicks = newvalue; + } + public void decreaseGigaDrillBreakerTicks(){ + if(gigaDrillBreakerTicks >= 1){ + gigaDrillBreakerTicks--; + } + } + public void setGigaDrillBreakerCooldown(Integer newvalue){ + gigaDrillBreakerCooldown = newvalue; + } + public int getGigaDrillBreakerCooldown(){ + return gigaDrillBreakerCooldown; + } + public void decreaseGigaDrillBreakerCooldown(){ + if(gigaDrillBreakerCooldown >= 1){ + gigaDrillBreakerCooldown--; + } + } /* * TREE FELLER STUFF */ @@ -559,31 +590,31 @@ class PlayerList * MINING */ public boolean getSuperBreakerMode(){ - return superbreakermode; + return superBreakerMode; } public void setSuperBreakerMode(Boolean bool){ - superbreakermode = bool; + superBreakerMode = bool; } public Integer getSuperBreakerTicks(){ - return superbreakerticks; + return superBreakerTicks; } public void setSuperBreakerTicks(Integer newvalue){ - superbreakerticks = newvalue; + superBreakerTicks = newvalue; } public void decreaseSuperBreakerTicks(){ - if(superbreakerticks >= 1){ - superbreakerticks--; + if(superBreakerTicks >= 1){ + superBreakerTicks--; } } public void setSuperBreakerCooldown(Integer newvalue){ - superbreakercooldown = newvalue; + superBreakerCooldown = newvalue; } public int getSuperBreakerCooldown(){ - return superbreakercooldown; + return superBreakerCooldown; } public void decreaseSuperBreakerCooldown(){ - if(superbreakercooldown >= 1){ - superbreakercooldown--; + if(superBreakerCooldown >= 1){ + superBreakerCooldown--; } } diff --git a/mcMMO/com/gmail/nossr50/mcWoodCutting.java b/mcMMO/com/gmail/nossr50/mcWoodCutting.java index f9e6412f3..e7baa771c 100644 --- a/mcMMO/com/gmail/nossr50/mcWoodCutting.java +++ b/mcMMO/com/gmail/nossr50/mcWoodCutting.java @@ -26,10 +26,9 @@ public class mcWoodCutting { public void woodCuttingProcCheck(Player player, Block block, Location loc){ byte type = block.getData(); Material mat = Material.getMaterial(block.getTypeId()); - byte damage = 0; if(player != null){ if(Math.random() * 1000 <= mcUsers.getProfile(player).getWoodCuttingInt()){ - ItemStack item = new ItemStack(mat, 1, type, damage); + ItemStack item = new ItemStack(mat, 1, (short) 0, type); loc.getWorld().dropItemNaturally(loc, item); return; } @@ -48,7 +47,7 @@ public class mcWoodCutting { mcUsers.getProfile(player).setAxePreparationMode(false); mcUsers.getProfile(player).setAxePreparationTicks(0); } - int treefellticks = 3; + int treefellticks = 2; if(mcUsers.getProfile(player).getWoodCuttingInt() >= 50) treefellticks++; if(mcUsers.getProfile(player).getWoodCuttingInt() >= 150) diff --git a/mcMMO/com/gmail/nossr50/mcm.java b/mcMMO/com/gmail/nossr50/mcm.java index 283ca773c..ce3f0d322 100644 --- a/mcMMO/com/gmail/nossr50/mcm.java +++ b/mcMMO/com/gmail/nossr50/mcm.java @@ -153,6 +153,13 @@ public class mcm { return false; } } + public 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){ if(is.getTypeId() == 271 || is.getTypeId() == 258 || is.getTypeId() == 286 || is.getTypeId() == 279 || is.getTypeId() == 275){ return true; @@ -171,7 +178,7 @@ public class mcm { if(split[0].equalsIgnoreCase("/woodcutting")){ event.setCancelled(true); float skillvalue = (float)mcUsers.getProfile(player).getWoodCuttingInt(); - int treefellticks = 3; + int treefellticks = 2; if(mcUsers.getProfile(player).getWoodCuttingInt() >= 50) treefellticks++; if(mcUsers.getProfile(player).getWoodCuttingInt() >= 150) @@ -235,7 +242,7 @@ public class mcm { } else { percentage = "75"; } - int ticks = 3; + int ticks = 2; if(mcUsers.getProfile(player).getAxesInt() >= 50) ticks++; if(mcUsers.getProfile(player).getAxesInt() >= 150) @@ -310,7 +317,7 @@ public class mcm { if(split[0].equalsIgnoreCase("/mining")){ float skillvalue = (float)mcUsers.getProfile(player).getMiningInt(); String percentage = String.valueOf((skillvalue / 1000) * 100); - int miningticks = 3; + int miningticks = 2; if(mcUsers.getProfile(player).getMiningInt() >= 50) miningticks++; if(mcUsers.getProfile(player).getMiningInt() >= 150) @@ -428,10 +435,29 @@ public class mcm { } if(split[0].equalsIgnoreCase("/excavation")){ event.setCancelled(true); + int ticks = 2; + if(mcUsers.getProfile(player).getExcavationInt() >= 50) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 150) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 250) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 350) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 450) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 550) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 650) + ticks++; + if(mcUsers.getProfile(player).getExcavationInt() >= 750) + ticks++; player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"EXCAVATION"+ChatColor.RED+"[]-----"); player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Digging and finding treasures"); player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---"); + player.sendMessage(ChatColor.DARK_AQUA+"Giga Drill Breaker (ABILITY): "+ChatColor.GREEN+"3x Drop Rate, 3x EXP, +Speed"); player.sendMessage(ChatColor.DARK_AQUA+"Treasure Hunter: "+ChatColor.GREEN+"Ability to dig for treasure"); + player.sendMessage(ChatColor.RED+"Giga Drill Breaker Length: "+ChatColor.YELLOW+(ticks * 2)+"s"); } if(split[0].equalsIgnoreCase("/"+mcLoadProperties.mcmmo)){ event.setCancelled(true);