Хоть бы написал, для какой версии тебе плагин нужен.
Но в общем из того, что я понял, сделал плагин версию 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