clean up and rework compassUsageTimer

This commit is contained in:
Martin Olischläger 2023-04-28 18:58:47 +02:00
parent 65e3195128
commit 3817880030
9 changed files with 26 additions and 57 deletions

View File

@ -1,12 +1,14 @@
package eu.mhsl.craftattack.worldmuseum; package eu.mhsl.craftattack.worldmuseum;
import eu.mhsl.craftattack.worldmuseum.commands.GamemodeCommand; import eu.mhsl.craftattack.worldmuseum.commands.GamemodeCommand;
import eu.mhsl.craftattack.worldmuseum.commands.GcCommand; import eu.mhsl.craftattack.worldmuseum.temp.GcCommand;
import eu.mhsl.craftattack.worldmuseum.commands.SpawnCommand; import eu.mhsl.craftattack.worldmuseum.commands.SpawnCommand;
import eu.mhsl.craftattack.worldmuseum.commands.TeleportCommand; import eu.mhsl.craftattack.worldmuseum.commands.TeleportCommand;
import eu.mhsl.craftattack.worldmuseum.listener.*; import eu.mhsl.craftattack.worldmuseum.listener.*;
import eu.mhsl.craftattack.worldmuseum.skins.SkinCache; import eu.mhsl.craftattack.worldmuseum.skins.SkinCache;
import eu.mhsl.craftattack.worldmuseum.temp.TablistUpdateTask;
import eu.mhsl.craftattack.worldmuseum.util.Config; import eu.mhsl.craftattack.worldmuseum.util.Config;
import eu.mhsl.craftattack.worldmuseum.util.NewPlayer;
import eu.mhsl.craftattack.worldmuseum.util.SignHandler; import eu.mhsl.craftattack.worldmuseum.util.SignHandler;
import eu.mhsl.craftattack.worldmuseum.worlds.World; import eu.mhsl.craftattack.worldmuseum.worlds.World;
import eu.mhsl.craftattack.worldmuseum.worlds.WorldManager; import eu.mhsl.craftattack.worldmuseum.worlds.WorldManager;
@ -28,8 +30,6 @@ public class Main {
// Initialization // Initialization
System.setProperty("minestom.chunk-view-distance", "8"); System.setProperty("minestom.chunk-view-distance", "8");
MinecraftServer minecraftServer = MinecraftServer.init(); MinecraftServer minecraftServer = MinecraftServer.init();
// MinecraftServer.setChunkViewDistance(8);
//temp //temp
MinecraftServer.getSchedulerManager().scheduleTask(new TablistUpdateTask(), TaskSchedule.tick(20), TaskSchedule.tick(20)); MinecraftServer.getSchedulerManager().scheduleTask(new TablistUpdateTask(), TaskSchedule.tick(20), TaskSchedule.tick(20));

View File

@ -1,12 +1,10 @@
package eu.mhsl.craftattack.worldmuseum.listener; package eu.mhsl.craftattack.worldmuseum.listener;
import eu.mhsl.craftattack.worldmuseum.NewPlayer; import eu.mhsl.craftattack.worldmuseum.util.NewPlayer;
import eu.mhsl.craftattack.worldmuseum.util.ChangeWorld; import eu.mhsl.craftattack.worldmuseum.util.ChangeWorld;
import eu.mhsl.craftattack.worldmuseum.worlds.World; import eu.mhsl.craftattack.worldmuseum.worlds.World;
import eu.mhsl.craftattack.worldmuseum.worlds.WorldManager; import eu.mhsl.craftattack.worldmuseum.worlds.WorldManager;
import net.minestom.server.entity.Player;
import net.minestom.server.event.inventory.InventoryPreClickEvent; import net.minestom.server.event.inventory.InventoryPreClickEvent;
import net.minestom.server.thread.MinestomThread;
import java.util.Objects; import java.util.Objects;
import java.util.function.Consumer; import java.util.function.Consumer;
@ -24,12 +22,9 @@ public class InventoryClickListener implements Consumer<InventoryPreClickEvent>
p.teleport(w.getSpawn()); p.teleport(w.getSpawn());
} else { } else {
p.closeInventory(); p.closeInventory();
Thread thread = new ChangeWorld(p, w); ChangeWorld.changeWorld(p, w);
thread.run();
} }
} }
inventoryPreClickEvent.setCancelled(true); inventoryPreClickEvent.setCancelled(true);
} }
} }

View File

@ -1,8 +1,7 @@
package eu.mhsl.craftattack.worldmuseum.listener; package eu.mhsl.craftattack.worldmuseum.listener;
import eu.mhsl.craftattack.worldmuseum.NewPlayer; import eu.mhsl.craftattack.worldmuseum.util.NewPlayer;
import eu.mhsl.craftattack.worldmuseum.items.CompassManager; import eu.mhsl.craftattack.worldmuseum.items.CompassManager;
import net.minestom.server.entity.Player;
import net.minestom.server.event.player.PlayerUseItemEvent; import net.minestom.server.event.player.PlayerUseItemEvent;
import net.minestom.server.item.ItemStack; import net.minestom.server.item.ItemStack;
import java.util.function.Consumer; import java.util.function.Consumer;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.worldmuseum.listener; package eu.mhsl.craftattack.worldmuseum.listener;
import eu.mhsl.craftattack.worldmuseum.NewPlayer; import eu.mhsl.craftattack.worldmuseum.util.NewPlayer;
import net.minestom.server.event.player.PlayerMoveEvent; import net.minestom.server.event.player.PlayerMoveEvent;
import java.util.function.Consumer; import java.util.function.Consumer;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.worldmuseum.commands; package eu.mhsl.craftattack.worldmuseum.temp;
import net.minestom.server.command.builder.Command; import net.minestom.server.command.builder.Command;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.worldmuseum; package eu.mhsl.craftattack.worldmuseum.temp;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,15 +1,12 @@
package eu.mhsl.craftattack.worldmuseum.util; package eu.mhsl.craftattack.worldmuseum.util;
import eu.mhsl.craftattack.worldmuseum.NewPlayer;
import eu.mhsl.craftattack.worldmuseum.worlds.World; import eu.mhsl.craftattack.worldmuseum.worlds.World;
import net.minestom.server.potion.Potion; import net.minestom.server.potion.Potion;
import net.minestom.server.potion.PotionEffect; import net.minestom.server.potion.PotionEffect;
import net.minestom.server.thread.MinestomThread; public class ChangeWorld {
public static void changeWorld(NewPlayer player, World targetWorld) {
public class ChangeWorld extends MinestomThread {
public ChangeWorld(NewPlayer player, World targetWorld) {
super("load_world_for_player");
player.setAllowMovement(false); player.setAllowMovement(false);
player.setAllowCompassUsage(false);
player.addEffect(new Potion(PotionEffect.BLINDNESS, (byte) 0, 1000000)); player.addEffect(new Potion(PotionEffect.BLINDNESS, (byte) 0, 1000000));
player.setRespawnPoint(targetWorld.getSpawn()); player.setRespawnPoint(targetWorld.getSpawn());
@ -17,6 +14,7 @@ public class ChangeWorld extends MinestomThread {
player.setAllowMovement(true); player.setAllowMovement(true);
player.clearEffects(); player.clearEffects();
player.update_lastCompassUsage(); player.update_lastCompassUsage();
player.setAllowCompassUsage(true);
}); });
} }
} }

View File

@ -1,24 +0,0 @@
package eu.mhsl.craftattack.worldmuseum.util;
import eu.mhsl.craftattack.worldmuseum.worlds.World;
import net.minestom.server.MinecraftServer;
import net.minestom.server.coordinate.Point;
import net.minestom.server.instance.Chunk;
import net.minestom.server.utils.chunk.ChunkUtils;
import java.util.ArrayList;
import java.util.stream.Stream;
public class ChunkLoadUtil {
public static boolean areNearbyChunksLoaded(Point point, World world) {
ArrayList<Chunk> chunks = new ArrayList<>();
ChunkUtils.forChunksInRange(point, MinecraftServer.getChunkViewDistance(), (x , z) -> {
chunks.add(world.getChunk(x, z));
});
// Stream.of(new Conditional(point, world, () -> {world.getChunkAt(point).sendChunk();}))
return false;
}
}

View File

@ -1,8 +1,5 @@
package eu.mhsl.craftattack.worldmuseum; package eu.mhsl.craftattack.worldmuseum.util;
import eu.mhsl.craftattack.worldmuseum.worlds.World;
import net.minestom.server.coordinate.Point;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.entity.Player; import net.minestom.server.entity.Player;
import net.minestom.server.network.player.PlayerConnection; import net.minestom.server.network.player.PlayerConnection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -10,11 +7,12 @@ import org.jetbrains.annotations.Nullable;
import java.time.Duration; import java.time.Duration;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.CompletableFuture;
public class NewPlayer extends Player { public class NewPlayer extends Player {
private boolean allowMovemenrt = true;
private long lastCompassUsage = System.currentTimeMillis(); private boolean allowMovement = true;
private long lastCompassUsage = 0;
private boolean allowCompassUsage = true;
public NewPlayer(@NotNull UUID uuid, @NotNull String username, @NotNull PlayerConnection playerConnection) { public NewPlayer(@NotNull UUID uuid, @NotNull String username, @NotNull PlayerConnection playerConnection) {
super(uuid, username, playerConnection); super(uuid, username, playerConnection);
@ -25,7 +23,7 @@ public class NewPlayer extends Player {
} }
public boolean isAllowMovement() { public boolean isAllowMovement() {
return allowMovemenrt; return allowMovement;
} }
public void update_lastCompassUsage() { public void update_lastCompassUsage() {
lastCompassUsage = System.currentTimeMillis(); lastCompassUsage = System.currentTimeMillis();
@ -33,12 +31,15 @@ public class NewPlayer extends Player {
public boolean isAllowCompassUsage() { public boolean isAllowCompassUsage() {
long UsageDifference = System.currentTimeMillis() - lastCompassUsage; long UsageDifference = System.currentTimeMillis() - lastCompassUsage;
System.out.println(UsageDifference); System.out.println(UsageDifference);
long DIFFERENCE = 10000; //in Milisec long difference = 10000; //in Milisec
if (UsageDifference >= DIFFERENCE) return true; return UsageDifference >= difference && allowCompassUsage;
return false;
} }
public void setAllowMovement(boolean allowMovement) { public void setAllowMovement(boolean allowMovement) {
this.allowMovemenrt = allowMovement; this.allowMovement = allowMovement;
} }
public void setAllowCompassUsage(boolean allowCompassUsage) {
this.allowCompassUsage = allowCompassUsage;
}
} }