mirror of
https://github.com/ViaVersion/ViaFabricPlus.git
synced 2024-12-22 16:48:25 +01:00
Readd item attribute fixes on protocol level
This commit is contained in:
parent
6dd2cd6894
commit
39e8866548
@ -3,10 +3,10 @@ org.gradle.jvmargs=-Xmx8G
|
||||
org.gradle.parallel=true
|
||||
|
||||
# Minecraft/Fabric
|
||||
minecraft_version=1.20.5-rc2
|
||||
yarn_mappings=1.20.5-rc2+build.1
|
||||
minecraft_version=1.20.5
|
||||
yarn_mappings=1.20.5+build.1
|
||||
loader_version=0.15.10
|
||||
fabric_api_version=0.97.4+1.20.5
|
||||
fabric_api_version=0.97.5+1.20.5
|
||||
|
||||
# Project Details
|
||||
mod_version=3.2.0-SNAPSHOT
|
||||
@ -14,7 +14,7 @@ maven_group=de.florianmichael
|
||||
archives_base_name=ViaFabricPlus
|
||||
|
||||
# ViaVersion Libraries
|
||||
viaversion_version=4.10.0-1.20.5-rc2-SNAPSHOT
|
||||
viaversion_version=4.10.0-SNAPSHOT
|
||||
viabackwards_version=4.10.0-24w09a-SNAPSHOT
|
||||
vialegacy_version=2.2.22-SNAPSHOT
|
||||
viaaprilfools_version=2.0.11-SNAPSHOT
|
||||
|
@ -52,7 +52,6 @@ import java.util.concurrent.CompletableFuture;
|
||||
* - Test 1.20.1 riding offsets
|
||||
* - EntityDimensionDiff: Add eye height and attachment point
|
||||
* - Test bedrock transfer
|
||||
* - Readd item fixes on protocol level: MixinSwordItem, MixinMiningToolItem
|
||||
* - Readd item fixes: MixinItemStack, MixinDrawContext, MixinPacketByteBuf
|
||||
* - Figure out how to fix 32k enchantments with codecs (MixinEnchantmentHelper)
|
||||
*/
|
||||
|
@ -38,6 +38,7 @@ public class ResourcePackHeaderDiff {
|
||||
private final static Map<ProtocolVersion, GameVersion> GAME_VERSION_DIFF = new HashMap<>();
|
||||
|
||||
static {
|
||||
registerVersion(ProtocolVersion.v1_20_5, 32, "1.20.5");
|
||||
registerVersion(ProtocolVersion.v1_20_3, 22, "1.20.4");
|
||||
registerVersion(ProtocolVersion.v1_20_2, 18, "1.20.2");
|
||||
registerVersion(ProtocolVersion.v1_20, 15, "1.20.1");
|
||||
|
@ -19,38 +19,29 @@
|
||||
|
||||
package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.item;
|
||||
|
||||
import com.google.common.base.Suppliers;
|
||||
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||
import de.florianmichael.viafabricplus.protocoltranslator.ProtocolTranslator;
|
||||
import de.florianmichael.viafabricplus.settings.impl.DebugSettings;
|
||||
import net.minecraft.component.type.AttributeModifiersComponent;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ArmorItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.TypedActionResult;
|
||||
import net.minecraft.world.World;
|
||||
import net.raphimc.vialegacy.api.LegacyProtocolVersion;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
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;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mixin(ArmorItem.class)
|
||||
public abstract class MixinArmorItem {
|
||||
public abstract class MixinArmorItem extends Item {
|
||||
|
||||
@Shadow
|
||||
@Final
|
||||
private Supplier<AttributeModifiersComponent> attributeModifiers;
|
||||
|
||||
@Unique
|
||||
private final Supplier<AttributeModifiersComponent> viaFabricPlus$AttributeModifiers_r1_8 = Suppliers.memoize(() -> AttributeModifiersComponent.DEFAULT);
|
||||
public MixinArmorItem(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Inject(method = "use", at = @At("HEAD"), cancellable = true)
|
||||
private void disableRightClick(World world, PlayerEntity user, Hand hand, CallbackInfoReturnable<TypedActionResult<ItemStack>> cir) {
|
||||
@ -59,12 +50,10 @@ public abstract class MixinArmorItem {
|
||||
}
|
||||
}
|
||||
|
||||
@Redirect(method = "getAttributeModifiers", at = @At(value = "FIELD", target = "Lnet/minecraft/item/ArmorItem;attributeModifiers:Ljava/util/function/Supplier;"))
|
||||
private Supplier<AttributeModifiersComponent> changeAttributeModifiers(ArmorItem instance) {
|
||||
if (DebugSettings.global().replaceAttributeModifiers.isEnabled()) {
|
||||
return this.viaFabricPlus$AttributeModifiers_r1_8;
|
||||
} else {
|
||||
return this.attributeModifiers;
|
||||
@Inject(method = "getAttributeModifiers", at = @At("HEAD"), cancellable = true)
|
||||
private void changeAttributeModifiers(CallbackInfoReturnable<AttributeModifiersComponent> cir) {
|
||||
if (ProtocolTranslator.getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) {
|
||||
cir.setReturnValue(super.getAttributeModifiers());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,14 +36,6 @@ public abstract class MixinSwordItem extends ToolItem {
|
||||
super(material, settings);
|
||||
}
|
||||
|
||||
/*@Inject(method = "<init>", at = @At("RETURN"))
|
||||
private void init1_8Fields(ToolMaterial toolMaterial, int attackDamage, float attackSpeed, Settings settings, CallbackInfo ci) {
|
||||
this.viaFabricPlus$attackDamage_r1_8 = 4 + toolMaterial.getAttackDamage();
|
||||
final ImmutableMultimap.Builder<EntityAttribute, EntityAttributeModifier> builder = ImmutableMultimap.builder();
|
||||
builder.put(EntityAttributes.GENERIC_ATTACK_DAMAGE, new EntityAttributeModifier(ATTACK_DAMAGE_MODIFIER_ID, "Weapon modifier", this.viaFabricPlus$attackDamage_r1_8, EntityAttributeModifier.Operation.ADDITION));
|
||||
this.viaFabricPlus$AttributeModifiers_r1_8 = builder.build();
|
||||
}*/
|
||||
|
||||
@Override
|
||||
public UseAction getUseAction(ItemStack stack) {
|
||||
if (ProtocolTranslator.getTargetVersion().betweenInclusive(LegacyProtocolVersion.b1_8tob1_8_1, ProtocolVersion.v1_8)) {
|
||||
@ -53,13 +45,4 @@ public abstract class MixinSwordItem extends ToolItem {
|
||||
}
|
||||
}
|
||||
|
||||
/*@Redirect(method = "getAttributeModifiers", at = @At(value = "FIELD", target = "Lnet/minecraft/item/SwordItem;attributeModifiers:Lcom/google/common/collect/Multimap;"))
|
||||
private Multimap<EntityAttribute, EntityAttributeModifier> changeAttributeModifiers(SwordItem instance) {
|
||||
if (DebugSettings.global().replaceAttributeModifiers.isEnabled()) {
|
||||
return this.viaFabricPlus$AttributeModifiers_r1_8;
|
||||
} else {
|
||||
return this.attributeModifiers;
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,129 @@
|
||||
/*
|
||||
* This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus
|
||||
* Copyright (C) 2021-2024 FlorianMichael/EnZaXD <florian.michael07@gmail.com> and RK_01/RaphiMC
|
||||
* Copyright (C) 2023-2024 contributors
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.minecraft.item.data.ModifierData;
|
||||
import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectMap;
|
||||
import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
import com.viaversion.viaversion.libs.gson.JsonElement;
|
||||
import com.viaversion.viaversion.libs.gson.JsonObject;
|
||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
|
||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.ListTag;
|
||||
import com.viaversion.viaversion.protocols.protocol1_9to1_8.ItemRewriter;
|
||||
import com.viaversion.viaversion.util.Pair;
|
||||
import de.florianmichael.viafabricplus.protocoltranslator.impl.ViaFabricPlusMappingDataLoader;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
@Mixin(value = ItemRewriter.class, remap = false)
|
||||
public abstract class MixinItemRewriter {
|
||||
|
||||
@Unique
|
||||
private static final Int2ObjectMap<String> ITEM_IDENTIFIERS = new Int2ObjectOpenHashMap<>();
|
||||
|
||||
@Unique
|
||||
private static final Map<String, Map<String, Pair<String, ModifierData>>> ITEM_ATTRIBUTES = new HashMap<>();
|
||||
|
||||
@Unique
|
||||
private static final String TAG_NAME = "VV|AttributeFix";
|
||||
|
||||
@Inject(method = "<clinit>", at = @At("RETURN"))
|
||||
private static void loadAdditionalData(CallbackInfo ci) {
|
||||
final JsonObject itemIdentifiers = ViaFabricPlusMappingDataLoader.INSTANCE.loadData("item-identifiers-1.8.json");
|
||||
for (Map.Entry<String, JsonElement> entry : itemIdentifiers.entrySet()) {
|
||||
ITEM_IDENTIFIERS.put(entry.getValue().getAsInt(), entry.getKey());
|
||||
}
|
||||
|
||||
final JsonObject itemAttributes = ViaFabricPlusMappingDataLoader.INSTANCE.loadData("item-attributes-1.8.json");
|
||||
for (Map.Entry<String, JsonElement> itemEntry : itemAttributes.entrySet()) {
|
||||
final String itemIdentifier = itemEntry.getKey();
|
||||
final Map<String, Pair<String, ModifierData>> attributes = new HashMap<>();
|
||||
for (Map.Entry<String, JsonElement> attributeEntry : itemEntry.getValue().getAsJsonObject().entrySet()) {
|
||||
final String attribute = attributeEntry.getKey();
|
||||
final JsonObject attributeData = attributeEntry.getValue().getAsJsonObject();
|
||||
final ModifierData modifierData = new ModifierData(UUID.fromString(attributeData.get("id").getAsString()), attributeData.get("name").getAsString(), attributeData.get("amount").getAsDouble(), attributeData.get("operation").getAsInt());
|
||||
final String slot = attributeData.get("slot").getAsString();
|
||||
attributes.put(attribute, new Pair<>(slot, modifierData));
|
||||
}
|
||||
ITEM_ATTRIBUTES.put(itemIdentifier, attributes);
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "toClient", at = @At("RETURN"))
|
||||
private static void addAttributeFixData(Item item, CallbackInfo ci) {
|
||||
if (item == null) return;
|
||||
|
||||
final String identifier = ITEM_IDENTIFIERS.get(item.identifier());
|
||||
if (identifier != null && ITEM_ATTRIBUTES.containsKey(identifier)) {
|
||||
final Map<String, Pair<String, ModifierData>> attributes = ITEM_ATTRIBUTES.get(identifier);
|
||||
final CompoundTag attributeFixTag = new CompoundTag();
|
||||
CompoundTag tag = item.tag();
|
||||
if (tag == null) {
|
||||
tag = new CompoundTag();
|
||||
item.setTag(tag);
|
||||
attributeFixTag.putBoolean("RemoveTag", true);
|
||||
}
|
||||
tag.put(TAG_NAME, attributeFixTag);
|
||||
|
||||
ListTag<CompoundTag> attributeModifiers = tag.getListTag("AttributeModifiers", CompoundTag.class);
|
||||
if (attributeModifiers == null) {
|
||||
attributeModifiers = new ListTag<>(CompoundTag.class);
|
||||
for (Map.Entry<String, Pair<String, ModifierData>> entry : attributes.entrySet()) {
|
||||
final CompoundTag attributeModifier = new CompoundTag();
|
||||
attributeModifier.putString("AttributeName", entry.getKey());
|
||||
attributeModifier.putString("Name", entry.getValue().value().name());
|
||||
attributeModifier.putDouble("Amount", entry.getValue().value().amount());
|
||||
attributeModifier.putInt("Operation", entry.getValue().value().operation());
|
||||
attributeModifier.putLong("UUIDMost", entry.getValue().value().uuid().getMostSignificantBits());
|
||||
attributeModifier.putLong("UUIDLeast", entry.getValue().value().uuid().getLeastSignificantBits());
|
||||
attributeModifier.putString("Slot", entry.getValue().key());
|
||||
attributeModifiers.add(attributeModifier);
|
||||
}
|
||||
tag.put("AttributeModifiers", attributeModifiers);
|
||||
attributeFixTag.putBoolean("RemoveAttributeModifiers", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "toServer", at = @At("RETURN"))
|
||||
private static void removeAttributeFixData(Item item, CallbackInfo ci) {
|
||||
if (item == null) return;
|
||||
final CompoundTag tag = item.tag();
|
||||
if (tag == null) return;
|
||||
final CompoundTag attributeFixTag = tag.removeUnchecked(TAG_NAME);
|
||||
if (attributeFixTag == null) return;
|
||||
|
||||
if (attributeFixTag.contains("RemoveAttributeModifiers")) {
|
||||
tag.remove("AttributeModifiers");
|
||||
}
|
||||
if (attributeFixTag.contains("RemoveTag")) {
|
||||
item.setTag(null);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -49,7 +49,6 @@ public class DebugSettings extends SettingGroup {
|
||||
// 1.9 -> 1.8.x
|
||||
public final VersionedBooleanSetting removeCooldowns = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.remove_cooldowns"), VersionRange.andOlder(ProtocolVersion.v1_8));
|
||||
public final VersionedBooleanSetting sendIdlePacket = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.send_idle_packet"), VersionRange.andOlder(LegacyProtocolVersion.r1_2_4tor1_2_5).add(VersionRange.of(LegacyProtocolVersion.r1_4_2, ProtocolVersion.v1_8)));
|
||||
public final VersionedBooleanSetting replaceAttributeModifiers = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.replace_attribute_modifiers"), VersionRange.andOlder(ProtocolVersion.v1_8));
|
||||
public final VersionedBooleanSetting preventEntityCramming = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.prevent_entity_cramming"), VersionRange.andOlder(ProtocolVersion.v1_8));
|
||||
|
||||
// 1.8.x -> 1.7.6
|
||||
|
@ -0,0 +1,232 @@
|
||||
{
|
||||
"minecraft:wooden_axe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 3.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:stone_axe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 4.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:iron_axe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 5.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:golden_axe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 3.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:diamond_axe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 6.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:wooden_pickaxe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 2.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:stone_pickaxe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 3.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:iron_pickaxe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 4.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:golden_pickaxe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 2.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:diamond_pickaxe": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 5.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:wooden_shovel": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 1.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:stone_shovel": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 2.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:iron_shovel": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 3.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:golden_shovel": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 1.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:diamond_shovel": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Tool modifier",
|
||||
"amount": 4.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:wooden_sword": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Weapon modifier",
|
||||
"amount": 4.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:stone_sword": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Weapon modifier",
|
||||
"amount": 5.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:iron_sword": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Weapon modifier",
|
||||
"amount": 6.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:golden_sword": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Weapon modifier",
|
||||
"amount": 4.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:diamond_sword": {
|
||||
"generic.attackDamage": {
|
||||
"id": "CB3F55D3-645C-4F38-A497-9C13A33DB5CF",
|
||||
"name": "Weapon modifier",
|
||||
"amount": 7.0,
|
||||
"operation": 0,
|
||||
"slot": "mainhand"
|
||||
}
|
||||
},
|
||||
"minecraft:wooden_hoe": {
|
||||
},
|
||||
"minecraft:stone_hoe": {
|
||||
},
|
||||
"minecraft:iron_hoe": {
|
||||
},
|
||||
"minecraft:golden_hoe": {
|
||||
},
|
||||
"minecraft:diamond_hoe": {
|
||||
},
|
||||
"minecraft:leather_boots": {
|
||||
},
|
||||
"minecraft:leather_leggings": {
|
||||
},
|
||||
"minecraft:leather_chestplate": {
|
||||
},
|
||||
"minecraft:leather_helmet": {
|
||||
},
|
||||
"minecraft:chainmail_boots": {
|
||||
},
|
||||
"minecraft:chainmail_leggings": {
|
||||
},
|
||||
"minecraft:chainmail_chestplate": {
|
||||
},
|
||||
"minecraft:chainmail_helmet": {
|
||||
},
|
||||
"minecraft:iron_boots": {
|
||||
},
|
||||
"minecraft:iron_leggings": {
|
||||
},
|
||||
"minecraft:iron_chestplate": {
|
||||
},
|
||||
"minecraft:iron_helmet": {
|
||||
},
|
||||
"minecraft:golden_boots": {
|
||||
},
|
||||
"minecraft:golden_leggings": {
|
||||
},
|
||||
"minecraft:golden_chestplate": {
|
||||
},
|
||||
"minecraft:golden_helmet": {
|
||||
},
|
||||
"minecraft:diamond_boots": {
|
||||
},
|
||||
"minecraft:diamond_leggings": {
|
||||
},
|
||||
"minecraft:diamond_chestplate": {
|
||||
},
|
||||
"minecraft:diamond_helmet": {
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
{
|
||||
"minecraft:wooden_axe": 271,
|
||||
"minecraft:stone_axe": 275,
|
||||
"minecraft:iron_axe": 258,
|
||||
"minecraft:golden_axe": 286,
|
||||
"minecraft:diamond_axe": 279,
|
||||
"minecraft:wooden_pickaxe": 270,
|
||||
"minecraft:stone_pickaxe": 274,
|
||||
"minecraft:iron_pickaxe": 257,
|
||||
"minecraft:golden_pickaxe": 285,
|
||||
"minecraft:diamond_pickaxe": 278,
|
||||
"minecraft:wooden_shovel": 269,
|
||||
"minecraft:stone_shovel": 273,
|
||||
"minecraft:iron_shovel": 256,
|
||||
"minecraft:golden_shovel": 284,
|
||||
"minecraft:diamond_shovel": 277,
|
||||
"minecraft:wooden_sword": 268,
|
||||
"minecraft:stone_sword": 272,
|
||||
"minecraft:iron_sword": 267,
|
||||
"minecraft:golden_sword": 283,
|
||||
"minecraft:diamond_sword": 276,
|
||||
"minecraft:wooden_hoe": 290,
|
||||
"minecraft:stone_hoe": 291,
|
||||
"minecraft:iron_hoe": 292,
|
||||
"minecraft:golden_hoe": 294,
|
||||
"minecraft:diamond_hoe": 293,
|
||||
"minecraft:leather_boots": 301,
|
||||
"minecraft:leather_leggings": 300,
|
||||
"minecraft:leather_chestplate": 299,
|
||||
"minecraft:leather_helmet": 298,
|
||||
"minecraft:chainmail_boots": 305,
|
||||
"minecraft:chainmail_leggings": 304,
|
||||
"minecraft:chainmail_chestplate": 303,
|
||||
"minecraft:chainmail_helmet": 302,
|
||||
"minecraft:iron_boots": 309,
|
||||
"minecraft:iron_leggings": 308,
|
||||
"minecraft:iron_chestplate": 307,
|
||||
"minecraft:iron_helmet": 306,
|
||||
"minecraft:golden_boots": 317,
|
||||
"minecraft:golden_leggings": 316,
|
||||
"minecraft:golden_chestplate": 315,
|
||||
"minecraft:golden_helmet": 314,
|
||||
"minecraft:diamond_boots": 313,
|
||||
"minecraft:diamond_leggings": 312,
|
||||
"minecraft:diamond_chestplate": 311,
|
||||
"minecraft:diamond_helmet": 310
|
||||
}
|
@ -29,7 +29,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Odesílat packet otevření inventáře",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Odstranit cooldowny",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Odesílat idle packet",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Nahradit modifiery atributů",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Nahradit plížení",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Dlouhé plížení",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Staré rychlosti těžení",
|
||||
|
@ -57,7 +57,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Öffnen des Inventars senden",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Abklingzeiten entfernen",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Leerlauf-Paket senden",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Attributmodifikatoren ersetzen",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Schleichen ersetzen",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Langes Schleichen",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Veraltete Abbaugeschwindigkeiten",
|
||||
|
@ -57,7 +57,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Send open inventory packet",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Remove cooldowns",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Send idle packet",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Replace attribute modifiers",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Replace sneaking",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Long sneaking",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Legacy mining speeds",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Agachado largo",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Agachado largo",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Agachado largo",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Agachado largo",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Agachado largo",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Agachado largo",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Agachado largo",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy",
|
||||
|
@ -31,7 +31,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Lähetä avoin-tavaraluettelo -paketti",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Poista jäähyt",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Lähetä idle -paketti",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Vaihda attribuutin muuttujat",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Vaihda kyykky",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Pitkä kyykky",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Perinteiset louhintanopeudet",
|
||||
|
@ -30,7 +30,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Envoyer le paquet d'inventaire ouvert",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Supprimer les temps de recharge",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Envoyer le paquet d'inactivité",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Remplacer les modificateurs d'attribut",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Remplacer le sneaking",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Sneaking prolongé",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Vitesses d'exploitation minière héritées",
|
||||
|
@ -54,7 +54,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Felszerelést kinyitó adatcsomagok küldése",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Lehűlések eltávolítása",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Tétlen adatcsomagok küldése",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Attribútum kicserélése",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Lopakodás kicserélése",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Hosszú lopakodás",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Régi bányászati sebességek",
|
||||
|
@ -26,7 +26,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "インベントリが開いたことをパケット送信",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "クールダウンを削除",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "無操作パケットを送信",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "属性修飾子を置換",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "スニークの置換",
|
||||
"debug_settings.viafabricplus.long_sneaking": "長いスニーク",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "従来の採掘速度",
|
||||
|
@ -23,7 +23,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Inventory-Open Paket schecken",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Cooldowns entfernen",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "IDLE-Paket schecken",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Attribute-Modifier entfernen",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Sneaken Unpassen",
|
||||
"debug_settings.viafabricplus.long_sneaking": "LUnges Sneaken",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Legacy Abbaugeschwindigkeiten",
|
||||
|
@ -57,7 +57,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Wysyłaj pakiety otwierania ekwipunku",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Usuń odstępy pomiędzy uderzeniami",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Wysyłaj pakiety bezczynności",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Zamień modyfikatory atrybutów",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Zamień kucanie",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Długie kucanie",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Stare prędkości kopania",
|
||||
|
@ -57,7 +57,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Отправлять пакет открытия инвентаря",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Убрать задержку атаки",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Отправлять пакет бездействия",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Заменять модификаторы атрибутов",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Заменять приседание",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Долгое приседание",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Старая скорость добычи блоков",
|
||||
|
@ -23,7 +23,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "ส่งแพคเกจเปิดช่องเก็บของ",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "ลบคูลดาวน์",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "ส่งแพคเกจ idle",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "แทนที่ตัวดัดแปลงแอตทริบิวต์",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "แทนที่การย่อง",
|
||||
"debug_settings.viafabricplus.long_sneaking": "ย่องยาว",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "ความเร็วการขุดแบบดั้งเดิม",
|
||||
|
@ -52,7 +52,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "Відправляти пакет відкривання інвентарю",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "Прибрати кулдауни",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "Надіслави пакет неактивності",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "Замінити атрибути модифікаторів",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "Замінювати підкрадання",
|
||||
"debug_settings.viafabricplus.long_sneaking": "Довге підкрадання",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "Стара швидкість копання",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "发送“打开物品栏”数据包",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "移除攻击冷却",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "发送“空闲”数据包",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "替换属性修饰符样式",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "替换潜行样式",
|
||||
"debug_settings.viafabricplus.long_sneaking": "长时间潜行",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "远古版本挖掘速度",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "發送 “打開物品欄” 數據包",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "移除攻擊冷卻",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "發送 “空閒” 數據包",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "替換屬性修飾符為舊版本樣式",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "替換潛行樣式",
|
||||
"debug_settings.viafabricplus.long_sneaking": "長時潛行",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "舊版本挖掘速度",
|
||||
|
@ -56,7 +56,6 @@
|
||||
"debug_settings.viafabricplus.send_open_inventory_packet": "發送開啟物品欄封包",
|
||||
"debug_settings.viafabricplus.remove_cooldowns": "移除冷卻時間",
|
||||
"debug_settings.viafabricplus.send_idle_packet": "發送閒置封包",
|
||||
"debug_settings.viafabricplus.replace_attribute_modifiers": "替換屬性修飾符",
|
||||
"debug_settings.viafabricplus.replace_sneaking": "替換潛行",
|
||||
"debug_settings.viafabricplus.long_sneaking": "長時間潛行",
|
||||
"debug_settings.viafabricplus.legacy_mining_speeds": "舊版挖礦速度",
|
||||
|
@ -54,7 +54,7 @@
|
||||
"fabric-lifecycle-events-v1": ">=2.2.28",
|
||||
"fabric-particles-v1": ">=1.1.6",
|
||||
"fabric-registry-sync-v0": ">=4.0.13",
|
||||
"minecraft": ">=1.20.3",
|
||||
"minecraft": ">=1.20.5",
|
||||
"java": ">=17"
|
||||
},
|
||||
"breaks": {
|
||||
|
@ -111,6 +111,7 @@
|
||||
"fixes.minecraft.entity.MixinSquidEntity",
|
||||
"fixes.minecraft.entity.MixinWolfEntity",
|
||||
"fixes.minecraft.item.MixinArmorItem",
|
||||
"fixes.minecraft.item.MixinAxeItem",
|
||||
"fixes.minecraft.item.MixinBlockItem",
|
||||
"fixes.minecraft.item.MixinBowItem",
|
||||
"fixes.minecraft.item.MixinBrushItem",
|
||||
@ -123,6 +124,8 @@
|
||||
"fixes.minecraft.item.MixinItemGroups",
|
||||
"fixes.minecraft.item.MixinItemPlacementContext",
|
||||
"fixes.minecraft.item.MixinItemRenderer",
|
||||
"fixes.minecraft.item.MixinShovelItem",
|
||||
"fixes.minecraft.item.MixinSwordItem",
|
||||
"fixes.minecraft.network.MixinChatMessageC2SPacket",
|
||||
"fixes.minecraft.network.MixinClientCommonNetworkHandler",
|
||||
"fixes.minecraft.network.MixinClientConfigurationNetworkHandler",
|
||||
@ -170,6 +173,7 @@
|
||||
"fixes.viaversion.MixinInventoryPackets1_13",
|
||||
"fixes.viaversion.MixinInventoryPackets1_17",
|
||||
"fixes.viaversion.MixinInventoryTracker1_16",
|
||||
"fixes.viaversion.MixinItemRewriter",
|
||||
"fixes.viaversion.MixinMappingDataBase",
|
||||
"fixes.viaversion.MixinMetadataRewriter1_15To1_14_4",
|
||||
"fixes.viaversion.MixinMetadataRewriter1_9To1_8",
|
||||
@ -195,10 +199,5 @@
|
||||
},
|
||||
"overwrites": {
|
||||
"requireAnnotations": true
|
||||
},
|
||||
"mixins": [
|
||||
"fixes.minecraft.item.MixinAxeItem",
|
||||
"fixes.minecraft.item.MixinShovelItem",
|
||||
"fixes.minecraft.item.MixinSwordItem"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user