mirror of
https://github.com/asofold/CompatNoCheatPlus.git
synced 2024-09-27 04:12:36 +02:00
ADd player speed hook
This commit is contained in:
parent
637a0795b2
commit
9896ead526
@ -22,10 +22,12 @@ STACK
|
||||
|
||||
!add check type and permission hooks, also for worldguard regions.
|
||||
|
||||
|
||||
VERSION HISTORY
|
||||
---------------------------
|
||||
|
||||
(5.2.0)
|
||||
- (add) Add hook to set player speed (simple).
|
||||
|
||||
(5.1.0)
|
||||
- (add) Hook for Citizens 2 .
|
||||
|
||||
|
@ -12,6 +12,7 @@ import me.asofold.bpl.cncp.config.compatlayer.CompatConfig;
|
||||
import me.asofold.bpl.cncp.config.compatlayer.NewConfig;
|
||||
import me.asofold.bpl.cncp.hooks.Hook;
|
||||
import me.asofold.bpl.cncp.hooks.generic.HookPlayerClass;
|
||||
import me.asofold.bpl.cncp.hooks.generic.HookSetSpeed;
|
||||
import me.asofold.bpl.cncp.setttings.Settings;
|
||||
import me.asofold.bpl.cncp.utils.Utils;
|
||||
|
||||
@ -39,6 +40,8 @@ public class CompatNoCheatPlus extends JavaPlugin implements Listener {
|
||||
|
||||
private final HookPlayerClass hookPlayerClass = new HookPlayerClass();
|
||||
|
||||
private HookSetSpeed hookSetSpeed = null;
|
||||
|
||||
/**
|
||||
* Flag if plugin is enabled.
|
||||
*/
|
||||
@ -122,6 +125,14 @@ public class CompatNoCheatPlus extends JavaPlugin implements Listener {
|
||||
* Add standard hooks if available.
|
||||
*/
|
||||
private void addAvailableHooks() {
|
||||
try{
|
||||
hookSetSpeed = new me.asofold.bpl.cncp.hooks.generic.HookSetSpeed();
|
||||
hookSetSpeed.setFlySpeed(settings.flySpeed);
|
||||
hookSetSpeed.setWalkSpeed(settings.walkSpeed);
|
||||
hookSetSpeed.init();
|
||||
addHook(hookSetSpeed);
|
||||
}
|
||||
catch (Throwable t){}
|
||||
try{
|
||||
addHook(new me.asofold.bpl.cncp.hooks.citizens2.HookCitizens2());
|
||||
}
|
||||
@ -140,7 +151,7 @@ public class CompatNoCheatPlus extends JavaPlugin implements Listener {
|
||||
|
||||
// Settings:
|
||||
settings.clear();
|
||||
reloadSettings();
|
||||
loadSettings();
|
||||
// Register own listener:
|
||||
final PluginManager pm = getServer().getPluginManager();
|
||||
pm.registerEvents(this, this);
|
||||
@ -168,7 +179,7 @@ public class CompatNoCheatPlus extends JavaPlugin implements Listener {
|
||||
return hooks;
|
||||
}
|
||||
|
||||
public boolean reloadSettings() {
|
||||
public boolean loadSettings() {
|
||||
final Set<String> oldForceEnableLater = new LinkedHashSet<String>();
|
||||
oldForceEnableLater.addAll(settings.forceEnableLater);
|
||||
// Read and apply config to settings:
|
||||
@ -182,6 +193,11 @@ public class CompatNoCheatPlus extends JavaPlugin implements Listener {
|
||||
hookPlayerClass.setExemptAll(settings.exemptAllPlayerClassNames);
|
||||
hookPlayerClass.setPlayerClassName(settings.playerClassName);
|
||||
hookPlayerClass.setCheckSuperClass(settings.exemptSuperClass);
|
||||
// Set hookSetSpeed properties (for future purposes):
|
||||
if (hookSetSpeed != null){
|
||||
hookSetSpeed.setFlySpeed(settings.flySpeed);
|
||||
hookSetSpeed.setWalkSpeed(settings.walkSpeed);
|
||||
}
|
||||
// Re-enable plugins that were not yet on the list:
|
||||
Server server = getServer();
|
||||
Logger logger = server.getLogger();
|
||||
|
@ -0,0 +1,79 @@
|
||||
package me.asofold.bpl.cncp.hooks.generic;
|
||||
|
||||
import me.asofold.bpl.cncp.hooks.AbstractHook;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
|
||||
import fr.neatmonster.nocheatplus.checks.CheckType;
|
||||
|
||||
public class HookSetSpeed extends AbstractHook implements Listener{
|
||||
|
||||
private float flySpeed = 1.0f;
|
||||
|
||||
private float walkSpeed = 1.0f;
|
||||
|
||||
public HookSetSpeed() throws SecurityException, NoSuchMethodException{
|
||||
Player.class.getDeclaredMethod("setFlySpeed", float.class);
|
||||
}
|
||||
|
||||
public void init(){
|
||||
for (final Player player : Bukkit.getOnlinePlayers()){
|
||||
setSpeed(player);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHookName() {
|
||||
return "SetSpeed(default)";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHookVersion() {
|
||||
return "0.0";
|
||||
}
|
||||
|
||||
@Override
|
||||
public CheckType[] getCheckTypes() {
|
||||
return new CheckType[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Listener[] getListeners() {
|
||||
return new Listener[]{this} ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean onCheckFailure(final CheckType checkType, final Player player) {
|
||||
// UNUSED :)
|
||||
return false;
|
||||
}
|
||||
|
||||
public float getFlySpeed() {
|
||||
return flySpeed;
|
||||
}
|
||||
|
||||
public void setFlySpeed(float flySpeed) {
|
||||
this.flySpeed = flySpeed;
|
||||
}
|
||||
|
||||
public float getWalkSpeed() {
|
||||
return walkSpeed;
|
||||
}
|
||||
|
||||
public void setWalkSpeed(float walkSpeed) {
|
||||
this.walkSpeed = walkSpeed;
|
||||
}
|
||||
|
||||
public final void setSpeed(final Player player){
|
||||
player.setWalkSpeed(walkSpeed);
|
||||
player.setFlySpeed(flySpeed);
|
||||
}
|
||||
|
||||
final void onPlayerJoin(final PlayerJoinEvent event){
|
||||
setSpeed(event.getPlayer());
|
||||
}
|
||||
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
package me.asofold.bpl.cncp.setttings;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import me.asofold.bpl.cncp.hooks.Hook;
|
||||
|
||||
/**
|
||||
* Check group specific lists of hooks.
|
||||
* @author mc_dev
|
||||
*
|
||||
*/
|
||||
public final class GroupHooks {
|
||||
|
||||
/**
|
||||
* Hooks that want all.
|
||||
*/
|
||||
public final ArrayList<Hook> all = new ArrayList<Hook>();
|
||||
|
||||
/**
|
||||
* Hooks that want a certain check.<br>
|
||||
*/
|
||||
public final Map<String , ArrayList<Hook>> byCheck = new HashMap<String, ArrayList<Hook>>(10);
|
||||
}
|
@ -13,13 +13,14 @@ public class Settings {
|
||||
public Set<String> forceEnableLater = new LinkedHashSet<String>();
|
||||
public Set<String> loadPlugins = new LinkedHashSet<String>();
|
||||
public Set<String> exemptPlayerClassNames = new HashSet<String>();
|
||||
|
||||
public boolean exemptAllPlayerClassNames = true;
|
||||
public String playerClassName = "CraftPlayer";
|
||||
public boolean exemptSuperClass = true;
|
||||
public boolean exemptSuperClass = true;
|
||||
|
||||
public float flySpeed = 1.0f;
|
||||
public float walkSpeed = 1.0f;
|
||||
|
||||
/**
|
||||
* TODO: I don't like this too much :)
|
||||
*/
|
||||
public static Set<String> preventAddHooks = new HashSet<String>();
|
||||
|
||||
public static CompatConfig getDefaultConfig(){
|
||||
@ -31,6 +32,8 @@ public class Settings {
|
||||
cfg.set("hooks.player-class.exempt-all", ref.exemptAllPlayerClassNames);
|
||||
cfg.set("hooks.player-class.class-name", ref.playerClassName);
|
||||
cfg.set("hooks.player-class.super-class", ref.exemptSuperClass);
|
||||
cfg.set("hooks.set-speed.fly-speed", ref.flySpeed);
|
||||
cfg.set("hooks.set-speed.walk-speed", ref.walkSpeed);
|
||||
cfg.set("hooks.prevent-add", new LinkedList<String>());
|
||||
return cfg;
|
||||
}
|
||||
@ -49,6 +52,8 @@ public class Settings {
|
||||
exemptAllPlayerClassNames = cfg.getBoolean("hooks.player-class.exempt-all", ref.exemptAllPlayerClassNames);
|
||||
playerClassName = cfg.getString("hooks.player-class.class-name", ref.playerClassName);
|
||||
exemptSuperClass = cfg.getBoolean("hooks.player-class.super-class", ref.exemptSuperClass);
|
||||
flySpeed = cfg.getDouble("hooks.set-speed.fly-speed", (double) ref.flySpeed).floatValue();
|
||||
walkSpeed = cfg.getDouble("hooks.set-speed.walk-speed", (double) ref.walkSpeed).floatValue();
|
||||
ConfigUtil.readStringSetFromList(cfg, "hooks.prevent-add", preventAddHooks, true, true, false);
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user