Added hex code support to 1.16. Fix material typo. Use bungee chat api.

This commit is contained in:
Esophose 2020-06-25 00:13:49 -06:00
parent 5031659aa2
commit c14785863c
8 changed files with 65 additions and 18 deletions

View file

@ -10,7 +10,7 @@ sourceCompatibility = 1.8
targetCompatibility = 1.8
compileJava.options.encoding = 'UTF-8'
group = 'dev.esophose'
version = '7.13'
version = '7.14'
java {
withJavadocJar()
@ -24,6 +24,7 @@ repositories {
maven { url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
maven { url = 'https://repo.codemc.org/repository/maven-public' }
maven { url = 'http://repo.extendedclip.com/content/repositories/placeholderapi/' }
maven { url = 'https://repo.rosewooddev.io/repository/public/' }
}
dependencies {
@ -36,7 +37,7 @@ dependencies {
shadow 'org.jetbrains:annotations:16.0.2'
shadow 'me.clip:placeholderapi:2.10.4'
shadow 'org.xerial:sqlite-jdbc:3.23.1'
shadow 'org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT'
shadow 'org.spigotmc:spigot:1.16.1'
}
shadowJar {

View file

@ -22,8 +22,8 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;

View file

@ -5,7 +5,7 @@ import dev.esophose.playerparticles.manager.LocaleManager;
import dev.esophose.playerparticles.particles.PPlayer;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.ChatColor;
import net.md_5.bungee.api.ChatColor;
public class VersionCommandModule implements CommandModule {

View file

@ -6,7 +6,7 @@ import dev.esophose.playerparticles.particles.PPlayer;
import dev.esophose.playerparticles.util.NMSUtil;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.ChatColor;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;

View file

@ -5,7 +5,7 @@ import dev.esophose.playerparticles.manager.DataManager;
import dev.esophose.playerparticles.particles.PPlayer;
import dev.esophose.playerparticles.particles.ParticlePair;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.ChatColor;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.entity.Player;
public class ParticlePlaceholderExpansion extends PlaceholderExpansion {

View file

@ -12,16 +12,22 @@ import dev.esophose.playerparticles.locale.SimplifiedChineseLocale;
import dev.esophose.playerparticles.locale.VietnameseLocale;
import dev.esophose.playerparticles.manager.ConfigurationManager.Setting;
import dev.esophose.playerparticles.particles.PPlayer;
import dev.esophose.playerparticles.util.NMSUtil;
import dev.esophose.playerparticles.util.StringPlaceholders;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import org.bukkit.ChatColor;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class LocaleManager extends Manager {
private static final Pattern HEX_PATTERN = Pattern.compile("#([A-Fa-f0-9]){6}");
private CommentedFileConfiguration locale;
public LocaleManager(PlayerParticles playerParticles) {
@ -127,7 +133,7 @@ public class LocaleManager extends Manager {
if (!Setting.MESSAGES_ENABLED.getBoolean())
return;
sender.sendMessage(this.getLocaleMessage("prefix") + this.getLocaleMessage(messageKey, stringPlaceholders));
this.sendParsedMessage(sender, this.getLocaleMessage("prefix") + this.getLocaleMessage(messageKey, stringPlaceholders));
}
/**
@ -141,7 +147,7 @@ public class LocaleManager extends Manager {
if (!Setting.MESSAGES_ENABLED.getBoolean())
return;
pplayer.getUnderlyingExecutor().sendMessage(this.parsePlaceholders(pplayer.getPlayer(), this.getLocaleMessage("prefix") + this.getLocaleMessage(messageKey, stringPlaceholders)));
this.sendParsedMessage(pplayer.getUnderlyingExecutor(), this.getLocaleMessage("prefix") + this.getLocaleMessage(messageKey, stringPlaceholders));
}
/**
@ -175,7 +181,7 @@ public class LocaleManager extends Manager {
if (!Setting.MESSAGES_ENABLED.getBoolean())
return;
sender.sendMessage(this.getLocaleMessage(messageKey, stringPlaceholders));
this.sendParsedMessage(sender, this.getLocaleMessage(messageKey, stringPlaceholders));
}
/**
@ -189,7 +195,7 @@ public class LocaleManager extends Manager {
if (!Setting.MESSAGES_ENABLED.getBoolean())
return;
pplayer.getUnderlyingExecutor().sendMessage(this.parsePlaceholders(pplayer.getPlayer(), this.getLocaleMessage(messageKey, stringPlaceholders)));
this.sendParsedMessage(pplayer.getUnderlyingExecutor(), this.getLocaleMessage(messageKey, stringPlaceholders));
}
/**
@ -222,7 +228,7 @@ public class LocaleManager extends Manager {
if (!Setting.MESSAGES_ENABLED.getBoolean())
return;
sender.sendMessage(message);
this.sendParsedMessage(sender, message);
}
/**
@ -232,18 +238,58 @@ public class LocaleManager extends Manager {
* @param message The message to send
*/
public void sendCustomMessage(PPlayer pplayer, String message) {
this.sendCustomMessage(pplayer.getUnderlyingExecutor(), this.parsePlaceholders(pplayer.getPlayer(), message));
this.sendCustomMessage(pplayer.getUnderlyingExecutor(), message);
}
/**
* Replaces PlaceholderAPI placeholders if PlaceholderAPI is enabled
*
* @param player The Player to replace with
* @param sender The Player to replace with
* @param message The message
* @return A placeholder-replaced message
*/
private String parsePlaceholders(Player player, String message) {
return PlaceholderAPIHook.applyPlaceholders(player, message);
private String parsePlaceholders(CommandSender sender, String message) {
if (sender instanceof Player)
return PlaceholderAPIHook.applyPlaceholders((Player) sender, message);
return message;
}
/**
* Parses the colors in a message
* Parses & to the normal color code character
* Parses hex codes if the game version is 1.16 or higher
*
* @param message The message
* @return A color-replaced message
*/
private String parseColors(String message) {
String parsed = message;
if (NMSUtil.getVersionNumber() >= 16) {
Matcher matcher = HEX_PATTERN.matcher(parsed);
while (matcher.find()) {
ChatColor hexColor = ChatColor.of(matcher.group());
String before = parsed.substring(0, matcher.start());
String after = parsed.substring(matcher.end());
parsed = before + hexColor + after;
}
}
return ChatColor.translateAlternateColorCodes('&', parsed);
}
/**
* Sends a message with placeholders and colors parsed to a CommandSender
*
* @param sender The sender to send the message to
* @param message The message
*/
private void sendParsedMessage(CommandSender sender, String message) {
if (NMSUtil.getVersionNumber() >= 16) {
sender.spigot().sendMessage(TextComponent.fromLegacyText(this.parseColors(this.parsePlaceholders(sender, message))));
} else {
sender.sendMessage(this.parseColors(this.parsePlaceholders(sender, message)));
}
}
}

View file

@ -38,7 +38,7 @@ public enum ParticleEffect {
CAMPFIRE_SIGNAL_SMOKE("CAMPFIRE_SIGNAL_SMOKE", Collections.singletonList("REDSTONE_TORCH")),
CLOUD("CLOUD", Arrays.asList("WHITE_WOOL", "WOOL")),
COMPOSTER("COMPOSTER", Collections.singletonList("COMPOSTER")),
CRIMSON_SPORE("CRIMSON_SPORE", Collections.singletonList("CRIMSON_SPORE")),
CRIMSON_SPORE("CRIMSON_SPORE", Collections.singletonList("CRIMSON_FUNGUS")),
CRIT("CRIT", Collections.singletonList("IRON_SWORD")),
CURRENT_DOWN("CURRENT_DOWN", Collections.singletonList("SOUL_SAND")),
DAMAGE_INDICATOR("DAMAGE_INDICATOR", Collections.singletonList("BOW")),

View file

@ -12,7 +12,7 @@ import dev.esophose.playerparticles.styles.ParticleStyle;
import dev.esophose.playerparticles.util.ParticleUtils;
import dev.esophose.playerparticles.util.StringPlaceholders;
import java.util.UUID;
import org.bukkit.ChatColor;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Material;
public class ParticlePair {