DungeonRoomsMod icon indicating copy to clipboard operation
DungeonRoomsMod copied to clipboard

Add Party Coordination for Secret Waypoints Overview

Open SlickTorpedo opened this issue 2 months ago โ€ข 0 comments

Overview

This PR adds party coordination functionality to the Dungeon Rooms mod, allowing party members to automatically share found secrets with each other. When one player finds a secret, their waypoint is removed and all party members with the mod are notified, improving team coordination in dungeons.

Features

๐ŸŽฏ Automatic Secret Sharing

  • When a player finds a secret (chest, item pickup, or manual disable), the mod sends /pc SS-FOUND-X,Y,Z to party chat
  • Other party members with the mod automatically receive and process these coordinates
  • Waypoints are removed in real-time or queued for removal when entering the corresponding room

๐Ÿ”‡ Clean Chat Experience

  • SS-FOUND- messages are automatically hidden from chat to prevent spam
  • Replaced with user-friendly [Dungeon Rooms] notifications
  • Only shows important information (queued secrets, applied secrets, cleared pending)

โฑ๏ธ Smart Command Cooldown

  • 750ms cooldown between commands prevents "sending commands too quickly" errors
  • Multiple rapid secret finds won't trigger spam protection

๐Ÿงน Automatic Cleanup

  • Pending secrets are automatically cleared when starting a new dungeon run
  • Prevents waypoints from previous runs interfering with current run

๐Ÿ“ข User Notifications

Players receive clear feedback for:

  • When a secret from party chat is queued for later
  • When a queued secret is applied upon entering a room
  • When pending secrets are cleared for a new run
  • When a secret waypoint is removed in real-time

Technical Details

Changes made to: Waypoints.java

  • Added foundSecretCoords HashSet to track secrets shared via party chat
  • Extended onChat() handler to parse SS-FOUND- messages and cancel them from chat
  • Added removeWaypointAtPosition() helper method for immediate waypoint removal
  • Modified onWorldRender() to apply queued secrets when entering rooms
  • Integrated coordinate sending in existing secret detection handlers (onInteract, onReceivePacket, onKey)
  • Added cleanup logic to clear pending secrets when Mort gives the map (dungeon start)

Hypixel Rules Compliance

โœ… Only sends coordinates for secrets YOU find - The mod checks that the player picking up items is the local player (line 379) โœ… No automation - All secret finding is done manually by the player โœ… No unfair advantages - Just shares information that could be communicated verbally

Use Cases

  • Speedrunning teams: Coordinate secret routes more efficiently
  • Learning parties: Help newer players by showing which secrets are already found
  • Split farming: Prevent duplicate secret collection when splitting up

Testing

  • โœ… Tested chest interaction secret removal
  • โœ… Tested item pickup secret removal
  • โœ… Tested double-sneak manual removal
  • โœ… Verified coordinate parsing handles negative and large numbers
  • โœ… Confirmed messages are hidden from chat
  • โœ… Tested queue system across multiple rooms
  • โœ… Verified cleanup on new dungeon start

Compatibility

  • Fully backward compatible - no breaking changes to existing functionality
  • Works with or without party members having the mod
  • Gracefully handles edge cases (invalid coordinates, parsing errors, etc.)

Example Flow

  1. Player A opens a chest โ†’ Waypoint removed, /pc SS-FOUND-100,70,200 sent
  2. Player B receives message โ†’ If in same room, waypoint removed immediately with notification
  3. Player B not in room yet โ†’ Coordinates queued
  4. Player B enters the room โ†’ Queued waypoint automatically removed with notification

Completely open to feedback! Please let me know what you guys think.

SlickTorpedo avatar Oct 27 '25 01:10 SlickTorpedo