clean up and rework compassUsageTimer
This commit is contained in:
parent
65e3195128
commit
3817880030
@ -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));
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
|
@ -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;
|
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user