use of org.dynmap.DynmapAPI in project MyMaid2 by jaoafa.
the class Cmd_DT method onTabComplete.
public List<String> onTabComplete(CommandSender sender, Command cmd, String alias, String[] args) {
if (args.length == 1) {
if (args[0].length() == 0) {
// /dtまで
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return plugin.onTabComplete(sender, cmd, alias, args);
}
List<String> tablist = new ArrayList<>();
tablist.add("add");
tablist.add("del");
tablist.add("list");
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
tablist.add(marker.getLabel());
}
}
return tablist;
} else {
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return plugin.onTabComplete(sender, cmd, alias, args);
}
List<String> tablist = new ArrayList<>();
tablist.add("add");
tablist.add("del");
tablist.add("list");
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
tablist.add(marker.getLabel());
}
}
List<String> tablistFor = new ArrayList<>();
tablistFor.addAll(tablist);
for (String tab : tablistFor) {
if (!tab.toLowerCase().startsWith(args[0].toLowerCase())) {
tablist.remove(tab);
}
}
if (tablist.size() == 0) {
return plugin.onTabComplete(sender, cmd, alias, args);
}
return tablist;
}
} else if (args.length == 2) {
if (args[1].length() == 0) {
// /dt ~まで
if (args[0].equalsIgnoreCase("del")) {
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return plugin.onTabComplete(sender, cmd, alias, args);
}
List<String> tablist = new ArrayList<>();
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
tablist.add(marker.getLabel());
}
}
return tablist;
} else {
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return plugin.onTabComplete(sender, cmd, alias, args);
}
Player player = Bukkit.getPlayerExact(args[0]);
if (player == null) {
SendMessage(sender, cmd, "入力されているプレイヤー「" + args[0] + "」は見つかりません。");
Player any_chance_player = Bukkit.getPlayer(args[0]);
if (any_chance_player != null) {
SendMessage(sender, cmd, "もしかして: " + any_chance_player.getName());
}
return plugin.onTabComplete(sender, cmd, alias, args);
}
List<String> tablist = new ArrayList<>();
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
tablist.add(marker.getLabel());
}
}
List<String> tablistFor = new ArrayList<>();
tablistFor.addAll(tablist);
for (String tab : tablistFor) {
if (!tab.toLowerCase().startsWith(args[1].toLowerCase())) {
tablist.remove(tab);
}
}
if (tablist.size() == 0) {
return plugin.onTabComplete(sender, cmd, alias, args);
}
return tablist;
}
} else {
if (args[0].equalsIgnoreCase("del")) {
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return plugin.onTabComplete(sender, cmd, alias, args);
}
List<String> tablist = new ArrayList<>();
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
tablist.add(marker.getLabel());
}
}
List<String> tablistFor = new ArrayList<>();
tablistFor.addAll(tablist);
for (String tab : tablistFor) {
if (!tab.startsWith(args[1])) {
tablist.remove(tab);
}
}
if (tablist.size() == 0) {
return plugin.onTabComplete(sender, cmd, alias, args);
}
return tablist;
} else {
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return plugin.onTabComplete(sender, cmd, alias, args);
}
Player player = Bukkit.getPlayerExact(args[0]);
if (player == null) {
SendMessage(sender, cmd, "入力されているプレイヤー「" + args[0] + "」は見つかりません。");
Player any_chance_player = Bukkit.getPlayer(args[0]);
if (any_chance_player != null) {
SendMessage(sender, cmd, "もしかして: " + any_chance_player.getName());
}
return plugin.onTabComplete(sender, cmd, alias, args);
}
List<String> tablist = new ArrayList<>();
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
tablist.add(marker.getLabel());
}
}
List<String> tablistFor = new ArrayList<>();
tablistFor.addAll(tablist);
for (String tab : tablistFor) {
if (!tab.toLowerCase().startsWith(args[1].toLowerCase())) {
tablist.remove(tab);
}
}
if (tablist.size() == 0) {
return plugin.onTabComplete(sender, cmd, alias, args);
}
return tablist;
}
}
} else if (args.length == 3) {
if (args[2].length() == 0) {
// /dt ~ ~まで
if (args[0].equalsIgnoreCase("add")) {
// <MarkerType>を出す
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return plugin.onTabComplete(sender, cmd, alias, args);
}
List<String> tablist = new ArrayList<>();
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
tablist.add(markerset.getMarkerSetLabel());
}
return tablist;
}
} else {
if (args[0].equalsIgnoreCase("add")) {
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return plugin.onTabComplete(sender, cmd, alias, args);
}
List<String> tablist = new ArrayList<>();
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
tablist.add(markerset.getMarkerSetLabel());
}
List<String> tablistFor = new ArrayList<>();
tablistFor.addAll(tablist);
for (String tab : tablistFor) {
if (!tab.toLowerCase().startsWith(args[2].toLowerCase())) {
tablist.remove(tab);
}
}
if (tablist.size() == 0) {
return plugin.onTabComplete(sender, cmd, alias, args);
}
return tablist;
}
}
}
// JavaPlugin#onTabComplete()を呼び出す
return plugin.onTabComplete(sender, cmd, alias, args);
}
use of org.dynmap.DynmapAPI in project MyMaid2 by jaoafa.
the class Cmd_DT method onCommand.
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return true;
}
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
if (args.length >= 1 && args[0].equalsIgnoreCase("help")) {
SendUsageMessage(sender, cmd);
return true;
}
if (args.length == 1) {
if (args[0].equalsIgnoreCase("add")) {
// 一つではaddは使えない
SendMessage(sender, cmd, "マーカーの追加には/dt add <MarkerName> <MarkerType>を使用します。");
return true;
} else if (args[0].equalsIgnoreCase("del")) {
// 一つではdelは使えない
SendMessage(sender, cmd, "マーカーの削除には/dt del <MarkerName>を使用します。");
return true;
} else if (args[0].equalsIgnoreCase("list")) {
Set<Marker> Markers = new HashSet<Marker>();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
Markers.add(marker);
}
}
int count = 0;
int page = 1;
int startcount = (page - 1) * 10;
int endcount = page * 10;
int maxpage = Markers.size() / 10;
SendMessage(sender, cmd, "Marker List: " + page + "page / " + maxpage + "page");
SendMessage(sender, cmd, "-------------------------");
for (Marker marker : Markers) {
if (count <= startcount) {
count++;
continue;
}
if (count > endcount) {
break;
}
SendMessage(sender, cmd, "[" + count + "|" + marker.getWorld() + "/" + marker.getMarkerSet().getMarkerSetLabel() + "]" + marker.getLabel() + " X:" + marker.getX() + " Y:" + marker.getY() + " Z:" + marker.getY());
count++;
}
SendMessage(sender, cmd, "-------------------------");
SendMessage(sender, cmd, startcount + " - " + endcount + " / " + Markers.size());
if (page != maxpage) {
SendMessage(sender, cmd, "次のページを見るには「/dt list " + (page + 1) + "」を実行します。");
}
return true;
} else if (args[0].equalsIgnoreCase("near")) {
if (!(sender instanceof Player)) {
SendMessage(sender, cmd, "このコマンドはサーバ内から実行可能です。");
return true;
}
Player player = (Player) sender;
Location loc = player.getLocation();
Marker SelectMarker = null;
double distance = Double.MAX_VALUE;
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
if (!marker.getWorld().equalsIgnoreCase(player.getWorld().getName())) {
continue;
}
World world = Bukkit.getWorld(marker.getWorld());
double nowdistance = loc.distance(new Location(world, marker.getX(), marker.getY(), marker.getZ()));
if (distance > nowdistance) {
SelectMarker = marker;
distance = nowdistance;
}
}
}
if (SelectMarker == null) {
SendMessage(sender, cmd, "マーカーが見つかりませんでした。");
return true;
}
SendMessage(sender, cmd, "あなたから一番近い場所にあるマーカーは「" + SelectMarker.getLabel() + "」というマーカーです。");
SendMessage(sender, cmd, "約" + (int) distance + "ブロック程度のところにあり、「/dt " + SelectMarker.getLabel() + "」というコマンドでテレポートできます!");
return true;
} else {
// /dt <MarkerName>
if (!(sender instanceof Player)) {
SendMessage(sender, cmd, "このコマンドはサーバ内から実行可能です。");
return true;
}
Player player = (Player) sender;
String markerlabel = args[0];
Map<String, Marker> Markers = new HashMap<>();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
Markers.put(marker.getLabel(), marker);
}
}
if (Markers.containsKey(markerlabel)) {
Marker marker = Markers.get(markerlabel);
World world = Bukkit.getWorld(marker.getWorld());
double x = marker.getX();
double y = marker.getY();
double z = marker.getZ();
Location loc = new Location(world, x, y, z);
loc.add(0.5f, 0f, 0.5f);
player.teleport(loc);
TitleAPI.sendTitle(player, 2, 5, 2, "", ChatColor.AQUA + "You have been teleported to " + markerlabel + "!");
DiscordSend("*[" + player.getName() + ": " + player.getName() + " to " + markerlabel + "]*");
Bukkit.broadcastMessage(ChatColor.GRAY + "[" + ChatColor.ITALIC + player.getName() + ChatColor.GRAY + ": " + ChatColor.ITALIC + player.getName() + ChatColor.GRAY + " は " + ChatColor.ITALIC + markerlabel + ChatColor.GRAY + " にワープしました]");
return true;
} else {
// 見つからなかった
SendMessage(sender, cmd, "指定されたマーカー「" + markerlabel + "」は見つかりませんでした。");
SendMessage(sender, cmd, "マーカー名は大文字小文字を区別します。もう一度間違っていないか確認してください。");
return true;
}
}
} else if (args.length == 2) {
if (args[0].equalsIgnoreCase("add")) {
// 二つではaddは使えない
SendMessage(sender, cmd, "マーカーの追加には/dt add <MarkerName> <MarkerType>を使用します。");
return true;
} else if (args[0].equalsIgnoreCase("del")) {
// マーカーの削除
// /dt del <MarkerName>
String markerlabel = args[1];
Map<String, Marker> Markers = new HashMap<>();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
Markers.put(marker.getLabel(), marker);
}
}
if (Markers.containsKey(markerlabel)) {
Marker marker = Markers.get(markerlabel);
String world = marker.getWorld();
double x = marker.getX();
double y = marker.getY();
double z = marker.getZ();
marker.deleteMarker();
SendMessage(sender, cmd, "マーカー「" + markerlabel + "(" + world + ", " + x + ", " + y + ", " + z + ")」を削除しました。");
return true;
} else {
// 見つからなかった
SendMessage(sender, cmd, "指定されたマーカー「" + markerlabel + "」は見つかりませんでした。");
SendMessage(sender, cmd, "マーカー名は大文字小文字を区別します。もう一度間違っていないか確認してください。");
return true;
}
} else if (args[0].equalsIgnoreCase("list")) {
Set<Marker> Markers = new HashSet<Marker>();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
Markers.add(marker);
}
}
if (!isNumber(args[1])) {
SendMessage(sender, cmd, "指定されたページは数値ではありません。");
return true;
}
int count = 0;
int page = Integer.parseInt(args[1]);
int startcount = (page - 1) * 10;
int endcount = page * 10;
int maxpage = (Markers.size() / 10) + 1;
if (page < 0) {
SendMessage(sender, cmd, "表示できるマーカーがありません。");
return true;
} else if (startcount >= Markers.size()) {
SendMessage(sender, cmd, "表示できるマーカーがありません。");
return true;
}
SendMessage(sender, cmd, "Marker List: " + page + "page / " + maxpage + "page");
SendMessage(sender, cmd, "-------------------------");
for (Marker marker : Markers) {
if (count <= startcount) {
count++;
continue;
}
if (count > endcount) {
break;
}
SendMessage(sender, cmd, "[" + count + "|" + marker.getWorld() + "/" + marker.getMarkerSet().getMarkerSetLabel() + "]" + marker.getLabel() + " X:" + marker.getX() + " Y:" + marker.getY() + " Z:" + marker.getY());
count++;
}
SendMessage(sender, cmd, "-------------------------");
SendMessage(sender, cmd, startcount + " - " + endcount + " / " + Markers.size());
if (page != maxpage) {
SendMessage(sender, cmd, "次のページを見るには「/dt list " + (page + 1) + "」を実行します。");
}
return true;
} else {
// addとかdelとか以外 => プレイヤー名?
// /dt <Player> <MarkerName>
String playername = args[0];
Player player = Bukkit.getPlayerExact(playername);
if (player == null) {
SendMessage(sender, cmd, "指定されたプレイヤー「" + playername + "」は見つかりませんでした。");
Player any_chance_player = Bukkit.getPlayer(playername);
if (any_chance_player != null) {
SendMessage(sender, cmd, "もしかして: " + any_chance_player.getName());
}
return true;
}
String markerlabel = args[1];
Map<String, Marker> Markers = new HashMap<>();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
Markers.put(marker.getLabel(), marker);
}
}
if (Markers.containsKey(markerlabel)) {
Marker marker = Markers.get(markerlabel);
World world = Bukkit.getWorld(marker.getWorld());
double x = marker.getX();
double y = marker.getY();
double z = marker.getZ();
Location loc = new Location(world, x, y, z);
loc.add(0.5f, 0f, 0.5f);
player.teleport(loc);
TitleAPI.sendTitle(player, 2, 5, 2, "", ChatColor.AQUA + "You have been teleported to " + markerlabel + "!");
DiscordSend("*[" + sender.getName() + ": " + player.getName() + " to " + markerlabel + "]*");
Bukkit.broadcastMessage(ChatColor.GRAY + "[" + ChatColor.ITALIC + sender.getName() + ChatColor.GRAY + ": " + ChatColor.ITALIC + player.getName() + ChatColor.GRAY + " は " + ChatColor.ITALIC + markerlabel + ChatColor.GRAY + " にワープしました]");
return true;
} else {
// 見つからなかった
SendMessage(sender, cmd, "指定されたマーカー「" + markerlabel + "」は見つかりませんでした。");
SendMessage(sender, cmd, "マーカー名は大文字小文字を区別します。もう一度間違っていないか確認してください。");
return true;
}
}
} else if (args.length >= 3) {
if (args[0].equalsIgnoreCase("add")) {
// マーカーの追加
if (!(sender instanceof Player)) {
SendMessage(sender, cmd, "このコマンドはサーバ内から実行可能です。");
return true;
}
Player player = (Player) sender;
Location loc = player.getLocation();
String markerlabel = args[1];
String markertype = args[2];
Map<String, MarkerSet> MarkersTypes = new HashMap<>();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
MarkersTypes.put(markerset.getMarkerSetLabel(), markerset);
}
if (!MarkersTypes.containsKey(markertype)) {
// マーカータイプが見つからなかった
SendMessage(sender, cmd, "指定されたマーカータイプ「" + markertype + "」は見つかりませんでした。");
return true;
}
MarkerSet MarkerType = MarkersTypes.get(markertype);
Map<String, Marker> Markers = new HashMap<>();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
Markers.put(marker.getLabel(), marker);
}
}
String MarkerIconDef = MarkerIcon.DEFAULT;
MarkerIcon markericondef = null;
for (MarkerIcon icon : markerapi.getMarkerIcons()) {
if (icon.getMarkerIconID().equals(MarkerIconDef)) {
markericondef = icon;
}
}
if (markericondef == null) {
SendMessage(sender, cmd, "デフォルトマーカーアイコンが存在しませんでした。");
return true;
}
Marker marker = MarkerType.createMarker(null, markerlabel, loc.getWorld().getName(), loc.getX(), loc.getY(), loc.getZ(), markericondef, true);
if (marker == null) {
SendMessage(sender, cmd, "指定されたマーカー「" + markerlabel + "」を作成できませんでした。");
return true;
}
SendMessage(sender, cmd, "指定されたマーカー「" + markerlabel + "」を作成しました。");
if (Markers.containsKey(markerlabel)) {
SendMessage(sender, cmd, "ヒント: 同じMarkerNameのマーカーが他にもあるようです。");
SendMessage(sender, cmd, "正常にテレポートできない可能性があります。");
return true;
}
return true;
} else {
// addとかdelとか以外 => プレイヤー名?
// /dt <Player> <MarkerName>
String playername = args[0];
Player player = Bukkit.getPlayerExact(playername);
if (player == null) {
SendMessage(sender, cmd, "指定されたプレイヤー「" + playername + "」は見つかりませんでした。");
Player any_chance_player = Bukkit.getPlayer(playername);
if (any_chance_player != null) {
SendMessage(sender, cmd, "もしかして: " + any_chance_player.getName());
}
return true;
}
String markerlabel = "";
int c = 1;
while (args.length > c) {
markerlabel += args[c];
if (args.length != (c + 1)) {
markerlabel += " ";
}
c++;
}
Map<String, Marker> Markers = new HashMap<>();
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (Marker marker : markerset.getMarkers()) {
Markers.put(marker.getLabel(), marker);
}
}
if (Markers.containsKey(markerlabel)) {
Marker marker = Markers.get(markerlabel);
World world = Bukkit.getWorld(marker.getWorld());
double x = marker.getX();
double y = marker.getY();
double z = marker.getZ();
Location loc = new Location(world, x, y, z);
loc.add(0.5f, 0f, 0.5f);
player.teleport(loc);
TitleAPI.sendTitle(player, 2, 5, 2, "", ChatColor.AQUA + "You have been teleported to " + markerlabel + "!");
DiscordSend("*[" + sender.getName() + ": " + player.getName() + " to " + markerlabel + "]*");
Bukkit.broadcastMessage(ChatColor.GRAY + "[" + ChatColor.ITALIC + sender.getName() + ChatColor.GRAY + ": " + ChatColor.ITALIC + player.getName() + ChatColor.GRAY + " は " + ChatColor.ITALIC + markerlabel + ChatColor.GRAY + " にワープしました]");
return true;
} else {
// 見つからなかった
SendMessage(sender, cmd, "指定されたマーカー「" + markerlabel + "」は見つかりませんでした。");
SendMessage(sender, cmd, "マーカー名は大文字小文字を区別します。もう一度間違っていないか確認してください。");
return true;
}
}
}
SendUsageMessage(sender, cmd);
return true;
}
use of org.dynmap.DynmapAPI in project RedProtect by FabioZumbi12.
the class RedProtect method onEnable.
public void onEnable() {
try {
plugin = this;
BossBar = checkBM();
MyChunk = checkMyChunk();
MyPet = checkMyPet();
McMMo = checkMcMMo();
Mc = checkMc();
Vault = checkVault();
SkillAPI = checkSkillAPI();
PvPm = checkPvPm();
Ess = checkEss();
GP = checkGP();
Dyn = checkDyn();
WE = checkWe();
AWE = checkAWe();
SC = checkSP();
Fac = checkFac();
PLib = checkPLib();
PlaceHolderAPI = checkPHAPI();
JarFile = this.getFile();
initVars();
RPConfig.init();
RPLang.init();
rm.loadAll();
OnlineMode = serv.getOnlineMode();
serv.getPluginManager().registerEvents(new RPGlobalListener(), this);
serv.getPluginManager().registerEvents(new RPBlockListener(), this);
serv.getPluginManager().registerEvents(new RPPlayerListener(), this);
serv.getPluginManager().registerEvents(new RPEntityListener(), this);
serv.getPluginManager().registerEvents(new RPWorldListener(), this);
serv.getPluginManager().registerEvents(new RPAddProtection(), this);
version = getBukkitVersion();
logger.debug("Version String: " + version);
if (version >= 180) {
serv.getPluginManager().registerEvents(new RPMine18(), this);
}
if (version >= 190) {
serv.getPluginManager().registerEvents(new RPMine19(), this);
}
getCommand("RedProtect").setExecutor(new RPCommands());
if (Vault) {
RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
logger.warning("Vault found, but for some reason cant be used with RedProtect.");
Vault = false;
} else {
econ = rsp.getProvider();
logger.info("Vault found. Hooked.");
}
}
if (PLib) {
logger.info("ProtocolLib found. Hidding Gui Flag item stats.");
}
if (PvPm) {
logger.info("PvPManager found. Hooked.");
}
if (Ess) {
pless = (Essentials) Bukkit.getPluginManager().getPlugin("Essentials");
logger.info("Essentials found. Hooked.");
}
if (WE) {
logger.info("WorldEdit found. Hooked.");
}
if (AWE) {
logger.info("AsyncWorldEdit found. Hooked.");
}
if (BossBar) {
logger.info("BossbarAPI found. Hooked.");
}
if (MyPet) {
serv.getPluginManager().registerEvents(new MPListener(), this);
logger.info("MyPet found. Hooked.");
}
if (McMMo) {
serv.getPluginManager().registerEvents(new McMMoListener(), this);
logger.info("McMMo found. Hooked.");
}
if (SkillAPI) {
serv.getPluginManager().registerEvents(new SkillAPIListener(), this);
logger.info("SkillAPI found. Hooked.");
}
if (MyChunk) {
logger.sucess("MyChunk found. Ready to convert!");
logger.warning("Use '/rp mychunkconvert' to start MyChunk conversion (This may cause lag during conversion)");
}
if (Mc) {
logger.info("MagicCarpet found. Hooked.");
}
if (SC) {
clanManager = SimpleClans.getInstance().getClanManager();
logger.info("SimpleClans found. Hooked.");
}
if (Dyn && RPConfig.getBool("hooks.dynmap.enable")) {
logger.info("Dynmap found. Hooked.");
logger.info("Loading dynmap markers...");
dynmap = new RPDynmap((DynmapAPI) Bukkit.getPluginManager().getPlugin("dynmap"));
logger.info("Dynmap markers loaded!");
}
if (PlaceHolderAPI) {
new RPPlaceHoldersAPI(this).hook();
logger.info("PlaceHolderAPI found. Hooked and registered some chat placeholders.");
}
if (Fac) {
serv.getPluginManager().registerEvents(new RPFactions(), this);
logger.info("Factions found. Hooked.");
}
if (!RPConfig.getString("file-type").equalsIgnoreCase("mysql")) {
RPUtil.ReadAllDB(rm.getAllRegions());
} else {
logger.info("Theres " + rm.getTotalRegionsNum() + " regions on (" + RPConfig.getString("file-type") + ") database!");
}
logger.info("Loading API...");
this.rpAPI = new RedProtectAPI();
logger.info("API Loaded!");
logger.clear("&4 _ _ _ &c _ _ _ _ _ _ _ _ _ __");
logger.clear("&4|_| |_ | \\ &c|_| |_| | | | |_ | | /");
logger.clear("&4| \\ |_ |_/ &c| | \\ |_| | |_ |_ | /");
logger.clear("&a¯ " + pdf.getFullName() + " enabled");
logger.clear("");
if (RPConfig.getBool("update-check.enable")) {
logger.info("Checking for update...");
if (CheckUpdate()) {
logger.sucess("Update available! Use /rp update to download.");
} else {
logger.info("No update available.");
}
}
if (RPConfig.getString("file-type").equals("yml")) {
AutoSaveHandler();
}
} catch (Exception e) {
e.printStackTrace();
if (!RPConfig.getString("file-type").equalsIgnoreCase("mysql")) {
logger.severe("Error enabling RedProtect, plugin will shut down.");
this.disable();
}
}
}
use of org.dynmap.DynmapAPI in project MyMaid2 by jaoafa.
the class Cmd_City method onCommand.
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
Plugin dynmap = plugin.getServer().getPluginManager().getPlugin("dynmap");
if (dynmap == null || !dynmap.isEnabled()) {
SendMessage(sender, cmd, "Dynmapプラグインが停止中、もしくは存在しないため、このコマンドを利用できません。");
return true;
}
if (!(sender instanceof Player)) {
SendMessage(sender, cmd, "このコマンドはサーバ内から実行可能です。");
return true;
}
Player player = (Player) sender;
DynmapAPI dynmapapi = (DynmapAPI) dynmap;
MarkerAPI markerapi = dynmapapi.getMarkerAPI();
if (args.length >= 1 && args[0].equalsIgnoreCase("help")) {
SendUsageMessage(sender, cmd);
return true;
}
if (markerapi.getMarkerSet("towns") == null) {
Bukkit.getLogger().info("エリア情報を保管するDynmapSets「towns」が存在しないため、作成します。");
markerapi.createMarkerSet("towns", "Towns", null, true);
}
if (args.length == 1) {
if (args[0].equalsIgnoreCase("addcorner")) {
// /city addcorner - コーナーを追加
Set<Location> corner = new LinkedHashSet<Location>();
if (Corner.containsKey(player.getName())) {
corner.addAll(Corner.get(player.getName()));
}
Location loc = player.getLocation();
corner.add(loc);
Corner.put(player.getName(), corner);
SendMessage(sender, cmd, "次の地点をコーナーキューに追加しました: #" + corner.size() + " X: " + loc.getBlockX() + " Z: " + loc.getBlockZ());
return true;
} else if (args[0].equalsIgnoreCase("clearcorner")) {
// /city clearcorner - コーナーを削除
if (Corner.containsKey(player.getName())) {
Corner.remove(player.getName());
SendMessage(sender, cmd, "削除に成功しました。");
return true;
} else {
SendMessage(sender, cmd, "削除に失敗しました。");
return true;
}
} else if (args[0].equalsIgnoreCase("undocorner")) {
// /city undocorner - ひとつ前に追加したコーナーを削除
if (Corner.containsKey(player.getName())) {
Set<Location> corner = new LinkedHashSet<Location>();
int now = 0;
Location loc = null;
for (Location one : Corner.get(player.getName())) {
if (now == (Corner.get(player.getName()).size() - 1)) {
loc = one;
break;
}
corner.add(one);
now++;
}
if (loc == null) {
SendMessage(sender, cmd, "ひとつ前のコーナーの削除に失敗しました。");
return true;
}
Corner.put(player.getName(), corner);
SendMessage(sender, cmd, "ひとつ前のコーナー(X: " + loc.getBlockX() + " / Z: " + loc.getBlockZ() + ")の削除に成功しました。");
return true;
} else {
SendMessage(sender, cmd, "ひとつ前のコーナーの削除に失敗しました。");
return true;
}
} else if (args[0].equalsIgnoreCase("show")) {
// /city show [エリア名] - エリアの情報を表示。エリア名を設定しないといまいるところのエリア情報を表示(できるかどうか)
long start = System.currentTimeMillis();
Location now = player.getLocation();
MarkerSet markerset = markerapi.getMarkerSet("towns");
boolean bool = true;
for (AreaMarker areamarker : markerset.getAreaMarkers()) {
List<Location> locs = new ArrayList<>();
for (int i = 0; i < areamarker.getCornerCount(); i++) {
Location loc = new Location(Bukkit.getWorld(areamarker.getWorld()), areamarker.getCornerX(i), -114514, areamarker.getCornerZ(i));
locs.add(loc);
}
if (inArea(now, locs)) {
SendMessage(sender, cmd, "この場所は「" + areamarker.getLabel() + "」という名前のエリアです。");
SendMessage(sender, cmd, "説明: " + areamarker.getDescription());
bool = true;
}
}
if (bool)
SendMessage(sender, cmd, "この場所はエリア登録されていません。");
if (DebugMode) {
long end = System.currentTimeMillis();
System.out.println("処理時間: " + (end - start) + "ms");
}
/*
MarkerSet markerset = markerapi.getMarkerSet("towns");
for(AreaMarker areamarker : markerset.getAreaMarkers()){
// @param XorZ Xならtrue, Zならfalse
// @param isMaxMaxならtrue, Minならfalse
int maxX = getMaxOrMin(areamarker, true, true);
int maxZ = getMaxOrMin(areamarker, false, true);
int minX = getMaxOrMin(areamarker, true, false);
int minZ = getMaxOrMin(areamarker, false, false);
if(DebugMode) System.out.println("最大最小" + maxX + ", " + maxZ + ", " + minX + ", " + minZ);
Location playerloc = player.getLocation();
if(playerloc.getX() < minX || playerloc.getZ() > maxX){
double x = playerloc.getX();
double z = playerloc.getZ();
int count = getCorners(areamarker, (int) x, (int) z);
if(DebugMode) System.out.println("Count: " + count);
if(count % 2 != 0){
// 範囲内
SendMessage(sender, cmd, "この場所は「" + areamarker.getLabel() + "」という名前のエリアです。");
SendMessage(sender, cmd, "説明: " + areamarker.getDescription());
if(DebugMode){
long end = System.currentTimeMillis();
System.out.println("処理時間: " + (end - start) + "ms");
}
return true;
}
}
}
SendMessage(sender, cmd, "この場所はエリア登録されていません。");
if(DebugMode){
long end = System.currentTimeMillis();
System.out.println("処理時間: " + (end - start) + "ms");
}
return true;
*/
/*
double minX = 0;
double maxX = 0;
boolean bool = true;
int c = 0;
MarkerSet markerset = markerapi.getMarkerSet("towns");
for(AreaMarker areamarker : markerset.getAreaMarkers()){
for(int i = 0; i < areamarker.getCornerCount(); i++){
double x = areamarker.getCornerX(i);
if(minX > x){
minX = x;
}
if(maxX < x){
maxX = x;
}
c++;
}
}
SendMessage(sender, cmd, "minX: " + minX);
SendMessage(sender, cmd, "maxX: " + maxX);
SendMessage(sender, cmd, "Count: " + c);
if(minX < player.getLocation().getX() && maxX < player.getLocation().getX()){
SendMessage(sender, cmd, "この場所はエリア登録されていません。");
}else if(minX > player.getLocation().getX() && maxX > player.getLocation().getX()){
SendMessage(sender, cmd, "+1");
}else if(minX < player.getLocation().getX() && maxX > player.getLocation().getX()){
SendMessage(sender, cmd, "線分より右にいるのか左にいるのかを判定し、結果次第");
}
*/
}
} else if (args.length == 2) {
if (args[0].equalsIgnoreCase("del")) {
String cityName = args[1];
MarkerSet markerset = markerapi.getMarkerSet("towns");
for (AreaMarker areamarker : markerset.getAreaMarkers()) {
if (areamarker.getLabel().equals(cityName)) {
areamarker.deleteMarker();
SendMessage(sender, cmd, "指定されたエリア名のエリアを削除しました。");
return true;
}
}
SendMessage(sender, cmd, "指定されたエリア名のエリアは見つかりませんでした。");
return true;
} else if (args[0].equalsIgnoreCase("show")) {
String cityName = args[1];
AreaMarker select = null;
MarkerSet markerset = markerapi.getMarkerSet("towns");
for (AreaMarker areamarker : markerset.getAreaMarkers()) {
if (areamarker.getLabel().equals(cityName)) {
select = areamarker;
}
}
if (select == null) {
SendMessage(sender, cmd, "指定されたエリア名のエリアは見つかりませんでした。");
return true;
}
String label = select.getLabel();
String desc = select.getDescription();
SendMessage(sender, cmd, "--- " + label + " ---");
SendMessage(sender, cmd, "説明: " + desc);
return true;
} else if (args[0].equalsIgnoreCase("addcorner")) {
String cityName = args[1];
AreaMarker select = null;
MarkerSet markerset = markerapi.getMarkerSet("towns");
for (AreaMarker areamarker : markerset.getAreaMarkers()) {
if (areamarker.getLabel().equals(cityName)) {
select = areamarker;
}
}
if (select == null) {
SendMessage(sender, cmd, "指定されたエリア名のエリアは見つかりませんでした。");
return true;
}
List<Double> Xs = new LinkedList<>();
List<Double> Zs = new LinkedList<>();
for (int i = 0; i < select.getCornerCount(); i++) {
Xs.add(select.getCornerX(i));
Zs.add(select.getCornerZ(i));
}
Location loc = player.getLocation();
Xs.add(loc.getBlockX() + 0.5);
Zs.add(loc.getBlockZ() + 0.5);
double[] ArrXs = Xs.stream().mapToDouble(Double::doubleValue).toArray();
double[] ArrZs = Zs.stream().mapToDouble(Double::doubleValue).toArray();
select.setCornerLocations(ArrXs, ArrZs);
SendMessage(sender, cmd, "エリア「" + select.getLabel() + "」に新しいコーナーを追加しました。");
SendMessage(sender, cmd, "順番を変更したりする場合は、「/city editcorner <Name>」コマンドをお使いください。");
return true;
} else if (args[0].equalsIgnoreCase("editcorner")) {
SendMessage(sender, cmd, "システム障害が多くみられるため、一時的にeditcornerの使用を停止しています。");
return true;
/*
String cityName = args[1];
AreaMarker select = null;
MarkerSet markerset = markerapi.getMarkerSet("towns");
for(AreaMarker areamarker : markerset.getAreaMarkers()){
if(areamarker.getLabel().equals(cityName)){
select = areamarker;
}
}
if(select == null){
SendMessage(sender, cmd, "指定されたエリア名のエリアは見つかりませんでした。");
return true;
}
new _OpenGUI(player, select).runTaskLater(plugin, 1);
return true;
*/
}
} else if (args.length == 3) {
if (args[0].equalsIgnoreCase("add")) {
// /city add <Name> <Color> - エリアの範囲を設定(Dynmapに表示)
if (!Corner.containsKey(player.getName())) {
// コーナー未登録
SendMessage(sender, cmd, "コーナーが未登録です。/city addcornerを使用してコーナーを登録してください。");
return true;
}
Set<Location> corner = Corner.get(player.getName());
if (corner.size() < 2) {
// コーナー数が2つ未満
SendMessage(sender, cmd, "コーナー数が足りません。/city addcornerを使用してコーナーを登録してください。");
return true;
}
String cityName = args[1];
String color = args[2];
for (MarkerSet markerset : markerapi.getMarkerSets()) {
for (AreaMarker areamarker : markerset.getAreaMarkers()) {
if (areamarker.getLabel().equals(cityName)) {
SendMessage(sender, cmd, "登録しようとしたエリア名は既に存在します。再登録する場合は削除してください。");
return true;
}
}
}
MarkerSet set = markerapi.getMarkerSet("towns");
List<Double> Xs = new LinkedList<>();
List<Double> Zs = new LinkedList<>();
for (Location loc : corner) {
Xs.add(new Double(loc.getBlockX()) + 0.5);
Zs.add(new Double(loc.getBlockZ()) + 0.5);
}
double[] ArrXs = Xs.stream().mapToDouble(Double::doubleValue).toArray();
double[] ArrZs = Zs.stream().mapToDouble(Double::doubleValue).toArray();
AreaMarker area = set.createAreaMarker(null, cityName, false, player.getWorld().getName(), ArrXs, ArrZs, true);
if (area == null) {
SendMessage(sender, cmd, "登録に失敗しました。");
return true;
}
area.setFillStyle(area.getFillOpacity(), 0x808080);
int colorint;
try {
colorint = Integer.parseInt(color, 16);
} catch (NumberFormatException e) {
SendMessage(sender, cmd, "登録に失敗しました。");
SendMessage(sender, cmd, "色の指定が不正です。");
return true;
}
area.setLineStyle(area.getLineWeight(), area.getLineOpacity(), colorint);
SendMessage(sender, cmd, "登録に成功しました。");
Corner.remove(player.getName());
return true;
} else if (args[0].equalsIgnoreCase("setcolor")) {
// /city color <Name> <Color> - エリアの色を変更
String cityName = args[1];
String color = args[2];
AreaMarker select = null;
MarkerSet markerset = markerapi.getMarkerSet("towns");
for (AreaMarker areamarker : markerset.getAreaMarkers()) {
if (areamarker.getLabel().equals(cityName)) {
select = areamarker;
}
}
if (select == null) {
SendMessage(sender, cmd, "指定されたエリア名のエリアは見つかりませんでした。");
return true;
}
int newcolorint;
try {
newcolorint = Integer.parseInt(color, 16);
} catch (NumberFormatException e) {
SendMessage(sender, cmd, "登録に失敗しました。");
SendMessage(sender, cmd, "色の指定が不正です。");
return true;
}
select.setLineStyle(select.getLineWeight(), select.getLineOpacity(), newcolorint);
SendMessage(sender, cmd, "エリア色の変更に成功しました。");
return true;
} else if (args[0].equalsIgnoreCase("setdesc")) {
String cityName = args[1];
String desc = "";
int c = 2;
while (args.length > c) {
desc += args[c] + " ";
c++;
}
AreaMarker select = null;
MarkerSet markerset = markerapi.getMarkerSet("towns");
for (AreaMarker areamarker : markerset.getAreaMarkers()) {
if (areamarker.getLabel().equals(cityName)) {
select = areamarker;
}
}
if (select == null) {
SendMessage(sender, cmd, "指定されたエリア名のエリアは見つかりませんでした。");
return true;
}
desc = htmlspecialchars(desc);
select.setDescription("<b>" + select.getLabel() + "</b><br />" + desc);
SendMessage(sender, cmd, "指定されたエリア名のエリアへ説明文を追加しました。");
return true;
}
} else if (args.length >= 3) {
if (args[0].equalsIgnoreCase("setdesc")) {
String cityName = args[1];
String desc = "";
int c = 2;
while (args.length > c) {
desc += args[c] + " ";
c++;
}
AreaMarker select = null;
MarkerSet markerset = markerapi.getMarkerSet("towns");
for (AreaMarker areamarker : markerset.getAreaMarkers()) {
if (areamarker.getLabel().equals(cityName)) {
select = areamarker;
}
}
if (select == null) {
SendMessage(sender, cmd, "指定されたエリア名のエリアは見つかりませんでした。");
return true;
}
desc = htmlspecialchars(desc);
select.setDescription("<b>" + select.getLabel() + "</b><br />" + desc);
SendMessage(sender, cmd, "指定されたエリア名のエリアへ説明文を追加しました。");
return true;
}
}
SendUsageMessage(sender, cmd);
return true;
}
Aggregations