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):
"""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")