Skip to content

Wasabules/McNetworkChecker

Repository files navigation

McNetworkChecker

first

A cross-platform desktop application for diagnosing Minecraft server connectivity issues. Runs a full diagnostic pipeline in one click and generates a report you can share with your hosting provider.

Built with Wails (Go backend + Svelte frontend), Minecraft-themed UI.

Go Svelte Wails Platform

Features

6-Step Diagnostic Pipeline

Step What it does Implementation
DNS Resolution SRV _minecraft._tcp, CNAME, A/AAAA records Pure Go net package
ICMP Ping 4 packets, min/avg/max latency Windows: IcmpSendEcho API (no admin) / Unix: x/net/icmp UDP
ICMP Traceroute Network path to the server System tracert / traceroute
TCP Connection Port reachability + handshake latency Pure Go net.Dialer
TCP Traceroute Hop-by-hop port reachability Hybrid: ICMP probe (router IPs) + TCP probe (port status) per TTL
Minecraft SLP Server List Ping: version, MOTD, players, favicon Full protocol implementation (handshake, status, ping/pong)

Additional Features

  • Rich MOTD rendering with Minecraft color codes, bold/italic/obfuscated text
  • Real-time log streaming with per-step live console output
  • Skip / Stop controls to skip individual steps or abort the whole diagnostic
  • Collapsible step cards to keep the UI compact
  • Diagnostic report with one-click copy or upload to paste services
  • Paste services integration: mclo.gs, pastes.dev, dpaste.org, paste.rs, 0x0.st, dpaste.com
  • i18n with OS language auto-detection and manual picker (FR, EN, ES, DE, PT)
  • Address validation with real-time feedback
  • Auto-skip DNS step when a direct IP address is entered

Cross-Platform

Feature Windows macOS Linux
ICMP Ping IcmpSendEcho (no admin) x/net/icmp UDP x/net/icmp UDP
ICMP Traceroute tracert (built-in) traceroute (built-in) traceroute (package)
TCP Traceroute setsockopt IP_TTL + IcmpSendEcho for router IPs setsockopt IP_TTL setsockopt IP_TTL
Minecraft SLP Pure Go Pure Go Pure Go

No admin/root privileges required for any step.

Build

Prerequisites

Development

wails dev

Opens the app with hot-reload for the frontend. Go methods are re-bound automatically.

Production Build

wails build

Output binary in build/bin/.

Verify Without Wails

# Go backend
go build ./...

# Frontend
cd frontend && npm install && npm run build

Project Structure

McNetworkChecker/
├── main.go                          # Wails entry point
├── app.go                           # App struct, public API (Run/Stop/Skip/Locale/Paste)
├── diagnostic.go                    # Step orchestration with skip/stop support
├── paste.go                         # Paste service integrations (6 services)
│
├── checker/                         # Network diagnostic logic (no Wails dependency)
│   ├── types.go                     # FullDiagnostic aggregate type
│   ├── i18n.go                      # Backend i18n engine + all translations
│   ├── i18n_detect_{windows,unix}.go
│   ├── dns.go                       # DNS: SRV, CNAME, A/AAAA
│   ├── ping.go                      # Ping entry point
│   ├── ping_{windows,unix}.go       # Platform-specific ICMP
│   ├── tcp.go                       # TCP connectivity check
│   ├── traceroute.go                # ICMP traceroute (system command)
│   ├── traceroute_tcp.go            # TCP traceroute (pure Go, hybrid ICMP+TCP)
│   ├── traceroute_tcp_hop_{windows,unix}.go
│   ├── sockopt_{windows,unix}.go    # setsockopt IP_TTL
│   ├── minecraft.go                 # Minecraft SLP query
│   ├── minecraft_proto.go           # VarInt, packet builders/readers
│   ├── motd.go                      # MOTD parsing (chat components, colors)
│   ├── stream.go                    # Command streaming with context cancellation
│   └── report.go                    # Text report generator
│
├── frontend/
│   ├── src/
│   │   ├── App.svelte               # Main coordinator (state, events, layout)
│   │   ├── style.css                # Global Minecraft theme CSS
│   │   └── lib/
│   │       ├── i18n.js              # Frontend i18n (Svelte store, 5 languages)
│   │       ├── LangPicker.svelte    # Flag-based language selector
│   │       ├── InputBar.svelte      # Address input + validation
│   │       ├── ProgressBar.svelte   # XP-style progress bar
│   │       ├── StepCard.svelte      # Collapsible step card
│   │       ├── Console.svelte       # Auto-scroll log console
│   │       ├── MotdRender.svelte    # Rich MOTD rendering
│   │       ├── MinecraftInfo.svelte # Server info (favicon, MOTD, players)
│   │       └── Report.svelte        # Report display + copy + paste upload
│   └── wailsjs/                     # Auto-generated Wails bindings
│
└── wails.json                       # Wails configuration

License

MIT License - Copyright (c) 2025

See LICENSE for the full text.

Additionals screenshot

deploy result

Disclaimer

This tool is not affiliated with Mojang Studios or Microsoft. Minecraft is a trademark of Mojang Studios. McNetworkChecker is an independent diagnostic tool that uses the publicly documented Server List Ping protocol. No game files are included or modified.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors