Properly disable plugin, throw custom exception when plugin is incompatible

This commit is contained in:
Shevchik 2014-03-23 01:49:12 +04:00
parent 185b70cf54
commit 8232518abb
3 changed files with 20 additions and 8 deletions

View File

@ -64,7 +64,6 @@ public class Chairs extends JavaPlugin {
nmsaccess.setupVehicleArrow(); nmsaccess.setupVehicleArrow();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.severe("Failed to generate VehicleArrow class, exiting");
getServer().getPluginManager().disablePlugin(this); getServer().getPluginManager().disablePlugin(this);
return; return;
} }
@ -91,11 +90,13 @@ public class Chairs extends JavaPlugin {
@Override @Override
public void onDisable() { public void onDisable() {
for (Player player : getServer().getOnlinePlayers()) { if (psitdata != null) {
if (psitdata.isSitting(player)) { for (Player player : getServer().getOnlinePlayers()) {
PlayerChairUnsitEvent playerunsitevent = new PlayerChairUnsitEvent(player, false); if (psitdata.isSitting(player)) {
Bukkit.getPluginManager().callEvent(playerunsitevent); PlayerChairUnsitEvent playerunsitevent = new PlayerChairUnsitEvent(player, false);
psitdata.unsitPlayerNow(player); Bukkit.getPluginManager().callEvent(playerunsitevent);
psitdata.unsitPlayerNow(player);
}
} }
} }
if (ignoreList != null) { if (ignoreList != null) {

View File

@ -12,7 +12,7 @@ public class NMSAccess {
private Class<?> nmsArrowClass; private Class<?> nmsArrowClass;
public void setupVehicleArrow() throws Exception { public void setupVehicleArrow() throws NMSAccessException, ClassNotFoundException {
String pkgname = getClass().getPackage().getName(); String pkgname = getClass().getPackage().getName();
String packageName = Bukkit.getServer().getClass().getPackage().getName(); String packageName = Bukkit.getServer().getClass().getPackage().getName();
String nmspackageversion = packageName.substring(packageName.lastIndexOf('.') + 1); String nmspackageversion = packageName.substring(packageName.lastIndexOf('.') + 1);
@ -26,7 +26,7 @@ public class NMSAccess {
return; return;
} }
} }
throw new Exception("ChairsReloaded is not compatible with your server version"); throw new NMSAccessException("ChairsReloaded is not compatible with your server version");
} }
public Arrow spawnArrow(Location location) throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { public Arrow spawnArrow(Location location) throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {

View File

@ -0,0 +1,11 @@
package com.cnaude.chairs.vehiclearrow;
public class NMSAccessException extends Exception {
private static final long serialVersionUID = -839103433400420225L;
public NMSAccessException(String message) {
super(message);
}
}