Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
public class Main extends JavaPlugin
{
static String notregion;
static String region;
public void onEnable()
{
saveDefaultConfig();
notregion = getConfig().getString("notregion").replace('&', '§');
region = getConfig().getString("region").replace('&', '§');
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(),
20, 20);
}
}
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())));
}
}
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);
}
}
}
#formats
region: '&e[&a{REGION}&e]'
notregion: '&4World'
PHP:public class Main extends JavaPlugin { static String notregion; static String region; public void onEnable() { saveDefaultConfig(); notregion = getConfig().getString("notregion").replace('&', '§'); region = getConfig().getString("region").replace('&', '§'); Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(), 20, 20); } }
PHP: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()))); } }
PHP: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); } } }
PHP:#formats region: '&e[&a{REGION}&e]' notregion: '&4World'
В качестве API нужно импортировать в Build Path плагины WorldGuard и WorldEdit
Прямого способа получить регион игроков не существует.Только через доп плагин! Это самый простой вариант. Пользуйся! Подано Все на блюдечке с г каёмочкой🙂Извините, мне нужно чисто используя WorldGuard получать регион игрока.
не обязательно.Vault и Protocollib
не обязательно.
Там есть строка, по ходу зависимость есть
ProtocolLibrary.getProtocolManager().sendServerPacket(p, chat);
}
catch (InvocationTargetException e)
{
throw new IllegalStateException("Unable to send packet " + chat, e);
}
Вот держи готовый плагин на блюдечке!