- Баллы
- 123
А почему нет?Еще:Можно ли брать значение из конфига ?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
А почему нет?Еще:Можно ли брать значение из конфига ?
Ну вот замечания:Теперь сойдет ?
А про 2 и 3 не слышал(Недавно начал)Java:public class MoreBombs extends JavaPlugin implements Listener { public static final Logger _log = Logger.getLogger("Minecraft"); public void onEnable() { _log.info("[MoreBombs] Started! "); ItemStack poison_TNT = new ItemStack(Material.TNT, 1); ItemMeta im = poison_TNT.getItemMeta(); ArrayList poison_TNT_lore = new ArrayList(); poison_TNT_lore.add("5"); im.setLore(poison_TNT_lore); im.setDisplayName("Poison TNT"); poison_TNT.setItemMeta(im); ShapedRecipe craft = new ShapedRecipe(poison_TNT); craft.shape(new String[] { "AAA", "AAA", "AAA" }); craft.setIngredient('A', Material.getMaterial(46)); getServer().addRecipe(craft); ItemStack TNTNuke = new ItemStack(Material.TNT, 1); ItemMeta im1 = TNTNuke.getItemMeta(); ArrayList TNT_Nuke_lore = new ArrayList(); TNT_Nuke_lore.add("8"); im1.setLore(TNT_Nuke_lore); im1.setDisplayName("DevTNT"); TNTNuke.setItemMeta(im1); ShapedRecipe craft2 = new ShapedRecipe(TNTNuke); craft2.shape(new String[] { "AAB", "AAB", "BBB" }); craft2.setIngredient('A', Material.getMaterial(46), 64); getServer().addRecipe(craft2); Bukkit.getPluginManager().registerEvents(this, this); } @EventHandler(priority = EventPriority.NORMAL) public void onBlockPlace(BlockPlaceEvent event) { if(event.getBlock().getType() == Material.TNT) { { Location toSpawn = event.getBlock().getLocation(); event.getBlock().setType(Material.AIR); TNTPrimed tnt = toSpawn.getWorld().spawn(toSpawn, TNTPrimed.class); int TNTNuke_lore = 15; tnt.setFuseTicks(TNTNuke_lore); tnt.setYield(15); } } } }
Еще:Можно ли брать значение из конфига ?
// завершаем обработку, если уважаемый WorldGuard против:
if (event.isCancelled()) return;
// запоминаем предмет в руке
ItemStack item = event.getItemInHand();
// делаем проверку, что предмет есть, и это именно ТНТ
if (item==null) return;
if (item.getType() != Material.TNT) return;
// делаем проверку, что это наш мощный тнт (по названию)
String name = "Poison TNT";
if (! name.equals(item.getItemMeta().getDisplayName())) return;
// теперь у нас точно наш специальный блок динамита. Делаем бочку!
event.setCancelled(true);
Player player = event.getPlayer();
Location location = event.getBlock().getLocation();
// забираем один блок динамита у игрока
player.getInventory().remove(item.clone().setAmount(1));
// спавним горящий динамит
TNTPrimed tnt = location.getWorld().spawn(location, TNTPrimed.class);
// и меняем его параметры
tnt.setFuseTicks(15); // на самом деле 15 тиков это мало. 20 тиков = 1 секунда
tnt.setYield(15); // радиус взрыва в 15 блоков
// всё!
Спасибо помогНу вот замечания:
1)
EventPriority нужно поставить минимальный, как я говорил, чтобы избежать конфликтов с WorldGuard
2)
Саму обработку события я бы сделал так:
Lore в этом случае мы не используем, т.к. сила взрыва фиксирована.Java:// завершаем обработку, если уважаемый WorldGuard против: if (event.isCancelled()) return; // запоминаем предмет в руке ItemStack item = event.getItemInHand(); // делаем проверку, что предмет есть, и это именно ТНТ if (item==null) return; if (item.getType() != Material.TNT) return; // делаем проверку, что это наш мощный тнт (по названию) String name = "Poison TNT"; if (! name.equals(item.getItemMeta().getDisplayName())) return; // теперь у нас точно наш специальный блок динамита. Делаем бочку! event.setCancelled(true); Player player = event.getPlayer(); Location location = event.getBlock().getLocation(); // забираем один блок динамита у игрока player.getInventory().remove(item.clone().setAmount(1)); // спавним горящий динамит TNTPrimed tnt = location.getWorld().spawn(location, TNTPrimed.class); // и меняем его параметры tnt.setFuseTicks(15); // на самом деле 15 тиков это мало. 20 тиков = 1 секунда tnt.setYield(15); // радиус взрыва в 15 блоков // всё!
(респект) . Почему тебя в девелоперов не берут
.А в remove нечего не забыл ? Ошибку дает в EclipseАга, писал на скорую руку. Нужно как-то так:... А в remove нечего не забыл ? Ошибку дает в Eclipse
if (! player.getGameMode.equals(GameMode.CREATIVE)){
ItemStack temp = item.clone();
temp.setAmount(1);
player.getInventory().remove(temp);
}