Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public final class Test extends JavaPlugin {
- private ProtocolManager manager;
- @Override
- public void onEnable() {
- manager = ProtocolLibrary.getProtocolManager();
- }
- @Override
- public void onDisable() {
- }
- @Override
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- sendSignEdit(player, "Hello", "there", "my", "friend");
- } else {
- sender.sendMessage("This command can only be executed by a player");
- }
- return true;
- }
- public void sendSignEdit(Player player, String... lines) {
- BlockPosition position = new BlockPosition(100, 100, 100);
- PacketContainer blockPacket = manager.createPacket(PacketType.Play.Server.BLOCK_CHANGE);
- blockPacket.getBlockPositionModifier().write(0, position);
- blockPacket.getBlockData().write(0, WrappedBlockData.createData(Material.SIGN_POST));
- PacketContainer dataPacket = manager.createPacket(PacketType.Play.Server.TILE_ENTITY_DATA);
- dataPacket.getBlockPositionModifier().write(0, position);
- dataPacket.getIntegers().write(0, 9);
- NbtCompound compound = (NbtCompound) dataPacket.getNbtModifier().read(0);
- for(int i = 0; i < 4; i++) {
- compound.put("Text" + (i + 1), "{\"extra\":[{\"text\":\"" + lines[i] + "\"}],\"text\":\"\"}");
- }
- dataPacket.getNbtModifier().write(0, compound);
- PacketContainer editorPacket = manager.createPacket(PacketType.Play.Server.OPEN_SIGN_EDITOR);
- editorPacket.getBlockPositionModifier().write(0, position);
- try {
- manager.sendServerPacket(player, blockPacket);
- manager.sendServerPacket(player, dataPacket);
- manager.sendServerPacket(player, editorPacket);
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment