Skip to content

Instantly share code, notes, and snippets.

@DarkSeraphim
Created July 2, 2014 01:16
Show Gist options
  • Save DarkSeraphim/ee0e0cf699c898899a56 to your computer and use it in GitHub Desktop.
Save DarkSeraphim/ee0e0cf699c898899a56 to your computer and use it in GitHub Desktop.
Sample module for the class manager I wrote
package net.darkseraphim.testmodule;
import net.darkseraphim.classmanager.api.annotation.*;
import net.darkseraphim.classmanager.api.commands.DynCommandExecutor;
import net.darkseraphim.classmanager.api.module.ModuleInstance;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.util.Vector;
import java.util.HashMap;
import java.util.Map;
/**
* @Author DarkSeraphim
*/
@Module(name = "TestModule", fallback = "test")
public class Main extends ModuleInstance implements DynCommandExecutor, Listener
{
@Persistent(key = "loaded", instantiationType = HashMap.class)
private Map<String, Boolean> map;
@Override
public void onEnable()
{
Bukkit.broadcastMessage("Dynamic class enabled");
if(map.isEmpty())
map.put("key", true);
else
Bukkit.broadcastMessage("For the second time this run!");
this.registerCommands(this);
this.registerEvents(this);
}
@Override
public void onDisable()
{
Bukkit.broadcastMessage("Dynamic class disabled");
}
@EventHandler
public void onChat(AsyncPlayerChatEvent event)
{
event.setFormat(ChatColor.DARK_RED+event.getFormat());
}
@Aliases({"test", "test2", "pl"})
@Permission(node = "test.permission.node", message = "No permission you baka!\n<permission> seems to be missing from your rights.")
@CommandHandler(name = "derp")
public boolean derp(CommandSender sender, String label, String[] args)
{
if(sender instanceof Player)
{
((Player)sender).setVelocity(new Vector(0,2,0));
sender.sendMessage(ChatColor.GREEN+"Whoosh!");
}
else
sender.sendMessage(ChatColor.RED+"Aww");
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment