- Баллы
- 76
Сервер плагин не видит. Eclipse ошибок не дает. Суть плагина слежка за игроками "/spec [Player]".
Main Class:
Plugin.yml:
Ну все, только Main Class и plugin.yml
Main Class:
Код:
package me.qbert.SioRP;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
import net.md_5.bungee.api.ChatColor;
public class SioRP extends JavaPlugin implements Listener{
private static SioRP instance;
FileConfiguration config = getConfig();
public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(this, this);
}
public static SioRP instance() {
return instance;
}
public void onDisable() {
}
public boolean onCommand (CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("spec")) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.WHITE + "Команду могут выполнить только игроки!");
return true;
}
if (args.length == 0) {
sender.sendMessage(ChatColor.WHITE + "/spec " + ChatColor.GREEN + "[Игрок]");
return true;
}
Player target = ((Server) ((Entity) sender).getWorld()).getPlayer(args[0]);
Player p = (Player) sender;
if (!p.hasPermission(cmd.getPermission())) {
p.sendMessage(ChatColor.WHITE + "У вас нет прав для вылонения этой команды!");
return true;
}
config.set("spec." + p.getName() + ".spec", "true");
config.set("spec." + p.getName() + ".gamemode", p.getGameMode());
config.set("spec." + p.getName() + "world", p.getWorld().getName());
config.set("spec." + p.getName() + ".x", p.getLocation().getX());
config.set("spec." + p.getName() + ".y", p.getLocation().getY());
config.set("spec." + p.getName() + ".z", p.getLocation().getZ());
saveConfig();
p.setSpectatorTarget(Bukkit.getPlayerExact(target.getName()));
}
if (cmd.getName().equalsIgnoreCase("specoff")) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.WHITE + "Команду могут выполнить только игроки!");
return true;
}
Player p = (Player) sender;
if (!config.getString("spec." + p.getName() + ".spec").equals("true")) {
p.sendMessage(ChatColor.WHITE + "Вы не за кем не наблюдаете!");
return true;
}
Location nospec = new Location(Bukkit.getWorld(config.getString("spec." + p.getName() + "world")),
config.getDouble("spec." + p.getName() + ".x"),
config.getDouble("spec." + p.getName() + ".y"),
config.getDouble("spec." + p.getName() + ".z"));
p.teleport(nospec);
if (config.getString("spec." + p.getName() + ".gamemode").equals("CREATIVE")) {
p.setGameMode(GameMode.CREATIVE);
}
if (config.getString("spec." + p.getName() + ".gamemode").equals("ADVENTURE")) {
p.setGameMode(GameMode.ADVENTURE);
}
if (config.getString("spec." + p.getName() + ".gamemode").equals("SURVIVAL")) {
p.setGameMode(GameMode.SURVIVAL);
}
config.set("spec." + p.getName() + ".spec", "false");
config.set("spec." + p.getName() + ".gamemode", "unknown");
config.set("spec." + p.getName() + "world", "unknown");
config.set("spec." + p.getName() + ".x", "unknown");
config.set("spec." + p.getName() + ".y", "unknown");
config.set("spec." + p.getName() + ".z", "unknown");
saveConfig();
}
return false;
}
@EventHandler
public void onPlayerQuit (PlayerQuitEvent e) {
Player p = e.getPlayer();
if (!config.getString("spec." + p.getName() + ".spec").equals("false")) {
Location nospec = new Location(Bukkit.getWorld(config.getString("spec." + p.getName() + "world")),
config.getDouble("spec." + p.getName() + ".x"),
config.getDouble("spec." + p.getName() + ".y"),
config.getDouble("spec." + p.getName() + ".z"));
p.teleport(nospec);
}
if (config.getString("spec." + p.getName() + ".gamemode").equals("CREATIVE")) {
p.setGameMode(GameMode.CREATIVE);
}
if (config.getString("spec." + p.getName() + ".gamemode").equals("ADVENTURE")) {
p.setGameMode(GameMode.ADVENTURE);
}
if (config.getString("spec." + p.getName() + ".gamemode").equals("SURVIVAL")) {
p.setGameMode(GameMode.SURVIVAL);
}
config.set("spec." + p.getName() + ".gamemode", "unknown");
config.set("spec." + p.getName() + "world", "unknown");
config.set("spec." + p.getName() + ".x", "unknown");
config.set("spec." + p.getName() + ".y", "unknown");
config.set("spec." + p.getName() + ".z", "unknown");
config.set("spec." + p.getName() + ".spec", "false");
saveConfig();
}
@EventHandler
public void onPlayerJoin (PlayerJoinEvent e) {
Player p = e.getPlayer();
config.set("spec." + p.getName() + ".spec", "false");
saveConfig();
p.sendMessage(ChatColor.GREEN + "Добро пожаловать на сервер!");
}
}
Plugin.yml:
Код:
name: SioRP-Spectate
main: me.qbert.SioRP.SioRP
version: 1.0
commands:
spec:
usage: /spec <Игрок>
permission: SioRP-Spectate.spec
description: Следить за игроками
specoff:
usage: /specoff
permission: SioRP-Spectate.spec
description: Выход из режима слежки за игроком

