Skip to content

Commit

Permalink
feat: Moved the Skin and User classes
Browse files Browse the repository at this point in the history
Added UserManager and SkinManager (I'm going to rewrite them)
BREAKING CHANGE: API classes changed
  • Loading branch information
GeorgeV220 committed Nov 3, 2023
1 parent b5c7f92 commit 9e30f2a
Show file tree
Hide file tree
Showing 31 changed files with 587 additions and 77 deletions.
1 change: 1 addition & 0 deletions bukkit/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ dependencies {
compileOnly project(path: ':multiver:mc-1-19-3', configuration: 'reobf')
compileOnly project(path: ':multiver:mc-1-19-4', configuration: 'reobf')
compileOnly project(path: ':multiver:mc-1-20', configuration: 'reobf')
compileOnly project(path: ':multiver:mc-1-20-2', configuration: 'reobf')

implementation "net.kyori:adventure-platform-bukkit:4.3.0"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ public void onEnable() {
case V1_19_R2 -> skinOverlay.setSkinHandler(new SkinHandler_1_19_R2());
case V1_19_R3 -> skinOverlay.setSkinHandler(new SkinHandler_1_19_R3());
case V1_20_R1 -> skinOverlay.setSkinHandler(new SkinHandler_1_20());
case V1_20_R2 -> skinOverlay.setSkinHandler(new SkinHandler_1_20_2());
case UNKNOWN -> skinOverlay.setSkinHandler(new SkinHandler_Unsupported());
default -> skinOverlay.setSkinHandler(new SkinHandler_Legacy());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.georgev22.library.exceptions.ReflectionException;
import com.georgev22.library.scheduler.SchedulerManager;
import com.georgev22.skinoverlay.handler.SGameProfile;
import com.georgev22.skinoverlay.handler.Skin;
import com.georgev22.skinoverlay.storage.data.Skin;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
import com.google.common.collect.ImmutableList;
import com.google.common.hash.Hashing;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.georgev22.library.utilities.Utils;
import com.georgev22.skinoverlay.SkinOverlay;
import com.georgev22.skinoverlay.event.events.player.PlayerObjectConnectionEvent;
import com.georgev22.skinoverlay.handler.Skin;
import com.georgev22.skinoverlay.storage.data.Skin;
import com.georgev22.skinoverlay.handler.skin.SkinParts;
import com.georgev22.skinoverlay.utilities.SerializableBufferedImage;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import com.georgev22.library.utilities.Utils;
import com.georgev22.skinoverlay.handler.SGameProfile;
import com.georgev22.skinoverlay.handler.SProperty;
import com.georgev22.skinoverlay.handler.Skin;
import com.georgev22.skinoverlay.storage.data.Skin;
import com.georgev22.skinoverlay.handler.SkinHandler;
import com.georgev22.skinoverlay.handler.profile.SGameProfileBungee;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
Expand Down
21 changes: 11 additions & 10 deletions core/src/main/java/com/georgev22/skinoverlay/SkinOverlay.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@
import com.georgev22.skinoverlay.commands.SkinOverlayCommand;
import com.georgev22.skinoverlay.event.EventManager;
import com.georgev22.skinoverlay.event.HandlerList;
import com.georgev22.skinoverlay.handler.Skin;
import com.georgev22.skinoverlay.handler.SkinHandler;
import com.georgev22.skinoverlay.hook.SkinHook;
import com.georgev22.skinoverlay.hook.hooks.SkinHookImpl;
import com.georgev22.skinoverlay.hook.hooks.SkinsRestorerHook;
import com.georgev22.skinoverlay.listeners.DebugListeners;
import com.georgev22.skinoverlay.listeners.ObservableListener;
import com.georgev22.skinoverlay.listeners.PlayerListeners;
import com.georgev22.skinoverlay.storage.data.User;
import com.georgev22.skinoverlay.storage.manager.SkinManager;
import com.georgev22.skinoverlay.storage.manager.UserManager;
import com.georgev22.skinoverlay.utilities.Locale;
import com.georgev22.skinoverlay.utilities.PluginMessageUtils;
import com.georgev22.skinoverlay.utilities.Updater;
Expand All @@ -31,7 +33,6 @@
import com.georgev22.skinoverlay.utilities.config.OptionsUtil;
import com.georgev22.skinoverlay.utilities.interfaces.SkinOverlayImpl;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
import com.georgev22.skinoverlay.utilities.player.User;
import lombok.Getter;
import lombok.Setter;
import org.jetbrains.annotations.ApiStatus;
Expand Down Expand Up @@ -83,10 +84,10 @@ public final class SkinOverlay {
private CommandManager<?, ?, ?, ?, ?, ?> commandManager;

@Getter
private EntityManager<User> userManager;
private UserManager userManager;

@Getter
private EntityManager<Skin> skinManager;
private SkinManager skinManager;

@Getter
private EventManager eventManager;
Expand Down Expand Up @@ -420,15 +421,15 @@ private void setupDatabase() throws Exception {
OptionsUtil.DATABASE_MONGO_DATABASE.getStringValue(),
getLogger());
databaseWrapper.connect();
this.userManager = new EntityManager<>(databaseWrapper, OptionsUtil.DATABASE_MONGO_USERS_COLLECTION.getStringValue(), User.class);
this.skinManager = new EntityManager<>(databaseWrapper, OptionsUtil.DATABASE_MONGO_SKINS_COLLECTION.getStringValue(), Skin.class);
this.userManager = new UserManager(databaseWrapper, OptionsUtil.DATABASE_MONGO_USERS_COLLECTION.getStringValue());
this.skinManager = new SkinManager(databaseWrapper, OptionsUtil.DATABASE_MONGO_SKINS_COLLECTION.getStringValue());
getLogger().log(Level.INFO, "[" + getDescription().name() + "] [" + getDescription().version() + "] Database: MongoDB");
}
}
default -> {
databaseWrapper = null;
this.userManager = new EntityManager<>(new File(this.getDataFolder(), "userdata"), null, User.class);
this.skinManager = new EntityManager<>(new File(this.getDataFolder(), "skindata"), null, Skin.class);
this.userManager = new UserManager(new File(this.getDataFolder(), "userdata"), null);
this.skinManager = new SkinManager(new File(this.getDataFolder(), "skindata"), null);
getLogger().log(Level.INFO, "[" + getDescription().name() + "] [" + getDescription().version() + "] Database: File");
}
}
Expand All @@ -450,8 +451,8 @@ private void sqlConnect(ObjectMap<String, Pair<String, String>> map, ObjectMap<S
databaseWrapper.connect();
databaseWrapper.getSQLDatabase().createTable(OptionsUtil.DATABASE_USERS_TABLE_NAME.getStringValue(), map);
databaseWrapper.getSQLDatabase().createTable(OptionsUtil.DATABASE_SKINS_TABLE_NAME.getStringValue(), skinMap);
this.userManager = new EntityManager<>(databaseWrapper, OptionsUtil.DATABASE_USERS_TABLE_NAME.getStringValue(), User.class);
this.skinManager = new EntityManager<>(databaseWrapper, OptionsUtil.DATABASE_SKINS_TABLE_NAME.getStringValue(), Skin.class);
this.userManager = new UserManager(databaseWrapper, OptionsUtil.DATABASE_USERS_TABLE_NAME.getStringValue());
this.skinManager = new SkinManager(databaseWrapper, OptionsUtil.DATABASE_SKINS_TABLE_NAME.getStringValue());
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.georgev22.skinoverlay.event.interfaces.Cancellable;
import com.georgev22.skinoverlay.event.HandlerList;
import com.georgev22.skinoverlay.event.events.user.UserEvent;
import com.georgev22.skinoverlay.utilities.player.User;
import com.georgev22.skinoverlay.storage.data.User;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
import org.jetbrains.annotations.NotNull;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.georgev22.skinoverlay.event.interfaces.Cancellable;
import com.georgev22.skinoverlay.event.HandlerList;
import com.georgev22.skinoverlay.event.events.player.PlayerObjectUserEvent;
import com.georgev22.skinoverlay.utilities.player.User;
import com.georgev22.skinoverlay.storage.data.User;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
import org.jetbrains.annotations.NotNull;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import com.georgev22.skinoverlay.event.interfaces.Cancellable;
import com.georgev22.skinoverlay.event.HandlerList;
import com.georgev22.skinoverlay.event.events.player.PlayerObjectUserEvent;
import com.georgev22.skinoverlay.handler.Skin;
import com.georgev22.skinoverlay.utilities.player.User;
import com.georgev22.skinoverlay.storage.data.Skin;
import com.georgev22.skinoverlay.storage.data.User;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.georgev22.skinoverlay.event.interfaces.Cancellable;
import com.georgev22.skinoverlay.event.Event;
import com.georgev22.skinoverlay.event.HandlerList;
import com.georgev22.skinoverlay.utilities.player.User;
import com.georgev22.skinoverlay.storage.data.User;
import org.jetbrains.annotations.NotNull;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.georgev22.skinoverlay.event.interfaces.Cancellable;
import com.georgev22.skinoverlay.event.HandlerList;
import com.georgev22.skinoverlay.event.events.user.UserEvent;
import com.georgev22.skinoverlay.utilities.player.User;
import com.georgev22.skinoverlay.storage.data.User;
import org.jetbrains.annotations.NotNull;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.georgev22.skinoverlay.event.interfaces.Cancellable;
import com.georgev22.skinoverlay.event.HandlerList;
import com.georgev22.skinoverlay.event.events.user.data.UserModifyDataEvent;
import com.georgev22.skinoverlay.utilities.player.User;
import com.georgev22.skinoverlay.storage.data.User;
import org.jetbrains.annotations.NotNull;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.georgev22.skinoverlay.event.HandlerList;
import com.georgev22.skinoverlay.event.events.user.UserEvent;
import com.georgev22.skinoverlay.event.interfaces.Cancellable;
import com.georgev22.skinoverlay.utilities.player.User;
import com.georgev22.skinoverlay.storage.data.User;
import org.jetbrains.annotations.NotNull;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.georgev22.skinoverlay.event.HandlerList;
import com.georgev22.skinoverlay.event.events.user.UserEvent;
import com.georgev22.skinoverlay.event.interfaces.Cancellable;
import com.georgev22.skinoverlay.utilities.player.User;
import com.georgev22.skinoverlay.storage.data.User;
import org.jetbrains.annotations.NotNull;

import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.georgev22.skinoverlay.event.events.profile.ProfileCreatedEvent;
import com.georgev22.skinoverlay.event.events.profile.property.SPropertyAddEvent;
import com.georgev22.skinoverlay.event.events.profile.property.SPropertyRemoveEvent;
import com.georgev22.skinoverlay.storage.data.Skin;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.georgev22.skinoverlay.handler.skin.MinecraftSkinRenderer;
import com.georgev22.skinoverlay.handler.skin.Part;
import com.georgev22.skinoverlay.handler.skin.SkinParts;
import com.georgev22.skinoverlay.storage.data.Skin;
import com.georgev22.skinoverlay.utilities.SerializableBufferedImage;
import com.georgev22.skinoverlay.utilities.Utilities;
import com.georgev22.skinoverlay.utilities.config.OptionsUtil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.georgev22.library.maps.ObjectMap;
import com.georgev22.skinoverlay.handler.SGameProfile;
import com.georgev22.skinoverlay.handler.SProperty;
import com.georgev22.skinoverlay.handler.Skin;
import com.georgev22.skinoverlay.storage.data.Skin;
import com.georgev22.skinoverlay.handler.SkinHandler;
import com.georgev22.skinoverlay.handler.profile.SGameProfileMojang;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.georgev22.skinoverlay.handler;
package com.georgev22.skinoverlay.storage.data;

import com.georgev22.library.utilities.EntityManager.Entity;
import com.georgev22.library.maps.ConcurrentObjectMap;
import com.georgev22.library.utilities.Entity;
import com.georgev22.skinoverlay.SkinOverlay;
import com.georgev22.skinoverlay.handler.SProperty;
import com.georgev22.skinoverlay.handler.skin.SkinParts;
import com.georgev22.skinoverlay.utilities.SerializableBufferedImage;
import com.google.gson.JsonParser;
Expand All @@ -16,22 +18,24 @@
import java.util.logging.Level;

@ApiStatus.NonExtendable
public class Skin extends Entity implements Serializable {
public class Skin implements Entity, Serializable {

@Serial
private static final long serialVersionUID = 2L;
private static final long serialVersionUID = 3L;

private final ConcurrentObjectMap<String, Object> customData;

private SProperty property;
private SkinParts skinParts;

public Skin(UUID uuid) {
super(uuid);
this.customData = new ConcurrentObjectMap<>();
addCustomData("entity_id", uuid.toString());
this.skinParts = new SkinParts();
}

public Skin(UUID uuid, SProperty sProperty, String skinName) {
super(uuid);
this.customData = new ConcurrentObjectMap<>();
addCustomData("entity_id", uuid.toString());
addCustomData("property", this.property = sProperty);
try {
Expand All @@ -46,7 +50,7 @@ public Skin(UUID uuid, SProperty sProperty, String skinName) {
}

public Skin(UUID uuid, SProperty sProperty, SkinParts skinParts) {
super(uuid);
this.customData = new ConcurrentObjectMap<>();
addCustomData("entity_id", uuid.toString());
addCustomData("property", this.property = sProperty);
addCustomData("skinParts", this.skinParts = skinParts);
Expand Down Expand Up @@ -85,4 +89,14 @@ public String toString() {
", skinURL=" + skinURL() +
'}';
}

@Override
public UUID getId() {
return this.getCustomData("entity_id") != null ? UUID.fromString(this.getCustomData("entity_id")) : null;
}

@Override
public ConcurrentObjectMap<String, Object> getCustomData() {
return this.customData;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.georgev22.skinoverlay.storage.data;

import com.georgev22.library.maps.ConcurrentObjectMap;
import com.georgev22.library.utilities.Entity;

import java.io.Serial;
import java.io.Serializable;
import java.util.UUID;

public class User implements Entity, Serializable {

@Serial
private static final long serialVersionUID = 2L;

private final ConcurrentObjectMap<String, Object> customData;

public User(UUID uuid) {
this.customData = new ConcurrentObjectMap<>();
addCustomData("entity_id", uuid.toString());
}

public Skin defaultSkin() {
return getCustomData("defaultSkin");
}

public Skin skin() {
return getCustomData("skin");
}

@Override
public UUID getId() {
return this.getCustomData("entity_id") != null ? UUID.fromString(this.getCustomData("entity_id")) : null;
}

@Override
public ConcurrentObjectMap<String, Object> getCustomData() {
return this.customData;
}
}

0 comments on commit 9e30f2a

Please sign in to comment.