[Guide] Создание плагинов под бетку, часть 5(ВорлдГуард)
- Автор: Father
- Дата: 31-08-2018, 20:00
- Категория: Инструкции, гайды Minecraft
В прошлом гайде я показывал накатывание прав на плагин. Думаю многим было бы неплохо узнать, как можно накатить в плагин еще поддержку 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);
}
}
}
}
Плагин:
Всем удачи!
Информация | |
Для написания комментария зарегистрируйся на сайте, это займет всего пару минут, голосуй за новости, зарабатывай репутацию. |
Последние сообщения с форума
Название темы | Автор | Статистика | Последнее сообщение |
---|---|---|---|
КОФЕЙНЯ Тема в разделе: Форумные игры |
vovanhurcane | Просмотров: 2627 Ответов: 27 |
Автор: cat1967 |
Как добавить динамическое освещение оптифайна любому предмету? Тема в разделе: Ваши вопросы по Minecraft |
Вячеслав Серенко | Просмотров: 552 Ответов: 8 |
Автор: Вячеслав Серенко |
ПРОДАЖА ⭐COMBOLIST⭐ ВСЕ СТРАНЫ, ВСЕ ДОМЕНЫ СТРИМИНГ, ГЕЙМИНГ, КРИПТОВАЛЮТА И Т.Д.! Тема в разделе: Барахолка |
GGBestCombo | Просмотров: 58 Ответов: 0 |
Автор: GGBestCombo |
[1.20.4] NeoMoonVanilla - Ванильный Minecraft | Ивенты | Ламповое выживание Тема в разделе: Частные, домашние, Hamachi сервера |
Kristallik__ | Просмотров: 239 Ответов: 1 |
Автор: Kristallik__ |
Ищете ванильный сервер похожий на МайнШилд? Тема в разделе: Частные, домашние, Hamachi сервера |
awiex | Просмотров: 97 Ответов: 0 |
Автор: awiex |