blockdisplay

This commit is contained in:
MidnightTale 2023-04-25 21:53:17 +07:00
commit 2b6ad01b8f

View file

@ -2,7 +2,6 @@ package xyz.hynse.foliaflow;
import io.papermc.paper.threadedregions.scheduler.GlobalRegionScheduler; import io.papermc.paper.threadedregions.scheduler.GlobalRegionScheduler;
import io.papermc.paper.threadedregions.scheduler.RegionScheduler; import io.papermc.paper.threadedregions.scheduler.RegionScheduler;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
@ -30,13 +29,11 @@ public class FoliaFlow extends JavaPlugin implements Listener {
private int counter = 0; private int counter = 0;
private final Set<Location> movingBlocks = new HashSet<>(); private final Set<Location> movingBlocks = new HashSet<>();
private final Map<Entity, Vector> velocitiesMap = new HashMap<>(); private final Map<Entity, Vector> velocitiesMap = new HashMap<>();
private ScheduledTask task;
private ScheduledTask blockktask;
@Override @Override
public void onEnable() { public void onEnable() {
super.onEnable(); super.onEnable();
RegionScheduler schedulerblock = getServer().getRegionScheduler(); RegionScheduler schedulerblock = getServer().getRegionScheduler();
blockktask = schedulerblock.runAtFixedRate(this, Objects.requireNonNull(Bukkit.getWorld("world_the_end")), 1, 1, (schedulerTask) -> { schedulerblock.runAtFixedRate(this, Objects.requireNonNull(Bukkit.getWorld("world_the_end")), 1, 1, (schedulerTask) -> {
Block block = Objects.requireNonNull(Bukkit.getWorld("world_the_end")).getBlockAt(100, 48, 0); Block block = Objects.requireNonNull(Bukkit.getWorld("world_the_end")).getBlockAt(100, 48, 0);
if (block.getType() == Material.OBSIDIAN) { if (block.getType() == Material.OBSIDIAN) {
block.setType(Material.COBBLED_DEEPSLATE_SLAB); block.setType(Material.COBBLED_DEEPSLATE_SLAB);
@ -48,9 +45,9 @@ public class FoliaFlow extends JavaPlugin implements Listener {
}, 1L, 1L); }, 1L, 1L);
GlobalRegionScheduler scheduler = this.getServer().getGlobalRegionScheduler(); GlobalRegionScheduler schedulervelocity = this.getServer().getGlobalRegionScheduler();
task = scheduler.runAtFixedRate(this, (scheduledTask) -> { schedulervelocity.runAtFixedRate(this, (scheduledTask) -> {
for (World world : Bukkit.getWorlds()) { for (World world : Bukkit.getWorlds()) {
for (Entity entity : world.getEntities()) { for (Entity entity : world.getEntities()) {
if (entity.getType() == EntityType.FALLING_BLOCK && entity.getWorld().getEnvironment() == World.Environment.THE_END) { if (entity.getType() == EntityType.FALLING_BLOCK && entity.getWorld().getEnvironment() == World.Environment.THE_END) {
@ -72,11 +69,23 @@ public class FoliaFlow extends JavaPlugin implements Listener {
}, 20L, 1L); }, 20L, 1L);
BlockDisplay display = (BlockDisplay) Objects.requireNonNull(getServer().getWorld("world_the_end")).spawnEntity(new Location(getServer().getWorld("world_the_end"), 100, 48, 0), EntityType.BLOCK_DISPLAY); RegionScheduler schedulerdisplay = getServer().getRegionScheduler();
BlockData obsidian = Bukkit.createBlockData(Material.OBSIDIAN);
display.setBlock(obsidian); schedulerdisplay.run(this, Objects.requireNonNull(Bukkit.getWorld("world_the_end")), 1, 1, (schedulerTask) -> {
BlockData displayedBlock = display.getBlock(); World endWorld = getServer().getWorld("world_the_end");
getLogger().info("Displayed block: " + displayedBlock.getMaterial()); if (endWorld == null) {
getLogger().warning("World \"world_the_end\" does not exist!");
return;
}
Chunk chunk = endWorld.getChunkAt(0, 0);
if (!chunk.isLoaded()) {
chunk.load();
BlockDisplay display = (BlockDisplay) endWorld.spawnEntity(new Location(endWorld, 100, 48, 0), EntityType.BLOCK_DISPLAY);
BlockData obsidian = Bukkit.createBlockData(Material.OBSIDIAN);
display.setBlock(obsidian);
}
});
getServer().getPluginManager().registerEvents(this, this); getServer().getPluginManager().registerEvents(this, this);
} }