This commit is contained in:
Ajneb97 2024-04-01 10:05:02 -03:00
parent 5cb48102c2
commit 338e4c8a0f
4 changed files with 52 additions and 55 deletions

View file

@ -12,9 +12,7 @@ import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.*;
import java.util.HashSet;
import java.util.Set;
public class MySQLConnection { public class MySQLConnection {
@ -76,7 +74,7 @@ public class MySQLConnection {
ResultSet result = statement.executeQuery(); ResultSet result = statement.executeQuery();
Set<String> existingUUIDs = new HashSet<>(); Map<String, PlayerData> playerMap = new HashMap<>();
while(result.next()){ while(result.next()){
String uuid = result.getString("UUID"); String uuid = result.getString("UUID");
String playerName = result.getString("PLAYER_NAME"); String playerName = result.getString("PLAYER_NAME");
@ -85,17 +83,13 @@ public class MySQLConnection {
boolean oneTime = result.getBoolean("ONE_TIME"); boolean oneTime = result.getBoolean("ONE_TIME");
boolean bought = result.getBoolean("BOUGHT"); boolean bought = result.getBoolean("BOUGHT");
PlayerData currentPlayer; PlayerData player = playerMap.get(uuid);
if(!existingUUIDs.contains(uuid)){
if(player == null){
//Create and add it //Create and add it
currentPlayer = new PlayerData(playerName,uuid); player = new PlayerData(playerName,uuid);
players.add(currentPlayer); players.add(player);
existingUUIDs.add(uuid); playerMap.put(uuid, player);
}else{
currentPlayer = players.stream()
.filter(p -> p.getUuid().equals(uuid))
.findFirst()
.orElse(null);
} }
if(kitName != null){ if(kitName != null){
@ -103,7 +97,7 @@ public class MySQLConnection {
playerDataKit.setCooldown(cooldown); playerDataKit.setCooldown(cooldown);
playerDataKit.setOneTime(oneTime); playerDataKit.setOneTime(oneTime);
playerDataKit.setBought(bought); playerDataKit.setBought(bought);
currentPlayer.addKit(playerDataKit); player.addKit(playerDataKit);
} }
} }
} catch (SQLException e) { } catch (SQLException e) {

View file

@ -27,7 +27,7 @@ public class PKInventoryInvalidSlotError extends PKBaseError{
hover.add("&eTHIS IS AN ERROR!"); hover.add("&eTHIS IS AN ERROR!");
hover.add("&fSlot &c"+slot+" &fon inventory &c"+inventoryName); hover.add("&fSlot &c"+slot+" &fon inventory &c"+inventoryName);
hover.add("&fis out of range. Use a range"); hover.add("&fis out of range. Use a range");
hover.add("&fbetween 0 and "+maxSlots+"."); hover.add("&fbetween 0 and "+(maxSlots-1)+".");
jsonMessage.hover(hover).send(); jsonMessage.hover(hover).send();
} }

View file

@ -6,6 +6,8 @@ import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.util.*; import java.util.*;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.FireworkEffect.Type; import org.bukkit.FireworkEffect.Type;
import org.bukkit.attribute.Attribute; import org.bukkit.attribute.Attribute;
@ -130,7 +132,6 @@ public class ItemUtils {
return kitItemSkullData; return kitItemSkullData;
} }
@SuppressWarnings("deprecation")
public static void setSkullData(ItemStack item, KitItemSkullData skullData, Player player){ public static void setSkullData(ItemStack item, KitItemSkullData skullData, Player player){
String typeName = item.getType().name(); String typeName = item.getType().name();
if(!typeName.equals("PLAYER_HEAD") && !typeName.equals("SKULL_ITEM")) { if(!typeName.equals("PLAYER_HEAD") && !typeName.equals("SKULL_ITEM")) {
@ -148,12 +149,11 @@ public class ItemUtils {
} }
String id = skullData.getId(); String id = skullData.getId();
SkullMeta skullMeta = (SkullMeta) item.getItemMeta(); SkullMeta skullMeta = (SkullMeta) item.getItemMeta();
if(texture == null && owner != null) { if(owner != null) {
skullMeta.setOwner(owner); skullMeta.setOwner(owner);
item.setItemMeta(skullMeta);
return;
} }
if(texture != null){
ServerVersion serverVersion = PlayerKits2.serverVersion; ServerVersion serverVersion = PlayerKits2.serverVersion;
if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R2)){ if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R2)){
UUID uuid = id != null ? UUID.fromString(id) : UUID.randomUUID(); UUID uuid = id != null ? UUID.fromString(id) : UUID.randomUUID();
@ -163,10 +163,12 @@ public class ItemUtils {
try { try {
String decoded = new String(Base64.getDecoder().decode(texture)); String decoded = new String(Base64.getDecoder().decode(texture));
String decodedFormatted = decoded.replaceAll("\\s", ""); String decodedFormatted = decoded.replaceAll("\\s", "");
int firstIndex = decodedFormatted.indexOf("\"SKIN\":{\"url\":")+15; JsonObject jsonObject = new Gson().fromJson(decodedFormatted, JsonObject.class);
int lastIndex = decodedFormatted.indexOf("\"",firstIndex+1); String urlText = jsonObject.get("textures").getAsJsonObject().get("SKIN")
url = new URL(decodedFormatted.substring(firstIndex,lastIndex)); .getAsJsonObject().get("url").getAsString();
} catch (MalformedURLException error) {
url = new URL(urlText);
} catch (Exception error) {
error.printStackTrace(); error.printStackTrace();
return; return;
} }
@ -190,6 +192,7 @@ public class ItemUtils {
error.printStackTrace(); error.printStackTrace();
} }
} }
}
item.setItemMeta(skullMeta); item.setItemMeta(skullMeta);
} }

View file

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