All changes up to 0.9.10

This commit is contained in:
nossr50 2011-03-26 15:01:26 -07:00
parent bb1c85ea4a
commit 318f5876d2
17 changed files with 183 additions and 128 deletions

View File

@ -1,5 +1,27 @@
Changelog:
#Versions without changelogs probably had very small misc fixes, like tweaks to the source code#
Version 0.9.10
Party invites now show who they are from
Mushrooms added to Dirt/Grass excavation loot tables, drops with 500+ skill
mcMMO configuration files property setting names have been changed for readability
Fixed bug where Gold and Iron wouldn't drop anything during Super Breaker
Added /mcability info to /mcc
Potentially fixed NPE error when checking players for being in same party for PVP XP
Removed sand specific diamond drop from sand excavation loot table, Diamonds can still drop globally for sand
Added a global XP gain multiplier, increase it to increase XP gained
Reduced PVE XP for Unarmed, now identical to Axes/Swords
Changed Chat priority in mcMMO to be higher, this should help plugin conflicts
Mushroom XP raised to 40 from 10
Flower XP raised to 10 from 3
Version 0.9.9
Fixed problem where entities never got removed from the arrow retrieval list of entities
Version 0.9.8
EntityLiving shouldn't be cast to entities that are not an instance of EntityLiving
Added a null check in the timer for players being null before proceeding
Version 0.9.7
Procs/XP Gain will no longer happen when the Entity is immune to damage (Thanks EdwardHand!)
Axes critical damage versus players reduced to 150% damage from 200% damage

View File

@ -19,7 +19,7 @@ public class mcAcrobatics {
if(!mcConfig.getInstance().isBlockWatched(loc.getWorld().getBlockAt(xx, y, z))
&& mcPermissions.getInstance().acrobatics(player)){
if(!event.isCancelled())
mcUsers.getProfile(player).addAcrobaticsGather(event.getDamage() * 8);
mcUsers.getProfile(player).addAcrobaticsGather((event.getDamage() * 8) * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(player);
event.setCancelled(true);
}
@ -32,7 +32,7 @@ public class mcAcrobatics {
&& mcPermissions.getInstance().acrobatics(player)){
if(!event.isCancelled())
mcUsers.getProfile(player).addAcrobaticsGather(event.getDamage() * 8);
mcUsers.getProfile(player).addAcrobaticsGather(event.getDamage() * 12);
mcUsers.getProfile(player).addAcrobaticsGather((event.getDamage() * 12) * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(player);
mcConfig.getInstance().addBlockWatch(loc.getWorld().getBlockAt(xx, y, z));
if(player.getHealth() - event.getDamage() <= 0){

View File

@ -15,8 +15,6 @@ import org.bukkit.event.block.BlockRightClickEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
public class mcBlockListener extends BlockListener {
private final mcMMO plugin;
@ -143,11 +141,11 @@ public class mcBlockListener extends BlockListener {
if(mcLoadProperties.woodcuttingrequiresaxe){
if(mcm.getInstance().isAxes(inhand)){
mcWoodCutting.getInstance().woodCuttingProcCheck(player, block, loc);
mcUsers.getProfile(player).addWoodcuttingGather(7);
mcUsers.getProfile(player).addWoodcuttingGather(7 * mcLoadProperties.xpGainMultiplier);
}
} else {
mcWoodCutting.getInstance().woodCuttingProcCheck(player, block, loc);
mcUsers.getProfile(player).addWoodcuttingGather(7);
mcUsers.getProfile(player).addWoodcuttingGather(7 * mcLoadProperties.xpGainMultiplier);
}
mcSkills.getInstance().XpCheck(player);
/*

View File

@ -92,7 +92,9 @@ public class mcCombat {
/*
* PVP XP
*/
if(attacker != null && defender != null && mcLoadProperties.pvpxp && !mcParty.getInstance().inSameParty(attacker, defender)){
if(attacker != null && defender != null && mcLoadProperties.pvpxp){
if(mcUsers.getProfile(defender).inParty() && mcUsers.getProfile(attacker).inParty() && mcParty.getInstance().inSameParty(attacker, defender))
return;
if(mcm.getInstance().isAxes(attacker.getItemInHand()))
mcUsers.getProfile(attacker).addAxesGather((event.getDamage() * 3) * mcLoadProperties.pvpxprewardmodifier);
if(mcm.getInstance().isSwords(attacker.getItemInHand()))
@ -113,13 +115,13 @@ public class mcCombat {
}
Squid defender = (Squid)event.getEntity();
if(mcm.getInstance().isSwords(attacker.getItemInHand()) && defender.getHealth() > 0 && mcPermissions.getInstance().swords(attacker)){
mcUsers.getProfile(attacker).addSwordsGather(10);
mcUsers.getProfile(attacker).addSwordsGather(10 * mcLoadProperties.xpGainMultiplier);
}
mcSkills.getInstance().XpCheck(attacker);
if(mcm.getInstance().isAxes(attacker.getItemInHand())
&& defender.getHealth() > 0
&& mcPermissions.getInstance().axes(attacker)){
mcUsers.getProfile(attacker).addAxesGather(10);
mcUsers.getProfile(attacker).addAxesGather(10 * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(attacker);
}
if(mcm.getInstance().isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
@ -152,7 +154,7 @@ public class mcCombat {
}
//XP
if(defender.getHealth() != 0){
mcUsers.getProfile(attacker).addUnarmedGather(10);
mcUsers.getProfile(attacker).addUnarmedGather(10 * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(attacker);
}
}
@ -207,15 +209,15 @@ public class mcCombat {
&& mcPermissions.getInstance().swords(attacker)){
if(!mcConfig.getInstance().isMobSpawnTracked(x)){
if(x instanceof Creeper)
mcUsers.getProfile(attacker).addSwordsGather(10);
mcUsers.getProfile(attacker).addSwordsGather(10 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Spider)
mcUsers.getProfile(attacker).addSwordsGather(7);
mcUsers.getProfile(attacker).addSwordsGather(7 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Skeleton)
mcUsers.getProfile(attacker).addSwordsGather(5);
mcUsers.getProfile(attacker).addSwordsGather(5 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Zombie)
mcUsers.getProfile(attacker).addSwordsGather(3);
mcUsers.getProfile(attacker).addSwordsGather(3 * mcLoadProperties.xpGainMultiplier);
if(x instanceof PigZombie)
mcUsers.getProfile(attacker).addSwordsGather(7);
mcUsers.getProfile(attacker).addSwordsGather(7 * mcLoadProperties.xpGainMultiplier);
}
mcSkills.getInstance().XpCheck(attacker);
}
@ -223,17 +225,16 @@ public class mcCombat {
&& defender.getHealth() > 0
&& mcPermissions.getInstance().axes(attacker)){
if(!mcConfig.getInstance().isMobSpawnTracked(x)){
mcUsers.getProfile(attacker).addAxesGather(1);
if(x instanceof Creeper)
mcUsers.getProfile(attacker).addAxesGather(10);
mcUsers.getProfile(attacker).addAxesGather(10 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Spider)
mcUsers.getProfile(attacker).addAxesGather(7);
mcUsers.getProfile(attacker).addAxesGather(7 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Skeleton)
mcUsers.getProfile(attacker).addAxesGather(5);
mcUsers.getProfile(attacker).addAxesGather(5 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Zombie)
mcUsers.getProfile(attacker).addAxesGather(3);
mcUsers.getProfile(attacker).addAxesGather(3 * mcLoadProperties.xpGainMultiplier);
if(x instanceof PigZombie)
mcUsers.getProfile(attacker).addAxesGather(7);
mcUsers.getProfile(attacker).addAxesGather(7 * mcLoadProperties.xpGainMultiplier);
}
mcSkills.getInstance().XpCheck(attacker);
}
@ -268,15 +269,15 @@ public class mcCombat {
//XP
if(!mcConfig.getInstance().isMobSpawnTracked(x)){
if(x instanceof Creeper)
mcUsers.getProfile(attacker).addUnarmedGather(20);
mcUsers.getProfile(attacker).addUnarmedGather(10 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Spider)
mcUsers.getProfile(attacker).addUnarmedGather(15);
mcUsers.getProfile(attacker).addUnarmedGather(7 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Skeleton)
mcUsers.getProfile(attacker).addUnarmedGather(10);
mcUsers.getProfile(attacker).addUnarmedGather(5 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Zombie)
mcUsers.getProfile(attacker).addUnarmedGather(5);
mcUsers.getProfile(attacker).addUnarmedGather(3 * mcLoadProperties.xpGainMultiplier);
if(x instanceof PigZombie)
mcUsers.getProfile(attacker).addUnarmedGather(15);
mcUsers.getProfile(attacker).addUnarmedGather(7 * mcLoadProperties.xpGainMultiplier);
}
mcSkills.getInstance().XpCheck(attacker);
}
@ -358,22 +359,21 @@ public class mcCombat {
//XP
if(!mcConfig.getInstance().isMobSpawnTracked(x)){
if(x instanceof Creeper)
mcUsers.getProfile(attacker).addArcheryGather(10);
mcUsers.getProfile(attacker).addArcheryGather(10 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Spider)
mcUsers.getProfile(attacker).addArcheryGather(7);
mcUsers.getProfile(attacker).addArcheryGather(7 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Skeleton)
mcUsers.getProfile(attacker).addArcheryGather(5);
mcUsers.getProfile(attacker).addArcheryGather(5 * mcLoadProperties.xpGainMultiplier);
if(x instanceof Zombie)
mcUsers.getProfile(attacker).addArcheryGather(3);
mcUsers.getProfile(attacker).addArcheryGather(3 * mcLoadProperties.xpGainMultiplier);
if(x instanceof PigZombie)
mcUsers.getProfile(attacker).addArcheryGather(7);
mcUsers.getProfile(attacker).addArcheryGather(7 * mcLoadProperties.xpGainMultiplier);
}
}
/*
* Defender is Animals
*/
if(x instanceof Animals){
Animals defender = (Animals)x;
if(mcUsers.getProfile(attacker).getArcheryInt() >= 50 && mcUsers.getProfile(attacker).getArcheryInt() < 250)
event.setDamage(calculateDamage(event, 1));
if(mcUsers.getProfile(attacker).getArcheryInt() >= 250 && mcUsers.getProfile(attacker).getArcheryInt() < 575)

View File

@ -31,6 +31,11 @@ public class mcConfig {
public ArrayList<Entity> getBleedTracked() {return bleedTracker;}
public void addArrowTrack(Entity entity, Integer arrowcount) {arrowTracker.put(entity, arrowcount);}
public Integer getArrowCount(Entity entity) {return arrowTracker.get(entity);}
public void removeArrowTracked(Entity entity){
if(arrowTracker.containsKey(entity)){
arrowTracker.remove(entity);
}
}
public void removeBleedTrack(Entity entity){
bleedTracker.remove(entity);
}

View File

@ -39,9 +39,14 @@ public class mcEntityListener extends EntityListener {
}
}
public void onEntityDamage(EntityDamageEvent event) {
/*
* CHECK FOR INVULNERABILITY
*/
if(event.getEntity() instanceof CraftEntity){
CraftEntity cEntity = (CraftEntity)event.getEntity();
EntityLiving entity = (EntityLiving)cEntity.getHandle();
if(entity.noDamageTicks < entity.maxNoDamageTicks/2.0F){
if(cEntity.getHandle() instanceof EntityLiving){
EntityLiving entityliving = (EntityLiving)cEntity.getHandle();
if(entityliving.noDamageTicks < entityliving.maxNoDamageTicks/2.0F){
Entity x = event.getEntity();
DamageCause type = event.getCause();
/*
@ -161,6 +166,8 @@ public class mcEntityListener extends EntityListener {
mcUsers.getProfile(herpderp).setRecentlyHurt(30);
}
}
}
}
}
public void onEntityDeath(EntityDeathEvent event) {
Entity x = event.getEntity();

View File

@ -68,20 +68,22 @@ public class mcExcavation {
Location loc = block.getLocation();
ItemStack is = null;
Material mat = null;
if(type == 2 && mcUsers.getProfile(player).getExcavationInt() > 250){
//CHANCE TO GET EGGS
if(mcLoadProperties.eggs == true && Math.random() * 100 > 99){
mcUsers.getProfile(player).addExcavationGather(10);
mat = Material.getMaterial(344);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
}
//CHANCE TO GET APPLES
if(mcLoadProperties.apples == true && Math.random() * 100 > 99){
mcUsers.getProfile(player).addExcavationGather(10);
mat = Material.getMaterial(260);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
if(type == 2){
if(mcUsers.getProfile(player).getExcavationInt() > 250){
//CHANCE TO GET EGGS
if(mcLoadProperties.eggs == true && Math.random() * 100 > 99){
mcUsers.getProfile(player).addExcavationGather(10 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(344);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
}
//CHANCE TO GET APPLES
if(mcLoadProperties.apples == true && Math.random() * 100 > 99){
mcUsers.getProfile(player).addExcavationGather(10 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(260);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
}
}
}
//DIRT SAND OR GRAVEL
@ -90,7 +92,7 @@ public class mcExcavation {
if(mcUsers.getProfile(player).getExcavationInt() > 750){
//CHANCE TO GET CAKE
if(mcLoadProperties.cake == true && Math.random() * 2000 > 1999){
mcUsers.getProfile(player).addExcavationGather(300);
mcUsers.getProfile(player).addExcavationGather(300 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(354);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
@ -99,7 +101,7 @@ public class mcExcavation {
if(mcUsers.getProfile(player).getExcavationInt() > 350){
//CHANCE TO GET DIAMOND
if(mcLoadProperties.diamond == true && Math.random() * 750 > 749){
mcUsers.getProfile(player).addExcavationGather(100);
mcUsers.getProfile(player).addExcavationGather(100 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(264);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
@ -108,7 +110,7 @@ public class mcExcavation {
if(mcUsers.getProfile(player).getExcavationInt() > 250){
//CHANCE TO GET YELLOW MUSIC
if(mcLoadProperties.music == true && Math.random() * 2000 > 1999){
mcUsers.getProfile(player).addExcavationGather(300);
mcUsers.getProfile(player).addExcavationGather(300 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(2256);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
@ -118,7 +120,7 @@ public class mcExcavation {
if(mcUsers.getProfile(player).getExcavationInt() > 350){
//CHANCE TO GET GREEN MUSIC
if(mcLoadProperties.music == true && Math.random() * 2000 > 1999){
mcUsers.getProfile(player).addExcavationGather(300);
mcUsers.getProfile(player).addExcavationGather(300 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(2257);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
@ -129,31 +131,35 @@ public class mcExcavation {
if(type == 12){
//CHANCE TO GET GLOWSTONE
if(mcLoadProperties.glowstone == true && mcUsers.getProfile(player).getExcavationInt() > 50 && Math.random() * 100 > 95){
mcUsers.getProfile(player).addExcavationGather(8);
mcUsers.getProfile(player).addExcavationGather(8 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(348);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
}
//CHANCE TO GET SLOWSAND
if(mcLoadProperties.slowsand == true && mcUsers.getProfile(player).getExcavationInt() > 650 && Math.random() * 200 > 199){
mcUsers.getProfile(player).addExcavationGather(8);
mcUsers.getProfile(player).addExcavationGather(8 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(88);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
}
//CHANCE TO GET DIAMOND
if(mcLoadProperties.diamond == true && mcUsers.getProfile(player).getExcavationInt() > 500 && Math.random() * 500 > 499){
mcUsers.getProfile(player).addExcavationGather(100);
mat = Material.getMaterial(264);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
}
}
//GRASS OR DIRT
if((type == 2 || type == 3) && mcUsers.getProfile(player).getExcavationInt() > 25){
if(type == 2 || type == 3){
//CHANCE FOR SHROOMS
if(mcLoadProperties.mushrooms == true && mcUsers.getProfile(player).getExcavationInt() > 500 && Math.random() * 200 > 199){
mcUsers.getProfile(player).addExcavationGather(8 * mcLoadProperties.xpGainMultiplier);
if(Math.random() * 10 > 5){
mat = Material.getMaterial(39);
} else {
mat = Material.getMaterial(40);
}
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
}
//CHANCE TO GET GLOWSTONE
if(mcLoadProperties.glowstone == true && Math.random() * 100 > 95){
mcUsers.getProfile(player).addExcavationGather(8);
if(mcLoadProperties.glowstone == true && mcUsers.getProfile(player).getExcavationInt() > 25 && Math.random() * 100 > 95){
mcUsers.getProfile(player).addExcavationGather(8 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(348);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
@ -163,7 +169,7 @@ public class mcExcavation {
if(type == 13){
//CHANCE TO GET NETHERRACK
if(mcLoadProperties.netherrack == true && mcUsers.getProfile(player).getExcavationInt() > 850 && Math.random() * 200 > 199){
mcUsers.getProfile(player).addExcavationGather(3);
mcUsers.getProfile(player).addExcavationGather(3 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(87);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
@ -171,7 +177,7 @@ public class mcExcavation {
//CHANCE TO GET SULPHUR
if(mcLoadProperties.sulphur == true && mcUsers.getProfile(player).getExcavationInt() > 75){
if(Math.random() * 10 > 9){
mcUsers.getProfile(player).addExcavationGather(3);
mcUsers.getProfile(player).addExcavationGather(3 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(289);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);
@ -180,7 +186,7 @@ public class mcExcavation {
//CHANCE TO GET BONES
if(mcLoadProperties.bones == true && mcUsers.getProfile(player).getExcavationInt() > 175){
if(Math.random() * 10 > 9){
mcUsers.getProfile(player).addExcavationGather(3);
mcUsers.getProfile(player).addExcavationGather(3 * mcLoadProperties.xpGainMultiplier);
mat = Material.getMaterial(352);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
loc.getWorld().dropItemNaturally(loc, is);

View File

@ -27,7 +27,7 @@ public class mcHerbalism {
if(type == 59 && block.getData() == (byte) 0x7){
mat = Material.getMaterial(296);
is = new ItemStack(mat, 1, (byte)0, (byte)0);
mcUsers.getProfile(player).addHerbalismGather(5);
mcUsers.getProfile(player).addHerbalismGather(5 * mcLoadProperties.xpGainMultiplier);
if(player != null){
if(Math.random() * 1000 <= mcUsers.getProfile(player).getHerbalismInt()){
loc.getWorld().dropItemNaturally(loc, is);
@ -38,6 +38,7 @@ public class mcHerbalism {
* We need to check not-wheat stuff for if it was placed by the player or not
*/
if(!mcConfig.getInstance().isBlockWatched(block)){
//Mushroom
if(type == 39 || type == 40){
mat = Material.getMaterial(block.getTypeId());
is = new ItemStack(mat, 1, (byte)0, (byte)0);
@ -46,8 +47,9 @@ public class mcHerbalism {
loc.getWorld().dropItemNaturally(loc, is);
}
}
mcUsers.getProfile(player).addHerbalismGather(10);
mcUsers.getProfile(player).addHerbalismGather(40 * mcLoadProperties.xpGainMultiplier);
}
//Flower
if(type == 37 || type == 38){
mat = Material.getMaterial(block.getTypeId());
is = new ItemStack(mat, 1, (byte)0, (byte)0);
@ -56,7 +58,7 @@ public class mcHerbalism {
loc.getWorld().dropItemNaturally(loc, is);
}
}
mcUsers.getProfile(player).addHerbalismGather(3);
mcUsers.getProfile(player).addHerbalismGather(10 * mcLoadProperties.xpGainMultiplier);
}
}
mcSkills.getInstance().XpCheck(player);

View File

@ -1,9 +1,9 @@
package com.gmail.nossr50;
public class mcLoadProperties {
public static Boolean toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
public static Boolean mushrooms, toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
public static String mcability, mcmmo, mcc, mcrefresh, mcitem, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn;
public static int superBreakerCooldown, gigaDrillBreakerCooldown, treeFellerCooldown, berserkCooldown, serratedStrikeCooldown, skullSplitterCooldown, abilityDurabilityLoss, feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
public static int xpGainMultiplier, superBreakerCooldown, gigaDrillBreakerCooldown, treeFellerCooldown, berserkCooldown, serratedStrikeCooldown, skullSplitterCooldown, abilityDurabilityLoss, feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
public static void loadMain(){
String propertiesFile = mcMMO.maindirectory + "mcmmo.properties";
@ -22,6 +22,8 @@ public class mcLoadProperties {
/*
* OTHER
*/
myspawnclearsinventory = properties.getBoolean("mySpawnClearsInventory", true);
xpGainMultiplier = properties.getInteger("xpGainMultiplier", 1);
toolsLoseDurabilityFromAbilities = properties.getBoolean("toolsLoseDurabilityFromAbilities", true);
abilityDurabilityLoss = properties.getInteger("abilityDurabilityLoss", 2);
feathersConsumedByChimaeraWing = properties.getInteger("feathersConsumedByChimaeraWing", 10);
@ -29,44 +31,44 @@ public class mcLoadProperties {
pvpxprewardmodifier = properties.getInteger("pvpXpRewardModifier", 1);
miningrequirespickaxe = properties.getBoolean("miningRequiresPickaxe", true);
woodcuttingrequiresaxe = properties.getBoolean("woodcuttingRequiresAxe", true);
repairdiamondlevel = properties.getInteger("repairdiamondlevel", 50);
repairdiamondlevel = properties.getInteger("repairDiamondLevel", 50);
/*
* EXPERIENCE RATE MODIFIER
*/
globalxpmodifier = properties.getInteger("globalxpmodifier", 1);
miningxpmodifier = properties.getInteger("miningxpmodifier", 2);
repairxpmodifier = properties.getInteger("repairxpmodifier", 2);
woodcuttingxpmodifier = properties.getInteger("woodcuttingxpmodifier", 2);
unarmedxpmodifier = properties.getInteger("unarmedxpmodifier", 2);
herbalismxpmodifier = properties.getInteger("herbalismxpmodifier", 2);
excavationxpmodifier = properties.getInteger("excavationxpmodifier", 2);
archeryxpmodifier = properties.getInteger("archeryxpmodifier", 2);
swordsxpmodifier = properties.getInteger("swordsxpmodifier", 2);
axesxpmodifier = properties.getInteger("axesxpmodifier", 2);
acrobaticsxpmodifier = properties.getInteger("acrobaticsxpmodifier", 2);
globalxpmodifier = properties.getInteger("globalXpModifier", 1);
miningxpmodifier = properties.getInteger("miningXpModifier", 2);
repairxpmodifier = properties.getInteger("repairXpModifier", 2);
woodcuttingxpmodifier = properties.getInteger("woodcuttingXpModifier", 2);
unarmedxpmodifier = properties.getInteger("unarmedXpModifier", 2);
herbalismxpmodifier = properties.getInteger("herbalismXpModifier", 2);
excavationxpmodifier = properties.getInteger("excavationXpModifier", 2);
archeryxpmodifier = properties.getInteger("archeryXpModifier", 2);
swordsxpmodifier = properties.getInteger("swordsXpModifier", 2);
axesxpmodifier = properties.getInteger("axesXpModifier", 2);
acrobaticsxpmodifier = properties.getInteger("acrobaticsXpModifier", 2);
/*
* TOGGLE CLAY
*/
clay = properties.getBoolean("graveltoclay", true);
clay = properties.getBoolean("gravelToClay", true);
/*
* ANVIL MESSAGES
*/
anvilmessages = properties.getBoolean("anvilmessages", true);
anvilmessages = properties.getBoolean("anvilMessages", true);
/*
* EXCAVATION LOOT TOGGLES
*/
myspawnclearsinventory = properties.getBoolean("myspawnclearsinventory", true);
glowstone = properties.getBoolean("canexcavateglowstone", true);
mushrooms = properties.getBoolean("canExcavateMushrooms", true);
glowstone = properties.getBoolean("canExcavateGlowstone", true);
pvp = properties.getBoolean("pvp", true);
eggs = properties.getBoolean("canexcavateeggs", true);
apples = properties.getBoolean("canexcavateapples", true);
cake = properties.getBoolean("canexcavatecake", true);
music = properties.getBoolean("canexcavatemusic", true);
diamond = properties.getBoolean("canexcavatediamond", true);
slowsand = properties.getBoolean("canexcavateslowsand", true);
sulphur = properties.getBoolean("canexcavatesulphur", true);
netherrack = properties.getBoolean("canexcavatenetherrack", true);
bones = properties.getBoolean("canexcavatebones", true);
eggs = properties.getBoolean("canExcavateEggs", true);
apples = properties.getBoolean("canExcavateApples", true);
cake = properties.getBoolean("canExcavateCake", true);
music = properties.getBoolean("canExcavateMusic", true);
diamond = properties.getBoolean("canExcavateDiamond", true);
slowsand = properties.getBoolean("canExcavateSlowSand", true);
sulphur = properties.getBoolean("canExcavateSulphur", true);
netherrack = properties.getBoolean("canExcavateNetherrack", true);
bones = properties.getBoolean("canExcavateBones", true);
/*
* CUSTOM COMMANDS

View File

@ -67,7 +67,7 @@ public class mcMMO extends JavaPlugin {
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.Highest, this);
pm.registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Low, this);
pm.registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Highest, this);
pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Normal, this);
pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this);
pm.registerEvent(Event.Type.BLOCK_FLOW, blockListener, Priority.Normal, this);

View File

@ -110,50 +110,52 @@ public class mcMining {
}
}
public void miningBlockCheck(Player player, Block block){
int xp = 0;
if(block.getTypeId() == 1 || block.getTypeId() == 24){
mcUsers.getProfile(player).addMiningGather(3);
xp += 3;
blockProcCheck(block, player);
}
//NETHERRACK
if(block.getTypeId() == 87){
mcUsers.getProfile(player).addMiningGather(3);
xp += 3;
blockProcCheck(block, player);
}
//GLOWSTONE
if(block.getTypeId() == 89){
mcUsers.getProfile(player).addMiningGather(3);
xp += 3;
blockProcCheck(block, player);
}
//COAL
if(block.getTypeId() == 16){
mcUsers.getProfile(player).addMiningGather(10);
xp += 10;
blockProcCheck(block, player);
}
//GOLD
if(block.getTypeId() == 14){
mcUsers.getProfile(player).addMiningGather(35);
xp += 35;
blockProcCheck(block, player);
}
//DIAMOND
if(block.getTypeId() == 56){
mcUsers.getProfile(player).addMiningGather(75);
xp += 75;
blockProcCheck(block, player);
}
//IRON
if(block.getTypeId() == 15){
mcUsers.getProfile(player).addMiningGather(25);
xp += 25;
blockProcCheck(block, player);
}
//REDSTONE
if(block.getTypeId() == 73 || block.getTypeId() == 74){
mcUsers.getProfile(player).addMiningGather(15);
xp += 15;
blockProcCheck(block, player);
}
//LAPUS
if(block.getTypeId() == 21){
mcUsers.getProfile(player).addMiningGather(40);
xp += 40;
blockProcCheck(block, player);
}
mcUsers.getProfile(player).addMiningGather(xp * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(player);
}
/*
@ -172,11 +174,12 @@ public class mcMining {
mcm.getInstance().damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
Location loc = block.getLocation();
Material mat = Material.getMaterial(block.getTypeId());
int xp = 0;
byte damage = 0;
ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
if(block.getTypeId() == 1 || block.getTypeId() == 24){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcUsers.getProfile(player).addMiningGather(3);
xp += 3;
blockProcCheck(block, player);
blockProcCheck(block, player);
}
@ -192,7 +195,7 @@ public class mcMining {
//NETHERRACK
if(block.getTypeId() == 87){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcUsers.getProfile(player).addMiningGather(3);
xp += 3;
blockProcCheck(block, player);
blockProcCheck(block, player);
}
@ -204,7 +207,7 @@ public class mcMining {
//GLOWSTONE
if(block.getTypeId() == 89){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcUsers.getProfile(player).addMiningGather(3);
xp += 3;
blockProcCheck(block, player);
blockProcCheck(block, player);
}
@ -216,7 +219,7 @@ public class mcMining {
//COAL
if(block.getTypeId() == 16){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcUsers.getProfile(player).addMiningGather(10);
xp += 10;
blockProcCheck(block, player);
blockProcCheck(block, player);
}
@ -228,16 +231,18 @@ public class mcMining {
//GOLD
if(block.getTypeId() == 14 && mcm.getInstance().getTier(player) >= 3){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcUsers.getProfile(player).addMiningGather(35);
xp += 35;
blockProcCheck(block, player);
blockProcCheck(block, player);
}
item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item);
block.setType(Material.AIR);
}
//DIAMOND
if(block.getTypeId() == 56 && mcm.getInstance().getTier(player) >= 3){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcUsers.getProfile(player).addMiningGather(75);
xp += 75;
blockProcCheck(block, player);
blockProcCheck(block, player);
}
@ -249,16 +254,18 @@ public class mcMining {
//IRON
if(block.getTypeId() == 15 && mcm.getInstance().getTier(player) >= 2){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcUsers.getProfile(player).addMiningGather(25);
xp += 25;
blockProcCheck(block, player);
blockProcCheck(block, player);
}
item = new ItemStack(mat, 1, (byte)0, damage);
loc.getWorld().dropItemNaturally(loc, item);
block.setType(Material.AIR);
}
//REDSTONE
if((block.getTypeId() == 73 || block.getTypeId() == 74) && mcm.getInstance().getTier(player) >= 4){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcUsers.getProfile(player).addMiningGather(15);
xp += 15;
blockProcCheck(block, player);
blockProcCheck(block, player);
}
@ -275,7 +282,7 @@ public class mcMining {
//LAPUS
if(block.getTypeId() == 21 && mcm.getInstance().getTier(player) >= 3){
if(!mcConfig.getInstance().isBlockWatched(block)){
mcUsers.getProfile(player).addMiningGather(40);
xp += 40;
blockProcCheck(block, player);
blockProcCheck(block, player);
}
@ -287,6 +294,7 @@ public class mcMining {
loc.getWorld().dropItemNaturally(loc, item);
block.setType(Material.AIR);
}
mcUsers.getProfile(player).addMiningGather(xp * mcLoadProperties.xpGainMultiplier);
mcSkills.getInstance().XpCheck(player);
}
}

View File

@ -341,7 +341,7 @@ public class mcPlayerListener extends PlayerListener {
event.setCancelled(true);
player.sendMessage(ChatColor.GREEN + "Your mcMMO Stats");
if(mcPermissions.getInstance().permissionsEnabled)
player.sendMessage(ChatColor.DARK_GRAY+"If you don't have access to a skill it will not be shown here.");
player.sendMessage(ChatColor.DARK_GRAY+"If you don't have access to a skill it will not be shown here.");
if(mcPermissions.getInstance().mining(player))
player.sendMessage(ChatColor.YELLOW + "Mining Skill: " + ChatColor.GREEN + mcUsers.getProfile(player).getMining()+ChatColor.DARK_AQUA
+ " XP("+mcUsers.getProfile(player).getMiningGather()
@ -410,7 +410,7 @@ public class mcPlayerListener extends PlayerListener {
Player target = getPlayer(split[1]);
mcUsers.getProfile(target).modifyInvite(mcUsers.getProfile(player).getParty());
player.sendMessage(ChatColor.GREEN+"Invite sent successfully");
target.sendMessage(ChatColor.RED+"ALERT: "+ChatColor.GREEN+"You have received a party invite for "+mcUsers.getProfile(target).getInvite());
target.sendMessage(ChatColor.RED+"ALERT: "+ChatColor.GREEN+"You have received a party invite for "+mcUsers.getProfile(target).getInvite()+" from "+player.getName());
target.sendMessage(ChatColor.YELLOW+"Type "+ChatColor.GREEN+"/"+mcLoadProperties.accept+ChatColor.YELLOW+" to accept the invite");
}
}

View File

@ -31,19 +31,19 @@ public class mcRepair {
if(isDiamondArmor(is) && hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= mcLoadProperties.repairdiamondlevel){
removeDiamond(player);
player.getItemInHand().setDurability(getArmorRepairAmount(is, player));
mcUsers.getProfile(player).addRepairGather(75);
mcUsers.getProfile(player).addRepairGather(75 * mcLoadProperties.xpGainMultiplier);
} else if (isIronArmor(is) && hasIron(player)){
/*
* IRON ARMOR
*/
removeIron(player);
player.getItemInHand().setDurability(getArmorRepairAmount(is, player));
mcUsers.getProfile(player).addRepairGather(20);
mcUsers.getProfile(player).addRepairGather(20 * mcLoadProperties.xpGainMultiplier);
//GOLD ARMOR
} else if (isGoldArmor(is) && hasGold(player)){
removeGold(player);
player.getItemInHand().setDurability(getArmorRepairAmount(is, player));
mcUsers.getProfile(player).addRepairGather(50);
mcUsers.getProfile(player).addRepairGather(50 * mcLoadProperties.xpGainMultiplier);
} else {
needMoreVespeneGas(is, player);
}
@ -58,18 +58,18 @@ public class mcRepair {
if(isIronTools(is) && hasIron(player)){
is.setDurability(getToolRepairAmount(is, player));
removeIron(player);
mcUsers.getProfile(player).addRepairGather(20);
mcUsers.getProfile(player).addRepairGather(20 * mcLoadProperties.xpGainMultiplier);
} else if (isDiamondTools(is) && hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= mcLoadProperties.repairdiamondlevel){ //Check if its diamond and the player has diamonds
/*
* DIAMOND TOOLS
*/
is.setDurability(getToolRepairAmount(is, player));
removeDiamond(player);
mcUsers.getProfile(player).addRepairGather(75);
mcUsers.getProfile(player).addRepairGather(75 * mcLoadProperties.xpGainMultiplier);
} else if(isGoldTools(is) && hasGold(player)){
is.setDurability(getToolRepairAmount(is, player));
removeGold(player);
mcUsers.getProfile(player).addRepairGather(50);
mcUsers.getProfile(player).addRepairGather(50 * mcLoadProperties.xpGainMultiplier);
} else {
needMoreVespeneGas(is, player);
}
@ -325,9 +325,9 @@ public class mcRepair {
break;
}
if(durability < 0)
durability = 0;
durability = 0;
if(checkPlayerProcRepair(player))
durability = 0;
durability = 0;
return durability;
}
public void needMoreVespeneGas(ItemStack is, Player player){

View File

@ -511,5 +511,6 @@ public class mcSkills {
x++;
}
}
mcConfig.getInstance().removeArrowTracked(entity);
}
}

View File

@ -16,7 +16,9 @@ public class mcTimer extends TimerTask{
public void run() {
Player[] playerlist = plugin.getServer().getOnlinePlayers();
for(Player player : playerlist){
if(player != null && mcUsers.getProfile(player) == null)
if(player == null)
continue;
if(mcUsers.getProfile(player) == null)
mcUsers.addUser(player);
/*
* MONITOR SKILLS

View File

@ -603,6 +603,8 @@ public class mcm {
player.sendMessage("/"+mcLoadProperties.setmyspawn+" "+ChatColor.RED+"- Set your MySpawn");
}
player.sendMessage(ChatColor.GREEN+"--OTHER COMMANDS--");
if(mcPermissions.getInstance().mcAbility(player))
player.sendMessage("/"+mcLoadProperties.mcability+ChatColor.RED+" - Toggle ability activation with right click");
if(mcPermissions.getInstance().adminChat(player)){
player.sendMessage("/a "+ChatColor.RED+"- Toggle admin chat");
}

View File

@ -1,3 +1,3 @@
name: mcMMO
main: com.gmail.nossr50.mcMMO
version: 0.9.7
version: 0.9.10