Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to Configurate #4072

Merged
merged 78 commits into from
Jun 7, 2021
Merged
Show file tree
Hide file tree
Changes from 74 commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
eb81ed6
Gradle setup for configurate
JRoy Mar 18, 2021
11f763c
Add loading logic
JRoy Mar 18, 2021
a2186f9
Add save logic
JRoy Mar 18, 2021
8e315ce
Add helper methods for fetching data
JRoy Mar 19, 2021
3f368b9
Migrate Settings to Configurate
JRoy Mar 19, 2021
fd8d837
Removed unused method
JRoy Mar 19, 2021
59c9fcc
Migrate EssentialsUpgrade to Configurate
JRoy Mar 19, 2021
bceeca5
Add helper method to remove a property
JRoy Mar 19, 2021
0d97492
Convert over Jails, Spawns, and Kits
JRoy Mar 20, 2021
90dbc63
Convert over EssentialsUpgrade
JRoy Mar 20, 2021
b79f25c
Clear jails and spawn cache on reload
JRoy Mar 20, 2021
d841325
Add copy header option
JRoy Mar 20, 2021
4b2eb22
Convert over RandomTeleport
JRoy Mar 20, 2021
860cf2f
Add better support for null (root) paths
JRoy Mar 20, 2021
9f0ac9c
Convert over Warps
JRoy Mar 20, 2021
de7a529
Remove missed use of EssentialsConf in Settings
JRoy Mar 20, 2021
754bc24
Convert over Worth
JRoy Mar 20, 2021
9039947
Convert over CustomItemResolver
JRoy Mar 20, 2021
ae882ce
Add constructor param for resource class
JRoy Mar 20, 2021
3ef2201
Convert over EssentialsGeoIPPlayerListener
JRoy Mar 20, 2021
d695903
Convert over UserManager
JRoy Mar 20, 2021
fefa826
Convert over XMPPManager
JRoy Mar 20, 2021
7366c30
Convert over UserData
JRoy Mar 20, 2021
3e2b7d8
Migrate over remaining uses of EssentialsUserConfiguration
JRoy Mar 20, 2021
0ab5074
Merge branch '2.x' into feature/configurate
JRoy Mar 20, 2021
9753eab
Fix NPE in EssentialsConfiguration#getLocation when section is null
JRoy Mar 20, 2021
1951354
Merge remote-tracking branch 'origin/feature/configurate' into featur…
JRoy Mar 20, 2021
186d4ec
Move relocated dependencies into common package
JRoy Mar 20, 2021
59464e0
Merge remote-tracking branch 'origin/2.x' into feature/configurate
JRoy Mar 29, 2021
8796f2c
Fix auto teleport never being read from userdata
JRoy Mar 30, 2021
e5fcf98
Add BigDecimal & Location serializers
JRoy Mar 30, 2021
59e63c9
Fix tests
JRoy Mar 30, 2021
8309138
Use default type serializers in addition to our own
JRoy Mar 30, 2021
15a8d86
Create data holder for userdata
JRoy Apr 3, 2021
fb48b35
Create userdata name migrations
JRoy Apr 3, 2021
d58d4ea
Revert removal of unused UserData methods
JRoy Apr 3, 2021
035fa0c
Include reference to timestamps section
JRoy Apr 3, 2021
9f0e750
Add MaterialTypeSerializer
JRoy Apr 3, 2021
c62ab1d
This is what human suffering looks like
JRoy Apr 3, 2021
5b60e32
Fix broken map saving
JRoy Apr 8, 2021
27b23d9
Merge remote-tracking branch 'origin/2.x' into feature/configurate
JRoy Apr 8, 2021
85046e8
Merge branch '2.x' into feature/configurate
JRoy Apr 26, 2021
7df21c9
Upload tests to actions
JRoy Apr 26, 2021
b4a2c5f
Run always
JRoy Apr 26, 2021
98391fd
aaaaaaaaaaaaaaaaaaaaaaaaa
JRoy Apr 26, 2021
e873512
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
JRoy Apr 26, 2021
ca0f7db
FeelsWeirdMan
JRoy Apr 26, 2021
03a164c
Remove unused parameter in Warps
JRoy Apr 27, 2021
b0864d6
Restore build.yml
JRoy May 2, 2021
44a4dbf
Merge branch '2.x' into feature/configurate
JRoy May 2, 2021
f407654
Merge branch '2.x' into feature/configurate
JRoy May 2, 2021
95765b8
Merge branch '2.x' into feature/configurate
JRoy May 13, 2021
3f928a4
Merge branch '2.x' into feature/configurate
JRoy May 15, 2021
6bba14f
Merge branch '2.x' into feature/configurate
JRoy May 19, 2021
44b2daa
Update Essentials/build.gradle
JRoy May 31, 2021
1f61268
Update Essentials/src/main/java/com/earth2me/essentials/EssentialsUpg…
JRoy May 31, 2021
a5c2018
Update Essentials/src/main/java/com/earth2me/essentials/EssentialsUpg…
JRoy May 31, 2021
3268006
Update Essentials/build.gradle
JRoy May 31, 2021
4688fdc
Merge branch '2.x' into feature/configurate
JRoy May 31, 2021
e4ae4ef
Re-add custom property "api"
JRoy May 31, 2021
bbcb0b5
Remove unused interface
JRoy May 31, 2021
d961c5c
Remove outdated comment
JRoy May 31, 2021
19a4377
Make upgrade method more descriptive
JRoy May 31, 2021
91dc4cc
Upgrade VaultEconomyProvider to Configurate
JRoy May 31, 2021
6e898ee
Reclarify comment in Kits
JRoy May 31, 2021
3388391
Merge branch '2.x' into feature/configurate
JRoy Jun 1, 2021
a9988fd
Merge branch '2.x' into feature/configurate
JRoy Jun 6, 2021
b71c4b7
Fix XMPP access to relocated classes
JRoy Jun 6, 2021
af47a97
Update Essentials/src/main/java/com/earth2me/essentials/api/IJails.java
JRoy Jun 6, 2021
5b0074a
Merge remote-tracking branch 'origin/2.x' into feature/configurate
JRoy Jun 6, 2021
878fbb7
Apply suggestions from code review
JRoy Jun 6, 2021
7a1a989
Make a less troll-y command cost map
JRoy Jun 6, 2021
7047f43
Make zml happy in createkit command
JRoy Jun 6, 2021
9a4c4d4
Merge branch '2.x' into feature/configurate
JRoy Jun 6, 2021
b7dfc04
Fix checker-qual scope + remove its relocation
JRoy Jun 7, 2021
13f614d
Merge branch 'feature/configurate' of https://github.com/JRoy/Essenti…
JRoy Jun 7, 2021
3de18d8
Prevent small amounts of trolling
JRoy Jun 7, 2021
badc9c5
Merge branch '2.x' into feature/configurate
JRoy Jun 7, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions Essentials/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ dependencies {

api 'org.bstats:bstats-bukkit:1.8'

api 'org.spongepowered:configurate-yaml:4.1.1'
implementation 'org.yaml:snakeyaml:1.+'
implementation 'org.checkerframework:checker-qual:3.7.1'

// Providers
api project(':providers:BaseProviders')
api project(':providers:PaperProvider')
Expand All @@ -23,11 +27,19 @@ shadowJar {
dependencies {
include (dependency('io.papermc:paperlib'))
include (dependency('org.bstats:bstats-bukkit'))
include (dependency('org.spongepowered:configurate-yaml'))
include (dependency('org.spongepowered:configurate-core'))
include (dependency('org.yaml:snakeyaml'))
include (dependency('io.leangen.geantyref:geantyref'))
include (project(':providers:BaseProviders'))
include (project(':providers:PaperProvider'))
include (project(':providers:NMSReflectionProvider'))
include (project(':providers:1_8Provider'))
}
relocate 'io.papermc.lib', 'com.earth2me.essentials.paperlib'
relocate 'org.bstats.bukkit', 'com.earth2me.essentials.metrics'
relocate 'org.spongepowered.configurate', 'com.earth2me.essentials.libs.configurate'
relocate 'org.yaml.snakeyaml', 'com.earth2me.essentials.libs.snakeyaml'
relocate 'io.leangen.geantyref', 'com.earth2me.essentials.libs.geantyref'
relocate 'org.checkerframework', 'com.earth2me.essentials.libs.checkerframework'
}
235 changes: 112 additions & 123 deletions Essentials/src/main/java/com/earth2me/essentials/Essentials.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@
import org.bukkit.plugin.java.JavaPluginLoader;
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.scheduler.BukkitTask;
import org.yaml.snakeyaml.error.YAMLException;

import java.io.File;
import java.io.IOException;
Expand Down Expand Up @@ -263,151 +262,141 @@ public void onEnable() {
}
}

try {
final EssentialsUpgrade upgrade = new EssentialsUpgrade(this);
upgrade.beforeSettings();
execTimer.mark("Upgrade");
final EssentialsUpgrade upgrade = new EssentialsUpgrade(this);
upgrade.beforeSettings();
execTimer.mark("Upgrade");

confList = new ArrayList<>();
settings = new Settings(this);
confList.add(settings);
execTimer.mark("Settings");
confList = new ArrayList<>();
settings = new Settings(this);
confList.add(settings);
execTimer.mark("Settings");

userMap = new UserMap(this);
confList.add(userMap);
execTimer.mark("Init(Usermap)");
userMap = new UserMap(this);
confList.add(userMap);
execTimer.mark("Init(Usermap)");

balanceTop = new BalanceTopImpl(this);
execTimer.mark("Init(BalanceTop)");
balanceTop = new BalanceTopImpl(this);
execTimer.mark("Init(BalanceTop)");

kits = new Kits(this);
confList.add(kits);
upgrade.convertKits();
execTimer.mark("Kits");
kits = new Kits(this);
confList.add(kits);
upgrade.convertKits();
execTimer.mark("Kits");

upgrade.afterSettings();
execTimer.mark("Upgrade2");
upgrade.afterSettings();
execTimer.mark("Upgrade2");

warps = new Warps(getServer(), this.getDataFolder());
confList.add(warps);
execTimer.mark("Init(Warp)");
warps = new Warps(this.getDataFolder());
confList.add(warps);
execTimer.mark("Init(Warp)");

worth = new Worth(this.getDataFolder());
confList.add(worth);
execTimer.mark("Init(Worth)");
worth = new Worth(this.getDataFolder());
confList.add(worth);
execTimer.mark("Init(Worth)");

itemDb = getItemDbFromConfig();
confList.add(itemDb);
execTimer.mark("Init(ItemDB)");
itemDb = getItemDbFromConfig();
confList.add(itemDb);
execTimer.mark("Init(ItemDB)");

randomTeleport = new RandomTeleport(this);
if (randomTeleport.getPreCache()) {
randomTeleport.cacheRandomLocations(randomTeleport.getCenter(), randomTeleport.getMinRange(), randomTeleport.getMaxRange());
}
confList.add(randomTeleport);
execTimer.mark("Init(RandomTeleport)");
randomTeleport = new RandomTeleport(this);
if (randomTeleport.getPreCache()) {
randomTeleport.cacheRandomLocations(randomTeleport.getCenter(), randomTeleport.getMinRange(), randomTeleport.getMaxRange());
}
confList.add(randomTeleport);
execTimer.mark("Init(RandomTeleport)");

customItemResolver = new CustomItemResolver(this);
try {
itemDb.registerResolver(this, "custom_items", customItemResolver);
confList.add(customItemResolver);
} catch (final Exception e) {
e.printStackTrace();
customItemResolver = null;
}
execTimer.mark("Init(CustomItemResolver)");
customItemResolver = new CustomItemResolver(this);
try {
itemDb.registerResolver(this, "custom_items", customItemResolver);
confList.add(customItemResolver);
} catch (final Exception e) {
e.printStackTrace();
customItemResolver = null;
}
execTimer.mark("Init(CustomItemResolver)");

jails = new Jails(this);
confList.add(jails);
execTimer.mark("Init(Jails)");
jails = new Jails(this);
confList.add(jails);
execTimer.mark("Init(Jails)");

//Spawner item provider only uses one but it's here for legacy...
spawnerItemProvider = new BlockMetaSpawnerItemProvider();
//Spawner item provider only uses one but it's here for legacy...
spawnerItemProvider = new BlockMetaSpawnerItemProvider();

//Spawner block providers
if (VersionUtil.getServerBukkitVersion().isLowerThan(VersionUtil.v1_12_0_R01)) {
spawnerBlockProvider = new ReflSpawnerBlockProvider();
} else {
spawnerBlockProvider = new BukkitSpawnerBlockProvider();
}
//Spawner block providers
if (VersionUtil.getServerBukkitVersion().isLowerThan(VersionUtil.v1_12_0_R01)) {
spawnerBlockProvider = new ReflSpawnerBlockProvider();
} else {
spawnerBlockProvider = new BukkitSpawnerBlockProvider();
}

//Spawn Egg Providers
if (VersionUtil.getServerBukkitVersion().isLowerThan(VersionUtil.v1_9_R01)) {
spawnEggProvider = new LegacySpawnEggProvider();
} else if (VersionUtil.getServerBukkitVersion().isLowerThanOrEqualTo(VersionUtil.v1_12_2_R01)) {
spawnEggProvider = new ReflSpawnEggProvider();
} else {
spawnEggProvider = new FlatSpawnEggProvider();
}
//Spawn Egg Providers
if (VersionUtil.getServerBukkitVersion().isLowerThan(VersionUtil.v1_9_R01)) {
spawnEggProvider = new LegacySpawnEggProvider();
} else if (VersionUtil.getServerBukkitVersion().isLowerThanOrEqualTo(VersionUtil.v1_12_2_R01)) {
spawnEggProvider = new ReflSpawnEggProvider();
} else {
spawnEggProvider = new FlatSpawnEggProvider();
}

//Potion Meta Provider
if (VersionUtil.getServerBukkitVersion().isLowerThan(VersionUtil.v1_9_R01)) {
potionMetaProvider = new LegacyPotionMetaProvider();
} else {
potionMetaProvider = new BasePotionDataProvider();
}
//Potion Meta Provider
if (VersionUtil.getServerBukkitVersion().isLowerThan(VersionUtil.v1_9_R01)) {
potionMetaProvider = new LegacyPotionMetaProvider();
} else {
potionMetaProvider = new BasePotionDataProvider();
}

//Server State Provider
//Container Provider
if (PaperLib.isPaper() && VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_15_2_R01)) {
serverStateProvider = new PaperServerStateProvider();
containerProvider = new PaperContainerProvider();
} else {
serverStateProvider = new ReflServerStateProvider();
}
//Server State Provider
//Container Provider
if (PaperLib.isPaper() && VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_15_2_R01)) {
serverStateProvider = new PaperServerStateProvider();
containerProvider = new PaperContainerProvider();
} else {
serverStateProvider = new ReflServerStateProvider();
}

//Event Providers
if (PaperLib.isPaper()) {
try {
Class.forName("com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent");
recipeBookEventProvider = new PaperRecipeBookListener(event -> {
if (this.getUser(((PlayerEvent) event).getPlayer()).isRecipeSee()) {
((Cancellable) event).setCancelled(true);
}
});
} catch (final ClassNotFoundException ignored) {
}
//Event Providers
if (PaperLib.isPaper()) {
try {
Class.forName("com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent");
recipeBookEventProvider = new PaperRecipeBookListener(event -> {
if (this.getUser(((PlayerEvent) event).getPlayer()).isRecipeSee()) {
((Cancellable) event).setCancelled(true);
}
});
} catch (final ClassNotFoundException ignored) {
}
}

//Known Commands Provider
if (PaperLib.isPaper() && VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_11_2_R01)) {
knownCommandsProvider = new PaperKnownCommandsProvider();
} else {
knownCommandsProvider = new ReflKnownCommandsProvider();
}
//Known Commands Provider
if (PaperLib.isPaper() && VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_11_2_R01)) {
knownCommandsProvider = new PaperKnownCommandsProvider();
} else {
knownCommandsProvider = new ReflKnownCommandsProvider();
}

// Command aliases provider
formattedCommandAliasProvider = new ReflFormattedCommandAliasProvider(PaperLib.isPaper());
// Command aliases provider
formattedCommandAliasProvider = new ReflFormattedCommandAliasProvider(PaperLib.isPaper());

// Material Tag Providers
if (VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_13_0_R01)) {
materialTagProvider = PaperLib.isPaper() ? new PaperMaterialTagProvider() : new BukkitMaterialTagProvider();
}
// Material Tag Providers
if (VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_13_0_R01)) {
materialTagProvider = PaperLib.isPaper() ? new PaperMaterialTagProvider() : new BukkitMaterialTagProvider();
}

// Sync Commands Provider
syncCommandsProvider = new ReflSyncCommandsProvider();
// Sync Commands Provider
syncCommandsProvider = new ReflSyncCommandsProvider();

if (VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_14_4_R01)) {
persistentDataProvider = new ModernPersistentDataProvider(this);
} else {
persistentDataProvider = new ReflPersistentDataProvider(this);
}
if (VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_14_4_R01)) {
persistentDataProvider = new ModernPersistentDataProvider(this);
} else {
persistentDataProvider = new ReflPersistentDataProvider(this);
}

execTimer.mark("Init(Providers)");
reload();
execTimer.mark("Init(Providers)");
reload();

// The item spawn blacklist is loaded with all other settings, before the item
// DB, but it depends on the item DB, so we need to reload it again here:
((Settings) settings)._lateLoadItemSpawnBlacklist();
} catch (final YAMLException exception) {
if (pm.getPlugin("EssentialsUpdate") != null) {
LOGGER.log(Level.SEVERE, tl("essentialsHelp2"));
} else {
LOGGER.log(Level.SEVERE, tl("essentialsHelp1"));
}
handleCrash(exception);
return;
}
// The item spawn blacklist is loaded with all other settings, before the item
// DB, but it depends on the item DB, so we need to reload it again here:
((Settings) settings)._lateLoadItemSpawnBlacklist();
backup = new Backup(this);
permissionsHandler = new PermissionsHandler(this, settings.useBukkitPermissions());
alternativeCommandsHandler = new AlternativeCommandsHandler(this);
Expand Down Expand Up @@ -1192,7 +1181,7 @@ private static class EssentialsWorldListener implements Listener, Runnable {
public void onWorldLoad(final WorldLoadEvent event) {
PermissionsDefaults.registerBackDefaultFor(event.getWorld());

ess.getJails().onReload();
ess.getJails().reloadConfig();
ess.getWarps().reloadConfig();
for (final IConf iConf : ((Essentials) ess).confList) {
if (iConf instanceof IEssentialsModule) {
Expand All @@ -1203,7 +1192,7 @@ public void onWorldLoad(final WorldLoadEvent event) {

@EventHandler(priority = EventPriority.LOW)
public void onWorldUnload(final WorldUnloadEvent event) {
ess.getJails().onReload();
ess.getJails().reloadConfig();
ess.getWarps().reloadConfig();
for (final IConf iConf : ((Essentials) ess).confList) {
if (iConf instanceof IEssentialsModule) {
Expand Down
Loading