SapphireServer / Sapphire

A Final Fantasy XIV 4.0+ Server Emulator written in C++
GNU Affero General Public License v3.0
688 stars 213 forks source link

Social implementation #137

Open hkAlice opened 7 years ago

hkAlice commented 7 years ago

Group

Here's a basic, "mvp" group system. It's very generic as far as grouping goes in online games (for parties, rooms etc).

Basic objectives

Implement a system in which a Group, controlled by a GroupManager, satisfies the basics of what we need for all social grouping in the game.

This includes properties such as a list of members, the group leader etc as well as helper functions that can be further overloaded to tailer each group's specifics requirements (such as logging specific errors, handling limits for each group on invite, extended permission abilities ala FCs and LSs).

Error handling

Things such as not being able to invite someone to a specific group if they're already in that group is a given, but extra conditions will show up as more features get added (blacklist etc).

LogMessages found in game data could be helpful for covering all bases, but there may be some unused strings.

Future goals

The system will need to be extended so it supports advanced features. Here's a short list of them:

hkAlice commented 6 years ago

Implementation started ( me/ @takhlaq ). We should have sufficient material for party implementation (as well as future friends/blacklist/search)

Research on free company/linkshells appreciated (although previous worked by Mordred has been done for linkshells)