diff --git a/bukkit/src/main/java/net/william278/husksync/api/BukkitHuskSyncAPI.java b/bukkit/src/main/java/net/william278/husksync/api/BukkitHuskSyncAPI.java index 1021229b..cde2be7b 100644 --- a/bukkit/src/main/java/net/william278/husksync/api/BukkitHuskSyncAPI.java +++ b/bukkit/src/main/java/net/william278/husksync/api/BukkitHuskSyncAPI.java @@ -62,7 +62,7 @@ public class BukkitHuskSyncAPI extends HuskSyncAPI { public static BukkitHuskSyncAPI getInstance() { if (!JavaPlugin.getProvidingPlugin(BukkitHuskSyncAPI.class).getName().equals("HuskSync")) { throw new NotRegisteredException("This is likely because you have shaded HuskSync into your plugin JAR " + - "and need to fix your maven/gradle/build script so that it *compiles against* HuskSync instead."); + "and need to fix your maven/gradle/build script so that it *compiles against* HuskSync instead."); } if (instance == null) { throw new NotRegisteredException(); diff --git a/bukkit/src/main/java/net/william278/husksync/migrator/LegacyMigrator.java b/bukkit/src/main/java/net/william278/husksync/migrator/LegacyMigrator.java index 2cc6eb84..3b9eff40 100644 --- a/bukkit/src/main/java/net/william278/husksync/migrator/LegacyMigrator.java +++ b/bukkit/src/main/java/net/william278/husksync/migrator/LegacyMigrator.java @@ -204,10 +204,10 @@ public class LegacyMigrator extends Migrator { }) { plugin.log(Level.INFO, getHelpMenu()); plugin.log(Level.INFO, "Successfully set " + args[0] + " to " + - obfuscateDataString(args[1])); + obfuscateDataString(args[1])); } else { plugin.log(Level.INFO, "Invalid operation, could not set " + args[0] + " to " + - obfuscateDataString(args[1]) + " (is it a valid option?)"); + obfuscateDataString(args[1]) + " (is it a valid option?)"); } } else { plugin.log(Level.INFO, getHelpMenu()); diff --git a/bukkit/src/main/java/net/william278/husksync/migrator/MpdbMigrator.java b/bukkit/src/main/java/net/william278/husksync/migrator/MpdbMigrator.java index 5a8eea05..d32f1d9d 100644 --- a/bukkit/src/main/java/net/william278/husksync/migrator/MpdbMigrator.java +++ b/bukkit/src/main/java/net/william278/husksync/migrator/MpdbMigrator.java @@ -201,10 +201,10 @@ public class MpdbMigrator extends Migrator { }) { plugin.log(Level.INFO, getHelpMenu()); plugin.log(Level.INFO, "Successfully set " + args[0] + " to " + - obfuscateDataString(args[1])); + obfuscateDataString(args[1])); } else { plugin.log(Level.INFO, "Invalid operation, could not set " + args[0] + " to " + - obfuscateDataString(args[1]) + " (is it a valid option?)"); + obfuscateDataString(args[1]) + " (is it a valid option?)"); } } else { plugin.log(Level.INFO, getHelpMenu()); diff --git a/bukkit/src/main/java/net/william278/husksync/util/BukkitMapPersister.java b/bukkit/src/main/java/net/william278/husksync/util/BukkitMapPersister.java index 3331d7df..d2b5a9f8 100644 --- a/bukkit/src/main/java/net/william278/husksync/util/BukkitMapPersister.java +++ b/bukkit/src/main/java/net/william278/husksync/util/BukkitMapPersister.java @@ -155,8 +155,8 @@ public interface BukkitMapPersister { Optional world = Optional.empty(); for (String worldUid : mapIds.getKeys()) { world = getPlugin().getServer().getWorlds().stream() - .map(w -> w.getUID().toString()).filter(u -> u.equals(worldUid)) - .findFirst(); + .map(w -> w.getUID().toString()).filter(u -> u.equals(worldUid)) + .findFirst(); if (world.isPresent()) { break; } @@ -179,7 +179,7 @@ public interface BukkitMapPersister { try { getPlugin().debug("Deserializing map data from NBT and generating view..."); canvasData = MapData.fromByteArray(Objects.requireNonNull(mapData.getByteArray(MAP_PIXEL_DATA_KEY), - "Map pixel data is null")); + "Map pixel data is null")); } catch (Throwable e) { getPlugin().log(Level.WARNING, "Failed to deserialize map data from NBT", e); return; @@ -195,8 +195,8 @@ public interface BukkitMapPersister { // Set the map view ID in NBT NBT.modify(map, editable -> { Objects.requireNonNull(editable.getCompound(MAP_VIEW_ID_MAPPINGS_KEY), - "Map view ID mappings compound is null") - .setInteger(worldUid, view.getId()); + "Map view ID mappings compound is null") + .setInteger(worldUid, view.getId()); }); getPlugin().debug(String.format("Generated view (#%s) and updated map (UID: %s)", view.getId(), worldUid)); }); @@ -326,29 +326,29 @@ public interface BukkitMapPersister { @NotNull private static MapCursor createBannerCursor(@NotNull MapBanner banner) { return new MapCursor( - (byte) banner.getPosition().getX(), - (byte) banner.getPosition().getZ(), - (byte) 8, // Always rotate banners upright - switch (banner.getColor().toLowerCase(Locale.ENGLISH)) { - case "white" -> MapCursor.Type.BANNER_WHITE; - case "orange" -> MapCursor.Type.BANNER_ORANGE; - case "magenta" -> MapCursor.Type.BANNER_MAGENTA; - case "light_blue" -> MapCursor.Type.BANNER_LIGHT_BLUE; - case "yellow" -> MapCursor.Type.BANNER_YELLOW; - case "lime" -> MapCursor.Type.BANNER_LIME; - case "pink" -> MapCursor.Type.BANNER_PINK; - case "gray" -> MapCursor.Type.BANNER_GRAY; - case "light_gray" -> MapCursor.Type.BANNER_LIGHT_GRAY; - case "cyan" -> MapCursor.Type.BANNER_CYAN; - case "purple" -> MapCursor.Type.BANNER_PURPLE; - case "blue" -> MapCursor.Type.BANNER_BLUE; - case "brown" -> MapCursor.Type.BANNER_BROWN; - case "green" -> MapCursor.Type.BANNER_GREEN; - case "red" -> MapCursor.Type.BANNER_RED; - default -> MapCursor.Type.BANNER_BLACK; - }, - true, - banner.getText().isEmpty() ? null : banner.getText() + (byte) banner.getPosition().getX(), + (byte) banner.getPosition().getZ(), + (byte) 8, // Always rotate banners upright + switch (banner.getColor().toLowerCase(Locale.ENGLISH)) { + case "white" -> MapCursor.Type.BANNER_WHITE; + case "orange" -> MapCursor.Type.BANNER_ORANGE; + case "magenta" -> MapCursor.Type.BANNER_MAGENTA; + case "light_blue" -> MapCursor.Type.BANNER_LIGHT_BLUE; + case "yellow" -> MapCursor.Type.BANNER_YELLOW; + case "lime" -> MapCursor.Type.BANNER_LIME; + case "pink" -> MapCursor.Type.BANNER_PINK; + case "gray" -> MapCursor.Type.BANNER_GRAY; + case "light_gray" -> MapCursor.Type.BANNER_LIGHT_GRAY; + case "cyan" -> MapCursor.Type.BANNER_CYAN; + case "purple" -> MapCursor.Type.BANNER_PURPLE; + case "blue" -> MapCursor.Type.BANNER_BLUE; + case "brown" -> MapCursor.Type.BANNER_BROWN; + case "green" -> MapCursor.Type.BANNER_GREEN; + case "red" -> MapCursor.Type.BANNER_RED; + default -> MapCursor.Type.BANNER_BLACK; + }, + true, + banner.getText().isEmpty() ? null : banner.getText() ); } @@ -430,11 +430,11 @@ public interface BukkitMapPersister { final String type = cursor.getType().name().toLowerCase(Locale.ENGLISH); if (type.startsWith(BANNER_PREFIX)) { banners.add(new MapBanner( - type.replaceAll(BANNER_PREFIX, ""), - cursor.getCaption() == null ? "" : cursor.getCaption(), - cursor.getX(), - mapView.getWorld() != null ? mapView.getWorld().getSeaLevel() : 128, - cursor.getY() + type.replaceAll(BANNER_PREFIX, ""), + cursor.getCaption() == null ? "" : cursor.getCaption(), + cursor.getX(), + mapView.getWorld() != null ? mapView.getWorld().getSeaLevel() : 128, + cursor.getY() )); } } diff --git a/common/src/main/java/net/william278/husksync/HuskSync.java b/common/src/main/java/net/william278/husksync/HuskSync.java index b77aa80d..f3977a38 100644 --- a/common/src/main/java/net/william278/husksync/HuskSync.java +++ b/common/src/main/java/net/william278/husksync/HuskSync.java @@ -265,10 +265,10 @@ public interface HuskSync extends Task.Supplier, EventDispatcher, ConfigProvider @NotNull default UpdateChecker getUpdateChecker() { return UpdateChecker.builder() - .currentVersion(getPluginVersion()) - .endpoint(UpdateChecker.Endpoint.SPIGOT) - .resource(Integer.toString(SPIGOT_RESOURCE_ID)) - .build(); + .currentVersion(getPluginVersion()) + .endpoint(UpdateChecker.Endpoint.SPIGOT) + .resource(Integer.toString(SPIGOT_RESOURCE_ID)) + .build(); } default void checkForUpdates() { @@ -276,8 +276,8 @@ public interface HuskSync extends Task.Supplier, EventDispatcher, ConfigProvider getUpdateChecker().check().thenAccept(checked -> { if (!checked.isUpToDate()) { log(Level.WARNING, String.format( - "A new version of HuskSync is available: v%s (running v%s)", - checked.getLatestVersion(), getPluginVersion()) + "A new version of HuskSync is available: v%s (running v%s)", + checked.getLatestVersion(), getPluginVersion()) ); } }); @@ -320,15 +320,15 @@ public interface HuskSync extends Task.Supplier, EventDispatcher, ConfigProvider final class FailedToLoadException extends IllegalStateException { private static final String FORMAT = """ - HuskSync has failed to load! The plugin will not be enabled and no data will be synchronized. - Please make sure the plugin has been setup correctly (https://william278.net/docs/husksync/setup): - - 1) Make sure you've entered your MySQL, MariaDB or MongoDB database details correctly in config.yml - 2) Make sure your Redis server details are also correct in config.yml - 3) Make sure your config is up-to-date (https://william278.net/docs/husksync/config-file) - 4) Check the error below for more details - - Caused by: %s"""; + HuskSync has failed to load! The plugin will not be enabled and no data will be synchronized. + Please make sure the plugin has been setup correctly (https://william278.net/docs/husksync/setup): + + 1) Make sure you've entered your MySQL, MariaDB or MongoDB database details correctly in config.yml + 2) Make sure your Redis server details are also correct in config.yml + 3) Make sure your config is up-to-date (https://william278.net/docs/husksync/config-file) + 4) Check the error below for more details + + Caused by: %s"""; FailedToLoadException(@NotNull String message, @NotNull Throwable cause) { super(String.format(FORMAT, message), cause); diff --git a/common/src/main/java/net/william278/husksync/command/EnderChestCommand.java b/common/src/main/java/net/william278/husksync/command/EnderChestCommand.java index 5a87e4f6..81395e9b 100644 --- a/common/src/main/java/net/william278/husksync/command/EnderChestCommand.java +++ b/common/src/main/java/net/william278/husksync/command/EnderChestCommand.java @@ -46,29 +46,29 @@ public class EnderChestCommand extends ItemsCommand { final Optional optionalEnderChest = snapshot.getEnderChest(); if (optionalEnderChest.isEmpty()) { plugin.getLocales().getLocale("error_no_data_to_display") - .ifPresent(viewer::sendMessage); + .ifPresent(viewer::sendMessage); return; } // Display opening message plugin.getLocales().getLocale("ender_chest_viewer_opened", user.getUsername(), - snapshot.getTimestamp().format(DateTimeFormatter - .ofLocalizedDateTime(FormatStyle.MEDIUM, FormatStyle.SHORT))) - .ifPresent(viewer::sendMessage); + snapshot.getTimestamp().format(DateTimeFormatter + .ofLocalizedDateTime(FormatStyle.MEDIUM, FormatStyle.SHORT))) + .ifPresent(viewer::sendMessage); // Show GUI final Data.Items.EnderChest enderChest = optionalEnderChest.get(); viewer.showGui( - enderChest, - plugin.getLocales().getLocale("ender_chest_viewer_menu_title", user.getUsername()) - .orElse(new MineDown(String.format("%s's Ender Chest", user.getUsername()))), - allowEdit, - enderChest.getSlotCount(), - (itemsOnClose) -> { - if (allowEdit && !enderChest.equals(itemsOnClose)) { - plugin.runAsync(() -> this.updateItems(viewer, itemsOnClose, user)); + enderChest, + plugin.getLocales().getLocale("ender_chest_viewer_menu_title", user.getUsername()) + .orElse(new MineDown(String.format("%s's Ender Chest", user.getUsername()))), + allowEdit, + enderChest.getSlotCount(), + (itemsOnClose) -> { + if (allowEdit && !enderChest.equals(itemsOnClose)) { + plugin.runAsync(() -> this.updateItems(viewer, itemsOnClose, user)); + } } - } ); } @@ -78,7 +78,7 @@ public class EnderChestCommand extends ItemsCommand { final Optional latestData = plugin.getDatabase().getLatestSnapshot(holder); if (latestData.isEmpty()) { plugin.getLocales().getLocale("error_no_data_to_display") - .ifPresent(viewer::sendMessage); + .ifPresent(viewer::sendMessage); return; } @@ -88,7 +88,7 @@ public class EnderChestCommand extends ItemsCommand { data.getEnderChest().ifPresent(enderChest -> enderChest.setContents(items)); data.setSaveCause(DataSnapshot.SaveCause.ENDERCHEST_COMMAND); data.setPinned( - plugin.getSettings().getSynchronization().doAutoPin(DataSnapshot.SaveCause.ENDERCHEST_COMMAND) + plugin.getSettings().getSynchronization().doAutoPin(DataSnapshot.SaveCause.ENDERCHEST_COMMAND) ); }); diff --git a/common/src/main/java/net/william278/husksync/command/HuskSyncCommand.java b/common/src/main/java/net/william278/husksync/command/HuskSyncCommand.java index 803491a0..9299f01e 100644 --- a/common/src/main/java/net/william278/husksync/command/HuskSyncCommand.java +++ b/common/src/main/java/net/william278/husksync/command/HuskSyncCommand.java @@ -55,38 +55,38 @@ public class HuskSyncCommand extends PluginCommand { super("husksync", List.of(), Permission.Default.TRUE, ExecutionScope.ALL, plugin); this.updateChecker = plugin.getUpdateChecker(); this.aboutMenu = AboutMenu.builder() - .title(Component.text("HuskSync")) - .description(Component.text("A modern, cross-server player data synchronization system")) - .version(plugin.getPluginVersion()) - .credits("Author", - AboutMenu.Credit.of("William278").description("Click to visit website").url("https://william278.net")) - .credits("Contributors", - AboutMenu.Credit.of("HarvelsX").description("Code"), - AboutMenu.Credit.of("HookWoods").description("Code"), - AboutMenu.Credit.of("Preva1l").description("Code"), - AboutMenu.Credit.of("hanbings").description("Code (Fabric porting)"), - AboutMenu.Credit.of("Stampede2011").description("Code (Fabric mixins)")) - .credits("Translators", - AboutMenu.Credit.of("Namiu").description("Japanese (ja-jp)"), - AboutMenu.Credit.of("anchelthe").description("Spanish (es-es)"), - AboutMenu.Credit.of("Melonzio").description("Spanish (es-es)"), - AboutMenu.Credit.of("Ceddix").description("German (de-de)"), - AboutMenu.Credit.of("Pukejoy_1").description("Bulgarian (bg-bg)"), - AboutMenu.Credit.of("mateusneresrb").description("Brazilian Portuguese (pt-br)"), - AboutMenu.Credit.of("小蔡").description("Traditional Chinese (zh-tw)"), - AboutMenu.Credit.of("Ghost-chu").description("Simplified Chinese (zh-cn)"), - AboutMenu.Credit.of("DJelly4K").description("Simplified Chinese (zh-cn)"), - AboutMenu.Credit.of("Thourgard").description("Ukrainian (uk-ua)"), - AboutMenu.Credit.of("xF3d3").description("Italian (it-it)"), - AboutMenu.Credit.of("cada3141").description("Korean (ko-kr)"), - AboutMenu.Credit.of("Wirayuda5620").description("Indonesian (id-id)"), - AboutMenu.Credit.of("WinTone01").description("Turkish (tr-tr)"), - AboutMenu.Credit.of("IbanEtchep").description("French (fr-fr)")) - .buttons( - AboutMenu.Link.of("https://william278.net/docs/husksync").text("Documentation").icon("⛏"), - AboutMenu.Link.of("https://github.com/WiIIiam278/HuskSync/issues").text("Issues").icon("❌").color(TextColor.color(0xff9f0f)), - AboutMenu.Link.of("https://discord.gg/tVYhJfyDWG").text("Discord").icon("⭐").color(TextColor.color(0x6773f5))) - .build(); + .title(Component.text("HuskSync")) + .description(Component.text("A modern, cross-server player data synchronization system")) + .version(plugin.getPluginVersion()) + .credits("Author", + AboutMenu.Credit.of("William278").description("Click to visit website").url("https://william278.net")) + .credits("Contributors", + AboutMenu.Credit.of("HarvelsX").description("Code"), + AboutMenu.Credit.of("HookWoods").description("Code"), + AboutMenu.Credit.of("Preva1l").description("Code"), + AboutMenu.Credit.of("hanbings").description("Code (Fabric porting)"), + AboutMenu.Credit.of("Stampede2011").description("Code (Fabric mixins)")) + .credits("Translators", + AboutMenu.Credit.of("Namiu").description("Japanese (ja-jp)"), + AboutMenu.Credit.of("anchelthe").description("Spanish (es-es)"), + AboutMenu.Credit.of("Melonzio").description("Spanish (es-es)"), + AboutMenu.Credit.of("Ceddix").description("German (de-de)"), + AboutMenu.Credit.of("Pukejoy_1").description("Bulgarian (bg-bg)"), + AboutMenu.Credit.of("mateusneresrb").description("Brazilian Portuguese (pt-br)"), + AboutMenu.Credit.of("小蔡").description("Traditional Chinese (zh-tw)"), + AboutMenu.Credit.of("Ghost-chu").description("Simplified Chinese (zh-cn)"), + AboutMenu.Credit.of("DJelly4K").description("Simplified Chinese (zh-cn)"), + AboutMenu.Credit.of("Thourgard").description("Ukrainian (uk-ua)"), + AboutMenu.Credit.of("xF3d3").description("Italian (it-it)"), + AboutMenu.Credit.of("cada3141").description("Korean (ko-kr)"), + AboutMenu.Credit.of("Wirayuda5620").description("Indonesian (id-id)"), + AboutMenu.Credit.of("WinTone01").description("Turkish (tr-tr)"), + AboutMenu.Credit.of("IbanEtchep").description("French (fr-fr)")) + .buttons( + AboutMenu.Link.of("https://william278.net/docs/husksync").text("Documentation").icon("⛏"), + AboutMenu.Link.of("https://github.com/WiIIiam278/HuskSync/issues").text("Issues").icon("❌").color(TextColor.color(0xff9f0f)), + AboutMenu.Link.of("https://discord.gg/tVYhJfyDWG").text("Discord").icon("⭐").color(TextColor.color(0x6773f5))) + .build(); } @Override @@ -109,8 +109,8 @@ public class HuskSyncCommand extends PluginCommand { final CommandUser user = user(sub, ctx); plugin.getLocales().getLocale("system_status_header").ifPresent(user::sendMessage); user.sendMessage(Component.join( - JoinConfiguration.newlines(), - Arrays.stream(StatusLine.values()).map(s -> s.get(plugin)).toList() + JoinConfiguration.newlines(), + Arrays.stream(StatusLine.values()).map(s -> s.get(plugin)).toList() )); }); } @@ -126,7 +126,7 @@ public class HuskSyncCommand extends PluginCommand { plugin.getLocales().getLocale("reload_complete").ifPresent(user::sendMessage); } catch (Throwable e) { user.sendMessage(new MineDown( - "[Error:](#ff3300) [Failed to reload the plugin. Check console for errors.](#ff7e5e)" + "[Error:](#ff3300) [Failed to reload the plugin. Check console for errors.](#ff7e5e)" )); plugin.log(Level.SEVERE, "Failed to reload the plugin", e); } @@ -139,11 +139,11 @@ public class HuskSyncCommand extends PluginCommand { final CommandUser user = user(sub, ctx); if (checked.isUpToDate()) { plugin.getLocales().getLocale("up_to_date", plugin.getPluginVersion().toString()) - .ifPresent(user::sendMessage); + .ifPresent(user::sendMessage); return; } plugin.getLocales().getLocale("update_available", checked.getLatestVersion().toString(), - plugin.getPluginVersion().toString()).ifPresent(user::sendMessage); + plugin.getPluginVersion().toString()).ifPresent(user::sendMessage); })); } @@ -154,10 +154,10 @@ public class HuskSyncCommand extends PluginCommand { sub.setDefaultExecutor((ctx) -> { plugin.log(Level.INFO, "Please choose a migrator, then run \"husksync migrate start \""); plugin.log(Level.INFO, String.format( - "List of available migrators:\nMigrator ID / Migrator Name:\n%s", - plugin.getAvailableMigrators().stream() - .map(migrator -> String.format("%s - %s", migrator.getIdentifier(), migrator.getName())) - .collect(Collectors.joining("\n")) + "List of available migrators:\nMigrator ID / Migrator Name:\n%s", + plugin.getAvailableMigrators().stream() + .map(migrator -> String.format("%s - %s", migrator.getIdentifier(), migrator.getName())) + .collect(Collectors.joining("\n")) )); }); sub.addSubCommand("help", (help) -> help.addSyntax((cmd) -> { @@ -187,7 +187,7 @@ public class HuskSyncCommand extends PluginCommand { return new ArgumentElement<>("migrator", reader -> { final String id = reader.readString(); final Migrator migrator = plugin.getAvailableMigrators().stream() - .filter(m -> m.getIdentifier().equalsIgnoreCase(id)).findFirst().orElse(null); + .filter(m -> m.getIdentifier().equalsIgnoreCase(id)).findFirst().orElse(null); if (migrator == null) { throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherUnknownArgument().createWithContext(reader); } @@ -202,54 +202,54 @@ public class HuskSyncCommand extends PluginCommand { private enum StatusLine { PLUGIN_VERSION(plugin -> Component.text("v" + plugin.getPluginVersion().toStringWithoutMetadata()) - .appendSpace().append(plugin.getPluginVersion().getMetadata().isBlank() ? Component.empty() - : Component.text("(build " + plugin.getPluginVersion().getMetadata() + ")"))), + .appendSpace().append(plugin.getPluginVersion().getMetadata().isBlank() ? Component.empty() + : Component.text("(build " + plugin.getPluginVersion().getMetadata() + ")"))), PLATFORM_TYPE(plugin -> Component.text(WordUtils.capitalizeFully(plugin.getPlatformType()))), LANGUAGE(plugin -> Component.text(plugin.getSettings().getLanguage())), MINECRAFT_VERSION(plugin -> Component.text(plugin.getMinecraftVersion().toString())), JAVA_VERSION(plugin -> Component.text(System.getProperty("java.version"))), JAVA_VENDOR(plugin -> Component.text(System.getProperty("java.vendor"))), SYNC_MODE(plugin -> Component.text(WordUtils.capitalizeFully( - plugin.getSettings().getSynchronization().getMode().toString() + plugin.getSettings().getSynchronization().getMode().toString() ))), DELAY_LATENCY(plugin -> Component.text( - plugin.getSettings().getSynchronization().getNetworkLatencyMilliseconds() + "ms" + plugin.getSettings().getSynchronization().getNetworkLatencyMilliseconds() + "ms" )), SERVER_NAME(plugin -> Component.text(plugin.getServerName())), CLUSTER_ID(plugin -> Component.text(plugin.getSettings().getClusterId().isBlank() ? "None" : plugin.getSettings().getClusterId())), DATABASE_TYPE(plugin -> - Component.text(plugin.getSettings().getDatabase().getType().getDisplayName() + - (plugin.getSettings().getDatabase().getType() == Database.Type.MONGO ? - (plugin.getSettings().getDatabase().getMongoSettings().isUsingAtlas() ? " Atlas" : "") : "")) + Component.text(plugin.getSettings().getDatabase().getType().getDisplayName() + + (plugin.getSettings().getDatabase().getType() == Database.Type.MONGO ? + (plugin.getSettings().getDatabase().getMongoSettings().isUsingAtlas() ? " Atlas" : "") : "")) ), IS_DATABASE_LOCAL(plugin -> getLocalhostBoolean(plugin.getSettings().getDatabase().getCredentials().getHost())), USING_REDIS_SENTINEL(plugin -> getBoolean( - !plugin.getSettings().getRedis().getSentinel().getMaster().isBlank() + !plugin.getSettings().getRedis().getSentinel().getMaster().isBlank() )), USING_REDIS_PASSWORD(plugin -> getBoolean( - !plugin.getSettings().getRedis().getCredentials().getPassword().isBlank() + !plugin.getSettings().getRedis().getCredentials().getPassword().isBlank() )), REDIS_USING_SSL(plugin -> getBoolean( - plugin.getSettings().getRedis().getCredentials().isUseSsl() + plugin.getSettings().getRedis().getCredentials().isUseSsl() )), IS_REDIS_LOCAL(plugin -> getLocalhostBoolean( - plugin.getSettings().getRedis().getCredentials().getHost() + plugin.getSettings().getRedis().getCredentials().getHost() )), DATA_TYPES(plugin -> Component.join( - JoinConfiguration.commas(true), - plugin.getRegisteredDataTypes().stream().map(i -> Component.textOfChildren(Component.text(i.toString()) - .appendSpace().append(Component.text(i.isEnabled() ? '✔' : '❌'))) - .color(i.isEnabled() ? NamedTextColor.GREEN : NamedTextColor.RED) - .hoverEvent(HoverEvent.showText( - Component.text(i.isEnabled() ? "Enabled" : "Disabled") - .append(Component.newline()) - .append(Component.text("Dependencies: %s".formatted(i.getDependencies() - .isEmpty() ? "(None)" : i.getDependencies().stream() - .map(d -> "%s (%s)".formatted( - d.getKey().value(), d.isRequired() ? "Required" : "Optional" - )).collect(Collectors.joining(", "))) - ).color(NamedTextColor.GRAY)) - ))).toList() + JoinConfiguration.commas(true), + plugin.getRegisteredDataTypes().stream().map(i -> Component.textOfChildren(Component.text(i.toString()) + .appendSpace().append(Component.text(i.isEnabled() ? '✔' : '❌'))) + .color(i.isEnabled() ? NamedTextColor.GREEN : NamedTextColor.RED) + .hoverEvent(HoverEvent.showText( + Component.text(i.isEnabled() ? "Enabled" : "Disabled") + .append(Component.newline()) + .append(Component.text("Dependencies: %s".formatted(i.getDependencies() + .isEmpty() ? "(None)" : i.getDependencies().stream() + .map(d -> "%s (%s)".formatted( + d.getKey().value(), d.isRequired() ? "Required" : "Optional" + )).collect(Collectors.joining(", "))) + ).color(NamedTextColor.GRAY)) + ))).toList() )); private final Function supplier; @@ -261,13 +261,13 @@ public class HuskSyncCommand extends PluginCommand { @NotNull private Component get(@NotNull HuskSync plugin) { return Component - .text("•").appendSpace() - .append(Component.text( - WordUtils.capitalizeFully(name().replaceAll("_", " ")), - TextColor.color(0x848484) - )) - .append(Component.text(':')).append(Component.space().color(NamedTextColor.WHITE)) - .append(supplier.apply(plugin)); + .text("•").appendSpace() + .append(Component.text( + WordUtils.capitalizeFully(name().replaceAll("_", " ")), + TextColor.color(0x848484) + )) + .append(Component.text(':')).append(Component.space().color(NamedTextColor.WHITE)) + .append(supplier.apply(plugin)); } @NotNull @@ -278,7 +278,7 @@ public class HuskSyncCommand extends PluginCommand { @NotNull private static Component getLocalhostBoolean(@NotNull String value) { return getBoolean(value.equals("127.0.0.1") || value.equals("0.0.0.0") - || value.equals("localhost") || value.equals("::1")); + || value.equals("localhost") || value.equals("::1")); } } diff --git a/common/src/main/java/net/william278/husksync/command/InventoryCommand.java b/common/src/main/java/net/william278/husksync/command/InventoryCommand.java index da685202..0eadbb0a 100644 --- a/common/src/main/java/net/william278/husksync/command/InventoryCommand.java +++ b/common/src/main/java/net/william278/husksync/command/InventoryCommand.java @@ -47,29 +47,29 @@ public class InventoryCommand extends ItemsCommand { if (optionalInventory.isEmpty()) { viewer.sendMessage(new MineDown("what the FUCK is happening")); plugin.getLocales().getLocale("error_no_data_to_display") - .ifPresent(viewer::sendMessage); + .ifPresent(viewer::sendMessage); return; } // Display opening message plugin.getLocales().getLocale("inventory_viewer_opened", user.getUsername(), - snapshot.getTimestamp().format(DateTimeFormatter - .ofLocalizedDateTime(FormatStyle.MEDIUM, FormatStyle.SHORT))) - .ifPresent(viewer::sendMessage); + snapshot.getTimestamp().format(DateTimeFormatter + .ofLocalizedDateTime(FormatStyle.MEDIUM, FormatStyle.SHORT))) + .ifPresent(viewer::sendMessage); // Show GUI final Data.Items.Inventory inventory = optionalInventory.get(); viewer.showGui( - inventory, - plugin.getLocales().getLocale("inventory_viewer_menu_title", user.getUsername()) - .orElse(new MineDown(String.format("%s's Inventory", user.getUsername()))), - allowEdit, - inventory.getSlotCount(), - (itemsOnClose) -> { - if (allowEdit && !inventory.equals(itemsOnClose)) { - plugin.runAsync(() -> this.updateItems(viewer, itemsOnClose, user)); + inventory, + plugin.getLocales().getLocale("inventory_viewer_menu_title", user.getUsername()) + .orElse(new MineDown(String.format("%s's Inventory", user.getUsername()))), + allowEdit, + inventory.getSlotCount(), + (itemsOnClose) -> { + if (allowEdit && !inventory.equals(itemsOnClose)) { + plugin.runAsync(() -> this.updateItems(viewer, itemsOnClose, user)); + } } - } ); } @@ -79,7 +79,7 @@ public class InventoryCommand extends ItemsCommand { final Optional latestData = plugin.getDatabase().getLatestSnapshot(holder); if (latestData.isEmpty()) { plugin.getLocales().getLocale("error_no_data_to_display") - .ifPresent(viewer::sendMessage); + .ifPresent(viewer::sendMessage); return; } @@ -89,7 +89,7 @@ public class InventoryCommand extends ItemsCommand { data.getInventory().ifPresent(inventory -> inventory.setContents(items)); data.setSaveCause(DataSnapshot.SaveCause.INVENTORY_COMMAND); data.setPinned( - plugin.getSettings().getSynchronization().doAutoPin(DataSnapshot.SaveCause.INVENTORY_COMMAND) + plugin.getSettings().getSynchronization().doAutoPin(DataSnapshot.SaveCause.INVENTORY_COMMAND) ); }); diff --git a/common/src/main/java/net/william278/husksync/command/ItemsCommand.java b/common/src/main/java/net/william278/husksync/command/ItemsCommand.java index 87574e6b..ecdee745 100644 --- a/common/src/main/java/net/william278/husksync/command/ItemsCommand.java +++ b/common/src/main/java/net/william278/husksync/command/ItemsCommand.java @@ -46,7 +46,7 @@ public abstract class ItemsCommand extends PluginCommand { final CommandUser executor = user(command, ctx); if (!(executor instanceof OnlineUser online)) { plugin.getLocales().getLocale("error_in_game_command_only") - .ifPresent(executor::sendMessage); + .ifPresent(executor::sendMessage); return; } this.showSnapshotItems(online, user, version); @@ -56,7 +56,7 @@ public abstract class ItemsCommand extends PluginCommand { final CommandUser executor = user(command, ctx); if (!(executor instanceof OnlineUser online)) { plugin.getLocales().getLocale("error_in_game_command_only") - .ifPresent(executor::sendMessage); + .ifPresent(executor::sendMessage); return; } this.showLatestItems(online, user); @@ -66,44 +66,44 @@ public abstract class ItemsCommand extends PluginCommand { // View (and edit) the latest user data private void showLatestItems(@NotNull OnlineUser viewer, @NotNull User user) { plugin.getRedisManager().getUserData(user.getUuid(), user).thenAccept(data -> data - .or(() -> plugin.getDatabase().getLatestSnapshot(user)) - .or(() -> { - plugin.getLocales().getLocale("error_no_data_to_display") - .ifPresent(viewer::sendMessage); - return Optional.empty(); - }) - .flatMap(packed -> { - if (packed.isInvalid()) { - plugin.getLocales().getLocale("error_invalid_data", packed.getInvalidReason(plugin)) - .ifPresent(viewer::sendMessage); + .or(() -> plugin.getDatabase().getLatestSnapshot(user)) + .or(() -> { + plugin.getLocales().getLocale("error_no_data_to_display") + .ifPresent(viewer::sendMessage); return Optional.empty(); - } - return Optional.of(packed.unpack(plugin)); - }) - .ifPresent(snapshot -> this.showItems( - viewer, snapshot, user, viewer.hasPermission(getPermission("edit")) - ))); + }) + .flatMap(packed -> { + if (packed.isInvalid()) { + plugin.getLocales().getLocale("error_invalid_data", packed.getInvalidReason(plugin)) + .ifPresent(viewer::sendMessage); + return Optional.empty(); + } + return Optional.of(packed.unpack(plugin)); + }) + .ifPresent(snapshot -> this.showItems( + viewer, snapshot, user, viewer.hasPermission(getPermission("edit")) + ))); } // View a specific version of the user data private void showSnapshotItems(@NotNull OnlineUser viewer, @NotNull User user, @NotNull UUID version) { plugin.getDatabase().getSnapshot(user, version) - .or(() -> { - plugin.getLocales().getLocale("error_invalid_version_uuid") - .ifPresent(viewer::sendMessage); - return Optional.empty(); - }) - .flatMap(packed -> { - if (packed.isInvalid()) { - plugin.getLocales().getLocale("error_invalid_data", packed.getInvalidReason(plugin)) - .ifPresent(viewer::sendMessage); + .or(() -> { + plugin.getLocales().getLocale("error_invalid_version_uuid") + .ifPresent(viewer::sendMessage); return Optional.empty(); - } - return Optional.of(packed.unpack(plugin)); - }) - .ifPresent(snapshot -> this.showItems( - viewer, snapshot, user, false - )); + }) + .flatMap(packed -> { + if (packed.isInvalid()) { + plugin.getLocales().getLocale("error_invalid_data", packed.getInvalidReason(plugin)) + .ifPresent(viewer::sendMessage); + return Optional.empty(); + } + return Optional.of(packed.unpack(plugin)); + }) + .ifPresent(snapshot -> this.showItems( + viewer, snapshot, user, false + )); } // Show a GUI menu with the correct item data from the snapshot diff --git a/common/src/main/java/net/william278/husksync/data/DataException.java b/common/src/main/java/net/william278/husksync/data/DataException.java index 41ca1923..d55394f4 100644 --- a/common/src/main/java/net/william278/husksync/data/DataException.java +++ b/common/src/main/java/net/william278/husksync/data/DataException.java @@ -45,13 +45,13 @@ public class DataException extends IllegalStateException { @AllArgsConstructor public enum Reason { INVALID_MINECRAFT_VERSION((plugin, snapshot) -> String.format("The Minecraft version of the snapshot (%s) is " + - "newer than the server's version (%s). Ensure each server is on the same version of Minecraft.", + "newer than the server's version (%s). Ensure each server is on the same version of Minecraft.", snapshot.getMinecraftVersion(), plugin.getMinecraftVersion())), INVALID_FORMAT_VERSION((plugin, snapshot) -> String.format("The format version of the snapshot (%s) is newer " + - "than the server's version (%s). Ensure each server is running the same version of HuskSync.", + "than the server's version (%s). Ensure each server is running the same version of HuskSync.", snapshot.getFormatVersion(), DataSnapshot.CURRENT_FORMAT_VERSION)), INVALID_PLATFORM_TYPE((plugin, snapshot) -> String.format("The platform type of the snapshot (%s) does " + - "not match the server's platform type (%s). Ensure each server has the same platform type.", + "not match the server's platform type (%s). Ensure each server has the same platform type.", snapshot.getPlatformType(), plugin.getPlatformType())), NO_LEGACY_CONVERTER((plugin, snapshot) -> String.format("No legacy converter to convert format version: %s", snapshot.getFormatVersion())); diff --git a/common/src/main/java/net/william278/husksync/data/DataSnapshot.java b/common/src/main/java/net/william278/husksync/data/DataSnapshot.java index 9e707734..2068bc30 100644 --- a/common/src/main/java/net/william278/husksync/data/DataSnapshot.java +++ b/common/src/main/java/net/william278/husksync/data/DataSnapshot.java @@ -535,9 +535,9 @@ public class DataSnapshot { public Builder timestamp(@NotNull OffsetDateTime timestamp) { if (timestamp.isAfter(OffsetDateTime.now())) { throw new IllegalArgumentException("Data snapshots cannot have a timestamp set in the future! " - + "Make sure your database server time matches the server time.\n" - + "Current game server timestamp: " + OffsetDateTime.now() + " / " - + "Snapshot timestamp: " + timestamp); + + "Make sure your database server time matches the server time.\n" + + "Current game server timestamp: " + OffsetDateTime.now() + " / " + + "Snapshot timestamp: " + timestamp); } this.timestamp = timestamp; return this; diff --git a/common/src/main/java/net/william278/husksync/database/MongoDbDatabase.java b/common/src/main/java/net/william278/husksync/database/MongoDbDatabase.java index d935a82f..08da5091 100644 --- a/common/src/main/java/net/william278/husksync/database/MongoDbDatabase.java +++ b/common/src/main/java/net/william278/husksync/database/MongoDbDatabase.java @@ -50,6 +50,7 @@ public class MongoDbDatabase extends Database { private final String usersTable; private final String userDataTable; + public MongoDbDatabase(@NotNull HuskSync plugin) { super(plugin); this.usersTable = plugin.getSettings().getDatabase().getTableName(TableName.USERS); @@ -76,7 +77,7 @@ public class MongoDbDatabase extends Database { } } catch (Exception e) { throw new IllegalStateException("Failed to establish a connection to the MongoDB database. " + - "Please check the supplied database credentials in the config file", e); + "Please check the supplied database credentials in the config file", e); } } @@ -376,7 +377,7 @@ public class MongoDbDatabase extends Database { /** * Update a saved {@link DataSnapshot} by given version UUID * - * @param user The user whose data snapshot + * @param user The user whose data snapshot * @param data The {@link DataSnapshot} to update */ @Blocking diff --git a/common/src/main/java/net/william278/husksync/database/MySqlDatabase.java b/common/src/main/java/net/william278/husksync/database/MySqlDatabase.java index a025751c..f3b38dc1 100644 --- a/common/src/main/java/net/william278/husksync/database/MySqlDatabase.java +++ b/common/src/main/java/net/william278/husksync/database/MySqlDatabase.java @@ -124,11 +124,11 @@ public class MySqlDatabase extends Database { } } catch (SQLException e) { throw new IllegalStateException("Failed to create database tables. Please ensure you are running MySQL v8.0+ " + - "and that your connecting user account has privileges to create tables.", e); + "and that your connecting user account has privileges to create tables.", e); } } catch (SQLException | IOException e) { throw new IllegalStateException("Failed to establish a connection to the MySQL database. " + - "Please check the supplied database credentials in the config file", e); + "Please check the supplied database credentials in the config file", e); } } diff --git a/common/src/main/java/net/william278/husksync/database/PostgresDatabase.java b/common/src/main/java/net/william278/husksync/database/PostgresDatabase.java index fb949830..f414d2f5 100644 --- a/common/src/main/java/net/william278/husksync/database/PostgresDatabase.java +++ b/common/src/main/java/net/william278/husksync/database/PostgresDatabase.java @@ -123,11 +123,11 @@ public class PostgresDatabase extends Database { } } catch (SQLException e) { throw new IllegalStateException("Failed to create database tables. Please ensure you are running PostgreSQL " + - "and that your connecting user account has privileges to create tables.", e); + "and that your connecting user account has privileges to create tables.", e); } } catch (SQLException | IOException e) { throw new IllegalStateException("Failed to establish a connection to the PostgreSQL database. " + - "Please check the supplied database credentials in the config file", e); + "Please check the supplied database credentials in the config file", e); } } diff --git a/common/src/main/java/net/william278/husksync/database/mongo/MongoCollectionHelper.java b/common/src/main/java/net/william278/husksync/database/mongo/MongoCollectionHelper.java index ec460292..0c655502 100644 --- a/common/src/main/java/net/william278/husksync/database/mongo/MongoCollectionHelper.java +++ b/common/src/main/java/net/william278/husksync/database/mongo/MongoCollectionHelper.java @@ -29,6 +29,7 @@ public class MongoCollectionHelper { /** * Initialize the collection helper + * * @param database Instance of {@link MongoConnectionHandler} */ public MongoCollectionHelper(@NotNull MongoConnectionHandler database) { @@ -37,6 +38,7 @@ public class MongoCollectionHelper { /** * Create a collection + * * @param collectionName the collection name */ public void createCollection(@NotNull String collectionName) { @@ -45,6 +47,7 @@ public class MongoCollectionHelper { /** * Delete a collection + * * @param collectionName the collection name */ public void deleteCollection(@NotNull String collectionName) { @@ -53,6 +56,7 @@ public class MongoCollectionHelper { /** * Get a collection + * * @param collectionName the collection name * @return MongoCollection */ @@ -62,8 +66,9 @@ public class MongoCollectionHelper { /** * Add a document to a collection + * * @param collectionName collection to add to - * @param document Document to add + * @param document Document to add */ public void insertDocument(@NotNull String collectionName, @NotNull Document document) { MongoCollection collection = database.getDatabase().getCollection(collectionName); @@ -72,9 +77,10 @@ public class MongoCollectionHelper { /** * Update a document + * * @param collectionName collection the document is in - * @param document filter of document - * @param updates Bson of updates + * @param document filter of document + * @param updates Bson of updates */ public void updateDocument(@NotNull String collectionName, @NotNull Document document, @NotNull Bson updates) { MongoCollection collection = database.getDatabase().getCollection(collectionName); @@ -83,8 +89,9 @@ public class MongoCollectionHelper { /** * Delete a document + * * @param collectionName collection the document is in - * @param document filter to remove + * @param document filter to remove */ public void deleteDocument(@NotNull String collectionName, @NotNull Document document) { MongoCollection collection = database.getDatabase().getCollection(collectionName); diff --git a/common/src/main/java/net/william278/husksync/database/mongo/MongoConnectionHandler.java b/common/src/main/java/net/william278/husksync/database/mongo/MongoConnectionHandler.java index 3dbe53e1..fc76551f 100644 --- a/common/src/main/java/net/william278/husksync/database/mongo/MongoConnectionHandler.java +++ b/common/src/main/java/net/william278/husksync/database/mongo/MongoConnectionHandler.java @@ -35,9 +35,10 @@ public class MongoConnectionHandler { /** * Initiate a connection to a Mongo Server + * * @param uri The connection string */ - public MongoConnectionHandler(@NotNull ConnectionString uri, @NotNull String databaseName) { + public MongoConnectionHandler(@NotNull ConnectionString uri, @NotNull String databaseName) { try { final MongoClientSettings settings = MongoClientSettings.builder() .applyConnectionString(uri) @@ -48,7 +49,7 @@ public class MongoConnectionHandler { this.database = mongoClient.getDatabase(databaseName); } catch (Exception e) { throw new IllegalStateException("Failed to establish a connection to the MongoDB database. " + - "Please check the supplied database credentials in the config file", e); + "Please check the supplied database credentials in the config file", e); } } diff --git a/common/src/main/java/net/william278/husksync/listener/EventListener.java b/common/src/main/java/net/william278/husksync/listener/EventListener.java index 857ae896..3cd22d3d 100644 --- a/common/src/main/java/net/william278/husksync/listener/EventListener.java +++ b/common/src/main/java/net/william278/husksync/listener/EventListener.java @@ -94,7 +94,7 @@ public abstract class EventListener { protected void saveOnPlayerDeath(@NotNull OnlineUser user, @NotNull Data.Items items) { final SaveOnDeathSettings settings = plugin.getSettings().getSynchronization().getSaveOnDeath(); if (plugin.isDisabling() || !settings.isEnabled() || plugin.isLocked(user.getUuid()) - || user.isNpc() || (!settings.isSaveEmptyItems() && items.isEmpty())) { + || user.isNpc() || (!settings.isSaveEmptyItems() && items.isEmpty())) { return; } diff --git a/common/src/main/java/net/william278/husksync/sync/DataSyncer.java b/common/src/main/java/net/william278/husksync/sync/DataSyncer.java index 09df185c..749f5c41 100644 --- a/common/src/main/java/net/william278/husksync/sync/DataSyncer.java +++ b/common/src/main/java/net/william278/husksync/sync/DataSyncer.java @@ -150,7 +150,7 @@ public abstract class DataSyncer { private long getMaxListenAttempts() { return BASE_LISTEN_ATTEMPTS + ( (Math.max(100, plugin.getSettings().getSynchronization().getNetworkLatencyMilliseconds()) / 1000) - * 20 / LISTEN_DELAY + * 20 / LISTEN_DELAY ); } diff --git a/common/src/main/java/net/william278/husksync/user/CommandUser.java b/common/src/main/java/net/william278/husksync/user/CommandUser.java index d01ec988..c4db8540 100644 --- a/common/src/main/java/net/william278/husksync/user/CommandUser.java +++ b/common/src/main/java/net/william278/husksync/user/CommandUser.java @@ -24,7 +24,7 @@ import net.kyori.adventure.audience.Audience; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; -public interface CommandUser { +public interface CommandUser { @NotNull Audience getAudience(); diff --git a/common/src/main/java/net/william278/husksync/util/DataDumper.java b/common/src/main/java/net/william278/husksync/util/DataDumper.java index 1cb0495b..8b4a1fe1 100644 --- a/common/src/main/java/net/william278/husksync/util/DataDumper.java +++ b/common/src/main/java/net/william278/husksync/util/DataDumper.java @@ -178,11 +178,11 @@ public class DataDumper { @NotNull private String getFileName() { return new StringJoiner("_") - .add(user.getUsername()) - .add(snapshot.getTimestamp().format(DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss"))) - .add(snapshot.getSaveCause().name().toLowerCase(Locale.ENGLISH)) - .add(snapshot.getShortId()) - + ".json"; + .add(user.getUsername()) + .add(snapshot.getTimestamp().format(DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss"))) + .add(snapshot.getSaveCause().name().toLowerCase(Locale.ENGLISH)) + .add(snapshot.getShortId()) + + ".json"; } } diff --git a/common/src/main/java/net/william278/husksync/util/DataSnapshotOverview.java b/common/src/main/java/net/william278/husksync/util/DataSnapshotOverview.java index b3e25af3..582a37b9 100644 --- a/common/src/main/java/net/william278/husksync/util/DataSnapshotOverview.java +++ b/common/src/main/java/net/william278/husksync/util/DataSnapshotOverview.java @@ -106,7 +106,7 @@ public class DataSnapshotOverview { .ifPresent(user::sendMessage); if (user.hasPermission("husksync.command.inventory.edit") - && user.hasPermission("husksync.command.enderchest.edit")) { + && user.hasPermission("husksync.command.enderchest.edit")) { locales.getLocale("data_manager_item_buttons", dataOwner.getUsername(), snapshot.getId().toString()) .ifPresent(user::sendMessage); } diff --git a/fabric/src/main/java/net/william278/husksync/data/FabricSerializer.java b/fabric/src/main/java/net/william278/husksync/data/FabricSerializer.java index fa892370..2da90873 100644 --- a/fabric/src/main/java/net/william278/husksync/data/FabricSerializer.java +++ b/fabric/src/main/java/net/william278/husksync/data/FabricSerializer.java @@ -58,7 +58,7 @@ public abstract class FabricSerializer { } public static class Inventory extends FabricSerializer implements Serializer, - ItemDeserializer { + ItemDeserializer { public Inventory(@NotNull HuskSync plugin) { super(plugin); @@ -66,7 +66,7 @@ public abstract class FabricSerializer { @Override public FabricData.Items.Inventory deserialize(@NotNull String serialized, @NotNull Version dataMcVersion) - throws DeserializationException { + throws DeserializationException { // Read item NBT from string final FabricHuskSync plugin = (FabricHuskSync) getPlugin(); final NbtCompound root; @@ -79,8 +79,8 @@ public abstract class FabricSerializer { // Deserialize the inventory data final NbtCompound items = root.contains(ITEMS_TAG) ? root.getCompound(ITEMS_TAG) : null; return FabricData.Items.Inventory.from( - items != null ? getItems(items, dataMcVersion, plugin) : new ItemStack[INVENTORY_SLOT_COUNT], - root.contains(HELD_ITEM_SLOT_TAG) ? root.getInt(HELD_ITEM_SLOT_TAG) : 0 + items != null ? getItems(items, dataMcVersion, plugin) : new ItemStack[INVENTORY_SLOT_COUNT], + root.contains(HELD_ITEM_SLOT_TAG) ? root.getInt(HELD_ITEM_SLOT_TAG) : 0 ); } @@ -105,7 +105,7 @@ public abstract class FabricSerializer { } public static class EnderChest extends FabricSerializer implements Serializer, - ItemDeserializer { + ItemDeserializer { public EnderChest(@NotNull HuskSync plugin) { super(plugin); @@ -113,7 +113,7 @@ public abstract class FabricSerializer { @Override public FabricData.Items.EnderChest deserialize(@NotNull String serialized, @NotNull Version dataMcVersion) - throws DeserializationException { + throws DeserializationException { final FabricHuskSync plugin = (FabricHuskSync) getPlugin(); try { final NbtCompound items = StringNbtReader.parse(serialized); @@ -216,8 +216,8 @@ public abstract class FabricSerializer { private NbtCompound upgradeItemData(@NotNull NbtCompound tag, @NotNull Version mcVersion, @NotNull FabricHuskSync plugin) { return (NbtCompound) plugin.getMinecraftServer().getDataFixer().update( - TypeReferences.ITEM_STACK, new Dynamic((DynamicOps) NbtOps.INSTANCE, tag), - getDataVersion(mcVersion), getDataVersion(plugin.getMinecraftVersion()) + TypeReferences.ITEM_STACK, new Dynamic((DynamicOps) NbtOps.INSTANCE, tag), + getDataVersion(mcVersion), getDataVersion(plugin.getMinecraftVersion()) ).getValue(); } @@ -251,7 +251,7 @@ public abstract class FabricSerializer { @Override public FabricData.PotionEffects deserialize(@NotNull String serialized) throws DeserializationException { return FabricData.PotionEffects.adapt( - plugin.getGson().fromJson(serialized, TYPE.getType()) + plugin.getGson().fromJson(serialized, TYPE.getType()) ); } @@ -275,7 +275,7 @@ public abstract class FabricSerializer { @Override public FabricData.Advancements deserialize(@NotNull String serialized) throws DeserializationException { return FabricData.Advancements.from( - plugin.getGson().fromJson(serialized, TYPE.getType()) + plugin.getGson().fromJson(serialized, TYPE.getType()) ); } diff --git a/fabric/src/main/java/net/william278/husksync/mixins/ServerPlayNetworkHandlerMixin.java b/fabric/src/main/java/net/william278/husksync/mixins/ServerPlayNetworkHandlerMixin.java index 344692bc..39c5c168 100644 --- a/fabric/src/main/java/net/william278/husksync/mixins/ServerPlayNetworkHandlerMixin.java +++ b/fabric/src/main/java/net/william278/husksync/mixins/ServerPlayNetworkHandlerMixin.java @@ -50,7 +50,7 @@ public abstract class ServerPlayNetworkHandlerMixin { @Inject(method = "onPlayerAction", at = @At("HEAD"), cancellable = true) public void onPlayerAction(PlayerActionC2SPacket packet, CallbackInfo ci) { if (packet.getAction() == PlayerActionC2SPacket.Action.DROP_ITEM - || packet.getAction() == PlayerActionC2SPacket.Action.DROP_ALL_ITEMS) { + || packet.getAction() == PlayerActionC2SPacket.Action.DROP_ALL_ITEMS) { ItemStack stack = player.getStackInHand(Hand.MAIN_HAND); ActionResult result = ItemDropCallback.EVENT.invoker().interact(player, stack);