Merge pull request #207 from TheLonelyWolf1/master

Added MiniMessage Support as CommandTag
This commit is contained in:
RockyHawk 2022-06-17 14:51:57 +10:00 committed by GitHub
commit b1c285149a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 49 additions and 1 deletions

14
pom.xml
View File

@ -13,4 +13,18 @@
<maven.compiler.target>8</maven.compiler.target>
</properties>
<repositories>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-text-minimessage</artifactId>
<version>4.11.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,12 @@
package me.rockyhawk.commandpanels.classresources;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
public class SerializerUtils {
public static Component serializeText(String msg){
Component parsedText = MiniMessage.miniMessage().deserialize(msg);
return parsedText;
}
}

View File

@ -2,9 +2,15 @@ package me.rockyhawk.commandpanels.commandtags.tags.standard;
import me.rockyhawk.commandpanels.CommandPanels;
import me.rockyhawk.commandpanels.api.PanelCommandEvent;
import me.rockyhawk.commandpanels.classresources.SerializerUtils;
import me.rockyhawk.commandpanels.commandtags.CommandTagEvent;
import me.rockyhawk.commandpanels.ioclasses.legacy.LegacyVersion;
import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions;
import me.rockyhawk.commandpanels.openpanelsmanager.PanelOpenType;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@ -98,5 +104,21 @@ public class BasicTags implements Listener {
PanelCommandEvent commandEvent = new PanelCommandEvent(e.p, e.args[0], e.panel);
Bukkit.getPluginManager().callEvent(commandEvent);
}
if(e.name.equalsIgnoreCase("minimessage=")){
e.commandTagUsed();
String tag = plugin.config.getString("config.format.tag") + " ";
if(Bukkit.getServer().getVersion().contains("Paper")){
LegacyVersion legacy = new LegacyVersion(plugin);
if(legacy.LOCAL_VERSION.greaterThanOrEqualTo(MinecraftVersions.v1_18)){
Audience player = (Audience) e.p; // Needed because the basic Player from the Event can't send Paper's Components
Component parsedText = SerializerUtils.serializeText(String.join(" ",e.args));
player.sendMessage(parsedText);
}else{
plugin.tex.sendString(e.p, tag + ChatColor.RED + "MiniMessage-Feature needs Paper 1.18 or newer to work!");
}
}else{
plugin.tex.sendString(e.p, tag + ChatColor.RED + "MiniMessage-Feature needs Paper 1.18 or newer to work!");
}
}
}
}