added vault.admin permission - and an upate check during login

This commit is contained in:
sleak 2011-12-09 20:14:28 -08:00
parent cfd61c35c2
commit 530a636df7

View File

@ -56,6 +56,10 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event.Type;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.ServicePriority;
import org.bukkit.plugin.java.JavaPlugin;
@ -67,6 +71,7 @@ import org.w3c.dom.NodeList;
public class Vault extends JavaPlugin {
private static final Logger log = Logger.getLogger("Minecraft");
private Permission perms;
@Override
public void onDisable() {
@ -79,7 +84,12 @@ public class Vault extends JavaPlugin {
@Override
public void onEnable() {
try {
updateCheck();
String newVersion = updateCheck();
String oldVersion = getDescription().getVersion().substring(0, 5);
if (!oldVersion.equalsIgnoreCase(newVersion)) {
log.warning(newVersion + " is out! You are running " + oldVersion);
log.warning("Update Vault at: http://dev.bukkit.org/server-mods/vault");
}
} catch (Exception e) {
// ignore exceptions
}
@ -90,6 +100,7 @@ public class Vault extends JavaPlugin {
getCommand("vault-info").setExecutor(this);
getCommand("vault-reload").setExecutor(this);
this.getServer().getPluginManager().registerEvent(Type.PLAYER_JOIN, new VaultPlayerListener(), Priority.Monitor, this);
log.info(String.format("[%s] Enabled Version %s", getDescription().getName(), getDescription().getVersion()));
}
@ -97,7 +108,6 @@ public class Vault extends JavaPlugin {
* Attempts to load Chat Addons
*/
private void loadChat() {
Permission perms = getServer().getServicesManager().getRegistration(Permission.class).getProvider();
// Try to load PermissionsEx
if (packageExists(new String[] { "ru.tehkode.permissions.bukkit.PermissionsEx" })) {
Chat eChat = new Chat_PermissionsEx(this, perms);
@ -267,6 +277,7 @@ public class Vault extends JavaPlugin {
getServer().getServicesManager().register(Permission.class, perms, this, ServicePriority.Lowest);
log.info(String.format("[%s][Permission] SuperPermissions loaded as backup permission system.", getDescription().getName()));
this.perms = getServer().getServicesManager().getRegistration(Permission.class).getProvider();
}
@Override
@ -346,7 +357,7 @@ public class Vault extends JavaPlugin {
}
}
public void updateCheck() throws Exception {
public String updateCheck() throws Exception {
String pluginUrlString = "http://dev.bukkit.org/server-mods/vault/files.rss";
try {
URL url = new URL(pluginUrlString);
@ -359,15 +370,32 @@ public class Vault extends JavaPlugin {
NodeList firstElementTagName = firstElement.getElementsByTagName("title");
Element firstNameElement = (Element) firstElementTagName.item(0);
NodeList firstNodes = firstNameElement.getChildNodes();
String newVersion = firstNodes.item(0).getNodeValue();
String oldVersion = getDescription().getVersion().substring(0, 5);
if (!newVersion.contains(oldVersion)) {
log.warning(newVersion + " is out! You are running v" + oldVersion);
log.warning("Update Vault at: http://dev.bukkit.org/server-mods/vault");
}
return firstNodes.item(0).getNodeValue();
}
}
catch (Exception localException) {
return getDescription().getVersion().substring(0, 5);
}
return getDescription().getVersion().substring(0, 5);
}
public class VaultPlayerListener extends PlayerListener {
@Override
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
if (perms.has(player, "vault.admin")) {
try {
String newVersion = updateCheck();
String oldVersion = getDescription().getVersion().substring(0, 5);
if (!newVersion.contains(oldVersion)) {
player.sendMessage(newVersion + " is out! You are running " + oldVersion);
player.sendMessage("Update Vault at: http://dev.bukkit.org/server-mods/vault");
}
} catch (Exception e) {
// Ignore exceptions
}
}
}
}
}