Another WIP of 0.9

This commit is contained in:
nossr50 2011-03-15 19:02:06 -07:00
parent c868e8b2ee
commit a8a35ae7a9
14 changed files with 241 additions and 40 deletions

View File

@ -4,18 +4,23 @@ Version 0.9
--NEW CONTENT-- --NEW CONTENT--
Woodcutting now has the "Tree Feller" Ability Woodcutting now has the "Tree Feller" Ability
Mining now has the "Super Breaker" 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 Unarmed now has the "Deflect Arrows" passive skill
Chimaera Wing Item Added Chimaera Wing Item Added
--CHANGES-- --CHANGES--
Woodcutting will drop the appropriate log on double drop procs
Herbalism now applies double drops to herbs Herbalism now applies double drops to herbs
/<skillname> now shows much more information to the player regarding their stats /<skillname> now shows much more information to the player regarding their stats
Axes skill Critical Strikes are now based directly on your skill level Axes skill Critical Strikes are now based directly on your skill level
Swords skill Bleed is now based directly on your skill level Swords skill Bleed chance is now based directly on your skill level
Unarmed disarm 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 Acrobatics now gives XP when you roll
--BUGFIXES-- --BUGFIXES--
Capped skills now have the correct proc chance
/mmoedit is no longer case sensitive /mmoedit is no longer case sensitive
More NPE errors fixed More NPE errors fixed

View File

@ -1,7 +1,5 @@
package com.gmail.nossr50; package com.gmail.nossr50;
import java.util.ArrayList;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
@ -55,6 +53,21 @@ public class mcBlockListener extends BlockListener {
Location loc = block.getLocation(); Location loc = block.getLocation();
int dmg = event.getDamageLevel().getLevel(); 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 * SUPER BREAKER CHECKS
*/ */
@ -112,8 +125,10 @@ public class mcBlockListener extends BlockListener {
for(Block blockx : mcConfig.getInstance().getTreeFeller()){ for(Block blockx : mcConfig.getInstance().getTreeFeller()){
if(blockx != null){ if(blockx != null){
Material mat = Material.getMaterial(block.getTypeId()); Material mat = Material.getMaterial(block.getTypeId());
byte damage = 0; byte type = 0;
ItemStack item = new ItemStack(mat, 1, (byte)0, damage); if(block.getTypeId() == 17)
type = block.getData();
ItemStack item = new ItemStack(mat, 1, (byte)0, type);
if(blockx.getTypeId() == 17){ if(blockx.getTypeId() == 17){
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item); blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
mcWoodCutting.getInstance().woodCuttingProcCheck(player, blockx, blockx.getLocation()); mcWoodCutting.getInstance().woodCuttingProcCheck(player, blockx, blockx.getLocation());
@ -121,7 +136,7 @@ public class mcBlockListener extends BlockListener {
} }
if(blockx.getTypeId() == 18){ if(blockx.getTypeId() == 18){
mat = Material.getMaterial(6); 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) if(Math.random() * 10 > 8)
blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item); blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
} }

View File

@ -289,7 +289,7 @@ public class mcCombat {
Player defender = (Player)x; Player defender = (Player)x;
if(mcPermissions.getInstance().unarmed(defender) && defender.getItemInHand().getTypeId() == 0){ if(mcPermissions.getInstance().unarmed(defender) && defender.getItemInHand().getTypeId() == 0){
if(mcUsers.getProfile(defender).getUnarmedInt() >= 1000){ if(mcUsers.getProfile(defender).getUnarmedInt() >= 1000){
if(Math.random() * 1000 >= 500){ if(Math.random() * 1000 <= 500){
event.setCancelled(true); event.setCancelled(true);
defender.sendMessage(ChatColor.WHITE+"**ARROW DEFLECT**"); defender.sendMessage(ChatColor.WHITE+"**ARROW DEFLECT**");
return; return;
@ -462,7 +462,7 @@ public class mcCombat {
} }
public boolean simulateUnarmedProc(Player player){ public boolean simulateUnarmedProc(Player player){
if(mcUsers.getProfile(player).getUnarmedInt() >= 750){ if(mcUsers.getProfile(player).getUnarmedInt() >= 750){
if(Math.random() * 1000 >= 750){ if(Math.random() * 1000 <= 750){
return true; return true;
} }
} else { } else {
@ -522,7 +522,7 @@ public class mcCombat {
public void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Entity x){ public void axeCriticalCheck(Player attacker, EntityDamageByEntityEvent event, Entity x){
if(mcm.getInstance().isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){ if(mcm.getInstance().isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
if(mcUsers.getProfile(attacker).getAxesInt() >= 750){ if(mcUsers.getProfile(attacker).getAxesInt() >= 750){
if(Math.random() * 1000 >= 750){ if(Math.random() * 1000 <= 750){
event.setDamage(event.getDamage() * 2); event.setDamage(event.getDamage() * 2);
attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!"); attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
if(x instanceof Player){ if(x instanceof Player){

View File

@ -13,6 +13,7 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityListener; import org.bukkit.event.entity.EntityListener;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.util.Vector;
public class mcEntityListener extends EntityListener { public class mcEntityListener extends EntityListener {
private final mcMMO plugin; private final mcMMO plugin;

View File

@ -19,7 +19,50 @@ public class mcExcavation {
} }
return instance; 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){ public void excavationProcCheck(Block block, Player player){
int type = block.getTypeId(); int type = block.getTypeId();
Location loc = block.getLocation(); Location loc = block.getLocation();

View File

@ -2,7 +2,7 @@ package com.gmail.nossr50;
public class mcLoadProperties { 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 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 int feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
public static void loadMain(){ public static void loadMain(){
@ -53,9 +53,11 @@ public class mcLoadProperties {
sulphur = properties.getBoolean("canexcavatesulphur", true); sulphur = properties.getBoolean("canexcavatesulphur", true);
netherrack = properties.getBoolean("canexcavatenetherrack", true); netherrack = properties.getBoolean("canexcavatenetherrack", true);
bones = properties.getBoolean("canexcavatebones", true); bones = properties.getBoolean("canexcavatebones", true);
/* /*
* CUSTOM COMMANDS * CUSTOM COMMANDS
*/ */
mcrefresh = properties.getString("/mcrefresh", "mcrefresh");
mcitem = properties.getString("/mcitem", "mcitem"); mcitem = properties.getString("/mcitem", "mcitem");
mcmmo = properties.getString("/mcmmo", "mcmmo"); mcmmo = properties.getString("/mcmmo", "mcmmo");
mcc = properties.getString("/mcc", "mcc"); mcc = properties.getString("/mcc", "mcc");

View File

@ -67,7 +67,7 @@ public class mcMMO extends JavaPlugin {
PluginManager pm = getServer().getPluginManager(); PluginManager pm = getServer().getPluginManager();
pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal, this); pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal, this);
pm.registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Priority.Normal, this); pm.registerEvent(Event.Type.PLAYER_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_CHAT, playerListener, Priority.Monitor, this);
pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.High, this); pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.High, this);
pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, 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_ITEM, playerListener, Priority.Monitor, this);
pm.registerEvent(Event.Type.PLAYER_RESPAWN, playerListener, Priority.Normal, 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.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.BLOCK_RIGHTCLICKED, blockListener, Priority.Normal, this);
//pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this); //pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Priority.Normal, this);
//Displays a message when plugin is loaded //Displays a message when plugin is loaded

View File

@ -26,7 +26,7 @@ public class mcMining {
return; return;
} }
int miningticks = 3; int miningticks = 2;
if(mcUsers.getProfile(player).getMiningInt() >= 50) if(mcUsers.getProfile(player).getMiningInt() >= 50)
miningticks++; miningticks++;
if(mcUsers.getProfile(player).getMiningInt() >= 150) if(mcUsers.getProfile(player).getMiningInt() >= 150)

View File

@ -30,6 +30,13 @@ public class mcPermissions {
private boolean permission(Player player, String string) { private boolean permission(Player player, String string) {
return permissionsPlugin.Security.permission(player, 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) { public boolean mmoedit(Player player) {
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.tools.mmoedit"); return permission(player, "mcmmo.tools.mmoedit");
@ -37,6 +44,13 @@ public class mcPermissions {
return true; return true;
} }
} }
public boolean excavationAbility(Player player){
if (permissionsEnabled) {
return permission(player, "mcmmo.ability.excavation");
} else {
return true;
}
}
public boolean unarmedAbility(Player player){ public boolean unarmedAbility(Player player){
if (permissionsEnabled) { if (permissionsEnabled) {
return permission(player, "mcmmo.ability.unarmed"); return permission(player, "mcmmo.ability.unarmed");

View File

@ -92,6 +92,48 @@ public class mcPlayerListener extends PlayerListener {
String playerName = player.getName(); String playerName = player.getName();
//Check if the command is an mcMMO related help command //Check if the command is an mcMMO related help command
mcm.getInstance().mcmmoHelpCheck(split, player, event); 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)){ if(split[0].equalsIgnoreCase("/"+mcLoadProperties.mcitem)){
} }

View File

@ -38,25 +38,31 @@ public class mcSkills {
if(mcUsers.getProfile(player).getTreeFellerCooldown() >= 1){ if(mcUsers.getProfile(player).getTreeFellerCooldown() >= 1){
mcUsers.getProfile(player).decreaseTreeFellerCooldown(); mcUsers.getProfile(player).decreaseTreeFellerCooldown();
if(mcUsers.getProfile(player).getTreeFellerCooldown() == 0){ 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){ if(mcUsers.getProfile(player).getSuperBreakerCooldown() >= 1){
mcUsers.getProfile(player).decreaseSuperBreakerCooldown(); mcUsers.getProfile(player).decreaseSuperBreakerCooldown();
if(mcUsers.getProfile(player).getSuperBreakerCooldown() == 0){ 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){ if(mcUsers.getProfile(player).getSerratedStrikesCooldown() >= 1){
mcUsers.getProfile(player).decreaseSerratedStrikesCooldown(); mcUsers.getProfile(player).decreaseSerratedStrikesCooldown();
if(mcUsers.getProfile(player).getSuperBreakerCooldown() == 0){ 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){ if(mcUsers.getProfile(player).getSkullSplitterCooldown() >= 1){
mcUsers.getProfile(player).decreaseSkullSplitterCooldown(); mcUsers.getProfile(player).decreaseSkullSplitterCooldown();
if(mcUsers.getProfile(player).getSkullSplitterCooldown() == 0){ 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)){ if(mcPermissions.getInstance().miningability(player)){
mcMining.getInstance().superBreakerCheck(player, block); mcMining.getInstance().superBreakerCheck(player, block);
} }
if(mcPermissions.getInstance().excavationAbility(player)){
mcExcavation.getInstance().gigaDrillBreakerActivationCheck(player, block);
}
axeActivationCheck(player, block); axeActivationCheck(player, block);
} }
public void skullSplitterCheck(Player player){ public void skullSplitterCheck(Player player){
@ -90,7 +99,7 @@ public class mcSkills {
mcUsers.getProfile(player).setAxePreparationMode(false); mcUsers.getProfile(player).setAxePreparationMode(false);
mcUsers.getProfile(player).setAxePreparationTicks(0); mcUsers.getProfile(player).setAxePreparationTicks(0);
} }
int ticks = 3; int ticks = 2;
if(mcUsers.getProfile(player).getAxesInt() >= 50) if(mcUsers.getProfile(player).getAxesInt() >= 50)
ticks++; ticks++;
if(mcUsers.getProfile(player).getAxesInt() >= 150) if(mcUsers.getProfile(player).getAxesInt() >= 150)
@ -136,7 +145,7 @@ public class mcSkills {
* AXES ABILITY * AXES ABILITY
*/ */
if(mcPermissions.getInstance().axesAbility(player)){ if(mcPermissions.getInstance().axesAbility(player)){
//Monitor the length of TreeFeller mode //Monitor the length of Skull Splitter mode
if(mcUsers.getProfile(player).getSkullSplitterMode()){ if(mcUsers.getProfile(player).getSkullSplitterMode()){
mcUsers.getProfile(player).decreaseSkullSplitterTicks(); mcUsers.getProfile(player).decreaseSkullSplitterTicks();
if(mcUsers.getProfile(player).getSkullSplitterTicks() <= 0){ 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){ public void XpCheck(Player player){
/* /*

View File

@ -156,8 +156,8 @@ class PlayerList
protected final Logger log = Logger.getLogger("Minecraft"); protected final Logger log = Logger.getLogger("Minecraft");
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, treeFellerMode, superbreakermode, serratedStrikesMode, axePreparationMode, skullSplitterMode; private boolean dead, treeFellerMode, superBreakerMode, gigaDrillBreakerMode, serratedStrikesMode, axePreparationMode, skullSplitterMode;
private int recentlyhurt = 0, bleedticks = 0, superbreakerticks = 0, superbreakercooldown = 0, 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, serratedStrikesTicks = 0, skullSplitterTicks = 0, skullSplitterCooldown = 0, serratedStrikesCooldown = 0, treeFellerTicks = 0, treeFellerCooldown = 0,
axePreparationTicks = 0; axePreparationTicks = 0;
Player thisplayer; Player thisplayer;
@ -436,7 +436,7 @@ class PlayerList
bleedticks = newvalue; bleedticks = newvalue;
} }
public Boolean hasCooldowns(){ public Boolean hasCooldowns(){
if((treeFellerCooldown + superbreakercooldown) >= 1){ if((treeFellerCooldown + superBreakerCooldown) >= 1){
return true; return true;
} else { } else {
return false; return false;
@ -524,6 +524,37 @@ class PlayerList
serratedStrikesCooldown--; 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 * TREE FELLER STUFF
*/ */
@ -559,31 +590,31 @@ class PlayerList
* MINING * MINING
*/ */
public boolean getSuperBreakerMode(){ public boolean getSuperBreakerMode(){
return superbreakermode; return superBreakerMode;
} }
public void setSuperBreakerMode(Boolean bool){ public void setSuperBreakerMode(Boolean bool){
superbreakermode = bool; superBreakerMode = bool;
} }
public Integer getSuperBreakerTicks(){ public Integer getSuperBreakerTicks(){
return superbreakerticks; return superBreakerTicks;
} }
public void setSuperBreakerTicks(Integer newvalue){ public void setSuperBreakerTicks(Integer newvalue){
superbreakerticks = newvalue; superBreakerTicks = newvalue;
} }
public void decreaseSuperBreakerTicks(){ public void decreaseSuperBreakerTicks(){
if(superbreakerticks >= 1){ if(superBreakerTicks >= 1){
superbreakerticks--; superBreakerTicks--;
} }
} }
public void setSuperBreakerCooldown(Integer newvalue){ public void setSuperBreakerCooldown(Integer newvalue){
superbreakercooldown = newvalue; superBreakerCooldown = newvalue;
} }
public int getSuperBreakerCooldown(){ public int getSuperBreakerCooldown(){
return superbreakercooldown; return superBreakerCooldown;
} }
public void decreaseSuperBreakerCooldown(){ public void decreaseSuperBreakerCooldown(){
if(superbreakercooldown >= 1){ if(superBreakerCooldown >= 1){
superbreakercooldown--; superBreakerCooldown--;
} }
} }

View File

@ -26,10 +26,9 @@ public class mcWoodCutting {
public void woodCuttingProcCheck(Player player, Block block, Location loc){ public void woodCuttingProcCheck(Player player, Block block, Location loc){
byte type = block.getData(); byte type = block.getData();
Material mat = Material.getMaterial(block.getTypeId()); Material mat = Material.getMaterial(block.getTypeId());
byte damage = 0;
if(player != null){ if(player != null){
if(Math.random() * 1000 <= mcUsers.getProfile(player).getWoodCuttingInt()){ 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); loc.getWorld().dropItemNaturally(loc, item);
return; return;
} }
@ -48,7 +47,7 @@ public class mcWoodCutting {
mcUsers.getProfile(player).setAxePreparationMode(false); mcUsers.getProfile(player).setAxePreparationMode(false);
mcUsers.getProfile(player).setAxePreparationTicks(0); mcUsers.getProfile(player).setAxePreparationTicks(0);
} }
int treefellticks = 3; int treefellticks = 2;
if(mcUsers.getProfile(player).getWoodCuttingInt() >= 50) if(mcUsers.getProfile(player).getWoodCuttingInt() >= 50)
treefellticks++; treefellticks++;
if(mcUsers.getProfile(player).getWoodCuttingInt() >= 150) if(mcUsers.getProfile(player).getWoodCuttingInt() >= 150)

View File

@ -153,6 +153,13 @@ public class mcm {
return false; 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){ public boolean isAxes(ItemStack is){
if(is.getTypeId() == 271 || is.getTypeId() == 258 || is.getTypeId() == 286 || is.getTypeId() == 279 || is.getTypeId() == 275){ if(is.getTypeId() == 271 || is.getTypeId() == 258 || is.getTypeId() == 286 || is.getTypeId() == 279 || is.getTypeId() == 275){
return true; return true;
@ -171,7 +178,7 @@ public class mcm {
if(split[0].equalsIgnoreCase("/woodcutting")){ if(split[0].equalsIgnoreCase("/woodcutting")){
event.setCancelled(true); event.setCancelled(true);
float skillvalue = (float)mcUsers.getProfile(player).getWoodCuttingInt(); float skillvalue = (float)mcUsers.getProfile(player).getWoodCuttingInt();
int treefellticks = 3; int treefellticks = 2;
if(mcUsers.getProfile(player).getWoodCuttingInt() >= 50) if(mcUsers.getProfile(player).getWoodCuttingInt() >= 50)
treefellticks++; treefellticks++;
if(mcUsers.getProfile(player).getWoodCuttingInt() >= 150) if(mcUsers.getProfile(player).getWoodCuttingInt() >= 150)
@ -235,7 +242,7 @@ public class mcm {
} else { } else {
percentage = "75"; percentage = "75";
} }
int ticks = 3; int ticks = 2;
if(mcUsers.getProfile(player).getAxesInt() >= 50) if(mcUsers.getProfile(player).getAxesInt() >= 50)
ticks++; ticks++;
if(mcUsers.getProfile(player).getAxesInt() >= 150) if(mcUsers.getProfile(player).getAxesInt() >= 150)
@ -310,7 +317,7 @@ public class mcm {
if(split[0].equalsIgnoreCase("/mining")){ if(split[0].equalsIgnoreCase("/mining")){
float skillvalue = (float)mcUsers.getProfile(player).getMiningInt(); float skillvalue = (float)mcUsers.getProfile(player).getMiningInt();
String percentage = String.valueOf((skillvalue / 1000) * 100); String percentage = String.valueOf((skillvalue / 1000) * 100);
int miningticks = 3; int miningticks = 2;
if(mcUsers.getProfile(player).getMiningInt() >= 50) if(mcUsers.getProfile(player).getMiningInt() >= 50)
miningticks++; miningticks++;
if(mcUsers.getProfile(player).getMiningInt() >= 150) if(mcUsers.getProfile(player).getMiningInt() >= 150)
@ -428,10 +435,29 @@ public class mcm {
} }
if(split[0].equalsIgnoreCase("/excavation")){ if(split[0].equalsIgnoreCase("/excavation")){
event.setCancelled(true); 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.RED+"-----[]"+ChatColor.GREEN+"EXCAVATION"+ChatColor.RED+"[]-----");
player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Digging and finding treasures"); 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.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.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)){ if(split[0].equalsIgnoreCase("/"+mcLoadProperties.mcmmo)){
event.setCancelled(true); event.setCancelled(true);