feat: add LoL Stats plugin — op.gg-powered player lookup

New plugin for League of Legends stats tracking, similar to op.gg:
- Search summoners by Riot ID (Name#Tag) + region
- Profile overview: rank, tier, LP, win rate, ladder position
- Top champions with KDA and win rates
- Match history with KDA, CS, items, game duration
- Expandable match details showing all 10 players
- Recent searches persisted across restarts

Uses op.gg MCP server (no API key needed, no 24h expiration).
Backend: server/src/plugins/lolstats/ (3 files)
Frontend: web/src/plugins/lolstats/ (2 files)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Daniel 2026-03-06 21:04:45 +01:00
parent 24b4dadb0f
commit 40c596fbfa
7 changed files with 1568 additions and 0 deletions

View file

@ -1,6 +1,7 @@
import { useState, useEffect, useRef } from 'react';
import RadioTab from './plugins/radio/RadioTab';
import SoundboardTab from './plugins/soundboard/SoundboardTab';
import LolstatsTab from './plugins/lolstats/LolstatsTab';
interface PluginInfo {
name: string;
@ -12,6 +13,7 @@ interface PluginInfo {
const tabComponents: Record<string, React.FC<{ data: any }>> = {
radio: RadioTab,
soundboard: SoundboardTab,
lolstats: LolstatsTab,
};
export function registerTab(pluginName: string, component: React.FC<{ data: any }>) {
@ -79,6 +81,7 @@ export default function App() {
const tabIcons: Record<string, string> = {
radio: '\u{1F30D}',
soundboard: '\u{1F3B5}',
lolstats: '\u{2694}\uFE0F',
stats: '\u{1F4CA}',
events: '\u{1F4C5}',
games: '\u{1F3B2}',