Kabza to plugin, który umożliwia tworzenie specjalnych worków, do których automatycznie trafiają poszczególne przedmioty po ich zebraniu. Po otworzeniu worka, otrzymujemy skrzynkę z całą zawartością worka.
Każdy z worków ma maksymalną pojemność 27 slotów (tj. max 27 stacków), tzn. zachowuje się tak jak skrzynka.
Każdy stworzony worek jest reprezentowany przez plik *.json
w folderze /bags
. Przykładowa struktura pliku:
uuid
- identyfikator workaopened
- czy worek został już otworzony przez graczabagTypeId
- typ danego workacontent
- aktualna zawartość worka
{
"uuid": "6309fb4a-f10a-4a69-9315-08eb79779f3b",
"opened": false,
"bagTypeId": "BAG_TYPE_2",
"content": [
{
"type": "YELLOW_WOOL",
"amount": 90
},
{
"type": "YELLOW_DYE",
"amount": 27
}
]
}
Każdy typ worka reprezentowany jest przez plik *.json
w folderze /bagtypes
. Przykładowa struktura pliku:
id
- identyfikator typu workabagName
- nazwa workabagDescription
- opis worka, który pojawi się w Lore przedmiotubagItemType
- typ przedmiotu, który będzie reprezentować worekcraftingEnabled
- flaga określająca, czy ma być możliwość craftingu workashapelessCrafting
- flaga określająca, czy ma być możliwość craftingu worka w trybie shapeless (tj. nie ma znaczenia ułożenie przedmiotów)craftingRecipe
- crafting worka (kolejność przedmiotów w liście ma znaczenie!)allowedItemAllowed
- flaga określająca, czy worek ma przyjmować wszystkie przedmiotyallowedItems
- przedmioty, które mają być zbierane do workatype
- rodzaj przedmiotu (klasaMaterial
)allNamesAllowed
- flaga określająca, czy mają być dopuszczalne przedmioty z dowolną nazwąallLoresAllowed
- flaga określająca, czy mają być dopuszczalne przedmioty z dowolnym LorenoNameAllowed
- flaga określająca, czy ma być dopuszczony przedmiot bez customowej nazwy (tj. z domyślną nazwą w MC)noNameAllowed
- flaga określająca, czy ma być dopuszczony przedmiot bez Lorenames
- lista nazw, które są dopuszczalne na przedmiocielores
- lista Lore, które są dopuszczalne na przedmiocie
{
"id" : "BAG_TYPE_1",
"bagName" : "&6Worek",
"bagDescription": [
"&1Linia opisu 1",
"&2Linia opisu 2"
],
"bagItemType": "CHEST",
"craftingEnabled": true,
"craftingRecipe" : [
"CHEST",
"CHEST",
"CHEST",
"CHEST",
"AIR",
"CHEST",
"CHEST",
"CHEST",
"CHEST"
],
"allItemsAllowed": false,
"allowedItems": [
{
"type": "APPLE",
"allNamesAllowed": false,
"allLoresAllowed": false,
"noNameAllowed": true,
"noLoreAllowed": true,
"names": [
"Nazwa 1",
"&8Nazwa 2 (kolorowa)"
],
"lores": [
{
"lore": [
"Linia Lore 1",
"&2Linia Lore 2"
]
},
{
"lore": [
"Inna Linia Lore 1",
"Inna Linia Lore 2"
]
}
]
}
]
}
Oznaczenia:
<bag_type_id>
- ID typu worka<item_type>
- typ przedmiotu (np. RED_WOOL, CHEST)<bag_name>
- nazwa worka<flag>
- flaga przyjmująca wartości:TRUE
lubFALSE
<line_no>
- numer linii<lore_no>
- liczba porządkowa danego Lore na liście<name_no>
- liczba porządkowa danej nazwy na liście<name>
- nazwa<line>
- linia (np. Lore)
Administracyjne:
/kabza bag give <bag_type_id>
- otrzymanie worka o danym ID/kabza bag inspect
- wyświetlenie informacji o worku trzymanym w ręce/kabza bagtype <bag_type_id> create
- stworzenie nowego typu worka/kabza bagtype <bag_type_id> inspect all
- wyświetlenie ogólnych informacji o danym typie worka/kabza bagtype <bag_type_id> inspect alloweditem <item_type>
- wyświetlenie informacji o danym dopuszczalnym w worku przedmiocie/kabza bagtype <bag_type_id> edit set bagname <bag_name>
- ustawienie nazwy worka o danym typie/kabza bagtype <bag_type_id> edit set bagitemtype <item_type>
- ustawienie przedmiotu reprezentującego worek o danym type/kabza bagtype <bag_type_id> edit set craftingenabled <flag>
- ustawienie, czy dany typ worka można scraftować/kabza bagtype <bag_type_id> edit set shapelesscrafting <flag>
- ustawienie, czy dany typ ma mieć shapeless crafting/kabza bagtype <bag_type_id> edit set allitemsallowed <flag
- ustawienie, czy dany typ worka może zbierać wszystkie przedmioty/kabza bagtype <bag_type_id> edit bagdescription add <line_no> <line>
- dodanie linii do opisu danego typu worka/kabza bagtype <bag_type_id> edit bagdescription remove <line_no>
- usunięcie linii z opisu danego typu worka/kabza bagtype <bag_type_id> edit bagdescription clear
- usunięcie całego opisu danego typu worka/kabza bagtype <bag_type_id> edit alloweditem <item_type> set allnamesallowed <flag>
- ustawienie, czy dany dopuszczalny typ przedmiotu w worku może mieć jakikolwiek Lore/kabza bagtype <bag_type_id> edit alloweditem <item_type> set allloresallowed <flag>
- ustawienie, czy dany dopuszczalby typ przedmiotu w worku może mieć jakąkolwiek nazwę/kabza bagtype <bag_type_id> edit alloweditem <item_type> set nonameallowed <flag>
- ustawienie, czy dany dopuszczalny typ przedmiotu w worku może nie mieć nazwy (tj. mieć oryginalną nazwę z gry)/kabza bagtype <bag_type_id> edit alloweditem <item_type> set noloreallowed <flag>
- ustawienie, czy dany dopuszczalny typ przedmiotu w worku może nie mieć Lore/kabza bagtype <bag_type_id> edit alloweditem <item_type> edit names add <name>
- dodanie dopuszczalnej nazwy dla danego typuprzedmiotu w worku o danym typie/kabza bagtype <bag_type_id> edit alloweditem <item_type> edit names remove <name_no>
- usunięcie dopuszczalnej nazwy dla dango typu przedmiotu w worku o danym typie/kabza bagtype <bag_type_id> edit alloweditem <item_type> edit names clear
- usunięcie wszystkich dopuszczalnych nazw dla danego typu przedmiotu w worku o danym typie/kabza bagtype <bag_type_id> edit alloweditem <item_type> edit lores <lore_no> add <line_no> <line>
- dodanie linii do danego Lore dla danego dopuszczalnego typu przedmiotu w worku o danym typie/kabza bagtype <bag_type_id> edit alloweditem <item_type> edit lores <lore_no> remove all
- usunięcie danego Lore dla danego dopuszczalnego typu przedmiotu w worku o danym typie/kabza bagtype <bag_type_id> edit alloweditem <item_type> edit lores <lore_no> remove <line_no>
- usunięcie linii z danego Lore dla danego dopuszczalnego typu przedmiotu w worku o danym typie/kabza bagtype <bag_type_id> edit alloweditem <item_type> edit lores clear
- usunięcie wszystkich dopuszczalnych Lore dla danego typu przedmiotu w worku o danym typie/kabza reload
- przeładowanie pluginu
kabza.admin
- wymagane, aby korzystać z komend administracyjnych
Plugin umożliwia korzystanie przez inne pluginy z jego funkcjonalności poprzez wystawione API:
Aby umieścić plugin w repozytorium lokalnym, należy sklonować projekt, a następnie wywołać polecenie:
mvn clean package
mvn install:install-file -Dfile=target/Kabza-0.7.1.jar -DgroupId=pl.opencraft -DartifactId=Kabza -Dversion=0.7.1 -Dpackaging=jar -DgeneratePom=true
Aby skorzystać z API, należy dodać pole <dependency>
w pliku pom.xml
:
<!-- Kabza -->
<dependency>
<groupId>pl.opencraft</groupId>
<artifactId>Kabza</artifactId>
<version>0.7.1</version>
</dependency>
Następnie należy zadeklarować zmienną przechowującą uchwyt do API:
@Override
public void onEnable() {
kabzaApi = (KabzaApi) this.getServer().getPluginManager().getPlugin("Kabza");
}
Dostępne metody za pośrednictwem API:
public BagsService getBagsService();
public BagTypesService getBagTypesService();
- v1.0 - Minecraft 1.14.4 - aktualna wersja pluginu.