There are obvious similarities between the handling of guild, party, buddy (etc) operations. For example:
the real-time update for state of online players;
cohesive player groups such as guilds, parties, squads and alliances all have a similar concept for identity;
some groups such as guilds, parties and alliances require persistence;
broadcasting messages among group members, within or across channels, is virtually the same logic;
Most of the packet logic for this is in the ChannelCharacter class. That is a bad place. It should be in specific classes, if possible classes which share a common interface.
There are obvious similarities between the handling of guild, party, buddy (etc) operations. For example:
Most of the packet logic for this is in the ChannelCharacter class. That is a bad place. It should be in specific classes, if possible classes which share a common interface.