Skip to content

Commit

Permalink
[BLEEDING/INSTABLE] Roughly adjust to 1.6.1 Bukkit API changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
asofold committed Jul 2, 2013
1 parent f894a8d commit d11e91f
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 16 deletions.
Expand Up @@ -41,7 +41,7 @@ public MCAccessBukkit(){
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
Expand Down Expand Up @@ -127,6 +127,7 @@ public int getInvulnerableTicks(final Player player) {
return player.getNoDamageTicks();
}

@SuppressWarnings("deprecation")
@Override
public void setInvulnerableTicks(final Player player, final int ticks) {
// TODO: Ahhh...
Expand Down
Expand Up @@ -113,7 +113,7 @@ public static void clear(){

// 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. */
Expand Down
Expand Up @@ -90,7 +90,7 @@ public FightListener(){
* 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);

Expand Down
Expand Up @@ -35,7 +35,7 @@ public GodMode() {
* @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());
Expand All @@ -53,7 +53,9 @@ public boolean check(final Player player, final int damage, final FightData data
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;
Expand Down
Expand Up @@ -1182,16 +1182,16 @@ public void onEntityDamage(final EntityDamageEvent event){
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);
}
Expand Down
Expand Up @@ -37,8 +37,8 @@ public NoFall() {
* @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;
}

/**
Expand All @@ -52,7 +52,7 @@ private final void handleOnGround(final Player player, final double y, final boo
// 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.
Expand All @@ -76,13 +76,15 @@ private final void adjustFallDistance(final Player player, final double minY, fi
}


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.
Expand Down
Expand Up @@ -22,10 +22,9 @@

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;

Expand Down

0 comments on commit d11e91f

Please sign in to comment.