Skip to content

Commit

Permalink
Implement JoinLeaveListener with MovingListener and ChatListener.
Browse files Browse the repository at this point in the history
  • Loading branch information
asofold committed Mar 8, 2013
1 parent 5dd09d4 commit 926556a
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 38 deletions.
Expand Up @@ -7,14 +7,14 @@
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerLoginEvent.Result;

import fr.neatmonster.nocheatplus.checks.CheckListener;
import fr.neatmonster.nocheatplus.checks.CheckType;
import fr.neatmonster.nocheatplus.command.CommandUtil;
import fr.neatmonster.nocheatplus.command.INotifyReload;
import fr.neatmonster.nocheatplus.components.JoinLeaveListener;
import fr.neatmonster.nocheatplus.config.ConfPaths;
import fr.neatmonster.nocheatplus.config.ConfigFile;
import fr.neatmonster.nocheatplus.config.ConfigManager;
Expand All @@ -36,7 +36,7 @@
*
* @see ChatEvent
*/
public class ChatListener extends CheckListener implements INotifyReload {
public class ChatListener extends CheckListener implements INotifyReload, JoinLeaveListener {

// Checks.

Expand Down Expand Up @@ -220,12 +220,19 @@ else if (logins.isEnabled(player) && logins.check(player, cc, data)){
event.disallow(Result.KICK_OTHER, cc.loginsKickMessage);
}
}

@EventHandler(
priority = EventPriority.MONITOR)
public void onPlayerJoin(final PlayerJoinEvent event) {
final Player player = event.getPlayer();
final ChatConfig cc = ChatConfig.getConfig(player);

@Override
public void onReload() {
// Read some things from the global config file.
ConfigFile config = ConfigManager.getConfigFile();
initFilters(config);
text.onReload();
logins.onReload();
}

@Override
public void playerJoins(final Player player) {
final ChatConfig cc = ChatConfig.getConfig(player);
final ChatData data = ChatData.getData(player);
synchronized (data) {
if (captcha.isEnabled(player) && captcha.shouldCheckCaptcha(cc, data)){
Expand All @@ -235,15 +242,10 @@ public void onPlayerJoin(final PlayerJoinEvent event) {
captcha.sendNewCaptcha(player, cc, data);
}
}
}
}

@Override
public void onReload() {
// Read some things from the global config file.
ConfigFile config = ConfigManager.getConfigFile();
initFilters(config);
text.onReload();
logins.onReload();
public void playerLeaves(final Player player) {
}

}
Expand Up @@ -25,17 +25,15 @@
import org.bukkit.event.player.PlayerBedLeaveEvent;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.event.player.PlayerGameModeChangeEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerPortalEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.event.player.PlayerToggleSneakEvent;
import org.bukkit.event.player.PlayerVelocityEvent;
import org.bukkit.event.vehicle.VehicleDestroyEvent;
import org.bukkit.event.vehicle.VehicleEnterEvent;
import org.bukkit.event.vehicle.VehicleExitEvent;
import org.bukkit.event.vehicle.VehicleMoveEvent;
import org.bukkit.util.Vector;
Expand All @@ -52,6 +50,7 @@
import fr.neatmonster.nocheatplus.components.IHaveCheckType;
import fr.neatmonster.nocheatplus.components.INeedConfig;
import fr.neatmonster.nocheatplus.components.IRemoveData;
import fr.neatmonster.nocheatplus.components.JoinLeaveListener;
import fr.neatmonster.nocheatplus.components.TickListener;
import fr.neatmonster.nocheatplus.config.ConfPaths;
import fr.neatmonster.nocheatplus.config.ConfigManager;
Expand Down Expand Up @@ -89,7 +88,7 @@
*
* @see MovingEvent
*/
public class MovingListener extends CheckListener implements TickListener, IRemoveData, IHaveCheckType, INotifyReload, INeedConfig{
public class MovingListener extends CheckListener implements TickListener, IRemoveData, IHaveCheckType, INotifyReload, INeedConfig, JoinLeaveListener{

/**
* Coupling from and to PlayerLocation objects with a block cache for easy storage and reuse.
Expand Down Expand Up @@ -948,14 +947,19 @@ public void onPlayerVelocity(final PlayerVelocityEvent event) {
*/
final Player player = event.getPlayer();
final MovingData data = MovingData.getData(player);
// Ignore velocity if inside of vehicles.
if (player.isInsideVehicle()){
data.removeAllVelocity();
return;
}

data.removeInvalidVelocity();
final MovingConfig cc = MovingConfig.getConfig(player);

final Vector velocity = event.getVelocity();

if (cc.debug) System.out.println(event.getPlayer().getName() + " new velocity: " + velocity);

// TODO: Check for vehicles ?

double newVal = velocity.getY();
if (newVal >= 0D) {
if (data.verticalFreedom <= 0.001 && data.verticalVelocityCounter >= 0){
Expand All @@ -970,7 +974,6 @@ public void onPlayerVelocity(final PlayerVelocityEvent event) {
newVal = Math.sqrt(velocity.getX() * velocity.getX() + velocity.getZ() * velocity.getZ());
if (newVal > 0D) {
final Velocity vel = new Velocity(newVal, cc.velocityActivationCounter, 1 + (int) Math.round(newVal * 10.0));
data.removeInvalidVelocity();
data.addHorizontalVelocity(vel);
// data.horizontalFreedom += newVal;
// data.horizontalVelocityCounter = Math.min(100, Math.max(data.horizontalVelocityCounter, cc.velocityGraceTicks ) + 1 + (int) Math.round(newVal * 10.0)); // 30;
Expand Down Expand Up @@ -1123,9 +1126,8 @@ public void onEntityDamage(final EntityDamageEvent event){
// Entity fall-distance should be reset elsewhere.
}

@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerJoin(final PlayerJoinEvent event) {
final Player player = event.getPlayer();
@Override
public void playerJoins(final Player player) {
final MovingData data = MovingData.getData(player);
// TODO: on existing set back: detect world changes and loss of world on join (+ set up some paradigm).
data.clearMorePacketsData();
Expand Down Expand Up @@ -1165,18 +1167,15 @@ else if (data.hasSetBackWorldChanged(loc)){
data.sfHoverLoginTicks = 0;
data.sfHoverTicks = -1;
}

}

@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerQuit(final PlayerQuitEvent event){
onLeave(event.getPlayer());

}

private void onLeave(final Player player) {

@Override
public void playerLeaves(final Player player) {
survivalFly.setReallySneaking(player, false);
noFall.onLeave(player);
final MovingData data = MovingData.getData(player);
// TODO: Add a method for ordinary presence-change resetting (use in join + leave).
data.removeAllVelocity();
}

Expand All @@ -1194,6 +1193,18 @@ public void onVehicleDestroy(final VehicleDestroyEvent event){
onPlayerVehicleLeave((Player) entity);
}

@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public final void onPlayerVehicleEnter(final VehicleEnterEvent event){
final Entity entity = event.getEntered();
if (!(entity instanceof Player)){
return;
}
final Player player = (Player) entity;
final MovingData data = MovingData.getData(player);
data.removeAllVelocity();
// TODO: more resetting, visible check ?
}

private final void onPlayerVehicleLeave(final Player player){
final MovingData data = MovingData.getData(player);
// if (data.morePacketsVehicleTaskId != -1){
Expand All @@ -1219,11 +1230,6 @@ private final void onPlayerVehicleLeave(final Player player){
data.verticalVelocity = 0.15;
data.verticalVelocityUsed = 0;
}

@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerKick(final PlayerKickEvent event){
onLeave(event.getPlayer());
}

@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerToggleSneak(final PlayerToggleSneakEvent event){
Expand Down Expand Up @@ -1362,4 +1368,5 @@ public void onReload() {
parkedInfo.clear();
hoverTicksStep = Math.max(1, ConfigManager.getConfigFile().getInt(ConfPaths.MOVING_SURVIVALFLY_HOVER_STEP));
}

}

0 comments on commit 926556a

Please sign in to comment.