Minor improvements
All checks were successful
EpicKnarvik97/PlaceholderSigns/pipeline/head This commit looks good
All checks were successful
EpicKnarvik97/PlaceholderSigns/pipeline/head This commit looks good
Makes /editsign convert formatting codes for non-placeholder text Makes /editsign able to clear a line on a sign
This commit is contained in:
parent
ac8c418991
commit
837eac46b7
@ -8,7 +8,7 @@ import net.knarcraft.placeholdersigns.handler.PlaceholderSignHandler;
|
||||
import net.knarcraft.placeholdersigns.listener.SignBreakListener;
|
||||
import net.knarcraft.placeholdersigns.listener.SignClickListener;
|
||||
import net.knarcraft.placeholdersigns.listener.SignTextListener;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.knarcraft.placeholdersigns.util.ColorHelper;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.block.Sign;
|
||||
@ -22,8 +22,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* This plugin's main class
|
||||
@ -146,7 +144,7 @@ public final class PlaceholderSigns extends JavaPlugin {
|
||||
}
|
||||
|
||||
// Convert color codes
|
||||
newText = translateAllColorCodes(newText);
|
||||
newText = ColorHelper.translateAllColorCodes(newText);
|
||||
|
||||
// Only change the line if the text has changed
|
||||
if (!newText.equals(oldText)) {
|
||||
@ -162,20 +160,5 @@ public final class PlaceholderSigns extends JavaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Translates all found color codes to formatting in a string
|
||||
*
|
||||
* @param message <p>The string to search for color codes</p>
|
||||
* @return <p>The message with color codes translated</p>
|
||||
*/
|
||||
private static String translateAllColorCodes(String message) {
|
||||
message = ChatColor.translateAlternateColorCodes('&', message);
|
||||
Pattern pattern = Pattern.compile("&?(#[a-fA-F0-9]{6})");
|
||||
Matcher matcher = pattern.matcher(message);
|
||||
while (matcher.find()) {
|
||||
message = message.replace(matcher.group(), "" + ChatColor.of(matcher.group(1)));
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ public class EditSignCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||
@NotNull String[] args) {
|
||||
if (args.length < 2 || !(commandSender instanceof Player player)) {
|
||||
if (args.length < 1 || !(commandSender instanceof Player player)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -44,8 +44,16 @@ public class EditSignCommand implements TabExecutor {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Make sure no argument is treated as an empty string
|
||||
String start;
|
||||
if (args.length > 1) {
|
||||
start = args[1];
|
||||
} else {
|
||||
start = "";
|
||||
}
|
||||
|
||||
// Get all arguments as a space-separated string
|
||||
StringBuilder builder = new StringBuilder(args[1]);
|
||||
StringBuilder builder = new StringBuilder(start);
|
||||
for (int i = 2; i < args.length; i++) {
|
||||
builder.append(" ").append(args[i]);
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package net.knarcraft.placeholdersigns.listener;
|
||||
|
||||
import net.knarcraft.placeholdersigns.PlaceholderSigns;
|
||||
import net.knarcraft.placeholdersigns.container.LineChangeRequest;
|
||||
import net.knarcraft.placeholdersigns.util.ColorHelper;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -43,7 +44,7 @@ public class SignClickListener implements Listener {
|
||||
// Update the sign with the new text
|
||||
String[] finalLines = changeEvent.getLines();
|
||||
for (int i = 0; i < finalLines.length; i++) {
|
||||
sign.setLine(i, finalLines[i]);
|
||||
sign.setLine(i, ColorHelper.translateAllColorCodes(finalLines[i]));
|
||||
}
|
||||
sign.update();
|
||||
|
||||
|
@ -0,0 +1,33 @@
|
||||
package net.knarcraft.placeholdersigns.util;
|
||||
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* A helper class for dealing with colors and formatting codes
|
||||
*/
|
||||
public final class ColorHelper {
|
||||
|
||||
private ColorHelper() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Translates all found color codes to formatting in a string
|
||||
*
|
||||
* @param message <p>The string to search for color codes</p>
|
||||
* @return <p>The message with color codes translated</p>
|
||||
*/
|
||||
public static String translateAllColorCodes(String message) {
|
||||
message = ChatColor.translateAlternateColorCodes('&', message);
|
||||
Pattern pattern = Pattern.compile("&?(#[a-fA-F0-9]{6})");
|
||||
Matcher matcher = pattern.matcher(message);
|
||||
while (matcher.find()) {
|
||||
message = message.replace(matcher.group(), "" + ChatColor.of(matcher.group(1)));
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
@ -7,9 +7,9 @@ depend:
|
||||
|
||||
commands:
|
||||
editSign:
|
||||
usage: /<command> <line> <text> [text] ...
|
||||
usage: /<command> <line> [text] [text] ...
|
||||
permission: placeholdersigns.edit
|
||||
description: Changes the line of a sign without a text limit
|
||||
description: Changes the line of a sign, without a text limit, and with color conversion
|
||||
|
||||
permissions:
|
||||
placeholdersigns.*:
|
||||
|
Loading…
Reference in New Issue
Block a user