Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Не ставится блок(Я че наверное тупой да?)

Метки:
Теги Теги
plugin development

YUROO

Активный участник
Заблокирован
Пользователь
Баллы
66
Имя в Minecraft
YUROO
Крч у меня не ставится блок когда лава и вода создает блок каблы уот сам код:
@EventHandler
public void OreGen(BlockFromToEvent g) {
Block b = g.getBlock();
if(b.getType() == Material.COBBLESTONE) {
b.setType(Material.DIAMOND_ORE);
}
}
 
чот не работает
Ну вообще должно работать
ZcgtQNi.png
 
да не у меня и Form стоял
 
наверно нужен ищо
BlockSpreadEvent
 
Я новичок можна ли ивент вставить в ивент?
 
У меня все работает. Значит что-то не так делаешь.
PHP:
    @EventHandler
    void onForm(BlockFormEvent e) {
        if (e.getNewState().getType() == Material.COBBLESTONE)
            e.getNewState().setType(Material.DIAMOND_ORE);
    }
 
Не работает что у тибя а вот мой код:
Код:
package main.oregen;

import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.BlockFormEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{
    
    Logger log = Logger.getLogger("Minecraft");
    
    public void onEnabled() {
        getLogger().info("OreGen enabled!");
    }
    
    public void onDisabled() {
        getLogger().info("OreGen disapled!");
    }
    
    @EventHandler
    void onForm(BlockFormEvent e) {
        if (e.getNewState().getType() == Material.COBBLESTONE)
            e.getNewState().setType(Material.DIAMOND_ORE);
    }
    
}
 
Ну так а чего ты еще хотел? У тебя даже класс не реализует Listener и не регистрирует ивенты.
 
Создал Handler и listener:
Код:
package main.oregen;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockFormEvent;
import org.bukkit.event.block.BlockFromToEvent;

public class Handler implements Listener{
    
    private Main plugin;

    public Handler(Main plugin) {
        this.plugin = plugin;
    }
    
    @EventHandler
    void onForm(BlockFormEvent e) {
        if (e.getNewState().getType() == Material.COBBLESTONE)
            e.getNewState().setType(Material.DIAMOND_ORE);
    }
    
}
Main.java:
Код:
package main.oregen;

import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockFormEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{
    
    Logger log = Logger.getLogger("Minecraft");
    
    public void onEnabled() {
        Bukkit.getPluginManager().registerEvents(new Handler(this),this);
        getLogger().info("OreGen enabled!");
    }
    
    public void onDisabled() {
        getLogger().info("OreGen disapled!");
    }

    
}
 
Я не уверен, но что то мне подсказывает, что
onForm(BlockFormEvent e) должен быть public (поправьте, если я ошибаюсь)

И если есть какое-нибудь исключение, желательно принести сюда stacktrace
 
public не работает
версия 1 12 2
 
может конфликтует с моими другими плагинами :D
 

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

Назад
Верх