mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 17:15:47 +00:00
addons help support + api permission fix + addon subcmds for portals
This commit is contained in:
parent
67cca730c4
commit
7d018b748f
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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";
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
@ -20,6 +20,10 @@ public class Main extends JavaPlugin {
|
||||
addonsHandler.load();
|
||||
}
|
||||
|
||||
public AddonsHandler getAddonsHandler() {
|
||||
return addonsHandler;
|
||||
}
|
||||
|
||||
public static Main getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -0,0 +1,9 @@
|
||||
package me.SuperRonanCraft.BetterRTPAddons.database;
|
||||
|
||||
public abstract interface DatabaseColumn {
|
||||
|
||||
String getName();
|
||||
|
||||
String getType();
|
||||
|
||||
}
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
@ -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!");
|
||||
}
|
||||
}
|
@ -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!");
|
||||
}
|
||||
}
|
@ -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!");
|
||||
}
|
||||
}
|
@ -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);
|
||||
|
||||
}
|
2
BetterRTPAddons/src/main/resources/logger.yml
Normal file
2
BetterRTPAddons/src/main/resources/logger.yml
Normal file
@ -0,0 +1,2 @@
|
||||
Enabled: true
|
||||
Debug: true
|
@ -4,3 +4,7 @@ api-version: '1.13'
|
||||
name: BetterRTPAddons
|
||||
depend: [BetterRTP]
|
||||
|
||||
permissions:
|
||||
betterrtp.addon.portals:
|
||||
description: Ability to use the portals addon commands
|
||||
|
||||
|
@ -1 +1,4 @@
|
||||
Enabled: false
|
||||
|
||||
Messages:
|
||||
Help: ' &7- &e/%command% portals <loc1, loc2, create> &7- Setup an rtp portal'
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user