Merge branch 'master' into 1.17
# Conflicts: # src/main/java/carpet/CarpetSettings.java
This commit is contained in:
commit
3505138351
3 files changed
+24
-3
No files matched your search
@@ -52,6 +52,7 @@ public class CarpetSettings
|
|||||||
public static boolean doChainStone = false;
|
public static boolean doChainStone = false;
|
||||||
public static boolean chainStoneStickToAll = false;
|
public static boolean chainStoneStickToAll = false;
|
||||||
public static Block structureBlockIgnoredBlock = Blocks.STRUCTURE_VOID;
|
public static Block structureBlockIgnoredBlock = Blocks.STRUCTURE_VOID;
|
||||||
|
public static final int vanillaStructureBlockLimit = 48;
|
||||||
|
|
||||||
private static class LanguageValidator extends Validator<String> {
|
private static class LanguageValidator extends Validator<String> {
|
||||||
@Override public String validate(ServerCommandSource source, ParsedRule<String> currentRule, String newValue, String string) {
|
@Override public String validate(ServerCommandSource source, ParsedRule<String> currentRule, String newValue, String string) {
|
||||||
@@ -806,7 +807,7 @@ public class CarpetSettings
|
|||||||
public static class StructureBlockLimitValidator extends Validator<Integer> {
|
public static class StructureBlockLimitValidator extends Validator<Integer> {
|
||||||
|
|
||||||
@Override public Integer validate(ServerCommandSource source, ParsedRule<Integer> currentRule, Integer newValue, String string) {
|
@Override public Integer validate(ServerCommandSource source, ParsedRule<Integer> currentRule, Integer newValue, String string) {
|
||||||
return (newValue >= 48) ? newValue : null;
|
return (newValue >= vanillaStructureBlockLimit) ? newValue : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -827,7 +828,7 @@ public class CarpetSettings
|
|||||||
validate = StructureBlockLimitValidator.class,
|
validate = StructureBlockLimitValidator.class,
|
||||||
strict = false
|
strict = false
|
||||||
)
|
)
|
||||||
public static int structureBlockLimit = 48;
|
public static int structureBlockLimit = vanillaStructureBlockLimit;
|
||||||
|
|
||||||
public static class StructureBlockIgnoredValidator extends Validator<String> {
|
public static class StructureBlockIgnoredValidator extends Validator<String> {
|
||||||
|
|
||||||
@@ -860,4 +861,11 @@ public class CarpetSettings
|
|||||||
validate = Validator.NONNEGATIVE_NUMBER.class
|
validate = Validator.NONNEGATIVE_NUMBER.class
|
||||||
)
|
)
|
||||||
public static int structureBlockOutlineDistance = 96;
|
public static int structureBlockOutlineDistance = 96;
|
||||||
|
|
||||||
|
@Rule(
|
||||||
|
desc = "Lightning kills the items that drop when lightning kills an entity",
|
||||||
|
extra = {"Setting to true will prevent lightning from killing drops", "Fixes (https://bugs.mojang.com/browse/MC-195640)."},
|
||||||
|
category = {BUGFIX}
|
||||||
|
)
|
||||||
|
public static boolean lightningKillsDropsFix = false;
|
||||||
}
|
}
|
||||||
@@ -7,8 +7,10 @@ import net.minecraft.block.ShulkerBoxBlock;
|
|||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityType;
|
import net.minecraft.entity.EntityType;
|
||||||
import net.minecraft.entity.ItemEntity;
|
import net.minecraft.entity.ItemEntity;
|
||||||
|
import net.minecraft.entity.LightningEntity;
|
||||||
import net.minecraft.item.BlockItem;
|
import net.minecraft.item.BlockItem;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.server.world.ServerWorld;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
@@ -29,6 +31,17 @@ public abstract class ItemEntityMixin extends Entity implements ItemEntityInterf
|
|||||||
super(entityType_1, world_1);
|
super(entityType_1, world_1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStruckByLightning(ServerWorld world, LightningEntity lightning) {
|
||||||
|
if (CarpetSettings.lightningKillsDropsFix) {
|
||||||
|
if (this.age > 8) { //Only kill item if its older then 8 ticks
|
||||||
|
super.onStruckByLightning(world, lightning);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
super.onStruckByLightning(world, lightning);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAgeCM() {
|
public int getAgeCM() {
|
||||||
return this.age;
|
return this.age;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class UpdateStructureBlockC2SPacketMixin {
|
|||||||
)
|
)
|
||||||
private void structureBlockLimitsWrite(PacketByteBuf buf, CallbackInfo ci) {
|
private void structureBlockLimitsWrite(PacketByteBuf buf, CallbackInfo ci) {
|
||||||
//client method, only applicable if with carpet is on the server, or running locally
|
//client method, only applicable if with carpet is on the server, or running locally
|
||||||
if (CarpetSettings.structureBlockLimit >= 128)
|
if (CarpetSettings.structureBlockLimit != CarpetSettings.vanillaStructureBlockLimit)
|
||||||
{
|
{
|
||||||
buf.writeInt(this.offset.getX());
|
buf.writeInt(this.offset.getX());
|
||||||
buf.writeInt(this.offset.getY());
|
buf.writeInt(this.offset.getY());
|
||||||
|
|||||||
Reference in new issue
Block a user