package io.github.jordandoyle.mcinject.mod;
import java.lang.reflect.Method;
import org.objectweb.asm.Type;
import io.github.jordandoyle.mcinject.Wrapper;
import io.github.jordandoyle.mcinject.proxy.interfaces.Minecraft;
public abstract class Mod {
private String name;
private int key;
private boolean enabled;
private Category category;
protected Minecraft mc = Wrapper.getMinecraft();
public Mod(String name, int key, Category category) {
this.name = name;
this.key = key;
this.category = category;
}
public Mod(String name, Category category) {
this.name = name;
this.key = -1;
this.category = category;
}
public void toggle() {
if (enabled)
disable();
else
enable();
}
public boolean isEnabled() {
return enabled;
}
protected abstract void onEnable();
protected abstract void onDisable();
public void enable() {
if(enabled)
return;
enabled = true;
sendMessage(name + " \u00a7aenabled");
onEnable();
}
public void disable() {
if(!enabled)
return;
enabled = false;
sendMessage(name + " \u00a7cdisabled");
onDisable();
}
public String getName() {
return name;
}
public Category getCategory() {
return category;
}
public int getKey() {
return key;
}
protected void sendMessage(String message) {
Wrapper.getPlayer().addChatMessage("\u00a76[mcinject] \u00a7f" + message);
}
}