TF-Marriage/src/main/java/com/lenis0012/bukkit/marriage2/internal/MarriageCore.java

94 lines
2.6 KiB
Java
Raw Normal View History

2014-11-12 19:41:40 +00:00
package com.lenis0012.bukkit.marriage2.internal;
2014-11-14 19:37:31 +00:00
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
2014-11-13 07:36:28 +00:00
import java.util.UUID;
2015-02-03 21:59:57 +00:00
import org.bukkit.event.Listener;
2014-11-13 07:36:28 +00:00
import com.lenis0012.bukkit.marriage2.MPlayer;
2015-02-03 21:59:57 +00:00
import com.lenis0012.bukkit.marriage2.commands.Command;
2014-11-13 16:45:41 +00:00
import com.lenis0012.bukkit.marriage2.config.Message;
import com.lenis0012.bukkit.marriage2.config.Settings;
2014-11-14 19:37:31 +00:00
import com.lenis0012.bukkit.marriage2.internal.data.DataManager;
import com.lenis0012.bukkit.marriage2.internal.data.MarriageData;
import com.lenis0012.bukkit.marriage2.internal.data.MarriagePlayer;
2015-01-09 17:27:08 +00:00
import com.lenis0012.bukkit.marriage2.misc.ListQuery;
2014-11-12 19:41:40 +00:00
public class MarriageCore extends MarriageBase {
2014-11-14 19:37:31 +00:00
private final Map<UUID, MarriagePlayer> players = Collections.synchronizedMap(new HashMap<UUID, MarriagePlayer>());
private DataManager dataManager;
2014-11-12 19:41:40 +00:00
public MarriageCore(MarriagePlugin plugin) {
super(plugin);
}
2014-11-13 16:45:41 +00:00
@Register(name = "config", type = Register.Type.ENABLE, priority = 0)
public void loadConfig() {
2015-05-26 21:58:01 +00:00
// plugin.saveDefaultConfig();
enable();
2014-11-14 19:37:31 +00:00
Settings.reloadAll(this);
Message.reloadAll(this);
2014-11-12 19:41:40 +00:00
}
2014-11-12 21:27:22 +00:00
2014-11-14 19:37:31 +00:00
@Register(name = "database", type = Register.Type.ENABLE)
public void loadDatabase() {
this.dataManager = new DataManager(this, plugin.getConfig());
}
@Register(name = "listeners", type = Register.Type.ENABLE)
public void registerListeners() {
2015-02-03 21:59:57 +00:00
for(Listener listener : findObjects("com.lenis0012.bukkit.marriage2.listeners", Listener.class, this)) {
register(listener);
}
2014-11-12 21:27:22 +00:00
}
2014-11-13 16:45:41 +00:00
@Register(name = "commands", type = Register.Type.ENABLE)
public void registerCommands() {
2015-02-03 21:59:57 +00:00
for(Class<? extends Command> command : findClasses("com.lenis0012.bukkit.marriage2.commands", Command.class)) {
register(command);
}
2014-11-13 16:45:41 +00:00
}
2014-11-13 07:36:28 +00:00
@Override
public MPlayer getMPlayer(UUID uuid) {
2014-11-14 19:37:31 +00:00
MarriagePlayer player = players.get(uuid);
if(player == null) {
player = dataManager.loadPlayer(uuid);
players.put(uuid, player);
}
return player;
2014-11-13 07:36:28 +00:00
}
2014-11-13 09:54:23 +00:00
@Override
public void marry(MPlayer player1, MPlayer player2) {
2014-11-14 19:37:31 +00:00
MarriageData mdata = new MarriageData(player1.getUniqueId(), player2.getUniqueId());
((MarriagePlayer) player1).addMarriage(mdata);
((MarriagePlayer) player2).addMarriage(mdata);
2014-11-13 09:54:23 +00:00
}
2015-01-09 17:27:08 +00:00
@Override
public ListQuery getMarriageList(int scale, int page) {
return dataManager.listMarriages(page, page);
}
2015-02-03 21:59:57 +00:00
/**
* Unload player from the memory
*
* @param uuid of player
*/
public void unloadPlayer(UUID uuid) {
final MarriagePlayer mPlayer = players.remove(uuid);
if(mPlayer != null) {
new Thread() {
@Override
public void run() {
dataManager.savePlayer(mPlayer);
}
}.start();
}
}
2014-11-12 19:41:40 +00:00
}