SimpleGuiFormat
Simple Gui Format used for formatting guis for Spigot minigames!
Look into our wiki: https://github.com/Misat11/SimpleGuiFormat/wiki
How to use
- Import maven repository
<repository>
<id>mtorus-repo</id>
<url>https://jenkins.mtorus.cz/plugin/repository/everything/</url>
</repository>
- Include dependency
<dependency>
<groupId>misat11.lib.sgui</groupId>
<artifactId>SimpleGuiFormat</artifactId>
<version>0.0.4</version>
<scope>compile</scope>
</dependency>
- Use in code
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import misat11.lib.sgui.SimpleGuiFormat;
import misat11.lib.sgui.InventoryListener;
import misat11.lib.sgui.events.GenerateItemEvent;
import misat11.lib.sgui.events.PostActionEvent;
import misat11.lib.sgui.events.PreActionEvent;
public class Sample extends JavaPlugin implements Listener {
public SimpleGuiFormat format;
public void onEnable() {
InventoryListener listener = new InventoryListener(); // for all guis
Bukkit.getServer().getPluginManager().registerEvents(listener, this); // Needed for navigate in inventory
// here do some things to load the configuration
ItemStack backItem = someItemStack1; // here load item for go back to parent inventory
ItemStack pageBackItem = someItemStack2; // here load item for page back
ItemStack pageForwardItem = someItemStack3; // here load item for page forward
ItemStack cosmeticItem = someItemStack4; // here load cosmetics on first and last line
List<Map<String, Object>> data = myBestConfiguration; // here load your configuration
// now we must create gui from configuration
format = new SimpleGuiFormat(nameOfYourInventory, backItem, pageBackItem, pageForwardItem, cosmeticItem);
format.load(data);
Bukkit.getServer().getPluginManager().registerEvents(this, this); // Needed for onclick action
format.generateData();
}
@EventHandler
public void onGeneratingItem(GenerateItemEvent event) {
if (event.getFormat() != format) {
return; // you should check if the format is yours
}
// here do some stuff on generating item with creator
}
@EventHandler
public void onPreAction(PreActionEvent event) {
if (event.getFormat() != format) {
return; // you should check if the format is yours
}
if (event.isCancelled()) {
return; // you should stop working when event is cancelled
}
// here you should check that player has permissions for this inventory, if not, you should cancel this event
}
@EventHandler
public void onPostAction(PostActionEvent event) {
if (event.getFormat() != format) {
return; // you should check if the format is yours
}
if (event.isCancelled()) {
return; // you should stop working when event is cancelled
}
// here you should make do some stuff when player clicks to item
}
public void show(Player player) {
format.openForPlayer(player);
}
}
- Relocate package
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<pattern>misat11.lib</pattern>
<shadedPattern>yourcustompackage.lib</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
- Now build your plugin and enjoy it!
mvn install