25w20a
This commit is contained in:
1 parent
74e8a8d2ec
commit
52cf8c027a
11 files changed
+38
-38
No files matched your search
+1
-1
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check https://fabricmc.net/develop/
|
# check https://fabricmc.net/develop/
|
||||||
minecraft_version=25w19a
|
minecraft_version=25w20a
|
||||||
loader_version=0.16.10
|
loader_version=0.16.10
|
||||||
jsr305_version=3.0.2
|
jsr305_version=3.0.2
|
||||||
fabric_version=0.119.5+1.21.5
|
fabric_version=0.119.5+1.21.5
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class PerimeterInfoCommand
|
|||||||
BlockPosArgument.getSpawnablePos(c, "center position"),
|
BlockPosArgument.getSpawnablePos(c, "center position"),
|
||||||
null)).
|
null)).
|
||||||
then(argument("mob", resource(commandBuildContext, Registries.ENTITY_TYPE)).
|
then(argument("mob", resource(commandBuildContext, Registries.ENTITY_TYPE)).
|
||||||
suggests(SuggestionProviders.SUMMONABLE_ENTITIES).
|
suggests(SuggestionProviders.cast(SuggestionProviders.SUMMONABLE_ENTITIES)).
|
||||||
executes( (c) -> perimeterDiagnose(
|
executes( (c) -> perimeterDiagnose(
|
||||||
c.getSource(),
|
c.getSource(),
|
||||||
BlockPosArgument.getSpawnablePos(c, "center position"),
|
BlockPosArgument.getSpawnablePos(c, "center position"),
|
||||||
|
|||||||
@@ -1,20 +1,24 @@
|
|||||||
package carpet.mixins;
|
package carpet.mixins;
|
||||||
|
|
||||||
import carpet.CarpetSettings;
|
import carpet.CarpetSettings;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.Commands;
|
||||||
|
import net.minecraft.commands.PermissionSource;
|
||||||
import net.minecraft.server.commands.PerfCommand;
|
import net.minecraft.server.commands.PerfCommand;
|
||||||
|
import net.minecraft.server.commands.PermissionCheck;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
|
||||||
|
|
||||||
@Mixin(PerfCommand.class)
|
@Mixin(PerfCommand.class)
|
||||||
public class PerfCommand_permissionMixin
|
public class PerfCommand_permissionMixin
|
||||||
{
|
{
|
||||||
@Inject(method = "method_37340", at = @At("HEAD"), cancellable = true, remap = false)
|
@Redirect(method = "register", at = @At(
|
||||||
private static void canRun(CommandSourceStack source, CallbackInfoReturnable<Boolean> cir)
|
value = "INVOKE",
|
||||||
|
target = "Lnet/minecraft/commands/Commands;hasPermission(I)Lnet/minecraft/server/commands/PermissionCheck;"
|
||||||
|
))
|
||||||
|
private static PermissionCheck<PermissionSource> canRun(int i)
|
||||||
{
|
{
|
||||||
cir.setReturnValue(source.hasPermission(CarpetSettings.perfPermissionLevel));
|
return Commands.hasPermission(CarpetSettings.perfPermissionLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -25,9 +25,9 @@ public class SummonCommand_lightningMixin
|
|||||||
private static BlockPos addRiders(Entity entity)
|
private static BlockPos addRiders(Entity entity)
|
||||||
{
|
{
|
||||||
// [CM] SummonNaturalLightning - if statement around
|
// [CM] SummonNaturalLightning - if statement around
|
||||||
if (CarpetSettings.summonNaturalLightning && entity instanceof LightningBolt && !entity.getCommandSenderWorld().isClientSide)
|
if (CarpetSettings.summonNaturalLightning && entity instanceof LightningBolt && !entity.level().isClientSide)
|
||||||
{
|
{
|
||||||
ServerLevel world = (ServerLevel) entity.getCommandSenderWorld();
|
ServerLevel world = (ServerLevel) entity.level();
|
||||||
BlockPos at = entity.blockPosition();
|
BlockPos at = entity.blockPosition();
|
||||||
DifficultyInstance localDifficulty_1 = world.getCurrentDifficultyAt(at);
|
DifficultyInstance localDifficulty_1 = world.getCurrentDifficultyAt(at);
|
||||||
boolean boolean_2 = world.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && world.random.nextDouble() < (double)localDifficulty_1.getEffectiveDifficulty() * 0.01D;
|
boolean boolean_2 = world.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && world.random.nextDouble() < (double)localDifficulty_1.getEffectiveDifficulty() * 0.01D;
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ public abstract class Villager_aiMixin extends AbstractVillager
|
|||||||
if (bedPos == null || bedPos.dimension() != level().dimension()) // get Dimension
|
if (bedPos == null || bedPos.dimension() != level().dimension()) // get Dimension
|
||||||
{
|
{
|
||||||
setUnhappy();
|
setUnhappy();
|
||||||
((ServerLevel) getCommandSenderWorld()).sendParticles(new BlockParticleOption(ParticleTypes.BLOCK_MARKER, Blocks.BARRIER.defaultBlockState()), getX(), getY() + getEyeHeight() + 1, getZ(), 1, 0.1, 0.1, 0.1, 0.0);
|
((ServerLevel) level()).sendParticles(new BlockParticleOption(ParticleTypes.BLOCK_MARKER, Blocks.BARRIER.defaultBlockState()), getX(), getY() + getEyeHeight() + 1, getZ(), 1, 0.1, 0.1, 0.1, 0.0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -142,7 +142,7 @@ public abstract class Villager_aiMixin extends AbstractVillager
|
|||||||
}
|
}
|
||||||
else if (itemStack_1.getItem() instanceof BedItem)
|
else if (itemStack_1.getItem() instanceof BedItem)
|
||||||
{
|
{
|
||||||
List<PoiRecord> list_1 = ((ServerLevel) getCommandSenderWorld()).getPoiManager().getInRange(
|
List<PoiRecord> list_1 = ((ServerLevel) level()).getPoiManager().getInRange(
|
||||||
type -> type.is(PoiTypes.HOME),
|
type -> type.is(PoiTypes.HOME),
|
||||||
blockPosition(),
|
blockPosition(),
|
||||||
48, PoiManager.Occupancy.ANY).toList();
|
48, PoiManager.Occupancy.ANY).toList();
|
||||||
@@ -151,16 +151,16 @@ public abstract class Villager_aiMixin extends AbstractVillager
|
|||||||
Vec3 pv = Vec3.atCenterOf(poi.getPos());
|
Vec3 pv = Vec3.atCenterOf(poi.getPos());
|
||||||
if (!poi.hasSpace())
|
if (!poi.hasSpace())
|
||||||
{
|
{
|
||||||
((ServerLevel) getCommandSenderWorld()).sendParticles(ParticleTypes.HAPPY_VILLAGER,
|
((ServerLevel) level()).sendParticles(ParticleTypes.HAPPY_VILLAGER,
|
||||||
pv.x, pv.y+1.5, pv.z,
|
pv.x, pv.y+1.5, pv.z,
|
||||||
50, 0.1, 0.3, 0.1, 0.0);
|
50, 0.1, 0.3, 0.1, 0.0);
|
||||||
}
|
}
|
||||||
else if (canReachHome((Villager)(Object)this, poi.getPos(), poi))
|
else if (canReachHome((Villager)(Object)this, poi.getPos(), poi))
|
||||||
((ServerLevel) getCommandSenderWorld()).sendParticles(ParticleTypes.END_ROD,
|
((ServerLevel) level()).sendParticles(ParticleTypes.END_ROD,
|
||||||
pv.x, pv.y+1, pv.z,
|
pv.x, pv.y+1, pv.z,
|
||||||
50, 0.1, 0.3, 0.1, 0.0);
|
50, 0.1, 0.3, 0.1, 0.0);
|
||||||
else
|
else
|
||||||
((ServerLevel) getCommandSenderWorld()).sendParticles(new BlockParticleOption(ParticleTypes.BLOCK_MARKER, Blocks.BARRIER.defaultBlockState()),
|
((ServerLevel) level()).sendParticles(new BlockParticleOption(ParticleTypes.BLOCK_MARKER, Blocks.BARRIER.defaultBlockState()),
|
||||||
pv.x, pv.y+1, pv.z,
|
pv.x, pv.y+1, pv.z,
|
||||||
1, 0.1, 0.1, 0.1, 0.0);
|
1, 0.1, 0.1, 0.1, 0.0);
|
||||||
}
|
}
|
||||||
@@ -186,7 +186,7 @@ public abstract class Villager_aiMixin extends AbstractVillager
|
|||||||
{
|
{
|
||||||
if (MobAI.isTracking(this, MobAI.TrackingType.IRON_GOLEM_SPAWNING))
|
if (MobAI.isTracking(this, MobAI.TrackingType.IRON_GOLEM_SPAWNING))
|
||||||
{
|
{
|
||||||
((ServerLevel) getCommandSenderWorld()).sendParticles(new BlockParticleOption(ParticleTypes.BLOCK_MARKER, Blocks.BARRIER.defaultBlockState()), getX(), getY()+3, getZ(), 1, 0.1, 0.1, 0.1, 0.0);
|
((ServerLevel) level()).sendParticles(new BlockParticleOption(ParticleTypes.BLOCK_MARKER, Blocks.BARRIER.defaultBlockState()), getX(), getY()+3, getZ(), 1, 0.1, 0.1, 0.1, 0.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ public abstract class CommandArgument
|
|||||||
(c, p) -> StringValue.of(EntityAnchorArgument.getAnchor(c, p).name()), false
|
(c, p) -> StringValue.of(EntityAnchorArgument.getAnchor(c, p).name()), false
|
||||||
),
|
),
|
||||||
new VanillaUnconfigurableArgument("entitytype", c -> ResourceArgument.resource(c, Registries.ENTITY_TYPE),
|
new VanillaUnconfigurableArgument("entitytype", c -> ResourceArgument.resource(c, Registries.ENTITY_TYPE),
|
||||||
(c, p) -> ValueConversions.of(ResourceArgument.getSummonableEntityType(c, p).key()), SuggestionProviders.SUMMONABLE_ENTITIES
|
(c, p) -> ValueConversions.of(ResourceArgument.getSummonableEntityType(c, p).key()), SuggestionProviders.cast(SuggestionProviders.SUMMONABLE_ENTITIES)
|
||||||
),
|
),
|
||||||
new VanillaUnconfigurableArgument("floatrange", RangeArgument::floatRange,
|
new VanillaUnconfigurableArgument("floatrange", RangeArgument::floatRange,
|
||||||
(c, p) -> ValueConversions.of(c.getArgument(p, MinMaxBounds.Doubles.class)), true
|
(c, p) -> ValueConversions.of(c.getArgument(p, MinMaxBounds.Doubles.class)), true
|
||||||
@@ -205,12 +205,8 @@ public abstract class CommandArgument
|
|||||||
|
|
||||||
new VanillaUnconfigurableArgument("recipe", Registries.RECIPE),
|
new VanillaUnconfigurableArgument("recipe", Registries.RECIPE),
|
||||||
new VanillaUnconfigurableArgument("advancement", Registries.ADVANCEMENT),
|
new VanillaUnconfigurableArgument("advancement", Registries.ADVANCEMENT),
|
||||||
new VanillaUnconfigurableArgument("lootcondition", ResourceLocationArgument::id,
|
new VanillaUnconfigurableArgument("lootcondition", Registries.LOOT_CONDITION_TYPE),
|
||||||
(c, p) -> ValueConversions.of(ResourceLocationArgument.getId(c, p)), (ctx, builder) -> SharedSuggestionProvider.suggestResource(ctx.getSource().getServer().reloadableRegistries().getKeys(Registries.LOOT_CONDITION_TYPE), builder)
|
new VanillaUnconfigurableArgument("loottable", Registries.LOOT_TABLE),
|
||||||
),
|
|
||||||
new VanillaUnconfigurableArgument("loottable", ResourceLocationArgument::id,
|
|
||||||
(c, p) -> ValueConversions.of(ResourceLocationArgument.getId(c, p)), LootCommand.SUGGEST_LOOT_TABLE
|
|
||||||
),
|
|
||||||
new VanillaUnconfigurableArgument("attribute", Registries.ATTRIBUTE),
|
new VanillaUnconfigurableArgument("attribute", Registries.ATTRIBUTE),
|
||||||
|
|
||||||
new VanillaUnconfigurableArgument("boss", ResourceLocationArgument::id,
|
new VanillaUnconfigurableArgument("boss", ResourceLocationArgument::id,
|
||||||
@@ -233,7 +229,7 @@ public abstract class CommandArgument
|
|||||||
}, (ctx, builder) -> SharedSuggestionProvider.suggestResource(ctx.getSource().getServer().registryAccess().lookupOrThrow(Registries.BIOME).keySet(), builder)
|
}, (ctx, builder) -> SharedSuggestionProvider.suggestResource(ctx.getSource().getServer().registryAccess().lookupOrThrow(Registries.BIOME).keySet(), builder)
|
||||||
),
|
),
|
||||||
new VanillaUnconfigurableArgument("sound", ResourceLocationArgument::id,
|
new VanillaUnconfigurableArgument("sound", ResourceLocationArgument::id,
|
||||||
(c, p) -> ValueConversions.of(ResourceLocationArgument.getId(c, p)), SuggestionProviders.AVAILABLE_SOUNDS
|
(c, p) -> ValueConversions.of(ResourceLocationArgument.getId(c, p)), SuggestionProviders.cast(SuggestionProviders.AVAILABLE_SOUNDS)
|
||||||
),
|
),
|
||||||
new VanillaUnconfigurableArgument("storekey", ResourceLocationArgument::id,
|
new VanillaUnconfigurableArgument("storekey", ResourceLocationArgument::id,
|
||||||
(c, p) -> ValueConversions.of(ResourceLocationArgument.getId(c, p)), (ctx, builder) -> SharedSuggestionProvider.suggestResource(ctx.getSource().getServer().getCommandStorage().keys(), builder)
|
(c, p) -> ValueConversions.of(ResourceLocationArgument.getId(c, p)), (ctx, builder) -> SharedSuggestionProvider.suggestResource(ctx.getSource().getServer().getCommandStorage().keys(), builder)
|
||||||
|
|||||||
@@ -573,7 +573,7 @@ public class EntityValue extends Value
|
|||||||
{
|
{
|
||||||
return Value.NULL;
|
return Value.NULL;
|
||||||
}
|
}
|
||||||
return ValueConversions.fromPath((ServerLevel) e.getCommandSenderWorld(), path);
|
return ValueConversions.fromPath((ServerLevel) e.level(), path);
|
||||||
}
|
}
|
||||||
return Value.NULL;
|
return Value.NULL;
|
||||||
});
|
});
|
||||||
@@ -624,7 +624,7 @@ public class EntityValue extends Value
|
|||||||
{
|
{
|
||||||
return StringValue.of(moddedType);
|
return StringValue.of(moddedType);
|
||||||
}
|
}
|
||||||
MinecraftServer server = p.getCommandSenderWorld().getServer();
|
MinecraftServer server = p.level().getServer();
|
||||||
if (server.isDedicatedServer())
|
if (server.isDedicatedServer())
|
||||||
{
|
{
|
||||||
return new StringValue("multiplayer");
|
return new StringValue("multiplayer");
|
||||||
@@ -829,7 +829,7 @@ public class EntityValue extends Value
|
|||||||
case MISS:
|
case MISS:
|
||||||
return Value.NULL;
|
return Value.NULL;
|
||||||
case BLOCK:
|
case BLOCK:
|
||||||
return new BlockValue((ServerLevel) e.getCommandSenderWorld(), ((BlockHitResult) hitres).getBlockPos());
|
return new BlockValue((ServerLevel) e.level(), ((BlockHitResult) hitres).getBlockPos());
|
||||||
case ENTITY:
|
case ENTITY:
|
||||||
return new EntityValue(((EntityHitResult) hitres).getEntity());
|
return new EntityValue(((EntityHitResult) hitres).getEntity());
|
||||||
}
|
}
|
||||||
@@ -927,7 +927,7 @@ public class EntityValue extends Value
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
((ServerLevel) e.getCommandSenderWorld()).getChunkSource().broadcastAndSend(e, ClientboundEntityPositionSyncPacket.of(e));
|
((ServerLevel) e.level()).getChunkSource().broadcastAndSend(e, ClientboundEntityPositionSyncPacket.of(e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1376,7 +1376,7 @@ public class EntityValue extends Value
|
|||||||
List<Value> params = lv.getItems();
|
List<Value> params = lv.getItems();
|
||||||
Vector3Argument blockLocator = Vector3Argument.findIn(params, 0, false, false);
|
Vector3Argument blockLocator = Vector3Argument.findIn(params, 0, false, false);
|
||||||
BlockPos pos = BlockPos.containing(blockLocator.vec);
|
BlockPos pos = BlockPos.containing(blockLocator.vec);
|
||||||
ResourceKey<Level> world = spe.getCommandSenderWorld().dimension();
|
ResourceKey<Level> world = spe.level().dimension();
|
||||||
float angle = spe.getYHeadRot();
|
float angle = spe.getYHeadRot();
|
||||||
boolean forced = false;
|
boolean forced = false;
|
||||||
if (params.size() > blockLocator.offset)
|
if (params.size() > blockLocator.offset)
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ public class ValueConversions
|
|||||||
{
|
{
|
||||||
if (dimensionValue instanceof EntityValue)
|
if (dimensionValue instanceof EntityValue)
|
||||||
{
|
{
|
||||||
return ((EntityValue) dimensionValue).getEntity().getCommandSenderWorld();
|
return ((EntityValue) dimensionValue).getEntity().level();
|
||||||
}
|
}
|
||||||
else if (dimensionValue instanceof BlockValue bv)
|
else if (dimensionValue instanceof BlockValue bv)
|
||||||
{
|
{
|
||||||
@@ -265,7 +265,7 @@ public class ValueConversions
|
|||||||
}
|
}
|
||||||
if (v instanceof final BlockPos pos)
|
if (v instanceof final BlockPos pos)
|
||||||
{
|
{
|
||||||
return new BlockValue(null, (ServerLevel) e.getCommandSenderWorld(), pos);
|
return new BlockValue(null, (ServerLevel) e.level(), pos);
|
||||||
}
|
}
|
||||||
if (v instanceof final Number number)
|
if (v instanceof final Number number)
|
||||||
{
|
{
|
||||||
@@ -277,7 +277,7 @@ public class ValueConversions
|
|||||||
}
|
}
|
||||||
if (v instanceof final UUID uuid)
|
if (v instanceof final UUID uuid)
|
||||||
{
|
{
|
||||||
return ofUUID((ServerLevel) e.getCommandSenderWorld(), uuid);
|
return ofUUID((ServerLevel) e.level(), uuid);
|
||||||
}
|
}
|
||||||
if (v instanceof final DamageSource source)
|
if (v instanceof final DamageSource source)
|
||||||
{
|
{
|
||||||
@@ -288,16 +288,16 @@ public class ValueConversions
|
|||||||
}
|
}
|
||||||
if (v instanceof final Path path)
|
if (v instanceof final Path path)
|
||||||
{
|
{
|
||||||
return fromPath((ServerLevel) e.getCommandSenderWorld(), path);
|
return fromPath((ServerLevel) e.level(), path);
|
||||||
}
|
}
|
||||||
if (v instanceof final PositionTracker tracker)
|
if (v instanceof final PositionTracker tracker)
|
||||||
{
|
{
|
||||||
return new BlockValue(null, (ServerLevel) e.getCommandSenderWorld(), tracker.currentBlockPosition());
|
return new BlockValue(null, (ServerLevel) e.level(), tracker.currentBlockPosition());
|
||||||
}
|
}
|
||||||
if (v instanceof final WalkTarget target)
|
if (v instanceof final WalkTarget target)
|
||||||
{
|
{
|
||||||
return ListValue.of(
|
return ListValue.of(
|
||||||
new BlockValue(null, (ServerLevel) e.getCommandSenderWorld(), target.getTarget().currentBlockPosition()),
|
new BlockValue(null, (ServerLevel) e.level(), target.getTarget().currentBlockPosition()),
|
||||||
new NumericValue(target.getSpeedModifier()),
|
new NumericValue(target.getSpeedModifier()),
|
||||||
new NumericValue(target.getCloseEnoughDist())
|
new NumericValue(target.getCloseEnoughDist())
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class MobAI
|
|||||||
|
|
||||||
public static boolean isTracking(Entity e, TrackingType type)
|
public static boolean isTracking(Entity e, TrackingType type)
|
||||||
{
|
{
|
||||||
if (e.getCommandSenderWorld().isClientSide())
|
if (e.level().isClientSide())
|
||||||
return false;
|
return false;
|
||||||
Set<TrackingType> currentTrackers = aiTrackers.get(e.getType());
|
Set<TrackingType> currentTrackers = aiTrackers.get(e.getType());
|
||||||
if (currentTrackers == null)
|
if (currentTrackers == null)
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ public class PerimeterDiagnostics
|
|||||||
{
|
{
|
||||||
el.snapTo(pos.getX() + 0.5F, pos.getY(), pos.getZ()+0.5F, 0.0F, 0.0F);
|
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) &&
|
return el.checkSpawnObstruction(worldServer) && el.checkSpawnRules(worldServer, EntitySpawnReason.NATURAL) &&
|
||||||
SpawnPlacements.checkSpawnRules(el.getType(),(ServerLevel)el.getCommandSenderWorld(), EntitySpawnReason.NATURAL, el.blockPosition(), el.getCommandSenderWorld().random) &&
|
SpawnPlacements.checkSpawnRules(el.getType(),(ServerLevel)el.level(), EntitySpawnReason.NATURAL, el.blockPosition(), el.level().random) &&
|
||||||
worldServer.noCollision(el); // check collision rules once they stop fiddling with them after 1.14.1
|
worldServer.noCollision(el); // check collision rules once they stop fiddling with them after 1.14.1
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -382,7 +382,7 @@ public class SpawnReporter
|
|||||||
}
|
}
|
||||||
if (entity instanceof Ocelot)
|
if (entity instanceof Ocelot)
|
||||||
{
|
{
|
||||||
for (Entity e: entity.getCommandSenderWorld().getEntities(entity, entity.getBoundingBox()))
|
for (Entity e: entity.level().getEntities(entity, entity.getBoundingBox()))
|
||||||
{
|
{
|
||||||
e.discard();
|
e.discard();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user