Files
RealisticMinecraft/src/de/anura/realisticminecraft/RealisticMinecraft.java
2019-08-11 16:06:09 +02:00

94 lines
4.3 KiB
Java

package de.anura.realisticminecraft;
import de.anura.core.AnuraThread;
import de.anura.core.database.DB;
import de.anura.core.msg.Msg;
import de.anura.core.msg.Msg.PluginData;
import de.anura.realisticminecraft.command.InfobarCmd;
import de.anura.realisticminecraft.command.InfobarSetCmd;
import de.anura.realisticminecraft.fishing.FishingChunk;
import de.anura.realisticminecraft.infobar.InfobarUtil;
import de.anura.realisticminecraft.listener.Chairs;
import de.anura.realisticminecraft.util.ChairManager;
import de.anura.realisticminecraft.infobar.ValueHolder;
import de.anura.realisticminecraft.listener.Fishing;
import de.anura.realisticminecraft.listener.Infobar;
import de.anura.realisticminecraft.listener.Timber;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.java.JavaPlugin;
public class RealisticMinecraft extends JavaPlugin {
private static RealisticMinecraft instance;
public static final PluginData PLUGIN_DATA = new PluginData("RealisticMC", Msg.PluginType.SYSTEM);
@Override
public void onEnable() {
instance = this;
DB.queryUpdate("CREATE TABLE IF NOT EXISTS `playerTemperature` ("
+ " `playerId` INT(10) UNSIGNED NOT NULL,"
+ " `value` DECIMAL(7,5) NOT NULL,"
+ " `bar` BIT(1) NOT NULL DEFAULT b'0',"
+ " PRIMARY KEY (`playerId`),"
+ " INDEX `playerTemperature_playerId` (`playerId`),"
+ " CONSTRAINT `playerTemperature_playerId` FOREIGN KEY (`playerId`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE"
+ ") ENGINE=InnoDB COLLATE='utf8_general_ci' COMMENT='RealisticMinecraft | hibo98'");
DB.queryUpdate("CREATE TABLE IF NOT EXISTS `playerThirst` ("
+ " `playerId` INT(10) UNSIGNED NOT NULL,"
+ " `value` INT(11) NOT NULL,"
+ " `bar` BIT(1) NOT NULL DEFAULT b'0',"
+ " PRIMARY KEY (`playerId`),"
+ " INDEX `playerTemperature_playerId` (`playerId`),"
+ " CONSTRAINT `playerThirst_playerId` FOREIGN KEY (`playerId`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE"
+ ") ENGINE=InnoDB COLLATE='utf8_general_ci' COMMENT='RealisticMinecraft | hibo98'");
DB.queryUpdate("CREATE TABLE IF NOT EXISTS `fishingChunks` ( "
+ " `primeKey` INT(11) NOT NULL AUTO_INCREMENT, "
+ " `x` INT(11) NOT NULL, "
+ " `z` INT(11) NOT NULL, "
+ " `world` VARCHAR(50) COLLATE latin1_german1_ci NOT NULL, "
+ " `catched` INT(11) NOT NULL, "
+ " `lastUpdated` INT(11) NOT NULL, "
+ " PRIMARY KEY (`primeKey`) "
+ ") ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci COMMENT='RealisticMinecraft | LukBukkit'");
// Chairs
Bukkit.getPluginManager().registerEvents(new Chairs(), instance);
// Infobar
AnuraThread.async(() -> Bukkit.getOnlinePlayers().stream().filter((p) -> p.getGameMode().equals(GameMode.SURVIVAL)).forEach(ValueHolder::new));
InfobarCmd infobarCmd = new InfobarCmd();
PluginCommand infobar = instance.getCommand("infobar");
if (infobar != null) {
infobar.setExecutor(infobarCmd);
infobar.setTabCompleter(infobarCmd);
}
InfobarSetCmd infobarSetCmd = new InfobarSetCmd();
PluginCommand infobarset = instance.getCommand("infobarset");
if (infobarset != null) {
infobarset.setExecutor(infobarSetCmd);
infobarset.setTabCompleter(infobarSetCmd);
}
InfobarUtil.enableInfobarTasks();
Bukkit.getPluginManager().registerEvents(new Infobar(), instance);
// Fishing
FishingChunk.init();
Bukkit.getPluginManager().registerEvents(new Fishing(), instance);
// Trees
Bukkit.getPluginManager().registerEvents(new Timber(), instance);
}
@Override
public void onDisable() {
ValueHolder.destroyAll();
ChairManager.destoryAll();
}
public static RealisticMinecraft getInstance() {
return instance;
}
public static boolean hasLogBlock() {
return Bukkit.getServer().getPluginManager().getPlugin("LogBlock") != null;
}
}