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;
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.TeleportCommand;
import eu.mhsl.craftattack.worldmuseum.listener.*;
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.NewPlayer;
import eu.mhsl.craftattack.worldmuseum.util.SignHandler;
import eu.mhsl.craftattack.worldmuseum.worlds.World;
import eu.mhsl.craftattack.worldmuseum.worlds.WorldManager;
@ -28,8 +30,6 @@ public class Main {
// Initialization
System.setProperty("minestom.chunk-view-distance", "8");
MinecraftServer minecraftServer = MinecraftServer.init();
// MinecraftServer.setChunkViewDistance(8);
//temp
MinecraftServer.getSchedulerManager().scheduleTask(new TablistUpdateTask(), TaskSchedule.tick(20), TaskSchedule.tick(20));

View File

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

View File

@ -1,8 +1,7 @@
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 net.minestom.server.entity.Player;
import net.minestom.server.event.player.PlayerUseItemEvent;
import net.minestom.server.item.ItemStack;
import java.util.function.Consumer;

View File

@ -1,6 +1,6 @@
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 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;

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.format.NamedTextColor;

View File

@ -1,15 +1,12 @@
package eu.mhsl.craftattack.worldmuseum.util;
import eu.mhsl.craftattack.worldmuseum.NewPlayer;
import eu.mhsl.craftattack.worldmuseum.worlds.World;
import net.minestom.server.potion.Potion;
import net.minestom.server.potion.PotionEffect;
import net.minestom.server.thread.MinestomThread;
public class ChangeWorld extends MinestomThread {
public ChangeWorld(NewPlayer player, World targetWorld) {
super("load_world_for_player");
public class ChangeWorld {
public static void changeWorld(NewPlayer player, World targetWorld) {
player.setAllowMovement(false);
player.setAllowCompassUsage(false);
player.addEffect(new Potion(PotionEffect.BLINDNESS, (byte) 0, 1000000));
player.setRespawnPoint(targetWorld.getSpawn());
@ -17,6 +14,7 @@ public class ChangeWorld extends MinestomThread {
player.setAllowMovement(true);
player.clearEffects();
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.network.player.PlayerConnection;
import org.jetbrains.annotations.NotNull;
@ -10,11 +7,12 @@ import org.jetbrains.annotations.Nullable;
import java.time.Duration;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
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) {
super(uuid, username, playerConnection);
@ -25,7 +23,7 @@ public class NewPlayer extends Player {
}
public boolean isAllowMovement() {
return allowMovemenrt;
return allowMovement;
}
public void update_lastCompassUsage() {
lastCompassUsage = System.currentTimeMillis();
@ -33,12 +31,15 @@ public class NewPlayer extends Player {
public boolean isAllowCompassUsage() {
long UsageDifference = System.currentTimeMillis() - lastCompassUsage;
System.out.println(UsageDifference);
long DIFFERENCE = 10000; //in Milisec
if (UsageDifference >= DIFFERENCE) return true;
return false;
long difference = 10000; //in Milisec
return UsageDifference >= difference && allowCompassUsage;
}
public void setAllowMovement(boolean allowMovement) {
this.allowMovemenrt = allowMovement;
this.allowMovement = allowMovement;
}
public void setAllowCompassUsage(boolean allowCompassUsage) {
this.allowCompassUsage = allowCompassUsage;
}
}