|
|
|
"""
|
|
Verification script to demonstrate the private chat dropdown fix.
|
|
Shows that dropdown now displays human-readable names instead of entity IDs.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
def verify_dropdown_fix():
|
|
"""Verify that the dropdown fix is working correctly."""
|
|
try:
|
|
print("🔧 Verifying Private Chat Dropdown Fix...")
|
|
print("="*50)
|
|
|
|
from src.core.game_engine import GameEngine
|
|
from src.ui.interface_manager import InterfaceManager
|
|
from src.ui.huggingface_ui import HuggingFaceUI
|
|
from src.facades.game_facade import GameFacade
|
|
from src.core.player import Player
|
|
|
|
|
|
game_engine = GameEngine()
|
|
game_facade = GameFacade(game_engine)
|
|
ui = HuggingFaceUI(game_facade)
|
|
interface_manager = InterfaceManager(game_facade, ui)
|
|
|
|
|
|
player1 = Player("FixTestPlayer1")
|
|
player2 = Player("FixTestPlayer2")
|
|
|
|
game_engine.get_world().add_player(player1)
|
|
game_engine.get_world().add_player(player2)
|
|
|
|
|
|
player1.x, player1.y = 100, 100
|
|
player2.x, player2.y = 110, 110
|
|
|
|
print(f"✅ Created test players:")
|
|
print(f" - {player1.name}: {player1.id}")
|
|
print(f" - {player2.name}: {player2.id}")
|
|
|
|
|
|
proximity_html, choices, has_entities = interface_manager._get_proximity_info(player1.id)
|
|
|
|
print(f"\n📡 Proximity Detection Results:")
|
|
print(f" - Has nearby entities: {has_entities}")
|
|
print(f" - Number of choices: {len(choices)}")
|
|
print(f" - Raw choices: {choices}")
|
|
|
|
print(f"\n🎯 Dropdown Display Analysis:")
|
|
for i, choice in enumerate(choices, 1):
|
|
|
|
is_entity_id = len(choice) > 20 and '-' in choice
|
|
|
|
is_readable_name = not is_entity_id and len(choice) < 30
|
|
|
|
print(f" Choice {i}: '{choice}'")
|
|
if is_entity_id:
|
|
print(f" ❌ ISSUE: Shows entity ID instead of name")
|
|
elif is_readable_name:
|
|
print(f" ✅ GOOD: Shows human-readable name")
|
|
else:
|
|
print(f" ⚠️ UNKNOWN: Format unclear")
|
|
|
|
|
|
print(f"\n🗺️ Entity Name-to-ID Mapping:")
|
|
if hasattr(interface_manager, 'entity_name_to_id'):
|
|
for name, entity_id in interface_manager.entity_name_to_id.items():
|
|
print(f" - '{name}' -> {entity_id}")
|
|
else:
|
|
print(" ❌ No entity name mapping found")
|
|
|
|
|
|
print(f"\n🔍 Entity Name Resolution Test:")
|
|
|
|
npc_name = interface_manager._get_entity_name('scholar')
|
|
print(f" - NPC ID 'scholar' resolves to: '{npc_name}'")
|
|
|
|
|
|
player_name = interface_manager._get_entity_name(player2.id)
|
|
print(f" - Player ID '{player2.id}' resolves to: '{player_name}'")
|
|
|
|
|
|
print(f"\n🏆 Fix Assessment:")
|
|
all_readable = all(not (len(choice) > 20 and '-' in choice) for choice in choices)
|
|
if all_readable:
|
|
print(" ✅ SUCCESS: All dropdown choices show human-readable names!")
|
|
print(" ✅ The private chat dropdown fix is working correctly.")
|
|
else:
|
|
print(" ❌ ISSUE: Some dropdown choices still show entity IDs.")
|
|
|
|
return all_readable
|
|
|
|
except Exception as e:
|
|
print(f"❌ Verification failed: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
success = verify_dropdown_fix()
|
|
sys.exit(0 if success else 1)
|
|
|