This commit is contained in:
Ajneb97 2024-06-19 20:25:58 -04:00
parent eba91312f3
commit d6b889788b
7 changed files with 50 additions and 24 deletions

View file

@ -118,10 +118,16 @@ public class PlayerKits2 extends JavaPlugin {
public void setVersion(){
String packageName = Bukkit.getServer().getClass().getPackage().getName();
String bukkitVersion = Bukkit.getServer().getBukkitVersion();
if(bukkitVersion.contains("1.20.5") || bukkitVersion.contains("1.20.6")){
String bukkitVersion = Bukkit.getServer().getBukkitVersion().split("-")[0];
switch(bukkitVersion){
case "1.20.5":
case "1.20.6":
serverVersion = ServerVersion.v1_20_R4;
}else{
break;
case "1.21":
serverVersion = ServerVersion.v1_21_R1;
break;
default:
serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", ""));
}
}

View file

@ -185,7 +185,7 @@ public class MySQLConnection {
}.runTaskAsynchronously(plugin);
}
public void createPlayer(PlayerData player){
public void createPlayer(PlayerData player,SimpleCallback callback){
new BukkitRunnable(){
@Override
public void run() {
@ -197,6 +197,13 @@ public class MySQLConnection {
statement.setString(1, player.getUuid());
statement.setString(2, player.getName());
statement.executeUpdate();
new BukkitRunnable(){
@Override
public void run() {
callback.onDone();
}
}.runTask(plugin);
} catch (SQLException e) {
e.printStackTrace();
}

View file

@ -0,0 +1,6 @@
package pk.ajneb97.database;
public interface SimpleCallback {
void onDone();
}

View file

@ -1,6 +1,8 @@
package pk.ajneb97.managers;
import org.bukkit.Bukkit;
import org.bukkit.Color;
import org.bukkit.NamespacedKey;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
@ -37,6 +39,7 @@ public class KitItemManager {
kitItem.setDurability(item.getDurability());
}
ServerVersion serverVersion = PlayerKits2.serverVersion;
if(item.hasItemMeta()) {
ItemMeta meta = item.getItemMeta();
if(meta.hasDisplayName()) {
@ -52,7 +55,12 @@ public class KitItemManager {
if(meta.hasEnchants()) {
List<String> enchants = new ArrayList<String>();
for(Map.Entry<Enchantment,Integer> entry : meta.getEnchants().entrySet()){
String enchant = entry.getKey().getName();
String enchant;
if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_21_R1)){
enchant = entry.getKey().getKey().getKey().toUpperCase();
}else{
enchant = entry.getKey().getName();
}
int level = entry.getValue();
enchants.add(enchant+";"+level);
}
@ -81,7 +89,14 @@ public class KitItemManager {
Map<Enchantment, Integer> enchants = meta2.getStoredEnchants();
List<String> enchantsList = new ArrayList<String>();
for (Map.Entry<Enchantment, Integer> entry : enchants.entrySet()) {
enchantsList.add(entry.getKey().getName()+";"+entry.getValue().intValue());
String enchant;
if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_21_R1)){
enchant = entry.getKey().getKey().getKey().toUpperCase();
}else{
enchant = entry.getKey().getName();
}
int level = entry.getValue();
enchantsList.add(enchant+";"+level);
}
if(!enchantsList.isEmpty()) {
kitItem.setBookEnchants(enchantsList);
@ -89,7 +104,6 @@ public class KitItemManager {
}
}
ServerVersion serverVersion = PlayerKits2.serverVersion;
if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R4)){
List<String> nbtList = ItemUtils.getNBT(plugin,item);
if(!nbtList.isEmpty()) {
@ -150,7 +164,8 @@ public class KitItemManager {
for(int i=0;i<enchants.size();i++) {
String[] sep = enchants.get(i).split(";");
String enchantName = sep[0];
int enchantLevel = Integer.valueOf(sep[1]);
int enchantLevel = Integer.parseInt(sep[1]);
meta.addEnchant(Enchantment.getByName(enchantName), enchantLevel, true);
}
}

View file

@ -154,7 +154,6 @@ public class PlayerDataManager {
String uuid = player.getUniqueId().toString();
mySQLConnection.getPlayer(uuid, playerData -> {
removePlayerByUUID(uuid); //Remove data if already exists
boolean firstJoin = false;
if(playerData != null) {
players.add(playerData);
//Update name if different
@ -163,34 +162,26 @@ public class PlayerDataManager {
mySQLConnection.updatePlayerName(playerData);
}
}else {
firstJoin = true;
playerData = new PlayerData(player.getName(),uuid);
players.add(playerData);
//Create if it doesn't exist
mySQLConnection.createPlayer(playerData);
}
if(firstJoin){
plugin.getKitsManager().giveFirstJoinKit(player);
mySQLConnection.createPlayer(playerData, () -> plugin.getKitsManager().giveFirstJoinKit(player));
}
});
}else{
boolean firstJoin = false;
PlayerData playerData = getPlayerByUUID(player.getUniqueId().toString());
if(playerData == null){
firstJoin = true;
playerData = new PlayerData(player.getName(),player.getUniqueId().toString());
playerData.setModified(true);
players.add(playerData);
plugin.getKitsManager().giveFirstJoinKit(player);
}else{
if(playerData.getName() == null || !playerData.getName().equals(player.getName())){
playerData.setName(player.getName());
playerData.setModified(true);
}
}
if(firstJoin){
plugin.getKitsManager().giveFirstJoinKit(player);
}
}
}
}

View file

@ -25,7 +25,8 @@ public enum ServerVersion {
v1_20_R1,
v1_20_R2,
v1_20_R3,
v1_20_R4;
v1_20_R4,
v1_21_R1;
public boolean serverVersionGreaterEqualThan(ServerVersion version1,ServerVersion version2){
return version1.ordinal() >= version2.ordinal();

View file

@ -1,5 +1,5 @@
main: pk.ajneb97.PlayerKits2
version: 1.11.4
version: 1.12.1
name: PlayerKits2
api-version: 1.13
softdepend: [Vault,PlaceholderAPI]