Maven Repository:
<repository>
<id>moonpillars-repo</id>
<name>MoonPillars Maven Repository</name>
<url>https://moonpillars.kloppie74.xyz/repository/MoonPillars/</url>
</repository>
Maven Dependency:
<dependency>
<groupId>org.Kloppie74</groupId>
<artifactId>MoonPillars-PaperMC-MacMC</artifactId>
<version>8.0.0</version>
<classifier>api</classifier>
</dependency>
Gradle:
implementation 'org.Kloppie74:MoonPillars-PaperMC-MacMC:8.0.0:api@jar'
Create a new Kotlin or Java plugin project.
Update your main class to implement
MoonAddon
:
package org.Kloppie74.MyAddon;
import org.Kloppie74.MyAddon.Commands.MyCommand;
import org.Kloppie74.MyAddon.Listeners.MyListener;
import org.bukkit.command.CommandExecutor;
import org.bukkit.event.Listener;
import org.bukkit.plugin.Plugin;
import org.kloppie74.MoonPillars.PaperMC.AddonsManager.CommandDefinition;
import org.kloppie74.MoonPillars.PaperMC.AddonsManager.MoonAddon;
import org.kloppie74.MoonPillars.PaperMC.AddonsManager.PermissionDefinition;
import java.util.*;
public class MyAddon implements MoonAddon {
private final List<Listener> listeners = new ArrayList<>();
private final Map<String, CommandExecutor> commands = new HashMap<>();
private Plugin plugin;
@Override
public void onEnable(Plugin plugin) {
this.plugin = plugin;
// Register listeners
listeners.add(new MyListener());
// Register commands
commands.put("myaddoncommand", new MyCommand());
plugin.getLogger().info("MyAddon has been enabled!");
}
@Override
public void onDisable() {
// Cleanup if needed
}
@Override
public String getName() {
return "MyAddon";
}
@Override
public String getVersion() {
return "1.0.0";
}
@Override
public List<Listener> getListeners() {
return listeners;
}
@Override
public Map<String, CommandExecutor> getCommands() {
return commands;
}
@Override
public Map<String, CommandDefinition> getCommandDefinitions() {
Map<String, CommandDefinition> commandDefs = new HashMap<>();
commandDefs.put("myaddoncommand", new CommandDefinition.Builder("myaddoncommand")
.description("A command provided by MyAddon")
.usage("/myaddoncommand <argument>")
.permission("myaddon.command.use")
.permissionMessage("You don't have permission to use this command.")
.alias("myacmd")
.build());
return commandDefs;
}
@Override
public List<PermissionDefinition> getPermissionDefinitions() {
return Collections.singletonList(
new PermissionDefinition(
"myaddon.command.use",
"Allows use of MyAddon commands",
"true"
)
);
}
}
Create a file named addon.properties
in your resources/
directory with the following content:
main-class=com.yourdomain.YourAddonMainClass
Make sure main-class
points to the fully qualified name of your class that implements MoonAddon
.
Need help? Join our community or check the documentation! Letβs build amazing things together with MoonPillars Addons! π