Skip to content

Commit

Permalink
rm skin type
Browse files Browse the repository at this point in the history
  • Loading branch information
OliverSchlueter committed Nov 23, 2024
1 parent 7cbc217 commit 4ff5489
Show file tree
Hide file tree
Showing 17 changed files with 101 additions and 112 deletions.
65 changes: 49 additions & 16 deletions api/src/main/java/de/oliver/fancynpcs/api/skins/SkinData.java
Original file line number Diff line number Diff line change
@@ -1,25 +1,58 @@
package de.oliver.fancynpcs.api.skins;

public record SkinData(
String identifier,
SkinType type,
SkinVariant variant,
public class SkinData {

String textureValue,
String textureSignature
) {
private String identifier;
private SkinVariant variant;

private String textureValue;
private String textureSignature;

public SkinData(String identifier, SkinVariant variant, String textureValue, String textureSignature) {
this.identifier = identifier;
this.variant = variant;
this.textureValue = textureValue;
this.textureSignature = textureSignature;
}

public SkinData(String identifier, SkinVariant variant) {
this(identifier, variant, null, null);
}

public String getIdentifier() {
return identifier;
}

public void setIdentifier(String identifier) {
this.identifier = identifier;
}

public SkinVariant getVariant() {
return variant;
}

public void setVariant(SkinVariant variant) {
this.variant = variant;
}

public String getTextureValue() {
return textureValue;
}

public void setTextureValue(String textureValue) {
this.textureValue = textureValue;
}

public String getTextureSignature() {
return textureSignature;
}

public void setTextureSignature(String textureSignature) {
this.textureSignature = textureSignature;
}

public enum SkinVariant {
SLIM,
DEFAULT
}

public enum SkinType {
PLACEHOLDER,
USERNAME,
UUID,
URL,
FILE,
VALUE_SIGNATURE
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ public void spawn(Player player) {
}

if (data.getSkin() != null) {
String skinValue = data.getSkin().textureValue();
String skinSignature = data.getSkin().textureSignature();
String skinValue = data.getSkin().getTextureValue();
String skinSignature = data.getSkin().getTextureSignature();

if (skinValue != null && !skinValue.isEmpty() && skinSignature != null && !skinSignature.isEmpty()) {
((ServerPlayer) npc).getGameProfile().getProperties().replaceValues("textures", ImmutableList.of(new Property("textures", skinValue, skinSignature)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ public void spawn(Player player) {
}

if (data.getSkin() != null) {
String skinValue = data.getSkin().textureValue();
String skinSignature = data.getSkin().textureSignature();
String skinValue = data.getSkin().getTextureValue();
String skinSignature = data.getSkin().getTextureSignature();

if (skinValue != null && !skinValue.isEmpty() && skinSignature != null && !skinSignature.isEmpty()) {
((ServerPlayer) npc).getGameProfile().getProperties().replaceValues("textures", ImmutableList.of(new Property("textures", skinValue, skinSignature)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ public void spawn(Player player) {
}

if (data.getSkin() != null) {
String skinValue = data.getSkin().textureValue();
String skinSignature = data.getSkin().textureSignature();
String skinValue = data.getSkin().getTextureValue();
String skinSignature = data.getSkin().getTextureSignature();

if (skinValue != null && !skinValue.isEmpty() && skinSignature != null && !skinSignature.isEmpty()) {
((ServerPlayer) npc).getGameProfile().getProperties().replaceValues("textures", ImmutableList.of(new Property("textures", skinValue, skinSignature)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ public void spawn(Player player) {
}

if (data.getSkin() != null) {
String skinValue = data.getSkin().textureValue();
String skinSignature = data.getSkin().textureSignature();
String skinValue = data.getSkin().getTextureValue();
String skinSignature = data.getSkin().getTextureSignature();

if (skinValue != null && !skinValue.isEmpty() && skinSignature != null && !skinSignature.isEmpty()) {
((ServerPlayer) npc).getGameProfile().getProperties().replaceValues("textures", ImmutableList.of(new Property("textures", skinValue, skinSignature)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ public void spawn(Player player) {
}

if (data.getSkin() != null) {
String skinValue = data.getSkin().textureValue();
String skinSignature = data.getSkin().textureSignature();
String skinValue = data.getSkin().getTextureValue();
String skinSignature = data.getSkin().getTextureSignature();

if (skinValue != null && !skinValue.isEmpty() && skinSignature != null && !skinSignature.isEmpty()) {
((ServerPlayer) npc).getGameProfile().getProperties().replaceValues("textures", ImmutableList.of(new Property("textures", skinValue, skinSignature)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ public void spawn(Player player) {
}

if (data.getSkin() != null) {
String skinValue = data.getSkin().textureValue();
String skinSignature = data.getSkin().textureSignature();
String skinValue = data.getSkin().getTextureValue();
String skinSignature = data.getSkin().getTextureSignature();

if (skinValue != null && !skinValue.isEmpty() && skinSignature != null && !skinSignature.isEmpty()) {
((ServerPlayer) npc).getGameProfile().getProperties().replaceValues("textures", ImmutableList.of(new Property("textures", skinValue, skinSignature)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ public void spawn(Player player) {
}

if (data.getSkin() != null) {
String skinValue = data.getSkin().textureValue();
String skinSignature = data.getSkin().textureSignature();
String skinValue = data.getSkin().getTextureValue();
String skinSignature = data.getSkin().getTextureSignature();

if (skinValue != null && !skinValue.isEmpty() && skinSignature != null && !skinSignature.isEmpty()) {
((ServerPlayer) npc).getGameProfile().getProperties().replaceValues("textures", ImmutableList.of(new Property("textures", skinValue, skinSignature)));
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/de/oliver/fancynpcs/FancyNpcs.java
Original file line number Diff line number Diff line change
Expand Up @@ -277,8 +277,8 @@ Please update to the newest version (%s).
List<Npc> npcs = new ArrayList<>(npcManager.getAllNpcs());
for (Npc npc : npcs) {
boolean skinUpdated = npc.getData().getSkin() != null &&
!npc.getData().getSkin().identifier().isEmpty() &&
SkinUtils.isPlaceholder(npc.getData().getSkin().identifier());
!npc.getData().getSkin().getIdentifier().isEmpty() &&
SkinUtils.isPlaceholder(npc.getData().getSkin().getIdentifier());

boolean displayNameUpdated = npc.getData().getDisplayName() != null &&
!npc.getData().getDisplayName().isEmpty() &&
Expand Down
21 changes: 5 additions & 16 deletions src/main/java/de/oliver/fancynpcs/NpcManagerImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import de.oliver.fancynpcs.api.actions.NpcAction;
import de.oliver.fancynpcs.api.skins.SkinData;
import de.oliver.fancynpcs.api.utils.NpcEquipmentSlot;
import de.oliver.fancynpcs.skins.SkinUtils;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.Location;
Expand Down Expand Up @@ -178,9 +177,8 @@ public void saveNpcs(boolean force) {
npcConfig.set("npcs." + data.getId() + ".scale", data.getScale());

if (data.getSkin() != null) {
npcConfig.set("npcs." + data.getId() + ".skin.identifier", data.getSkin().identifier());
npcConfig.set("npcs." + data.getId() + ".skin.skinType", data.getSkin().type());
npcConfig.set("npcs." + data.getId() + ".skin.skinVariant", data.getSkin().variant());
npcConfig.set("npcs." + data.getId() + ".skin.identifier", data.getSkin().getIdentifier());
npcConfig.set("npcs." + data.getId() + ".skin.skinVariant", data.getSkin().getVariant());
} else {
npcConfig.set("npcs." + data.getId() + ".skin.identifier", null);
}
Expand Down Expand Up @@ -271,19 +269,10 @@ public void loadNpcs() {

String skinIdentifier = npcConfig.getString("npcs." + id + ".skin.identifier", npcConfig.getString("npcs." + id + ".skin.uuid", ""));

String skinVariantStr = npcConfig.getString("npcs." + id + ".skin.variant", "DEFAULT");
String skinVariantStr = npcConfig.getString("npcs." + id + ".skin.variant", SkinData.SkinVariant.DEFAULT.name());
SkinData.SkinVariant skinVariant = SkinData.SkinVariant.valueOf(skinVariantStr);

String skinTypeStr = npcConfig.getString("npcs." + id + ".skin.type", "N/A");
SkinData.SkinType skinType = null;

if (skinTypeStr.equals("N/A")) {
skinType = SkinUtils.getSkinType(skinIdentifier);
} else {
skinType = SkinData.SkinType.valueOf(skinTypeStr);
}

SkinData skin = new SkinData(skinIdentifier, skinType, skinVariant, "", "");
SkinData skin = new SkinData(skinIdentifier, skinVariant, "", "");


if (npcConfig.isSet("npcs." + id + ".skin.value") && npcConfig.isSet("npcs." + id + ".skin.signature")) {
Expand All @@ -294,7 +283,7 @@ public void loadNpcs() {
String signature = npcConfig.getString("npcs." + id + ".skin.signature");

if (value != null && !value.isEmpty() && signature != null && !signature.isEmpty()) {
SkinData oldSkin = new SkinData(skinIdentifier, SkinData.SkinType.UUID, SkinData.SkinVariant.DEFAULT, value, signature);
SkinData oldSkin = new SkinData(skinIdentifier, SkinData.SkinVariant.DEFAULT, value, signature);
FancyNpcs.getInstance().getSkinManagerImpl().getFileCache().addSkin(oldSkin);
FancyNpcs.getInstance().getSkinManagerImpl().getMemCache().addSkin(oldSkin);
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/de/oliver/fancynpcs/commands/npc/SkinCMD.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public void onSkin(
} else {
SkinData skinData;
try {
skinData = new SkinData("", SkinData.SkinType.FILE, SkinData.SkinVariant.DEFAULT, "", ""); // TODO
skinData = new SkinData("", SkinData.SkinVariant.DEFAULT, "", ""); // TODO
} catch (Exception e) {
translator.translate("npc_skin_failure_invalid").replaceStripped("input", skin).send(sender);
return;
Expand All @@ -79,7 +79,7 @@ public void onSkin(
npc.spawnForAll();
translator.translate("npc_skin_set")
.replace("npc", npc.getData().getName())
.replace("name", skinData.identifier())
.replace("name", skinData.getIdentifier())
.send(sender);
} else {
translator.translate("command_npc_modification_cancelled").send(sender);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ public void onPlayerJoin(PlayerJoinEvent event) {

SkinData skinData = new SkinData(
event.getPlayer().getUniqueId().toString(),
SkinData.SkinType.UUID,
SkinData.SkinVariant.DEFAULT,
property.getValue(),
property.getSignature()
Expand Down
5 changes: 0 additions & 5 deletions src/main/java/de/oliver/fancynpcs/skins/SkinManagerImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ public SkinData getByUUID(UUID uuid) {

return new SkinData(
uuid.toString(),
SkinData.SkinType.UUID,
SkinData.SkinVariant.DEFAULT,
skinInfo.texture().data().value(),
skinInfo.texture().data().signature()
Expand All @@ -84,7 +83,6 @@ public SkinData getByUsername(String username) {

return new SkinData(
username,
SkinData.SkinType.USERNAME,
SkinData.SkinVariant.DEFAULT,
skinInfo.texture().data().value(),
skinInfo.texture().data().signature()
Expand All @@ -109,7 +107,6 @@ public SkinData getByURL(String url) {

return new SkinData(
url,
SkinData.SkinType.URL,
SkinData.SkinVariant.DEFAULT,
skinInfo.texture().data().value(),
skinInfo.texture().data().signature()
Expand All @@ -133,7 +130,6 @@ public SkinData getByFile(String filePath) {

return new SkinData(
filePath,
SkinData.SkinType.FILE,
SkinData.SkinVariant.DEFAULT,
skinInfo.texture().data().value(),
skinInfo.texture().data().signature()
Expand All @@ -144,7 +140,6 @@ public SkinData getByFile(String filePath) {
public SkinData get(String name, String value, String signature) {
return new SkinData(
name,
SkinData.SkinType.VALUE_SIGNATURE,
SkinData.SkinVariant.DEFAULT,
value,
signature
Expand Down
22 changes: 0 additions & 22 deletions src/main/java/de/oliver/fancynpcs/skins/SkinUtils.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package de.oliver.fancynpcs.skins;

import de.oliver.fancynpcs.api.skins.SkinData;

public class SkinUtils {

public static boolean isPlaceholder(String identifier) {
Expand All @@ -20,24 +18,4 @@ public static boolean isFile(String identifier) {
return identifier.endsWith(".png") || identifier.endsWith(".jpg") || identifier.endsWith(".jpeg");
}

public static SkinData.SkinType getSkinType(String identifier) {
if (isPlaceholder(identifier)) {
return SkinData.SkinType.PLACEHOLDER;
}

if (isUUID(identifier)) {
return SkinData.SkinType.UUID;
}

if (isURL(identifier)) {
return SkinData.SkinType.URL;
}

if (isFile(identifier)) {
return SkinData.SkinType.FILE;
}

return SkinData.SkinType.USERNAME;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public void addSkin(SkinData skin) {
SkinCacheData skinCacheData = new SkinCacheData(skin, System.currentTimeMillis(), CACHE_TIME);

try {
this.storage.set("skins/" + skin.identifier(), skinCacheData);
this.storage.set("skins/" + skin.getIdentifier(), skinCacheData);
} catch (IOException e) {
FancyNpcs.getInstance().getFancyLogger().error("Failed to save skin cache");
FancyNpcs.getInstance().getFancyLogger().error(e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public SkinCacheData getSkin(String identifier) {
@Override
public void addSkin(SkinData skin) {
SkinCacheData skinCacheData = new SkinCacheData(skin, System.currentTimeMillis(), CACHE_TIME);
cache.put(skin.identifier(),skinCacheData);
cache.put(skin.getIdentifier(), skinCacheData);
}

@Override
Expand Down
Loading

0 comments on commit 4ff5489

Please sign in to comment.