[BLEEDING/INSTABLE] Roughly adjust to 1.6.1 Bukkit API changes.

This commit is contained in:
asofold 2013-07-02 12:13:33 +02:00
parent f894a8da39
commit d11e91f2e4
7 changed files with 20 additions and 16 deletions

View File

@ -41,7 +41,7 @@ public class MCAccessBukkit implements MCAccess, BlockPropertiesSetup{
public String getMCVersion() {
// Bukkit API.
// TODO: maybe output something else.
return "1.4.6|1.4.7|1.5.0|1.5.1|1.5.2|?";
return "1.4.6|1.4.7|1.5.0|1.5.1|1.5.2|1.6.1|?";
}
@Override
@ -127,6 +127,7 @@ public class MCAccessBukkit implements MCAccess, BlockPropertiesSetup{
return player.getNoDamageTicks();
}
@SuppressWarnings("deprecation")
@Override
public void setInvulnerableTicks(final Player player, final int ticks) {
// TODO: Ahhh...

View File

@ -113,7 +113,7 @@ public class FightData extends ACheckData {
// New god mode check [in progress].
public int godModeHealthDecreaseTick = 0;
public int godModeHealth = 0;
public double godModeHealth = 0.0;
public int lastDamageTick = 0;
public int lastNoDamageTicks = 0;
/** Accumulator. */

View File

@ -90,7 +90,7 @@ public class FightListener extends CheckListener implements JoinLeaveListener{
* The EntityDamageByEntityEvent
* @return
*/
private boolean handleNormalDamage(final Player player, final Entity damaged, int damage) {
private boolean handleNormalDamage(final Player player, final Entity damaged, double damage) {
final FightConfig cc = FightConfig.getConfig(player);
final FightData data = FightData.getData(player);

View File

@ -35,7 +35,7 @@ public class GodMode extends Check {
* @param damage
* @return
*/
public boolean check(final Player player, final int damage, final FightData data){
public boolean check(final Player player, final double damage, final FightData data){
final int tick = TickTask.getTick();
final int noDamageTicks = Math.max(0, player.getNoDamageTicks());
@ -53,7 +53,9 @@ public class GodMode extends Check {
final int dNDT = data.lastNoDamageTicks - noDamageTicks;
final int delta = dTick - dNDT;
final int health = player.getHealth();
final double health = player.getHealth();
// TODO: Adjust to double values.
if (data.godModeHealth > health ){
data.godModeHealthDecreaseTick = tick;

View File

@ -1182,16 +1182,16 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
parkedInfo.add(moveInfo);
}
final float fallDistance = player.getFallDistance();
final int damage = event.getDamage();
final double damage = event.getDamage();
final float yDiff = (float) (data.noFallMaxY - loc.getY());
if (cc.debug){
System.out.println(player.getName() + " damage(FALL): " + damage + " / dist=" + player.getFallDistance() + " nf=" + data.noFallFallDistance + " yDiff=" + yDiff);
}
// Fall-back check.
final int maxD = NoFall.getDamage(Math.max(yDiff, Math.max(data.noFallFallDistance, fallDistance))) + (allowReset ? 0 : 3);
final double maxD = NoFall.getDamage(Math.max(yDiff, Math.max(data.noFallFallDistance, fallDistance))) + (allowReset ? 0 : 3);
if (maxD > damage){
// TODO: respect dealDamage ?
event.setDamage(maxD);
event.setDamage((int) Math.round(maxD)); // TODO: Byte code compatibility !?
if (cc.debug){
System.out.println(player.getName() + " Adjust fall damage to: " + maxD);
}

View File

@ -37,8 +37,8 @@ public class NoFall extends Check {
* @param fallDistance
* @return
*/
protected static final int getDamage(final float fallDistance){
return (int) Math.round(fallDistance - 3.0);
protected static final double getDamage(final float fallDistance){
return fallDistance - 3.0;
}
/**
@ -52,7 +52,7 @@ public class NoFall extends Check {
// final int nfD = getDamage(data.noFallFallDistance);
// final int yD = getDamage((float) (data.noFallMaxY - y));
// final int maxD = Math.max(Math.max(pD, nfD), yD);
final int maxD = getDamage(Math.max((float) (data.noFallMaxY - y), Math.max(data.noFallFallDistance, player.getFallDistance())));
final double maxD = getDamage(Math.max((float) (data.noFallMaxY - y), Math.max(data.noFallFallDistance, player.getFallDistance())));
if (maxD > 0){
// Damage to be dealt.
// TODO: more effects like sounds, maybe use custom event with violation added.
@ -76,13 +76,15 @@ public class NoFall extends Check {
}
private void dealFallDamage(final Player player, final int damage) {
final EntityDamageEvent event = new EntityDamageEvent(player, DamageCause.FALL, damage);
private void dealFallDamage(final Player player, final double damage) {
@SuppressWarnings("deprecation")
// TODO: Byte code compatibility ?
final EntityDamageEvent event = new EntityDamageEvent(player, DamageCause.FALL, (int) Math.round(damage));
Bukkit.getPluginManager().callEvent(event);
if (!event.isCancelled()){
// TODO: account for no damage ticks etc.
player.setLastDamageCause(event);
mcAccess.dealFallDamage(player, event.getDamage());
mcAccess.dealFallDamage(player, (int) Math.round(event.getDamage())); // TODO: Adjust signature to double (!).
}
// TODO: let this be done by the damage event (!).
// data.clearNoFallData(); // -> currently done in the damage eventhandling method.

View File

@ -22,10 +22,9 @@ import org.bukkit.potion.PotionEffectType;
import fr.neatmonster.nocheatplus.compat.MCAccess;
import fr.neatmonster.nocheatplus.compat.blocks.BlockPropertiesSetup;
import fr.neatmonster.nocheatplus.compat.blocks.init.vanilla.BlocksMC1_5;
import fr.neatmonster.nocheatplus.compat.blocks.init.vanilla.VanillaBlocksFactory;
import fr.neatmonster.nocheatplus.config.RawConfigFile;
import fr.neatmonster.nocheatplus.config.ConfPaths;
import fr.neatmonster.nocheatplus.config.RawConfigFile;
import fr.neatmonster.nocheatplus.config.WorldConfigProvider;
import fr.neatmonster.nocheatplus.logging.LogUtil;