addons help support + api permission fix + addon subcmds for portals

This commit is contained in:
SuperRonanCraft 2020-11-13 16:40:11 -05:00
parent 67cca730c4
commit 7d018b748f
25 changed files with 304 additions and 113 deletions

View File

@ -4,7 +4,7 @@ import org.bukkit.Bukkit;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
public interface Addon extends Listener {
public interface Addon {
//Addon will check if it can be enabled
boolean isEnabled();
@ -15,12 +15,4 @@ public interface Addon extends Listener {
//Unload the addon if enabled
void unload();
default void register() {
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
}
default void unregister() {
HandlerList.unregisterAll(this);
}
}

View File

@ -0,0 +1,30 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import org.bukkit.command.CommandSender;
import java.util.List;
public class AddonsCommand implements RTPCommand {
@Override
public void execute(CommandSender sendi, String label, String[] args) {
for (AddonsHandler.Addons addon : Main.getInstance().getAddonsHandler().addons) {
sendi.sendMessage(addon.name());
}
}
@Override
public List<String> tabComplete(CommandSender sendi, String[] args) {
return null;
}
@Override
public boolean permission(CommandSender sendi) {
return true;
}
@Override
public String getName() {
return "addons";
}
}

View File

@ -1,8 +1,13 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTPAddons.flashback.AddonFlashback;
import me.SuperRonanCraft.BetterRTPAddons.interfaces.AddonInterface;
import me.SuperRonanCraft.BetterRTPAddons.logger.AddonLogger;
import me.SuperRonanCraft.BetterRTPAddons.portals.AddonPortals;
import org.bukkit.Bukkit;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import java.util.ArrayList;
import java.util.List;
@ -11,6 +16,7 @@ import java.util.logging.Level;
public class AddonsHandler {
List<Addons> addons = new ArrayList<>();
AddonsCommand cmd = new AddonsCommand();
public void load() {
for (Addons addon : addons) {
@ -24,12 +30,14 @@ public class AddonsHandler {
} else {
Main.getInstance().getLogger().log(Level.INFO, "Addon " + addon.name() + " was NOT enabled.");
}
BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
}
enum Addons {
FLASH_BACK(new AddonFlashback()),
PORTALS(new AddonPortals()),
INTERFACES(new AddonInterface());
INTERFACES(new AddonInterface()),
LOGGER(new AddonLogger());
Addon addon;
@ -42,13 +50,12 @@ public class AddonsHandler {
}
void load() {
addon.register();
addon.load();
Main.getInstance().getLogger().log(Level.INFO, "Addon " + this.name() + " has been enabled!");
}
void disable() {
addon.unregister();
addon.unload();
}
}

View File

@ -23,7 +23,7 @@ public class Files {
}
public enum FILETYPE {
CONFIG("config"), FLASHBACK("flashback"), PORTALS("portals"), INTERFACE("interface");
CONFIG("config"), FLASHBACK("flashback"), PORTALS("portals"), INTERFACE("interface"), LOGGER("logger");
private final String fileName;
private final YamlConfiguration config = new YamlConfiguration();

View File

@ -20,6 +20,10 @@ public class Main extends JavaPlugin {
addonsHandler.load();
}
public AddonsHandler getAddonsHandler() {
return addonsHandler;
}
public static Main getInstance() {
return instance;
}

View File

@ -15,23 +15,8 @@ public abstract class Database {
public String db_name;
public final String table = "BRTP_Data";
public enum COLUMNS {
UUID("uuid", "varchar(32)"),
NAME("player", "varchar(16)"),
LOCATION_OLD("location_old", "longtext"),
TIME_GOAL("time_goal", "bigint(19)");
public String name;
public String type;
COLUMNS(String name, String type) {
this.name = name;
this.type = type;
}
}
public Database(Main instance, String db_name) {
plugin = instance;
public Database(String db_name) {
plugin = Main.getInstance();
this.db_name = db_name;
}
@ -63,15 +48,15 @@ public abstract class Database {
//Get the layout of the database table
public abstract String getTableFormat();
public void load() {
public void load(DatabaseColumn[] columns) {
connection = getSQLConnection();
try {
Statement s = connection.createStatement();
s.executeUpdate(getTableFormat());
for (COLUMNS c : COLUMNS.values()) { //Add missing columns dynamically
for (DatabaseColumn c : columns) { //Add missing columns dynamically
try {
String addMissingColumns = "ALTER TABLE " + table + " ADD COLUMN %column% %type%";
s.executeUpdate(addMissingColumns.replace("%column%", c.name).replace("%type%", c.type));
s.executeUpdate(addMissingColumns.replace("%column%", c.getName()).replace("%type%", c.getType()));
} catch (SQLException e) {
//e.printStackTrace();
}
@ -80,16 +65,16 @@ public abstract class Database {
} catch (SQLException e) {
e.printStackTrace();
}
initialize();
initialize(columns[0]);
}
private void initialize() {
private void initialize(DatabaseColumn testColumn) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = getSQLConnection();
ps = conn.prepareStatement("SELECT * FROM " + table + " WHERE " + COLUMNS.UUID.name + " = ?");
ps = conn.prepareStatement("SELECT * FROM " + table + " WHERE " + testColumn.getName() + " = ?");
rs = ps.executeQuery();
} catch (SQLException ex) {

View File

@ -0,0 +1,9 @@
package me.SuperRonanCraft.BetterRTPAddons.database;
public abstract interface DatabaseColumn {
String getName();
String getType();
}

View File

@ -4,17 +4,20 @@ import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEven
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Files;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import java.util.ArrayList;
import java.util.List;
//When rtp'ing, a player will be teleported back to old location after a set amount of time
public class AddonFlashback implements Addon {
public class AddonFlashback implements Addon, Listener {
private Long time;
public FlashbackMessages msgs = new FlashbackMessages();
public FlashbackDatabase database;
public final FlashbackMessages msgs = new FlashbackMessages();
public final FlashbackDatabase database = new FlashbackDatabase();
List<FlashbackPlayer> players = new ArrayList<>();
public boolean isEnabled() {
@ -25,8 +28,8 @@ public class AddonFlashback implements Addon {
public void load() {
Files.FILETYPE file = Files.FILETYPE.FLASHBACK;
this.time = file.getConfig().getLong("Time");
this.database = new FlashbackDatabase(Main.getInstance());
this.database.load();
this.database.load(FlashbackDatabase.Columns.values());
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
}
@Override
@ -34,6 +37,7 @@ public class AddonFlashback implements Addon {
for (FlashbackPlayer fbp : players)
fbp.cancel();
players.clear();
HandlerList.unregisterAll(this);
}
@EventHandler

View File

@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTPAddons.LocSerialization;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.PlayerInfo;
import me.SuperRonanCraft.BetterRTPAddons.database.Database;
import me.SuperRonanCraft.BetterRTPAddons.database.DatabaseColumn;
import me.SuperRonanCraft.BetterRTPAddons.database.Errors;
import org.bukkit.Location;
import org.bukkit.entity.Player;
@ -17,17 +18,42 @@ import java.util.logging.Level;
public class FlashbackDatabase extends Database {
enum Columns implements DatabaseColumn {
UUID("uuid", "varchar(32)"),
NAME("player", "varchar(16)"),
LOCATION_OLD("location_old", "longtext"),
TIME_GOAL("time_goal", "bigint(19)");
private final String name;
private final String type;
Columns(String name, String type) {
this.name = name;
this.type = type;
}
@Override
public String getName() {
return name;
}
@Override
public String getType() {
return type;
}
}
List<PlayerInfo> playerInfos = new ArrayList<>();
public FlashbackDatabase(Main instance){
super(instance, "addon_flashback");
public FlashbackDatabase(){
super("addon_flashback");
}
private final String createTable = "CREATE TABLE IF NOT EXISTS " + table + " (" +
"`" + COLUMNS.UUID.name + "` " + COLUMNS.UUID.type + " PRIMARY KEY NOT NULL," +
"`" + COLUMNS.NAME.name + "` " + COLUMNS.NAME.type + "," +
"`" + COLUMNS.LOCATION_OLD.name + "` " + COLUMNS.LOCATION_OLD.type + " NOT NULL," +
"`" + COLUMNS.TIME_GOAL.name + "` " + COLUMNS.LOCATION_OLD.type + " NOT NULL" +
"`" + Columns.UUID.name + "` " + Columns.UUID.type + " PRIMARY KEY NOT NULL," +
"`" + Columns.NAME.name + "` " + Columns.NAME.type + "," +
"`" + Columns.LOCATION_OLD.name + "` " + Columns.LOCATION_OLD.type + " NOT NULL," +
"`" + Columns.TIME_GOAL.name + "` " + Columns.LOCATION_OLD.type + " NOT NULL" +
");";
@ -37,9 +63,9 @@ public class FlashbackDatabase extends Database {
}
@Override
public void load() {
public void load(DatabaseColumn[] columns) {
playerInfos.clear();
super.load();
super.load(columns);
}
public PlayerInfo getPlayer(Player p) {
@ -48,12 +74,12 @@ public class FlashbackDatabase extends Database {
ResultSet rs = null;
try {
conn = getSQLConnection();
ps = conn.prepareStatement("SELECT * FROM " + table + " WHERE " + COLUMNS.UUID.name + " = ?");
ps = conn.prepareStatement("SELECT * FROM " + table + " WHERE " + Columns.UUID.name + " = ?");
UUID id = p.getUniqueId();
ps.setString(1, id != null ? id.toString() : console_id);
rs = ps.executeQuery();
if (rs.next()) {
Location loc = LocSerialization.getLocationFromString(rs.getString(COLUMNS.LOCATION_OLD.name));
Location loc = LocSerialization.getLocationFromString(rs.getString(Columns.LOCATION_OLD.name));
return new PlayerInfo(p, loc);
}
} catch (SQLException ex) {
@ -70,8 +96,8 @@ public class FlashbackDatabase extends Database {
boolean success = true;
try {
conn = getSQLConnection();
ps = conn.prepareStatement("INSERT INTO " + table + "(" + COLUMNS.UUID.name + ", " + COLUMNS.LOCATION_OLD.name + ") VALUES (?, ?) "
+ "ON CONFLICT(" + COLUMNS.UUID.name + ") DO UPDATE SET " + COLUMNS.LOCATION_OLD.name + " = + ?");
ps = conn.prepareStatement("INSERT INTO " + table + "(" + Columns.UUID.name + ", " + Columns.LOCATION_OLD.name + ") VALUES (?, ?) "
+ "ON CONFLICT(" + Columns.UUID.name + ") DO UPDATE SET " + Columns.LOCATION_OLD.name + " = + ?");
UUID id = p.getUniqueId();
ps.setString(1, id != null ? id.toString() : console_id);
String serialLocation = LocSerialization.getStringFromLocation(oldLocation);

View File

@ -21,7 +21,8 @@ public class FlashbackPlayer {
}
private Runnable getTimedFlash(Long seconds) {
plugin.database.setPlayer(p, oldLoc, System.currentTimeMillis() + (seconds * 1000));
if (plugin.database.setPlayer(p, oldLoc, System.currentTimeMillis() + (seconds * 1000)))
p.sendMessage("A Database error has occurred!");
return () -> {
plugin.msgs.getWarning(p);
PaperLib.teleportAsync(p, oldLoc);

View File

@ -0,0 +1,28 @@
package me.SuperRonanCraft.BetterRTPAddons.logger;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Files;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
public class AddonLogger implements Addon, Listener {
@Override
public boolean isEnabled() {
return Files.FILETYPE.LOGGER.getBoolean("Enabled");
}
@Override
public void load() {
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
}
@Override
public void unload() {
HandlerList.unregisterAll(this);
}
}

View File

@ -5,13 +5,15 @@ import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEven
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Files;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.flashback.FlashbackDatabase;
import org.bukkit.event.EventHandler;
//With a gui, a player
public class AddonPortals implements Addon {
public PortalsMessages msgs = new PortalsMessages();
private PortalsDatabase database;
private final PortalsCommand cmd = new PortalsCommand(this);
private final PortalsDatabase database = new PortalsDatabase();;
public boolean isEnabled() {
return Files.FILETYPE.PORTALS.getBoolean("Enabled");
@ -19,8 +21,8 @@ public class AddonPortals implements Addon {
@Override
public void load() {
this.database = new PortalsDatabase(Main.getInstance());
BetterRTP.getInstance().getCmd().registerCommand(new PortalsCommand(), false);
BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
this.database.load(PortalsDatabase.Columns.values());
}
@Override

View File

@ -1,11 +1,19 @@
package me.SuperRonanCraft.BetterRTPAddons.portals;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTPAddons.portals.cmds.*;
import org.bukkit.command.CommandSender;
import java.util.List;
public class PortalsCommand implements RTPCommand {
public class PortalsCommand implements RTPCommand, RTPCommandHelpable {
AddonPortals pl;
PortalsCommand(AddonPortals pl) {
this.pl = pl;
}
public String getName() {
return "portals";
@ -13,7 +21,13 @@ public class PortalsCommand implements RTPCommand {
@Override
public void execute(CommandSender sendi, String label, String[] args) {
System.out.println("Portals command!");
for (subCmd subCmd : subCmd.values()) {
if (args[1].equalsIgnoreCase(subCmd.name())) {
subCmd.cmd.execute(sendi, label, args);
return;
}
}
sendi.sendMessage("Invalid command!");
}
@Override
@ -23,6 +37,23 @@ public class PortalsCommand implements RTPCommand {
@Override
public boolean permission(CommandSender sendi) {
return true;
return BetterRTP.getInstance().getPerms().checkPerm("betterrtp.addon.portals", sendi);
}
@Override
public String getHelp() {
return pl.msgs.getHelp();
}
private enum subCmd {
LOC1(new PortalsCommand_Loc1()),
LOC2(new PortalsCommand_Loc2()),
CREATE(new PortalsCommand_Create());
PortalsCommands cmd;
subCmd(PortalsCommands cmd) {
this.cmd = cmd;
}
}
}

View File

@ -1,33 +1,51 @@
package me.SuperRonanCraft.BetterRTPAddons.portals;
import me.SuperRonanCraft.BetterRTPAddons.LocSerialization;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.PlayerInfo;
import me.SuperRonanCraft.BetterRTPAddons.database.Database;
import me.SuperRonanCraft.BetterRTPAddons.database.Errors;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import me.SuperRonanCraft.BetterRTPAddons.database.DatabaseColumn;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.logging.Level;
public class PortalsDatabase extends Database {
enum Columns implements DatabaseColumn {
ID("portal", "integer"),
LOCATION_1("location_1", "longtext"),
LOCATION_2("location_2", "longtext"),
TITLE("title", "varchar(255)");
private final String name;
private final String type;
Columns(String name, String type) {
this.name = name;
this.type = type;
}
@Override
public String getName() {
return name;
}
@Override
public String getType() {
return type;
}
}
List<PlayerInfo> playerInfos = new ArrayList<>();
public PortalsDatabase(Main instance){
super(instance, "addon_flashback");
public PortalsDatabase(){
super(Main.getInstance(), "addon_portals");
}
private final String createTable = "CREATE TABLE IF NOT EXISTS " + table + " (" +
"`" + COLUMNS.UUID.name + "` " + COLUMNS.UUID.type + " PRIMARY KEY NOT NULL," +
"`" + COLUMNS.NAME.name + "` " + COLUMNS.NAME.type +
"`" + Columns.ID.name + "` " + Columns.ID.type + " PRIMARY KEY AUTOINCREMENT," +
"`" + Columns.LOCATION_1.name + "` " + Columns.LOCATION_2.type + "," +
"`" + Columns.LOCATION_2.name + "` " + Columns.LOCATION_2.type + "," +
"`" + Columns.TITLE.name + "` " + Columns.TITLE.type +
");";
@ -37,23 +55,23 @@ public class PortalsDatabase extends Database {
}
@Override
public void load() {
public void load(DatabaseColumn[] columns) {
playerInfos.clear();
super.load();
super.load(columns);
}
public PlayerInfo getPlayer(Player p) {
/*public PlayerInfo getPlayer(Player p) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = getSQLConnection();
ps = conn.prepareStatement("SELECT * FROM " + table + " WHERE " + COLUMNS.UUID.name + " = ?");
ps = conn.prepareStatement("SELECT * FROM " + table + " WHERE " + Columns.UUID.name + " = ?");
UUID id = p.getUniqueId();
ps.setString(1, id != null ? id.toString() : console_id);
rs = ps.executeQuery();
if (rs.next()) {
Location loc = LocSerialization.getLocationFromString(rs.getString(COLUMNS.LOCATION_OLD.name));
Location loc = LocSerialization.getLocationFromString(rs.getString(Columns.LOCATION_OLD.name));
return new PlayerInfo(p, loc);
}
} catch (SQLException ex) {
@ -70,8 +88,8 @@ public class PortalsDatabase extends Database {
boolean success = true;
try {
conn = getSQLConnection();
ps = conn.prepareStatement("INSERT INTO " + table + "(" + COLUMNS.UUID.name + ", " + COLUMNS.LOCATION_OLD.name + ") VALUES (?, ?) "
+ "ON CONFLICT(" + COLUMNS.UUID.name + ") DO UPDATE SET " + COLUMNS.LOCATION_OLD.name + " = + ?");
ps = conn.prepareStatement("INSERT INTO " + table + "(" + Columns.UUID.name + ", " + Columns.LOCATION_OLD.name + ") VALUES (?, ?) "
+ "ON CONFLICT(" + Columns.UUID.name + ") DO UPDATE SET " + Columns.LOCATION_OLD.name + " = + ?");
UUID id = p.getUniqueId();
ps.setString(1, id != null ? id.toString() : console_id);
String serialLocation = LocSerialization.getStringFromLocation(oldLocation);
@ -85,5 +103,5 @@ public class PortalsDatabase extends Database {
close(ps, null, conn);
}
return success;
}
}*/
}

View File

@ -5,13 +5,17 @@ import me.SuperRonanCraft.BetterRTPAddons.Files;
import org.bukkit.command.CommandSender;
public class PortalsMessages implements AddonsMessages {
private static String preM = "Messages";
private static final String preM = "Messages.";
private Files.FILETYPE getLang() {
return Files.FILETYPE.FLASHBACK;
return Files.FILETYPE.PORTALS;
}
public void getWarning(CommandSender sendi) {
sms(sendi, getLang().getString(preM + "Warning"));
}
public String getHelp() {
return getLang().getString(preM + "Help");
}
}

View File

@ -0,0 +1,11 @@
package me.SuperRonanCraft.BetterRTPAddons.portals.cmds;
import org.bukkit.command.CommandSender;
public class PortalsCommand_Create implements PortalsCommands {
@Override
public void execute(CommandSender sendi, String label, String[] args) {
sendi.sendMessage("Portals Create command!");
}
}

View File

@ -0,0 +1,11 @@
package me.SuperRonanCraft.BetterRTPAddons.portals.cmds;
import org.bukkit.command.CommandSender;
public class PortalsCommand_Loc1 implements PortalsCommands {
@Override
public void execute(CommandSender sendi, String label, String[] args) {
sendi.sendMessage("Portals Loc1 command!");
}
}

View File

@ -0,0 +1,11 @@
package me.SuperRonanCraft.BetterRTPAddons.portals.cmds;
import org.bukkit.command.CommandSender;
public class PortalsCommand_Loc2 implements PortalsCommands {
@Override
public void execute(CommandSender sendi, String label, String[] args) {
sendi.sendMessage("Portals Loc2 command!");
}
}

View File

@ -0,0 +1,9 @@
package me.SuperRonanCraft.BetterRTPAddons.portals.cmds;
import org.bukkit.command.CommandSender;
public interface PortalsCommands {
public void execute(CommandSender sendi, String label, String[] args);
}

View File

@ -0,0 +1,2 @@
Enabled: true
Debug: true

View File

@ -4,3 +4,7 @@ api-version: '1.13'
name: BetterRTPAddons
depend: [BetterRTP]
permissions:
betterrtp.addon.portals:
description: Ability to use the portals addon commands

View File

@ -1 +1,4 @@
Enabled: false
Messages:
Help: ' &7- &e/%command% portals <loc1, loc2, create> &7- Setup an rtp portal'

View File

@ -24,7 +24,7 @@ public class Commands {
public HashMap<UUID, Boolean> rtping = new HashMap<>();
public RTPCooldown cooldowns = new RTPCooldown();
private int delayTimer;
List<RTPCommand> commands = new ArrayList<>();
public List<RTPCommand> commands = new ArrayList<>();
public Commands(BetterRTP pl) {
this.pl = pl;

View File

@ -21,13 +21,12 @@ public class CmdHelp implements RTPCommand, RTPCommandHelpable {
List<String> list = new ArrayList<>();
list.add(txt.getHelpPrefix());
list.add(txt.getHelpMain());
for (RTPCommandType cmd : RTPCommandType.values())
if (!cmd.isDebugOnly() || BetterRTP.getInstance().getSettings().debug)
if (cmd.getCmd().permission(sendi))
if (cmd.getCmd() instanceof RTPCommandHelpable) {
String help = ((RTPCommandHelpable) cmd.getCmd()).getHelp();
list.add(help);
}
for (RTPCommand cmd : BetterRTP.getInstance().getCmd().commands)
if (cmd.permission(sendi))
if (cmd instanceof RTPCommandHelpable) {
String help = ((RTPCommandHelpable) cmd).getHelp();
list.add(help);
}
for (int i = 0; i < list.size(); i++)
list.set(i, list.get(i).replace("%command%", label));
BetterRTP.getInstance().getText().sms(sendi, list);

View File

@ -16,86 +16,86 @@ public class Permissions {
private final String pre = "betterrtp.";
public boolean getUse(CommandSender sendi) {
return perm(pre + "use", sendi);
return checkPerm(pre + "use", sendi);
}
public boolean getBypassEconomy(CommandSender sendi) {
return perm(pre + "bypass.economy", sendi);
return checkPerm(pre + "bypass.economy", sendi);
}
public boolean getBypassHunger(CommandSender sendi) {
return perm(pre + "bypass.hunger", sendi);
return checkPerm(pre + "bypass.hunger", sendi);
}
public boolean getBypassCooldown(CommandSender sendi) {
return perm(pre + "bypass.cooldown", sendi);
return checkPerm(pre + "bypass.cooldown", sendi);
}
public boolean getBypassDelay(CommandSender sendi) {
return perm(pre + "bypass.delay", sendi);
return checkPerm(pre + "bypass.delay", sendi);
}
public boolean getReload(CommandSender sendi) {
return perm(pre + "reload", sendi);
return checkPerm(pre + "reload", sendi);
}
public boolean getSettings(CommandSender sendi) {
return perm(pre + "settings", sendi);
return checkPerm(pre + "settings", sendi);
}
public boolean getInfo(CommandSender sendi) {
return perm(pre + "info", sendi);
return checkPerm(pre + "info", sendi);
}
public boolean getUpdate(CommandSender sendi) {
return perm(pre + "updater", sendi);
return checkPerm(pre + "updater", sendi);
}
public boolean getRtpOther(CommandSender sendi) {
return perm(pre + "player", sendi);
return checkPerm(pre + "player", sendi);
}
public boolean getBiome(CommandSender sendi) {
return perm(pre + "biome", sendi);
return checkPerm(pre + "biome", sendi);
}
public boolean getWorld(CommandSender sendi) {
return perm(pre + "world", sendi);
return checkPerm(pre + "world", sendi);
}
public boolean getSignCreate(CommandSender sendi) {
return perm(pre + "sign", sendi);
return checkPerm(pre + "sign", sendi);
}
public boolean getTest(CommandSender sendi) {
return perm(pre + "test", sendi);
return checkPerm(pre + "test", sendi);
}
public boolean getVersion(CommandSender sendi) {
return perm(pre + "version", sendi);
return checkPerm(pre + "version", sendi);
}
public boolean getAWorld(CommandSender sendi, String world) {
if (perm(pre + "world.*", sendi))
if (checkPerm(pre + "world.*", sendi))
return true;
else if (world == null) {
for (World w : Bukkit.getWorlds())
if (perm(pre + "world." + w.getName(), sendi))
if (checkPerm(pre + "world." + w.getName(), sendi))
return true;
} else
return perm(pre + "world." + world, sendi);
return checkPerm(pre + "world." + world, sendi);
return false;
}
public boolean getEdit(CommandSender sendi) {
return perm(pre + "edit", sendi);
return checkPerm(pre + "edit", sendi);
}
public boolean getPermissionGroup(CommandSender sendi, String group) {
return perm(pre + "group." + group, sendi);
return checkPerm(pre + "group." + group, sendi);
}
private boolean perm(String str, CommandSender sendi) {
public boolean checkPerm(String str, CommandSender sendi) {
return depPerms.hasPerm(str, sendi);
}
}