Как реализовать отображение региона

Алмаз Гараев

Активный участник
Пользователь
Баллы
76
Любой код, который позволяет где нибудь отображать текущий регион, на котором стоит игрок!
 
ApplicableRegionSet regions1 = WGBukkit.getRegionManager(p.getWorld()).getApplicableRegions(p.getLocation());
Учись гуглить, тем про это штук 100
 
ОМГ, ты уже про это создаёшь вторую тему в первой тебе помогли но ты видимо взял код, прожевал и выплюнул...
Вот как раз таки наоборот, мне ни разу здесь не помогли, всегда только обсирали вместо помощи, как будто сами они родились супер прогерами! Если сюда обращаются за помощью, это от того, что мало знаний, если кто супер прогер, то нафиг ему этот форум нужен! Серьезные прогеры они как паханы, вежливо, на Вы разговор ведут, Здесь больно не светятся, для них плохое слово сказать, замарать свою репутацию, а вот эти, которые здесь кишат и выпендриваются олухи, шестерки, петухи разные, которые сами ниера не знают ничего, вот и поливают помоями всех кого не лень!
 
Последнее редактирование:
Вот как раз таки наоборот, мне ни разу здесь не помогли, всегда только обсирали вместо помощи, как будто сами они родились супер прогерами! Если сюда обращаются за помощью, это от того, что мало знаний, если кто супер прогер, то нафиг ему этот форум нужен! Серьезные прогеры они как паханы, вежливо, на Вы разговор ведут, Здесь больно не светятся, для них плохое слово сказать, замарать свою репутацию, а вот эти, которые здесь кишат и выпендриваются олухи, шестерки, петухи разные, которые сами ниера не знают ничего, вот и поливают помоями всех кого не лень!
Тебе уже подсказали первым постом. А вообще - надо было реально загуглить World Guard Wiki, и вуаля
 
Через BossBar.
Method:
Код:
public static ProtectedRegion getRegion(Location loc){
        ApplicableRegionSet set = wgApi.getRegionManager(loc.getWorld()).getApplicableRegions(loc);
        for(ProtectedRegion region : set){
            if(region.getId().equalsIgnoreCase("__global__")){
                continue;
            }
            return region;
            
        }
        return null;
    }

1.9+(О нагрузке не знаю, т.к сам такое не использовал):
Код:
public void send(Player p){
        ProtectedRegion region = getRegion(p.getLocation());
        if(region == null)return;
        BossBar bar = Bukkit.createBossBar("Вы находитесь в регионе " + region.getId(), region.getOwners().getUniqueIds().contains(p.getUniqueId())?BarColor.GREEN:BarColor.RED, BarStyle.SOLID,                 BarFlag.DARKEN_SKY);
        bar.addPlayer(p);
}

С Bukkit.org(Через пакеты):
Код:
public static void newBar(Player player) {
ProtectedRegion region = getRegion(p.getLocation());
if(region == null)return;
Location loc = player.getLocation();
WorldServer world = ((CraftWorld) player.getLocation().getWorld()).getHandle();
EntityWither wither = new EntityWither(world);
wither.setLocation(loc.getX(), loc.getY() - 10, loc.getZ(), 0, 0);
wither.setCustomName("Вы находитесь в регионе " + region.getId());
Packet packet = new PacketPlayOutSpawnEntityLiving(wither);
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
P.S. https://github.com/confuser/BarAPI/tree/master/src/me/confuser/barapi - Если хочешь сделать нормально через BossBar.
 
Последнее редактирование:
Через BossBar.
Method:
Код:
public static ProtectedRegion getRegion(Location loc){
        ApplicableRegionSet set = wgApi.getRegionManager(loc.getWorld()).getApplicableRegions(loc);
        for(ProtectedRegion region : set){
            if(region.getId().equalsIgnoreCase("__global__")){
                continue;
            }
            return region;
           
        }
        return null;
    }

1.9+(О нагрузке не знаю, т.к сам такое не использовал):
Код:
public void send(Player p){
        ProtectedRegion region = getRegion(p.getLocation());
        if(region == null)return;
        BossBar bar = Bukkit.createBossBar("Вы находитесь в регионе " + region.getId(), region.getOwners().getUniqueIds().contains(p.getUniqueId())?BarColor.GREEN:BarColor.RED, BarStyle.SOLID,                 BarFlag.DARKEN_SKY);
        bar.addPlayer(p);
}

С Bukkit.org(Через пакеты):
Код:
public static void newBar(Player player) {
ProtectedRegion region = getRegion(p.getLocation());
if(region == null)return;
Location loc = player.getLocation();
WorldServer world = ((CraftWorld) player.getLocation().getWorld()).getHandle();
EntityWither wither = new EntityWither(world);
wither.setLocation(loc.getX(), loc.getY() - 10, loc.getZ(), 0, 0);
wither.setCustomName("Вы находитесь в регионе " + region.getId());
Packet packet = new PacketPlayOutSpawnEntityLiving(wither);
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
P.S. https://github.com/confuser/BarAPI/tree/master/src/me/confuser/barapi - Если хочешь сделать нормально через BossBar.
Через нмс уже смысла нет. Теперь в ведре свой барапи.
 
Вот екшенбар до сиз пор так и не прикрутили в ведре, печаль беда (.
А вот это действительно грустно... Его добавили так давно, а в Апи не могут добавить до сих пор. Это немножко печалит☹️
 
А вот это действительно грустно... Его добавили так давно, а в Апи не могут добавить до сих пор. Это немножко печалит☹️
Ты серьёзно считаешь эти строчки кода сложными?!
PHP:
    public static void sendActionBar(Player p, String message){
        IChatBaseComponent cbc = ChatSerializer.a("{\"text\": \"" + message +"\"}");
        PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc,(byte) 2);
        ((CraftPlayer) p).getHandle().playerConnection.sendPacket(ppoc);
}
 
Ты серьёзно считаешь эти строчки кода сложными?!
PHP:
    public static void sendActionBar(Player p, String message){
        IChatBaseComponent cbc = ChatSerializer.a("{\"text\": \"" + message +"\"}");
        PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc,(byte) 2);
        ((CraftPlayer) p).getHandle().playerConnection.sendPacket(ppoc);
}
Да, ну сделай паблик-плагин с таким методом. Он будет только на одну версию.
 
Ты серьёзно считаешь эти строчки кода сложными?!
PHP:
    public static void sendActionBar(Player p, String message){
        IChatBaseComponent cbc = ChatSerializer.a("{\"text\": \"" + message +"\"}");
        PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc,(byte) 2);
        ((CraftPlayer) p).getHandle().playerConnection.sendPacket(ppoc);
}
Я где-то говорил о сложности? НЕТ
Я где-то упоминал твоё имя? НЕТ
Так что иди набивай сообщения в другую тему...
 
Я где-то говорил о сложности? НЕТ
Я где-то упоминал твоё имя? НЕТ
Так что иди набивай сообщения в другую тему...
Забей на него. Он даже не в курсе, что отправка пакета поменялась. Своровал старый код с паба и довелен. Одна из причин, почему хромосомы дрочат старые версии.
 
Забей на него. Он даже не в курсе, что отправка пакета поменялась. Своровал старый код с паба и довелен. Одна из причин, почему хромосомы дрочат старые версии.
Я даже нашел ссылку на статью, где он украл код😆
https://www.spigotmc.org/threads/send-action-bar-message.81232/
Но в любом случае нам то пофиг на его сообщения. Пусть деградирует дальше.
 
Ты серьёзно считаешь эти строчки кода сложными?!
PHP:
    public static void sendActionBar(Player p, String message){
        IChatBaseComponent cbc = ChatSerializer.a("{\"text\": \"" + message +"\"}");
        PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc,(byte) 2);
        ((CraftPlayer) p).getHandle().playerConnection.sendPacket(ppoc);
}
Кстати об этом.
Теперь в 1.12 так PacketPlayOutChat(IChatBaseComponent ichatbasecomponent, ChatMessageType chatmessagetype), так что ты еще раз обгадился.
 
Назад
Верх