mc 26.1-snap-1
This commit is contained in:
1 parent
4e160d235a
commit
be1211dda7
24 files changed
+61
-60
No files matched your search
+5
-6
@@ -1,5 +1,5 @@
|
||||
plugins {
|
||||
id 'fabric-loom' version '1.13-SNAPSHOT'
|
||||
id 'net.fabricmc.fabric-loom' version "${loom_version}"
|
||||
id 'maven-publish'
|
||||
}
|
||||
|
||||
@@ -18,8 +18,7 @@ loom {
|
||||
dependencies {
|
||||
// To change the versions see the gradle.properties file
|
||||
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
||||
mappings loom.officialMojangMappings()
|
||||
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
||||
implementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
||||
|
||||
// Fabric API. This is technically optional, but you probably want it anyway.
|
||||
//modImplementation "net.fabricmc:fabric:${project.fabric_version}"
|
||||
@@ -43,7 +42,7 @@ tasks.withType(JavaCompile).configureEach {
|
||||
it.options.encoding = "UTF-8"
|
||||
|
||||
// Minecraft 1.20.5 upwards uses Java 21.
|
||||
it.options.release = 21
|
||||
it.options.release = 25
|
||||
}
|
||||
|
||||
java {
|
||||
@@ -52,8 +51,8 @@ java {
|
||||
// If you remove this line, sources will not be generated.
|
||||
withSourcesJar()
|
||||
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
sourceCompatibility = JavaVersion.VERSION_25
|
||||
targetCompatibility = JavaVersion.VERSION_25
|
||||
}
|
||||
|
||||
jar {
|
||||
|
||||
+4
-5
@@ -7,10 +7,9 @@ org.gradle.configuration-cache=false
|
||||
|
||||
# Fabric Properties
|
||||
# check https://fabricmc.net/develop/
|
||||
minecraft_version=1.21.11
|
||||
loader_version=0.18.2
|
||||
jsr305_version=3.0.2
|
||||
fabric_version=0.134.0+1.21.9
|
||||
minecraft_version=26.1-snapshot-1
|
||||
loader_version=0.18.3
|
||||
loom_version=1.14-SNAPSHOT
|
||||
|
||||
# Mod Properties
|
||||
mod_version = 1.4.193
|
||||
@@ -21,7 +20,7 @@ org.gradle.configuration-cache=false
|
||||
# The Curseforge versions "names" or ids for the main branch (comma separated: 1.16.4,1.16.5)
|
||||
# This is needed because CF uses too vague names for prereleases and release candidates
|
||||
# Can also be the version ID directly coming from https://minecraft.curseforge.com/api/game/versions?token=[API_TOKEN]
|
||||
release-curse-versions = Minecraft 1.21:1.21.11
|
||||
release-curse-versions = Minecraft 26:26.1-Snapshot
|
||||
# Whether or not to build another branch on release
|
||||
release-extra-branch = false
|
||||
# The name of the second branch to release
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
@@ -75,10 +75,10 @@ public interface FertilizableCoral extends BonemealableBlock {
|
||||
}
|
||||
else
|
||||
{
|
||||
if (worldIn.random.nextInt(10) == 0)
|
||||
if (worldIn.getRandom().nextInt(10) == 0)
|
||||
{
|
||||
BlockPos randomPos = pos.offset(worldIn.random.nextInt(16) - 8, worldIn.random.nextInt(8), worldIn.random.nextInt(16) - 8);
|
||||
if (coralBlocks.contains(worldIn.getBlockState(randomPos).getBlockHolder()))
|
||||
BlockPos randomPos = pos.offset(worldIn.getRandom().nextInt(16) - 8, worldIn.getRandom().nextInt(8), worldIn.getRandom().nextInt(16) - 8);
|
||||
if (worldIn.getBlockState(randomPos).is(BlockTags.CORAL_BLOCKS))
|
||||
{
|
||||
worldIn.setBlock(randomPos, Blocks.WET_SPONGE.defaultBlockState(), Block.UPDATE_ALL);
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ public class OptimizedExplosion
|
||||
double xInc = (xRel / len) * 0.3;
|
||||
double yInc = (yRel / len) * 0.3;
|
||||
double zInc = (zRel / len) * 0.3;
|
||||
float rand = eAccess.getLevel().random.nextFloat();
|
||||
float rand = eAccess.getLevel().getRandom().nextFloat();
|
||||
float sizeRand = (CarpetSettings.tntRandomRange >= 0 ? (float) CarpetSettings.tntRandomRange : rand);
|
||||
float size = eAccess.getRadius() * (0.7F + sizeRand * 0.6F);
|
||||
Vec3 vec3 = eAccess.getCenter();
|
||||
|
||||
@@ -22,7 +22,7 @@ public class ParticleDisplay
|
||||
Vec3 incvec = to.subtract(from).normalize();// multiply(50/sqrt(lineLengthSq));
|
||||
for (Vec3 delta = new Vec3(0.0,0.0,0.0);
|
||||
delta.lengthSqr() < lineLengthSq;
|
||||
delta = delta.add(incvec.scale(player.level().random.nextFloat())))
|
||||
delta = delta.add(incvec.scale(player.level().getRandom().nextFloat())))
|
||||
{
|
||||
player.level().sendParticles(
|
||||
player,
|
||||
|
||||
@@ -14,7 +14,7 @@ import java.util.List;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||
import net.minecraft.world.inventory.ClickType;
|
||||
import net.minecraft.world.inventory.ContainerInput;
|
||||
import net.minecraft.world.inventory.ContainerListener;
|
||||
import net.minecraft.world.inventory.DataSlot;
|
||||
|
||||
@@ -26,7 +26,7 @@ public abstract class AbstractContainerMenu_scarpetMixin implements AbstractCont
|
||||
@Shadow @Final private List<DataSlot> dataSlots;
|
||||
|
||||
@Inject(method = "doClick", at = @At("HEAD"), cancellable = true)
|
||||
private void callSlotClickListener(int slotIndex, int button, ClickType actionType, Player player, CallbackInfo ci) {
|
||||
private void callSlotClickListener(int slotIndex, int button, ContainerInput actionType, Player player, CallbackInfo ci) {
|
||||
if(!(player instanceof ServerPlayer serverPlayerEntity)) return;
|
||||
for(ContainerListener screenHandlerListener : this.containerListeners) {
|
||||
if(screenHandlerListener instanceof ScreenValue.ScarpetScreenHandlerListener scarpetScreenHandlerListener) {
|
||||
|
||||
@@ -31,10 +31,10 @@ public abstract class ArmorStand_scarpetMarkerMixin extends LivingEntity
|
||||
{
|
||||
if (!level().isClientSide())
|
||||
{
|
||||
if (getTags().contains(Auxiliary.MARKER_STRING))
|
||||
if (entityTags().contains(Auxiliary.MARKER_STRING))
|
||||
{
|
||||
String prefix = Auxiliary.MARKER_STRING+"_";
|
||||
Optional<String> owner = getTags().stream().filter(s -> s.startsWith(prefix)).findFirst();
|
||||
Optional<String> owner = entityTags().stream().filter(s -> s.startsWith(prefix)).findFirst();
|
||||
if (owner.isPresent())
|
||||
{
|
||||
String hostName = StringUtils.removeStart(owner.get(),prefix);
|
||||
|
||||
@@ -11,7 +11,7 @@ import net.minecraft.world.level.levelgen.structure.pieces.PieceGeneratorSupplie
|
||||
@Mixin(PieceGeneratorSupplier.class)
|
||||
public interface PieceGeneratorSupplier_plopMixin
|
||||
{
|
||||
@Redirect(method = "method_39845", at = @At(
|
||||
@Redirect(method = "lambda$simple$0", at = @At(
|
||||
value = "INVOKE",
|
||||
target = "java/util/function/Predicate.test(Ljava/lang/Object;)Z"
|
||||
), remap = false)
|
||||
|
||||
@@ -11,9 +11,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(ReloadCommand.class)
|
||||
public class ReloadCommand_reloadAppsMixin {
|
||||
//method_13530(Lcom/mojang/brigadier/context/CommandContext;)I
|
||||
//lambda$register$0(Lcom/mojang/brigadier/context/CommandContext;)I
|
||||
// internal of register.
|
||||
@Inject(method = "method_13530", at = @At("TAIL"), remap = false)
|
||||
@Inject(method = "lambda$register$0", at = @At("TAIL"), remap = false)
|
||||
private static void onReload(CommandContext<CommandSourceStack> context, CallbackInfoReturnable<Integer> cir)
|
||||
{
|
||||
// can't fetch here the reference to the server
|
||||
|
||||
@@ -280,7 +280,7 @@ public class ServerGamePacketListenerImpl_scarpetEventsMixin
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "method_44356", // lambda of handleChatCommand(ServerboundChatCommandPacket)
|
||||
@Inject(method = "lambda$handleChatCommand$0", // lambda of handleChatCommand(ServerboundChatCommandPacket)
|
||||
at = @At(value = "HEAD")
|
||||
)
|
||||
private void onChatCommandMessage(ServerboundChatCommandPacket serverboundChatCommandPacket, CallbackInfo ci) {
|
||||
|
||||
@@ -30,7 +30,7 @@ public class SummonCommand_lightningMixin
|
||||
ServerLevel world = (ServerLevel) entity.level();
|
||||
BlockPos at = entity.blockPosition();
|
||||
DifficultyInstance localDifficulty_1 = world.getCurrentDifficultyAt(at);
|
||||
boolean boolean_2 = world.getGameRules().get(GameRules.SPAWN_MOBS) && world.random.nextDouble() < (double)localDifficulty_1.getEffectiveDifficulty() * 0.01D;
|
||||
boolean boolean_2 = world.getGameRules().get(GameRules.SPAWN_MOBS) && world.getRandom().nextDouble() < (double)localDifficulty_1.getEffectiveDifficulty() * 0.01D;
|
||||
if (boolean_2) {
|
||||
SkeletonHorse skeletonHorseEntity_1 = EntityType.SKELETON_HORSE.create(world, EntitySpawnReason.EVENT);
|
||||
skeletonHorseEntity_1.setTrap(true);
|
||||
|
||||
@@ -961,7 +961,7 @@ public class CarpetScriptHost extends ScriptHost
|
||||
String markerName = Auxiliary.MARKER_STRING + "_" + ((getName() == null) ? "" : getName());
|
||||
for (ServerLevel world : scriptServer().server.getAllLevels())
|
||||
{
|
||||
for (Entity e : world.getEntities(EntityType.ARMOR_STAND, (as) -> as.getTags().contains(markerName)))
|
||||
for (Entity e : world.getEntities(EntityType.ARMOR_STAND, (as) -> as.entityTags().contains(markerName)))
|
||||
{
|
||||
e.discard();
|
||||
}
|
||||
@@ -1109,7 +1109,7 @@ public class CarpetScriptHost extends ScriptHost
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Creates a {@link Component} using {@link Messenger} that has the locals in the {@code line} snippet with a hover over
|
||||
* <p>Creates a {@link Component} using {@link carper.utils.Messenger} that has the locals in the {@code line} snippet with a hover over
|
||||
* tooltip with the value of the local at that location</p>
|
||||
*
|
||||
* @param line The line to find references to locals on
|
||||
|
||||
@@ -434,7 +434,7 @@ public class Auxiliary
|
||||
CarpetContext cc = (CarpetContext) c;
|
||||
int total = 0;
|
||||
String markerName = MARKER_STRING + "_" + ((cc.host.getName() == null) ? "" : cc.host.getName());
|
||||
for (Entity e : cc.level().getEntities(EntityType.ARMOR_STAND, as -> as.getTags().contains(markerName)))
|
||||
for (Entity e : cc.level().getEntities(EntityType.ARMOR_STAND, as -> as.entityTags().contains(markerName)))
|
||||
{
|
||||
total++;
|
||||
e.discard();
|
||||
|
||||
@@ -703,7 +703,7 @@ public class WorldAccess
|
||||
booleanStateTest(c, "block_tick", lv, (s, p) ->
|
||||
{
|
||||
ServerLevel w = ((CarpetContext) c).level();
|
||||
s.randomTick(w, p, w.random);
|
||||
s.randomTick(w, p, w.getRandom());
|
||||
return true;
|
||||
}));
|
||||
|
||||
@@ -713,7 +713,7 @@ public class WorldAccess
|
||||
ServerLevel w = ((CarpetContext) c).level();
|
||||
if (s.isRandomlyTicking() || s.getFluidState().isRandomlyTicking())
|
||||
{
|
||||
s.randomTick(w, p, w.random);
|
||||
s.randomTick(w, p, w.getRandom());
|
||||
}
|
||||
return true;
|
||||
}));
|
||||
|
||||
@@ -89,7 +89,7 @@ public class FeatureGenerator
|
||||
checks.set(true);
|
||||
try
|
||||
{
|
||||
return configuredFeature.place(world, world.getChunkSource().getGenerator(), world.random, pos);
|
||||
return configuredFeature.place(world, world.getChunkSource().getGenerator(), world.getRandom(), pos);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -115,7 +115,7 @@ public class FeatureGenerator
|
||||
checks.set(true);
|
||||
try
|
||||
{
|
||||
return configuredStandard.place(world, world.getChunkSource().getGenerator(), world.random, pos);
|
||||
return configuredStandard.place(world, world.getChunkSource().getGenerator(), world.getRandom(), pos);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -161,7 +161,7 @@ public class FeatureGenerator
|
||||
checks.set(true);
|
||||
try
|
||||
{
|
||||
return feature.place(w, w.getChunkSource().getGenerator(), w.random, p);
|
||||
return feature.place(w, w.getChunkSource().getGenerator(), w.getRandom(), p);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@@ -2245,7 +2245,7 @@ public class ShapeDispatcher
|
||||
int pcount = 0;
|
||||
if (distance < 100)
|
||||
{
|
||||
RandomSource rand = players.get(0).level().random;
|
||||
RandomSource rand = players.get(0).level().getRandom();
|
||||
int particles = (int) (distance / density) + 1;
|
||||
Vec3 towards = to.subtract(from);
|
||||
for (int i = 0; i < particles; i++)
|
||||
|
||||
@@ -26,7 +26,6 @@ import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.client.gui.components.debug.DebugScreenEntries;
|
||||
import net.minecraft.client.multiplayer.ClientLevel;
|
||||
import net.minecraft.client.renderer.ItemBlockRenderTypes;
|
||||
import net.minecraft.client.renderer.LightTexture;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderBuffers;
|
||||
import net.minecraft.client.renderer.rendertype.RenderType;
|
||||
@@ -43,6 +42,7 @@ import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.ListTag;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.util.LightCoordsUtil;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.util.ProblemReporter;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
@@ -406,7 +406,7 @@ public class ShapesRenderer
|
||||
int light = 0;
|
||||
if (client.level != null)
|
||||
{
|
||||
light = LightTexture.pack(
|
||||
light = LightCoordsUtil.pack(
|
||||
shape.blockLight < 0 ? client.level.getBrightness(LightLayer.BLOCK, blockPos) : shape.blockLight,
|
||||
shape.skyLight < 0 ? client.level.getBrightness(LightLayer.SKY, blockPos) : shape.skyLight
|
||||
);
|
||||
|
||||
@@ -92,6 +92,7 @@ import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.BiPredicate;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -297,6 +298,8 @@ public class EntityValue extends Value
|
||||
public static final Map<String, EntityClassDescriptor> byName = new HashMap<>()
|
||||
{{
|
||||
List<EntityType<?>> allTypes = BuiltInRegistries.ENTITY_TYPE.stream().toList();
|
||||
BiPredicate<EntityType<?>, TagKey<EntityType<?>>> is = (type, tag) -> type.builtInRegistryHolder().is(tag);
|
||||
|
||||
// nonliving types
|
||||
Set<EntityType<?>> projectiles = Set.of(
|
||||
EntityType.ARROW, EntityType.DRAGON_FIREBALL, EntityType.FIREWORK_ROCKET,
|
||||
@@ -340,7 +343,7 @@ public class EntityValue extends Value
|
||||
);
|
||||
|
||||
Set<EntityType<?>> living = allTypes.stream().filter(et ->
|
||||
!deads.contains(et) && !projectiles.contains(et) && !minecarts.contains(et) && !et.is(EntityTypeTags.BOAT)
|
||||
!deads.contains(et) && !projectiles.contains(et) && !minecarts.contains(et) && !is.test(et, EntityTypeTags.BOAT)
|
||||
).collect(Collectors.toSet());
|
||||
|
||||
Set<EntityType<?>> regular = allTypes.stream().filter(et ->
|
||||
@@ -364,17 +367,17 @@ public class EntityValue extends Value
|
||||
|
||||
// combat groups
|
||||
|
||||
put("arthropod", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (e.getType().is(EntityTypeTags.ARTHROPOD) && e.isAlive()), allTypes.stream().filter(arthropods::contains)));
|
||||
put("!arthropod", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (!e.getType().is(EntityTypeTags.ARTHROPOD) && e.isAlive()), allTypes.stream().filter(et -> !arthropods.contains(et) && living.contains(et))));
|
||||
put("arthropod", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (is.test(e.getType(), EntityTypeTags.ARTHROPOD) && e.isAlive()), allTypes.stream().filter(arthropods::contains)));
|
||||
put("!arthropod", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (!is.test(e.getType(), EntityTypeTags.ARTHROPOD) && e.isAlive()), allTypes.stream().filter(et -> !arthropods.contains(et) && living.contains(et))));
|
||||
|
||||
put("undead", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (e.getType().is(EntityTypeTags.UNDEAD) && e.isAlive()), allTypes.stream().filter(undeads::contains)));
|
||||
put("!undead", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (!e.getType().is(EntityTypeTags.UNDEAD) && e.isAlive()), allTypes.stream().filter(et -> !undeads.contains(et) && living.contains(et))));
|
||||
put("undead", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (is.test(e.getType(), EntityTypeTags.UNDEAD) && e.isAlive()), allTypes.stream().filter(undeads::contains)));
|
||||
put("!undead", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (!is.test(e.getType(), EntityTypeTags.UNDEAD) && e.isAlive()), allTypes.stream().filter(et -> !undeads.contains(et) && living.contains(et))));
|
||||
|
||||
put("aquatic", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (e.getType().is(EntityTypeTags.AQUATIC) && e.isAlive()), allTypes.stream().filter(aquatique::contains)));
|
||||
put("!aquatic", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (!e.getType().is(EntityTypeTags.AQUATIC) && e.isAlive()), allTypes.stream().filter(et -> !aquatique.contains(et) && living.contains(et))));
|
||||
put("aquatic", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (is.test(e.getType(), EntityTypeTags.AQUATIC) && e.isAlive()), allTypes.stream().filter(aquatique::contains)));
|
||||
put("!aquatic", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (!is.test(e.getType(), EntityTypeTags.AQUATIC) && e.isAlive()), allTypes.stream().filter(et -> !aquatique.contains(et) && living.contains(et))));
|
||||
|
||||
put("illager", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (e.getType().is(EntityTypeTags.ILLAGER) && e.isAlive()), allTypes.stream().filter(illagers::contains)));
|
||||
put("!illager", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (!e.getType().is(EntityTypeTags.ILLAGER) && e.isAlive()), allTypes.stream().filter(et -> !illagers.contains(et) && living.contains(et))));
|
||||
put("illager", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (is.test(e.getType(), EntityTypeTags.ILLAGER) && e.isAlive()), allTypes.stream().filter(illagers::contains)));
|
||||
put("!illager", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> (!is.test(e.getType(), EntityTypeTags.ILLAGER) && e.isAlive()), allTypes.stream().filter(et -> !illagers.contains(et) && living.contains(et))));
|
||||
|
||||
put("regular", new EntityClassDescriptor(EntityTypeTest.forClass(LivingEntity.class), e -> {
|
||||
EntityType<?> type = e.getType();
|
||||
@@ -457,17 +460,17 @@ public class EntityValue extends Value
|
||||
put("mount", (e, a) -> (e.getVehicle() != null) ? new EntityValue(e.getVehicle()) : Value.NULL);
|
||||
put("unmountable", (e, a) -> BooleanValue.of(Vanilla.Entity_isPermanentVehicle(e)));
|
||||
// deprecated
|
||||
put("tags", (e, a) -> ListValue.wrap(e.getTags().stream().map(StringValue::new)));
|
||||
put("tags", (e, a) -> ListValue.wrap(e.entityTags().stream().map(StringValue::new)));
|
||||
|
||||
put("scoreboard_tags", (e, a) -> ListValue.wrap(e.getTags().stream().map(StringValue::new)));
|
||||
put("scoreboard_tags", (e, a) -> ListValue.wrap(e.entityTags().stream().map(StringValue::new)));
|
||||
put("entity_tags", (e, a) -> {
|
||||
EntityType<?> type = e.getType();
|
||||
return ListValue.wrap(e.level().getServer().registryAccess().lookupOrThrow(Registries.ENTITY_TYPE).getTags().filter(entry -> entry.stream().anyMatch(h -> h.value() == type)).map(entry -> ValueConversions.of(entry)));
|
||||
});
|
||||
// deprecated
|
||||
put("has_tag", (e, a) -> BooleanValue.of(e.getTags().contains(a.getString())));
|
||||
put("has_tag", (e, a) -> BooleanValue.of(e.entityTags().contains(a.getString())));
|
||||
|
||||
put("has_scoreboard_tag", (e, a) -> BooleanValue.of(e.getTags().contains(a.getString())));
|
||||
put("has_scoreboard_tag", (e, a) -> BooleanValue.of(e.entityTags().contains(a.getString())));
|
||||
put("has_entity_tag", (e, a) -> {
|
||||
Optional<HolderSet.Named<EntityType<?>>> tag = e.level().getServer().registryAccess().lookupOrThrow(Registries.ENTITY_TYPE).get(TagKey.create(Registries.ENTITY_TYPE, InputValidator.identifierOf(a.getString())));
|
||||
if (tag.isEmpty())
|
||||
|
||||
@@ -211,7 +211,7 @@ public class NBTSerializableValue extends Value implements ContainerValueInterfa
|
||||
);
|
||||
if (!list.isEmpty())
|
||||
{
|
||||
inventory = (Container) list.get(world.random.nextInt(list.size()));
|
||||
inventory = (Container) list.get(world.getRandom().nextInt(list.size()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ import net.minecraft.world.inventory.BlastFurnaceMenu;
|
||||
import net.minecraft.world.inventory.BrewingStandMenu;
|
||||
import net.minecraft.world.inventory.CartographyTableMenu;
|
||||
import net.minecraft.world.inventory.ChestMenu;
|
||||
import net.minecraft.world.inventory.ClickType;
|
||||
import net.minecraft.world.inventory.ContainerInput;
|
||||
import net.minecraft.world.inventory.ContainerListener;
|
||||
import net.minecraft.world.inventory.CraftingMenu;
|
||||
import net.minecraft.world.inventory.DataSlot;
|
||||
@@ -226,11 +226,11 @@ public class ScreenValue extends Value
|
||||
screenHandler.addSlotListener(new ScarpetScreenHandlerListener()
|
||||
{
|
||||
@Override
|
||||
public boolean onSlotClick(ServerPlayer player, ClickType actionType, int slot, int button)
|
||||
public boolean onSlotClick(ServerPlayer player, ContainerInput actionType, int slot, int button)
|
||||
{
|
||||
Map<Value, Value> data = new HashMap<>();
|
||||
data.put(StringValue.of("slot"), slot == AbstractContainerMenu.SLOT_CLICKED_OUTSIDE ? Value.NULL : NumericValue.of(slot));
|
||||
if (actionType == ClickType.QUICK_CRAFT)
|
||||
if (actionType == ContainerInput.QUICK_CRAFT)
|
||||
{
|
||||
data.put(StringValue.of("quick_craft_stage"), NumericValue.of(AbstractContainerMenu.getQuickcraftHeader(button)));
|
||||
button = AbstractContainerMenu.getQuickcraftType(button);
|
||||
@@ -402,7 +402,7 @@ public class ScreenValue extends Value
|
||||
|
||||
public interface ScarpetScreenHandlerListener extends ContainerListener
|
||||
{
|
||||
boolean onSlotClick(ServerPlayer player, ClickType actionType, int slot, int button);
|
||||
boolean onSlotClick(ServerPlayer player, ContainerInput actionType, int slot, int button);
|
||||
|
||||
boolean onButtonClick(ServerPlayer player, int button);
|
||||
|
||||
@@ -546,7 +546,7 @@ public class ScreenValue extends Value
|
||||
}
|
||||
}
|
||||
|
||||
private static String actionTypeToString(ClickType actionType)
|
||||
private static String actionTypeToString(ContainerInput actionType)
|
||||
{
|
||||
return switch (actionType)
|
||||
{
|
||||
|
||||
@@ -182,7 +182,7 @@ public class PerimeterDiagnostics
|
||||
{
|
||||
el.snapTo(pos.getX() + 0.5F, pos.getY(), pos.getZ()+0.5F, 0.0F, 0.0F);
|
||||
return el.checkSpawnObstruction(worldServer) && el.checkSpawnRules(worldServer, EntitySpawnReason.NATURAL) &&
|
||||
SpawnPlacements.checkSpawnRules(el.getType(),(ServerLevel)el.level(), EntitySpawnReason.NATURAL, el.blockPosition(), el.level().random) &&
|
||||
SpawnPlacements.checkSpawnRules(el.getType(),(ServerLevel)el.level(), EntitySpawnReason.NATURAL, el.blockPosition(), el.level().getRandom()) &&
|
||||
worldServer.noCollision(el); // check collision rules once they stop fiddling with them after 1.14.1
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -439,14 +439,14 @@ public class SpawnReporter
|
||||
{
|
||||
float f = x + 0.5F;
|
||||
float f1 = z + 0.5F;
|
||||
mob.snapTo(f, y, f1, worldIn.random.nextFloat() * 360.0F, 0.0F);
|
||||
mob.snapTo(f, y, f1, worldIn.getRandom().nextFloat() * 360.0F, 0.0F);
|
||||
fits = worldIn.noCollision(mob);
|
||||
EntityType<?> etype = mob.getType();
|
||||
|
||||
for (int i = 0; i < 20; ++i)
|
||||
{
|
||||
if (
|
||||
SpawnPlacements.checkSpawnRules(etype,worldIn, EntitySpawnReason.NATURAL, pos, worldIn.random) &&
|
||||
SpawnPlacements.checkSpawnRules(etype,worldIn, EntitySpawnReason.NATURAL, pos, worldIn.getRandom()) &&
|
||||
SpawnPlacements.isSpawnPositionOk(etype, worldIn, pos) &&
|
||||
mob.checkSpawnRules(worldIn, EntitySpawnReason.NATURAL)
|
||||
// && mob.canSpawn(worldIn) // entity collisions // mostly - except ocelots
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
accessWidener v1 named
|
||||
accessWidener v1 official
|
||||
|
||||
accessible class net/minecraft/server/level/ChunkMap$DistanceManager
|
||||
accessible class net/minecraft/server/level/ThreadedLevelLightEngine$TaskType
|
||||
|
||||
Reference in new issue
Block a user