mirror of
https://github.com/songoda/UltimateKits.git
synced 2024-09-29 22:27:35 +02:00
Updated SQL support & fixed saving
This commit is contained in:
parent
e0f0bfa8e0
commit
70e06c5162
@ -31,6 +31,7 @@ import com.songoda.update.Plugin;
|
||||
import com.songoda.update.SongodaUpdate;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@ -173,6 +174,9 @@ public class UltimateKits extends JavaPlugin {
|
||||
Bukkit.getScheduler().runTaskLater(this, () -> {
|
||||
this.dataManager.getBlockData((blockData) -> {
|
||||
this.kitManager.setKitLocations(blockData);
|
||||
kitManager.getKitLocations().forEach((location, data) -> {
|
||||
UltimateKits.getInstance().getHologram().add(data);
|
||||
});
|
||||
});
|
||||
}, 20L);
|
||||
|
||||
@ -184,8 +188,9 @@ public class UltimateKits extends JavaPlugin {
|
||||
*/
|
||||
public void onDisable() {
|
||||
saveToFile();
|
||||
kitManager.clearKits();
|
||||
dataFile.saveConfig();
|
||||
this.dataManager.bulkUpdateBlockData(this.getKitManager().getKitLocations());
|
||||
kitManager.clearKits();
|
||||
console.sendMessage(Methods.formatText("&a============================="));
|
||||
console.sendMessage(Methods.formatText("&7UltimateKits " + this.getDescription().getVersion() + " by &5Songoda <3!"));
|
||||
console.sendMessage(Methods.formatText("&7Action: &cDisabling&7..."));
|
||||
@ -336,11 +341,20 @@ public class UltimateKits extends JavaPlugin {
|
||||
* Reload plugin yaml files.
|
||||
*/
|
||||
public void reload() {
|
||||
this.dataManager.bulkUpdateBlockData(this.getKitManager().getKitLocations());
|
||||
kitFile.reloadConfig();
|
||||
this.locale = Locale.getLocale(getConfig().getString("System.Language Mode"));
|
||||
this.locale.reloadMessages();
|
||||
settingsManager.reloadConfig();
|
||||
loadFromFile();
|
||||
Bukkit.getScheduler().runTaskLater(this, () -> {
|
||||
this.dataManager.getBlockData((blockData) -> {
|
||||
this.kitManager.setKitLocations(blockData);
|
||||
kitManager.getKitLocations().forEach((location, data) -> {
|
||||
UltimateKits.getInstance().getHologram().add(data);
|
||||
});
|
||||
});
|
||||
}, 20L);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4,6 +4,7 @@ import com.songoda.ultimatekits.UltimateKits;
|
||||
import com.songoda.ultimatekits.kit.KitBlockData;
|
||||
import com.songoda.ultimatekits.kit.KitType;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
@ -33,12 +34,19 @@ public class DataManager {
|
||||
|
||||
public void bulkUpdateBlockData(Map<Location, KitBlockData> blockData) {
|
||||
this.databaseConnector.connect(connection -> {
|
||||
String updateData = "UPDATE " + this.getTablePrefix() + "blockdata SET kit = ? WHERE " +
|
||||
"world = ? AND x = ? AND y = ? AND z = ?";
|
||||
String updateData = "UPDATE " + this.getTablePrefix() + "blockdata SET type = ?, kit = ?, holograms = ?, " +
|
||||
"displayItems = ?, particles = ?, itemOverride = ? " +
|
||||
"WHERE world = ? AND x = ? AND y = ? AND z = ?";
|
||||
try (PreparedStatement statement = connection.prepareStatement(updateData)) {
|
||||
for (int i = 0; i < blockData.size(); i++) {
|
||||
KitBlockData data = blockData.get(i);
|
||||
if (data == null) continue;
|
||||
statement.setString(1, data.getType().toString());
|
||||
statement.setString(2, data.getKit().getName());
|
||||
statement.setBoolean(3, data.showHologram());
|
||||
statement.setBoolean(4, data.isDisplayingItems());
|
||||
statement.setBoolean(5, data.hasParticles());
|
||||
statement.setBoolean(6, data.isItemOverride());
|
||||
statement.setString(7, data.getWorld().getName());
|
||||
statement.setInt(8, data.getX());
|
||||
statement.setInt(9, data.getY());
|
||||
@ -54,10 +62,16 @@ public class DataManager {
|
||||
|
||||
public void updateBlockData(KitBlockData blockData) {
|
||||
this.async(() -> this.databaseConnector.connect(connection -> {
|
||||
String updateData = "UPDATE " + this.getTablePrefix() + "blockdata SET kit = ? WHERE " +
|
||||
"world = ? AND x = ? AND y = ? AND z = ?";
|
||||
String updateData = "UPDATE " + this.getTablePrefix() + "blockdata SET type = ?, kit = ?, holograms = ?, " +
|
||||
"displayItems = ?, particles = ?, itemOverride = ? " +
|
||||
"WHERE world = ? AND x = ? AND y = ? AND z = ?";
|
||||
try (PreparedStatement statement = connection.prepareStatement(updateData)) {
|
||||
statement.setString(1, blockData.getType().toString());
|
||||
statement.setString(2, blockData.getKit().getName());
|
||||
statement.setBoolean(3, blockData.showHologram());
|
||||
statement.setBoolean(4, blockData.isDisplayingItems());
|
||||
statement.setBoolean(5, blockData.hasParticles());
|
||||
statement.setBoolean(6, blockData.isItemOverride());
|
||||
statement.setString(7, blockData.getWorld().getName());
|
||||
statement.setInt(8, blockData.getX());
|
||||
statement.setInt(9, blockData.getY());
|
||||
@ -93,16 +107,10 @@ public class DataManager {
|
||||
String deleteData = "DELETE FROM " + this.getTablePrefix() + "blockdata WHERE world = ? " +
|
||||
"AND x = ? AND y = ? AND z = ?";
|
||||
try (PreparedStatement statement = connection.prepareStatement(deleteData)) {
|
||||
statement.setString(1, blockData.getType().toString());
|
||||
statement.setString(2, blockData.getKit().getName());
|
||||
statement.setBoolean(3, blockData.showHologram());
|
||||
statement.setBoolean(4, blockData.isDisplayingItems());
|
||||
statement.setBoolean(5, blockData.hasParticles());
|
||||
statement.setBoolean(6, blockData.isItemOverride());
|
||||
statement.setString(7, blockData.getWorld().getName());
|
||||
statement.setInt(8, blockData.getX());
|
||||
statement.setInt(9, blockData.getY());
|
||||
statement.setInt(10, blockData.getZ());
|
||||
statement.setString(1, blockData.getWorld().getName());
|
||||
statement.setInt(2, blockData.getX());
|
||||
statement.setInt(3, blockData.getY());
|
||||
statement.setInt(4, blockData.getZ());
|
||||
statement.executeUpdate();
|
||||
}
|
||||
}));
|
||||
|
@ -6,9 +6,11 @@ import com.songoda.ultimatekits.kit.KitBlockData;
|
||||
import com.songoda.ultimatekits.utils.Methods;
|
||||
import com.songoda.ultimatekits.utils.ServerVersion;
|
||||
import com.songoda.ultimatekits.utils.gui.AbstractGUI;
|
||||
import com.songoda.ultimatekits.utils.gui.OnClose;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -36,6 +36,7 @@ public class GUIKitEditor extends AbstractGUI {
|
||||
private boolean isInInventory = false;
|
||||
|
||||
|
||||
|
||||
private ItemStack toReplace;
|
||||
private int slot;
|
||||
|
||||
@ -312,7 +313,6 @@ public class GUIKitEditor extends AbstractGUI {
|
||||
|
||||
KitItem item2 = new KitItem(itemStack);
|
||||
item2.setDisplayItem(material);
|
||||
|
||||
toReplace = item2.getMoveableItem();
|
||||
} catch (Exception e) {
|
||||
player.sendMessage(Methods.formatText("&a" + msg + " &8is not a valid material."));
|
||||
@ -338,13 +338,15 @@ public class GUIKitEditor extends AbstractGUI {
|
||||
String msg = event.getName();
|
||||
KitItem item2 = new KitItem(itemStack);
|
||||
item2.setDisplayName(msg);
|
||||
|
||||
this.toReplace = item2.getMoveableItem();
|
||||
|
||||
this.slot = slot;
|
||||
});
|
||||
|
||||
gui.setOnClose((player1, inventory1) -> init(title, 54));
|
||||
gui.setOnClose((player1, inventory1) -> {
|
||||
kit.getContents().forEach((item1) -> {
|
||||
});
|
||||
init(title, 54);
|
||||
});
|
||||
|
||||
ItemStack item2 = new ItemStack(Material.NAME_TAG);
|
||||
ItemMeta meta2 = item2.getItemMeta();
|
||||
|
@ -71,6 +71,7 @@ public abstract class Hologram {
|
||||
|
||||
private void format(KitBlockData data, Action action) {
|
||||
if (data == null) return;
|
||||
instance.getDataManager().updateBlockData(data);
|
||||
KitType kitType = data.getType();
|
||||
|
||||
ArrayList<String> lines = new ArrayList<>();
|
||||
|
@ -331,8 +331,7 @@ public class Kit {
|
||||
new CrateAnimateTask(plugin, player, this, item.getItem());
|
||||
return true;
|
||||
} else {
|
||||
if (Setting.AUTO_EQUIP_ARMOR.getBoolean()
|
||||
&& ArmorType.equip(player, item.getItem())) continue;
|
||||
if (Setting.AUTO_EQUIP_ARMOR.getBoolean() && ArmorType.equip(player, item.getItem())) continue;
|
||||
|
||||
Map<Integer, ItemStack> overfilled = player.getInventory().addItem(item.getItem());
|
||||
for (ItemStack item2 : overfilled.values()) {
|
||||
|
@ -20,10 +20,12 @@ public class KitBlockData {
|
||||
this.items = items;
|
||||
this.itemOverride = itemOverride;
|
||||
this.type = type;
|
||||
UltimateKits.getInstance().getDataManager().createBlockData(this);
|
||||
}
|
||||
|
||||
public KitBlockData(Kit kit, Location location) {
|
||||
this(kit, location, KitType.PREVIEW, false, false, false, false);
|
||||
UltimateKits.getInstance().getDataManager().createBlockData(this);
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
@ -34,6 +36,7 @@ public class KitBlockData {
|
||||
|
||||
if (UltimateKits.getInstance().getHologram() != null)
|
||||
UltimateKits.getInstance().getHologram().remove(this);
|
||||
UltimateKits.getInstance().getDataManager().updateBlockData(this);
|
||||
}
|
||||
|
||||
public Kit getKit() {
|
||||
|
@ -6,6 +6,7 @@ import com.songoda.ultimatekits.kit.type.KitContentCommand;
|
||||
import com.songoda.ultimatekits.kit.type.KitContentEconomy;
|
||||
import com.songoda.ultimatekits.kit.type.KitContentItem;
|
||||
import com.songoda.ultimatekits.utils.Methods;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@ -73,7 +74,6 @@ public class KitItem {
|
||||
private String translateLine(String line) {
|
||||
String[] lineSplit = line.trim().split(";", 2);
|
||||
String[] kitOptions = lineSplit[0].replace(String.valueOf(ChatColor.COLOR_CHAR), "").split(" ");
|
||||
|
||||
for (String s : kitOptions) {
|
||||
if (s.equals("")) continue;
|
||||
String[] sSplit = s.split(":", 2);
|
||||
@ -167,7 +167,8 @@ public class KitItem {
|
||||
ItemStack item = content.getItemForDisplay();
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
if (chance != 0 || displayItem != null || displayName != null || displayLore != null) {
|
||||
meta.setDisplayName(meta.hasDisplayName() ? Methods.convertToInvisibleString(compileOptions() + ";") + meta.getDisplayName() : Methods.convertToInvisibleString(compileOptions() + ";faqe") + item.getType().name().replace("_", " "));
|
||||
meta.setDisplayName(meta.hasDisplayName() ? Methods.convertToInvisibleString(compileOptions() + ";")
|
||||
+ meta.getDisplayName() : Methods.convertToInvisibleString(compileOptions() + ";faqe") + item.getType().name().replace("_", " "));
|
||||
}
|
||||
item.setItemMeta(meta);
|
||||
return item;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.songoda.ultimatekits.kit;
|
||||
|
||||
import com.songoda.ultimatekits.UltimateKits;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
|
||||
import java.util.*;
|
||||
@ -32,14 +33,12 @@ public final class KitManager {
|
||||
public void addKitToLocation(Kit kit, Location location) {
|
||||
KitBlockData data = new KitBlockData(kit, location);
|
||||
kitsAtLocations.put(roundLocation(location), data);
|
||||
UltimateKits.getInstance().getDataManager().createBlockData(data);
|
||||
}
|
||||
|
||||
public void addKitToLocation(Kit kit, Location location, KitType type, boolean hologram, boolean particles, boolean items, boolean itemOverride) {
|
||||
KitBlockData kitBlockData = kitsAtLocations.put(roundLocation(location), new KitBlockData(kit, location, type, hologram, particles, items, itemOverride));
|
||||
if (UltimateKits.getInstance().getHologram() != null)
|
||||
UltimateKits.getInstance().getHologram().update(kitBlockData);
|
||||
UltimateKits.getInstance().getDataManager().createBlockData(kitBlockData);
|
||||
}
|
||||
|
||||
public Kit removeKitFromLocation(Location location) {
|
||||
|
Loading…
Reference in New Issue
Block a user