General npc support, fixes and enhancements

This commit is contained in:
Gabriele C 2015-09-15 16:33:32 +02:00
parent c473e81eb9
commit 026d84427b
15 changed files with 40 additions and 102 deletions

24
pom.xml
View File

@ -129,12 +129,6 @@
<url>https://ci.drtshock.net/plugin/repository/everything</url> <url>https://ci.drtshock.net/plugin/repository/everything</url>
</repository> </repository>
<!-- Citizens API 2.X Repo -->
<repository>
<id>citizensapi-repo</id>
<url>http://ci.citizensnpcs.co/plugin/repository/project/CitizensAPI/LastSuccessful/repository</url>
</repository>
<!-- CombatTagPlus Repo --> <!-- CombatTagPlus Repo -->
<repository> <repository>
<id>minelink-thirdparty</id> <id>minelink-thirdparty</id>
@ -299,24 +293,6 @@
</exclusions> </exclusions>
</dependency> </dependency>
<!-- Citizens 2.X, NPC plugin, http://dev.bukkit.org/bukkit-plugins/citizens/ -->
<dependency>
<groupId>net.citizensnpcs</groupId>
<artifactId>citizensapi</artifactId>
<version>2.0.16-SNAPSHOT</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
</exclusion>
<exclusion>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Multi World plugin, http://www.spigotmc.org/resources/multiverse-core.390/ --> <!-- Multi World plugin, http://www.spigotmc.org/resources/multiverse-core.390/ -->
<dependency> <dependency>
<groupId>com.onarandombox.multiversecore</groupId> <groupId>com.onarandombox.multiversecore</groupId>

View File

@ -16,7 +16,6 @@ import fr.xephi.authme.converter.ForceFlatToSqlite;
import fr.xephi.authme.datasource.*; import fr.xephi.authme.datasource.*;
import fr.xephi.authme.listener.*; import fr.xephi.authme.listener.*;
import fr.xephi.authme.plugin.manager.BungeeCordMessage; import fr.xephi.authme.plugin.manager.BungeeCordMessage;
import fr.xephi.authme.plugin.manager.CitizensCommunicator;
import fr.xephi.authme.plugin.manager.CombatTagComunicator; import fr.xephi.authme.plugin.manager.CombatTagComunicator;
import fr.xephi.authme.plugin.manager.EssSpawn; import fr.xephi.authme.plugin.manager.EssSpawn;
import fr.xephi.authme.process.Management; import fr.xephi.authme.process.Management;
@ -71,8 +70,6 @@ public class AuthMe extends JavaPlugin {
public Location essentialsSpawn; public Location essentialsSpawn;
public MultiverseCore multiverse; public MultiverseCore multiverse;
public LookupService lookupService; public LookupService lookupService;
public CitizensCommunicator citizens;
public boolean isCitizensActive = false;
public boolean CombatTag = false; public boolean CombatTag = false;
public boolean legacyChestShop = false; public boolean legacyChestShop = false;
public boolean antibotMod = false; public boolean antibotMod = false;
@ -98,9 +95,6 @@ public class AuthMe extends JavaPlugin {
return m; return m;
} }
public CitizensCommunicator getCitizensCommunicator() {
return citizens;
}
@Override @Override
public void onEnable() { public void onEnable() {
@ -182,10 +176,6 @@ public class AuthMe extends JavaPlugin {
// Find Permissions // Find Permissions
checkVault(); checkVault();
// Check Citizens Version
citizens = new CitizensCommunicator(this);
checkCitizens();
// Check Combat Tag Version // Check Combat Tag Version
checkCombatTag(); checkCombatTag();
@ -515,11 +505,6 @@ public class AuthMe extends JavaPlugin {
this.CombatTag = server.getPluginManager().isPluginEnabled("CombatTag"); this.CombatTag = server.getPluginManager().isPluginEnabled("CombatTag");
} }
// Check if Citizens is active
public void checkCitizens() {
this.isCitizensActive = server.getPluginManager().isPluginEnabled("Citizens");
}
// Check if a player/command sender have a permission // Check if a player/command sender have a permission
public boolean authmePermissible(Player player, String perm) { public boolean authmePermissible(Player player, String perm) {
if (player.hasPermission(perm)) { if (player.hasPermission(perm)) {
@ -541,7 +526,7 @@ public class AuthMe extends JavaPlugin {
// Save Player Data // Save Player Data
public void savePlayer(Player player) { public void savePlayer(Player player) {
if ((citizens.isNPC(player)) || (Utils.getInstance().isUnrestricted(player)) || (CombatTagComunicator.isNPC(player))) { if ((utils.isNPC(player)) || (Utils.getInstance().isUnrestricted(player)) || (CombatTagComunicator.isNPC(player))) {
return; return;
} }
String name = player.getName().toLowerCase(); String name = player.getName().toLowerCase();

View File

@ -14,14 +14,13 @@ import java.util.logging.Logger;
public class ConsoleLogger { public class ConsoleLogger {
private static final Logger log = AuthMe.getInstance().getLogger(); private static final Logger log = AuthMe.getInstance().getLogger();
private static final DateFormat format = DateFormat.getDateTimeInstance();
public static void info(String message) { public static void info(String message) {
if (AuthMe.getInstance().isEnabled()) { if (AuthMe.getInstance().isEnabled()) {
log.info("[AuthMe] " + message); log.info("[AuthMe] " + message);
if (Settings.useLogging) { if (Settings.useLogging) {
writeLog("[" + format.format(new Date()) + "] " + message); writeLog("[" + DateFormat.getDateTimeInstance().format(new Date()) + "] " + message);
} }
} }
} }
@ -30,7 +29,7 @@ public class ConsoleLogger {
if (AuthMe.getInstance().isEnabled()) { if (AuthMe.getInstance().isEnabled()) {
log.warning("[AuthMe] " + message); log.warning("[AuthMe] " + message);
if (Settings.useLogging) { if (Settings.useLogging) {
writeLog("[" + format.format(new Date()) + "] ERROR: " + message); writeLog("[" + DateFormat.getDateTimeInstance().format(new Date()) + "] ERROR: " + message);
} }
} }
} }

View File

@ -8,6 +8,7 @@ import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.io.File; import java.io.File;
@ -211,4 +212,12 @@ public class Utils {
} }
return Collections.emptyList(); return Collections.emptyList();
} }
public boolean isNPC(final Entity player) {
try {
return player.hasMetadata("NPC");
} catch (Exception e) {
return false;
}
}
} }

View File

@ -20,6 +20,7 @@ public class API {
public static final String newline = System.getProperty("line.separator"); public static final String newline = System.getProperty("line.separator");
public static AuthMe instance; public static AuthMe instance;
private Utils utils = Utils.getInstance();
@Deprecated @Deprecated
public API(AuthMe instance) { public API(AuthMe instance) {
@ -65,7 +66,7 @@ public class API {
*/ */
@Deprecated @Deprecated
public boolean isaNPC(Player player) { public boolean isaNPC(Player player) {
if (instance.getCitizensCommunicator().isNPC(player)) if (utils.isNPC(player))
return true; return true;
return CombatTagComunicator.isNPC(player); return CombatTagComunicator.isNPC(player);
} }
@ -77,7 +78,7 @@ public class API {
*/ */
@Deprecated @Deprecated
public boolean isNPC(Player player) { public boolean isNPC(Player player) {
if (instance.getCitizensCommunicator().isNPC(player)) if (utils.isNPC(player))
return true; return true;
return CombatTagComunicator.isNPC(player); return CombatTagComunicator.isNPC(player);
} }

View File

@ -23,6 +23,7 @@ public class NewAPI {
public static final String newline = System.getProperty("line.separator"); public static final String newline = System.getProperty("line.separator");
public static NewAPI singleton; public static NewAPI singleton;
public AuthMe plugin; public AuthMe plugin;
private Utils utils = Utils.getInstance();
public NewAPI(AuthMe plugin) { public NewAPI(AuthMe plugin) {
this.plugin = plugin; this.plugin = plugin;
@ -70,7 +71,7 @@ public class NewAPI {
* @return true if player is a npc * @return true if player is a npc
*/ */
public boolean isNPC(Player player) { public boolean isNPC(Player player) {
return plugin.getCitizensCommunicator().isNPC(player) || CombatTagComunicator.isNPC(player); return utils.isNPC(player) || CombatTagComunicator.isNPC(player);
} }
/** /**

View File

@ -19,7 +19,6 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Paths;
public class JsonCache { public class JsonCache {

View File

@ -263,6 +263,7 @@ public class MySQL implements DataSource {
} }
if (Settings.getPasswordHash == HashAlgorithm.XENFORO) { if (Settings.getPasswordHash == HashAlgorithm.XENFORO) {
rs.close(); rs.close();
pst.close();
pst = con.prepareStatement("SELECT * FROM xf_user_authenticate WHERE " + columnID + "=?;"); pst = con.prepareStatement("SELECT * FROM xf_user_authenticate WHERE " + columnID + "=?;");
pst.setInt(1, id); pst.setInt(1, id);
rs = pst.executeQuery(); rs = pst.executeQuery();

View File

@ -15,6 +15,7 @@ import org.bukkit.event.entity.*;
public class AuthMeEntityListener implements Listener { public class AuthMeEntityListener implements Listener {
public AuthMe instance; public AuthMe instance;
private Utils utils = Utils.getInstance();
public AuthMeEntityListener(AuthMe instance) { public AuthMeEntityListener(AuthMe instance) {
this.instance = instance; this.instance = instance;
@ -32,7 +33,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
if (instance.citizens.isNPC(entity)) if (utils.isNPC(entity))
return; return;
Player player = (Player) entity; Player player = (Player) entity;
@ -64,7 +65,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
if (instance.citizens.isNPC(entity)) if (utils.isNPC(entity))
return; return;
Player player = (Player) entity; Player player = (Player) entity;
@ -114,7 +115,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
if (instance.citizens.isNPC(entity)) if (utils.isNPC(entity))
return; return;
Player player = (Player) entity; Player player = (Player) entity;
@ -141,7 +142,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
if (instance.citizens.isNPC(entity)) if (utils.isNPC(entity))
return; return;
Player player = (Player) entity; Player player = (Player) entity;
@ -174,7 +175,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
if (instance.citizens.isNPC(player)) if (utils.isNPC(player))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName())) {
@ -202,7 +203,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
if (instance.citizens.isNPC(player)) if (utils.isNPC(player))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName())) {

View File

@ -40,6 +40,7 @@ public class AuthMePlayerListener implements Listener {
public static ConcurrentHashMap<String, String> joinMessage = new ConcurrentHashMap<>(); public static ConcurrentHashMap<String, String> joinMessage = new ConcurrentHashMap<>();
private Messages m = Messages.getInstance(); private Messages m = Messages.getInstance();
public AuthMe plugin; public AuthMe plugin;
private Utils utils = Utils.getInstance();
public static ConcurrentHashMap<String, Boolean> causeByAuthMe = new ConcurrentHashMap<>(); public static ConcurrentHashMap<String, Boolean> causeByAuthMe = new ConcurrentHashMap<>();
private List<String> antibot = new ArrayList<>(); private List<String> antibot = new ArrayList<>();
@ -305,7 +306,7 @@ public class AuthMePlayerListener implements Listener {
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName().toLowerCase(); String name = player.getName().toLowerCase();
if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (utils.isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
} }
@ -440,7 +441,7 @@ public class AuthMePlayerListener implements Listener {
final String name = player.getName().toLowerCase(); final String name = player.getName().toLowerCase();
boolean isAuthAvailable = plugin.database.isAuthAvailable(name); boolean isAuthAvailable = plugin.database.isAuthAvailable(name);
if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (utils.isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
} }
@ -608,7 +609,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
if (plugin.getCitizensCommunicator().isNPC(player)) if (utils.isNPC(player))
return; return;
if (PlayerCache.getInstance().isAuthenticated(name)) { if (PlayerCache.getInstance().isAuthenticated(name)) {
@ -636,7 +637,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
if (plugin.getCitizensCommunicator().isNPC(player)) if (utils.isNPC(player))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
@ -667,7 +668,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
if (plugin.getCitizensCommunicator().isNPC(player)) { if (utils.isNPC(player)) {
return; return;
} }
@ -693,7 +694,7 @@ public class AuthMePlayerListener implements Listener {
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;
} }
if (plugin.getCitizensCommunicator().isNPC(player)) if (utils.isNPC(player))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return; return;
@ -732,7 +733,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
if (plugin.getCitizensCommunicator().isNPC(player)) if (utils.isNPC(player))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
@ -762,7 +763,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
if (plugin.getCitizensCommunicator().isNPC(player)) { if (utils.isNPC(player)) {
return; return;
} }
@ -786,7 +787,7 @@ public class AuthMePlayerListener implements Listener {
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName().toLowerCase(); String name = player.getName().toLowerCase();
if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (utils.isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
} }
@ -814,7 +815,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
if (plugin.getCitizensCommunicator().isNPC(player)) if (utils.isNPC(player))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
@ -886,7 +887,7 @@ public class AuthMePlayerListener implements Listener {
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player))
return; return;
if (plugin.getCitizensCommunicator().isNPC(player)) if (utils.isNPC(player))
return; return;
if (PlayerCache.getInstance().isAuthenticated(name)) if (PlayerCache.getInstance().isAuthenticated(name))
@ -921,7 +922,7 @@ public class AuthMePlayerListener implements Listener {
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player))
return; return;
if (plugin.getCitizensCommunicator().isNPC(player)) if (utils.isNPC(player))
return; return;
if (PlayerCache.getInstance().isAuthenticated(name)) if (PlayerCache.getInstance().isAuthenticated(name))

View File

@ -63,10 +63,6 @@ public class AuthMeServerListener implements Listener {
plugin.CombatTag = false; plugin.CombatTag = false;
ConsoleLogger.info("CombatTag has been disabled, unhook!"); ConsoleLogger.info("CombatTag has been disabled, unhook!");
} }
if (pluginName.equalsIgnoreCase("Citizens")) {
plugin.isCitizensActive = false;
ConsoleLogger.info("Citizens has been disabled, unhook!");
}
if (pluginName.equalsIgnoreCase("Vault")) { if (pluginName.equalsIgnoreCase("Vault")) {
plugin.permission = null; plugin.permission = null;
ConsoleLogger.showError("Vault has been disabled, unhook permissions!"); ConsoleLogger.showError("Vault has been disabled, unhook permissions!");
@ -84,8 +80,6 @@ public class AuthMeServerListener implements Listener {
plugin.checkChestShop(); plugin.checkChestShop();
if (pluginName.equalsIgnoreCase("CombatTag")) if (pluginName.equalsIgnoreCase("CombatTag"))
plugin.checkCombatTag(); plugin.checkCombatTag();
if (pluginName.equalsIgnoreCase("Citizens"))
plugin.checkCitizens();
if (pluginName.equalsIgnoreCase("Vault")) if (pluginName.equalsIgnoreCase("Vault"))
plugin.checkVault(); plugin.checkVault();
} }

View File

@ -1,27 +0,0 @@
package fr.xephi.authme.plugin.manager;
import org.bukkit.entity.Entity;
import fr.xephi.authme.AuthMe;
import net.citizensnpcs.api.CitizensAPI;
public class CitizensCommunicator {
public AuthMe instance;
public CitizensCommunicator(AuthMe instance) {
this.instance = instance;
}
public boolean isNPC(final Entity player) {
if (!this.instance.isCitizensActive)
return false;
try {
return CitizensAPI.getNPCRegistry().isNPC(player);
} catch (NoClassDefFoundError ncdfe) {
return false;
} catch (Exception npe) {
return false;
}
}
}

View File

@ -58,7 +58,7 @@ public class AsyncronousJoin {
AuthMePlayerListener.gameMode.putIfAbsent(name, player.getGameMode()); AuthMePlayerListener.gameMode.putIfAbsent(name, player.getGameMode());
BukkitScheduler sched = plugin.getServer().getScheduler(); BukkitScheduler sched = plugin.getServer().getScheduler();
if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (utils.isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
} }

View File

@ -44,7 +44,7 @@ public class AsyncronousQuit {
public void process() { public void process() {
if (player == null) if (player == null)
return; return;
if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (utils.isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
} }

View File

@ -2,8 +2,6 @@ package fr.xephi.authme.settings;
import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.ConsoleLogger;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File; import java.io.File;
public class Messages extends CustomConfiguration { public class Messages extends CustomConfiguration {