From 345ec865e106ffbe5f29eca5f26e1a3d0f2e26e1 Mon Sep 17 00:00:00 2001 From: LemonNexus Date: Sat, 14 Feb 2026 20:06:18 +0000 Subject: [PATCH] fix: Fix Log Parser Test plugin event field names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The plugin was using wrong field names for EventBus events: SkillGainEvent: - Fixed: points → gain_amount - Fixed: new_value → skill_value LootEvent: - Fixed: Now uses items list instead of direct item_name/quantity/value - Updated to handle the dict structure in items list DamageEvent: - Fixed: amount → damage_amount - Fixed: Now uses is_outgoing instead of is_critical for direction - Added target_name and attacker_name fields GlobalEvent: - Fixed: player → player_name - Fixed: item → item_name - Added achievement_type field All simulate buttons should now work correctly. --- plugins/log_parser_test/plugin.py | 42 ++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/plugins/log_parser_test/plugin.py b/plugins/log_parser_test/plugin.py index c66199e..623ab52 100644 --- a/plugins/log_parser_test/plugin.py +++ b/plugins/log_parser_test/plugin.py @@ -70,27 +70,36 @@ class LogParserTestPlugin(BasePlugin): def _on_skill_gain(self, event: SkillGainEvent): """Handle skill gain events.""" self.event_counts['skill_gain'] += 1 - self._add_event("Skill Gain", f"{event.skill_name}: +{event.points} pts", "#4ecdc4") + self._add_event("Skill Gain", f"{event.skill_name}: +{event.gain_amount} pts", "#4ecdc4") def _on_loot(self, event: LootEvent): """Handle loot events.""" self.event_counts['loot'] += 1 - value_str = f" ({event.value:.2f} PED)" if event.value else "" - self._add_event("Loot", f"{event.item_name} x{event.quantity}{value_str}", "#ff8c42") + # LootEvent has items list, extract first item for display + if event.items: + item = event.items[0] + item_name = item.get('name', 'Unknown') + quantity = item.get('quantity', 1) + value = item.get('value', 0) + value_str = f" ({value:.2f} PED)" if value else "" + self._add_event("Loot", f"{item_name} x{quantity}{value_str} from {event.mob_name}", "#ff8c42") + else: + self._add_event("Loot", f"Loot from {event.mob_name}", "#ff8c42") def _on_damage(self, event: DamageEvent): """Handle damage events.""" - if event.is_critical: + if event.is_outgoing: self.event_counts['damage'] += 1 - self._add_event("Damage", f"{event.amount} damage ({event.damage_type})", "#ff6b6b") + self._add_event("Damage", f"{event.damage_amount} damage ({event.damage_type})", "#ff6b6b") else: self.event_counts['damage_taken'] += 1 - self._add_event("Damage Taken", f"{event.amount} damage", "#ff4757") + self._add_event("Damage Taken", f"{event.damage_amount} damage from {event.attacker_name}", "#ff4757") def _on_global(self, event: GlobalEvent): """Handle global events.""" self.event_counts['global'] += 1 - self._add_event("Global", f"{event.player} found {event.item} worth {event.value} PED!", "#ffd93d") + item_str = f" with {event.item_name}" if event.item_name else "" + self._add_event("Global", f"{event.player_name} got {event.achievement_type}{item_str} worth {event.value} PED!", "#ffd93d") def _on_raw_log_event(self, event_data): """Handle raw log events.""" @@ -305,8 +314,8 @@ class LogParserTestPlugin(BasePlugin): event = SkillGainEvent( timestamp=datetime.now(), skill_name="Rifle", - points=0.1234, - new_value=1234.56 + gain_amount=0.1234, + skill_value=1234.56 ) self._on_skill_gain(event) self.log_info("Simulated skill gain event") @@ -316,10 +325,10 @@ class LogParserTestPlugin(BasePlugin): from datetime import datetime event = LootEvent( timestamp=datetime.now(), - item_name="Shrapnel", - quantity=100, - value=1.0, - mob_name="Atrox" + mob_name="Atrox", + items=[{'name': 'Shrapnel', 'quantity': 100, 'value': 1.0}], + total_tt_value=1.0, + position=None ) self._on_loot(event) self.log_info("Simulated loot event") @@ -329,9 +338,12 @@ class LogParserTestPlugin(BasePlugin): from datetime import datetime event = DamageEvent( timestamp=datetime.now(), - amount=45, + damage_amount=45, damage_type="Impact", - is_critical=True + is_critical=True, + target_name="Atrox", + attacker_name="Player", + is_outgoing=True ) self._on_damage(event) self.log_info("Simulated damage event")