Created
September 14, 2019 21:32
-
-
Save Daomephsta/9b9a8b775dab48fcd44c793cc4b8e8db to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Override | |
public AddAttributeModifiersRecipeProcessor read(String recipeId, PacketByteBuf bytes) | |
{ | |
int uniqueKeys = bytes.readVarInt(); | |
Multimap<String, Entry<EntityAttributeModifier, EquipmentSlot>> modifiers = ArrayListMultimap.create(); | |
for (int i = 0; i < uniqueKeys; i++) | |
{ | |
String attributeId = bytes.readString(); | |
int valuesForKey = bytes.readVarInt(); | |
for (int j = 0; j < valuesForKey; j++) | |
{ | |
UUID uuid = bytes.readUuid(); | |
String name = bytes.readString(); | |
double amount = bytes.readDouble(); | |
Operation operation = Operation.fromId(bytes.readVarInt()); | |
EquipmentSlot slot = EquipmentSlot.values()[bytes.readVarInt()]; | |
modifiers.put(attributeId, Pair.of(new EntityAttributeModifier(uuid, name, amount, operation), slot)); | |
} | |
} | |
return new AddAttributeModifiersRecipeProcessor(modifiers); | |
} | |
@Override | |
public void write(PacketByteBuf bytes, AddAttributeModifiersRecipeProcessor instance) | |
{ | |
bytes.writeVarInt(instance.modifiers.keySet().size()); | |
for (String attributeId : instance.modifiers.keySet()) | |
{ | |
bytes.writeString(attributeId); | |
Collection<Entry<EntityAttributeModifier, EquipmentSlot>> attributeModifiers = instance.modifiers.get(attributeId); | |
bytes.writeVarInt(attributeModifiers.size()); | |
for (Entry<EntityAttributeModifier, EquipmentSlot> entry : attributeModifiers) | |
{ | |
EntityAttributeModifier modifier = entry.getKey(); | |
EquipmentSlot slot = entry.getValue(); | |
bytes.writeUuid(modifier.getId()); | |
bytes.writeString(modifier.getName()); | |
bytes.writeDouble(modifier.getAmount()); | |
bytes.writeVarInt(modifier.getOperation().getId()); | |
bytes.writeVarInt(slot.ordinal()); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment