1.12.1
This commit is contained in:
parent
eba91312f3
commit
d6b889788b
7 changed files with 50 additions and 24 deletions
|
|
@ -118,10 +118,16 @@ public class PlayerKits2 extends JavaPlugin {
|
||||||
|
|
||||||
public void setVersion(){
|
public void setVersion(){
|
||||||
String packageName = Bukkit.getServer().getClass().getPackage().getName();
|
String packageName = Bukkit.getServer().getClass().getPackage().getName();
|
||||||
String bukkitVersion = Bukkit.getServer().getBukkitVersion();
|
String bukkitVersion = Bukkit.getServer().getBukkitVersion().split("-")[0];
|
||||||
if(bukkitVersion.contains("1.20.5") || bukkitVersion.contains("1.20.6")){
|
switch(bukkitVersion){
|
||||||
|
case "1.20.5":
|
||||||
|
case "1.20.6":
|
||||||
serverVersion = ServerVersion.v1_20_R4;
|
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.", ""));
|
serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", ""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -185,7 +185,7 @@ public class MySQLConnection {
|
||||||
}.runTaskAsynchronously(plugin);
|
}.runTaskAsynchronously(plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createPlayer(PlayerData player){
|
public void createPlayer(PlayerData player,SimpleCallback callback){
|
||||||
new BukkitRunnable(){
|
new BukkitRunnable(){
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
@ -197,6 +197,13 @@ public class MySQLConnection {
|
||||||
statement.setString(1, player.getUuid());
|
statement.setString(1, player.getUuid());
|
||||||
statement.setString(2, player.getName());
|
statement.setString(2, player.getName());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
|
|
||||||
|
new BukkitRunnable(){
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
callback.onDone();
|
||||||
|
}
|
||||||
|
}.runTask(plugin);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
6
src/main/java/pk/ajneb97/database/SimpleCallback.java
Normal file
6
src/main/java/pk/ajneb97/database/SimpleCallback.java
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
package pk.ajneb97.database;
|
||||||
|
|
||||||
|
public interface SimpleCallback {
|
||||||
|
|
||||||
|
void onDone();
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
package pk.ajneb97.managers;
|
package pk.ajneb97.managers;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
@ -37,6 +39,7 @@ public class KitItemManager {
|
||||||
kitItem.setDurability(item.getDurability());
|
kitItem.setDurability(item.getDurability());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ServerVersion serverVersion = PlayerKits2.serverVersion;
|
||||||
if(item.hasItemMeta()) {
|
if(item.hasItemMeta()) {
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
if(meta.hasDisplayName()) {
|
if(meta.hasDisplayName()) {
|
||||||
|
|
@ -52,7 +55,12 @@ public class KitItemManager {
|
||||||
if(meta.hasEnchants()) {
|
if(meta.hasEnchants()) {
|
||||||
List<String> enchants = new ArrayList<String>();
|
List<String> enchants = new ArrayList<String>();
|
||||||
for(Map.Entry<Enchantment,Integer> entry : meta.getEnchants().entrySet()){
|
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();
|
int level = entry.getValue();
|
||||||
enchants.add(enchant+";"+level);
|
enchants.add(enchant+";"+level);
|
||||||
}
|
}
|
||||||
|
|
@ -81,7 +89,14 @@ public class KitItemManager {
|
||||||
Map<Enchantment, Integer> enchants = meta2.getStoredEnchants();
|
Map<Enchantment, Integer> enchants = meta2.getStoredEnchants();
|
||||||
List<String> enchantsList = new ArrayList<String>();
|
List<String> enchantsList = new ArrayList<String>();
|
||||||
for (Map.Entry<Enchantment, Integer> entry : enchants.entrySet()) {
|
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()) {
|
if(!enchantsList.isEmpty()) {
|
||||||
kitItem.setBookEnchants(enchantsList);
|
kitItem.setBookEnchants(enchantsList);
|
||||||
|
|
@ -89,7 +104,6 @@ public class KitItemManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerVersion serverVersion = PlayerKits2.serverVersion;
|
|
||||||
if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R4)){
|
if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R4)){
|
||||||
List<String> nbtList = ItemUtils.getNBT(plugin,item);
|
List<String> nbtList = ItemUtils.getNBT(plugin,item);
|
||||||
if(!nbtList.isEmpty()) {
|
if(!nbtList.isEmpty()) {
|
||||||
|
|
@ -150,7 +164,8 @@ public class KitItemManager {
|
||||||
for(int i=0;i<enchants.size();i++) {
|
for(int i=0;i<enchants.size();i++) {
|
||||||
String[] sep = enchants.get(i).split(";");
|
String[] sep = enchants.get(i).split(";");
|
||||||
String enchantName = sep[0];
|
String enchantName = sep[0];
|
||||||
int enchantLevel = Integer.valueOf(sep[1]);
|
int enchantLevel = Integer.parseInt(sep[1]);
|
||||||
|
|
||||||
meta.addEnchant(Enchantment.getByName(enchantName), enchantLevel, true);
|
meta.addEnchant(Enchantment.getByName(enchantName), enchantLevel, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,6 @@ public class PlayerDataManager {
|
||||||
String uuid = player.getUniqueId().toString();
|
String uuid = player.getUniqueId().toString();
|
||||||
mySQLConnection.getPlayer(uuid, playerData -> {
|
mySQLConnection.getPlayer(uuid, playerData -> {
|
||||||
removePlayerByUUID(uuid); //Remove data if already exists
|
removePlayerByUUID(uuid); //Remove data if already exists
|
||||||
boolean firstJoin = false;
|
|
||||||
if(playerData != null) {
|
if(playerData != null) {
|
||||||
players.add(playerData);
|
players.add(playerData);
|
||||||
//Update name if different
|
//Update name if different
|
||||||
|
|
@ -163,34 +162,26 @@ public class PlayerDataManager {
|
||||||
mySQLConnection.updatePlayerName(playerData);
|
mySQLConnection.updatePlayerName(playerData);
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
firstJoin = true;
|
|
||||||
playerData = new PlayerData(player.getName(),uuid);
|
playerData = new PlayerData(player.getName(),uuid);
|
||||||
players.add(playerData);
|
players.add(playerData);
|
||||||
|
|
||||||
//Create if it doesn't exist
|
//Create if it doesn't exist
|
||||||
mySQLConnection.createPlayer(playerData);
|
mySQLConnection.createPlayer(playerData, () -> plugin.getKitsManager().giveFirstJoinKit(player));
|
||||||
}
|
|
||||||
if(firstJoin){
|
|
||||||
plugin.getKitsManager().giveFirstJoinKit(player);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
boolean firstJoin = false;
|
|
||||||
PlayerData playerData = getPlayerByUUID(player.getUniqueId().toString());
|
PlayerData playerData = getPlayerByUUID(player.getUniqueId().toString());
|
||||||
if(playerData == null){
|
if(playerData == null){
|
||||||
firstJoin = true;
|
|
||||||
playerData = new PlayerData(player.getName(),player.getUniqueId().toString());
|
playerData = new PlayerData(player.getName(),player.getUniqueId().toString());
|
||||||
playerData.setModified(true);
|
playerData.setModified(true);
|
||||||
players.add(playerData);
|
players.add(playerData);
|
||||||
|
plugin.getKitsManager().giveFirstJoinKit(player);
|
||||||
}else{
|
}else{
|
||||||
if(playerData.getName() == null || !playerData.getName().equals(player.getName())){
|
if(playerData.getName() == null || !playerData.getName().equals(player.getName())){
|
||||||
playerData.setName(player.getName());
|
playerData.setName(player.getName());
|
||||||
playerData.setModified(true);
|
playerData.setModified(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(firstJoin){
|
|
||||||
plugin.getKitsManager().giveFirstJoinKit(player);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@ public enum ServerVersion {
|
||||||
v1_20_R1,
|
v1_20_R1,
|
||||||
v1_20_R2,
|
v1_20_R2,
|
||||||
v1_20_R3,
|
v1_20_R3,
|
||||||
v1_20_R4;
|
v1_20_R4,
|
||||||
|
v1_21_R1;
|
||||||
|
|
||||||
public boolean serverVersionGreaterEqualThan(ServerVersion version1,ServerVersion version2){
|
public boolean serverVersionGreaterEqualThan(ServerVersion version1,ServerVersion version2){
|
||||||
return version1.ordinal() >= version2.ordinal();
|
return version1.ordinal() >= version2.ordinal();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
main: pk.ajneb97.PlayerKits2
|
main: pk.ajneb97.PlayerKits2
|
||||||
version: 1.11.4
|
version: 1.12.1
|
||||||
name: PlayerKits2
|
name: PlayerKits2
|
||||||
api-version: 1.13
|
api-version: 1.13
|
||||||
softdepend: [Vault,PlaceholderAPI]
|
softdepend: [Vault,PlaceholderAPI]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue