feat(mappings): start mapping rework
This commit is contained in:
parent
144245fc5a
commit
b7be5ad54e
108 changed files with 293 additions and 1568 deletions
|
@ -8,6 +8,11 @@
|
|||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/api" />
|
||||
<option value="$PROJECT_DIR$/common" />
|
||||
<option value="$PROJECT_DIR$/mappings" />
|
||||
<option value="$PROJECT_DIR$/mappings/v1_20" />
|
||||
<option value="$PROJECT_DIR$/v1_20" />
|
||||
</set>
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
|
|
11
api/build.gradle.kts
Normal file
11
api/build.gradle.kts
Normal file
|
@ -0,0 +1,11 @@
|
|||
plugins {
|
||||
id("java")
|
||||
}
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
}
|
||||
}
|
4
api/src/main/java/xyz/ineanto/nicko/api/NickoAPI.java
Normal file
4
api/src/main/java/xyz/ineanto/nicko/api/NickoAPI.java
Normal file
|
@ -0,0 +1,4 @@
|
|||
package xyz.ineanto.nicko.api;
|
||||
|
||||
public class NickoAPI {
|
||||
}
|
130
build.gradle.kts
130
build.gradle.kts
|
@ -1,12 +1,8 @@
|
|||
plugins {
|
||||
id("java")
|
||||
id("io.github.goooler.shadow") version "8.1.7"
|
||||
id("xyz.jpenilla.run-paper") version "2.3.0"
|
||||
}
|
||||
|
||||
group = "xyz.ineanto"
|
||||
version = "1.1.8"
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
|
@ -15,127 +11,7 @@ java {
|
|||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
maven { url = uri("https://jitpack.io") }
|
||||
maven {
|
||||
name = "xenondevs"
|
||||
url = uri("https://repo.xenondevs.xyz/releases")
|
||||
}
|
||||
maven {
|
||||
name = "papermc"
|
||||
url = uri("https://repo.papermc.io/repository/maven-public/")
|
||||
}
|
||||
maven {
|
||||
name = "codemc"
|
||||
url = uri("https://repo.codemc.io/repository/maven-snapshots/")
|
||||
}
|
||||
maven {
|
||||
name = "placeholderapi"
|
||||
url = uri("https://repo.extendedclip.com/content/repositories/placeholderapi/")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Nicko
|
||||
compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT")
|
||||
compileOnly("com.github.dmulloy2:ProtocolLib:master-SNAPSHOT")
|
||||
compileOnly("me.clip:placeholderapi:2.11.5")
|
||||
compileOnly("net.kyori:adventure-api:4.17.0")
|
||||
|
||||
implementation("xyz.xenondevs.invui:invui:1.35")
|
||||
implementation("net.wesjd:anvilgui:1.10.1-SNAPSHOT")
|
||||
implementation("com.github.jsixface:yamlconfig:1.2")
|
||||
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2")
|
||||
implementation("com.fasterxml.jackson.core:jackson-core:2.15.2")
|
||||
implementation("com.mysql:mysql-connector-j:8.2.0")
|
||||
implementation("org.mariadb.jdbc:mariadb-java-client:3.3.1")
|
||||
implementation("redis.clients:jedis:5.1.2")
|
||||
implementation("com.google.code.gson:gson:2.10.1")
|
||||
implementation("org.bstats:bstats-bukkit:3.0.2")
|
||||
|
||||
testImplementation("com.github.MockBukkit:MockBukkit:v3.99.1")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter-engine:5.10.2")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
}
|
||||
|
||||
tasks {
|
||||
processResources {
|
||||
from("src/main/resources")
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
filesMatching("*.yml") {
|
||||
expand("version" to version)
|
||||
}
|
||||
}
|
||||
|
||||
shadowJar {
|
||||
// NAMING
|
||||
archiveBaseName.set("nicko")
|
||||
archiveVersion.set(version.toString())
|
||||
archiveAppendix.set("")
|
||||
archiveClassifier.set("")
|
||||
|
||||
// RELOCATIONS
|
||||
relocate("xyz.xenondevs", "xyz.ineanto.nicko.libs.invui")
|
||||
relocate("me.clip", "xyz.ineanto.nicko.libs.placeholderapi")
|
||||
relocate("net.wesjd", "xyz.ineanto.nicko.libs.anvilgui")
|
||||
relocate("com.github.jsixface", "xyz.ineanto.nicko.libs.yaml")
|
||||
relocate("com.fasterxml.jackson.dataformat", "xyz.ineanto.nicko.libs.jackson.yaml")
|
||||
relocate("com.fasterxml.jackson.core", "xyz.ineanto.nicko.libs.jackson.core")
|
||||
relocate("com.mysql", "xyz.ineanto.nicko.libs.mysql")
|
||||
relocate("org.mariadb.jdbc", "xyz.ineanto.nicko.libs.mariadb")
|
||||
relocate("redis.clients", "xyz.ineanto.nicko.libs.redis")
|
||||
relocate("com.google.gson", "xyz.ineanto.nicko.libs.gson")
|
||||
relocate("org.apache.commons.pool2", "xyz.ineanto.nicko.libs.pool2")
|
||||
relocate("org.bstats", "xyz.ineanto.nicko.libs.bstats")
|
||||
|
||||
// EXCLUSIONS
|
||||
exclude("colors.bin")
|
||||
exclude("waffle/**")
|
||||
exclude("com/sun/**")
|
||||
exclude("com/google/protobuf/**")
|
||||
exclude("com/google/errorprone/**")
|
||||
exclude("org/apache/commons/logging/**")
|
||||
exclude("org/jetbrains/**")
|
||||
exclude("org/intellij/**")
|
||||
exclude("org/checkerframework/**")
|
||||
exclude("org/json/**")
|
||||
exclude("org/slf4j/**")
|
||||
exclude("org/yaml/**")
|
||||
exclude("google/protobuf/**")
|
||||
exclude("net/kyori/**")
|
||||
|
||||
// MINIFY
|
||||
minimize {
|
||||
exclude(dependency("xyz.xenondevs.invui:.*"))
|
||||
exclude(dependency("net.wesjd:.*"))
|
||||
exclude(dependency("org.bstats:.*"))
|
||||
}
|
||||
}
|
||||
|
||||
jar {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
runServer {
|
||||
dependsOn(shadowJar)
|
||||
|
||||
downloadPlugins {
|
||||
url("https://download.luckperms.net/1554/bukkit/loader/LuckPerms-Bukkit-5.4.139.jar")
|
||||
|
||||
// 1.20 - 1.20.4 testing
|
||||
//url("https://github.com/dmulloy2/ProtocolLib/releases/download/5.2.0/ProtocolLib.jar")
|
||||
|
||||
// 1.20.5 - latest testing
|
||||
url("https://ci.dmulloy2.net/job/ProtocolLib/lastSuccessfulBuild/artifact/build/libs/ProtocolLib.jar")
|
||||
}
|
||||
|
||||
minecraftVersion("1.21.1")
|
||||
}
|
||||
allprojects {
|
||||
group = "xyz.ineanto.nicko"
|
||||
version = "1.2.0"
|
||||
}
|
108
common/build.gradle.kts
Normal file
108
common/build.gradle.kts
Normal file
|
@ -0,0 +1,108 @@
|
|||
plugins {
|
||||
id("java")
|
||||
id("xyz.jpenilla.run-paper") version "2.3.0"
|
||||
id("io.github.goooler.shadow") version "8.1.7"
|
||||
}
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT")
|
||||
compileOnly("com.github.dmulloy2:ProtocolLib:master-SNAPSHOT")
|
||||
compileOnly("me.clip:placeholderapi:2.11.5")
|
||||
compileOnly("net.kyori:adventure-api:4.17.0")
|
||||
|
||||
rootProject.subprojects.forEach {
|
||||
if (!it.name.startsWith("v")) return@forEach
|
||||
|
||||
compileOnly(project(":mappings:${it.name}"))
|
||||
}
|
||||
|
||||
implementation("xyz.xenondevs.invui:invui:1.35")
|
||||
implementation("net.wesjd:anvilgui:1.10.1-SNAPSHOT")
|
||||
implementation("com.github.jsixface:yamlconfig:1.2")
|
||||
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2")
|
||||
implementation("com.fasterxml.jackson.core:jackson-core:2.15.2")
|
||||
implementation("com.mysql:mysql-connector-j:8.2.0")
|
||||
implementation("org.mariadb.jdbc:mariadb-java-client:3.3.1")
|
||||
implementation("redis.clients:jedis:5.1.2")
|
||||
implementation("com.google.code.gson:gson:2.10.1")
|
||||
implementation("org.bstats:bstats-bukkit:3.0.2")
|
||||
}
|
||||
|
||||
tasks {
|
||||
processResources {
|
||||
from("src/main/resources")
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
filesMatching("*.yml") {
|
||||
expand("version" to version)
|
||||
}
|
||||
}
|
||||
|
||||
shadowJar {
|
||||
// NAMING
|
||||
archiveBaseName.set("nicko")
|
||||
archiveVersion.set(version.toString())
|
||||
archiveAppendix.set("")
|
||||
archiveClassifier.set("")
|
||||
|
||||
// RELOCATIONS
|
||||
relocate("xyz.xenondevs", "xyz.ineanto.nicko.libs.invui")
|
||||
relocate("me.clip", "xyz.ineanto.nicko.libs.placeholderapi")
|
||||
relocate("net.wesjd", "xyz.ineanto.nicko.libs.anvilgui")
|
||||
relocate("com.github.jsixface", "xyz.ineanto.nicko.libs.yaml")
|
||||
relocate("com.fasterxml.jackson.dataformat", "xyz.ineanto.nicko.libs.jackson.yaml")
|
||||
relocate("com.fasterxml.jackson.core", "xyz.ineanto.nicko.libs.jackson.core")
|
||||
relocate("com.mysql", "xyz.ineanto.nicko.libs.mysql")
|
||||
relocate("org.mariadb.jdbc", "xyz.ineanto.nicko.libs.mariadb")
|
||||
relocate("redis.clients", "xyz.ineanto.nicko.libs.redis")
|
||||
relocate("com.google.gson", "xyz.ineanto.nicko.libs.gson")
|
||||
relocate("org.apache.commons.pool2", "xyz.ineanto.nicko.libs.pool2")
|
||||
relocate("org.bstats", "xyz.ineanto.nicko.libs.bstats")
|
||||
|
||||
// EXCLUSIONS
|
||||
exclude("colors.bin")
|
||||
exclude("waffle/**")
|
||||
exclude("com/sun/**")
|
||||
exclude("com/google/protobuf/**")
|
||||
exclude("com/google/errorprone/**")
|
||||
exclude("org/apache/commons/logging/**")
|
||||
exclude("org/jetbrains/**")
|
||||
exclude("org/intellij/**")
|
||||
exclude("org/checkerframework/**")
|
||||
exclude("org/json/**")
|
||||
exclude("org/slf4j/**")
|
||||
exclude("org/yaml/**")
|
||||
exclude("google/protobuf/**")
|
||||
exclude("net/kyori/**")
|
||||
|
||||
// MINIFY
|
||||
minimize {
|
||||
exclude(dependency("xyz.xenondevs.invui:.*"))
|
||||
exclude(dependency("net.wesjd:.*"))
|
||||
exclude(dependency("org.bstats:.*"))
|
||||
}
|
||||
}
|
||||
|
||||
runServer {
|
||||
dependsOn(shadowJar)
|
||||
|
||||
downloadPlugins {
|
||||
url("https://download.luckperms.net/1554/bukkit/loader/LuckPerms-Bukkit-5.4.139.jar")
|
||||
|
||||
// 1.20 - 1.20.4 testing
|
||||
//url("https://github.com/dmulloy2/ProtocolLib/releases/download/5.2.0/ProtocolLib.jar")
|
||||
|
||||
// 1.20.5 - latest testing
|
||||
url("https://ci.dmulloy2.net/job/ProtocolLib/lastSuccessfulBuild/artifact/build/libs/ProtocolLib.jar")
|
||||
}
|
||||
|
||||
minecraftVersion("1.21.1")
|
||||
}
|
||||
}
|
18
common/src/main/java/xyz/ineanto/nicko/mapping/Mapping.java
Normal file
18
common/src/main/java/xyz/ineanto/nicko/mapping/Mapping.java
Normal file
|
@ -0,0 +1,18 @@
|
|||
package xyz.ineanto.nicko.mapping;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import xyz.ineanto.nicko.Nicko;
|
||||
import xyz.ineanto.nicko.storage.PlayerDataStore;
|
||||
import xyz.ineanto.nicko.storage.name.PlayerNameStore;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public abstract class Mapping {
|
||||
private final Nicko instance = Nicko.getInstance();
|
||||
private final PlayerDataStore dataStore = instance.getDataStore();
|
||||
private final PlayerNameStore nameStore = instance.getNameStore();
|
||||
|
||||
public abstract void respawn(Player player);
|
||||
|
||||
public abstract Set<String> supportedVersions();
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package xyz.ineanto.nicko.mapping;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
import xyz.ineanto.nicko.mapping.v1_20.Mapping1_20;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public class MappingManager {
|
||||
private final List<Mapping> mappings = List.of(
|
||||
new Mapping1_20()
|
||||
);
|
||||
|
||||
public Optional<Mapping> getMappingFor(Server server) {
|
||||
return mappings.stream()
|
||||
.filter(mapping -> mapping.supportedVersions().contains(Bukkit.getMinecraftVersion()))
|
||||
.findFirst();
|
||||
}
|
||||
}
|
9
mappings/v1_20/build.gradle.kts
Normal file
9
mappings/v1_20/build.gradle.kts
Normal file
|
@ -0,0 +1,9 @@
|
|||
plugins {
|
||||
id("java")
|
||||
id("io.papermc.paperweight.userdev") version "1.7.2"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
paperweight.paperDevBundle("1.20-R0.1-SNAPSHOT")
|
||||
implementation(project(":common"))
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
package xyz.ineanto.nicko.mapping.v1_20;
|
||||
|
||||
import net.minecraft.network.protocol.game.ClientboundPlayerInfoRemovePacket;
|
||||
import net.minecraft.network.protocol.game.ClientboundPlayerInfoUpdatePacket;
|
||||
import net.minecraft.network.protocol.game.ClientboundRespawnPacket;
|
||||
import net.minecraft.network.protocol.game.ClientboundUpdateMobEffectPacket;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.level.ServerPlayerGameMode;
|
||||
import net.minecraft.server.players.PlayerList;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.level.biome.BiomeManager;
|
||||
import org.bukkit.entity.Player;
|
||||
import xyz.ineanto.nicko.mapping.Mapping;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class Mapping1_20 extends Mapping {
|
||||
@Override
|
||||
public void respawn(Player player) {
|
||||
final ServerPlayer entityPlayer = (ServerPlayer) player;
|
||||
|
||||
final ServerLevel world = entityPlayer.serverLevel();
|
||||
final ServerPlayerGameMode gameMode = entityPlayer.gameMode;
|
||||
|
||||
// Really Mojang...? (also applies to Bukkit/Spigot maintainers)
|
||||
// I'll have to do this everytime I want to update Nicko for the foreseeable future.
|
||||
// (until ProtocolLib has reworked its API to be more maintainable that said)
|
||||
|
||||
// I already when through this hassle with NickReloaded back in 2017,
|
||||
// when mappings were not included by default, mind you.
|
||||
|
||||
// I had to rework the entire project structure and build process just for... you.
|
||||
|
||||
// I can't be bothered with fighting your game anymore.
|
||||
// We need an easy and reliable way to send packets across multiple server versions.
|
||||
// And I know that this is easier said than done, the game protocol needs
|
||||
// to evolve and be updated, I get it. But I think you can at least try.
|
||||
|
||||
// You made a step forward by providing the mappings for Java, this I can agree with.
|
||||
// (and still stripped them from Bedrock against community feedback, haha f*ck you.)
|
||||
// However, we still need a stable and reliable Packet API (and so much more!) one day.
|
||||
|
||||
final ClientboundRespawnPacket respawn = new ClientboundRespawnPacket(
|
||||
world.dimensionTypeId(),
|
||||
world.dimension(),
|
||||
BiomeManager.obfuscateSeed(world.getSeed()),
|
||||
gameMode.getGameModeForPlayer(),
|
||||
gameMode.getPreviousGameModeForPlayer(),
|
||||
world.isDebug(),
|
||||
world.isFlat(),
|
||||
ClientboundRespawnPacket.KEEP_ALL_DATA,
|
||||
entityPlayer.getLastDeathLocation(),
|
||||
entityPlayer.getPortalCooldown()
|
||||
);
|
||||
|
||||
entityPlayer.connection.send(new ClientboundPlayerInfoRemovePacket(List.of(player.getUniqueId())));
|
||||
entityPlayer.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityPlayer)));
|
||||
|
||||
entityPlayer.connection.send(respawn);
|
||||
|
||||
entityPlayer.onUpdateAbilities();
|
||||
entityPlayer.connection.teleport(player.getLocation());
|
||||
|
||||
entityPlayer.resetSentInfo();
|
||||
|
||||
final PlayerList playerList = entityPlayer.server.getPlayerList();
|
||||
playerList.sendPlayerPermissionLevel(entityPlayer);
|
||||
playerList.sendLevelInfo(entityPlayer, world);
|
||||
playerList.sendAllPlayerInfo(entityPlayer);
|
||||
|
||||
// Resend their effects
|
||||
for (MobEffectInstance effect : entityPlayer.getActiveEffects()) {
|
||||
entityPlayer.connection.send(new ClientboundUpdateMobEffectPacket(entityPlayer.getId(), effect));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> supportedVersions() {
|
||||
return Set.of("1.20", "1.20.1");
|
||||
}
|
||||
}
|
|
@ -1,2 +1,34 @@
|
|||
rootProject.name = "nicko"
|
||||
|
||||
setOf(
|
||||
"1_20"
|
||||
).forEach {
|
||||
include("mappings:v$it")
|
||||
}
|
||||
|
||||
include("common", "api")
|
||||
|
||||
dependencyResolutionManagement {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
maven { url = uri("https://jitpack.io") }
|
||||
maven {
|
||||
name = "xenondevs"
|
||||
url = uri("https://repo.xenondevs.xyz/releases")
|
||||
}
|
||||
maven {
|
||||
name = "papermc"
|
||||
url = uri("https://repo.papermc.io/repository/maven-public/")
|
||||
}
|
||||
maven {
|
||||
name = "codemc"
|
||||
url = uri("https://repo.codemc.io/repository/maven-snapshots/")
|
||||
}
|
||||
maven {
|
||||
name = "placeholderapi"
|
||||
url = uri("https://repo.extendedclip.com/content/repositories/placeholderapi/")
|
||||
}
|
||||
}
|
||||
}
|
||||
include("v1_20")
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
# Nicko ${version} - Config:
|
||||
|
||||
# Specifies the configuration version, don't change.
|
||||
version: "1.0.9"
|
||||
|
||||
#
|
||||
# Language
|
||||
#
|
||||
|
||||
# Nicko will copy the English locale as "lang.yml"
|
||||
# and will use the translations in that file when "Server Custom"
|
||||
# is selected as the player's locale.
|
||||
# Accepted values: false (Disabled), true (Enabled)
|
||||
customLocale: false
|
||||
|
||||
#
|
||||
# Storage
|
||||
#
|
||||
|
||||
sql:
|
||||
# Indicates wherever the data will be stored locally
|
||||
# inside a .json file or in an SQL database.
|
||||
# Accepted values: false (Disabled), true (Enabled)
|
||||
enabled: false
|
||||
# Toggles between the MariaDB and MySQL drivers.
|
||||
# If you use the MySQL database engine, switch this to off.
|
||||
# Accepted values: false (Disabled), true (Enabled)
|
||||
mariadb: true
|
||||
# SQL database's address
|
||||
# Accepted values: valid IP address (e.g. localhost, 127.0.0.1)
|
||||
address: "localhost"
|
||||
# SQL database's port
|
||||
# Accepted values: valid integer (e.g. 3306, 25565)
|
||||
port: 3306
|
||||
# SQL database's username.
|
||||
# Accepted values: any string
|
||||
username: "username"
|
||||
# SQL database's password.
|
||||
# Accepted values: any string
|
||||
password: "password"
|
||||
|
||||
# This configuration section manages Redis (enabled BungeeCord support).
|
||||
# It is used to transfer data between multiple servers.
|
||||
redis:
|
||||
# Indicates wherever the data will be stored through
|
||||
# Redis to transfer whenever a player switches server.
|
||||
# Accepted values: false (Disabled), true (Enabled)
|
||||
enabled: false
|
||||
# Redis server's address
|
||||
# Accepted values: valid IP address (e.g.: localhost, 127.0.0.1)
|
||||
address: "localhost"
|
||||
# Redis server's port
|
||||
# Accepted values: valid integer (e.g. 3306, 25565)
|
||||
port: 6379
|
||||
# Redis server's username
|
||||
# Accepted values: any string
|
||||
username: "username"
|
||||
# Redis server's password
|
||||
# Accepted values: any string
|
||||
password: "password"
|
|
@ -1,153 +0,0 @@
|
|||
# Nicko ${version} - Language File:
|
||||
|
||||
# Specifies the configuration version, don't change.
|
||||
version: "1.1.4"
|
||||
|
||||
prefix: "<b><gradient:#01a97c:#8ffd54>NICKO</gradient></b>"
|
||||
whoosh: "<b><gradient:#01a97c:#8ffd54>WHOOSH!</gradient></b>"
|
||||
oops: "<b><color:#ff4640>OOPS!</color></b>"
|
||||
|
||||
error:
|
||||
permission: "<gray>You're missing the permission to do that.</gray>"
|
||||
invalid_username: "<gray>This is an invalid Minecraft username.</gray>"
|
||||
mojang_name: "<gray>There's is not Minecraft account with this username.</gray>"
|
||||
mojang_skin: "<gray>This Minecraft account has no skin.</gray>"
|
||||
cache: "<gray>Unable to get data from the cache.</gray>"
|
||||
|
||||
event:
|
||||
settings:
|
||||
error: "<gray>Wasn''t able to update your settings! ({0})</gray>"
|
||||
appearance:
|
||||
set:
|
||||
error: "<gray>Wasn''t able to apply your disguise! ({0})</gray>"
|
||||
ok: "<gray>You're now disguised.</gray>"
|
||||
restore:
|
||||
error: "<gray>Wasn''t able to apply the previous disguise! ({0})</gray>"
|
||||
ok: "<gray>Disguise restored from last time.</gray>"
|
||||
remove:
|
||||
error: "<gray>Wasn''t able to remove your disguise!.</gray>"
|
||||
missing: "<gray>You''re not currently disguised.</gray>"
|
||||
ok: "<gray>Undisguised successfully.</gray>"
|
||||
admin:
|
||||
cache:
|
||||
invalidate_cache: "<gray>Cache purged.</gray>"
|
||||
invalidate_entry: "<gray>{0} was purged.</gray>"
|
||||
check:
|
||||
remove_skin: "<gray>Skin removed from player.</gray>"
|
||||
|
||||
gui:
|
||||
title:
|
||||
home: "Nicko - Home"
|
||||
settings: "Settings"
|
||||
admin: "Administration"
|
||||
check: "Player Management"
|
||||
confirm: "Are you sure?"
|
||||
cache: "Cache Management"
|
||||
invalidate_skin: "Purge cache..."
|
||||
|
||||
exit:
|
||||
name: "Exit"
|
||||
go_back:
|
||||
name: "Back"
|
||||
unavailable:
|
||||
name: "Unavailable"
|
||||
lore:
|
||||
- "<gray><i>This button is disabled.</i></gray>"
|
||||
error:
|
||||
name: "Error!"
|
||||
lore:
|
||||
- "<gray>The item failed to load, but it might still work.</gray>"
|
||||
loading:
|
||||
name: "<gray><i>Loading...</i></gray>"
|
||||
choice:
|
||||
confirm:
|
||||
name: "<green>Confirm</green>"
|
||||
choose:
|
||||
name: "<gold><i>Choose an option...</i></gold>"
|
||||
cancel:
|
||||
name: "<red>Cancel</red>"
|
||||
scroll_up:
|
||||
name: "Scroll up"
|
||||
lore:
|
||||
- "<dark_gray><i>(You can't scroll any higher.)</i></dark_gray>"
|
||||
scroll_down:
|
||||
name: "Scroll down"
|
||||
lore:
|
||||
- "<dark_gray><i>(You can't scroll any further down.)</i></dark_gray>"
|
||||
new_skin:
|
||||
name: "New skin..."
|
||||
new_name:
|
||||
name: "New name..."
|
||||
home:
|
||||
admin:
|
||||
name: "Administration panel"
|
||||
lore:
|
||||
- "<gray>Configure and manage Nicko.</gray>"
|
||||
settings:
|
||||
name: "Settings"
|
||||
lore:
|
||||
- "<gray>Fine tune your experience with Nicko.</gray>"
|
||||
change_name:
|
||||
name: "Change your <gold>nickname</gold>"
|
||||
change_skin:
|
||||
name: "Change your <gold>skin</gold>"
|
||||
change_both:
|
||||
name: "Change <gold>both</gold>"
|
||||
random_skin:
|
||||
name: "<rainbow>Get a random appearance!</rainbow>"
|
||||
reset:
|
||||
name: "Reset appearance"
|
||||
lore:
|
||||
- "<gray>Completely remove your disguise.</gray>"
|
||||
admin:
|
||||
manage_cache:
|
||||
name: "Manage the <gold>skin</gold> cache..."
|
||||
lore:
|
||||
- "<gray>View and manage the skin cache.</gray>"
|
||||
manage_player:
|
||||
name: "Inspect a player..."
|
||||
lore:
|
||||
- "<gray>See players' disguise information.</gray>"
|
||||
check:
|
||||
name: "<gold>{0}</gold>"
|
||||
lore:
|
||||
- "<red>Nicked:</red> {1}"
|
||||
- "<red>Name:</red> <gold>{2}</gold>"
|
||||
- "<red>Skin:</red> <gold>{3}</gold>"
|
||||
- " "
|
||||
- "<gray><i>Click to remove skin!</i></gray>"
|
||||
cache:
|
||||
statistics:
|
||||
name: "Statistics"
|
||||
lore:
|
||||
- "Request count: <aqua>{0}</aqua>"
|
||||
- "Number of skin cached: <aqua>{1}</aqua>"
|
||||
- "<dark_gray><i>Cache is cleared every 24 hours.</i></dark_gray>"
|
||||
invalidate_cache:
|
||||
name: "Invalidate cache"
|
||||
lore:
|
||||
- "<red><i>NOT RECOMMENDED</i></red>"
|
||||
- "<gray>Invalidate the entirety of the skin cache.</gray>"
|
||||
- "<gray>This doesn't reset player's disguises.</gray>"
|
||||
invalidate_skin:
|
||||
name: "Invalidate a skin..."
|
||||
lore:
|
||||
- "<gray>Select a specific skin to invalidate.</gray>"
|
||||
- "<gray>Useful if a skin has been recently updated.</gray>"
|
||||
entry:
|
||||
name: "<gold>{0}</gold>"
|
||||
lore:
|
||||
- "<gray>Click to invalidate...</gray>"
|
||||
settings:
|
||||
toggleable_button:
|
||||
lore:
|
||||
- "{0} Disabled"
|
||||
- "{1} Enabled"
|
||||
cycling_choices:
|
||||
lore:
|
||||
- "<gray><i>Cycle through the values</i></gray>"
|
||||
- "<gray><i>by left or right clicking.</i></gray>"
|
||||
language:
|
||||
name: "Language"
|
||||
random_skin:
|
||||
name: "Random skin on login"
|
|
@ -1,155 +0,0 @@
|
|||
# Nicko ${version} - Fichier de langue:
|
||||
|
||||
# Précise la version de la configuration, ne pas changer.
|
||||
version: "1.1.4"
|
||||
|
||||
prefix: "<b><gradient:#01a97c:#8ffd54>NICKO</gradient></b>"
|
||||
whoosh: "<b><gradient:#01a97c:#8ffd54>WHOOSH!</gradient></b>"
|
||||
oops: "<b><color:#ff4640>OOPS!</color></b>"
|
||||
|
||||
error:
|
||||
permission: "<gray>Vous n'avez pas la permission de faire cela.<gray>"
|
||||
invalid_username: "<gray>Nom d'utilisateur Minecraft invalide.<gray>"
|
||||
mojang_name: "<gray>Aucun compte Minecraft associé à ce nom d'utilisateur.<gray>"
|
||||
mojang_skin: "<gray>Ce compte Minecraft n'a pas de skin.<gray>"
|
||||
cache: "<gray>Impossible de récupérer les données depuis le cache.<gray>"
|
||||
|
||||
event:
|
||||
settings:
|
||||
error: "<gray>Impossible de mettre à jour vos paramètres ! ({0})</gray>"
|
||||
appearance:
|
||||
set:
|
||||
error: "<gray>Impossible d''appliquer votre déguisement ! ({0})</gray>"
|
||||
ok: "<gray>Déguisement appliqué avec succès.</gray>"
|
||||
restore:
|
||||
error: "<gray>Impossible d''appliquer le précédent déguisement ! ({0})</gray>"
|
||||
ok: "<gray>Votre précédent déguisement a été appliqué.<gray>"
|
||||
remove:
|
||||
error: "<gray>Impossible de retirer votre déguisement.</gray>"
|
||||
missing: "<gray>Vous n''avez pas de déguisement.</gray>"
|
||||
ok: "<gray>Déguisement retiré.</gray>"
|
||||
admin:
|
||||
cache:
|
||||
invalidate_cache: "<gray>Cache complet invalidé.</gray>"
|
||||
invalidate_entry: "<gray>{0} a été invalidé.</gray>"
|
||||
check:
|
||||
remove_skin: "<gray>Déguisement retiré au joueur.</gray>"
|
||||
|
||||
gui:
|
||||
title:
|
||||
home: "Nicko - Accueil"
|
||||
settings: "Paramètres"
|
||||
admin: "Administration"
|
||||
check: "Gestion des Joueurs"
|
||||
confirm: "Êtes-vous sûr ?"
|
||||
cache: "Gestion du Cache"
|
||||
invalidate_skin: "Purge du cache..."
|
||||
|
||||
exit:
|
||||
name: "Quitter"
|
||||
go_back:
|
||||
name: "Retour"
|
||||
unavailable:
|
||||
name: "Indisponible"
|
||||
lore:
|
||||
- "<gray><i>Ce boutton est désactivé.</i></gray>"
|
||||
error:
|
||||
name: "Erreur !"
|
||||
lore:
|
||||
- "<gray>La texture de l'objet n'a pas chargé</gray>"
|
||||
- "<gray>correctement mais il fonctionne encore.</gray>"
|
||||
loading:
|
||||
name: "<gray><i>Chargement...</i></gray>"
|
||||
choice:
|
||||
confirm:
|
||||
name: "<green>Confirmer</green>"
|
||||
choose:
|
||||
name: "<gold><i>Choisissez une option...</i></gold>"
|
||||
cancel:
|
||||
name: "<red>Annuler</red>"
|
||||
scroll_up:
|
||||
name: "Défiler vers le haut"
|
||||
lore:
|
||||
- "<dark_gray><i>(Impossible de défiler plus haut.)</i></dark_gray>"
|
||||
scroll_down:
|
||||
name: "Défiler vers le bas"
|
||||
lore:
|
||||
- "<dark_gray><i>(Impossible de défiler plus bas.)</i></dark_gray>"
|
||||
new_skin:
|
||||
name: "Nouveau skin..."
|
||||
new_name:
|
||||
name: "Nouveau nom..."
|
||||
home:
|
||||
admin:
|
||||
name: "Panel d'administration"
|
||||
lore:
|
||||
- "<gray>Configurez et gérez Nicko.</gray>"
|
||||
settings:
|
||||
name: "Paramètres"
|
||||
lore:
|
||||
- "<gray>Gérez votre expérience avec Nicko.</gray>"
|
||||
change_name:
|
||||
name: "Changer le <gold>pseudo</gold>"
|
||||
change_skin:
|
||||
name: "Changer le <gold>skin</gold>"
|
||||
change_both:
|
||||
name: "Changer les <gold>deux</gold>"
|
||||
random_skin:
|
||||
name: "<rainbow>Obtenir une apparence aléatoire !</rainbow>"
|
||||
reset:
|
||||
name: "Réinitialiser l'apparence"
|
||||
lore:
|
||||
- "<gray>Supprime complètement votre déguisement.</gray>"
|
||||
admin:
|
||||
manage_cache:
|
||||
name: "Gérer le cache de <gold>skin...</gold>"
|
||||
lore:
|
||||
- "<gray>Consultez et gérez le cache de skin.</gray>"
|
||||
manage_player:
|
||||
name: "Vérifier un joueur..."
|
||||
lore:
|
||||
- "<gray>Vérifiez les informations de déguisement d'un joueur.</gray>"
|
||||
check:
|
||||
name: "<gold>{0}</gold>"
|
||||
lore:
|
||||
- "<red>Déguisé:</red> {1}"
|
||||
- "<red>Nom:</red> <gold>{2}</gold>"
|
||||
- "<red>Skin:</red> <gold>{3}</gold>"
|
||||
- " "
|
||||
- "<gray><i>Cliquez pour retirer le skin !</i></gray>"
|
||||
cache:
|
||||
statistics:
|
||||
name: "Statistiques"
|
||||
lore:
|
||||
- "Nombre de requêtes: <aqua>{0}</aqua>"
|
||||
- "Nb. de skin dans le cache: <aqua>{1}</aqua>"
|
||||
- "<dark_gray><i>Le cache est vidé toutes les 24 heures.</i></dark_gray>"
|
||||
invalidate_cache:
|
||||
name: "Purger le cache"
|
||||
lore:
|
||||
- "<red><i>DÉCONSEILLÉ</i></red>"
|
||||
- "<gray>Purge l'entièreté du cache des skin.</gray>"
|
||||
- "<gray>Ne retire pas les déguisements des joueurs.</gray>"
|
||||
invalidate_skin:
|
||||
name: "Invalider un skin..."
|
||||
lore:
|
||||
- "<gray>Sélectionnez une apparence spécifique à</gray>"
|
||||
- "<gray>invalider. Utile dans le cas où un skin</gray>"
|
||||
- "<gray>a récemment été mis à jour.</gray>"
|
||||
entry:
|
||||
name: "<gold>{0}</gold>"
|
||||
lore:
|
||||
- "<gray>Cliquez pour invalider...</gray>"
|
||||
settings:
|
||||
toggleable_button:
|
||||
lore:
|
||||
- "{0} Désactivé"
|
||||
- "{1} Activé"
|
||||
cycling_choices:
|
||||
lore:
|
||||
- "<gray><i>Parcourez les valeurs</i></gray>"
|
||||
- "<gray><i>avec un clique gauche/droit.</i></gray>"
|
||||
language:
|
||||
name: "Langage"
|
||||
random_skin:
|
||||
name: "Apparence aléatoire à la connexion"
|
|
@ -1,490 +0,0 @@
|
|||
w4nderlost
|
||||
TooParanoids
|
||||
Der_OG_31er
|
||||
9xxDaRkShAdOwxx9
|
||||
giiiaan_
|
||||
Jqstinnn
|
||||
Tillysboy92
|
||||
AlwaysCello
|
||||
SyndrexG0D
|
||||
Peypeycake
|
||||
ThePerjurer
|
||||
Tioe
|
||||
Elternbaum
|
||||
BarkersRover_16
|
||||
pebsso
|
||||
cyrus6950
|
||||
Bigest_guy
|
||||
RV0REU
|
||||
R379
|
||||
Shetell
|
||||
_HEAPASS_
|
||||
Iamaloner21
|
||||
TheFardoxGamerHD
|
||||
Flyboi43
|
||||
Cha0smusik
|
||||
kat00
|
||||
Infreat
|
||||
Crummymoofin
|
||||
MijnVriend
|
||||
momsrightkidney
|
||||
dmacrado
|
||||
Elephantman321
|
||||
ii_hamoudi_YT
|
||||
FaurePavane
|
||||
ambiezzz
|
||||
XD_Bandit695_XD
|
||||
Nabingo
|
||||
Cyl0re
|
||||
ku5
|
||||
SrAragon
|
||||
StarlightDream9
|
||||
CJ5370
|
||||
rainbees
|
||||
KeroTheWolf
|
||||
Andrews9722
|
||||
cursed_Assyrian
|
||||
yamateni
|
||||
ProgramEXE
|
||||
exprso
|
||||
harrypanda
|
||||
LookerMD
|
||||
migykins
|
||||
Wintrous
|
||||
ZzGaBi
|
||||
Flayber
|
||||
Grenixal
|
||||
maeve_wells
|
||||
Creeper10fr
|
||||
10Chairs
|
||||
2525lock
|
||||
Shqipe
|
||||
XenitsuZen
|
||||
Berno17_
|
||||
wolle1313
|
||||
HalfDogHalfCat1
|
||||
NachoGarcia
|
||||
popsicoal
|
||||
NemesiSevil2006
|
||||
AnywayOj
|
||||
Tanko12345
|
||||
Samdweck
|
||||
LYRECODE123
|
||||
Resulten
|
||||
SirBastii
|
||||
Maku056
|
||||
ItzArnizzz
|
||||
Brsh3620
|
||||
Masonita
|
||||
kapplanium
|
||||
shoezo
|
||||
Mansur203
|
||||
Waterboy15217
|
||||
redragonne
|
||||
ghko325
|
||||
HopePVP_tw7
|
||||
xtka
|
||||
NimwenxZ
|
||||
Hiro0408
|
||||
PanderaWz
|
||||
Shesu
|
||||
_Aniste_NY_
|
||||
Besceste
|
||||
3ee3
|
||||
ArcticGalaxy123
|
||||
snooze_mingo
|
||||
LizzyLomnh
|
||||
FaZeChulupa
|
||||
LineZeeK
|
||||
liabilaty
|
||||
BlackSheep1610
|
||||
Simif69
|
||||
Aficionado
|
||||
riekin
|
||||
XLuggas
|
||||
MathExams
|
||||
6fq
|
||||
Marveel
|
||||
lolme51
|
||||
TaioSayUwU
|
||||
Fonklift
|
||||
blvw
|
||||
Po1204
|
||||
Pierre_Rabbit
|
||||
mifimasters
|
||||
MrRidge1
|
||||
arnqen
|
||||
Nick_cage102
|
||||
Geo_9918
|
||||
SSShudder
|
||||
Nicolas_Mom
|
||||
WolfMatrix101
|
||||
frictionless_
|
||||
Gughik
|
||||
gold_dragon_4
|
||||
nealxero
|
||||
ClonedPickle
|
||||
SourWatermelonxX
|
||||
devilunion
|
||||
Daryifuny
|
||||
joaomarcos11
|
||||
Dekeef
|
||||
PadfootTheDog
|
||||
DarkScopez80
|
||||
flowers220
|
||||
Gaiiya
|
||||
The_Yeet_
|
||||
juuuuwu
|
||||
MrMafioz
|
||||
Surpasses
|
||||
TypicalOwen
|
||||
0lober
|
||||
Zerfixy
|
||||
Sunny3803b
|
||||
neostanley
|
||||
Creeper_Kart
|
||||
minestin
|
||||
Goldenfredster
|
||||
Vju
|
||||
MrArchI_YT
|
||||
Casper1709
|
||||
Backiii_
|
||||
DrCreate
|
||||
Nova_Lux1
|
||||
Jayvin_Blanco
|
||||
ShadowMan1770
|
||||
0KOPO40K
|
||||
Silk_Altermann69
|
||||
Alu____
|
||||
Honey_MilkExe112
|
||||
T0XEI
|
||||
CB_13
|
||||
Paragorn
|
||||
HaGiang
|
||||
Shivendra8i
|
||||
Mayflower47
|
||||
Not_Someguy
|
||||
raxx111bg
|
||||
IceyGlaceon
|
||||
grasseffect
|
||||
PoopTNTpvp
|
||||
codecyber
|
||||
Shrumpkin13
|
||||
Shqdown
|
||||
Cmartin82
|
||||
KTCXD_5p0tty
|
||||
rockesalt
|
||||
goldjeong
|
||||
TheRealAKD
|
||||
NamiSwaaan
|
||||
yaaratol
|
||||
Dikiy_Flexer
|
||||
PoLecker24
|
||||
_SakuraTree
|
||||
PikkOgP0rno
|
||||
HawksFang
|
||||
BlueWinterWolf
|
||||
hskmerk
|
||||
gurmaw
|
||||
Lunggor
|
||||
clashfield
|
||||
Zelaste
|
||||
ACommonMouse
|
||||
TJ_Mystery
|
||||
Dizzy3312
|
||||
Raindropsss
|
||||
minecraftxiaoju
|
||||
sachilovebbh
|
||||
Celina_LaZyCxt
|
||||
firered6
|
||||
55000000
|
||||
Illunarnati
|
||||
Jedidiah2003
|
||||
setomz1
|
||||
basically_e
|
||||
TommyGreif02
|
||||
Bongrip42069
|
||||
Coco_Keopi
|
||||
Lt_Colt
|
||||
Kuurotta
|
||||
GqmeKnight
|
||||
WinCo_Foods
|
||||
FKDLZ
|
||||
IanPumpkin
|
||||
tastywtf
|
||||
natedawg0
|
||||
ZQLFenyx
|
||||
GamerMaster110
|
||||
papajobi9
|
||||
Yucaroon
|
||||
Xion_69
|
||||
AirJaw
|
||||
funfun321234
|
||||
khalleesii
|
||||
Pozisch
|
||||
thorso15
|
||||
kyumisoup
|
||||
Leonqrd
|
||||
BmwDreamer
|
||||
TehRos
|
||||
pitplayer69
|
||||
_ve0
|
||||
Miss_Yuka
|
||||
I_am_a_Bucket
|
||||
nicolas_bean
|
||||
xHorizonGC
|
||||
RTX3060_
|
||||
Borec188
|
||||
c8to
|
||||
megan3groCENG
|
||||
ventriloquize
|
||||
galczin
|
||||
Scorch3dEarth3d
|
||||
nightstarLP
|
||||
VittyGam3r
|
||||
GLaDOS__
|
||||
hydrelo
|
||||
JustACarter
|
||||
MikeDropperPlay
|
||||
NorthernWest
|
||||
_Skelesam_
|
||||
ZX_Style
|
||||
Tamas_Boi
|
||||
taylub
|
||||
VyacheslavO_O
|
||||
trippyaubs
|
||||
udtpic
|
||||
Lunarglow
|
||||
Stoolman
|
||||
legendary_meow
|
||||
Loganii
|
||||
CaptainStain56
|
||||
FoofieGeto
|
||||
Judgeavapl
|
||||
OneBigDigger
|
||||
Sorem13
|
||||
Raisonneur
|
||||
IlkoalI
|
||||
Naxa
|
||||
craigbabyonebay
|
||||
NicholasG04
|
||||
UtopianCrisi
|
||||
CalamarPasGenti
|
||||
ryluh_
|
||||
Aceslimz
|
||||
Howardygh99927
|
||||
brandon257
|
||||
MarcoswildHD
|
||||
x_XSkylerX_x
|
||||
Bronco09
|
||||
That_Kookie_
|
||||
Danigtz
|
||||
Ricky_lol
|
||||
999keyt
|
||||
Thilow15
|
||||
Difesito
|
||||
ostehovl
|
||||
isacano_12
|
||||
big_esra
|
||||
secretbaguette
|
||||
MrCommunism
|
||||
Jekube
|
||||
GrandeMaster
|
||||
DrGrip
|
||||
TheArnek
|
||||
JacsMars
|
||||
Lliam14
|
||||
MrGameandWatch84
|
||||
Rinzap
|
||||
XrazzeD
|
||||
ukknown
|
||||
ZohanPrent
|
||||
Naspo
|
||||
Rajem
|
||||
VepiGHG
|
||||
matoureal
|
||||
BrianChen87
|
||||
Jrocky
|
||||
stivo999
|
||||
Des_cole
|
||||
ReqGames
|
||||
Kingja1912
|
||||
issssyy
|
||||
Apache424
|
||||
Nick_Zockt_
|
||||
Mr_Haider_10
|
||||
ValentineBun
|
||||
fedorPro228
|
||||
xTilz
|
||||
blockbuster02k
|
||||
4ck
|
||||
FrostedTree
|
||||
VegasTortoise
|
||||
ZBellaV12121
|
||||
paypales
|
||||
qDread
|
||||
itsRiven
|
||||
i8oreo
|
||||
_kimcream_
|
||||
Phisuss
|
||||
Oscargray
|
||||
Elsiff
|
||||
callofdutydog00
|
||||
BruhTheMoment
|
||||
Pazmaa
|
||||
MythicalOak
|
||||
komuchi33
|
||||
awf4
|
||||
Jacobsaurus21
|
||||
itsjohannaa
|
||||
Jello12
|
||||
Adrien183
|
||||
jajazzywazzy
|
||||
Jorjie22
|
||||
SuperBrawlr5788
|
||||
KaraageV
|
||||
_Hanime_tv
|
||||
Padilhao
|
||||
Tikkas
|
||||
ordinaryducky
|
||||
Mothytix95
|
||||
renopotouwu
|
||||
1000voices
|
||||
niclas05
|
||||
Felipstein
|
||||
DoutorBauer
|
||||
FireballPlaysMC
|
||||
vapelordsheep
|
||||
Aboain
|
||||
ImGrexy
|
||||
Aivokolo
|
||||
SuperAmazing101
|
||||
va75a77a
|
||||
_DawYans_
|
||||
AceT1223
|
||||
Livvyboo7
|
||||
Saaaaaaaaaaaaans
|
||||
okaychill
|
||||
AwesomeBro1122
|
||||
absolutesnek
|
||||
jogie5000
|
||||
curtainSenpai
|
||||
gabbyisaloser
|
||||
gamergurl6969
|
||||
ZeusDk
|
||||
FranaRibas
|
||||
Discoboss
|
||||
SYZ_1
|
||||
Nakoe
|
||||
FIU_Captive
|
||||
xSiFan_
|
||||
ilyDeathxz
|
||||
da_fipsi
|
||||
Lochy
|
||||
The_Lavie37
|
||||
Tonion
|
||||
vnvrchy
|
||||
xX0meg4Xx
|
||||
haohxtheone
|
||||
VtTronic
|
||||
xDaniGum
|
||||
tikkelill
|
||||
DatYoshi
|
||||
eyehamstewpit
|
||||
nicholas460_
|
||||
Memsly445
|
||||
nugunugu
|
||||
AndreSlayz
|
||||
jashik1
|
||||
Qweenoftheocean
|
||||
Coltable
|
||||
treblaclef
|
||||
Kisaxx
|
||||
69Dxddy69
|
||||
RaulCuh
|
||||
3Wheat
|
||||
_OscarTheGrouch
|
||||
oIsqk
|
||||
Blockbusterweng
|
||||
AntoineDegauss
|
||||
ValeIsTheBest
|
||||
SwaggyCrabby
|
||||
DieOfSanity
|
||||
SirenMC
|
||||
Jade_Jewel
|
||||
Tropic44
|
||||
666splendor
|
||||
TallnessTallness
|
||||
breadgang9827
|
||||
Muffin_Worlds
|
||||
DedicatedVeggie
|
||||
Gonzalox_7
|
||||
datrandomasian
|
||||
Chasemon01
|
||||
Nyavix
|
||||
Lonely_Summers
|
||||
_RoveN
|
||||
ok_kyro
|
||||
LN_hunter
|
||||
saharsabz
|
||||
Roselilianna
|
||||
Gadx
|
||||
xtytan
|
||||
RoRo_levosgien88
|
||||
Bowsesqe_21
|
||||
Bennett528
|
||||
TheShipSailsWest
|
||||
KaiserGaming
|
||||
Layna_Shinozaki
|
||||
OP_greatly
|
||||
D3rpTaco
|
||||
Loufink
|
||||
Jorlmungus
|
||||
Snichol1801
|
||||
Ludixeo
|
||||
Imoeto
|
||||
MarshallNebunu
|
||||
crazycrystals
|
||||
Parapatus
|
||||
HahaDani
|
||||
MrQuaring
|
||||
DonTurnt
|
||||
SailorRoberts101
|
||||
FluffieBear
|
||||
TripleThick
|
||||
KingSparta
|
||||
MummysHome
|
||||
Cooga3
|
||||
Technosista
|
||||
Youmerstudios
|
||||
SkyyRaine
|
||||
criss102
|
||||
mrfailt
|
||||
CraftingBasic
|
||||
qnxkdifh
|
||||
Igorex2k20
|
||||
LaLisette
|
||||
ReBoredGamer
|
||||
warlordwest
|
||||
ExoTemporal
|
||||
KingLonmc
|
||||
666Horus
|
||||
IslandCity2
|
||||
TheBigSavage1
|
||||
Trishke2003
|
||||
skyrowin
|
||||
Krissy3D
|
||||
AntonWTobias
|
||||
SaddyWasTaken
|
||||
Ahoy_Peko_Hao_Yo
|
||||
T4nTr1Ss
|
||||
aleciolike
|
||||
ninja_shenley
|
||||
Lordmord1337
|
||||
eatmypoopfather
|
||||
Ktanner
|
||||
The42OWeedGOD
|
||||
CooperBee
|
||||
_MikuMiku_
|
||||
althume
|
||||
Tr3bba93
|
|
@ -1,21 +0,0 @@
|
|||
name: Nicko
|
||||
main: xyz.ineanto.nicko.Nicko
|
||||
version: ${version}
|
||||
author: Ineanto
|
||||
description: "The feature packed, next generation disguise plugin for Minecraft."
|
||||
api-version: 1.20
|
||||
softdepend: [ PlaceholderAPI ]
|
||||
depend:
|
||||
- ProtocolLib
|
||||
load: POSTWORLD
|
||||
commands:
|
||||
nicko:
|
||||
description: "Opens Nicko's GUI."
|
||||
permission: nicko.use
|
||||
permissions:
|
||||
nicko.*:
|
||||
default: op
|
||||
children:
|
||||
- nicko.use
|
||||
nicko.use:
|
||||
default: false
|
|
@ -1,33 +0,0 @@
|
|||
package xyz.ineanto.nicko.test;
|
||||
|
||||
import be.seeseemelk.mockbukkit.MockBukkit;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import xyz.ineanto.nicko.Nicko;
|
||||
import xyz.ineanto.nicko.config.Configuration;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
|
||||
public class NickoPluginTest {
|
||||
private static Nicko plugin;
|
||||
|
||||
@BeforeAll
|
||||
public static void setup() {
|
||||
final Configuration config = Configuration.DEFAULT;
|
||||
MockBukkit.mock();
|
||||
plugin = MockBukkit.load(Nicko.class, config);
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Plugin Initialization")
|
||||
public void initializePlugin() {
|
||||
assertNotNull(plugin);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void shutdown() {
|
||||
MockBukkit.unmock();
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
package xyz.ineanto.nicko.test.appearance;
|
||||
|
||||
import be.seeseemelk.mockbukkit.MockBukkit;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import xyz.ineanto.nicko.Nicko;
|
||||
import xyz.ineanto.nicko.appearance.random.RandomNameFetcher;
|
||||
import xyz.ineanto.nicko.config.Configuration;
|
||||
import xyz.ineanto.nicko.mojang.MojangUtils;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public class RandomNameTest {
|
||||
private static Nicko plugin;
|
||||
|
||||
@BeforeAll
|
||||
public static void setup() {
|
||||
final Configuration config = Configuration.DEFAULT;
|
||||
MockBukkit.mock();
|
||||
plugin = MockBukkit.load(Nicko.class, config);
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Get random name")
|
||||
public void getRandomName() {
|
||||
final RandomNameFetcher randomNameFetcher = new RandomNameFetcher(plugin);
|
||||
final String username = randomNameFetcher.getRandomUsername();
|
||||
assertNotNull(username);
|
||||
assertFalse(MojangUtils.isUsernameInvalid(username));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void shutdown() {
|
||||
MockBukkit.unmock();
|
||||
}
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
package xyz.ineanto.nicko.test.config;
|
||||
|
||||
import be.seeseemelk.mockbukkit.MockBukkit;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import xyz.ineanto.nicko.Nicko;
|
||||
import xyz.ineanto.nicko.config.Configuration;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
|
||||
public class ConfigurationTest {
|
||||
private static Nicko plugin;
|
||||
|
||||
@BeforeAll
|
||||
public static void setup() {
|
||||
MockBukkit.mock();
|
||||
final Configuration config = Configuration.DEFAULT;
|
||||
plugin = MockBukkit.load(Nicko.class, config);
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Read configuration")
|
||||
public void readConfiguration() {
|
||||
final Configuration configuration = plugin.getNickoConfig();
|
||||
assertFalse(configuration.getSqlConfiguration().isEnabled());
|
||||
assertFalse(configuration.getRedisConfiguration().isEnabled());
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void shutdown() {
|
||||
MockBukkit.unmock();
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue