Skip to content
This repository was archived by the owner on Jul 18, 2026. It is now read-only.

Tracking: 70 unimplemented channel server handlers #181

Description

@Houmgaor

Overview

A codebase audit identified 70 channel server handlers that are empty stubs — they are registered in handlers_table.go but do nothing when called. This issue tracks them as a single reference point.

All stubs are now annotated with // stub: unimplemented inline, so the full live list is always one grep away:

grep -rn "// stub: unimplemented" server/channelserver/handlers_*.go

A human-readable breakdown with per-handler descriptions lives in docs/unimplemented.md.


Subsystems with unimplemented handlers

Subsystem Count Handlers
Session 18 MsgHead, MsgSysAck, MsgSysSetStatus, MsgSysEcho, MsgSysUpdateRight, MsgSysAuthQuery, MsgSysAuthTerminal, MsgSysTransBinary, MsgSysCollectBinary, MsgSysGetState, MsgSysSerialize, MsgSysEnumlobby, MsgSysEnumuser, MsgSysInfokyserver, MsgCaExchangeItem, MsgMhfServerCommand, MsgMhfSetLoginwindow, MsgMhfGetCaUniqueID
Object sync 11 MsgSysDeleteObject, MsgSysRotateObject, MsgSysDuplicateObject, MsgSysGetObjectBinary, MsgSysGetObjectOwner, MsgSysUpdateObjectBinary, MsgSysCleanupObject, MsgSysAddObject, MsgSysDelObject, MsgSysDispObject, MsgSysHideObject
Misc 7 MsgMhfKickExportForce, MsgMhfRegistSpabiTime, MsgMhfDebugPostValue, MsgMhfGetDailyMissionMaster, MsgMhfGetDailyMissionPersonal, MsgMhfSetDailyMissionPersonal, MsgMhfUseUdShopCoin
Mutex 5 MsgSysCreateMutex, MsgSysCreateOpenMutex, MsgSysOpenMutex, MsgSysCloseMutex, MsgSysDeleteMutex
Achievement 4 MsgMhfResetAchievement, MsgMhfPaymentAchievement, MsgMhfGetCaAchievementHist, MsgMhfSetCaAchievement
Guild 3 MsgMhfUpdateForceGuildRank, MsgMhfUpdateGuild, MsgMhfUpdateGuildcard
Reward 3 MsgMhfUseRewardSong, MsgMhfAddRewardSongCount, MsgMhfAcceptReadReward
Items 3 MsgMhfGetExtraInfo, MsgMhfGetCogInfo, MsgMhfStampcardPrize
Stage 2 MsgSysStageDestruct, MsgSysLeaveStage
Tactics / UD 2 MsgMhfSetUdTacticsFollower, MsgMhfGetUdTacticsLog
Users 3 MsgSysInsertUser, MsgSysDeleteUser, MsgSysNotifyUserBinary
Quest 1 MsgMhfEnterTournamentQuest
House 1 MsgMhfResetTitle
Event 1 MsgMhfGetRestrictionEvent
Caravan 1 MsgMhfPostRyoudama
Cast binary 1 MsgSysCastedBinary
Data / Auth 1 MsgSysAuthData
Register 1 MsgSysNotifyRegister
Client mgmt 2 MsgMhfShutClient, MsgSysHideClient

Note: handlers_reserve.go also contains 56 empty handlers for protocol-reserved message IDs that MHF never sends — those are intentionally empty and not tracked here.


How to contribute

Pick any handler from the table above, implement it, and submit a PR. The general pattern:

  1. Find the handler in server/channelserver/handlers_<subsystem>.go
  2. Look up the packet definition in network/mhfpacket/msg_<name>.go
  3. Implement the logic, remove the // stub: unimplemented comment
  4. Add a test in the corresponding handlers_<subsystem>_test.go

See CLAUDE.md for the full contributing guide and handler architecture.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgame-systemGameplay features (quests, guilds, gacha, housing)help wantedExtra attention is neededprotocolPacket parsing, network protocol issues

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions