fix: clients crashing on enchantment attempt, disabled quick equip until further notice, updated enchantingmenu swfs because lapis slot was missing?

This commit is contained in:
SevenToaster509
2026-04-16 20:47:14 +01:00
parent 5dd8d982bb
commit add784b259
12 changed files with 137 additions and 64 deletions
+26 -26
View File
@@ -130,33 +130,33 @@ ArmorItem::ArmorItem(int id, const ArmorMaterial *armorType, int icon, int slot)
}
shared_ptr<ItemInstance> ArmorItem::use(shared_ptr<ItemInstance> instance, Level* level, shared_ptr<Player> player) {
int slot = Mob::getEquipmentSlotForItem(instance) - 1;
//int slot = Mob::getEquipmentSlotForItem(instance) - 1;
// If player is in survival mode (not creative)
if (!player->abilities.instabuild) { //
// Equip the armor to the appropriate slot
ItemInstance copy = *instance->copy_not_shared();
if (player->inventory->armor[slot] == nullptr) {
player->inventory->armor[slot] = make_shared<ItemInstance>(copy);
player->inventory->removeItemNoUpdate(player->inventory->selected);
// Remove the item from hand (set count to 0)
instance->count = 0;
}
else {
player->inventory->setItem(player->inventory->selected, player->inventory->armor[slot]);
player->inventory->armor[slot] = make_shared<ItemInstance>(copy);
}
}
else {
ItemInstance copy = *instance->copy_not_shared();
if (player->inventory->armor[slot] == nullptr) {
player->inventory->armor[slot] = make_shared<ItemInstance>(copy);
}
else {
player->inventory->setItem(player->inventory->selected, player->inventory->armor[slot]);
player->inventory->armor[slot] = make_shared<ItemInstance>(copy);
}
}
//// If player is in survival mode (not creative)
//if (!player->abilities.instabuild) { //
// // Equip the armor to the appropriate slot
// ItemInstance copy = *instance->copy_not_shared();
// if (player->inventory->armor[slot] == nullptr) {
// player->inventory->armor[slot] = make_shared<ItemInstance>(copy);
// player->inventory->removeItemNoUpdate(player->inventory->selected);
// // Remove the item from hand (set count to 0)
// instance->count = 0;
// }
// else {
// player->inventory->setItem(player->inventory->selected, player->inventory->armor[slot]);
// player->inventory->armor[slot] = make_shared<ItemInstance>(copy);
// }
//}
//else {
// ItemInstance copy = *instance->copy_not_shared();
// if (player->inventory->armor[slot] == nullptr) {
// player->inventory->armor[slot] = make_shared<ItemInstance>(copy);
// }
// else {
// player->inventory->setItem(player->inventory->selected, player->inventory->armor[slot]);
// player->inventory->armor[slot] = make_shared<ItemInstance>(copy);
// }
//}
int material = Item::items[instance->id]->getMaterial();
int lo, hi;