Makes some 1.20 changes
All checks were successful
EpicKnarvik97/PlaceholderSigns/pipeline/head This commit looks good
KnarCraft/PlaceholderSigns/pipeline/head This commit looks good

Updates spigot version
Updates depreciated sign code
Adds a new permission for editing waxed signs
This commit is contained in:
2023-06-23 20:22:15 +02:00
parent 837eac46b7
commit 82032dbbbc
5 changed files with 36 additions and 16 deletions

View File

@ -12,6 +12,7 @@ import net.knarcraft.placeholdersigns.util.ColorHelper;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Sign;
import org.bukkit.block.sign.Side;
import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.serialization.ConfigurationSerialization;
import org.bukkit.entity.Player;
@ -130,10 +131,10 @@ public final class PlaceholderSigns extends JavaPlugin {
// Update placeholders
Map<Integer, String> placeholders = placeholderSign.placeholders();
String[] lines = sign.getLines();
String[] lines = sign.getSide(Side.FRONT).getLines();
boolean updateRequired = false;
for (int i = 0; i < lines.length; i++) {
String oldText = sign.getLine(i);
String oldText = sign.getSide(Side.FRONT).getLine(i);
// The new text of the sign is either the same, or the original placeholder
String newText;
@ -148,7 +149,7 @@ public final class PlaceholderSigns extends JavaPlugin {
// Only change the line if the text has changed
if (!newText.equals(oldText)) {
sign.setLine(i, newText);
sign.getSide(Side.FRONT).setLine(i, newText);
updateRequired = true;
}
}

View File

@ -3,8 +3,11 @@ package net.knarcraft.placeholdersigns.listener;
import net.knarcraft.placeholdersigns.PlaceholderSigns;
import net.knarcraft.placeholdersigns.container.LineChangeRequest;
import net.knarcraft.placeholdersigns.util.ColorHelper;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.block.Sign;
import org.bukkit.block.sign.Side;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@ -24,18 +27,23 @@ public class SignClickListener implements Listener {
return;
}
Player player = event.getPlayer();
if (sign.isWaxed() && !player.hasPermission("placeholdersigns.edit.bypass-waxed")) {
player.sendMessage(ChatColor.RED + "You do not have the necessary permissions to edit a waxed sign.");
return;
}
// Check if the player has run the /editSign command
LineChangeRequest request = PlaceholderSigns.getInstance().getChangeRequest(event.getPlayer());
LineChangeRequest request = PlaceholderSigns.getInstance().getChangeRequest(player);
if (request == null) {
return;
}
String[] lines = sign.getLines();
String[] lines = sign.getSide(Side.FRONT).getLines();
lines[request.line()] = request.text();
// Run the sign change event to allow protection plugins to cancel, and allow the sign text listener to trigger
SignChangeEvent changeEvent = new SignChangeEvent(event.getClickedBlock(), event.getPlayer(), lines);
SignChangeEvent changeEvent = new SignChangeEvent(event.getClickedBlock(), player, lines, Side.FRONT);
Bukkit.getPluginManager().callEvent(changeEvent);
if (changeEvent.isCancelled()) {
return;
@ -44,11 +52,11 @@ 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, ColorHelper.translateAllColorCodes(finalLines[i]));
sign.getSide(Side.FRONT).setLine(i, ColorHelper.translateAllColorCodes(finalLines[i]));
}
sign.update();
event.getPlayer().sendMessage("The sign line was successfully changed.");
player.sendMessage("The sign line was successfully changed.");
}
}