Войти или зарегистрироваться

Помогите Как проверить, был взорван отдельный тнт или нет?

  • Автор темы Автор темы ItsWay
  • Дата начала Дата начала

ItsWay

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
ItsWay
Всем привет, мне надо сделать, что бы отдельный тнт(добавленный в игру плагином взрывал обсидиан), я сделал так, что бы при взрыве обычного тнт через ивент с взрывом енити, но вопрос можно ли ниже в проверке если это тнт, проверить, этот тнт был тнт специальным который плагин добавляет или нет? Как такое релизовать?
Классы:

Код:
@EventHandler
public void onExplode(EntityExplodeEvent e) {
FileConfiguration config = plugin.getConfig();
int radiusexplode = config.getInt("configurations.tnts.standart_tnt.explode-obsidian-radius");
World world = e.getEntity().getWorld();
if (e.getEntityType() == EntityType.PRIMED_TNT) {
for (int x = e.getEntity().getLocation().getBlockX() - radiusexplode; x < e.getEntity().getLocation().getBlockX() + radiusexplode; x++) {
for (int y = e.getEntity().getLocation().getBlockY() - radiusexplode; y < e.getEntity().getLocation().getBlockY() + radiusexplode; y++) {
for (int z = e.getEntity().getLocation().getBlockZ() - radiusexplode; z < e.getEntity().getLocation().getBlockZ() + radiusexplode; z++) {
Block radiusBlock = world.getBlockAt(x, y, z);
if(config.getBoolean("configurations.tnts.standart_tnt.explode-obsidian") == true) {
if(radiusBlock.getType() == Material.OBSIDIAN) {
e.blockList().add(radiusBlock);
Bukkit.broadcast("Succesfully", null);
return;
}
}
if(config.getBoolean("configurations.tnt`s.standart_tnt.explode-obsidian") == false) {
e.blockList().remove(radiusBlock);
}
}
}
}
}
}


Это listener класс


Код:
public class ItemManager {

private system plugin;

ItemManager (system plugin) {

this.plugin = plugin;

}

public static ItemStack tnt1;

public static void init() {

Createtnt1();
}

private static void Createtnt1() {
ItemStack item = new ItemStack(Material.TNT, 1);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName("TNT TIER 1");
List<String> lore = new ArrayList<>();
lore.add("Bahaet 10 na 10");
lore.add("Prikol, on bahaet obsidian)");
meta.setLore(lore);
item.setItemMeta(meta);
tnt1 = item;
}
}

это класс добавления тнт
 
Всем привет, мне надо сделать, что бы отдельный тнт(добавленный в игру плагином взрывал обсидиан), я сделал так, что бы при взрыве обычного тнт через ивент с взрывом енити, но вопрос можно ли ниже в проверке если это тнт, проверить, этот тнт был тнт специальным который плагин добавляет или нет? Как такое релизовать?
Классы:

Код:
@EventHandler
public void onExplode(EntityExplodeEvent e) {
FileConfiguration config = plugin.getConfig();
int radiusexplode = config.getInt("configurations.tnts.standart_tnt.explode-obsidian-radius");
World world = e.getEntity().getWorld();
if (e.getEntityType() == EntityType.PRIMED_TNT) {
for (int x = e.getEntity().getLocation().getBlockX() - radiusexplode; x < e.getEntity().getLocation().getBlockX() + radiusexplode; x++) {
for (int y = e.getEntity().getLocation().getBlockY() - radiusexplode; y < e.getEntity().getLocation().getBlockY() + radiusexplode; y++) {
for (int z = e.getEntity().getLocation().getBlockZ() - radiusexplode; z < e.getEntity().getLocation().getBlockZ() + radiusexplode; z++) {
Block radiusBlock = world.getBlockAt(x, y, z);
if(config.getBoolean("configurations.tnts.standart_tnt.explode-obsidian") == true) {
if(radiusBlock.getType() == Material.OBSIDIAN) {
e.blockList().add(radiusBlock);
Bukkit.broadcast("Succesfully", null);
return;
}
}
if(config.getBoolean("configurations.tnt`s.standart_tnt.explode-obsidian") == false) {
e.blockList().remove(radiusBlock);
}
}
}
}
}
}


Это listener класс


Код:
public class ItemManager {

private system plugin;

ItemManager (system plugin) {

this.plugin = plugin;

}

public static ItemStack tnt1;

public static void init() {

Createtnt1();
}

private static void Createtnt1() {
ItemStack item = new ItemStack(Material.TNT, 1);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName("TNT TIER 1");
List<String> lore = new ArrayList<>();
lore.add("Bahaet 10 na 10");
lore.add("Prikol, on bahaet obsidian)");
meta.setLore(lore);
item.setItemMeta(meta);
tnt1 = item;
}
}

это класс добавления тнт
придётся добавлять поставленному кастомному блоку TNT какую-то инфу через PersistentDataContainer, а потом при эвенте поджога TNT( TNTPrimeEvent или чё то такое) проверять что у блока была инфа и передавать её энтити подожжённого динамита тем же способом, а потом при взрыве смотреть, есть ли у динамита инфа и делать действия в зависимости от этого.

Собственно итемстаку кастомного динамита тоже нужно будет добавлять инфу в PDC через его MetaData
 
Назад
Верх