ez_top1 0 Opublikowano 29 czerwca 2022 Udostępnij Opublikowano 29 czerwca 2022 tak jak w temacie Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Glicz 246 Opublikowano 29 czerwca 2022 Udostępnij Opublikowano 29 czerwca 2022 Ten temat został przeniesiony. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 550 Opublikowano 30 czerwca 2022 Udostępnij Opublikowano 30 czerwca 2022 Stwórz własny lub użyj gotowego serializera/deserializera itemów z tekstu Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 ez_top1 0 Opublikowano 30 czerwca 2022 Autor Udostępnij Opublikowano 30 czerwca 2022 5 godzin temu, kerpson napisał: Stwórz własny lub użyj gotowego serializera/deserializera itemów z tekstu public static String itemStackArrayToBase64(ItemStack[] items) throws IllegalStateException { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream); // Write the size of the inventory dataOutput.writeInt(items.length); // Save every element in the list for (int i = 0; i < items.length; i++) { dataOutput.writeObject(items[i]); } // Serialize that array dataOutput.close(); return Base64Coder.encodeLines(outputStream.toByteArray()); } catch (Exception e) { throw new IllegalStateException("Unable to save item stacks.", e); } } public static ItemStack[] itemStackArrayFromBase64(String data) throws IOException { try { ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data)); BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream); ItemStack[] items = new ItemStack[dataInput.readInt()]; // Read the serialized inventory for (int i = 0; i < items.length; i++) { items[i] = (ItemStack) dataInput.readObject(); } dataInput.close(); return items; } catch (ClassNotFoundException e) { throw new IOException("Unable to decode class type.", e); } } takie cos? Wstawiam kod w code. Notatka dodana przez Glicz Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 550 Opublikowano 30 czerwca 2022 Udostępnij Opublikowano 30 czerwca 2022 no na przykład tak Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 ez_top1 0 Opublikowano 30 czerwca 2022 Autor Udostępnij Opublikowano 30 czerwca 2022 15 minut temu, kerpson napisał: no na przykład tak i co teraz xD Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 718 Opublikowano 30 czerwca 2022 Udostępnij Opublikowano 30 czerwca 2022 I teraz możesz to wysyłać i odbierać https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/ Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 ez_top1 0 Opublikowano 30 czerwca 2022 Autor Udostępnij Opublikowano 30 czerwca 2022 1 godzinę temu, Ixidi napisał: I teraz możesz to wysyłać i odbierać https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/ mam to wyslac subchannelem? czy czym 1 godzinę temu, Ixidi napisał: I teraz możesz to wysyłać i odbierać https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/ zrobilem cos takiego komenda @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(sender instanceof Player) { Player p = (Player) sender; if (args.length == 1) { ConnectUtil.sendPlayer(p, args[0]); p.sendMessage("Wyslano cie do servera" + args[0]); String is = Inv.itemStackArrayToBase64(p.getInventory().getContents()); ByteArrayOutputStream bb = new ByteArrayOutputStream(); DataOutputStream outt = new DataOutputStream(bb); try { outt.writeUTF("Forward"); outt.writeUTF("ALL"); outt.writeUTF("test"); outt.writeUTF(is); } catch (IOException e) { e.printStackTrace(); } p.sendPluginMessage(Main.getPlugin(), "BungeeCord", bb.toByteArray()); } } return false; } } odbieranie @Override public void onPluginMessageReceived(String channel, Player player, byte[] message) { if (!channel.equals("BungeeCord")) { return; } try { ByteArrayDataInput in = ByteStreams.newDataInput(message); String subChannel = in.readUTF(); if (!subChannel.equals("test")) { ItemStack[] is = Inv.itemStackArrayFromBase64(String.valueOf(message)); player.getInventory().setContents(is); } } catch (IOException e) { e.printStackTrace(); } } tylko cos mi nie dziala :c Łączę posty, wstawiam kod w code. Notatka dodana przez Glicz Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 550 Opublikowano 30 czerwca 2022 Udostępnij Opublikowano 30 czerwca 2022 Wysyłasz wiadomość do bungeecorda, w której jest przetrzymywany ekwipunek gracza(zapisany w stringu), gdy to będzie potrzebne wysyłasz to na serwer docelowy. Ja szczerze mówiąc nie jestem zwolennikiem takich rozwiązań, w prawdzie kanały bungee są dobre, działają dobrze ale jednak wybrałbym jakąś bazę danych(chociażby redis który jest szybki, dynamiczny i w skrócie przeznaczony do tego typu działań) Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 ez_top1 0 Opublikowano 30 czerwca 2022 Autor Udostępnij Opublikowano 30 czerwca 2022 1 minutę temu, kerpson napisał: Wysyłasz wiadomość do bungeecorda, w której jest przetrzymywany ekwipunek gracza(zapisany w stringu), gdy to będzie potrzebne wysyłasz to na serwer docelowy. Ja szczerze mówiąc nie jestem zwolennikiem takich rozwiązań, w prawdzie kanały bungee są dobre, działają dobrze ale jednak wybrałbym jakąś bazę danych(chociażby redis który jest szybki, dynamiczny i w skrócie przeznaczony do tego typu działań) ale jakbyscie mogli pomoc z tym pluginem to byl bym bardzo wdzieczny. btw wiem ze lepsze rozwiazanie jest zrobienie redis lub kryoneta lub sockety ale poprostu potzebuje do jednego projektu Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
ez_top1 0
tak jak w temacie
Odnośnik do komentarza
Udostępnij na innych stronach
9 odpowiedzi na to pytanie
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.