Various Fixes (#704)

* Various Fixes

* Merge cooldown change
This commit is contained in:
Christopher Martin 2017-01-19 23:44:13 -08:00 committed by GitHub
parent 0684c7b469
commit 102ea0c3c0
7 changed files with 22 additions and 27 deletions

View file

@ -123,6 +123,7 @@ import com.projectkorra.projectkorra.util.TempBlock;
import com.projectkorra.projectkorra.util.ReflectionHandler.PackageType;
import com.projectkorra.projectkorra.waterbending.WaterManipulation;
import com.projectkorra.projectkorra.waterbending.WaterSpout;
import com.projectkorra.projectkorra.waterbending.ice.PhaseChange;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.flags.DefaultFlag;
@ -1159,7 +1160,7 @@ public class GeneralMethods {
}
public static boolean isAdjacentToThreeOrMoreSources(Block block) {
if (TempBlock.isTempBlock(block) || block.equals(null)) {
if ((TempBlock.isTempBlock(block) && !PhaseChange.getFrozenBlocksAsTempBlock().contains(TempBlock.get(block))) || block.equals(null)) {
return false;
}
int sources = 0;

View file

@ -318,7 +318,7 @@ public class PKListener implements Listener {
}
// If there is a TempBlock of Air bellow FallingSand blocks, prevent it from updating.
if (!event.isCancelled() && (block.getType() == Material.SAND || block.getType() == Material.GRAVEL || block.getType() == Material.ANVIL) && TempBlock.isTempBlock(block.getRelative(BlockFace.DOWN)) && block.getRelative(BlockFace.DOWN).getType() == Material.AIR) {
if (!event.isCancelled() && (block.getType() == Material.SAND || block.getType() == Material.GRAVEL || block.getType() == Material.ANVIL || block.getType() == Material.DRAGON_EGG) && TempBlock.isTempBlock(block.getRelative(BlockFace.DOWN)) && block.getRelative(BlockFace.DOWN).getType() == Material.AIR) {
event.setCancelled(true);
}
}

View file

@ -131,7 +131,7 @@ public abstract class WaterAbility extends ElementalAbility {
continue;
}
if (isIcebendable(player, block.getType(), false)) {
if (TempBlock.isTempBlock(block)) {
if (TempBlock.isTempBlock(block) && !PhaseChange.getFrozenBlocksAsTempBlock().contains(TempBlock.get(block))) {
continue;
}
return block;
@ -175,7 +175,7 @@ public abstract class WaterAbility extends ElementalAbility {
if (GeneralMethods.isRegionProtectedFromBuild(player, "PlantDisc", location)) {
continue;
} else if (isPlantbendable(player, block.getType(), onlyLeaves)) {
if (TempBlock.isTempBlock(block)) {
if (TempBlock.isTempBlock(block) && !PhaseChange.getFrozenBlocksAsTempBlock().contains(TempBlock.get(block))) {
continue;
}
return block;
@ -213,15 +213,8 @@ public abstract class WaterAbility extends ElementalAbility {
if ((!isTransparent(player, block) && !isIce(block) && !isPlant(block)) || GeneralMethods.isRegionProtectedFromBuild(player, "WaterManipulation", location)) {
continue;
} else if (isWaterbendable(player, null, block) && (!isPlant(block) || plantbending)) {
if (TempBlock.isTempBlock(block)) {
if (TempBlock.isTempBlock(block) && !PhaseChange.getFrozenBlocksAsTempBlock().contains(TempBlock.get(block))) {
continue;
/*
* TempBlock tb = TempBlock.get(block); byte full = 0x0; if
* (tb.getState().getRawData() != full &&
* (tb.getState().getType() != Material.WATER ||
* tb.getState().getType() != Material.STATIONARY_WATER)) {
* continue; }
*/
}
return block;
}
@ -278,7 +271,7 @@ public abstract class WaterAbility extends ElementalAbility {
return false;
}
if (TempBlock.isTempBlock(block)) {
if (TempBlock.isTempBlock(block) && !PhaseChange.getFrozenBlocksAsTempBlock().contains(TempBlock.get(block))) {
return false;
} else if (isWater(block) && block.getData() == full) {
return true;

View file

@ -159,8 +159,6 @@ public class EarthPassive {
return false;
} else if (TempBlock.isTempBlock(block)) {
return false;
} else if (TempBlock.isTouchingTempBlock(block)) {
return false;
}
return true;
}
@ -172,8 +170,6 @@ public class EarthPassive {
return false;
} else if (LavaSurgeWave.isBlockWave(to) || LavaSurgeWave.isBlockWave(from)) {
return false;
} else if (TempBlock.isTempBlock(to) || TempBlock.isTempBlock(from)) {
return false;
}
return true;
}

View file

@ -28,6 +28,7 @@ import com.projectkorra.projectkorra.util.ParticleEffect;
import com.projectkorra.projectkorra.util.TempBlock;
import com.projectkorra.projectkorra.waterbending.SurgeWave;
import com.projectkorra.projectkorra.waterbending.Torrent;
import com.projectkorra.projectkorra.waterbending.WaterManipulation;
import com.projectkorra.projectkorra.waterbending.WaterSpoutWave;
import com.projectkorra.projectkorra.waterbending.combo.WaterCombo;
import com.projectkorra.projectkorra.waterbending.ice.PhaseChange;
@ -318,7 +319,7 @@ public class HeatControl extends FireAbility {
WaterSpoutWave.thaw(block);
WaterCombo.thaw(block);
if (isMeltable(block) && !TempBlock.isTempBlock(block)) {
if (isMeltable(block) && !TempBlock.isTempBlock(block) && WaterManipulation.canPhysicsChange(block)) {
if (block.getType() == Material.SNOW) {
block.setType(Material.AIR);
return;
@ -414,7 +415,11 @@ public class HeatControl extends FireAbility {
@Override
public boolean isHarmlessAbility() {
return this.heatControlType.equals(HeatControlType.COOK);
if (this.heatControlType != null) {
return this.heatControlType.equals(HeatControlType.COOK);
} else {
return false;
}
}
@Override

View file

@ -5,6 +5,7 @@ import com.projectkorra.projectkorra.ability.CoreAbility;
import com.projectkorra.projectkorra.ability.EarthAbility;
import com.projectkorra.projectkorra.ability.WaterAbility;
import com.projectkorra.projectkorra.configuration.ConfigManager;
import com.projectkorra.projectkorra.waterbending.ice.PhaseChange;
import org.bukkit.Location;
import org.bukkit.Material;
@ -60,7 +61,7 @@ public class BlockSource {
if (coreAbil instanceof WaterAbility) {
Block waterBlock = WaterAbility.getWaterSourceBlock(player, MAX_RANGE, true);
if (waterBlock != null && !TempBlock.isTempBlock(waterBlock)) {
if (waterBlock != null) {
putSource(player, waterBlock, BlockSourceType.WATER, clickType);
if (WaterAbility.isPlant(waterBlock)) {
putSource(player, waterBlock, BlockSourceType.PLANT, clickType);
@ -163,7 +164,7 @@ public class BlockSource {
public static Block getSourceBlock(Player player, double range, BlockSourceType sourceType, ClickType clickType) {
BlockSourceInformation info = getValidBlockSourceInformation(player, range, sourceType, clickType);
if (info != null) {
if (TempBlock.isTempBlock(info.getBlock())) {
if (TempBlock.isTempBlock(info.getBlock()) && !PhaseChange.getFrozenBlocksAsTempBlock().contains(TempBlock.get(info.getBlock()))) {
return null;
}
return info.getBlock();
@ -266,7 +267,10 @@ public class BlockSource {
if (allowSnow && sourceBlock == null) {
sourceBlock = getSourceBlock(player, range, BlockSourceType.SNOW, clickType);
}
if (sourceBlock != null && !sourceBlock.getType().equals(Material.AIR) && (WaterAbility.isWater(sourceBlock) || WaterAbility.isPlant(sourceBlock) || WaterAbility.isSnow(sourceBlock) || WaterAbility.isIce(sourceBlock)) && !TempBlock.isTempBlock(sourceBlock)) {
if (sourceBlock != null && !sourceBlock.getType().equals(Material.AIR) && (WaterAbility.isWater(sourceBlock) || WaterAbility.isPlant(sourceBlock) || WaterAbility.isSnow(sourceBlock) || WaterAbility.isIce(sourceBlock))) {
if (TempBlock.isTempBlock(sourceBlock) && !PhaseChange.getFrozenBlocksAsTempBlock().contains(TempBlock.get(sourceBlock))) {
return null;
}
return sourceBlock;
}
return null;

View file

@ -416,8 +416,6 @@ public class WaterManipulation extends WaterAbility {
return false;
} else if (SurgeWave.isBlockWave(to) || SurgeWave.isBlockWave(from)) {
return false;
} else if (TempBlock.isTempBlock(to) || TempBlock.isTempBlock(from)) {
return false;
} else if (isAdjacentToFrozenBlock(to) || isAdjacentToFrozenBlock(from)) {
return false;
}
@ -435,9 +433,7 @@ public class WaterManipulation extends WaterAbility {
return false;
} else if (SurgeWave.isBlockWave(block)) {
return false;
} else if (TempBlock.isTempBlock(block)) {
return false;
} else if (TempBlock.isTouchingTempBlock(block)) {
} else if (TempBlock.isTempBlock(block) && !PhaseChange.getFrozenBlocksAsTempBlock().contains(TempBlock.get(block))) {
return false;
}
return true;