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

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

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;
}
 
Хоть бы написал, для какой версии тебе плагин нужен.
Но в общем из того, что я понял, сделал плагин версию 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
    BurningDay.zip
    Размер файла
    4,1 КБ
    Просмотров
    0
Последнее редактирование:
Хоть бы написал, для какой версии тебе плагин нужен.
Но в общем из того, что я понял, сделал плагин версию 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
Спасибо большое! Но я с другом сделал уже через командные блоки) но все равно спасибо
 

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

Назад
Верх