diff --git a/evennia/contrib/game_systems/clothing/clothing.py b/evennia/contrib/game_systems/clothing/clothing.py index a6639ad198..bbadc36386 100644 --- a/evennia/contrib/game_systems/clothing/clothing.py +++ b/evennia/contrib/game_systems/clothing/clothing.py @@ -487,12 +487,12 @@ class CmdWear(MuxCommand): return # Apply individual clothing type limits. - if clothing_type := clothing.db.type: + if clothing_type := clothing.db.clothing_type: if clothing_type in CLOTHING_TYPE_LIMIT: type_count = single_type_count(already_worn, clothing_type) if type_count >= CLOTHING_TYPE_LIMIT[clothing_type]: self.caller.msg( - "You can't wear any more clothes of the type '{clothing_type}'." + f"You can't wear any more clothes of the type '{clothing_type}'." ) return diff --git a/evennia/contrib/game_systems/clothing/tests.py b/evennia/contrib/game_systems/clothing/tests.py index d46b0efb5f..54aa744f20 100644 --- a/evennia/contrib/game_systems/clothing/tests.py +++ b/evennia/contrib/game_systems/clothing/tests.py @@ -79,6 +79,21 @@ class TestClothingCmd(BaseEvenniaCommandTest): ) self.call(clothing.CmdUncover(), "hat", "You uncover test hat.", caller=self.wearer) + def test_clothing_limits(self): + """ + make sure clothing type limits are being enforced + """ + # change the scarf to a hat for convenience + # since the "hat" type is limited to 1 by default + self.test_scarf.db.clothing_type = "hat" + self.call(clothing.CmdWear(), "hat", "You put on test hat.", caller=self.wearer) + self.call( + clothing.CmdWear(), + "scarf", + "You can't wear any more clothes of the type 'hat'.", + caller=self.wearer, + ) + class TestClothingFunc(BaseEvenniaTest): def setUp(self):