63 lines
2.0 KiB
Go
63 lines
2.0 KiB
Go
// Package chat provides chat channel management for the EverQuest II server emulator.
|
|
//
|
|
// The chat system provides comprehensive channel-based communication with membership,
|
|
// access control, and message routing capabilities. It supports both persistent world
|
|
// channels (loaded from database) and temporary custom channels (created by players).
|
|
//
|
|
// Basic Usage:
|
|
//
|
|
// db, _ := database.NewSQLite("chat.db")
|
|
//
|
|
// // Create new channel
|
|
// channel := chat.New(db)
|
|
// channel.ID = 1001
|
|
// channel.Name = "Auction"
|
|
// channel.ChannelType = chat.ChannelTypeWorld
|
|
// channel.Save()
|
|
//
|
|
// // Load existing channel
|
|
// loaded, _ := chat.Load(db, 1001)
|
|
// loaded.Delete()
|
|
//
|
|
// // Load by name
|
|
// auction, _ := chat.LoadByName(db, "Auction")
|
|
//
|
|
// Master List:
|
|
//
|
|
// masterList := chat.NewMasterList()
|
|
// masterList.LoadAllChannels(db)
|
|
// masterList.AddChannel(channel)
|
|
//
|
|
// // Find channels
|
|
// found := masterList.GetChannel(1001)
|
|
// byName := masterList.GetChannelByName("Auction")
|
|
// worldChannels := masterList.GetWorldChannels()
|
|
// activeChannels := masterList.GetActiveChannels()
|
|
//
|
|
// Channel Management:
|
|
//
|
|
// // Channel membership
|
|
// err := channel.JoinChannel(characterID)
|
|
// inChannel := channel.IsInChannel(characterID)
|
|
// members := channel.GetMembers()
|
|
// err = channel.LeaveChannel(characterID)
|
|
//
|
|
// // Access control
|
|
// channel.SetLevelRestriction(10)
|
|
// channel.SetRacesAllowed(raceFlags)
|
|
// channel.SetPassword("secret")
|
|
// canJoin := channel.CanJoinChannelByLevel(playerLevel)
|
|
//
|
|
// Channel Types:
|
|
//
|
|
// // World channels - persistent, loaded from database
|
|
// channel.ChannelType = chat.ChannelTypeWorld
|
|
//
|
|
// // Custom channels - temporary, created by players
|
|
// channel.ChannelType = chat.ChannelTypeCustom
|
|
//
|
|
// The package includes comprehensive access control with level, race, and class
|
|
// restrictions using bitmask filtering, optional password protection, and
|
|
// integration interfaces for client communication, player management, and
|
|
// multilingual chat processing.
|
|
package chat |