feat: Initial PAPIProxyBridge Support
This commit is contained in:
6 files changed
+129
-3
No files matched your search
+2
-1
@@ -4,7 +4,8 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":placeholderapi-expansion-paper"))
|
implementation(projects.placeholderapiExpansionPaper)
|
||||||
|
implementation(projects.placeholderapiExpansionVelocity)
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks {
|
tasks {
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
group = io.github.miniplaceholders
|
group = io.github.miniplaceholders
|
||||||
version = 1.1.0
|
version = 1.2.0
|
||||||
description = PlaceholderAPI-Expansion
|
description = PlaceholderAPI-Expansion
|
||||||
@@ -14,9 +14,11 @@ adventure = "4.13.1"
|
|||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
|
|
||||||
|
velocity-api = { group = "com.velocitypowered", name = "velocity-api", version.ref = "velocity" }
|
||||||
paper-api = { group = "io.papermc.paper", name = "paper-api", version.ref = "paper" }
|
paper-api = { group = "io.papermc.paper", name = "paper-api", version.ref = "paper" }
|
||||||
miniplaceholders = { group = "io.github.miniplaceholders", name = "miniplaceholders-api", version.ref = "miniplaceholders" }
|
miniplaceholders = { group = "io.github.miniplaceholders", name = "miniplaceholders-api", version.ref = "miniplaceholders" }
|
||||||
placeholderapi = { group = "me.clip", name = "placeholderapi", version = "2.11.3" }
|
placeholderapi = { group = "me.clip", name = "placeholderapi", version = "2.11.3" }
|
||||||
|
proxybridge = "net.william278:PAPIProxyBridge:1.2"
|
||||||
|
|
||||||
[plugins]
|
[plugins]
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ plugins {
|
|||||||
id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0"
|
id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
arrayOf("paper").forEach {
|
arrayOf("paper", "velocity").forEach {
|
||||||
include("placeholderapi-expansion-$it")
|
include("placeholderapi-expansion-$it")
|
||||||
|
|
||||||
project(":placeholderapi-expansion-$it").projectDir = file(it)
|
project(":placeholderapi-expansion-$it").projectDir = file(it)
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
plugins {
|
||||||
|
java
|
||||||
|
alias(libs.plugins.blossom)
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
maven("https://papermc.io/repo/repository/maven-public/")
|
||||||
|
maven("https://jitpack.io")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compileOnly(libs.proxybridge)
|
||||||
|
compileOnly(libs.miniplaceholders)
|
||||||
|
compileOnly(libs.velocity.api)
|
||||||
|
annotationProcessor(libs.velocity.api)
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks {
|
||||||
|
compileJava {
|
||||||
|
options.encoding = Charsets.UTF_8.name()
|
||||||
|
options.release.set(17)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
java.toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||||
|
|
||||||
|
blossom {
|
||||||
|
replaceTokenIn("src/main/java/io/github/miniplaceholders/expansion/placeholderapi/velocity/VelocityPlugin.java")
|
||||||
|
replaceToken("{version}", project.version)
|
||||||
|
}
|
||||||
+93
@@ -0,0 +1,93 @@
|
|||||||
|
package io.github.miniplaceholders.expansion.placeholderapi.velocity;
|
||||||
|
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
import com.velocitypowered.api.event.Subscribe;
|
||||||
|
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
|
||||||
|
import com.velocitypowered.api.plugin.Dependency;
|
||||||
|
import com.velocitypowered.api.plugin.Plugin;
|
||||||
|
import com.velocitypowered.api.proxy.Player;
|
||||||
|
import io.github.miniplaceholders.api.Expansion;
|
||||||
|
import io.github.miniplaceholders.api.utils.LegacyUtils;
|
||||||
|
import net.kyori.adventure.text.minimessage.tag.Tag;
|
||||||
|
import net.kyori.adventure.text.minimessage.tag.resolver.ArgumentQueue;
|
||||||
|
import net.william278.papiproxybridge.api.PlaceholderAPI;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static net.kyori.adventure.text.minimessage.MiniMessage.miniMessage;
|
||||||
|
import static net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.AMPERSAND_CHAR;
|
||||||
|
import static net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.SECTION_CHAR;
|
||||||
|
|
||||||
|
@Plugin(
|
||||||
|
id = "placeholderapi-expansion",
|
||||||
|
name = "PlaceholderAPI Expansion",
|
||||||
|
version = "{version}",
|
||||||
|
authors = { "4drian3d" },
|
||||||
|
dependencies = {
|
||||||
|
@Dependency(id = "miniplaceholders"),
|
||||||
|
@Dependency(id = "papiproxybridge")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public final class VelocityPlugin {
|
||||||
|
@Inject
|
||||||
|
private Logger logger;
|
||||||
|
private static final UUID NULL_UUID = UUID.randomUUID();
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onProxyInitialization(ProxyInitializeEvent event) {
|
||||||
|
this.logger.info("Starting PlaceholderAPI Expansion for MiniPlaceholders Velocity");
|
||||||
|
|
||||||
|
Expansion.builder("placeholderapi")
|
||||||
|
.filter(Player.class)
|
||||||
|
.globalPlaceholder("global", (queue, ctx) -> {
|
||||||
|
final String argument = queue.popOr("You need to provide a placeholder").value();
|
||||||
|
final String papiParsed = PlaceholderAPI.getInstance().formatPlaceholders(
|
||||||
|
argument,
|
||||||
|
NULL_UUID
|
||||||
|
).getNow(argument).replace(SECTION_CHAR, AMPERSAND_CHAR);
|
||||||
|
|
||||||
|
if (parseString(queue)) {
|
||||||
|
return Tag.preProcessParsed(miniMessage().serialize(LegacyUtils.parsePossibleLegacy(papiParsed)));
|
||||||
|
} else {
|
||||||
|
return Tag.selfClosingInserting(LegacyUtils.parsePossibleLegacy(papiParsed));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.audiencePlaceholder("player", (aud, queue, ctx) -> {
|
||||||
|
final String argument = queue.popOr("You need to provide a placeholder").value();
|
||||||
|
final Player player = (Player)aud;
|
||||||
|
final String papiParsed = PlaceholderAPI.getInstance().formatPlaceholders(
|
||||||
|
argument,
|
||||||
|
player.getUniqueId()
|
||||||
|
).getNow(argument).replace(SECTION_CHAR, AMPERSAND_CHAR);
|
||||||
|
|
||||||
|
if (parseString(queue)) {
|
||||||
|
return Tag.preProcessParsed(miniMessage().serialize(LegacyUtils.parsePossibleLegacy(papiParsed)));
|
||||||
|
} else {
|
||||||
|
return Tag.selfClosingInserting(LegacyUtils.parsePossibleLegacy(papiParsed));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.relationalPlaceholder("relational", (audience, audienceToShow, queue, ctx) -> {
|
||||||
|
final String argument = queue.popOr("You need to provide a placeholder").value();
|
||||||
|
final Player player = (Player) audience;
|
||||||
|
final Player toShow = (Player) audienceToShow;
|
||||||
|
final String papiParsed = PlaceholderAPI.getInstance().formatPlaceholders(
|
||||||
|
argument,
|
||||||
|
player.getUniqueId(),
|
||||||
|
toShow.getUniqueId()
|
||||||
|
).getNow(argument).replace(SECTION_CHAR, AMPERSAND_CHAR);
|
||||||
|
|
||||||
|
if (parseString(queue)) {
|
||||||
|
return Tag.preProcessParsed(miniMessage().serialize(LegacyUtils.parsePossibleLegacy(papiParsed)));
|
||||||
|
} else {
|
||||||
|
return Tag.selfClosingInserting(LegacyUtils.parsePossibleLegacy(papiParsed));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.build()
|
||||||
|
.register();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean parseString(ArgumentQueue queue) {
|
||||||
|
return queue.hasNext() && queue.pop().lowerValue().equals("string");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user