Merge branch 'main' of gitlab.com:distant-horizons-team/distant-horizons-core
This commit is contained in:
@@ -413,7 +413,7 @@ public abstract class AbstractDhServerLevel extends AbstractDhLevel implements I
|
||||
CompletableFuture.runAsync(() ->
|
||||
{
|
||||
FullDataPayload payload = new FullDataPayload(data);
|
||||
for (ServerPlayerState serverPlayerState : this.serverPlayerStateManager.getConnectedPlayers())
|
||||
for (ServerPlayerState serverPlayerState : this.serverPlayerStateManager.getReadyPlayers())
|
||||
{
|
||||
if (serverPlayerState.getServerPlayer().getLevel() != this.serverLevelWrapper)
|
||||
{
|
||||
@@ -426,7 +426,7 @@ public abstract class AbstractDhServerLevel extends AbstractDhLevel implements I
|
||||
}
|
||||
|
||||
Vec3d playerPosition = serverPlayerState.getServerPlayer().getPosition();
|
||||
int distanceFromPlayer = DhSectionPos.getManhattanBlockDistance(data.getPos(), new DhBlockPos2D((int) playerPosition.x, (int) playerPosition.z)) / 16;
|
||||
int distanceFromPlayer = DhSectionPos.getChebyshevBlockDistance(data.getPos(), new DhBlockPos2D((int) playerPosition.x, (int) playerPosition.z)) / 16;
|
||||
if (distanceFromPlayer >= serverPlayerState.getServerPlayer().getViewDistance()
|
||||
&& distanceFromPlayer <= serverPlayerState.sessionConfig.getRenderDistanceRadius())
|
||||
{
|
||||
|
||||
+1
@@ -32,6 +32,7 @@ public class ServerPlayerState implements Closeable
|
||||
|
||||
@NotNull
|
||||
public final SessionConfig sessionConfig = new SessionConfig();
|
||||
public boolean isReady() { return this.sessionConfig.constrainingConfig != null; }
|
||||
|
||||
private final ConcurrentHashMap<AbstractDhServerLevel, RateLimiterSet> rateLimiterSets = new ConcurrentHashMap<>();
|
||||
public RateLimiterSet getRateLimiterSet(AbstractDhServerLevel level) { return this.rateLimiterSets.computeIfAbsent(level, ignored -> new RateLimiterSet()); }
|
||||
|
||||
+3
-1
@@ -4,6 +4,7 @@ import com.seibel.distanthorizons.core.network.messages.AbstractNetworkMessage;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Queue;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
@@ -80,7 +81,8 @@ public class ServerPlayerStateManager
|
||||
|
||||
@Nullable
|
||||
public ServerPlayerState getConnectedPlayer(IServerPlayerWrapper player) { return this.connectedPlayerStateByPlayerWrapper.get(player); }
|
||||
public Iterable<ServerPlayerState> getConnectedPlayers() { return this.connectedPlayerStateByPlayerWrapper.values(); }
|
||||
public Collection<ServerPlayerState> getConnectedPlayers() { return this.connectedPlayerStateByPlayerWrapper.values(); }
|
||||
public Iterable<ServerPlayerState> getReadyPlayers() { return this.getConnectedPlayers().stream().filter(ServerPlayerState::isReady)::iterator; }
|
||||
|
||||
|
||||
private static class MessageQueueState
|
||||
|
||||
@@ -261,6 +261,14 @@ public class DhSectionPos
|
||||
+ Math.abs(getCenterBlockPosZ(pos) - blockPos.z);
|
||||
}
|
||||
|
||||
public static int getChebyshevBlockDistance(long pos, DhBlockPos2D blockPos)
|
||||
{
|
||||
return Math.max(
|
||||
Math.abs(getCenterBlockPosX(pos) - blockPos.x),
|
||||
Math.abs(getCenterBlockPosZ(pos) - blockPos.z)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//==================//
|
||||
|
||||
Reference in New Issue
Block a user