Sacred realms
This commit is contained in:
commit
aa1c13c74c
28 changed files with 1651 additions and 0 deletions
|
@ -0,0 +1,47 @@
|
|||
package me.unurled.sacredrealms.sr.managers;
|
||||
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
public class Manager implements Listener {
|
||||
|
||||
/** Constructor for the Manager class */
|
||||
public Manager() {
|
||||
SR.getInstance().getManagers().addManager(this);
|
||||
Bukkit.getScheduler()
|
||||
.runTaskAsynchronously(
|
||||
SR.getInstance(),
|
||||
() -> {
|
||||
load();
|
||||
Bukkit.getPluginManager().registerEvents(this, SR.getInstance());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an instance of a manager
|
||||
*
|
||||
* @param clazz The class of the manager
|
||||
* @return The instance of the manager
|
||||
* @param <T> The type of the manager
|
||||
*/
|
||||
public static <T extends Manager> Manager getInstance(Class<? extends Manager> clazz) {
|
||||
return clazz.cast(SR.getInstance().getManagers().getManager(clazz));
|
||||
}
|
||||
|
||||
/** Load the manager */
|
||||
public void load() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
/** Unload the manager */
|
||||
public void unload() {
|
||||
saveData();
|
||||
}
|
||||
|
||||
/** Save the data */
|
||||
public void saveData() {}
|
||||
|
||||
/** Load the data */
|
||||
public void loadData() {}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
package me.unurled.sacredrealms.sr.managers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.components.combat.CombatManager;
|
||||
import me.unurled.sacredrealms.sr.components.item.ItemManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class Managers {
|
||||
|
||||
private final List<Manager> managers;
|
||||
|
||||
public Managers() {
|
||||
managers = new ArrayList<>();
|
||||
// register managers here (like a new instance of them)
|
||||
|
||||
Bukkit.getScheduler()
|
||||
.runTaskLater(
|
||||
SR.getInstance(),
|
||||
() -> {
|
||||
new DataManager();
|
||||
new PlayerManager();
|
||||
new ItemManager();
|
||||
new CombatManager();
|
||||
},
|
||||
10L);
|
||||
}
|
||||
|
||||
public void addManager(Manager manager) {
|
||||
managers.add(manager);
|
||||
}
|
||||
|
||||
public void unload() {
|
||||
for (Manager manager : managers) {
|
||||
manager.unload();
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Manager getManager(Class<? extends Manager> clazz) {
|
||||
for (Manager manager : managers) {
|
||||
if (manager.getClass().equals(clazz)) {
|
||||
return manager;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue