Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Как изменить название сундука с помощью плагина?

Тема в разделе "Разработка плагинов для новичков", создана пользователем VladOneGV, 22 июл 2022.

  1. Автор темы
    VladOneGV

    VladOneGV Ньюби

    Баллы:
    1
    Писал я значит плагин... И вдруг наткнулся на такую проблему: не могу изменить название сундука (как блока, а не предмета).
    Я попробовал сделать так:
    Barrel barrel = block.getBlockState();
    barrel.setCustomName(shop.getOwner().getNickName() + " " + newCoast);
    block.setBlockData(barrel.getBlockData());
    - почему-то не работает.
    Я видел подобную тему с решением, но вообще не понял что там делать надо.
    Каким-то образом надо объект класса Block переделать в объект класса Barrel (бочка).
    Вот мой код:

    public void dirt1(PlayerInteractEvent e){
    ...
    if(e.getAction() == Action.LEFT_CLICK_BLOCK) if(e.getClickedBlock().getType() == Material.BARREL && e.getItem().getType() == Material.BLAZE_ROD){
    Barrel barrel = (Barrel) e.getClickedBlock().getState();
    db.createNewShop(db.findGamer(e.getPlayer().getName()), barrel.getCustomName(), barrel, e.getItem(), e.getClickedBlock());
    }
    }

    db.createNewShop:

    public void createNewShop(Gamer initer, String customName, Barrel barrel, ItemStack item, Block block){
    Player player = initer.getPlayer();
    Location location = block.getLocation();
    if(findShop(location)!=null) if(findShop(location).getOwner().equals(initer)){
    int newCoast;
    try {
    newCoast = Integer.parseInt(item.getItemMeta().getDisplayName());
    }catch (ArithmeticException e){
    player.sendMessage(ChatColor.RED + csg("messages.invalidInt"));
    return;
    }
    Shop shop = findShop(location);
    shop.setCoast(newCoast);
    barrel.setCustomName(shop.getOwner().getNickName() + " " + newCoast);
    player.sendMessage(ChatColor.GREEN + csg("messages.coastChanged"));
    block.setBlockData(barrel.getBlockData());
    return;
    }
    if(initer.getCountry()==null){
    player.sendMessage(ChatColor.RED + csg("messages.haveNotCountry"));
    return;
    }
    if(!initer.getCountry().isLeader(initer)){

    player.sendMessage(ChatColor.RED + csg("messages.notALeader"));
    return;
    }
    String chunk = toChunk(location.getBlockX(), location.getBlockZ(), location.getWorld().getName());
    if(location!=null){
    player.sendMessage(location.getBlockX() + " " + location.getBlockZ() + " " +location.getWorld().getName());
    }
    if(findShop(location)!=null){
    player.sendMessage(ChatColor.RED + csg("messages.alreadyBeingShop"));
    return;
    }
    if(!initer.getCountry().getChunks().contains(chunk)){
    player.sendMessage(ChatColor.RED + csg("messages.notInCountry"));
    return;
    }
    String name = customName.split(" ")[0];
    int coast;
    try {
    coast = Integer.parseInt(customName.split(" ")[1]);
    } catch (NumberFormatException e) {
    player.sendMessage(ChatColor.RED + csg("messages.cannotCreateShop"));
    return;
    }
    Gamer owner = findGamer(customName.split(" ")[0]);
    if(owner == null){
    player.sendMessage(ChatColor.RED + csg("messages.playerNotFound"));
    return;
    }
    shops.add(new Shop(coast, owner, initer.getCountry(), location));
    player.sendMessage(ChatColor.GREEN + csg("messages.shopCreated"));
    if(owner.isOnline()) owner.getPlayer().sendMessage(ChatColor.AQUA + csg("messages.shopCreatedSelf"));
    }
     
  2. Хостинг MineCraft
    <

Поделиться этой страницей