001/* 002 * PlotSquared, a land and world management plugin for Minecraft. 003 * Copyright (C) IntellectualSites <https://intellectualsites.com> 004 * Copyright (C) IntellectualSites team and contributors 005 * 006 * This program is free software: you can redistribute it and/or modify 007 * it under the terms of the GNU General Public License as published by 008 * the Free Software Foundation, either version 3 of the License, or 009 * (at your option) any later version. 010 * 011 * This program is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 * GNU General Public License for more details. 015 * 016 * You should have received a copy of the GNU General Public License 017 * along with this program. If not, see <https://www.gnu.org/licenses/>. 018 */ 019package com.plotsquared.core.permissions; 020 021import net.kyori.adventure.text.Component; 022import net.kyori.adventure.text.ComponentLike; 023import org.checkerframework.checker.nullness.qual.NonNull; 024import org.jetbrains.annotations.NotNull; 025 026/** 027 * Permission class. 028 */ 029public enum Permission implements ComponentLike { 030 031 //@formatter:off 032 //<editor-fold desc="Static Permission"> 033 PERMISSION_STAR("*"), 034 PERMISSION_ADMIN("plots.admin"), 035 PERMISSION_ADMIN_AREA_SUDO("plots.admin.area.sudo"), 036 PERMISSION_ADMIN_INTERACT_BLOCKED_CMDS("plots.admin.interact.blockedcommands"), 037 PERMISSION_WORLDEDIT_BYPASS("plots.worldedit.bypass"), 038 PERMISSION_PLOT_TOGGLE_TITLES("plots.toggle.titles"), 039 PERMISSION_PLOT_TOGGLE_CHAT("plots.toggle.chat"), 040 PERMISSION_PLOT_TOGGLE_TIME("plots.toggle.time"), 041 PERMISSION_ADMIN_UPDATE_NOTIFICATION("plots.admin.update.notify"), 042 PERMISSION_ADMIN_EXIT_DENIED("plots.admin.exit.denied"), 043 PERMISSION_ADMIN_ENTRY_DENIED("plots.admin.entry.denied"), 044 PERMISSION_ADMIN_VISIT_UNTRUSTED("plots.admin.visit.untrusted"), 045 PERMISSION_ADMIN_ENTRY_FORCEFIELD("plots.admin.entry.forcefield"), 046 PERMISSION_ADMIN_COMMANDS_CHATSPY("plots.admin.command.chatspy"), 047 PERMISSION_MERGE("plots.merge"), 048 PERMISSION_MERGE_ALL("plots.merge.all"), 049 PERMISSION_MERGE_OTHER("plots.merge.other"), 050 PERMISSION_MERGE_KEEP_ROAD("plots.merge.keeproad"), 051 PERMISSION_ADMIN_CAPS_OTHER("plots.admin.caps.other"), 052 PERMISSION_ADMIN_MUSIC_OTHER("plots.admin.music.other"), 053 PERMISSION_ADMIN_DESTROY("plots.admin.destroy"), 054 PERMISSION_ADMIN_DESTROY_UNOWNED("plots.admin.destroy.unowned"), 055 PERMISSION_ADMIN_DESTROY_GROUNDLEVEL("plots.admin.destroy.groundlevel"), 056 PERMISSION_ADMIN_DESTROY_OTHER("plots.admin.destroy.other"), 057 PERMISSION_ADMIN_DESTROY_ROAD("plots.admin.destroy.road"), 058 PERMISSION_ADMIN_DESTROY_VEHICLE_ROAD("plots.admin.vehicle.break.road"), 059 PERMISSION_ADMIN_DESTROY_VEHICLE_UNOWNED("plots.admin.vehicle.break.unowned"), 060 PERMISSION_ADMIN_DESTROY_VEHICLE_OTHER("plots.admin.vehicle.break.other"), 061 PERMISSION_ADMIN_PVE("plots.admin.pve"), 062 PERMISSION_ADMIN_PVP("plots.admin.pvp"), 063 PERMISSION_ADMIN_BUILD_ROAD("plots.admin.build.road"), 064 PERMISSION_ADMIN_PROJECTILE_ROAD("plots.admin.projectile.road"), 065 PERMISSION_ADMIN_PROJECTILE_UNOWNED("plots.admin.projectile.unowned"), 066 PERMISSION_ADMIN_PROJECTILE_OTHER("plots.admin.projectile.other"), 067 PERMISSION_ADMIN_BUILD_UNOWNED("plots.admin.build.unowned"), 068 PERMISSION_ADMIN_BUILD_OTHER("plots.admin.build.other"), 069 PERMISSION_ADMIN_INTERACT_ROAD("plots.admin.interact.road"), 070 PERMISSION_ADMIN_INTERACT_UNOWNED("plots.admin.interact.unowned"), 071 PERMISSION_ADMIN_INTERACT_OTHER("plots.admin.interact.other"), 072 PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT("plots.admin.build.heightlimit"), 073 PERMISSION_ADMIN_COMMAND_PURGE_RATINGS("plots.admin.command.purge.ratings"), 074 PERMISSION_ADMIN_COMMAND_ADD("plots.admin.command.trust"), 075 PERMISSION_ADMIN_COMMAND_TRUST("plots.admin.command.trust"), 076 PERMISSION_TRUST("plots.trust"), 077 PERMISSION_DENY("plots.deny"), 078 PERMISSION_ADD("plots.add"), 079 PERMISSION_TRUST_EVERYONE("plots.trust.everyone"), 080 PERMISSION_AREA_CREATE("plots.area.create"), 081 PERMISSION_AREA_INFO("plots.area.info"), 082 PERMISSION_AREA_INFO_FORCE("plots.admin.info.force"), 083 PERMISSION_AREA_LIST("plots.area.list"), 084 PERMISSION_AREA_REGEN("plots.area.regen"), 085 PERMISSION_AREA_TP("plots.area.tp"), 086 PERMISSION_AREA("plots.area"), 087 PERMISSION_AUTO_MEGA("plots.auto.mega"), 088 PERMISSION_CLAIM_SCHEMATIC("plots.claim.%s"), 089 PERMISSION_ADMIN_COMMAND_SCHEMATIC("plots.admin.command.schematic"), 090 PERMISSION_ADMIN_COMMAND_CLEAR("plots.admin.command.clear"), 091 PERMISSION_CONTINUE("plots.continue"), 092 PERMISSION_CLUSTER("plots.cluster"), 093 PERMISSION_CLUSTER_LIST("plots.cluster.list"), 094 PERMISSION_CLUSTER_CREATE("plots.cluster.create"), 095 PERMISSION_CLUSTER_CREATE_OTHER("plots.cluster.create.other"), 096 PERMISSION_CLUSTER_SIZE("plots.cluster.size"), 097 PERMISSION_CLUSTER_DELETE("plots.cluster.delete"), 098 PERMISSION_CLUSTER_DELETE_OTHER("plots.cluster.delete.other"), 099 PERMISSION_CLUSTER_RESIZE("plots.cluster.resize"), 100 PERMISSION_CLUSTER_RESIZE_OTHER("plots.cluster.resize.other"), 101 PERMISSION_CLUSTER_RESIZE_SHRINK("plots.cluster.resize.shrink"), 102 PERMISSION_CLUSTER_RESIZE_EXPAND("plots.cluster.resize.expand"), 103 PERMISSION_CLUSTER_INVITE("plots.cluster.invite"), 104 PERMISSION_CLUSTER_INVITE_OTHER("plots.cluster.invite.other"), 105 PERMISSION_CLUSTER_KICK("plots.cluster.kick"), 106 PERMISSION_CLUSTER_KICK_OTHER("plots.cluster.kick.other"), 107 PERMISSION_CLUSTER_LEAVE("plots.cluster.leave"), 108 PERMISSION_CLUSTER_HELPERS("plots.cluster.helpers"), 109 PERMISSION_CLUSTER_TP("plots.cluster.tp"), 110 PERMISSION_CLUSTER_TP_OTHER("plots.cluster.tp.other"), 111 PERMISSION_CLUSTER_INFO("plots.cluster.info"), 112 PERMISSION_CLUSTER_SETHOME("plots.cluster.sethome"), 113 PERMISSION_CLUSTER_SETHOME_OTHER("plots.cluster.sethome.other"), 114 PERMISSION_ADMIN_COMMAND_CONTINUE("plots.admin.command.continue"), 115 PERMISSION_ADMIN_COMMAND_DELETE("plots.admin.command.delete"), 116 PERMISSION_ADMIN_COMMAND_DENY("plots.admin.command.deny"), 117 PERMISSION_DENY_EVERYONE("plots.deny.everyone"), 118 PERMISSION_ADMIN_COMMAND_DONE("plots.admin.command.done"), 119 PERMISSION_ADMIN_COMMAND_DOWNLOAD("plots.admin.command.download"), 120 PERMISSION_DOWNLOAD("plots.download"), 121 PERMISSION_DOWNLOAD_WORLD("plots.download.world"), 122 PERMISSION_SET_FLAG_OTHER("plots.set.flag.other"), 123 PERMISSION_SET_FLAG("plots.set.flag"), 124 PERMISSION_SET_FLAG_KEY("plots.set.flag.%s"), 125 PERMISSION_SET_FLAG_KEY_VALUE("plots.set.flag.%s.%s"), 126 PERMISSION_SET("plots.set"), 127 PERMISSION_SET_BIOME("plots.set.biome"), 128 PERMISSION_SET_ALIAS("plots.set.alias"), 129 PERMISSION_SET_HOME("plots.set.home"), 130 PERMISSION_SET_MAIN("plots.set.main"), 131 PERMISSION_SET_FLOOR("plots.set.floor"), 132 PERMISSION_SET_AIR("plots.set.air"), 133 PERMISSION_SET_ALL("plots.set.all"), 134 PERMISSION_SET_BORDER("plots.set.border"), 135 PERMISSION_SET_WALL("plots.set.wall"), 136 PERMISSION_SET_OUTLINE("plots.set.outline"), 137 PERMISSION_SET_MIDDLE("plots.set.middle"), 138 PERMISSION_TARGET("plots.target"), 139 PERMISSION_TEMPLATE("plots.template"), 140 PERMISSION_TEMPLATE_IMPORT("plots.template.import"), 141 PERMISSION_TEMPLATE_EXPORT("plots.template.import"), 142 PERMISSION_FLAG_REMOVE("plots.flag.remove"), 143 PERMISSION_FLAG_ADD("plots.flag.add"), 144 PERMISSION_FLAG_LIST("plots.flag.list"), 145 PERMISSION_ADMIN_COMMAND_KICK("plots.admin.command.kick"), 146 PERMISSION_GRANT_SINGLE("plots.grant"), 147 PERMISSION_GRANT("plots.grant.%s"), 148 PERMISSION_GRANT_ADD("plots.grant.add"), 149 PERMISSION_GRANT_CHECK("plots.grant.check"), 150 PERMISSION_LIST_FOR_SALE("plots.list.forsale"), 151 PERMISSION_LIST_MINE("plots.list.mine"), 152 PERMISSION_LIST_SHARED("plots.list.shared"), 153 PERMISSION_LIST_WORLD("plots.list.world"), 154 PERMISSION_LIST_WORLD_NAME("plots.list.world.%s"), 155 PERMISSION_LIST_TOP("plots.list.top"), 156 PERMISSION_LIST_ALL("plots.list.all"), 157 PERMISSION_LIST_UNOWNED("plots.list.unowned"), 158 PERMISSION_LIST_PLAYER("plots.list.player"), 159 PERMISSION_LIST_DONE("plots.list.done"), 160 PERMISSION_LIST_EXPIRED("plots.list.expired"), 161 PERMISSION_LIST_FUZZY("plots.list.fuzzy"), 162 PERMISSION_LIST_AREA("plots.list.area"), 163 PERMISSION_ADMIN_COMMAND_LOAD("plots.admin.command.load"), 164 PERMISSION_ADMIN_COMMAND_MERGE("plots.admin.command.merge"), 165 PERMISSION_ADMIN_COMMAND_MERGE_OTHER_OFFLINE("plots.admin.command.merge.other.offline"), 166 PERMISSION_ADMIN_COMMAND_SET_OWNER("plots.admin.command.setowner"), 167 PERMISSION_COMMENT("plots.comment"), 168 PERMISSION_INBOX("plots.inbox"), 169 PERMISSION_INBOX_READ_OWNER("plots.inbox.read.owner"), 170 PERMISSION_INBOX_READ_PUBLIC("plots.inbox.read.public"), 171 PERMISSION_INBOX_READ_REPORT("plots.inbox.read.report"), 172 PERMISSION_ADMIN_COMMAND_REMOVE("plots.admin.command.remove"), 173 PERMISSION_ADMIN_COMMAND_SAVE("plots.admin.command.save"), 174 PERMISSION_ADMIN_COMMAND_SCHEMATIC_PASTE("plots.admin.command.schematic.paste"), 175 PERMISSION_SCHEMATIC("plots.schematic.paste"), 176 PERMISSION_SCHEMATIC_PASTE("plots.schematic.paste"), 177 PERMISSION_SCHEMATIC_LIST("plots.schematic.list"), 178 PERMISSION_SCHEMATIC_SAVE("plots.schematic.save"), 179 PERMISSION_ADMIN_COMMAND_SCHEMATIC_SAVE("plots.admin.command.schematic.save"), 180 PERMISSION_SET_COMPONENT("plots.set.%s"), 181 PERMISSION_ADMIN_COMMAND("plots.admin.command.%s"), 182 PERMISSION_ADMIN_COMMAND_UNLINK("plots.admin.command.unlink"), 183 PERMISSION_VISIT_UNOWNED("plots.visit.unowned"), 184 PERMISSION_VISIT_OWNED("plots.visit.owned"), 185 PERMISSION_SHARED("plots.visit.shared"), 186 PERMISSION_VISIT_DENIED("plots.visit.denied"), 187 PERMISSION_VISIT_OTHER("plots.visit.other"), 188 PERMISSION_HOME("plots.home"), 189 PERMISSION_ALIAS_SET("plots.alias.set"), 190 PERMISSION_ADMIN_ALIAS_SET("plots.admin.alias.set"), 191 PERMISSION_ALIAS_REMOVE("plots.alias.remove"), 192 PERMISSION_ADMIN_ALIAS_REMOVE("plots.admin.alias.remove"), 193 PERMISSION_ADMIN_CHAT_BYPASS("plots.admin.chat.bypass"), 194 PERMISSION_BACKUP("plots.backup"), 195 PERMISSION_BACKUP_SAVE("plots.backup.save"), 196 PERMISSION_BACKUP_LIST("plots.backup.list"), 197 PERMISSION_BACKUP_LOAD("plots.backup.load"), 198 PERMISSION_ADMIN_BACKUP_OTHER("plots.admin.backup.other"), 199 PERMISSION_ADMIN_ALLOW_UNSAFE("plots.admin.unsafe"), 200 PERMISSION_ADMIN_DEBUG_OTHER("plots.admin.debug.other"), 201 PERMISSION_RATE("plots.rate"), 202 PERMISSION_ADMIN_FLIGHT("plots.admin.flight"), 203 PERMISSION_ADMIN_COMPONENTS_OTHER("plots.admin.component.other"), 204 PERMISSION_ADMIN_BYPASS_BORDER("plots.admin.border.bypass"), 205 PERMISSION_ADMIN_BYPASS_ECON("plots.admin.econ.bypass"); 206 //</editor-fold> 207 208 private final String text; 209 210 Permission(final @NonNull String text) { 211 this.text = text; 212 } 213 214 @Override 215 public String toString() { 216 return this.text; 217 } 218 219 public String format(Object... replacements) { 220 return String.format(this.toString(), replacements); 221 } 222 223 @Override 224 public @NotNull Component asComponent() { 225 return Component.text(text); 226 } 227 228}