9
0
mirror of https://github.com/WiIIiam278/HuskSync.git synced 2025-12-19 14:59:21 +00:00

feat: introduce new versioning & Minecraft compatibility system

This commit is contained in:
William
2024-08-25 20:07:04 +01:00
parent 52ec138273
commit dfd828bca1
19 changed files with 211 additions and 88 deletions

View File

@@ -31,23 +31,3 @@ jobs:
if: success() || failure() # Continue on failure if: success() || failure() # Continue on failure
with: with:
report_paths: '**/build/test-results/test/TEST-*.xml' report_paths: '**/build/test-results/test/TEST-*.xml'
- name: 'Publish to William278.net 🚀'
uses: WiIIiam278/bones-publish-action@v1
with:
api-key: ${{ secrets.BONES_API_KEY }}
project: 'husksync'
channel: 'release'
version: ${{ github.event.release.tag_name }}
changelog: ${{ github.event.release.body }}
distro-names: |
paper
fabric-1.20.1
distro-groups: |
paper
fabric
distro-descriptions: |
Paper
Fabric 1.20.1
files: |
target/HuskSync-Paper-${{ github.event.release.tag_name }}.jar
target/HuskSync-Fabric-${{ github.event.release.tag_name }}+mc.1.20.1.jar

View File

@@ -43,8 +43,27 @@
**Ready?** [It's syncing time!](https://william278.net/docs/husksync/setup) **Ready?** [It's syncing time!](https://william278.net/docs/husksync/setup)
## Compatibility
HuskSync supports the following [compatible versions](https://william278.net/docs/husksync/compatibility) of Minecraft. Since v3.7, you must download the correct version of HuskSync for your server:
| Minecraft | Latest HuskSync | Java Version | Platforms | Support Ends |
|:----------------:|:---------------:|:------------:|:--------------|:--------------------------|
| 1.21.1 | _latest_ | 21 | Paper, Fabric | ✅ **Active Release** |
| 1.20.6 | 3.6.8 | 17 | Paper | ✅ **November 2024** |
| 1.20.4 | 3.6.8 | 17 | Paper | ❌ _July 2024_ |
| 1.20.1 | _latest_ | 17 | Paper, Fabric | ✅ **November 2025** (LTS) |
| 1.17.1 - 1.19.4 | 3.6.8 | 17 | Paper | ❌ _Support ended_ |
| 1.16.5 | 3.2.1 | 16 | Paper | ❌ _Support ended_ |
HuskSync is primarily developed against the latest release. Old Minecraft versions are allocated support channels based on popularity, mod support, etc:
* Long Term Support (LTS) – Supported for up to 12-18 months
* Standard Release Support (SRS) – Supported for 3-6 months
Verify your purchase on Discord and [Download HuskSync](https://william278.net/project/husksync#download) for your server.
## Setup ## Setup
Requires a MySQL/Mongo/PostgreSQL database, a Redis (v5.0+) server and a network of Spigot (1.17.1+) or Fabric (1.20.1) Minecraft servers, running Java 17+. Requires a MySQL/Mongo/PostgreSQL database, a Redis (v5.0+) server and a network of Spigot or Fabric Minecraft servers, running Java 17+.
1. Place the plugin jar file in the `/plugins` or `/mods` directory of each Spigot/Fabric server. You do not need to install HuskSync as a proxy plugin. 1. Place the plugin jar file in the `/plugins` or `/mods` directory of each Spigot/Fabric server. You do not need to install HuskSync as a proxy plugin.
2. Start, then stop every server to let HuskSync generate the config file. 2. Start, then stop every server to let HuskSync generate the config file.

View File

@@ -18,6 +18,7 @@ ext {
set 'version', version.toString() set 'version', version.toString()
set 'description', description.toString() set 'description', description.toString()
set 'minecraft_version', minecraft_version.toString()
set 'jedis_version', jedis_version.toString() set 'jedis_version', jedis_version.toString()
set 'mysql_driver_version', mysql_driver_version.toString() set 'mysql_driver_version', mysql_driver_version.toString()
set 'mariadb_driver_version', mariadb_driver_version.toString() set 'mariadb_driver_version', mariadb_driver_version.toString()
@@ -63,7 +64,7 @@ allprojects {
apply plugin: 'java' apply plugin: 'java'
compileJava.options.encoding = 'UTF-8' compileJava.options.encoding = 'UTF-8'
compileJava.options.release.set 17 compileJava.options.release.set Integer.parseInt(rootProject.ext.javaVersion)
javadoc.options.encoding = 'UTF-8' javadoc.options.encoding = 'UTF-8'
javadoc.options.addStringOption('Xdoclint:none', '-quiet') javadoc.options.addStringOption('Xdoclint:none', '-quiet')
@@ -125,9 +126,9 @@ subprojects {
archiveClassifier.set('') archiveClassifier.set('')
} }
// Append the Minecraft to the version for Fabric projects // Append the compatible Minecraft version to the version
if (project.name == 'fabric') { if (['bukkit', 'paper', 'fabric'].contains(project.name)) {
version += "+mc.${fabric_minecraft_version}" version += "+mc.${minecraft_version}"
} }
// API publishing // API publishing
@@ -163,7 +164,7 @@ subprojects {
mavenJavaBukkit(MavenPublication) { mavenJavaBukkit(MavenPublication) {
groupId = 'net.william278.husksync' groupId = 'net.william278.husksync'
artifactId = 'husksync-bukkit' artifactId = 'husksync-bukkit'
version = "$rootProject.version" version = "$rootProject.version+${minecraft_version}"
artifact shadowJar artifact shadowJar
artifact sourcesJar artifact sourcesJar
artifact javadocJar artifact javadocJar
@@ -176,7 +177,7 @@ subprojects {
mavenJavaFabric(MavenPublication) { mavenJavaFabric(MavenPublication) {
groupId = 'net.william278.husksync' groupId = 'net.william278.husksync'
artifactId = 'husksync-fabric' artifactId = 'husksync-fabric'
version = "$rootProject.version+${fabric_minecraft_version}" version = "$rootProject.version+${minecraft_version}"
artifact remapJar artifact remapJar
artifact sourcesJar artifact sourcesJar
artifact javadocJar artifact javadocJar
@@ -190,7 +191,7 @@ subprojects {
clean.delete "$rootDir/target" clean.delete "$rootDir/target"
} }
logger.lifecycle("Building HuskSync ${version} by William278") logger.lifecycle("Building HuskSync ${version} by William278 for Minecraft ${minecraft_version}")
@SuppressWarnings('GrMethodMayBeStatic') @SuppressWarnings('GrMethodMayBeStatic')
def versionMetadata() { def versionMetadata() {

View File

@@ -11,7 +11,7 @@ dependencies {
implementation 'space.arim.morepaperlib:morepaperlib:0.4.4' implementation 'space.arim.morepaperlib:morepaperlib:0.4.4'
implementation 'de.tr7zw:item-nbt-api:2.13.2' implementation 'de.tr7zw:item-nbt-api:2.13.2'
compileOnly 'org.spigotmc:spigot-api:1.17.1-R0.1-SNAPSHOT' compileOnly "org.spigotmc:spigot-api:${bukkit_spigot_api}"
compileOnly 'com.github.retrooper.packetevents:spigot:2.3.0' compileOnly 'com.github.retrooper.packetevents:spigot:2.3.0'
compileOnly 'com.comphenix.protocol:ProtocolLib:5.1.0' compileOnly 'com.comphenix.protocol:ProtocolLib:5.1.0'
compileOnly 'org.projectlombok:lombok:1.18.34' compileOnly 'org.projectlombok:lombok:1.18.34'

View File

@@ -137,6 +137,9 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync, BukkitTask.S
public void onEnable() { public void onEnable() {
this.audiences = BukkitAudiences.create(this); this.audiences = BukkitAudiences.create(this);
// Check compatibility
checkCompatibility();
// Register commands // Register commands
initialize("commands", (plugin) -> getUniform().register(PluginCommand.Type.create(this))); initialize("commands", (plugin) -> getUniform().register(PluginCommand.Type.create(this)));

View File

@@ -157,21 +157,18 @@ public abstract class BukkitData implements Data {
this.clearInventoryCraftingSlots(player); this.clearInventoryCraftingSlots(player);
player.setItemOnCursor(null); player.setItemOnCursor(null);
player.getInventory().setContents(plugin.setMapViews(getContents())); player.getInventory().setContents(plugin.setMapViews(getContents()));
player.updateInventory();
player.getInventory().setHeldItemSlot(heldItemSlot); player.getInventory().setHeldItemSlot(heldItemSlot);
//noinspection UnstableApiUsage
player.updateInventory();
} }
private void clearInventoryCraftingSlots(@NotNull Player player) { private void clearInventoryCraftingSlots(@NotNull Player player) {
try {
final org.bukkit.inventory.Inventory inventory = player.getOpenInventory().getTopInventory(); final org.bukkit.inventory.Inventory inventory = player.getOpenInventory().getTopInventory();
if (inventory.getType() == InventoryType.CRAFTING) { if (inventory.getType() == InventoryType.CRAFTING) {
for (int slot = 0; slot < 5; slot++) { for (int slot = 0; slot < 5; slot++) {
inventory.setItem(slot, null); inventory.setItem(slot, null);
} }
} }
} catch (Throwable e) {
// Ignore any exceptions
}
} }
} }

View File

@@ -308,7 +308,7 @@ public interface BukkitMapPersister {
// We set the pixels in this order to avoid the map being rendered upside down // We set the pixels in this order to avoid the map being rendered upside down
for (int i = 0; i < 128; i++) { for (int i = 0; i < 128; i++) {
for (int j = 0; j < 128; j++) { for (int j = 0; j < 128; j++) {
canvas.setPixel(j, i, (byte) canvasData.getColorAt(i, j)); canvas.setPixelColor(j, i, canvasData.getMapColorAt(i, j));
} }
} }
@@ -383,20 +383,40 @@ public interface BukkitMapPersister {
} }
@Override @Override
@Deprecated
public void setPixel(int x, int y, byte color) { public void setPixel(int x, int y, byte color) {
pixels[x][y] = color; pixels[x][y] = color;
} }
@Override @Override
@Deprecated
public byte getPixel(int x, int y) { public byte getPixel(int x, int y) {
return (byte) pixels[x][y]; return (byte) pixels[x][y];
} }
@Override @Override
@Deprecated
public byte getBasePixel(int x, int y) { public byte getBasePixel(int x, int y) {
return getPixel(x, y); return getPixel(x, y);
} }
@Override
public void setPixelColor(int i, int i1, @Nullable Color color) {
pixels[i][i1] = color == null ? 0 : color.getRGB();
}
@Nullable
@Override
public Color getPixelColor(int x, int y) {
return getBasePixelColor(x, y);
}
@NotNull
@Override
public Color getBasePixelColor(int x, int y) {
return new Color(pixels[x][y]);
}
@Override @Override
public void drawImage(int x, int y, @NotNull Image image) { public void drawImage(int x, int y, @NotNull Image image) {
// Not implemented // Not implemented
@@ -424,7 +444,6 @@ public interface BukkitMapPersister {
@NotNull @NotNull
private MapData extractMapData() { private MapData extractMapData() {
final List<MapBanner> banners = Lists.newArrayList(); final List<MapBanner> banners = Lists.newArrayList();
try {
final String BANNER_PREFIX = "banner_"; final String BANNER_PREFIX = "banner_";
for (int i = 0; i < getCursors().size(); i++) { for (int i = 0; i < getCursors().size(); i++) {
final MapCursor cursor = getCursors().getCursor(i); final MapCursor cursor = getCursors().getCursor(i);
@@ -440,8 +459,6 @@ public interface BukkitMapPersister {
} }
} }
} catch (Throwable ignored) {
}
return MapData.fromPixels(pixels, getDimension(), (byte) 2, banners, List.of()); return MapData.fromPixels(pixels, getDimension(), (byte) 2, banners, List.of());
} }
} }

View File

@@ -39,6 +39,7 @@ import net.william278.husksync.redis.RedisManager;
import net.william278.husksync.sync.DataSyncer; import net.william278.husksync.sync.DataSyncer;
import net.william278.husksync.user.ConsoleUser; import net.william278.husksync.user.ConsoleUser;
import net.william278.husksync.user.OnlineUser; import net.william278.husksync.user.OnlineUser;
import net.william278.husksync.util.CompatibilityChecker;
import net.william278.husksync.util.LegacyConverter; import net.william278.husksync.util.LegacyConverter;
import net.william278.husksync.util.Task; import net.william278.husksync.util.Task;
import net.william278.uniform.Uniform; import net.william278.uniform.Uniform;
@@ -52,7 +53,8 @@ import java.util.logging.Level;
/** /**
* Abstract implementation of the HuskSync plugin. * Abstract implementation of the HuskSync plugin.
*/ */
public interface HuskSync extends Task.Supplier, EventDispatcher, ConfigProvider, SerializerRegistry { public interface HuskSync extends Task.Supplier, EventDispatcher, ConfigProvider, SerializerRegistry,
CompatibilityChecker {
int SPIGOT_RESOURCE_ID = 97144; int SPIGOT_RESOURCE_ID = 97144;
@@ -338,7 +340,11 @@ public interface HuskSync extends Task.Supplier, EventDispatcher, ConfigProvider
Caused by: %s"""; Caused by: %s""";
FailedToLoadException(@NotNull String message, @NotNull Throwable cause) { public FailedToLoadException(@NotNull String message) {
super(String.format(FORMAT, message));
}
public FailedToLoadException(@NotNull String message, @NotNull Throwable cause) {
super(String.format(FORMAT, message), cause); super(String.format(FORMAT, message), cause);
} }

View File

@@ -0,0 +1,76 @@
/*
* This file is part of HuskSync, licensed under the Apache License 2.0.
*
* Copyright (c) William278 <will27528@gmail.com>
* Copyright (c) contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.william278.husksync.util;
import de.exlll.configlib.Configuration;
import de.exlll.configlib.YamlConfigurationProperties;
import de.exlll.configlib.YamlConfigurationStore;
import net.william278.desertwell.util.Version;
import net.william278.husksync.HuskSync;
import org.jetbrains.annotations.NotNull;
import java.io.InputStream;
import java.util.Objects;
import java.util.logging.Level;
import static net.william278.husksync.config.ConfigProvider.YAML_CONFIGURATION_PROPERTIES;
public interface CompatibilityChecker {
String COMPATIBILITY_FILE = "compatibility.yml";
default void checkCompatibility() throws HuskSync.FailedToLoadException {
final YamlConfigurationProperties p = YAML_CONFIGURATION_PROPERTIES.build();
final Version compatible;
// Load compatibility file
try (InputStream input = getResource(COMPATIBILITY_FILE)) {
final CompatibilityConfig compat = new YamlConfigurationStore<>(CompatibilityConfig.class, p).read(input);
compatible = Objects.requireNonNull(compat.getCompatibleWith());
} catch (Throwable e) {
getPlugin().log(Level.WARNING, "Failed to load compatibility config, skipping check.", e);
return;
}
// Check compatibility
if (!compatible.equals(getPlugin().getMinecraftVersion())) {
throw new HuskSync.FailedToLoadException("""
Incompatible Minecraft version. This version of HuskSync is designed for Minecraft %s.
Please download the correct version of HuskSync for your server's Minecraft version (%s)."""
.formatted(compatible.toString(), getPlugin().getMinecraftVersion().toString()));
}
}
InputStream getResource(@NotNull String name);
@NotNull
HuskSync getPlugin();
@Configuration
record CompatibilityConfig(@NotNull String compatibleMinecraftVersion) {
@NotNull
public Version getCompatibleWith() {
return Version.fromString(compatibleMinecraftVersion);
}
}
}

View File

@@ -0,0 +1,2 @@
# File used for checking Minecraft server compatibility with this version of HuskSync
minecraft_version: '${minecraft_version}'

View File

@@ -53,12 +53,12 @@ Add the repository to your `pom.xml` as per below. You can alternatively specify
</repository> </repository>
</repositories> </repositories>
``` ```
Add the dependency to your `pom.xml` as per below. Replace `VERSION` with the latest version of HuskSync (without the v): ![Latest version](https://img.shields.io/github/v/tag/WiIIiam278/HuskSync?color=%23282828&label=%20&style=flat-square). Note for Fabric you must append the target Minecraft version to the version number (e.g. `3.6.1+1.20.1`). Add the dependency to your `pom.xml` as per below. Replace `HUSKSYNC_VERSION` with the latest version of HuskSync (without the v): ![Latest version](https://img.shields.io/github/v/tag/WiIIiam278/HuskSync?color=%23282828&label=%20&style=flat-square). and `MINECRAFT_VERSION` with the version of Minecraft you want to target (e.g. `1.20.1`). A correctly formed version target should look like: `3.7+1.20.1`. Omit the plus symbol and Minecraft version if you are targeting the `common` platform.
```xml ```xml
<dependency> <dependency>
<groupId>net.william278.husksync</groupId> <groupId>net.william278.husksync</groupId>
<artifactId>husksync-PLATFORM</artifactId> <artifactId>husksync-PLATFORM</artifactId>
<version>VERSION</version> <version>HUSKSYNC_VERSION+MINECRAFT_VERSION</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
``` ```
@@ -76,11 +76,11 @@ allprojects {
} }
} }
``` ```
Add the dependency as per below. Replace `VERSION` with the latest version of HuskSync (without the v): ![Latest version](https://img.shields.io/github/v/tag/WiIIiam278/HuskSync?color=%23282828&label=%20&style=flat-square). Note for Fabric you must append the target Minecraft version to the version number (e.g. `3.6.1+1.20.1`). Add the dependency as per below. Replace `HUSKSYNC_VERSION` with the latest version of HuskSync (without the v): ![Latest version](https://img.shields.io/github/v/tag/WiIIiam278/HuskSync?color=%23282828&label=%20&style=flat-square). and `MINECRAFT_VERSION` with the version of Minecraft you want to target (e.g. `1.20.1`). A correctly formed version target should look like: `3.7+1.20.1`. Omit the plus symbol and Minecraft version if you are targeting the `common` platform.
```groovy ```groovy
dependencies { dependencies {
compileOnly 'net.william278.husksync:husksync-PLATFORM:VERSION' compileOnly 'net.william278.husksync:husksync-PLATFORM:HUSKSYNC_VERSION+MINECRAFT_VERSION'
} }
``` ```
</details> </details>

22
docs/Compatibility.md Normal file
View File

@@ -0,0 +1,22 @@
HuskSync supports the following versions of Minecraft. Since v3.7, you must download the correct version of HuskSync for your server:
| Minecraft | Latest HuskSync | Java Version | Platforms | Support Ends |
|:----------------:|:---------------:|:------------:|:--------------|:--------------------------|
| 1.21.1 | _latest_ | 21 | Paper, Fabric | ✅ **Active Release** |
| 1.20.6 | 3.6.8 | 17 | Paper | ✅ **November 2024** |
| 1.20.4 | 3.6.8 | 17 | Paper | ❌ _July 2024_ |
| 1.20.1 | _latest_ | 17 | Paper, Fabric | ✅ **November 2025** (LTS) |
| 1.17.1 - 1.19.4 | 3.6.8 | 17 | Paper | ❌ _Support ended_ |
| 1.16.5 | 3.2.1 | 16 | Paper | ❌ _Support ended_ |
## Incompatible
This plugin does not support the following software-Minecraft version combinations. The plugin will fail to load if you attempt to run it with these versions. Apologies for the inconvenience.
| Minecraft | Server Software | Notes |
|-------------------|-------------------------------------------|----------------------------------------|
| 1.19.4 | Only: `Purpur, Pufferfish`&dagger; | Older Paper builds also not supported. |
| 1.19.3 | Only: `Paper, Purpur, Pufferfish`&dagger; | Upgrade to 1.19.4 or use Spigot |
| 1.16.5 | _All_ | Please use v3.3.1 or lower |
| below 1.16.5 | _All_ | Upgrade to Minecraft 1.16.5 |
&dagger;Further downstream forks of this server software are also affected.

View File

@@ -1,17 +1,18 @@
> **Warning:** Fabric support is currently in beta and is not production ready yet. Customers can get in touch on Discord to request the Fabric build, or you can self-compile. > **Warning:** Fabric support is currently in beta and is not production ready yet.
This will walk you through installing HuskSync on your network of Spigot or Fabric servers. Please check your server's [[Compatibility]] and download the correct version of HuskSync for your server.
This will walk you through installing HuskSync on your network of Spigot or Fabric servers.
## Requirements ## Requirements
> **Warning:** Mixing and matching Fabric/Spigot servers is not supported, and all servers must be running the same Minecraft version. > **Warning:** Mixing and matching Fabric/Spigot servers is not supported, and all servers must be running the same Minecraft version.
> **Note:** Please also note some specific legacy Paper/Purpur versions are [not compatible](Unsupported-Versions) with HuskSync. > **Note:** Please also note some specific legacy Paper/Purpur versions are [not compatible](Compatibility) with HuskSync.
* A MySQL Database (v8.0+) * A MySQL Database (v8.0+)
* **OR** a MariaDB, PostrgreSQL or MongoDB database, which are also supported * **OR** a MariaDB, PostrgreSQL or MongoDB database, which are also supported
* A Redis Database (v5.0+) &mdash; see [[FAQs]] for more details. * A Redis Database (v5.0+) &mdash; see [[FAQs]] for more details.
* Any number of Spigot servers, connected by a BungeeCord or Velocity-based proxy (Minecraft v1.17.1+, running Java 17+) * Any number of Spigot servers, connected by a BungeeCord or Velocity-based proxy (see [[Compatibility]])
* **OR** a network of Fabric servers, connected by a Fabric proxy (Minecraft v1.20.1, running Java 17+) * **OR** a network of Fabric servers, connected by a Velocity-based proxy
## Setup Instructions ## Setup Instructions
### 1. Install the jar ### 1. Install the jar

View File

@@ -1,11 +0,0 @@
This plugin does not support the following software-Minecraft version combinations. The plugin will fail to load if you attempt to run it with these versions. Apologies for the inconvenience.
## Incompatibility table
| Minecraft Versions | Server Software | Notes |
|--------------------|-------------------------------------------|----------------------------------------|
| 1.19.4 | Only: `Purpur, Pufferfish`&dagger; | Older Paper builds also not supported. |
| 1.19.3 | Only: `Paper, Purpur, Pufferfish`&dagger; | Upgrade to 1.19.4 or use Spigot |
| 1.16.5 | _All_ | Please use v3.3.1 or lower |
| below 1.16.5 | _All_ | Upgrade Minecraft 1.16.5 |
&dagger;Further downstream forks of this server software are also affected.

View File

@@ -11,13 +11,13 @@ repositories {
} }
dependencies { dependencies {
minecraft "com.mojang:minecraft:${fabric_minecraft_version}" minecraft "com.mojang:minecraft:${minecraft_version}"
mappings "net.fabricmc:yarn:${fabric_yarn_mappings}:v2" mappings "net.fabricmc:yarn:${fabric_yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
modImplementation include("net.kyori:adventure-platform-fabric:${adventure_platform_fabric_version}") modImplementation include("net.kyori:adventure-platform-fabric:${fabric_adventure_platform_version}")
modImplementation include("me.lucko:fabric-permissions-api:${fabric_permissions_api_version}") modImplementation include("me.lucko:fabric-permissions-api:${fabric_permissions_api_version}")
modImplementation include("eu.pb4:sgui:${sgui_version}") modImplementation include("eu.pb4:sgui:${fabric_sgui_version}")
modImplementation include('net.william278.uniform:uniform-fabric:1.2.1+1.20.1') modImplementation include('net.william278.uniform:uniform-fabric:1.2.1+1.20.1')
modCompileOnly "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" modCompileOnly "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}"

View File

@@ -120,6 +120,9 @@ public class FabricHuskSync implements DedicatedServerModInitializer, HuskSync,
this.disabling = false; this.disabling = false;
this.gson = createGson(); this.gson = createGson();
// Check compatibility
checkCompatibility();
// Load settings and locales // Load settings and locales
initialize("plugin config & locale files", (plugin) -> { initialize("plugin config & locale files", (plugin) -> {
loadSettings(); loadSettings();

View File

@@ -40,7 +40,7 @@
}, },
"depends": { "depends": {
"fabricloader": ">=${fabric_loader_version}", "fabricloader": ">=${fabric_loader_version}",
"minecraft": ">=${fabric_minecraft_version}", "minecraft": ">=${minecraft_version}",
"fabric-api": "*" "fabric-api": "*"
}, },
"suggests": { "suggests": {

View File

@@ -1,12 +1,15 @@
# Gradle settings
org.gradle.jvmargs='-Dfile.encoding=UTF-8' org.gradle.jvmargs='-Dfile.encoding=UTF-8'
org.gradle.daemon=true org.gradle.daemon=true
javaVersion=17 javaVersion=17
plugin_version=3.6.8 # Plugin settings
plugin_version=3.7
minecraft_version=1.20.1
plugin_archive=husksync plugin_archive=husksync
plugin_description=A modern, cross-server player data synchronization system plugin_description=A modern, cross-server player data synchronization system
# Drivers
jedis_version=5.1.4 jedis_version=5.1.4
mysql_driver_version=9.0.0 mysql_driver_version=9.0.0
mariadb_driver_version=3.4.1 mariadb_driver_version=3.4.1
@@ -14,10 +17,14 @@ postgres_driver_version=42.7.3
mongodb_driver_version=5.1.2 mongodb_driver_version=5.1.2
snappy_version=1.1.10.6 snappy_version=1.1.10.6
fabric_minecraft_version=1.20.1 # Spigot/Paper build settings
bukkit_spigot_api=1.20.1-R0.1-SNAPSHOT
bukkit_paper_api=1.20.1-R0.1-SNAPSHOT
# Fabric build settings
fabric_loader_version=0.15.11 fabric_loader_version=0.15.11
fabric_yarn_mappings=1.20.1+build.10 fabric_yarn_mappings=1.20.1+build.10
fabric_api_version=0.92.2+1.20.1 fabric_api_version=0.92.2+1.20.1
adventure_platform_fabric_version=5.9.0 fabric_adventure_platform_version=5.9.0
fabric_permissions_api_version=0.2-SNAPSHOT fabric_permissions_api_version=0.2-SNAPSHOT
sgui_version=1.2.2+1.20 fabric_sgui_version=1.2.2+1.20

View File

@@ -8,7 +8,7 @@ dependencies {
implementation 'net.william278.uniform:uniform-paper:1.2.1' implementation 'net.william278.uniform:uniform-paper:1.2.1'
compileOnly 'io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT' compileOnly "io.papermc.paper:paper-api:${bukkit_paper_api}"
compileOnly 'org.jetbrains:annotations:24.1.0' compileOnly 'org.jetbrains:annotations:24.1.0'
compileOnly 'org.projectlombok:lombok:1.18.34' compileOnly 'org.projectlombok:lombok:1.18.34'