001 package org.bukkit.util.permissions; 002 003 import org.bukkit.permissions.Permission; 004 import org.bukkit.permissions.PermissionDefault; 005 006 public final class CommandPermissions { 007 private static final String ROOT = "bukkit.command"; 008 private static final String PREFIX = ROOT + "."; 009 010 private CommandPermissions() {} 011 012 private static Permission registerWhitelist(Permission parent) { 013 Permission whitelist = DefaultPermissions.registerPermission(PREFIX + "whitelist", "Allows the user to modify the server whitelist", PermissionDefault.OP, parent); 014 015 DefaultPermissions.registerPermission(PREFIX + "whitelist.add", "Allows the user to add a player to the server whitelist", whitelist); 016 DefaultPermissions.registerPermission(PREFIX + "whitelist.remove", "Allows the user to remove a player from the server whitelist", whitelist); 017 DefaultPermissions.registerPermission(PREFIX + "whitelist.reload", "Allows the user to reload the server whitelist", whitelist); 018 DefaultPermissions.registerPermission(PREFIX + "whitelist.enable", "Allows the user to enable the server whitelist", whitelist); 019 DefaultPermissions.registerPermission(PREFIX + "whitelist.disable", "Allows the user to disable the server whitelist", whitelist); 020 DefaultPermissions.registerPermission(PREFIX + "whitelist.list", "Allows the user to list all the users on the server whitelist", whitelist); 021 022 whitelist.recalculatePermissibles(); 023 024 return whitelist; 025 } 026 027 private static Permission registerBan(Permission parent) { 028 Permission ban = DefaultPermissions.registerPermission(PREFIX + "ban", "Allows the user to ban people", PermissionDefault.OP, parent); 029 030 DefaultPermissions.registerPermission(PREFIX + "ban.player", "Allows the user to ban players", ban); 031 DefaultPermissions.registerPermission(PREFIX + "ban.ip", "Allows the user to ban IP addresses", ban); 032 033 ban.recalculatePermissibles(); 034 035 return ban; 036 } 037 038 private static Permission registerUnban(Permission parent) { 039 Permission unban = DefaultPermissions.registerPermission(PREFIX + "unban", "Allows the user to unban people", PermissionDefault.OP, parent); 040 041 DefaultPermissions.registerPermission(PREFIX + "unban.player", "Allows the user to unban players", unban); 042 DefaultPermissions.registerPermission(PREFIX + "unban.ip", "Allows the user to unban IP addresses", unban); 043 044 unban.recalculatePermissibles(); 045 046 return unban; 047 } 048 049 private static Permission registerOp(Permission parent) { 050 Permission op = DefaultPermissions.registerPermission(PREFIX + "op", "Allows the user to change operators", PermissionDefault.OP, parent); 051 052 DefaultPermissions.registerPermission(PREFIX + "op.give", "Allows the user to give a player operator status", op); 053 DefaultPermissions.registerPermission(PREFIX + "op.take", "Allows the user to take a players operator status", op); 054 055 op.recalculatePermissibles(); 056 057 return op; 058 } 059 060 private static Permission registerSave(Permission parent) { 061 Permission save = DefaultPermissions.registerPermission(PREFIX + "save", "Allows the user to save the worlds", PermissionDefault.OP, parent); 062 063 DefaultPermissions.registerPermission(PREFIX + "save.enable", "Allows the user to enable automatic saving", save); 064 DefaultPermissions.registerPermission(PREFIX + "save.disable", "Allows the user to disable automatic saving", save); 065 DefaultPermissions.registerPermission(PREFIX + "save.perform", "Allows the user to perform a manual save", save); 066 067 save.recalculatePermissibles(); 068 069 return save; 070 } 071 072 private static Permission registerTime(Permission parent) { 073 Permission time = DefaultPermissions.registerPermission(PREFIX + "time", "Allows the user to alter the time", PermissionDefault.OP, parent); 074 075 DefaultPermissions.registerPermission(PREFIX + "time.add", "Allows the user to fast-forward time", time); 076 DefaultPermissions.registerPermission(PREFIX + "time.set", "Allows the user to change the time", time); 077 078 time.recalculatePermissibles(); 079 080 return time; 081 } 082 083 public static Permission registerPermissions(Permission parent) { 084 Permission commands = DefaultPermissions.registerPermission(ROOT, "Gives the user the ability to use all CraftBukkit commands", parent); 085 086 registerWhitelist(commands); 087 registerBan(commands); 088 registerUnban(commands); 089 registerOp(commands); 090 registerSave(commands); 091 registerTime(commands); 092 093 DefaultPermissions.registerPermission(PREFIX + "kill", "Allows the user to commit suicide", PermissionDefault.TRUE, commands); 094 DefaultPermissions.registerPermission(PREFIX + "me", "Allows the user to perform a chat action", PermissionDefault.TRUE, commands); 095 DefaultPermissions.registerPermission(PREFIX + "tell", "Allows the user to privately message another player", PermissionDefault.TRUE, commands); 096 DefaultPermissions.registerPermission(PREFIX + "say", "Allows the user to talk as the console", PermissionDefault.OP, commands); 097 DefaultPermissions.registerPermission(PREFIX + "give", "Allows the user to give items to players", PermissionDefault.OP, commands); 098 DefaultPermissions.registerPermission(PREFIX + "teleport", "Allows the user to teleport players", PermissionDefault.OP, commands); 099 DefaultPermissions.registerPermission(PREFIX + "kick", "Allows the user to kick players", PermissionDefault.OP, commands); 100 DefaultPermissions.registerPermission(PREFIX + "stop", "Allows the user to stop the server", PermissionDefault.OP, commands); 101 DefaultPermissions.registerPermission(PREFIX + "list", "Allows the user to list all online players", PermissionDefault.OP, commands); 102 DefaultPermissions.registerPermission(PREFIX + "help", "Allows the user to view the vanilla help menu", PermissionDefault.TRUE, commands); 103 DefaultPermissions.registerPermission(PREFIX + "plugins", "Allows the user to view the list of plugins running on this server", PermissionDefault.TRUE, commands); 104 DefaultPermissions.registerPermission(PREFIX + "reload", "Allows the user to reload the server settings", PermissionDefault.OP, commands); 105 DefaultPermissions.registerPermission(PREFIX + "version", "Allows the user to view the version of the server", PermissionDefault.TRUE, commands); 106 DefaultPermissions.registerPermission(PREFIX + "gamemode", "Allows the user to change the gamemode of another player", PermissionDefault.OP, commands); 107 DefaultPermissions.registerPermission(PREFIX + "xp", "Allows the user to give themselves or others arbitrary values of experience", PermissionDefault.OP, commands); 108 DefaultPermissions.registerPermission(PREFIX + "toggledownfall", "Allows the user to toggle rain on/off for a given world", PermissionDefault.OP, commands); 109 DefaultPermissions.registerPermission(PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands); 110 DefaultPermissions.registerPermission(PREFIX + "seed", "Allows the user to view the seed of the world", PermissionDefault.OP, commands); 111 DefaultPermissions.registerPermission(PREFIX + "effect", "Allows the user to add/remove effects on players", PermissionDefault.OP, commands); 112 113 commands.recalculatePermissibles(); 114 115 return commands; 116 } 117 }