fix: Fix Log Parser Test plugin event field names

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.
This commit is contained in:
LemonNexus 2026-02-14 20:06:18 +00:00
parent 899b74fe62
commit 345ec865e1
1 changed files with 27 additions and 15 deletions

View File

@ -70,27 +70,36 @@ class LogParserTestPlugin(BasePlugin):
def _on_skill_gain(self, event: SkillGainEvent): def _on_skill_gain(self, event: SkillGainEvent):
"""Handle skill gain events.""" """Handle skill gain events."""
self.event_counts['skill_gain'] += 1 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): def _on_loot(self, event: LootEvent):
"""Handle loot events.""" """Handle loot events."""
self.event_counts['loot'] += 1 self.event_counts['loot'] += 1
value_str = f" ({event.value:.2f} PED)" if event.value else "" # LootEvent has items list, extract first item for display
self._add_event("Loot", f"{event.item_name} x{event.quantity}{value_str}", "#ff8c42") 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): def _on_damage(self, event: DamageEvent):
"""Handle damage events.""" """Handle damage events."""
if event.is_critical: if event.is_outgoing:
self.event_counts['damage'] += 1 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: else:
self.event_counts['damage_taken'] += 1 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): def _on_global(self, event: GlobalEvent):
"""Handle global events.""" """Handle global events."""
self.event_counts['global'] += 1 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): def _on_raw_log_event(self, event_data):
"""Handle raw log events.""" """Handle raw log events."""
@ -305,8 +314,8 @@ class LogParserTestPlugin(BasePlugin):
event = SkillGainEvent( event = SkillGainEvent(
timestamp=datetime.now(), timestamp=datetime.now(),
skill_name="Rifle", skill_name="Rifle",
points=0.1234, gain_amount=0.1234,
new_value=1234.56 skill_value=1234.56
) )
self._on_skill_gain(event) self._on_skill_gain(event)
self.log_info("Simulated skill gain event") self.log_info("Simulated skill gain event")
@ -316,10 +325,10 @@ class LogParserTestPlugin(BasePlugin):
from datetime import datetime from datetime import datetime
event = LootEvent( event = LootEvent(
timestamp=datetime.now(), timestamp=datetime.now(),
item_name="Shrapnel", mob_name="Atrox",
quantity=100, items=[{'name': 'Shrapnel', 'quantity': 100, 'value': 1.0}],
value=1.0, total_tt_value=1.0,
mob_name="Atrox" position=None
) )
self._on_loot(event) self._on_loot(event)
self.log_info("Simulated loot event") self.log_info("Simulated loot event")
@ -329,9 +338,12 @@ class LogParserTestPlugin(BasePlugin):
from datetime import datetime from datetime import datetime
event = DamageEvent( event = DamageEvent(
timestamp=datetime.now(), timestamp=datetime.now(),
amount=45, damage_amount=45,
damage_type="Impact", damage_type="Impact",
is_critical=True is_critical=True,
target_name="Atrox",
attacker_name="Player",
is_outgoing=True
) )
self._on_damage(event) self._on_damage(event)
self.log_info("Simulated damage event") self.log_info("Simulated damage event")