Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions paper-api/src/main/java/org/bukkit/entity/Player.java
Original file line number Diff line number Diff line change
Expand Up @@ -3344,8 +3344,7 @@ default <T> void spawnParticle(Particle particle, Location location, int count,
/**
* Get the player's current client side view distance.
* <br>
* Will default to the server view distance if the client has not yet
* communicated this information,
* Will default to 2 if the client has not yet communicated this information.
*
* @return client view distance as above
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- a/net/minecraft/server/network/EventLoopGroupHolder.java
+++ b/net/minecraft/server/network/EventLoopGroupHolder.java
@@ -48,11 +_,20 @@
@@ -48,19 +_,39 @@
return LocalIoHandler.newFactory();
}
};
Expand All @@ -19,31 +19,34 @@

+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - use variant with address param
public static EventLoopGroupHolder remote(boolean tryNativeTransport) {
+ // Paper start - Unix domain socket support
+ return remote(null, tryNativeTransport);
+ }
+ public static EventLoopGroupHolder remote(java.net.@Nullable SocketAddress address, boolean tryNativeTransport) {
+ // Paper end - Unix domain socket support
if (tryNativeTransport) {
if (KQueue.isAvailable()) {
@@ -66,6 +_,25 @@
return KQUEUE;
}

return NIO;
}
+
+ // Paper start - Unix domain socket support
+ public static EventLoopGroupHolder remote(java.net.SocketAddress address, boolean tryNativeTransport) {
+ if (tryNativeTransport) {
+ if (KQueue.isAvailable()) {
+ return KQUEUE;
+ }
+
+ if (Epoll.isAvailable()) {
if (Epoll.isAvailable()) {
- return EPOLL;
+ // Paper start - Unix domain socket support
+ if (address instanceof io.netty.channel.unix.DomainSocketAddress) {
+ return EPOLL_UNIX_DOMAIN;
+ } else {
+ return EPOLL;
+ }
+ }
+ }
+ return NIO;
+ }
+ // Paper end - Unix domain socket support
+ // Paper end - Unix domain socket support
}
}

@@ -78,7 +_,7 @@
}

private ThreadFactory createThreadFactory() {
- return new ThreadFactoryBuilder().setNameFormat("Netty " + this.type + " IO #%d").setDaemon(true).build();
+ return new ThreadFactoryBuilder().setNameFormat("Netty " + this.type + " IO #%d").setDaemon(true).setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build(); // Paper
}

public static EventLoopGroupHolder local() {
return LOCAL;
protected abstract IoHandlerFactory ioHandlerFactory();
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
import net.minecraft.world.flag.FeatureFlagSet;
import net.minecraft.world.flag.FeatureFlags;
import org.bukkit.FeatureFlag;
import org.bukkit.GameRule;
import org.bukkit.craftbukkit.CraftGameRule;
import org.bukkit.craftbukkit.entity.CraftEntityType;
import org.bukkit.craftbukkit.potion.CraftPotionType;
import org.bukkit.entity.EntityType;
Expand Down Expand Up @@ -49,8 +47,6 @@ static FeatureElement getFeatureElement(final FeatureDependant dependant) {
return CraftEntityType.bukkitToMinecraft(entityType);
} else if (dependant instanceof final PotionType potionType) {
return CraftPotionType.bukkitToMinecraft(potionType);
} else if (dependant instanceof final GameRule<?> gameRule) {
return () -> CraftGameRule.bukkitToMinecraft(gameRule).requiredFeatures();
} else {
throw new IllegalArgumentException(dependant + " is not a valid feature dependant");
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.bukkit.craftbukkit;

import com.mojang.serialization.DataResult;
import io.papermc.paper.util.Holderable;
import io.papermc.paper.world.flag.PaperFeatureDependent;
import java.util.function.BiFunction;
import java.util.function.Function;
import net.minecraft.core.Holder;
Expand All @@ -11,7 +11,7 @@
import org.jspecify.annotations.NullMarked;

@NullMarked
public class CraftGameRule<T> extends GameRule<T> implements Holderable<net.minecraft.world.level.gamerules.GameRule<T>> {
public class CraftGameRule<T> extends GameRule<T> implements PaperFeatureDependent<net.minecraft.world.level.gamerules.GameRule<T>> {

public static final BiFunction<String, DataResult.Error<?>, IllegalArgumentException> INVALID_VALUE = (value, error) -> {
return new IllegalArgumentException("Invalid value: %s (%s)".formatted(value, error.message()));
Expand Down Expand Up @@ -44,22 +44,22 @@ public Holder<net.minecraft.world.level.gamerules.GameRule<T>> getHolder() {

@Override
public NamespacedKey getKey() {
return Holderable.super.getKey();
return PaperFeatureDependent.super.getKey();
}

@Override
public int hashCode() {
return Holderable.super.implHashCode();
return PaperFeatureDependent.super.implHashCode();
}

@Override
public boolean equals(final Object obj) {
return Holderable.super.implEquals(obj);
return PaperFeatureDependent.super.implEquals(obj);
}

@Override
public String toString() {
return Holderable.super.implToString();
return PaperFeatureDependent.super.implToString();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2695,7 +2695,7 @@ public org.bukkit.advancement.AdvancementProgress getAdvancementProgress(org.buk

@Override
public int getClientViewDistance() {
return (this.getHandle().requestedViewDistance() == 0) ? Bukkit.getViewDistance() : this.getHandle().requestedViewDistance();
return this.getHandle().requestedViewDistance();
}

// Paper start
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.bukkit.craftbukkit.entity;

import static org.junit.jupiter.api.Assertions.*;
import java.io.File;
import java.io.IOException;
import java.net.URI;
Expand Down Expand Up @@ -42,7 +41,6 @@
import org.bukkit.entity.Hanging;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Illager;
import org.bukkit.entity.LingeringPotion;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Minecart;
import org.bukkit.entity.Mob;
Expand All @@ -54,7 +52,6 @@
import org.bukkit.entity.Sittable;
import org.bukkit.entity.SizedFireball;
import org.bukkit.entity.Spellcaster;
import org.bukkit.entity.SplashPotion;
import org.bukkit.entity.Steerable;
import org.bukkit.entity.Tameable;
import org.bukkit.entity.ThrowableProjectile;
Expand All @@ -70,6 +67,9 @@
import org.junit.jupiter.params.provider.EnumSource;
import org.junit.jupiter.params.provider.MethodSource;

import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;

@AllFeatures
public class EntityTypesTest {

Expand All @@ -79,6 +79,7 @@ public class EntityTypesTest {
AbstractArrow.class,
AbstractCow.class,
AbstractHorse.class,
AbstractNautilus.class,
AbstractSkeleton.class,
AbstractVillager.class,
AbstractWindCharge.class,
Expand Down Expand Up @@ -123,8 +124,7 @@ public class EntityTypesTest {
ThrownPotion.class,
TippedArrow.class,
Vehicle.class,
WaterMob.class,
AbstractNautilus.class
WaterMob.class
);

static {
Expand Down
Loading