Yamipa
Kolejny dodatek do umieszczania obrazów w Minecraft
- Dostępne pliki
- 28
- Obsługiwane wersje
- 26
- Najnowszy plik
- 09.08.2025
Yamipa to wtyczka Spigot, która pozwala graczom umieszczać obrazy (nawet animowane!) na dowolnej powierzchni na twoim serwerze Minecraft bez konieczności instalowania lokalnego moda klienckiego.
Została zaprojektowana z myślą o wydajności i kompatybilności, więc nawet najbardziej skromne serwery z niższą specyfikacją powinny dać radę ją uruchomić.
Instalacja
Pobierz plik JAR dla najnowszego wydania najnowsze wydanie i skopiuj go do katalogu "plugins" twojego serwera Minecraft, tak jak to robisz z każdą inną wtyczką. To wszystko!
Wymagania
Przed zainstalowaniem Yamipa upewnij się, że spełniasz następujące wymagania:
- CraftBukkit, Spigot lub PaperMC 1.16 lub nowszy
- ProtocolLib v5.3.0 lub wyższy
Oto dystrybucje Minecraft, na których Yamipa powinna działać:
| Wersja Minecraft | CraftBukkit | Spigot | PaperMC |
|---|---|---|---|
| 1.16.x | ✅ | ✅ | ✅ |
| 1.17 & 1.17.1 | ✅ | ✅ | ✅ |
| 1.18 & 1.18.x | ✅ | ✅ | ✅ |
| 1.19 & 1.19.x | ✅ | ✅ | ✅ |
| 1.20 & 1.20.x | ✅ | ✅ | ✅ |
| 1.21 & 1.21.x | ✅ | ✅ | ✅ |
Konfiguracja
Yamipa działa od razu po wyjęciu z pudełka. Domyślnie tworzy następujące pliki i katalogi w katalogu plugins/YamipaPlugin:
cache: katalog zawierający zapamiętane obrazy, aby przyspieszyć renderowanie. Nie powinieneś modyfikować jego zawartości.images: To katalog, do którego wrzucasz pliki obrazów, które chcesz umieścić w twoim świecie Minecraft.images.dat: plik zawierający listę i właściwości (np. współrzędne) wszystkich umieszczonych obrazów na twoim serwerze. Nie powinieneś modyfikować jego zawartości.
Możesz zmienić ścieżkę do tych plików, tworząc plik config.yml w katalogu konfiguracji wtyczki. Poniżej znajdują się domyślne wartości konfiguracji, jeśli ich nie podasz:
verbose: false # Ustaw na "true", aby włączyć bardziej szczegółowe logowanie animate-images: true # Ustaw na "false", aby wyłączyć obsługę GIF-ów images-path: images # Ścieżka do katalogu z obrazami cache-path: cache # Ścieżka do katalogu cache data-path: images.dat # Ścieżka do pliku bazy danych umieszczonych obrazów allowed-paths: null # Ustaw jako RegExp, aby ograniczyć dostępne obrazy dla graczy max-image-dimension: 30 # Maksymalna szerokość lub wysokość w blokach dozwolona w obrazach
Więcej informacji o tym, jak ustawić inną wartość allowed-paths lub max-image-dimension dla gracza, zobacz sekcję Zmienne graczy.
Zmienna allowed-paths to wyrażenie regularne, które określa, czy gracz ma prawo zobaczyć lub pobrać plik obrazu. Jeśli żądana ścieżka względem katalogu z obrazami pasuje do tego wyrażenia, gracz może kontynuować.
Jeśli allowed-paths jest pustym łańcuchem ("") lub null, gracz może odczytać dowolny plik obrazu lub pobrać na dowolną ścieżkę w katalogu z obrazami.
To wyrażenie regularne musi odpowiadać składni używanej przez Java. Możesz wcześniej przetestować swoje wyrażenie za pomocą narzędzia online takiego jak regex101. Dodatkowo możesz skorzystać z następujących specjalnych tokenów:
#player#: Nazwa gracza#uuid#: UUID gracza (z myślnikami)
Na przykład, jeśli chcesz, aby każdy gracz miał własny podkatalog do przechowywania plików, do którego dostęp mają tylko oni, oraz wspólny publiczny katalog, możesz użyć następującej wartości allowed-paths:
^(private/#player#|public)/
W ten sposób gracz o nazwie "john" będzie mógł zobaczyć plik obrazu w lokalizacji "private/john/something.jpg", ale "jane" nie będzie mógł.
WAŻNE!
Zwróć uwagę, że te ograniczenia mają również zastosowanie do innych encji, takich jak NPC-y, bloki poleceń lub konsola serwera. Jednak specjalne tokeny będą zawsze dopasowywać się w kontekstach niezależnych od gracza (np. "#player#" będzie interpretowane jako ".+").
Ta biblioteka używa bStats do anonimowego raportowania liczby instalacji. Jeśli Ci to nie odpowiada, możesz wyłączyć to w dowolnym momencie, dodając enabled: false do pliku konfiguracyjnego pliku konfiguracyjnego bStats (spoko, bez urazy).
Użytkowanie
Ta wtyczka dodaje następujące komendy:
/image clear <x z world> <r> [<placed-by>]: Usuń wszystkie umieszczone obrazy w promieniurbloków wokół punktu początkowego./image describe: Pokaż szczegółowe informacje o umieszczonym obrazie./image download <url> <filename>: Pobierz obraz z adresu URL i umieść go w katalogu images./image give <player> <filename> <amount> <w> [<h>] [<flags>]: Daj przedmioty obrazu graczowi, które można później umieścić./image list [<page>]: Wyświetl listę wszystkich dostępnych plików w katalogu images./image place <filename> <w> [<h>] [<flags>]: Umieść obraz o rozmiarzewxhbloków./image remove: Usuń umieszony obraz ze świata bez usuwania pliku obrazu./image top: Wyświetl listę graczy z największą liczbą umieszczonych obrazów.
Przykłady
- Pokaż pomoc
/image - Pobierz obraz z adresu URL i zapisz go pod inną nazwą
/image download "https://www.example.com/a/b/c/1234.jpg" imagename.jpg - Daj 10 przedmiotów obrazu graczowi "TestPlayer" dla obrazu "test.jpg" o wymiarach 3x5 bloków
/image give TestPlayer test.jpg 10 3 5 - Daj 10 przedmiotów obrazu graczowi="TestPlayer", które po usunięciu nie będą upuszczać przedmiotu obrazu
/image give TestPlayer test.jpg 10 3 5 -DROP - Rozpocznij dialog, aby umieścić obraz o szerokości 3 bloków i automatycznej wysokości
/image place imagename.jpg 3 - Rozpocznij dialog, aby umieścić obraz o szerokości 3 bloków i wysokości 2 bloków
/image place imagename.jpg 3 2 - Rozpocznij dialog, aby umieścić obraz, który świeci w ciemności
/image place imagename.jpg 3 2 +GLOW - Rozpocznij dialog, aby usunąć umieszony obraz, zachowując oryginalny plik
/image remove - Usuń wszystkie umieszczone obrazy w promieniu 5 bloków wokół spawn
/image clear 0 0 world 5 - Usuń wszystkie obrazy umieszczone przez "EvilPlayer" w promieniu 100 bloków w netherze
/image clear 50 70 world_nether 100 EvilPlayer - Usuń wszystkie starsze obrazy (bez metadanych „placed by”)
/image clear 0 0 world 9999999 00000000-0000-0000-0000-000000000000
Uprawnienia
Jeśli chcesz mieć większą kontrolę nad tym, którzy gracze mogą używać określonego zestawu poleceń, uprawnienia są właściwym rozwiązaniem!
Yamipa definiuje następujące uprawnienia:
| Polecenie | Domyślnie | Opis |
|---|---|---|
yamipa.command.clear |
OP-y | Aby użyć polecenia /image clear |
yamipa.command.describe |
OP-y | Aby użyć polecenia /image describe |
yamipa.command.download |
OP-y | Aby użyć polecenia /image download |
yamipa.command.give |
OP-y | Aby użyć polecenia /image give |
yamipa.command.list |
OP-y | Aby użyć polecenia /image list |
yamipa.command.place |
OP-y | Aby użyć polecenia /image place |
yamipa.command.remove |
OP-y | Aby użyć polecenia /image remove |
yamipa.command.remove.own |
OP-y | Tak jak poprzednie, ale tylko dla obrazów umieszczonych przez tego samego gracza |
yamipa.command.top |
OP-y | Aby użyć polecenia /image top |
yamipa.item.place |
Wszyscy gracze | Aby umieszczać przedmioty obrazu |
yamipa.item.remove |
Wszyscy gracze | Aby usuwać przedmioty obrazu (które mają flagę REMO) |
yamipa.item.remove.own |
Wszyscy gracze | Tak jak poprzednie, ale tylko dla obrazów umieszczonych przez tego samego gracza |
Note that permissions work as a tree. This means that if you grant a permission, by default its children will also be granted. For instance, you can grant access to all commands with yamipa.command.*. Similarly, if you grant the yamipa.command.remove, the permission yamipa.command.remove.own will also be granted.
Możesz zmienić, które role lub gracze mają przydzielone te polecenia, używając wtyczki uprawnień, takiej jak LuckPerms lub GroupManager. Obie te wtyczki zostały przetestowane pod kątem współpracy z Yamipa, chociaż każda podobna powinna działać równie dobrze.
Niektóre wtyczki z uprawnieniami, takie jak LuckPerms, pozwalają operatorom serwera przypisywać encjom pary klucz-wartość, tak jak uprawnienia. To przydatne przy przyznawaniu różnych możliwości różnym graczom lub grupom.
Yamipa szuka następujących zmiennych, które po znalezieniu nadpisują domyślną wartość konfiguracji przypisaną wszystkim graczom:
| Zmienna (klucz) | Nadpisuje | Opis |
|---|---|---|
yamipa-allowed-paths |
allowed-paths |
Wyrażenie regularne ograniczające, które ścieżki w katalogu z obrazami są dostępne |
yamipa-max-image-dimension |
max-image-dimension |
Maksymalna szerokość lub wysokość obrazów i przedmiotów obrazu wydawanych przez tego gracza lub grupę |
Na przykład, jeśli chcesz ograniczyć rozmiar obrazu do 5x5 bloków wyłącznie dla gracza "test", możesz uruchomić następujące polecenie:
# Using LuckPerms /lp user test meta set yamipa-max-image-dimension 5 # Using GroupManager /manuaddv test yamipa-max-image-dimension 5
Chronienie obszarów
Na dużych serwerach pozwalanie graczom na umieszczanie i usuwanie obrazów gdziekolwiek chcą może nie być najlepszym pomysłem. W takich przypadkach Yamipa współpracuje z innymi wtyczkami Bukkit, które umożliwiają tworzenie i zarządzanie obszarami świata. Jeśli masz jedną lub więcej takich wtyczek, Yamipa automatycznie zastosuje odpowiednie uprawnienia i zezwoli graczom na umieszczanie lub usuwanie obrazów tylko w miejscach, gdzie mogą stawiać lub usuwać bloki, bez dodatkowej konfiguracji.
Obsługiwane wtyczki to:
Flagi
Obrazy z tej wtyczki mają zestaw atrybutów logicznych zwanych „flagami”, które modyfikują ich zachowanie. Możliwe wartości to:
ANIM(animowalny): Czy obraz powinien być animowany, czy nie, przydatne, gdy nie chcesz, aby obraz GIF odtwarzał się.REMO(usuwalny): Czy obraz może być usunięty przez dowolnego gracza po kliknięciu go lewym przyciskiem myszy.DROP(zrzucany): Czy usunięty obraz upuszcza przedmiot obrazu.GLOW(świecący): Czy obraz świeci w ciemności (działa tylko na Minecraft 1.17 i wyższych).
Domyślnie obrazy umieszczane komendą "/image place" mają tylko flagę ANIM. Podobnie przedmioty obrazu wydawane komendą "/image give" mają flagi ANIM, REMO i DROP.
Domyślne flagi można modyfikować za pomocą argumentu "flags". Aby dodać flagę do domyślnych, użyj +{FLAG_NAME} (np. +GLOW), a aby ją usunąć, użyj -{FLAG_NAME} (np. -ANIM). Możesz modyfikować wiele flag, oddzielając je przecinkami (np. +GLOW,-ANIM).
Jak to działa?
Jak zapewne zgadłeś, Minecraft nie obsługuje umieszczania plików obrazów. Yamipa obejmuje to ograniczenie, korzystając z dwóch wbudowanych funkcji (ramki na przedmioty i mapy) do renderowania własnych obrazów.
Jednakże, ponieważ ramki na przedmioty są encjami (co powoduje znaczne opóźnienia serwera), Yamipa nie tworzy faktycznych encji w twoim świecie. Zamiast tego oszukuje klientów graczy, aby myśleli, że na miejscu znajduje się umieszczona ramka na przedmiot, której faktycznie nie ma, wysyłając spreparowane pakiety sieciowe.
WAŻNE!
Ponieważ Yamipa przechowuje w pamięci buforowaną kopię obrazu w razie potrzeby ponownego wysłania go bez utraty wydajności, twój serwer musi mieć trochę wolnej pamięci RAM, aby to obsłużyć.Zasada ogólna to 100K na unikalny załadowany obraz (1MB dla obrazów animowanych). Unikalny oznacza, że ten sam obraz o tych samych wymiarach umieszczony wielokrotnie liczy się tylko jako jeden egzemplarz.
Licencja
Yamipa jest licencjonowana na podstawie Licencji MIT.
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.
YamipaPlugin-1.3.3.jar 09.08.2025 319 KB
YamipaPlugin-1.3.2.jar 13.10.2024 320 KB
YamipaPlugin-1.3.1.jar 02.03.2024 146 KB
YamipaPlugin-1.3.0.jar 06.01.2024 145 KB
YamipaPlugin-1.3.0-SNAPSHOT.jar 31.12.2023 143 KB
YamipaPlugin-1.2.13.jar 26.12.2023 134 KB
YamipaPlugin-1.2.12.jar 14.10.2023 134 KB
YamipaPlugin-1.2.11.jar 17.06.2023 134 KB
YamipaPlugin-1.2.10.jar 07.05.2023 133 KB
YamipaPlugin-1.2.9.jar 25.03.2023 132 KB
YamipaPlugin-1.2.8.jar 02.02.2023 132 KB
YamipaPlugin-1.2.7.jar 17.12.2022 130 KB
YamipaPlugin-1.2.6.jar 29.10.2022 129 KB
YamipaPlugin-1.2.4-SNAPSHOT-b2.jar 02.08.2022 128 KB
YamipaPlugin-1.2.4-SNAPSHOT.jar 08.07.2022 129 KB
YamipaPlugin-1.0.4.jar 17.04.2021 477 KB
YamipaPlugin.jar 30.03.2021 473 KB
YamipaPlugin.jar 26.02.2021 471 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.



