Overview (Dutch)
Talen: English (Engels)
Dit project is alleen voor ontwikkelaars, als je een servereigenaar bent is dit niet voor jou bedoeld.
Dit project vereist Java 8 of hoger.
IF
IF - Inventory Framework is een licht, maar krachtig GUI framework, bedoeld om je te helpen met het makkelijker maken van het creëren, veranderen en beheren van GUIs. Hier zijn een paar dingen waarom ik denk dat IF beter is dan andere, soortgelijke frameworks:
Paneel gebaseerd: IF is volledig gebaseerd op het gebruik van panelen die ervoor zorgen dat je jouw GUI kunt opsplitsen in kleinere gedeelten die individueel verandert kunnen worden, zonder andere gedeelten van je GUI aan te passen.
XML lezen: IF kan XML-bestanden lezen en daarvan gehele GUIs maken. Geen lange functies meer om een GUI te maken, laadt ze gewoon in vanuit een XML-bestand. (Geen zorgen, XML is volledig optioneel, negeer het als je ze niet wil gebruiken.)
Uitbreidbaar: Je kan je eigen panelen maken met hun eigen eigenschappen zodat deze zich precies zo gedragen als jij wilt, zonder dat je een geheel nieuw GUI framework hoeft te maken.
Geen event handlers meer: Het is niet nodig om listeners te maken met tientallen if statements om te kijken of er op een specifiek item was geklikt. IF doet dit allemaal voor jou, zodat jij je kan focussen op het maken van je plugin.
Rotaties: Voeg makkelijk twee-dimensionale rotaties toe aan je panelen om ze op verschillende manieren te draaien.
IF heeft een uitgebreide wiki met gedetailleerde uitleg over het framework en hoe je het gebruikt. Je kan de wiki hier vinden.
Gebruik
IF werkt alleenstaand. Je moet het in je plugin verwerken, in plaats van aan de server toevoegen.
Als je geen bouwsysteem gebruikt, kan je het bestand downloaden vanaf de download link hier en deze toevoegen als een afhankelijkheid in jouw IDE.
Als je Maven gebruikt, voeg het volgende toe als afhankelijkheid aan je pom.xml:
<dependency> <groupId>com.github.stefvanschie.inventoryframework</groupId> <artifactId>IF</artifactId> <version>0.12.0</version> </dependency>
IF is in de Central Repository, dus je hoeft geen repository te specificeren.
Dan voeg dit toe om IF in je plugin te verwerken:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.2</version>
<configuration>
<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
<relocations>
<relocation>
<pattern>com.github.stefvanschie.inventoryframework</pattern>
<shadedPattern>[JOUW PACKAGE].inventoryframework</shadedPattern>
</relocation>
</relocations>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
Vervang [JOUW PACKAGE] met jouw hoofd package.
Er zijn uitgebreide tutorials en voorbeelden op de wiki, dus ik raad je aan om die te bekijken om te zien hoe het werkt. Als je niet zeker weet hoe XML werkt, is er ook een kleine tutorial daarover op de wiki.
Hier is een klein stukje code hoe je een basis GUI maakt met één item erin.
//create a gui with 5 rows and the title My GUI
Gui gui = new Gui(plugin, 5, "My GUI");
//create a new pane occupying the entire gui
OutlinePane pane = new OutlinePane(9, 5);
ItemStack item = new ItemStack(Material.ICE);
//create an item which will send a message when clicked
GuiItem guiItem = new GuiItem(item, event -> event.getWhoClicked().sendMessage("You clicked on ice!"));
//add the item to the pane
pane.addItem(guiItem);
//add the pane to the item
gui.addPane(pane, Slot.fromXY(0, 0));
Suggesties en feedback wordt zeer gewaardeerd!
Verwijzingen: