Compare commits

...
21 Commits
Author SHA1 Message Date
Jason Penilla f59de86c5e release: Version 2.0.14 2023-09-30 12:15:26 -07:00
Jason Penilla 0f1c69f8b2 update run-paper and adventure-platform 2023-09-30 12:12:31 -07:00
Jason Penilla f8deb9b7fb build updates 2023-09-23 21:17:36 -07:00
Jason Penilla 8428e2b124 1.20.2 2023-09-23 21:10:19 -07:00
Jason Penilla 8f91a1b445 bump SpongeGradle 2023-09-09 16:47:30 -07:00
Jason Penilla 0ca1f8f19d build updates 2023-09-09 15:34:03 -07:00
Jason Penilla 2fd3d41cbd build: Remove quilt repo
Quiltflower is succeeded by Vineflower which is on Maven Central.
2023-07-13 11:01:31 -07:00
Jason Penilla ce201ba89e build updates 2023-06-27 22:02:55 -07:00
Jason Penilla e33135d3c6 2.0.14-SNAPSHOT 2023-06-27 22:01:51 -07:00
Jason Penilla 5f6e2789e2 release: Version 2.0.13 2023-06-27 21:40:49 -07:00
Jason Penilla add32b31e7 fabric: 1.20.1 2023-06-17 10:08:41 -07:00
Jason Penilla b2b2801907 2.0.13-SNAPSHOT 2023-05-07 14:52:36 -07:00
Jason Penilla c919c40a59 release: Version 2.0.12 2023-05-07 14:35:19 -07:00
Jason Penilla b3cc4bce5c Fix style and add remap=false to favicon codec mixin 2023-05-07 13:54:36 -07:00
Jason Penilla 6fdf75dd3d Update license headers 2023-05-07 13:50:04 -07:00
Jason Penilla a8c2b0f23e Improve Folia detection 2023-05-07 13:49:21 -07:00
Jason Penilla 0ee99d90f2 fabric: Bring back caching of encoded server icons 2023-05-07 13:47:58 -07:00
renovate[bot] 6623a5928e chore(deps): update dependency gradle to v8.1.1 2023-05-07 13:18:43 -07:00
Jason Penilla 6532c03706 Add error handler to future 2023-03-27 21:21:15 -07:00
Jason Penilla 0bf3bfba7f Add Folia support 2023-03-27 21:17:18 -07:00
Jason Penilla f7094e0a77 2.0.12-SNAPSHOT 2023-03-18 13:21:57 -07:00
63 changed files with 295 additions and 165 deletions

No files matched your search

-1
View File
@@ -10,7 +10,6 @@ dependencies {
implementation(libs.indraCommon)
implementation(libs.indraLicenser)
implementation(libs.shadow)
implementation(libs.testLogger)
implementation(libs.minotaur)
implementation(libs.hangarPublishPlugin)
+1 -1
View File
@@ -2,7 +2,7 @@ import ca.stellardrift.build.configurate.ConfigFormats
import ca.stellardrift.build.configurate.catalog.PolyglotVersionCatalogExtension
plugins {
id("ca.stellardrift.polyglot-version-catalogs") version "6.0.1"
id("ca.stellardrift.polyglot-version-catalogs") version "6.1.0"
}
extensions.configure<PolyglotVersionCatalogExtension> {
+2 -1
View File
@@ -29,5 +29,6 @@ val bukkitVersions = listOf(
"1.16.5",
"1.17.1",
"1.18.2",
"1.19.4"
"1.19.4",
"1.20.2"
)
@@ -1,12 +1,9 @@
import com.adarshr.gradle.testlogger.theme.ThemeType
plugins {
id("java-library")
id("net.kyori.indra")
id("net.kyori.indra.git")
id("net.kyori.indra.checkstyle")
id("net.kyori.indra.license-header")
id("com.adarshr.test-logger")
id("net.kyori.indra.licenser.spotless")
}
version = (version as String)
@@ -21,24 +18,23 @@ indra {
mitLicense()
}
testlogger {
theme = ThemeType.MOCHA_PARALLEL
showPassed = false
}
dependencies {
testImplementation(libs.jupiterEngine)
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
tasks {
tasks {
withType<JavaCompile> {
options.compilerArgs.add("-Xlint:-processing")
withType<JavaCompile> {
options.compilerArgs.add("-Xlint:-processing")
}
sequenceOf(javadocJar, javadoc).forEach {
it.configure {
onlyIf { false }
}
sequenceOf(javadocJar, javadoc).forEach {
it.configure {
onlyIf { false }
}
}
test {
testLogging {
events("passed")
}
}
}
@@ -10,7 +10,7 @@ fun jar(platform: String) = project(":minimotd-$platform")
hangarPublish.publications.register("plugin") {
version.set(project.version as String)
namespace("jmp", "MiniMOTD")
id.set("MiniMOTD")
channel.set("Release")
changelog.set(releaseNotes)
apiKey.set(providers.environmentVariable("HANGAR_UPLOAD_KEY"))
@@ -29,7 +29,7 @@ hangarPublish.publications.register("plugin") {
}
register(Platforms.WATERFALL) {
jar.set(jar("bungeecord"))
platformVersions.addAll("1.19")
platformVersions.addAll("1.20")
}
}
}
@@ -1,7 +1,8 @@
import com.modrinth.minotaur.ModrinthExtension
plugins {
id("minimotd.base-conventions")
id("net.kyori.indra.git")
id("com.modrinth.minotaur")
}
val platformExtension = extensions.create<MiniMOTDPlatformExtension>("miniMOTDPlatform")
@@ -18,10 +19,14 @@ tasks {
}
}
modrinth {
projectId.set("16vhQOQN")
versionType.set("release")
file.set(platformExtension.jarTask.flatMap { it.archiveFile })
changelog.set(releaseNotes)
token.set(providers.environmentVariable("MODRINTH_TOKEN"))
if (name != "minimotd-bukkit-bungeecord") {
plugins.apply("com.modrinth.minotaur")
the<ModrinthExtension>().apply {
projectId.set("16vhQOQN")
versionType.set("release")
file.set(platformExtension.jarTask.flatMap { it.archiveFile })
changelog.set(releaseNotes)
token.set(providers.environmentVariable("MODRINTH_TOKEN"))
}
}
+10 -11
View File
@@ -5,7 +5,7 @@ plugins {
tasks.jar {
from(rootProject.file("license.txt")) {
rename { "license_${rootProject.name.toLowerCase()}.txt" }
rename { "license_${rootProject.name.lowercase()}.txt" }
}
}
@@ -25,15 +25,14 @@ dependencies {
compileOnlyApi(libs.guava)
}
blossom {
val file = "src/main/java/xyz/jpenilla/minimotd/common/Constants.java"
mapOf(
"PLUGIN_NAME" to rootProject.name,
"PLUGIN_VERSION" to project.version.toString(),
"PLUGIN_WEBSITE" to Constants.GITHUB_URL,
"GITHUB_USER" to Constants.GITHUB_USER,
"GITHUB_REPO" to Constants.GITHUB_REPO
).forEach { (k, v) ->
replaceToken("\${$k}", v, file)
sourceSets.main {
blossom {
javaSources {
property("PLUGIN_NAME", rootProject.name)
property("PLUGIN_VERSION", project.version.toString())
property("PLUGIN_WEBSITE", Constants.GITHUB_URL)
property("GITHUB_USER", Constants.GITHUB_USER)
property("GITHUB_REPO", Constants.GITHUB_REPO)
}
}
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -34,11 +34,11 @@ public final class Constants {
private PluginMetadata() {
}
public static final String NAME = "${PLUGIN_NAME}";
public static final String VERSION = "${PLUGIN_VERSION}";
public static final String WEBSITE = "${PLUGIN_WEBSITE}";
public static final String GITHUB_USER = "${GITHUB_USER}";
public static final String GITHUB_REPO = "${GITHUB_REPO}";
public static final String NAME = "{{ PLUGIN_NAME }}";
public static final String VERSION = "{{ PLUGIN_VERSION }}";
public static final String WEBSITE = "{{ PLUGIN_WEBSITE }}";
public static final String GITHUB_USER = "{{ GITHUB_USER }}";
public static final String GITHUB_REPO = "{{ GITHUB_REPO }}";
public static final String GITHUB_REPO_URL = "https://github.com/" + GITHUB_USER + "/" + GITHUB_REPO;
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -120,7 +120,7 @@ public final class MiniMOTD<I> {
return input.replace("{onlinePlayers}", online).replace("{maxPlayers}", max);
}
public void reload() {
public synchronized void reload() {
this.iconManager.loadIcons();
this.configManager.loadConfigs();
this.platform.onReload();
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
+1 -1
View File
@@ -1,5 +1,5 @@
group=xyz.jpenilla
version=2.0.11
version=2.0.14
description=Use MiniMessage text formatting in the server list MOTD.
org.gradle.caching=true
+17 -23
View File
@@ -4,38 +4,36 @@ metadata:
- plugins
plugins:
net.kyori.blossom: 1.3.0
org.spongepowered.gradle.plugin: 2.1.1
net.minecrell.plugin-yml.bungee: &plugin-yml 0.5.3
net.minecrell.plugin-yml.bukkit: *plugin-yml
xyz.jpenilla.run-paper: &run-task 2.0.1
net.kyori.blossom: 2.0.1
org.spongepowered.gradle.plugin: 2.2.0
net.minecrell.plugin-yml.bungee: 0.5.3
xyz.jpenilla.run-paper: &run-task 2.2.0
xyz.jpenilla.run-velocity: *run-task
xyz.jpenilla.run-waterfall: *run-task
versions:
minotaur: 2.7.5
hangarPublishPlugin: 0.0.4
indra: 3.0.1
shadow: 8.1.0
testLoggerPlugin: 3.2.0
adventure: 4.13.0
adventurePlatform: 4.3.0
adventurePlatformFabric: 5.8.0
hangarPublishPlugin: 0.1.0
indra: 3.1.3
shadow: 8.1.1
adventure: 4.14.0
adventurePlatform: 4.3.1
adventurePlatformFabric: 5.10.0
configurate: 4.1.2
checkerQual: 3.32.0
checkerQual: 3.38.0
slf4j: 1.7.32
gson: 2.8.0
guava: 21.0
bstats: 3.0.0
bstats: 3.0.2
paperApi: 1.16.5-R0.1-SNAPSHOT
paperlib: 1.0.8-SNAPSHOT
waterfallApi: 1.16-R0.4-SNAPSHOT
fabricApi: 0.76.0+1.19.4
fabricLoader: 0.14.17
minecraft: 1.19.4
fabricApi: 0.89.2+1.20.2
fabricLoader: 0.14.22
minecraft: 1.20.2
spongeApi7: 7.2.0
velocityApi: 3.1.2-SNAPSHOT
jupiterEngine: 5.9.2
jupiterEngine: 5.10.0
dependencies:
adventureBom:
@@ -165,16 +163,12 @@ dependencies:
version: { ref: indra }
indraLicenser:
group: net.kyori
name: indra-licenser-cadix
name: indra-licenser-spotless
version: { ref: indra }
shadow:
group: com.github.johnrengelman
name: shadow
version: { ref: shadow }
testLogger:
group: com.adarshr
name: gradle-test-logger-plugin
version: { ref: testLoggerPlugin }
minotaur:
group: com.modrinth.minotaur
name: Minotaur
Binary file not shown.
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Vendored
+4 -3
View File
@@ -85,9 +85,6 @@ done
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -197,6 +194,10 @@ if "$cygwin" || "$msys" ; then
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020-2022 Jason Penilla
Copyright (c) 2020-2023 Jason Penilla
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+1 -1
View File
@@ -1,6 +1,6 @@
This file is part of MiniMOTD, licensed under the MIT License.
Copyright (c) 2020-2022 Jason Penilla
Copyright (c) 2020-2023 Jason Penilla
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+12 -15
View File
@@ -1,6 +1,5 @@
plugins {
id("minimotd.shadow-platform")
id("net.minecrell.plugin-yml.bukkit")
id("xyz.jpenilla.run-paper")
}
@@ -25,24 +24,22 @@ tasks {
commonRelocation("org.bstats")
commonRelocation("io.papermc.lib")
}
}
bukkit {
name = rootProject.name
main = "xyz.jpenilla.minimotd.bukkit.MiniMOTDPlugin"
apiVersion = "1.13"
website = Constants.GITHUB_URL
authors = listOf("jmp")
softDepend = listOf("ViaVersion")
commands {
register("minimotd") {
description = "MiniMOTD Command"
usage = "/minimotd help"
permission = "minimotd.admin"
processResources {
val props = mapOf(
"version" to project.version,
"website" to Constants.GITHUB_URL,
"description" to project.description
)
inputs.properties(props)
filesMatching("plugin.yml") {
expand(props)
}
}
}
runPaper.folia.registerTask()
modrinth {
loaders.set(listOf("paper", "folia"))
gameVersions.addAll(bukkitVersions)
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -26,6 +26,7 @@ package xyz.jpenilla.minimotd.bukkit;
import io.papermc.lib.PaperLib;
import java.awt.image.BufferedImage;
import java.nio.file.Path;
import java.util.concurrent.CompletableFuture;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bstats.bukkit.Metrics;
import org.bukkit.command.PluginCommand;
@@ -71,8 +72,17 @@ public final class MiniMOTDPlugin extends JavaPlugin implements MiniMOTDPlatform
final Metrics metrics = new Metrics(this, 8132);
if (this.miniMOTD.configManager().pluginSettings().updateChecker()) {
this.getServer().getScheduler().runTaskAsynchronously(this, () ->
new UpdateChecker().checkVersion().forEach(this.logger::info));
try {
Class.forName("io.papermc.paper.threadedregions.RegionizedServer");
CompletableFuture.runAsync(() -> new UpdateChecker().checkVersion().forEach(this.logger::info)).whenComplete(($, thr) -> {
if (thr != null) {
this.logger.warn("Exception checking for updates", thr);
}
});
} catch (final ReflectiveOperationException ex) {
this.getServer().getScheduler().runTaskAsynchronously(this, () ->
new UpdateChecker().checkVersion().forEach(this.logger::info));
}
}
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,16 @@
name: MiniMOTD
version: $version
main: xyz.jpenilla.minimotd.bukkit.MiniMOTDPlugin
folia-supported: true
description: $description
authors:
- jmp
website: $website
commands:
minimotd:
description: MiniMOTD Command
permission: minimotd.admin
usage: /minimotd help
api-version: 1.13
softdepend:
- ViaVersion
+2 -1
View File
@@ -19,7 +19,7 @@ tasks {
commonRelocation("org.bstats")
}
runWaterfall {
waterfallVersion("1.19")
waterfallVersion("1.20")
}
}
@@ -30,5 +30,6 @@ bungee {
}
modrinth {
loaders.add("waterfall") // not sure why this isn't detected automatically from run-waterfall...
gameVersions.addAll(minecraftVersion)
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -45,6 +45,7 @@ import xyz.jpenilla.minimotd.common.CommandHandler;
import xyz.jpenilla.minimotd.common.MiniMOTD;
import xyz.jpenilla.minimotd.common.MiniMOTDPlatform;
import xyz.jpenilla.minimotd.common.util.UpdateChecker;
import xyz.jpenilla.minimotd.fabric.access.ServerStatusFaviconAccess;
import static net.minecraft.commands.Commands.literal;
@@ -98,7 +99,7 @@ public final class MiniMOTDFabric implements ModInitializer, MiniMOTDPlatform<Se
@Override
public int run(final @NonNull CommandContext<CommandSourceStack> context) {
this.handler.execute(MiniMOTDFabric.this.audiences.audience(context.getSource()));
this.handler.execute(context.getSource());
return Command.SINGLE_SUCCESS;
}
}
@@ -142,6 +143,8 @@ public final class MiniMOTDFabric implements ModInitializer, MiniMOTDPlatform<Se
public ServerStatus.@NonNull Favicon loadIcon(final @NonNull BufferedImage bufferedImage) throws Exception {
final ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "PNG", out);
return new ServerStatus.Favicon(out.toByteArray());
final ServerStatus.Favicon favicon = new ServerStatus.Favicon(out.toByteArray());
((ServerStatusFaviconAccess) (Object) favicon).cacheEncodedIcon();
return favicon;
}
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,32 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package xyz.jpenilla.minimotd.fabric.access;
import org.checkerframework.checker.nullness.qual.Nullable;
public interface ServerStatusFaviconAccess {
@Nullable String cachedEncodedIcon();
void cacheEncodedIcon();
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -40,6 +40,6 @@ abstract class ServerHandshakePacketListenerImplMixin {
@Inject(method = "handleIntention", at = @At("HEAD"))
public void injectHandleIntention(final ClientIntentionPacket packet, final CallbackInfo ci) {
((ConnectionAccess) this.connection).protocolVersion(packet.getProtocolVersion());
((ConnectionAccess) this.connection).protocolVersion(packet.protocolVersion());
}
}
@@ -0,0 +1,78 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package xyz.jpenilla.minimotd.fabric.mixin;
import com.mojang.serialization.Codec;
import com.mojang.serialization.DataResult;
import com.mojang.serialization.codecs.PrimitiveCodec;
import java.util.function.Function;
import net.minecraft.network.protocol.status.ServerStatus;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import xyz.jpenilla.minimotd.fabric.access.ServerStatusFaviconAccess;
@Mixin(ServerStatus.Favicon.class)
abstract class ServerStatusFaviconMixin implements ServerStatusFaviconAccess {
@Unique
private static Function<ServerStatus.Favicon, String> VANILLA_ENCODE_TO_STRING;
@Redirect(
method = "<clinit>",
at = @At(
target = "Lcom/mojang/serialization/codecs/PrimitiveCodec;comapFlatMap(Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;",
value = "INVOKE"
),
remap = false
)
private static Codec<ServerStatus.Favicon> makeCodec(
final PrimitiveCodec<String> stringCodec,
final Function<String, DataResult<ServerStatus.Favicon>> decode,
final Function<ServerStatus.Favicon, String> encode
) {
VANILLA_ENCODE_TO_STRING = encode;
return stringCodec.comapFlatMap(decode, favicon -> {
final @Nullable String encodedIcon = ((ServerStatusFaviconAccess) (Object) favicon).cachedEncodedIcon();
if (encodedIcon != null) {
return encodedIcon;
}
return encode.apply(favicon);
});
}
@Unique
private String encodedIcon;
@Override
public @Nullable String cachedEncodedIcon() {
return this.encodedIcon;
}
@Override
public void cacheEncodedIcon() {
this.encodedIcon = VANILLA_ENCODE_TO_STRING.apply((ServerStatus.Favicon) (Object) this);
}
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -25,6 +25,6 @@
"depends": {
"fabricloader": ">=0.14.6",
"fabric": "*",
"minecraft": "~1.19.4"
"minecraft": "~1.20.2"
}
}
@@ -6,6 +6,7 @@
"mixins": [
"ConnectionMixin",
"ServerHandshakePacketListenerImplMixin",
"ServerStatusFaviconMixin",
"ServerStatusPacketListenerImplMixin"
],
"client": [
+1 -3
View File
@@ -1,5 +1,3 @@
import java.util.Locale
plugins {
id("minimotd.shadow-platform")
}
@@ -14,7 +12,7 @@ dependencies {
tasks {
processResources {
val replacements = mapOf(
"modid" to rootProject.name.toLowerCase(Locale.ENGLISH),
"modid" to rootProject.name.lowercase(),
"name" to rootProject.name,
"version" to project.version.toString(),
"description" to project.description.toString(),
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
+3 -3
View File
@@ -1,6 +1,5 @@
import org.spongepowered.gradle.plugin.config.PluginLoaders
import org.spongepowered.plugin.metadata.model.PluginDependency
import java.util.Locale
plugins {
id("minimotd.shadow-platform")
@@ -14,7 +13,7 @@ dependencies {
sponge {
injectRepositories(false)
apiVersion("8.1.0-SNAPSHOT")
plugin(rootProject.name.toLowerCase(Locale.ENGLISH)) {
plugin(rootProject.name.lowercase()) {
loader {
name(PluginLoaders.JAVA_PLAIN)
version("1.0")
@@ -52,6 +51,7 @@ modrinth {
"1.16.5",
"1.17.1",
"1.18.2",
"1.19.4"
"1.19.4",
"1.20.2"
)
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
+10 -12
View File
@@ -1,6 +1,5 @@
plugins {
id("minimotd.shadow-platform")
id("net.kyori.blossom")
id("xyz.jpenilla.run-velocity")
}
@@ -8,7 +7,6 @@ dependencies {
implementation(projects.minimotdCommon)
implementation(libs.bstatsVelocity)
compileOnly(libs.velocityApi)
annotationProcessor(libs.velocityApi)
}
tasks {
@@ -20,16 +18,16 @@ tasks {
runVelocity {
velocityVersion(libs.versions.velocityApi.get())
}
}
blossom {
val file = "src/main/java/xyz/jpenilla/minimotd/velocity/MiniMOTDPlugin.java"
mapOf(
"project.name" to project.name,
"description" to description as String,
"url" to Constants.GITHUB_URL
).forEach { (k, v) ->
replaceToken("\${$k}", v, file)
processResources {
val props = mapOf(
"description" to project.description as String,
"url" to Constants.GITHUB_URL,
"version" to project.version,
)
inputs.properties(props)
filesMatching("velocity-plugin.json") {
expand(props)
}
}
}
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -36,7 +36,6 @@ import com.velocitypowered.api.command.CommandManager;
import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
import com.velocitypowered.api.plugin.Plugin;
import com.velocitypowered.api.plugin.annotation.DataDirectory;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.util.Favicon;
@@ -47,19 +46,10 @@ import org.bstats.velocity.Metrics;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.slf4j.Logger;
import xyz.jpenilla.minimotd.common.CommandHandler;
import xyz.jpenilla.minimotd.common.Constants;
import xyz.jpenilla.minimotd.common.MiniMOTD;
import xyz.jpenilla.minimotd.common.MiniMOTDPlatform;
import xyz.jpenilla.minimotd.common.util.UpdateChecker;
@Plugin(
id = "${project.name}",
name = Constants.PluginMetadata.NAME,
version = Constants.PluginMetadata.VERSION,
description = "${description}",
url = "${url}",
authors = {"jmp"}
)
public final class MiniMOTDPlugin implements MiniMOTDPlatform<Favicon> {
private static final Set<Class<?>> LISTENER_CLASSES = ImmutableSet.of(
PingListener.class
@@ -1,7 +1,7 @@
/*
* This file is part of MiniMOTD, licensed under the MIT License.
*
* Copyright (c) 2020-2022 Jason Penilla
* Copyright (c) 2020-2023 Jason Penilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,12 @@
{
"id": "minimotd-velocity",
"name": "MiniMOTD",
"version": "$version",
"description": "$description",
"url": "$url",
"authors": [
"jmp"
],
"dependencies": [],
"main": "xyz.jpenilla.minimotd.velocity.MiniMOTDPlugin"
}
+2 -3
View File
@@ -19,15 +19,14 @@ pluginManagement {
repositories {
gradlePluginPortal()
maven("https://maven.fabricmc.net/")
maven("https://maven.quiltmc.org/repository/release/")
maven("https://repo.jpenilla.xyz/snapshots/")
}
includeBuild("build-logic")
}
plugins {
id("ca.stellardrift.polyglot-version-catalogs") version "6.0.1"
id("quiet-fabric-loom") version "1.1-SNAPSHOT"
id("ca.stellardrift.polyglot-version-catalogs") version "6.1.0"
id("quiet-fabric-loom") version "1.3-SNAPSHOT"
}
rootProject.name = "MiniMOTD"