Вот мой Scoreboard
package test.main;
import java.sql.Timestamp;
import java.util.UUID;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
//import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.ScoreboardManager;
import org.bukkit.scoreboard.Team;
import org.bukkit.util.NumberConversions;
import com.avaje.ebean.annotation.UpdatedTimestamp;
import com.avaje.ebean.validation.Length;
import com.avaje.ebean.validation.NotNull;
import com.avaje.ebean.validation.Pattern;
import com.avaje.ebean.validation.Range;
import com.github.games647.scoreboardstats.config.Settings;
public class Main extends JavaPlugin implements Listener
static String notregion;
static String region;
Scoreboard board;
public void onEnable()
{
saveDefaultConfig();
notregion = getConfig().getString("notregion").replace('&', '§');
region = getConfig().getString("region").replace('&', '§');
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(),
20, 20);
Bukkit.getServer().getPluginManager().registerEvents(this, this);
PluginManager pm = getServer().getPluginManager();
pm.registerEvents(this, this);
scoreboard();
}
@SuppressWarnings("deprecation")
public void scoreboard(){
ScoreboardManager manager = Bukkit.getScoreboardManager();
board = manager.getNewScoreboard();
Objective objective = board.registerNewObjective("test", "test2");
objective.setDisplayName(ChatColor.AQUA+"Statistics");
objective.setDisplaySlot(DisplaySlot.SIDEBAR);
Team team = board.registerNewTeam("Team");
team.setDisplayName(ChatColor.RED+"");
int a = Bukkit.getPort();
int b = Bukkit.getMonsterSpawnLimit();
int c = Bukkit.getMaxPlayers();
int d = Bukkit.getViewDistance();
int i = Bukkit.getSpawnRadius();
int k = getMobkills();
Score score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Port"));
score.setScore(a);
Score score2 = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "MonsterSpawnLimit"));
score2.setScore(b);
Score score3 = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "MaxPlayers"));
score3.setScore(c);
Score score4 = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "ViewDistance"));
score4.setScore(d);
Score score5 = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "SpawnRadius"));
score5.setScore(i);
Score score6 = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "IdleTimeout"));
score6.setScore(k);
}
@EventHandler
public void onJoin(PlayerJoinEvent e){
e.getPlayer().setScoreboard(board);
А вот собственно функция региона в отдельном классе
package test.main;
import java.lang.reflect.InvocationTargetException;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.wrappers.WrappedChatComponent;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.ApplicableRegionSet;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import com.sk89q.worldedit.Vector;
@SuppressWarnings("unused")
public class Utils
{
public static String getRegion(Location l)
{
WorldGuardPlugin wgp = WorldGuardPlugin.inst();
RegionManager regionManager = wgp.getRegionManager(l.getWorld());
ApplicableRegionSet set = regionManager.getApplicableRegions(l);
for (ProtectedRegion pr : set.getRegions())
return pr.getId();
return Main.notregion;
}
public static void sendAction(Player p, String msg)
{
PacketContainer chat = new PacketContainer(PacketType.Play.Server.CHAT);
chat.getChatComponents().write(0,
WrappedChatComponent.fromJson("{\"text\": \"" + msg + "\"}"));
chat.getBytes().write(0, (byte) 2);
try
{
ProtocolLibrary.getProtocolManager().sendServerPacket(p, chat);
}
catch (InvocationTargetException e)
{
throw new IllegalStateException("Unable to send packet " + chat, e);
}
}
}
А вот её Эвент в отдельном классе
package test.main;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
public class Runnable implements java.lang.Runnable
{
@Override
public void run()
{
for(Player p : Bukkit.getOnlinePlayers())
Utils.sendAction(p, Main.region.replace("{REGION}", Utils.getRegion(p.getLocation())));
}
}