package com.mengcraft.team;
import com.mengcraft.team.listener.TeamListener;
import com.mengcraft.team.listener.TagListener;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.Configuration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.mcstats.Metrics;
import java.io.IOException;
import java.util.List;
public class TeamPlugin extends JavaPlugin {
public static Plugin plugin;
public static Configuration tempConfig;
@Override
public void onLoad() {
saveDefaultConfig();
plugin = this;
tempConfig = new YamlConfiguration();
}
@Override
public void onEnable() {
try {
new Metrics(this).start();
} catch (IOException e) {
e.printStackTrace();
}
if (getServer().getPluginManager().getPlugin("TagAPI") != null) {
getServer().getPluginManager().registerEvents(new TagListener(), this);
}
if (getConfig().getBoolean("config.team.overRideSpawnCommand", false)) {
getServer().getPluginManager().registerEvents(new SpawnCommand(), this);
}
getServer().getPluginManager().registerEvents(new TeamListener(), this);
getOnlineTeamMate();
new OnlineTimeThread().runTaskTimer(this, 1200, 1200);
new SendAdvert().runTaskLater(this, 120);
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
boolean isPlayer = sender instanceof Player;
boolean isName = command.getName().equalsIgnoreCase("team");
boolean status = isPlayer && isName;
if (status) Commander.commands(sender, args);
isName = command.getName().equalsIgnoreCase("tm");
status = isPlayer && isName;
if (status) Commander.teamMessage(sender, args);
return true;
}
private void getOnlineTeamMate() {
String getName;
String getLeaderName;
Player[] onlinePlayers = getServer().getOnlinePlayers();
for (Player player : onlinePlayers) {
getName = player.getName();
getLeaderName = TeamUtils.getPlayerLeader(getName);
if (getLeaderName != null) TeamUtils.setPlayerList(getName, true);
}
}
private class SendAdvert extends BukkitRunnable {
@Override
public void run() {
String[] messages = {
ChatColor.GREEN + "梦梦家高性能服务器出租"
, ChatColor.GREEN + "淘宝店 http://shop105595113.taobao.com"
};
Bukkit.getConsoleSender().sendMessage(messages);
}
}
private class OnlineTimeThread extends BukkitRunnable {
@Override
public void run() {
List<String> playerList = TeamUtils.getPlayerList();
for (String playerName : playerList) TeamUtils.setPlayerOnlineTime(playerName);
saveConfig();
}
}
private class SpawnCommand implements Listener {
@EventHandler
public void spawnCommand(PlayerCommandPreprocessEvent event) {
boolean b = event.getMessage().equals("/spawn");
if (b) {
Player player = event.getPlayer();
Commander.teamSpawn(player);
event.setCancelled(true);
}
}
}
}