feat: update cache

This commit is contained in:
ineanto 2023-07-14 11:01:35 +02:00
parent f795d42564
commit 69bae936d6
22 changed files with 92 additions and 53 deletions

16
pom.xml
View file

@ -138,9 +138,11 @@
<include>net.wesjd:anvilgui</include> <include>net.wesjd:anvilgui</include>
<include>xyz.xenondevs.invui:*</include> <include>xyz.xenondevs.invui:*</include>
<include>com.github.jsixface:*</include> <include>com.github.jsixface:*</include>
<include>com.fasterxml.jackson.dataformat</include> <include>com.fasterxml.jackson.dataformat:*</include>
<include>com.fasterxml.jackson.core</include> <include>com.fasterxml.jackson.core:*</include>
<include>org.mariadb.jdbc</include> <include>org.mariadb.jdbc:*</include>
<include>redis.clients:*</include>
<include>org.apache.commons:commons-pool2</include>
</includes> </includes>
</artifactSet> </artifactSet>
<relocations> <relocations>
@ -168,6 +170,14 @@
<pattern>org.mariadb.jdbc</pattern> <pattern>org.mariadb.jdbc</pattern>
<shadedPattern>net.artelnatif.libs.mariadb</shadedPattern> <shadedPattern>net.artelnatif.libs.mariadb</shadedPattern>
</relocation> </relocation>
<relocation>
<pattern>redis.clients</pattern>
<shadedPattern>net.artelnatif.libs.redis</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.commons.pool2</pattern>
<shadedPattern>net.artelnatif.libs.pool2</shadedPattern>
</relocation>
</relocations> </relocations>
<!-- Prevents breaking AnvilGUI's VersionWrapper. --> <!-- Prevents breaking AnvilGUI's VersionWrapper. -->
<minimizeJar>false</minimizeJar> <minimizeJar>false</minimizeJar>

View file

@ -1,16 +1,17 @@
package xyz.atnrch.nicko.anvil; package xyz.atnrch.nicko.anvil;
import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.appearance.AppearanceManager;
import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.mojang.MojangUtils;
import net.wesjd.anvilgui.AnvilGUI; import net.wesjd.anvilgui.AnvilGUI;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.appearance.AppearanceManager;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.mojang.MojangUtils;
import xyz.atnrch.nicko.storage.PlayerDataStore;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -18,10 +19,12 @@ import java.util.List;
public class AnvilManager { public class AnvilManager {
private final Player player; private final Player player;
private final AppearanceManager appearanceManager; private final AppearanceManager appearanceManager;
private final PlayerDataStore dataStore;
public AnvilManager(Player player) { public AnvilManager(Player player) {
this.player = player; this.player = player;
this.appearanceManager = AppearanceManager.get(player); this.appearanceManager = AppearanceManager.get(player);
this.dataStore = NickoBukkit.getInstance().getDataStore();
} }
public void openNameThenSkinAnvil() { public void openNameThenSkinAnvil() {
@ -47,6 +50,7 @@ public class AnvilManager {
return Collections.singletonList(AnvilGUI.ResponseAction.replaceInputText("Invalid username!")); return Collections.singletonList(AnvilGUI.ResponseAction.replaceInputText("Invalid username!"));
} else { } else {
appearanceManager.setName(snapshot.getText()); appearanceManager.setName(snapshot.getText());
dataStore.updateCache(player.getUniqueId(), appearanceManager.getProfile());
openSkinAnvil(); openSkinAnvil();
return Collections.singletonList(AnvilGUI.ResponseAction.close()); return Collections.singletonList(AnvilGUI.ResponseAction.close());
} }
@ -67,6 +71,7 @@ public class AnvilManager {
return Collections.singletonList(AnvilGUI.ResponseAction.replaceInputText("Invalid username!")); return Collections.singletonList(AnvilGUI.ResponseAction.replaceInputText("Invalid username!"));
} else { } else {
appearanceManager.setName(snapshot.getText()); appearanceManager.setName(snapshot.getText());
dataStore.updateCache(player.getUniqueId(), appearanceManager.getProfile());
final ActionResult actionResult = appearanceManager.updatePlayer(false, false); final ActionResult actionResult = appearanceManager.updatePlayer(false, false);
return sendResultAndClose(actionResult); return sendResultAndClose(actionResult);
} }
@ -87,6 +92,7 @@ public class AnvilManager {
return Collections.singletonList(AnvilGUI.ResponseAction.replaceInputText("Invalid username!")); return Collections.singletonList(AnvilGUI.ResponseAction.replaceInputText("Invalid username!"));
} else { } else {
appearanceManager.setSkin(snapshot.getText()); appearanceManager.setSkin(snapshot.getText());
dataStore.updateCache(player.getUniqueId(), appearanceManager.getProfile());
final ActionResult actionResult = appearanceManager.updatePlayer(true, false); final ActionResult actionResult = appearanceManager.updatePlayer(true, false);
return sendResultAndClose(actionResult); return sendResultAndClose(actionResult);
} }

View file

@ -1,4 +1,4 @@
package xyz.atnrch.nicko.profile; package xyz.atnrch.nicko.appearance;
import com.comphenix.protocol.utility.MinecraftVersion; import com.comphenix.protocol.utility.MinecraftVersion;
import com.comphenix.protocol.wrappers.*; import com.comphenix.protocol.wrappers.*;
@ -14,6 +14,7 @@ import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.i18n.Locale; import xyz.atnrch.nicko.i18n.Locale;
import xyz.atnrch.nicko.mojang.MojangAPI; import xyz.atnrch.nicko.mojang.MojangAPI;
import xyz.atnrch.nicko.mojang.MojangSkin; import xyz.atnrch.nicko.mojang.MojangSkin;
import xyz.atnrch.nicko.profile.NickoProfile;
import xyz.atnrch.nicko.storage.PlayerDataStore; import xyz.atnrch.nicko.storage.PlayerDataStore;
import xyz.atnrch.nicko.storage.name.PlayerNameStore; import xyz.atnrch.nicko.storage.name.PlayerNameStore;
import xyz.atnrch.nicko.wrapper.*; import xyz.atnrch.nicko.wrapper.*;
@ -24,7 +25,7 @@ import java.util.Optional;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
public class ProfileManager { public class AppearanceManager {
private final NickoProfile profile; private final NickoProfile profile;
private final Player player; private final Player player;
private final UUID uuid; private final UUID uuid;
@ -32,24 +33,24 @@ public class ProfileManager {
private final PlayerDataStore dataStore = instance.getDataStore(); private final PlayerDataStore dataStore = instance.getDataStore();
private final PlayerNameStore nameStore = instance.getNameStore(); private final PlayerNameStore nameStore = instance.getNameStore();
private ProfileManager(UUID uuid) { private AppearanceManager(UUID uuid) {
this.player = Bukkit.getPlayer(uuid); this.player = Bukkit.getPlayer(uuid);
this.uuid = uuid; this.uuid = uuid;
this.profile = dataStore.getData(uuid).orElse(NickoProfile.EMPTY_PROFILE.clone()); this.profile = dataStore.getData(uuid).orElse(NickoProfile.EMPTY_PROFILE.clone());
} }
private ProfileManager(String name) { private AppearanceManager(String name) {
this.player = null; this.player = null;
this.uuid = null; this.uuid = null;
this.profile = dataStore.getOfflineData(name).orElse(NickoProfile.EMPTY_PROFILE.clone()); this.profile = dataStore.getOfflineData(name).orElse(NickoProfile.EMPTY_PROFILE.clone());
} }
public static ProfileManager get(Player player) { public static AppearanceManager get(Player player) {
return new ProfileManager(player.getUniqueId()); return new AppearanceManager(player.getUniqueId());
} }
public static ProfileManager get(String name) { public static AppearanceManager get(String name) {
return new ProfileManager(name); return new AppearanceManager(name);
} }
public boolean hasData() { public boolean hasData() {

View file

@ -1,7 +1,7 @@
package xyz.atnrch.nicko.gui.items.settings; package xyz.atnrch.nicko.gui.items.settings;
import xyz.atnrch.nicko.NickoBukkit; import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View file

@ -1,11 +1,14 @@
package xyz.atnrch.nicko.gui.items.settings; package xyz.atnrch.nicko.gui.items.settings;
import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.appearance.NickoProfile;
import xyz.atnrch.nicko.i18n.Locale;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.i18n.Locale;
import xyz.atnrch.nicko.profile.NickoProfile;
import xyz.atnrch.nicko.storage.PlayerDataStore;
import xyz.xenondevs.invui.item.ItemProvider; import xyz.xenondevs.invui.item.ItemProvider;
import xyz.xenondevs.invui.item.builder.ItemBuilder; import xyz.xenondevs.invui.item.builder.ItemBuilder;
import xyz.xenondevs.invui.item.impl.AbstractItem; import xyz.xenondevs.invui.item.impl.AbstractItem;
@ -21,13 +24,19 @@ public class LanguageCyclingItem {
private final ItemProvider[] providers = getItems(); private final ItemProvider[] providers = getItems();
public AbstractItem get(Player player) { public AbstractItem get(Player player) {
final Optional<NickoProfile> profile = NickoBukkit.getInstance().getDataStore().getData(player.getUniqueId()); final PlayerDataStore dataStore = NickoBukkit.getInstance().getDataStore();
final Optional<NickoProfile> profile = dataStore.getData(player.getUniqueId());
if (profile.isPresent()) { if (profile.isPresent()) {
final NickoProfile nickoProfile = profile.get(); final NickoProfile nickoProfile = profile.get();
int localeOrdinal = nickoProfile.getLocale().ordinal(); int localeOrdinal = nickoProfile.getLocale().ordinal();
return CycleItem.withStateChangeHandler((observer, integer) -> { return CycleItem.withStateChangeHandler((observer, integer) -> {
nickoProfile.setLocale(Locale.values()[integer]); nickoProfile.setLocale(Locale.values()[integer]);
observer.playSound(player, Sound.UI_BUTTON_CLICK, 1f, 0.707107f); // 0.707107 ~= C observer.playSound(player, Sound.UI_BUTTON_CLICK, 1f, 0.707107f); // 0.707107 ~= C
if (dataStore.updateCache(player.getUniqueId(), nickoProfile).isError()) {
final I18N i18n = new I18N(player);
player.sendMessage(i18n.translate(I18NDict.Event.Settings.ERROR));
player.getOpenInventory().close();
}
}, localeOrdinal, providers); }, localeOrdinal, providers);
} }

View file

@ -1,13 +1,12 @@
package xyz.atnrch.nicko.i18n; package xyz.atnrch.nicko.i18n;
import com.github.jsixface.YamlConfig; import com.github.jsixface.YamlConfig;
import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.appearance.NickoProfile;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.appearance.AppearanceManager;
import java.io.InputStream; import java.io.InputStream;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.Optional;
public class I18N { public class I18N {
private final MessageFormat formatter = new MessageFormat(""); private final MessageFormat formatter = new MessageFormat("");
@ -56,8 +55,8 @@ public class I18N {
private Locale getPlayerLocale() { private Locale getPlayerLocale() {
try { try {
final Optional<NickoProfile> profile = instance.getDataStore().getData(player.getUniqueId()); final AppearanceManager appearanceManager = AppearanceManager.get(player);
return !profile.isPresent() ? Locale.FALLBACK_LOCALE : profile.get().getLocale(); return !appearanceManager.hasData() ? Locale.FALLBACK_LOCALE : appearanceManager.getLocale();
} catch (IllegalArgumentException exception) { } catch (IllegalArgumentException exception) {
instance.getLogger().severe("Invalid locale provided by " + player.getName() + ", defaulting to " + Locale.FALLBACK_LOCALE.getCode() + "."); instance.getLogger().severe("Invalid locale provided by " + player.getName() + ", defaulting to " + Locale.FALLBACK_LOCALE.getCode() + ".");
return Locale.FALLBACK_LOCALE; return Locale.FALLBACK_LOCALE;

View file

@ -2,13 +2,13 @@ package xyz.atnrch.nicko.i18n;
public class I18NDict { public class I18NDict {
public static class Event { public static class Event {
public static final String EVENT_KEY = "event."; private static final String EVENT_KEY = "event.";
public static class Admin { public static class Admin {
public static final String ADMIN_KEY = EVENT_KEY + "admin."; private static final String ADMIN_KEY = EVENT_KEY + "admin.";
public static class Cache { public static class Cache {
public static final String CACHE_KEY = ADMIN_KEY + "cache."; private static final String CACHE_KEY = ADMIN_KEY + "cache.";
public static final String INVALIDATE_CACHE = CACHE_KEY + "invalidate_cache"; public static final String INVALIDATE_CACHE = CACHE_KEY + "invalidate_cache";
public static final String INVALIDATE_ENTRY = CACHE_KEY + "invalidate_entry"; public static final String INVALIDATE_ENTRY = CACHE_KEY + "invalidate_entry";
@ -16,8 +16,14 @@ public class I18NDict {
} }
} }
public static class Settings {
private static final String SETTINGS_KEY = EVENT_KEY + "settings.";
public static final String ERROR = SETTINGS_KEY + "error";
}
public static class Appearance { public static class Appearance {
public static final String APPEARANCE_KEY = EVENT_KEY + "appearance."; private static final String APPEARANCE_KEY = EVENT_KEY + "appearance.";
public static class Set { public static class Set {
public static final String SET_KEY = APPEARANCE_KEY + "set."; public static final String SET_KEY = APPEARANCE_KEY + "set.";
@ -27,7 +33,7 @@ public class I18NDict {
} }
public static class Remove { public static class Remove {
public static final String REMOVE_KEY = APPEARANCE_KEY + "remove."; private static final String REMOVE_KEY = APPEARANCE_KEY + "remove.";
public static final String OK = REMOVE_KEY + "ok"; public static final String OK = REMOVE_KEY + "ok";
public static final String MISSING = REMOVE_KEY + "missing"; public static final String MISSING = REMOVE_KEY + "missing";
@ -35,7 +41,7 @@ public class I18NDict {
} }
public static class Restore { public static class Restore {
public static final String RESTORE_KEY = APPEARANCE_KEY + "restore."; private static final String RESTORE_KEY = APPEARANCE_KEY + "restore.";
public static final String OK = RESTORE_KEY + "ok"; public static final String OK = RESTORE_KEY + "ok";
public static final String ERROR = RESTORE_KEY + "error"; public static final String ERROR = RESTORE_KEY + "error";
@ -46,7 +52,6 @@ public class I18NDict {
public static class Error { public static class Error {
public static final String GENERIC = "error.generic"; public static final String GENERIC = "error.generic";
public static final String PERMISSION = "error.permission"; public static final String PERMISSION = "error.permission";
public static final String PLAYER_OFFLINE = "error.offline";
public static final String CACHE = "error.cache"; public static final String CACHE = "error.cache";
public static final String MOJANG_NAME = "error.mojang_name"; public static final String MOJANG_NAME = "error.mojang_name";
public static final String MOJANG_SKIN = "error.mojang_skin"; public static final String MOJANG_SKIN = "error.mojang_skin";

View file

@ -1,11 +1,11 @@
package xyz.atnrch.nicko.placeholder; package xyz.atnrch.nicko.placeholder;
import me.clip.placeholderapi.expansion.PlaceholderExpansion; import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.appearance.NickoProfile;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.profile.NickoProfile;
import java.util.Optional; import java.util.Optional;

View file

@ -1,4 +1,4 @@
package xyz.atnrch.nicko.appearance; package xyz.atnrch.nicko.profile;
import xyz.atnrch.nicko.i18n.Locale; import xyz.atnrch.nicko.i18n.Locale;

View file

@ -1,7 +1,7 @@
package xyz.atnrch.nicko.storage; package xyz.atnrch.nicko.storage;
import xyz.atnrch.nicko.appearance.ActionResult; import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;

View file

@ -3,7 +3,7 @@ package xyz.atnrch.nicko.storage;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import xyz.atnrch.nicko.config.Configuration; import xyz.atnrch.nicko.config.Configuration;
import xyz.atnrch.nicko.appearance.ActionResult; import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import xyz.atnrch.nicko.i18n.I18NDict; import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.mojang.MojangAPI; import xyz.atnrch.nicko.mojang.MojangAPI;
import xyz.atnrch.nicko.mojang.MojangUtils; import xyz.atnrch.nicko.mojang.MojangUtils;
@ -28,8 +28,17 @@ public class PlayerDataStore {
this.cache = configuration.getRedisConfiguration().isEnabled() ? new RedisCache(configuration) : new MapCache(); this.cache = configuration.getRedisConfiguration().isEnabled() ? new RedisCache(configuration) : new MapCache();
} }
public ActionResult updateCache(UUID uuid, NickoProfile profile) {
final Optional<NickoProfile> retrieved = getData(uuid);
if (retrieved.isPresent()) {
getCache().cache(uuid, profile);
return ActionResult.ok();
}
return ActionResult.error(I18NDict.Error.CACHE);
}
public Optional<NickoProfile> getData(UUID uuid) { public Optional<NickoProfile> getData(UUID uuid) {
if (storage.isError()) { if (storage.isError() || cache.isError()) {
return Optional.empty(); return Optional.empty();
} }

View file

@ -1,7 +1,7 @@
package xyz.atnrch.nicko.storage; package xyz.atnrch.nicko.storage;
import xyz.atnrch.nicko.appearance.ActionResult; import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;

View file

@ -4,7 +4,7 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import xyz.atnrch.nicko.NickoBukkit; import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.appearance.ActionResult; import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import xyz.atnrch.nicko.i18n.I18NDict; import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.storage.Storage; import xyz.atnrch.nicko.storage.Storage;
import xyz.atnrch.nicko.storage.StorageProvider; import xyz.atnrch.nicko.storage.StorageProvider;

View file

@ -1,7 +1,7 @@
package xyz.atnrch.nicko.storage.map; package xyz.atnrch.nicko.storage.map;
import xyz.atnrch.nicko.appearance.ActionResult; import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import xyz.atnrch.nicko.storage.Cache; import xyz.atnrch.nicko.storage.Cache;
import xyz.atnrch.nicko.storage.CacheProvider; import xyz.atnrch.nicko.storage.CacheProvider;

View file

@ -1,6 +1,6 @@
package xyz.atnrch.nicko.storage.map; package xyz.atnrch.nicko.storage.map;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import xyz.atnrch.nicko.storage.CacheProvider; import xyz.atnrch.nicko.storage.CacheProvider;
import java.util.HashMap; import java.util.HashMap;

View file

@ -2,7 +2,7 @@ package xyz.atnrch.nicko.storage.sql;
import xyz.atnrch.nicko.config.Configuration; import xyz.atnrch.nicko.config.Configuration;
import xyz.atnrch.nicko.appearance.ActionResult; import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import xyz.atnrch.nicko.i18n.I18NDict; import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.i18n.Locale; import xyz.atnrch.nicko.i18n.Locale;
import xyz.atnrch.nicko.storage.Storage; import xyz.atnrch.nicko.storage.Storage;

View file

@ -1,15 +1,16 @@
error: error:
generic: "Unknown error" generic: "An unknown error occurred."
permission: "§cYou do not have the required permission." permission: "§cYou do not have the required permission."
invalid_username: "§cThis is not a valid Minecraft username." invalid_username: "§cThis is not a valid Minecraft username."
mojang_name: "There is no Minecraft account with this name." mojang_name: "There is no Minecraft account with this name."
mojang_skin: "This Minecraft account has no skin." mojang_skin: "This Minecraft account has no skin."
offline: "§c{0} §fis offline!"
cache: "Unable to get skin from the cache." cache: "Unable to get skin from the cache."
sql: "SQL Error" sql: "SQL Error"
json: "JSON Error" json: "JSON Error"
event: event:
settings:
error: "§cUnable to update your settings. §7§o({0})"
appearance: appearance:
set: set:
error: "§cUnable to apply your disguise. §7§o({0})" error: "§cUnable to apply your disguise. §7§o({0})"

View file

@ -1,10 +1,9 @@
error: error:
generic: "Erreur inconnue" generic: "Une erreur inconnue c'est produite."
permission: "§cVous ne possédez pas la permission." permission: "§cVous ne possédez pas la permission."
invalid_username: "§cLe pseudo n''est pas un pseudo Minecraft valide." invalid_username: "§cLe pseudo n''est pas un pseudo Minecraft valide."
mojang_name: "Un compte Minecraft avec ce nom n'existe pas." mojang_name: "Un compte Minecraft avec ce nom n'existe pas."
mojang_skin: "Ce compte Minecraft n'a pas de skin." mojang_skin: "Ce compte Minecraft n'a pas de skin."
offline: "§c{0} §fest hors-ligne!"
cache: "Impossible de récupérer le skin depuis le cache." cache: "Impossible de récupérer le skin depuis le cache."
sql: "Erreur SQL" sql: "Erreur SQL"
json: "Erreur JSON" json: "Erreur JSON"

View file

@ -7,7 +7,7 @@ import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.config.Configuration; import xyz.atnrch.nicko.config.Configuration;
import xyz.atnrch.nicko.config.DataSourceConfiguration; import xyz.atnrch.nicko.config.DataSourceConfiguration;
import xyz.atnrch.nicko.appearance.ActionResult; import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import org.junit.jupiter.api.*; import org.junit.jupiter.api.*;
import java.util.Optional; import java.util.Optional;

View file

@ -8,7 +8,7 @@ import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.config.Configuration; import xyz.atnrch.nicko.config.Configuration;
import xyz.atnrch.nicko.config.DataSourceConfiguration; import xyz.atnrch.nicko.config.DataSourceConfiguration;
import xyz.atnrch.nicko.appearance.ActionResult; import xyz.atnrch.nicko.appearance.ActionResult;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import xyz.atnrch.nicko.i18n.Locale; import xyz.atnrch.nicko.i18n.Locale;
import java.util.Optional; import java.util.Optional;

View file

@ -6,7 +6,7 @@ import be.seeseemelk.mockbukkit.entity.PlayerMock;
import xyz.atnrch.nicko.NickoBukkit; import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.config.Configuration; import xyz.atnrch.nicko.config.Configuration;
import xyz.atnrch.nicko.config.DataSourceConfiguration; import xyz.atnrch.nicko.config.DataSourceConfiguration;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;

View file

@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test;
import xyz.atnrch.nicko.NickoBukkit; import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.config.Configuration; import xyz.atnrch.nicko.config.Configuration;
import xyz.atnrch.nicko.config.DataSourceConfiguration; import xyz.atnrch.nicko.config.DataSourceConfiguration;
import xyz.atnrch.nicko.appearance.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import java.util.Optional; import java.util.Optional;