Guest User

Untitled

a guest
Mar 7th, 2025
8
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. package org.example;
  2.  
  3. import net.minecraft.core.BlockPos;
  4. import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket;
  5. import net.minecraft.server.level.ServerChunkCache;
  6. import net.minecraft.server.level.ServerLevel;
  7. import net.minecraft.world.level.block.Blocks;
  8. import net.minecraft.world.level.chunk.LevelChunk;
  9. import org.bukkit.Bukkit;
  10. import org.bukkit.craftbukkit.CraftWorld;
  11. import org.bukkit.craftbukkit.entity.CraftPlayer;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.event.player.PlayerJoinEvent;
  16. import org.bukkit.plugin.java.JavaPlugin;
  17.  
  18. public class Main extends JavaPlugin implements Listener {
  19.  
  20. @Override
  21. public void onEnable() {
  22. Bukkit.getPluginManager().registerEvents(this, this);
  23. }
  24.  
  25. @EventHandler
  26. public void onPlayerJoin(PlayerJoinEvent event) {
  27. Player player = event.getPlayer();
  28. sendModifiedChunks(player);
  29. }
  30.  
  31. private void sendModifiedChunks(Player player) {
  32. ServerLevel nmsWorld = ((CraftWorld) player.getWorld()).getHandle();
  33. ServerChunkCache chunkProvider = nmsWorld.getChunkSource();
  34.  
  35. int playerChunkX = player.getLocation().getBlockX() >> 4;
  36. int playerChunkZ = player.getLocation().getBlockZ() >> 4;
  37.  
  38. for (int x = -5; x <= 5; x++) {
  39. for (int z = -5; z <= 5; z++) {
  40. LevelChunk chunk = chunkProvider.getChunk(playerChunkX + x, playerChunkZ + z, false);
  41. if (chunk != null) {
  42. // Manipuliere die Blöcke unter Y=-10
  43. for (int y = -64; y <= -10; y++) {
  44. for (int bx = 0; bx < 16; bx++) {
  45. for (int bz = 0; bz < 16; bz++) {
  46. BlockPos blockPos = new BlockPos(bx, y, bz);
  47. chunk.setBlockState(blockPos, Blocks.AIR.defaultBlockState(), false);
  48. }
  49. }
  50. }
  51. ClientboundLevelChunkWithLightPacket packet = new ClientboundLevelChunkWithLightPacket(chunk, nmsWorld.getLightEngine(), null, null, false);
  52. ((CraftPlayer) player).getHandle().connection.send(packet);
  53. }
  54. }
  55. }
  56. }
  57. }
  58.  
  59.  
  60.  
  61. ----------------------------------------------
  62.  
  63. build.gradle:
  64.  
  65.  
  66. plugins {
  67. id("io.papermc.paperweight.userdev") version "2.0.0-beta.14"
  68. id("java")
  69. }
  70.  
  71. group = "org.example"
  72. version = "1.0-SNAPSHOT"
  73.  
  74. repositories {
  75. mavenCentral()
  76. }
  77.  
  78. dependencies {
  79. testImplementation(platform("org.junit:junit-bom:5.10.0"))
  80. testImplementation("org.junit.jupiter:junit-jupiter")
  81. paperweight.paperDevBundle("1.21.4-R0.1-SNAPSHOT")
  82.  
  83. }
  84.  
  85. tasks.test {
  86. useJUnitPlatform()
  87. }
  88.  
Advertisement
Add Comment
Please, Sign In to add comment