mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2024-09-27 14:13:11 +02:00
[BLEEDING/INSTABLE] Roughly adjust to 1.6.1 Bukkit API changes.
This commit is contained in:
parent
f894a8da39
commit
d11e91f2e4
@ -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...
|
||||
|
@ -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. */
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user