Individual Signs
Wyświetla tekst na znakach indywidualnie dla każdego gracza, który na nie patrzy.
- Dostępne pliki
- 26
- Obsługiwane wersje
- 25
- Najnowszy plik
- 07.09.2024
Opis
Ta wtyczka wyświetla tekst na znakach dla każdego gracza indywidualnie inaczej.
Domyślnie ta wtyczka zastępuje tylko [PLAYER] na znakach ich nazwą oraz [DISPLAY] ich nickiem gracza patrzącego na nie.
Uprawnienia do tworzenia znaków zawierających te tagi to insigns.create.player oraz insigns.create.display.
Jednak InSigns zawiera także API dla deweloperów innych wtyczek, umożliwiające łatwe dodanie własnych treści znaków związanych z graczem.
Ta wtyczka może na przykład służyć do indywidualnych znaków powitalnych na twoim spawnie. Twoi gracze będą zachwyceni widząc swoje imię na znaku!
WAŻNE
Ta wtyczka wymaga ProtocolLib, aby działać.
Upewnij się, że zainstalowałeś odpowiednią wersję ProtocolLib.
Ta wtyczka powinna być kompatybilna z kolejnymi wersjami Minecraft i Bukkit tak długo, jak ProtocolLib nie będzie musiał nic zmieniać w swoim API, na którym InSigns polega, a protokół Minecraft nie będzie wprowadzał zmian związanych ze znakami.
Szybka prezentacja od VariationVault
Dla twórców wtyczek: łatwe w użyciu API
Oto krótki przykład, jak możesz użyć tego w swojej własnej wtyczce, aby wyświetlać wartości specyficzne dla gracza na znakach.
1.) Po pierwsze: dodaj jar IndividualSigns do swojej ścieżki budowy (dokładnie tak, jak robisz to z bukkit.jar)
2.) Następnie możesz stworzyć nasłuchiwacz, który nasłuchuje na SignSendEvent (tak jak tworzysz nasłuchiwaczy dla zdarzeń Bukkit): To zdarzenie wywoływane jest za każdym razem, gdy serwer ma zamiar zaktualizować treść znaku dla gracza.
3.) Zdarzenie udostępnia proste metody do pobierania bieżącego tekstu znaku i jego zmiany:
- getPlayer() - Zwraca gracza, który odbiera pakiet znaku.
- getLocation() - Zwraca lokalizację znaku, którego tekst jest wysyłany.
- getLine(int index) - Zwraca linię tekstu na podanym indeksie (0-3). Linie mają format JSON.
- setLine(int index, String line) - Ustawia linię tekstu na podanym indeksie. Musi być w poprawnym formacie JSON.
- isModified() - Czy to zdarzenie było zmodyfikowane przez jakiś plugin.
- setCancelled(boolean cancelled) - Jeśli zdarzenie zostanie anulowane, zawartość znaku nie zostanie zaktualizowana dla dotkniętego gracza, pozostawiając ją aktualną (pusta, jeśli wszystkie SignSendEvent zostaną anulowane).
- isCancelled() - Sprawdza, czy to zdarzenie zostało już anulowane przez jakiś plugin.
Przykładowe użycie zdarzenia do zastąpienia "[PLAYER]" nazwą gracza:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class SignSendListener implements Listener { public SignSendListener(Plugin plugin) { Bukkit.getServer().getPluginManager().registerEvents(this, plugin); } @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onSignSend(SignSendEvent event) { for (int i = 0; i < 4; i++) { String line = event.getLine(i); if (line.contains("[PLAYER]")) { event.setLine(i, line.replace("[PLAYER]", event.getPlayer().getName())); } } } } |
That's it. The InSigns-Plugin will handle all the needed packet manipulation for you.
Some other useful utilities provided by InSigns are:
- The SimpleChanger class which can be used to easily create a listener for simple key->value replacements and permission checks during sign creation. Example for the built-in [PLAYER] -> playerName replacement:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
@Override public void onEnable() { Plugin insignsPlugin = getServer().getPluginManager().getPlugin("InSigns"); if ((insignsPlugin != null) && insignsPlugin.isEnabled()) { // Replaces "[PLAYER]" with the player's name on signs and checks for the 'insigns.create.player' permission whenever a player tries to create a sign with "[PLAYER]" on it new SimpleChanger(this, "[PLAYER]", "insigns.create.player") { @Override public String getValue(Player player, Location location) { return player.getName(); } }; getLogger().info("Plugin 'InSigns' found. Using it now."); } else { getLogger().info("Plugin 'InSigns' not found. Additional sign features disabled."); } } |
Wtyczki korzystające z InSigns
- Paintball War Edition - Oferuje indywidualne tablice ze statystykami paintballa.
- ScoreboardStats - Oferuje pewne indywidualne znaki ze statystyk ogólnych.
Daj mi znać, jeśli Twoja wtyczka używa InSigns i chcesz, aby została tutaj wymieniona.
Statystyki
Ta wtyczka używa bStats do zbierania anonimowych statystyk użytkowania, aby określić, ile serwerów korzysta z wtyczki i z jakimi wersjami Minecraft jest ona najczęściej używana. Wszystkie zebrane informacje można publicznie przeglądać tutaj: https://bstats.org/plugin/bukkit/InSigns
Możesz wyłączyć bStats dla wszystkich wtyczek na Twoim serwerze, edytując plik plugins/bStats/config.yml, lub alternatywnie wyłączyć go tylko dla IndividualSigns, ustawiając 'metrics-stats' na 'false' w konfiguracji InSigns.
Darowizny
Jeśli podoba Ci się ta wtyczka, rozważ wsparcie jej rozwoju poprzez dokonanie darowiznę.
Z góry dziękujemy!
Opis projektu pochodzi z CurseForge i został udostępniony po polsku. Szczegóły konfiguracji, zależności oraz aktualne komunikaty autora sprawdź na w źródłowym katalogu CurseForge.
IndividualSigns-2.9.2.jar 07.09.2024 115 KB
IndividualSigns-2.9.1.jar 07.01.2022 56 KB
IndividualSigns-2.9.0.jar 04.01.2022 56 KB
IndividualSigns-2.8.0.jar 08.08.2021 50 KB
IndividualSigns-2.7.0.jar 17.06.2019 43 KB
IndividualSigns-2.6.0.jar 27.09.2018 42 KB
IndividualSigns-2.4.jar 15.05.2016 27 KB
InSigns_v1.1.jar 05.03.2013 15 KB
InSigns_v1.0.jar 15.02.2013 15 KB
InSigns_v0.9.jar 15.02.2013 14 KB
InSigns_v0.8.jar 28.12.2012 7 KB
InSigns_v0.7.jar 19.12.2012 10 KB
InSigns_v0.6.jar 09.11.2012 9 KB
InSigns_v0.5.jar 20.10.2012 8 KB
InSigns_v0.4.jar 13.10.2012 8 KB
InSigns.jar 20.09.2012 6 KB
InSigns.jar 18.09.2012 6 KB
Jak bezpiecznie sprawdzić ten plugin
Wybierz zgodny plik
Oznaczenia wersji pochodzą z metadanych autora. Dobierz również właściwe oprogramowanie serwera i Javę.
Zachowaj kopię
Przed pierwszym startem skopiuj świat, konfigurację oraz dane pozostałych pluginów.
Przeczytaj log
Po uruchomieniu sprawdź brakujące zależności i pierwszy błąd związany z nazwą pluginu.