kerpson 551 Opublikowano 19 października 2018 Udostępnij Opublikowano 19 października 2018 (edytowane) Witam, czy mógłby kto mnie naprowadzić na to, jak przy ładowaniu serwera tworzyć inventory, a potem przy komendzie np. /pomoc było ono otwierane? Próbowałem dzisiaj cały dzień coś zrobić, ale mi nie szło. Edytowane 19 października 2018 przez stefanik11 Dodaję znaki diakrytyczne. Notatka dodana przez stefanik11 Nadaję warna za §2.3 z powodu masowych braków znaków diakrytycznych w postach. Notatka dodana przez bludis Odnośnik do komentarza https://skript.pl/temat/29958-inventory/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 stefanik11 61 Opublikowano 19 października 2018 Udostępnij Opublikowano 19 października 2018 Tworzysz sobię metodę (bardziej polecane ze względu na estetykę), lub wprowadzasz kod od razu do onEnable. Samo Inventory tworzy się w ten sposób: Inventory inventory = Bukkit.createInventory(null, <wielkość ekwipunku: x*9 (x min: 1, x max: 6)>, <tytuł>); Potem dodajesz sobie do inventory jakieś przedmioty: inventory.setItem(<slot>, <itemstack>); Następnie utworzony ekwipunek musisz dodać do zmiennej, w tym celu na górze klasy dodaj: private static Inventory inventory; A w tworzonej metodzie (na samym końcu): this.inventory = inventory; Oraz stwórz getter do zmiennej. Potem owy ekwipunek otwierać możesz w ten sposób: <player>.openInventory(<nazwa klasy>.getInventory()); Jeżeli chcesz przypisać danym przedmiotom jakieś funkcje dokonać tego musisz w listenerze InventoryClickEvent. kerpson 1 Odnośnik do komentarza https://skript.pl/temat/29958-inventory/#findComment-196621 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 19 października 2018 Autor Udostępnij Opublikowano 19 października 2018 (edytowane) Dzięki, jak zadziała to się odezwę. @stefanik11, tu trochę namieszałeś przy tym; this.inventory = inventory; Jeżeli mam coś takiego: Inventory chat = Bukkit.getServer().createInventory(null, 9, "§6§lMenu chat"); to jak mam to wpisać? Edytowane 20 października 2018 przez LjayPL789 Łączę. Notatka dodana przez stefanik11 Odnośnik do komentarza https://skript.pl/temat/29958-inventory/#findComment-196625 Udostępnij na innych stronach Więcej opcji udostępniania...
0 stefanik11 61 Opublikowano 19 października 2018 Udostępnij Opublikowano 19 października 2018 (edytowane) Po pierwsze, nie namieszałem tylko ty nadałeś inne nazwy. Po stworzeniu zmiennej Inventory o jakiejś nazwie musisz przypisać jej dany ekwipunek: <nazwa zmiennej> = <ekwipunek/inventory -> w twoim przypadku chat> Edytowane 19 października 2018 przez stefanik11 kerpson 1 Odnośnik do komentarza https://skript.pl/temat/29958-inventory/#findComment-196628 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 719 Opublikowano 19 października 2018 Udostępnij Opublikowano 19 października 2018 Godzinę temu, stefanik11 napisał: Po pierwsze, nie namieszałem tylko ty nadałeś inne nazwy. Po stworzeniu zmiennej Inventory o jakiejś nazwie musisz przypisać jej dany ekwipunek: <nazwa zmiennej> = <ekwipunek/inventory -> w twoim przypadku chat> Namieszałeś, this odnosi się do instancji, nie do statycznych pól. yooniks 1 Odnośnik do komentarza https://skript.pl/temat/29958-inventory/#findComment-196645 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 19 października 2018 Autor Udostępnij Opublikowano 19 października 2018 (edytowane) To mogę dostać poprawna wersje? Edytowane 20 października 2018 przez LjayPL789 Odnośnik do komentarza https://skript.pl/temat/29958-inventory/#findComment-196647 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 719 Opublikowano 20 października 2018 Udostępnij Opublikowano 20 października 2018 Możesz użyć do tego jakiejś biblioteki np. https://www.spigotmc.org/resources/gui-api.45799/ Jeśli nie chcesz, to tutaj masz poradnik przykładowy https://www.spigotmc.org/threads/tutorial-how-to-create-a-gui.280215/, tego na necie jest pełno. kerpson 1 Odnośnik do komentarza https://skript.pl/temat/29958-inventory/#findComment-196656 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 551 Opublikowano 20 października 2018 Autor Udostępnij Opublikowano 20 października 2018 (edytowane) @Ixidi ok, dzięki ale jeszcze jedno pytanie, czy taka metoda wpływa na wydajność serwera ? A potem w komendzie: createItemShop(p); Edytowane 20 października 2018 przez LjayPL789 Odnośnik do komentarza https://skript.pl/temat/29958-inventory/#findComment-196659 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 719 Opublikowano 20 października 2018 Udostępnij Opublikowano 20 października 2018 Ogólnie to polecam do tworzenia itemstacków napisać sobie jakiegoś buildera, bo potem wychodzi takie coś i powtarzanie kodu milion razy. No i jeszcze itemshop.setItem(0, glass); możesz po prostu zrobić pętlą zamiast kopiować i wklejać tyle razy kerpson 1 Odnośnik do komentarza https://skript.pl/temat/29958-inventory/#findComment-196668 Udostępnij na innych stronach Więcej opcji udostępniania...
0 yooniks 347 Opublikowano 21 października 2018 Udostępnij Opublikowano 21 października 2018 public class SimplePlugin extends JavaPlugin { private InventoryManager inventoryManager; @Override public void onEnable() { final Inventory shopInventory = this.getServer().createInventory(null, 9*3, "Ekwipunek sklepu"); shopInventory.setItem(0, new ItemStack(Material.GLASS)); this.inventoryManager = new InventoryManager(shopInventory); } public InventoryManager getInventoryManager() { return this.inventoryManager; } } public class InventoryManager { private final Inventory shopInventory; public InventoryManager(Inventory shopInventory) { this.shopInventory = shopInventory; } public void openShopInventory(Player player) { player.openInventory(this.shopInventory); } } i w komendzie wtedy tylko: public class SimpleCommand implements CommandExecutor { private final InventoryManager inventoryManager; public SimpleCommand(InventoryManager inventoryManager) { this.inventoryManager = inventoryManager; } @Override public boolean onCommand(CommandSender sender, ....) { if (!(sender instanceof Player)) { sender.sendMessage("this command is only executable by player"); return true; } final Player player = (Player) sender; this.inventoryManager.openShopInventory(player); player.sendMessage(ChatColor.RED + "Otworzono ekwipunek sklepu!"); } } naprawde, zacznij sobie pierw od pisania malych programów, tak zeby kod ladnie wygladal i bylo to czytelne dla kazdego kto by ten kod czytał i żeby był w stanie ten twój kod zedytować i sie w nim połapać, bo jak zaczynasz od mc to później takie problemy są, że niby coś tam w bukkicie umiesz, ale nawet nie wiesz jak to działa i kod wychodzi tak jak wychodzi =/ kerpson 1 Odnośnik do komentarza https://skript.pl/temat/29958-inventory/#findComment-196742 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
kerpson 551
Witam, czy mógłby kto mnie naprowadzić na to, jak przy ładowaniu serwera tworzyć inventory, a potem przy komendzie np. /pomoc było ono otwierane?
Próbowałem dzisiaj cały dzień coś zrobić, ale mi nie szło.
Edytowane przez stefanik11Dodaję znaki diakrytyczne.
Notatka dodana przez stefanik11
Nadaję warna za §2.3 z powodu masowych braków znaków diakrytycznych w postach.
Notatka dodana przez bludis
Odnośnik do komentarza
https://skript.pl/temat/29958-inventory/Udostępnij na innych stronach
9 odpowiedzi na to pytanie
Rekomendowane odpowiedzi