|
10 | 10 | import land.melon.lab.simplelanguageloader.utils.TextUtils;
|
11 | 11 | import org.bukkit.Bukkit;
|
12 | 12 | import org.bukkit.Location;
|
13 |
| -import org.bukkit.block.BlockFace; |
14 | 13 | import org.bukkit.block.Sign;
|
15 |
| -import org.bukkit.block.data.Directional; |
16 | 14 | import org.bukkit.command.Command;
|
17 | 15 | import org.bukkit.command.CommandSender;
|
18 | 16 | import org.bukkit.entity.Player;
|
19 |
| -import org.bukkit.event.block.BlockPlaceEvent; |
20 |
| -import org.bukkit.inventory.EquipmentSlot; |
21 |
| -import org.bukkit.inventory.ItemStack; |
| 17 | +import org.bukkit.event.block.SignChangeEvent; |
22 | 18 |
|
23 | 19 | import java.util.Arrays;
|
24 | 20 | import java.util.List;
|
@@ -81,20 +77,14 @@ public boolean invokeCommand(CommandSender commandSender, Command command, Strin
|
81 | 77 | return true;
|
82 | 78 | }
|
83 | 79 | }
|
84 |
| - var signSide = Utils.getSignSideLookingAt(senderPlayer, sign); |
| 80 | + var side = Utils.getSignSideLookingAt(senderPlayer, sign); |
| 81 | + var signSide = sign.getSide(side); |
85 | 82 | var lineContentBeforeChange = signSide.getLine(line - 1);
|
86 | 83 | signSide.setLine(line - 1, finalLine);
|
87 | 84 | sign.update();
|
88 |
| - var blockPlaceEvent = new BlockPlaceEvent(targetBlock, targetBlock.getState(), |
89 |
| - targetBlock.getBlockData() instanceof Directional ? |
90 |
| - targetBlock.getRelative(((Directional) targetBlock.getBlockData()).getFacing().getOppositeFace()) : |
91 |
| - targetBlock.getRelative(BlockFace.DOWN), |
92 |
| - new ItemStack(targetBlock.getType(), 1), |
93 |
| - senderPlayer, |
94 |
| - !inInSpawnProtection(targetBlock.getLocation()) || senderPlayer.isOp(), |
95 |
| - EquipmentSlot.HAND); |
96 |
| - Bukkit.getPluginManager().callEvent(blockPlaceEvent); |
97 |
| - if (blockPlaceEvent.isCancelled()) { |
| 85 | + var signChangeEvent = new SignChangeEvent(targetBlock, senderPlayer, signSide.lines(), side); |
| 86 | + Bukkit.getPluginManager().callEvent(signChangeEvent); |
| 87 | + if (signChangeEvent.isCancelled()) { |
98 | 88 | signSide.setLine(line - 1, lineContentBeforeChange);
|
99 | 89 | sign.update();
|
100 | 90 | senderPlayer.sendMessage(pluginInstance.language.signEditLang.modifyCancelled.produce());
|
@@ -140,8 +130,8 @@ public List<String> tabComplete(CommandSender sender, Command command, String al
|
140 | 130 | if (LockettePluginUtils.isLockSign(targetBlock)) {
|
141 | 131 | return List.of();
|
142 | 132 | }
|
143 |
| - var signSide = Utils.getSignSideLookingAt(player, sign); |
144 |
| - |
| 133 | + var lookingSide = Utils.getSignSideLookingAt(player, sign); |
| 134 | + var signSide = sign.getSide(lookingSide); |
145 | 135 | var suggestion = signSide.getLine(line - 1).replaceAll("&", "§§").replaceAll("§", "&");
|
146 | 136 | return suggestion.length() == 0 ? List.of() : List.of(suggestion);
|
147 | 137 | }
|
|
0 commit comments