1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем LightManJ, 20 авг 2024.

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

    LightManJ Ньюби

    Баллы:
    1
    Вообщем, у меня есть код плагина, а как его использовать я без понятия. Этот плагин должен по идеи поджигать игроков на поверхности. Кто может засунуть этот код в плагин? Что бы он работал на сервере.



    public static boolean needDayBurn(Player player) {
    if (player.getGameMode() == GameMode.CREATIVE) return false;
    Block block1 = player.getLocation().add(0, 1, 0).getBlock();
    if (block1.getType() == Material.WATER || block1.getType() == Material.STATIONARY_WATER) return false;
    Block block = player.getLocation().getBlock();
    if (block.getType() == Material.WATER || block.getType() == Material.STATIONARY_WATER) return false;
    return block1.getLightFromSky() >= 15;
    }
     
  2. Aviloo

    Aviloo Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Aviloo
    Хоть бы написал, для какой версии тебе плагин нужен.
    Но в общем из того, что я понял, сделал плагин версию 1.19.4 . Ниже прилагаю код классов и собственно архив с джарником.

    Главный класс:
    Код:
    package me.aviloo.burningday;
    
    import me.aviloo.burningday.Event.ServerTickEvent;
    import me.aviloo.burningday.Listener.TimeListener;
    import org.bukkit.Bukkit;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public final class BurningDay extends JavaPlugin {
    
        @Override
        public void onEnable() {
            // Event
            getServer().getPluginManager().registerEvents(new TimeListener(), this);
    
            Bukkit.getScheduler().runTaskTimer(this,() -> {
                // Calling MyEvent
                ServerTickEvent serverTickEvent = new ServerTickEvent();
                Bukkit.getPluginManager().callEvent(serverTickEvent);
            },0,1);
    
        }
    
        @Override
        public void onDisable() {
            // Plugin shutdown logic
        }
    }
    
    TimeListener:
    Код:
    package me.aviloo.burningday.Listener;
    
    import me.aviloo.burningday.Event.ServerTickEvent;
    import org.bukkit.GameMode;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class TimeListener implements Listener {
    
        private boolean canPlayerBurn(Player player) {
            if(player.getGameMode().equals(GameMode.CREATIVE)){return false;}
            if(!player.getLocation().add(0,2,0).getBlock().getType().isAir()){return false;}
            if(player.getLocation().getBlock().isLiquid()){return false;}
            if(player.getLocation().getBlock().getLightFromSky() < 15){return false;}
    
            return true;
        }
    
        @EventHandler
        public void onTimeChange(ServerTickEvent event) {
            for(Player ps : playerSet){
                if(ps.getWorld().getTime() > 13000 ){return;}
                if(!canPlayerBurn(ps)){
                    ps.setFireTicks(0);
                    ps.stopAllSounds();
                    return;
                }
    
                ps.setFireTicks(1000);
            }
    
        }
    
        private Set<Player> playerSet = new HashSet<>();
    
        @EventHandler
        public void onJoin(PlayerJoinEvent event) {
            playerSet.add(event.getPlayer());
        }
    
        @EventHandler
        public void onQuit(PlayerQuitEvent event) {
            playerSet.remove(event.getPlayer());
        }
    
    }
    
    ServerTickEvent:
    Код:
    package me.aviloo.burningday.Event;
    
    import org.bukkit.event.Event;
    import org.bukkit.event.HandlerList;
    
    public class ServerTickEvent extends Event {
        private static final HandlerList HANDLERS = new HandlerList();
    
        public static HandlerList getHandlerList() {
            return HANDLERS;
        }
    
        @Override
        public HandlerList getHandlers() {
            return HANDLERS;
        }
    }
    
    P.S: Не забудь разархивировать архив в папке /plugins
     

    Вложения:

    • BurningDay.zip
      Размер файла:
      4,1 КБ
      Просмотров:
      0
    Последнее редактирование: 20 авг 2024
  3. Автор темы
    LightManJ

    LightManJ Ньюби

    Баллы:
    1
    Спасибо большое! Но я с другом сделал уже через командные блоки) но все равно спасибо
     

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