mirror of
https://github.com/Samsuik/Sakura.git
synced 2026-01-04 15:31:43 +00:00
Updated Upstream (Paper 1.21.6)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@a24f9b2 1.21.6 dev PaperMC/Paper@457a0a6 Bump version string and protocol version to 1.21.6 release PaperMC/Paper@245b547 Update base to 1.21.6 PaperMC/Paper@b28d77b Update Moonrise to 1.21.6 PaperMC/Paper@8318dcb Update DataConverter to 1.21.6-rc1 PaperMC/Paper@d2b1158 Set correct world access on BSL snapshots PaperMC/Paper@023e6c2 Ensure waypoints are per world PaperMC/Paper@40d5d31 Fix recursively converting JSON Text Components PaperMC/Paper@1fcc416 Implement FeatureHooks#isChunkSent for Moonrise chunk system PaperMC/Paper@e4d7178 Implement WaypointTransmitter#isChunkVisible PaperMC/Paper@8980ead Directly walk text component after converting from JSON PaperMC/Paper@5613ed6 Provide env environment variable and copy spigots sys prop for overriding default repository PaperMC/Paper@62b7f86 Avoid and discourage use of Maven Central as a CDN (#12689) PaperMC/Paper@f5534cb [ci skip] Run generators (#12691) PaperMC/Paper@4781d28 Re-add Log4j Javadocs (#12693) PaperMC/Paper@74fbcce Check type of Material in get/set stats (#12607) PaperMC/Paper@4b3f967 Improve Fix MC-44654 (#12703) PaperMC/Paper@a7dd263 Enable spigot obfuscation support (#12695) PaperMC/Paper@6a51c44 Cleanup Primed TNT Fix (#12704) PaperMC/Paper@839c6a1 Fix #11169 (#12706) PaperMC/Paper@c77d5f9 Fix MC-297591 PaperMC/Paper@219f86e Implement chunk unload delay config option PaperMC/Paper@e4eb69b Do not allow ticket level decreases to be processed asynchronously PaperMC/Paper@71b0c76 Adds support for vanilla negative explosions (#12705) PaperMC/Paper@3750927 [ci skip] Fix PermissionManager#clearPermissions() docs bad wording (#12657) PaperMC/Paper@d61a51e Add ItemType#getBurnDuration() (#12604) PaperMC/Paper@29fc853 Allow empty paths in namespaced keys (#12687) PaperMC/Paper@4419afb fix: Safely handle nanosecond overflow in ClickCallback (#12686) PaperMC/Paper@5652882 Add `isProxyEnabled` method to ServerConfiguration (#12664) PaperMC/Paper@c0dda0e Add `isForceDefaultGameMode` method (#12673) PaperMC/Paper@e714de6 Fix excess slot updates PaperMC/Paper@6d0821d [ci skip] Fix docs for Spawner class and cleanup (#12710) PaperMC/Paper@cceffe3 Release ItemType and BlockType (#12708) PaperMC/Paper@186e9e3 Relocate CommandMap#registerServerAliases() call to after lifecycle events have been run (#12601) PaperMC/Paper@5edcf6d Cleanup/command dispatching (#12713) PaperMC/Paper@803baf0 Support hidden entities in Waypoints (#12715) PaperMC/Paper@1814d8b build: publish to fill (#12717) PaperMC/Paper@e454fef Add support for private constructors in plugin main classes (#12652) PaperMC/Paper@d0e808f Move player to correct position in vehicle move packet handler PaperMC/Paper@46b4b0b Improve keepalive ping system PaperMC/Paper@38c1ddb Add and use FeatureHooks.getAllEntities PaperMC/Paper@2f083ac Ensure player entity schedulers are ticked when they are dead PaperMC/Paper@7c90c7c Optimise EntityScheduler ticking PaperMC/Paper@aa6ee44 Re-add global region scheduler tick erroneously removed in last commit PaperMC/Paper@d7510ef Fix #12722 (#12726) PaperMC/Paper@0caf75f Fix #12721 (#12725) PaperMC/Paper@bee2879 Adventure 4.23.0 (#12690) PaperMC/Paper@692e93a Fix MC-299110 PaperMC/Paper@ea10fa4 Don't mutate the position of Items for MC-4 Fix (#12702) PaperMC/Paper@aa6cd74 Remove unnecesary item check for ServerboundPlayerActionPacket RELEASE_USE_ITEM (#12668) PaperMC/Paper@c9e89f4 Expose arrow velocity in EntityShootBowEvent for mobs (#12688) PaperMC/Paper@7ec3174 Jump out of experimental phase PaperMC/Paper@4e1a255 Update try catch for command handling
This commit is contained in:
@@ -15,6 +15,7 @@ import net.minecraft.world.phys.AABB;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@@ -43,16 +44,9 @@ public abstract class SpecialisedExplosion<T extends Entity> extends ServerExplo
|
||||
|
||||
@Override
|
||||
public final void explode() {
|
||||
if (this.radius() < 0.1F) {
|
||||
// (radius < 0.1F) in bukkit is assumed to not be able to find any blocks or entities.
|
||||
for (int i = this.getExplosionCount() - 1; i >= 0; --i) {
|
||||
this.finalizeExplosionAndParticles(List.of());
|
||||
}
|
||||
} else {
|
||||
this.createBlockCache();
|
||||
this.startExplosion(); // search for blocks, impact entities, finalise if necessary
|
||||
this.clearBlockCache();
|
||||
}
|
||||
this.createBlockCache();
|
||||
this.startExplosion(); // search for blocks, impact entities, finalise if necessary
|
||||
this.clearBlockCache();
|
||||
}
|
||||
|
||||
protected final boolean requiresImpactEntities(List<BlockPos> blocks, Vec3 center) {
|
||||
@@ -87,7 +81,7 @@ public abstract class SpecialisedExplosion<T extends Entity> extends ServerExplo
|
||||
super.blockCache.clear();
|
||||
}
|
||||
|
||||
java.util.Arrays.fill(this.directMappedBlockCache, null);
|
||||
Arrays.fill(this.directMappedBlockCache, null);
|
||||
}
|
||||
|
||||
protected final void recalculateExplosionPosition() {
|
||||
|
||||
@@ -2,22 +2,24 @@ package me.samsuik.sakura.player.visibility;
|
||||
|
||||
import it.unimi.dsi.fastutil.objects.Reference2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import net.minecraft.world.level.storage.ValueInput;
|
||||
import net.minecraft.world.level.storage.ValueOutput;
|
||||
import org.jspecify.annotations.NonNull;
|
||||
|
||||
public final class PlayerVisibilitySettings implements VisibilitySettings {
|
||||
private static final String SETTINGS_COMPOUND_TAG = "clientVisibilitySettings";
|
||||
private final Reference2ObjectMap<VisibilityType, VisibilityState> visibilityStates = new Reference2ObjectOpenHashMap<>();
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public @NonNull VisibilityState get(@NonNull VisibilityType type) {
|
||||
public VisibilityState get(@NonNull VisibilityType type) {
|
||||
VisibilityState state = this.visibilityStates.get(type);
|
||||
return state != null ? state : type.getDefault();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public @NotNull VisibilityState set(@NonNull VisibilityType type, @NonNull VisibilityState state) {
|
||||
public VisibilityState set(@NonNull VisibilityType type, @NonNull VisibilityState state) {
|
||||
if (type.isDefault(state)) {
|
||||
this.visibilityStates.remove(type);
|
||||
} else {
|
||||
@@ -26,8 +28,9 @@ public final class PlayerVisibilitySettings implements VisibilitySettings {
|
||||
return state;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public @NonNull VisibilityState currentState() {
|
||||
public VisibilityState currentState() {
|
||||
int modifiedCount = this.visibilityStates.size();
|
||||
if (modifiedCount == 0) {
|
||||
return VisibilityState.ON;
|
||||
@@ -43,18 +46,18 @@ public final class PlayerVisibilitySettings implements VisibilitySettings {
|
||||
return !this.visibilityStates.isEmpty();
|
||||
}
|
||||
|
||||
public void loadData(@NonNull CompoundTag tag) {
|
||||
CompoundTag settingsTag = tag.getCompoundOrEmpty(SETTINGS_COMPOUND_TAG);
|
||||
for (VisibilityType type : VisibilityTypes.types()) {
|
||||
String typeKey = type.key();
|
||||
String stateName = settingsTag.getStringOr(typeKey, type.getDefault().name());
|
||||
this.set(type, VisibilityState.valueOf(stateName));
|
||||
}
|
||||
public void loadData(@NonNull ValueInput input) {
|
||||
input.child(SETTINGS_COMPOUND_TAG).ifPresent(settings -> {
|
||||
for (VisibilityType type : VisibilityTypes.types()) {
|
||||
String typeKey = type.key();
|
||||
String stateName = settings.getStringOr(typeKey, type.getDefault().name());
|
||||
this.set(type, VisibilityState.valueOf(stateName));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void saveData(@NonNull CompoundTag tag) {
|
||||
CompoundTag settingsTag = new CompoundTag();
|
||||
this.visibilityStates.forEach((t, s) -> settingsTag.putString(t.key(), s.name()));
|
||||
tag.put(SETTINGS_COMPOUND_TAG, settingsTag);
|
||||
public void saveData(@NonNull ValueOutput output) {
|
||||
ValueOutput settings = output.child(SETTINGS_COMPOUND_TAG);
|
||||
this.visibilityStates.forEach((type, state) -> settings.putString(type.key(), state.name()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user