[Guide] Создание плагинов под бетку, часть 5(ВорлдГуард)

[Guide] Создание плагинов под бетку, часть 5(ВорлдГуард)
В прошлом гайде я показывал накатывание прав на плагин. Думаю многим было бы неплохо узнать, как можно накатить в плагин еще поддержку WorldGuard. Это не очень и трудно.

Я вот недавно делал плагин на то, чтобы стекло и лед выпадали при их ломании. Но без ВорлдГуарда можно было стекло и лед ломать прямо в привате, даже когда тебя в самом привате нет. Поэтому Я и делаю этот гайд.

Итак, так как я делал поддержку именно для блоков, я напишу про это в Листенере блоков, но это можно сделать и в других листенерах. Итак, вот мой код:

package ru.hpp.comp;

import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockListener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;


public class bListener extends BlockListener{
    //Эвенты и прочее
    @Override
    public void onBlockBreak(BlockBreakEvent e) {
     Player player = e.getPlayer();
     Block Block = e.getBlock();

      if (e.getBlock().getType() == Material.ICE) {
          Block.setType(Material.AIR);
          Block.getWorld().dropItemNaturally(Block.getLocation(), new ItemStack(Material.ICE, 1));
          e.setCancelled(true);
      }
      if (e.getBlock().getType() == Material.GLASS) {
        Block.setType(Material.AIR);
        Block.getWorld().dropItemNaturally(Block.getLocation(), new ItemStack(Material.GLASS, 1));
        e.setCancelled(true);
      }
    }
}


Так, сейчас нужно добавить WorldGuard в библиотеку. Повторяем действие из предыдущего гайда, но вместо Permissions.jar добавляем WorldGuard.jar. Плагин будет внизу!

Так, добавили библиотеку. Давайте сначала посмотрим, есть ли сам плагин. Добавляем после extends BlockListener{ вот это:
WorldGuardPlugin wg = (WorldGuardPlugin) Bukkit.getServer().getPluginManager(). getPlugin("WorldGuard"); //Получаем плагин


Теперь переходим к эвентам. Лично мне нужно было проверить, может ли человек строить в привате. Если нет, то ему высвечивается сообщение о том, что у него нет прав в этом регионе. Это легко осуществить. После public void ИмяЭвента(Эвент базар) { добавляем вот это:
Player player = e.getPlayer(); // Получаем игрока
     Block Block = e.getBlock(); // Получаем блок

     if (wg.canBuild(player, Block)) { // Если игрок может строить(player и Block можете изменить, но должно совпадать, иначе не будет работать)


Вот и все! Поддержка ВорлдГуард сделана. Вот как сейчас выглядит мой код:

package ru.hpp.comp;

import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockListener;
import org.bukkit.inventory.ItemStack;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;


public class bListener extends BlockListener{

WorldGuardPlugin wg = (WorldGuardPlugin) Bukkit.getServer().getPluginManager(). getPlugin("WorldGuard");

    
    @Override
    public void onBlockBreak(BlockBreakEvent e) {
     Player player = e.getPlayer();
     Block Block = e.getBlock();

     if (wg.canBuild(player, Block)) {
      if (e.getBlock().getType() == Material.ICE) {
          Block.setType(Material.AIR);
          Block.getWorld().dropItemNaturally(Block.getLocation(), new ItemStack(Material.ICE, 1));
          e.setCancelled(true);
      }
      if (e.getBlock().getType() == Material.GLASS) {
        Block.setType(Material.AIR);
        Block.getWorld().dropItemNaturally(Block.getLocation(), new ItemStack(Material.GLASS, 1));
        e.setCancelled(true);
      }
    }
  }
}


Плагин: worldguard.jar [214,8 Kb]
Всем удачи!


Голосуй за новость:
(+1.200,8-0.40)
  • Просмотров: 1 393
  • Комментариев: 1
Рекомендуемое для Вас:

  1. Журналисты-олдфаги
    Зарегистрирован: 25.04.2015
    Репутация
    (+108.0107,7-0.3)
    WooDOfficial | Пользователь offline | (31 августа 2018 21:37) | Комментариев: 349 | Новостей: 22 |
    • 0

    Отец, как и всегда, шикарен
    -----------------------------------------------------------------------------


Для написания комментария зарегистрируйся на сайте, это займет всего пару минут, голосуй за новости, зарабатывай репутацию.

Последние сообщения с форума

Название темы Автор Статистика Последнее сообщение
КОФЕЙНЯ

Тема в разделе: Форумные игры

vovanhurcane

Просмотров: 2627

Ответов: 27

Автор: cat1967

Сегодня, 11:40

Как добавить динамическое освещение оптифайна любому предмету?

Тема в разделе: Ваши вопросы по Minecraft

Вячеслав Серенко

Просмотров: 552

Ответов: 8

Автор: Вячеслав Серенко

Сегодня, 06:52

ПРОДАЖА ⭐COMBOLIST⭐ ВСЕ СТРАНЫ, ВСЕ ДОМЕНЫ СТРИМИНГ, ГЕЙМИНГ, КРИПТОВАЛЮТА И Т.Д.!

Тема в разделе: Барахолка

GGBestCombo

Просмотров: 58

Ответов: 0

Автор: GGBestCombo

Сегодня, 03:39

[1.20.4] NeoMoonVanilla - Ванильный Minecraft | Ивенты | Ламповое выживание

Тема в разделе: Частные, домашние, Hamachi сервера

Kristallik__

Просмотров: 239

Ответов: 1

Автор: Kristallik__

Вчера, 22:04

Ищете ванильный сервер похожий на МайнШилд?

Тема в разделе: Частные, домашние, Hamachi сервера

awiex

Просмотров: 97

Ответов: 0

Автор: awiex

Вчера, 21:51