package tc.oc.commons.bukkit.punishment; import tc.oc.api.docs.virtual.PunishmentDoc; import javax.annotation.Nullable; public interface PunishmentPermissions { String BASE = "ocn.punishments"; String LOOK_UP = BASE + ".lookup"; String LOOK_UP_STALE = LOOK_UP + ".stale"; String PUNISH = BASE + ".punish"; String PUNISH_AUTO = PUNISH + ".auto"; String PUNISH_SILENT = PUNISH + ".silent"; String PUNISH_OFF_RECORD = PUNISH + ".off_record"; String PUNISH_TIME = PUNISH + ".time"; static String fromFlag(char flag) { switch(flag) { case 'p': return PUNISH_AUTO; case 's': return PUNISH_SILENT; case 'o': return PUNISH_OFF_RECORD; case 't': return PUNISH_TIME; default: return "null"; } } static String fromType(@Nullable PunishmentDoc.Type type) { return type == null ? PUNISH : BASE + "." + type.permission(); } }