feat: elytra craftable
This commit is contained in:
8 files changed
+101
-4
No files matched your search
@@ -2,7 +2,6 @@ package com.github.zly2006.carpetslsaddition;
|
||||
|
||||
import carpet.api.settings.Rule;
|
||||
import carpet.api.settings.RuleCategory;
|
||||
import net.minecraft.block.RedstoneBlock;
|
||||
|
||||
import static com.github.zly2006.carpetslsaddition.ServerMain.CARPET_ID;
|
||||
|
||||
@@ -55,5 +54,5 @@ public class SLSCarpetSettings {
|
||||
public static boolean optimizedOnDragonRespawn = false;
|
||||
|
||||
@Rule(categories = {CARPET_ID, RuleCategory.FEATURE})
|
||||
public static boolean printStackTraceOnVillagerSpawn = false;
|
||||
public static boolean elytraCraftable = false;
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package com.github.zly2006.carpetslsaddition.mixin.datapack;
|
||||
|
||||
import com.github.zly2006.carpetslsaddition.SLSCarpetSettings;
|
||||
import net.minecraft.resource.ResourcePackProfile;
|
||||
import net.minecraft.resource.ResourceType;
|
||||
import net.minecraft.resource.VanillaResourcePackProvider;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.net.URISyntaxException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Mixin(VanillaResourcePackProvider.class)
|
||||
public abstract class MixinVanillaResourcePackProvider {
|
||||
@Shadow protected abstract void forEachProfile(@Nullable Path namespacedPath, BiConsumer<String, Function<String, ResourcePackProfile>> consumer);
|
||||
|
||||
@Shadow @Final private ResourceType type;
|
||||
|
||||
@Inject(
|
||||
method = "forEachProfile(Ljava/util/function/BiConsumer;)V",
|
||||
at = @At("RETURN")
|
||||
)
|
||||
private void andMe(BiConsumer<String, Function<String, ResourcePackProfile>> consumer, CallbackInfo ci) throws URISyntaxException {
|
||||
if (type == ResourceType.SERVER_DATA) {
|
||||
Path path = Path.of(SLSCarpetSettings.class.getClassLoader().getResource("data/slsa/datapacks").toURI());
|
||||
this.forEachProfile(path, consumer);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.github.zly2006.carpetslsaddition.mixin.elytra;
|
||||
|
||||
import com.github.zly2006.carpetslsaddition.SLSCarpetSettings;
|
||||
import net.minecraft.item.*;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
|
||||
@Mixin(ElytraItem.class)
|
||||
public abstract class MixinElytraItem extends Item implements Equipment {
|
||||
public MixinElytraItem(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasRecipeRemainder() {
|
||||
return SLSCarpetSettings.elytraCraftable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getRecipeRemainder(ItemStack stack) {
|
||||
if (SLSCarpetSettings.elytraCraftable) {
|
||||
return stack;
|
||||
}
|
||||
else return ItemStack.EMPTY;
|
||||
}
|
||||
}
|
||||
@@ -50,5 +50,6 @@
|
||||
"carpet.rule.maxUpdateQueueSize.extra.0": "If set to a value not greater than 0, turn off this function and run according to Vanilla",
|
||||
"carpet.rule.maxUpdateQueueSize.extra.1": "Otherwise, when the number of single updates exceeds the set value, an OutOfMemoryError will be thrown to generate update suppression",
|
||||
"carpet.rule.emptyShulkerBoxStack.extra.0": "Empty shulker boxes can stack in a player's inventory or hand",
|
||||
"carpet.rule.emptyShulkerBoxStack.extra.1": "Empty shulker boxes will not stack in other inventories, such as chests or hoppers"
|
||||
"carpet.rule.emptyShulkerBoxStack.extra.1": "Empty shulker boxes will not stack in other inventories, such as chests or hoppers",
|
||||
"carpet.rule.elytraCraftable.desc": "Make elytra craftable for Minecraft 1.20.6+ (eltra wont disappear when crafting)"
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"XAX",
|
||||
"XKX",
|
||||
"XBX"
|
||||
],
|
||||
"key": {
|
||||
"A": {
|
||||
"item": "minecraft:end_crystal"
|
||||
},
|
||||
"B": {
|
||||
"item": "minecraft:nether_star"
|
||||
},
|
||||
"X": {
|
||||
"item": "minecraft:phantom_membrane"
|
||||
},
|
||||
"K": {
|
||||
"item": "minecraft:elytra"
|
||||
}
|
||||
},
|
||||
"category": "equipment",
|
||||
"result": {
|
||||
"id": "minecraft:elytra"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"pack": {
|
||||
"description": {
|
||||
"translate": "Elytra Craftable by zly2006, made for Starlight Server and licensed under MIT License."
|
||||
},
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,8 @@
|
||||
"block.BlockPatternTestTransformInvoker",
|
||||
"block.MixinRedstoneWireBlock",
|
||||
"carpet.MixinSettingsManager",
|
||||
"datapack.MixinVanillaResourcePackProvider",
|
||||
"elytra.MixinElytraItem",
|
||||
"entity.MixinArmorStandEntity",
|
||||
"entity.MixinEnderDragonFight",
|
||||
"entity.MixinEndermanGoal",
|
||||
|
||||
Reference in new issue
Block a user