mirror of
https://github.com/TotalFreedomMC/TF-ProjectKorra.git
synced 2025-02-11 19:50:37 +00:00
Presets
This commit is contained in:
parent
7a709e7d19
commit
306341c350
8 changed files with 322 additions and 32 deletions
|
@ -14,7 +14,7 @@ public class BendingPlayer {
|
|||
UUID uuid;
|
||||
String player;
|
||||
ArrayList<Element> elements;
|
||||
HashMap<Integer, String> abilities;
|
||||
private HashMap<Integer, String> abilities;
|
||||
ConcurrentHashMap<String, Long> cooldowns;
|
||||
boolean permaRemoved;
|
||||
boolean isToggled;
|
||||
|
@ -26,7 +26,7 @@ public class BendingPlayer {
|
|||
this.uuid = uuid;
|
||||
this.player = player;
|
||||
this.elements = elements;
|
||||
this.abilities = abilities;
|
||||
this.setAbilities(abilities);
|
||||
cooldowns = new ConcurrentHashMap<String, Long>();
|
||||
this.permaRemoved = permaRemoved;
|
||||
isToggled = true;
|
||||
|
@ -107,4 +107,8 @@ public class BendingPlayer {
|
|||
public boolean isChiBlocked() {
|
||||
return blockedChi;
|
||||
}
|
||||
|
||||
public void setAbilities(HashMap<Integer, String> abilities) {
|
||||
this.abilities = abilities;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import org.bukkit.scheduler.BukkitTask;
|
|||
|
||||
import com.projectkorra.ProjectKorra.Ability.AbilityModuleManager;
|
||||
import com.projectkorra.ProjectKorra.Ability.StockAbilities;
|
||||
import com.projectkorra.ProjectKorra.Objects.Preset;
|
||||
import com.projectkorra.ProjectKorra.Utilities.GrapplingHookAPI;
|
||||
|
||||
public class Commands {
|
||||
|
@ -36,7 +37,7 @@ public class Commands {
|
|||
this.plugin = plugin;
|
||||
init();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Element Aliases
|
||||
*/
|
||||
|
@ -64,15 +65,16 @@ public class Commands {
|
|||
String[] importaliases = {"import", "i"};
|
||||
String[] givealiases = {"give", "g", "spawn"};
|
||||
String[] invinciblealiases = {"invincible", "inv"};
|
||||
String[] presetaliases = {"preset", "presets", "pre", "set"};
|
||||
|
||||
/*
|
||||
* Item Aliases
|
||||
*/
|
||||
|
||||
|
||||
public static Set<String> invincible = new HashSet<String>();
|
||||
|
||||
|
||||
String[] grapplinghookaliases = {"grapplinghook", "grapplehook", "hook", "ghook"};
|
||||
|
||||
|
||||
public static boolean debug = ProjectKorra.plugin.getConfig().getBoolean("debug");
|
||||
|
||||
public static boolean isToggledForAll = false;
|
||||
|
@ -91,22 +93,122 @@ public class Commands {
|
|||
s.sendMessage(ChatColor.RED + "/bending bind [Ability] # " + ChatColor.YELLOW + "Bind an ability.");
|
||||
return true;
|
||||
}
|
||||
if (Arrays.asList(invinciblealiases).contains(args[0].toLowerCase())) {
|
||||
if (!s.hasPermission("bending.command.invincible")) {
|
||||
s.sendMessage(ChatColor.RED + "You don't have permission to do that.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Arrays.asList(presetaliases).contains(args[0].toLowerCase())) {
|
||||
if (!(s instanceof Player)) {
|
||||
s.sendMessage(ChatColor.RED + "This command is only usable by players.");
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) s;
|
||||
|
||||
String[] deletealiases = {"delete", "d", "del"};
|
||||
String[] createaliases = {"create", "c"};
|
||||
String[] listaliases = {"list", "l"};
|
||||
if (args.length == 2 && Arrays.asList(listaliases).contains(args[1].toLowerCase())) {
|
||||
if (!s.hasPermission("bending.command.preset.list")) {
|
||||
s.sendMessage(ChatColor.RED + "You don't have permission to do that.");
|
||||
return true;
|
||||
}
|
||||
|
||||
List<Preset> listnames = Preset.presets.get(player.getUniqueId());
|
||||
List<String> ln2 = new ArrayList<String>();
|
||||
|
||||
if (listnames == null || listnames.isEmpty()) {
|
||||
s.sendMessage(ChatColor.RED + "You don't have any presets.");
|
||||
return true;
|
||||
}
|
||||
|
||||
for (Preset preset: listnames) {
|
||||
ln2.add(preset.getName());
|
||||
}
|
||||
|
||||
s.sendMessage(ChatColor.GREEN + "Your Presets: " + ChatColor.DARK_AQUA + ln2.toString());
|
||||
return true;
|
||||
|
||||
}else if (args.length != 3) { // bending preset bind|create|delete {name}
|
||||
s.sendMessage(ChatColor.GOLD + "Proper Usage: /bending preset create|bind|list|delete [name]");
|
||||
return true;
|
||||
}
|
||||
|
||||
String name = args[2];
|
||||
|
||||
if (Arrays.asList(deletealiases).contains(args[1].toLowerCase())) {
|
||||
if (!s.hasPermission("bending.command.preset.delete")) {
|
||||
s.sendMessage(ChatColor.RED + "You don't have permission to do that.");
|
||||
return true;
|
||||
}
|
||||
if (!Preset.presetExists(player, name)) {
|
||||
s.sendMessage(ChatColor.RED + "You don't have a preset with that name.");
|
||||
return true;
|
||||
}
|
||||
|
||||
Preset preset = Preset.getPreset(player, name);
|
||||
preset.delete();
|
||||
s.sendMessage(ChatColor.GREEN + "You have deleted your preset named: " + name);
|
||||
}
|
||||
|
||||
if (Arrays.asList(bindaliases).contains(args[1].toLowerCase())) {
|
||||
if (!s.hasPermission("bending.command.preset.bind")) {
|
||||
s.sendMessage(ChatColor.RED + "You don't have permission to do that.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!Preset.presetExists(player, name)) {
|
||||
s.sendMessage(ChatColor.RED + "You don't have a preset with that name.");
|
||||
return true;
|
||||
}
|
||||
|
||||
Preset.bindPreset(player, name);
|
||||
s.sendMessage(ChatColor.GREEN + "Your bound slots have been set to match the " + name + " preset.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Arrays.asList(createaliases).contains(args[1].toLowerCase())) {
|
||||
if (!s.hasPermission("bending.command.preset.create")) {
|
||||
s.sendMessage(ChatColor.RED + "You don't have permission to do that.");
|
||||
return true;
|
||||
}
|
||||
|
||||
int limit = Methods.getMaxPresets(player);
|
||||
|
||||
if (Preset.presets.get(player) != null && Preset.presets.get(player).size() >= limit) {
|
||||
s.sendMessage(ChatColor.RED + "You have reached your max number of Presets.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Preset.presetExists(player, name)) {
|
||||
s.sendMessage(ChatColor.RED + "A preset with that name already exists.");
|
||||
return true;
|
||||
}
|
||||
|
||||
BendingPlayer bPlayer = Methods.getBendingPlayer(player.getName());
|
||||
|
||||
if (bPlayer == null) return true;
|
||||
|
||||
HashMap<Integer, String> abilities = bPlayer.getAbilities();
|
||||
Preset preset = new Preset(player.getUniqueId(), name, abilities);
|
||||
preset.save();
|
||||
s.sendMessage(ChatColor.GREEN + "Created preset with the name: " + name);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
if (Arrays.asList(invinciblealiases).contains(args[0].toLowerCase())) {
|
||||
if (!s.hasPermission("bending.command.invincible")) {
|
||||
s.sendMessage(ChatColor.RED + "You don't have permission to do that.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!(s instanceof Player)) {
|
||||
s.sendMessage(ChatColor.RED + "This command is only usable by players.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length != 1) {
|
||||
s.sendMessage(ChatColor.GOLD + "Proper Usage: /bending invincible");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
if (!invincible.contains(s.getName())) {
|
||||
/*
|
||||
* Player is not invincible.
|
||||
|
@ -124,19 +226,19 @@ public class Commands {
|
|||
s.sendMessage(ChatColor.RED + "You don't have permission to do that.");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
if (args.length < 3) {
|
||||
s.sendMessage(ChatColor.GOLD + "Proper Usage: /bending give [Player] [Item] <Properties>");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Player player = Bukkit.getPlayer(args[1]);
|
||||
|
||||
|
||||
if (player == null) {
|
||||
s.sendMessage(ChatColor.RED + "That player is not online.");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
if (Arrays.asList(grapplinghookaliases).contains(args[2])) {
|
||||
/*
|
||||
* They are spawning in a grappling hook.
|
||||
|
@ -150,7 +252,7 @@ public class Commands {
|
|||
s.sendMessage(ChatColor.GOLD + "Example: /bending give " + s.getName() + " grapplinghook 25");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
ItemStack hook = GrapplingHookAPI.createHook(uses);
|
||||
player.getInventory().addItem(hook);
|
||||
s.sendMessage(ChatColor.GREEN + "A grappling hook with " + uses + " uses has been added to your inventory.");
|
||||
|
@ -192,7 +294,7 @@ public class Commands {
|
|||
}
|
||||
BendingPlayer bPlayer = Methods.getBendingPlayer(s.getName());
|
||||
if (args.length == 1) {
|
||||
bPlayer.abilities.clear();
|
||||
bPlayer.getAbilities().clear();
|
||||
for (int i = 1; i <= 9; i++) {
|
||||
Methods.saveAbility(bPlayer, i, null);
|
||||
}
|
||||
|
@ -207,8 +309,8 @@ public class Commands {
|
|||
s.sendMessage(ChatColor.RED + "The slot must be an integer between 0 and 9.");
|
||||
return true;
|
||||
}
|
||||
if (bPlayer.abilities.get(slot) != null) {
|
||||
bPlayer.abilities.remove(slot);
|
||||
if (bPlayer.getAbilities().get(slot) != null) {
|
||||
bPlayer.getAbilities().remove(slot);
|
||||
Methods.saveAbility(bPlayer, slot, null);
|
||||
}
|
||||
s.sendMessage("You have cleared slot #" + slot);
|
||||
|
@ -404,7 +506,7 @@ public class Commands {
|
|||
if (bPlayer.hasElement(Element.Fire)) elements.append("f");
|
||||
if (bPlayer.hasElement(Element.Chi)) elements.append("c");
|
||||
|
||||
HashMap<Integer, String> abilities = bPlayer.abilities;
|
||||
HashMap<Integer, String> abilities = bPlayer.getAbilities();
|
||||
|
||||
ResultSet rs2 = DBConnection.sql.readQuery("SELECT * FROM pk_players WHERE uuid = '" + bPlayer.uuid.toString() + "'");
|
||||
|
||||
|
@ -533,7 +635,7 @@ public class Commands {
|
|||
return true;
|
||||
}
|
||||
BendingPlayer bPlayer = Methods.getBendingPlayer(s.getName());
|
||||
HashMap<Integer, String> abilities = bPlayer.abilities;
|
||||
HashMap<Integer, String> abilities = bPlayer.getAbilities();
|
||||
|
||||
if (abilities.isEmpty()) {
|
||||
s.sendMessage("You don't have any bound abilities.");
|
||||
|
@ -611,7 +713,7 @@ public class Commands {
|
|||
}
|
||||
|
||||
if (args.length == 2) {
|
||||
|
||||
|
||||
Player p = Bukkit.getPlayer(args[1]);
|
||||
if (p == null) {
|
||||
s.sendMessage(ChatColor.GREEN + "You are running a lookup of an offline player, this may take a second.");
|
||||
|
@ -802,14 +904,14 @@ public class Commands {
|
|||
}
|
||||
|
||||
BendingPlayer bPlayer = Methods.getBendingPlayer(player.getName());
|
||||
|
||||
|
||||
if (bPlayer.isPermaRemoved()) {
|
||||
bPlayer.permaRemoved = false;
|
||||
Methods.savePermaRemoved(bPlayer);
|
||||
s.sendMessage(ChatColor.RED + "You have restored the bending of: " + ChatColor.DARK_AQUA + player.getName());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bPlayer.elements.clear();
|
||||
Methods.removeUnusableAbilities(player.getName());
|
||||
Methods.saveElements(bPlayer);
|
||||
|
|
|
@ -40,6 +40,25 @@ public class DBConnection {
|
|||
+ " PRIMARY KEY (id));";
|
||||
sql.modifyQuery(query);
|
||||
}
|
||||
|
||||
if (!sql.tableExists("pk_presets")) {
|
||||
ProjectKorra.log.info("Creating pk_presets table");
|
||||
String query = "CREATE TABLE `pk_presets` ("
|
||||
+ "`id` int(32) NOT NULL AUTO_INCREMENT,"
|
||||
+ "`uuid` varchar(255),"
|
||||
+ "`name` varchar(255),"
|
||||
+ "`slot1` varchar(255),"
|
||||
+ "`slot2` varchar(255),"
|
||||
+ "`slot3` varchar(255),"
|
||||
+ "`slot4` varchar(255),"
|
||||
+ "`slot5` varchar(255),"
|
||||
+ "`slot6` varchar(255),"
|
||||
+ "`slot7` varchar(255),"
|
||||
+ "`slot8` varchar(255),"
|
||||
+ "`slot9` varchar(255),"
|
||||
+ " PRIMARY KEY (id));";
|
||||
sql.modifyQuery(query);
|
||||
}
|
||||
} else {
|
||||
sql = new SQLite(ProjectKorra.log, "[ProjectKorra] Establishing SQLite Connection.", "projectkorra.db", ProjectKorra.plugin.getDataFolder().getAbsolutePath());
|
||||
((SQLite) sql).open();
|
||||
|
@ -63,6 +82,24 @@ public class DBConnection {
|
|||
+ "`slot9` TEXT(255));";
|
||||
sql.modifyQuery(query);
|
||||
}
|
||||
|
||||
if (!sql.tableExists("pk_presets")) {
|
||||
ProjectKorra.log.info("Creating pk_presets table");
|
||||
String query = "CREATE TABLE `pk_presets` ("
|
||||
+ "`id` INTEGER PRIMARY KEY,"
|
||||
+ "`uuid` TEXT(255),"
|
||||
+ "`name` TEXT(255),"
|
||||
+ "`slot1` TEXT(255),"
|
||||
+ "`slot2` TEXT(255),"
|
||||
+ "`slot3` TEXT(255),"
|
||||
+ "`slot4` TEXT(255),"
|
||||
+ "`slot5` TEXT(255),"
|
||||
+ "`slot6` TEXT(255),"
|
||||
+ "`slot7` TEXT(255),"
|
||||
+ "`slot8` TEXT(255),"
|
||||
+ "`slot9` TEXT(255));";
|
||||
sql.modifyQuery(query);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -36,6 +36,7 @@ import org.bukkit.World.Environment;
|
|||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.FallingBlock;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
|
@ -172,7 +173,7 @@ public class Methods {
|
|||
public static void bindAbility(Player player, String ability) {
|
||||
int slot = player.getInventory().getHeldItemSlot() + 1;
|
||||
BendingPlayer bPlayer = getBendingPlayer(player.getName());
|
||||
bPlayer.abilities.put(slot, ability);
|
||||
bPlayer.getAbilities().put(slot, ability);
|
||||
if (isAirAbility(ability)) {
|
||||
player.sendMessage(getAirColor() + "Succesfully bound " + ability + " to slot " + slot);
|
||||
}
|
||||
|
@ -203,7 +204,7 @@ public class Methods {
|
|||
*/
|
||||
public static void bindAbility(Player player, String ability, int slot) {
|
||||
BendingPlayer bPlayer = getBendingPlayer(player.getName());
|
||||
bPlayer.abilities.put(slot, ability);
|
||||
bPlayer.getAbilities().put(slot, ability);
|
||||
if (isAirAbility(ability)) {
|
||||
player.sendMessage(getAirColor() + "Succesfully bound " + ability + " to slot " + slot);
|
||||
}
|
||||
|
@ -545,7 +546,7 @@ public class Methods {
|
|||
if (bPlayer == null) return null;
|
||||
|
||||
int slot = player.getInventory().getHeldItemSlot() + 1;
|
||||
return bPlayer.abilities.get(slot);
|
||||
return bPlayer.getAbilities().get(slot);
|
||||
}
|
||||
|
||||
public static long getGlobalCooldown() {
|
||||
|
@ -1669,7 +1670,7 @@ public class Methods {
|
|||
finalabilities.put(i, slots.get(i));
|
||||
}
|
||||
}
|
||||
bPlayer.abilities = finalabilities;
|
||||
bPlayer.setAbilities(finalabilities);
|
||||
} catch (Exception ex) {
|
||||
|
||||
}
|
||||
|
@ -1792,7 +1793,7 @@ public class Methods {
|
|||
if (bPlayer == null) return;
|
||||
String uuid = bPlayer.uuid.toString();
|
||||
|
||||
HashMap<Integer, String> abilities = bPlayer.abilities;
|
||||
HashMap<Integer, String> abilities = bPlayer.getAbilities();
|
||||
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_players SET slot" + slot + " = '" + (abilities.get(slot) == null ? null : abilities.get(slot)) + "' WHERE uuid = '" + uuid + "'");
|
||||
}
|
||||
|
@ -1967,5 +1968,14 @@ public class Methods {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static int getMaxPresets(Player player) {
|
||||
if (player.isOp()) return 500;
|
||||
int cap = 0;
|
||||
for (int i = 0; i <= 500; i++) {
|
||||
if (player.hasPermission("bending.command.presets.create." + i)) cap = i;
|
||||
}
|
||||
return cap;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
128
src/com/projectkorra/ProjectKorra/Objects/Preset.java
Normal file
128
src/com/projectkorra/ProjectKorra/Objects/Preset.java
Normal file
|
@ -0,0 +1,128 @@
|
|||
package com.projectkorra.ProjectKorra.Objects;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.projectkorra.ProjectKorra.BendingPlayer;
|
||||
import com.projectkorra.ProjectKorra.DBConnection;
|
||||
import com.projectkorra.ProjectKorra.Methods;
|
||||
import com.projectkorra.ProjectKorra.ProjectKorra;
|
||||
|
||||
public class Preset {
|
||||
|
||||
public static ConcurrentHashMap<UUID, List<Preset>> presets = new ConcurrentHashMap<UUID, List<Preset>>();
|
||||
|
||||
UUID uuid;
|
||||
HashMap<Integer, String> abilities;
|
||||
String name;
|
||||
|
||||
public Preset(UUID uuid, String name, HashMap<Integer, String> abilities) {
|
||||
this.uuid = uuid;
|
||||
this.name = name;
|
||||
this.abilities = abilities;
|
||||
if (!presets.containsKey(uuid)) {
|
||||
presets.put(uuid, new ArrayList<Preset>());
|
||||
}
|
||||
presets.get(uuid).add(this);
|
||||
}
|
||||
|
||||
public static void loadPresets(Player player) {
|
||||
UUID uuid = player.getUniqueId();
|
||||
if (uuid == null) return;
|
||||
ResultSet rs2 = DBConnection.sql.readQuery("SELECT * FROM pk_presets WHERE uuid = '" + uuid.toString() + "'");
|
||||
try {
|
||||
if (rs2.next()) { // Presets exist.
|
||||
int i = 0;
|
||||
do {
|
||||
HashMap<Integer, String> moves = new HashMap<Integer, String>();
|
||||
for (int total = 1; total <= 9; total++) {
|
||||
String slot = rs2.getString("slot" + total);
|
||||
if (slot != null) moves.put(total, slot);
|
||||
}
|
||||
new Preset(uuid, rs2.getString("name"), moves);
|
||||
i++;
|
||||
} while (rs2.next());
|
||||
ProjectKorra.log.info("Loaded " + i + " presets for " + player.getName());
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void bindPreset(Player player, String name) {
|
||||
BendingPlayer bPlayer = Methods.getBendingPlayer(player.getName());
|
||||
if (bPlayer == null) return;
|
||||
if (!presets.containsKey(player.getUniqueId())) return;
|
||||
for (Preset preset: presets.get(player.getUniqueId())) {
|
||||
if (preset.name.equalsIgnoreCase(name)) { // We found it
|
||||
bPlayer.setAbilities(preset.abilities);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean presetExists(Player player, String name) {
|
||||
if (!presets.containsKey(player.getUniqueId())) return false;
|
||||
boolean exists = false;
|
||||
for (Preset preset: presets.get(player.getUniqueId())) {
|
||||
if (preset.name.equalsIgnoreCase(name)) exists = true;
|
||||
}
|
||||
return exists;
|
||||
}
|
||||
|
||||
public static Preset getPreset(Player player, String name) {
|
||||
if (!presets.containsKey(player.getUniqueId())) return null;
|
||||
for (Preset preset: presets.get(player.getUniqueId())) {
|
||||
if (preset.name.equalsIgnoreCase(name)) return preset;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void delete() {
|
||||
ResultSet rs2 = DBConnection.sql.readQuery("SELECT * FROM pk_presets WHERE uuid = '" + uuid.toString() + "' AND name = '" + name + "'");
|
||||
try {
|
||||
if (rs2.next()) {
|
||||
DBConnection.sql.modifyQuery("DELETE FROM pk_presets WHERE uuid = '" + uuid.toString() + "' AND name = '" + name + "'");
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
presets.remove(uuid);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public void save() {
|
||||
ResultSet rs2 = DBConnection.sql.readQuery("SELECT * FROM pk_presets WHERE uuid = '" + uuid.toString() + "' AND name = '" + name + "'");
|
||||
try {
|
||||
if (!rs2.next()) { // Preset doesn't already exists.
|
||||
DBConnection.sql.modifyQuery("INSERT INTO pk_presets (uuid, name) VALUES ('" + uuid.toString() + "', '" + name + "')");
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
/*
|
||||
* Now we know the preset exists in the SQL table, so we can manipulate it normally.
|
||||
*/
|
||||
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_presets SET slot1 = '" + abilities.get(1) + "'");
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_presets SET slot2 = '" + abilities.get(2) + "'");
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_presets SET slot3 = '" + abilities.get(3) + "'");
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_presets SET slot4 = '" + abilities.get(4) + "'");
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_presets SET slot5 = '" + abilities.get(5) + "'");
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_presets SET slot6 = '" + abilities.get(6) + "'");
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_presets SET slot7 = '" + abilities.get(7) + "'");
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_presets SET slot8 = '" + abilities.get(8) + "'");
|
||||
DBConnection.sql.modifyQuery("UPDATE pk_presets SET slot9 = '" + abilities.get(9) + "'");
|
||||
}
|
||||
|
||||
}
|
|
@ -61,6 +61,7 @@ import org.bukkit.util.Vector;
|
|||
|
||||
import com.projectkorra.ProjectKorra.Ability.AvatarState;
|
||||
import com.projectkorra.ProjectKorra.CustomEvents.PlayerGrappleEvent;
|
||||
import com.projectkorra.ProjectKorra.Objects.Preset;
|
||||
import com.projectkorra.ProjectKorra.Utilities.GrapplingHookAPI;
|
||||
import com.projectkorra.ProjectKorra.airbending.AirBlast;
|
||||
import com.projectkorra.ProjectKorra.airbending.AirBubble;
|
||||
|
@ -282,8 +283,9 @@ public class PKListener implements Listener {
|
|||
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent e) {
|
||||
Methods.createBendingPlayer(e.getPlayer().getUniqueId(), e.getPlayer().getName());
|
||||
Player player = e.getPlayer();
|
||||
Methods.createBendingPlayer(e.getPlayer().getUniqueId(), player.getName());
|
||||
Preset.loadPresets(player);
|
||||
String append = "";
|
||||
boolean chatEnabled = ProjectKorra.plugin.getConfig().getBoolean("Properties.Chat.Enable");
|
||||
if ((player.hasPermission("bending.avatar") || Methods.getBendingPlayer(player.getName()).elements.size() > 1) && chatEnabled) {
|
||||
|
|
|
@ -8,6 +8,7 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import com.projectkorra.ProjectKorra.Ability.AbilityModuleManager;
|
||||
import com.projectkorra.ProjectKorra.Objects.Preset;
|
||||
import com.projectkorra.ProjectKorra.Utilities.CraftingRecipes;
|
||||
import com.projectkorra.ProjectKorra.airbending.AirbendingManager;
|
||||
import com.projectkorra.ProjectKorra.chiblocking.ChiblockingManager;
|
||||
|
@ -49,6 +50,7 @@ public class ProjectKorra extends JavaPlugin {
|
|||
DBConnection.init();
|
||||
for (Player player: Bukkit.getOnlinePlayers()) {
|
||||
Methods.createBendingPlayer(player.getUniqueId(), player.getName());
|
||||
Preset.loadPresets(player);
|
||||
}
|
||||
getServer().getPluginManager().registerEvents(new PKListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new TagAPIListener(this), this);
|
||||
|
|
|
@ -36,6 +36,11 @@ permissions:
|
|||
bending.command.help: true
|
||||
bending.command.clear: true
|
||||
bending.command.who: true
|
||||
bending.command.preset.list: true
|
||||
bending.command.preset.create.2: true
|
||||
bending.command.preset.create: true
|
||||
bending.command.preset.bind: true
|
||||
bending.command.preset.delete: true
|
||||
bending.air: true
|
||||
bending.water: true
|
||||
bending.earth: true
|
||||
|
|
Loading…
Reference in a new issue