Merge pull request #327 from Glitchfinder/fixes

Additional fixes and patches.
This commit is contained in:
Grant 2012-12-03 21:08:40 -08:00
commit 8c5b22a8fb
18 changed files with 61 additions and 54 deletions

View File

@ -43,7 +43,7 @@ public class AxesCommand extends SkillCommand {
int skillCheck = Misc.skillCheck((int)skillValue, critMaxBonusLevel);
impactDamage = String.valueOf(1 + ((double) skillValue / (double) greaterImpactIncreaseLevel));
skullSplitterLength = String.valueOf(2 + ((double) skillValue / (double) abilityLengthIncreaseLevel));
skullSplitterLength = String.valueOf(2 + (int) ((double) skillValue / (double) abilityLengthIncreaseLevel));
greaterImpactDamage = "2";
if (skillValue >= critMaxBonusLevel) critChance = df.format(critMaxChance);

View File

@ -22,7 +22,7 @@ public class ExcavationCommand extends SkillCommand {
@Override
protected void dataCalculations() {
gigaDrillBreakerLength = String.valueOf(2 + ((double) skillValue / (double) abilityLengthIncreaseLevel));
gigaDrillBreakerLength = String.valueOf(2 + (int) ((double) skillValue / (double) abilityLengthIncreaseLevel));
}
@Override

View File

@ -43,7 +43,7 @@ public class HerbalismCommand extends SkillCommand {
@Override
protected void dataCalculations() {
DecimalFormat df = new DecimalFormat("#.0");
greenTerraLength = String.valueOf(2 + ((double) skillValue / (double) abilityLengthIncreaseLevel));
greenTerraLength = String.valueOf(2 + (int) ((double) skillValue / (double) abilityLengthIncreaseLevel));
//FARMERS DIET
if(skillValue >= farmersDietMaxLevel) farmersDietRank = "5";
else farmersDietRank = String.valueOf((double) skillValue / (double) farmersDietRankChange);

View File

@ -46,7 +46,7 @@ public class MiningCommand extends SkillCommand {
@Override
protected void dataCalculations() {
DecimalFormat df = new DecimalFormat("#.0");
superBreakerLength = String.valueOf(2 + ((double) skillValue / (double) abilityLengthIncreaseLevel));
superBreakerLength = String.valueOf(2 + (int) ((double) skillValue / (double) abilityLengthIncreaseLevel));
if(skillValue >= doubleDropsMaxLevel) doubleDropChance = df.format(doubleDropsMaxBonus);
else doubleDropChance = df.format(((double) doubleDropsMaxBonus / (double) doubleDropsMaxLevel) * (double) skillValue);

View File

@ -37,7 +37,7 @@ public class SwordsCommand extends SkillCommand {
@Override
protected void dataCalculations() {
DecimalFormat df = new DecimalFormat("#.0");
serratedStrikesLength = String.valueOf(2 + ((double) skillValue / (double) abilityLengthIncreaseLevel));
serratedStrikesLength = String.valueOf(2 + (int) ((double) skillValue / (double) abilityLengthIncreaseLevel));
if (skillValue >= bleedMaxLevel) bleedLength = String.valueOf(bleedMaxTicks);
else bleedLength = String.valueOf(bleedBaseTicks);

View File

@ -36,7 +36,7 @@ public class UnarmedCommand extends SkillCommand {
@Override
protected void dataCalculations() {
DecimalFormat df = new DecimalFormat("#.0");
berserkLength = String.valueOf(2 + ((double) skillValue / (double) abilityLengthIncreaseLevel));
berserkLength = String.valueOf(2 + (int) ((double) skillValue / (double) abilityLengthIncreaseLevel));
if(skillValue >= disarmMaxLevel) disarmChance = df.format(disarmChanceMax);
else disarmChance = df.format(((double) disarmChanceMax / (double) disarmMaxLevel) * (double) skillValue);

View File

@ -33,7 +33,7 @@ public class WoodcuttingCommand extends SkillCommand {
protected void dataCalculations() {
DecimalFormat df = new DecimalFormat("0.0");
treeFellerLength = String.valueOf(2 + ((double) skillValue / (double) abilityLengthIncreaseLevel));
treeFellerLength = String.valueOf(2 + (int) ((double) skillValue / (double) abilityLengthIncreaseLevel));
if(skillValue >= doubleDropsMaxLevel) doubleDropChance = df.format(doubleDropsMaxBonus);
else doubleDropChance = df.format(((double) doubleDropsMaxBonus / (double) doubleDropsMaxLevel) * (double) skillValue);
}

View File

@ -119,6 +119,11 @@ public class McMMOPlayer {
* @param newvalue The amount of XP to add
*/
public void addXP(SkillType skillType, int newValue) {
if(player == null)
return;
else if(player.getGameMode() == null)
return;
if (player.getGameMode().equals(GameMode.CREATIVE)) {
return;
}

View File

@ -63,17 +63,17 @@ public class BlockListener implements Listener {
Block futureEmptyBlock = event.getBlock().getRelative(direction);
for (Block b : blocks) {
if (mcMMO.placeStore.isTrue(b)) {
if (mcMMO.p.placeStore.isTrue(b)) {
b.getRelative(direction).setMetadata("pistonTrack", new FixedMetadataValue(plugin, true));
if (b.equals(futureEmptyBlock)) {
mcMMO.placeStore.setFalse(b);
mcMMO.p.placeStore.setFalse(b);
}
}
}
for (Block b : blocks) {
if (b.getRelative(direction).hasMetadata("pistonTrack")) {
mcMMO.placeStore.setTrue(b.getRelative(direction));
mcMMO.p.placeStore.setTrue(b.getRelative(direction));
b.getRelative(direction).removeMetadata("pistonTrack", plugin);
}
}
@ -96,7 +96,7 @@ public class BlockListener implements Listener {
Block fallenBlock = event.getBlock().getRelative(BlockFace.UP);
if (fallenBlock.getType() == type) {
mcMMO.placeStore.setTrue(fallenBlock);
mcMMO.p.placeStore.setTrue(fallenBlock);
}
}
}
@ -139,7 +139,7 @@ public class BlockListener implements Listener {
}
else {
Block newLocation = block.getRelative(0, y + 1, 0);
mcMMO.placeStore.setTrue(newLocation);
mcMMO.p.placeStore.setTrue(newLocation);
break;
}
}
@ -148,7 +148,7 @@ public class BlockListener implements Listener {
/* Check if the blocks placed should be monitored so they do not give out XP in the future */
if (BlockChecks.shouldBeWatched(block)) {
if (!((type == Material.SAND || type == Material.GRAVEL) && block.getRelative(BlockFace.DOWN).getType() == Material.AIR)) { //Don't wanna track sand that's gonna fall.
mcMMO.placeStore.setTrue(block);
mcMMO.p.placeStore.setTrue(block);
}
}
@ -233,7 +233,7 @@ public class BlockListener implements Listener {
}
/* EXCAVATION */
else if (BlockChecks.canBeGigaDrillBroken(block) && permInstance.excavation(player) && !mcMMO.placeStore.isTrue(block)) {
else if (BlockChecks.canBeGigaDrillBroken(block) && permInstance.excavation(player) && !mcMMO.p.placeStore.isTrue(block)) {
if (configInstance.getExcavationRequiresTool()) {
if (ItemChecks.isShovel(inHand)) {
Excavation.excavationProcCheck(block, player);
@ -246,7 +246,7 @@ public class BlockListener implements Listener {
//Remove metadata when broken
if (BlockChecks.shouldBeWatched(block)) {
mcMMO.placeStore.setFalse(block);
mcMMO.p.placeStore.setFalse(block);
}
//Remove metadata from fallen sand/gravel
@ -257,11 +257,11 @@ public class BlockListener implements Listener {
Block relative = block.getRelative(0, y, 0);
Material relativeType = relative.getType();
if ((relativeType == Material.SAND || relativeType == Material.GRAVEL) && mcMMO.placeStore.isTrue(relative)) {
mcMMO.placeStore.setFalse(relative);
if ((relativeType == Material.SAND || relativeType == Material.GRAVEL) && mcMMO.p.placeStore.isTrue(relative)) {
mcMMO.p.placeStore.setFalse(relative);
}
else if (!BlockChecks.shouldBeWatched(relative) && mcMMO.placeStore.isTrue(relative)){
mcMMO.placeStore.setFalse(relative);
else if (!BlockChecks.shouldBeWatched(relative) && mcMMO.p.placeStore.isTrue(relative)){
mcMMO.p.placeStore.setFalse(relative);
}
else {
break;

View File

@ -37,16 +37,16 @@ public class WorldListener implements Listener {
@EventHandler
public void onWorldUnload(WorldUnloadEvent event) {
mcMMO.placeStore.unloadWorld(event.getWorld());
mcMMO.p.placeStore.unloadWorld(event.getWorld());
}
@EventHandler
public void onWorldSave(WorldSaveEvent event) {
mcMMO.placeStore.saveWorld(event.getWorld());
mcMMO.p.placeStore.saveWorld(event.getWorld());
}
@EventHandler
public void onChunkUnload(ChunkUnloadEvent event) {
mcMMO.placeStore.chunkUnloaded(event.getChunk().getX(), event.getChunk().getZ(), event.getWorld());
mcMMO.p.placeStore.chunkUnloaded(event.getChunk().getX(), event.getChunk().getZ(), event.getWorld());
}
}

View File

@ -17,11 +17,11 @@ public class StickyPistonTracker implements Runnable {
public void run() {
Block originalBlock = event.getRetractLocation().getBlock();
if (originalBlock.getType() == Material.AIR && mcMMO.placeStore.isTrue(originalBlock)) {
if (originalBlock.getType() == Material.AIR && mcMMO.p.placeStore.isTrue(originalBlock)) {
Block newBlock = originalBlock.getRelative(event.getDirection().getOppositeFace());
mcMMO.placeStore.setFalse(originalBlock);
mcMMO.placeStore.setTrue(newBlock);
mcMMO.p.placeStore.setFalse(originalBlock);
mcMMO.p.placeStore.setTrue(newBlock);
}
}
}

View File

@ -62,7 +62,7 @@ public class BlastMining {
blocksDropped.add(temp);
Mining.miningDrops(temp);
if (!mcMMO.placeStore.isTrue(temp)) {
if (!mcMMO.p.placeStore.isTrue(temp)) {
for (int i = 1 ; i < extraDrops ; i++) {
blocksDropped.add(temp);
Mining.miningDrops(temp);
@ -172,7 +172,7 @@ public class BlastMining {
}
for (Block block : xp) {
if (!mcMMO.placeStore.isTrue(block)) {
if (!mcMMO.p.placeStore.isTrue(block)) {
Mining.miningXP(player, block);
}
}

View File

@ -130,7 +130,7 @@ public class Excavation {
Skills.abilityDurabilityLoss(player.getItemInHand(), Config.getInstance().getAbilityToolDamage());
if (!mcMMO.placeStore.isTrue(block) && !Misc.blockBreakSimulate(block, player, true)) {
if (!mcMMO.p.placeStore.isTrue(block) && !Misc.blockBreakSimulate(block, player, true)) {
FakePlayerAnimationEvent armswing = new FakePlayerAnimationEvent(player);
mcMMO.p.getServer().getPluginManager().callEvent(armswing);

View File

@ -63,7 +63,7 @@ public class Herbalism {
else if (Config.getInstance().getHerbalismGreenThumbCobbleToMossy() && type == Material.COBBLESTONE) {
block.setType(Material.MOSSY_COBBLESTONE);
// Don't award double drops to mossified cobblestone
mcMMO.placeStore.setTrue(block);
mcMMO.p.placeStore.setTrue(block);
}
else if (Config.getInstance().getHerbalismGreenThumbCobbleWallToMossyWall() && type == Material.COBBLE_WALL) {
block.setData((byte) 1);
@ -109,7 +109,7 @@ public class Herbalism {
switch (type) {
case BROWN_MUSHROOM:
case RED_MUSHROOM:
if (!mcMMO.placeStore.isTrue(block)) {
if (!mcMMO.p.placeStore.isTrue(block)) {
mat = Material.getMaterial(id);
xp = Config.getInstance().getHerbalismXPMushrooms();
}
@ -120,7 +120,7 @@ public class Herbalism {
Block b = block.getRelative(0, y, 0);
if (b.getType().equals(Material.CACTUS)) {
mat = Material.CACTUS;
if (!mcMMO.placeStore.isTrue(b)) {
if (!mcMMO.p.placeStore.isTrue(b)) {
if (herbLevel > MAX_BONUS_LEVEL || random.nextInt(randomChance) <= herbLevel) {
catciDrops++;
}
@ -142,7 +142,7 @@ public class Herbalism {
break;
case MELON_BLOCK:
if (!mcMMO.placeStore.isTrue(block)) {
if (!mcMMO.p.placeStore.isTrue(block)) {
mat = Material.MELON;
xp = Config.getInstance().getHerbalismXPMelon();
}
@ -161,7 +161,7 @@ public class Herbalism {
case PUMPKIN:
case JACK_O_LANTERN:
if (!mcMMO.placeStore.isTrue(block)) {
if (!mcMMO.p.placeStore.isTrue(block)) {
mat = Material.getMaterial(id);
xp = Config.getInstance().getHerbalismXPPumpkin();
}
@ -169,7 +169,7 @@ public class Herbalism {
case RED_ROSE:
case YELLOW_FLOWER:
if (!mcMMO.placeStore.isTrue(block)) {
if (!mcMMO.p.placeStore.isTrue(block)) {
mat = Material.getMaterial(id);
xp = Config.getInstance().getHerbalismXPFlowers();
}
@ -180,7 +180,7 @@ public class Herbalism {
Block b = block.getRelative(0, y, 0);
if (b.getType().equals(Material.SUGAR_CANE_BLOCK)) {
mat = Material.SUGAR_CANE;
if (!mcMMO.placeStore.isTrue(b)) {
if (!mcMMO.p.placeStore.isTrue(b)) {
if (herbLevel > MAX_BONUS_LEVEL || random.nextInt(randomChance) <= herbLevel) {
caneDrops++;
}
@ -191,14 +191,14 @@ public class Herbalism {
break;
case VINE:
if (!mcMMO.placeStore.isTrue(block)) {
if (!mcMMO.p.placeStore.isTrue(block)) {
mat = type;
xp = Config.getInstance().getHerbalismXPVines();
}
break;
case WATER_LILY:
if (!mcMMO.placeStore.isTrue(block)) {
if (!mcMMO.p.placeStore.isTrue(block)) {
mat = type;
xp = Config.getInstance().getHerbalismXPLilyPads();
}

View File

@ -316,7 +316,7 @@ public class Mining {
* @param block The block being broken
*/
public static void miningBlockCheck(Player player, Block block) {
if (mcMMO.placeStore.isTrue(block)) {
if (mcMMO.p.placeStore.isTrue(block)) {
return;
}
@ -362,7 +362,7 @@ public class Mining {
return;
}
if (mcMMO.placeStore.isTrue(block) || Misc.blockBreakSimulate(block, player, true)) {
if (mcMMO.p.placeStore.isTrue(block) || Misc.blockBreakSimulate(block, player, true)) {
return;
}
@ -408,7 +408,7 @@ public class Mining {
case NETHERRACK:
case SANDSTONE:
case STONE:
if (mcMMO.placeStore.isTrue(block) || Misc.blockBreakSimulate(block, player, true)) {
if (mcMMO.p.placeStore.isTrue(block) || Misc.blockBreakSimulate(block, player, true)) {
return;
}

View File

@ -109,7 +109,7 @@ public class WoodCutting {
CustomBlock block = ModChecks.getCustomBlock(x);
item = block.getItemDrop();
if (!mcMMO.placeStore.isTrue(x)) {
if (!mcMMO.p.placeStore.isTrue(x)) {
WoodCutting.woodCuttingProcCheck(player, x);
xp = block.getXpGain();
}
@ -169,7 +169,7 @@ public class WoodCutting {
break;
}
if (!mcMMO.placeStore.isTrue(x)) {
if (!mcMMO.p.placeStore.isTrue(x)) {
WoodCutting.woodCuttingProcCheck(player, x);
switch (species) {
@ -245,7 +245,7 @@ public class WoodCutting {
Block zNegative = currentBlock.getRelative(0, 0, -1);
Block yPositive = currentBlock.getRelative(0, 1, 0);
if (!mcMMO.placeStore.isTrue(currentBlock)) {
if (!mcMMO.p.placeStore.isTrue(currentBlock)) {
if (!isTooAggressive(currentBlock, xPositive) && BlockChecks.treeFellerCompatible(xPositive) && !toBeFelled.contains(xPositive)) {
processTreeFelling(xPositive, toBeFelled);
}
@ -277,7 +277,7 @@ public class WoodCutting {
Block corner3 = currentBlock.getRelative(-1, 0, 1);
Block corner4 = currentBlock.getRelative(-1, 0, -1);
if (!mcMMO.placeStore.isTrue(currentBlock)) {
if (!mcMMO.p.placeStore.isTrue(currentBlock)) {
if (!isTooAggressive(currentBlock, corner1) && BlockChecks.treeFellerCompatible(corner1) && !toBeFelled.contains(corner1)) {
processTreeFelling(corner1, toBeFelled);
}
@ -297,7 +297,7 @@ public class WoodCutting {
}
if (BlockChecks.treeFellerCompatible(yPositive)) {
if(!mcMMO.placeStore.isTrue(currentBlock) && !toBeFelled.contains(yPositive)) {
if(!mcMMO.p.placeStore.isTrue(currentBlock) && !toBeFelled.contains(yPositive)) {
processTreeFelling(yPositive, toBeFelled);
}
}
@ -421,7 +421,7 @@ public class WoodCutting {
PlayerProfile profile = Users.getProfile(player);
int xp = 0;
if (mcMMO.placeStore.isTrue(block)) {
if (mcMMO.p.placeStore.isTrue(block)) {
return;
}

View File

@ -210,20 +210,22 @@ public class Repair {
* @return The final amount of durability repaired to the item
*/
protected static short repairCalculate(Player player, int skillLevel, short durability, int repairAmount) {
// float bonus = (float) skillLevel / 500;
float bonus;
if(skillLevel >= repairMasteryMaxBonusLevel) bonus = repairMasteryChanceMax;
else bonus = ((float) skillLevel / (float) repairMasteryMaxBonusLevel) * (float) repairMasteryChanceMax;
double bonus;
if(skillLevel >= repairMasteryMaxBonusLevel) bonus = (double) repairMasteryChanceMax;
else bonus = ((double) skillLevel / (double) repairMasteryMaxBonusLevel) * (double) repairMasteryChanceMax;
if (permInstance.repairMastery(player)) {
bonus = (repairAmount * bonus);
repairAmount += bonus;
bonus = ((double) repairAmount * bonus);
repairAmount += (int) bonus;
}
if (checkPlayerProcRepair(player)) {
repairAmount = (short) (repairAmount * 2);
repairAmount = (int) (repairAmount * 2D);
}
if(repairAmount <= 0 || repairAmount > 32767)
repairAmount = 32767;
durability -= repairAmount;
if (durability < 0) {

View File

@ -30,7 +30,7 @@ import com.gmail.nossr50.util.Users;
public class SpoutStuff {
private static mcMMO plugin = mcMMO.p;
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
public final static String spoutDirectory = mcMMO.getMainDirectory() + "Resources" + File.separator;
public final static String hudDirectory = spoutDirectory + "HUD" + File.separator;