
A comprehensive friend and party management system for Minecraft servers with cross-server support, built for Paper/Spigot and Folia.
A comprehensive friend and party management system for Minecraft servers with cross-server support, built for Paper/Spigot and Folia.
plugins folder# config.yml
database:
type: sqlite # Use SQLite for single server
server:
name: lobby # Your server name
cross-server:
enabled: false # Disable for single server
redis:
enabled: false # Not needed for single server
# config.yml
database:
type: mysql # Required for multi-server
mysql:
host: localhost
port: 3306
database: wefriends
username: root
password: "your_password"
server:
name: lobby # Unique name for each server
cross-server:
enabled: true # Enable cross-server features
sync-interval: 30
notification-timeout: 5
redis:
enabled: true # Required for cross-server
host: localhost
port: 6379
password: ""
channel: wefriends:events
limits:
max-friends: 200
max-party-size: 8
CREATE DATABASE wefriends;
CREATE USER 'wefriends'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wefriends.* TO 'wefriends'@'%';
FLUSH PRIVILEGES;
/friend add <player> - Send a friend request/friend accept <player> - Accept a friend request/friend deny <player> - Deny a friend request/friend remove <player> - Remove a friend/friend list - View your friends list/friend requests - View pending requests/friend toggle - Toggle friend requests on/off/fchat <message> - Send a message to all friends/fmsg <friend> <message> - Send a private message to a friend/party create - Create a new party/party invite <player> - Invite a friend to your party/party accept <player> - Accept a party invite/party deny <player> - Deny a party invite/party leave - Leave your current party/party kick <player> - Kick a member from the party (leader only)/party promote <player> - Promote a member to leader (leader only)/party transfer <player> - Transfer leadership (leader only)/party disband - Disband the party (leader only)/pc <message> - Send a message to party members/fchatmode - Toggle friend chat mode/pchatmode - Toggle party chat mode/chatmode - View current chat mode/fchatspy - Toggle friend chat spy (permission required)/partyspy - Toggle party chat spy (permission required)/wefriends reload - Reload the plugin configurationwefriends.friend.use - Use friend commandswefriends.party.use - Use party commandswefriends.chat.friend - Use friend chatwefriends.chat.party - Use party chatwefriends.admin - Access admin commandswefriends.spy.friend - Spy on friend chatswefriends.spy.party - Spy on party chatswefriends.reload - Reload plugin configurationThe plugin provides placeholders for use with PlaceholderAPI:
%wefriends_friends_online% - Number of online friends%wefriends_friends_total% - Total number of friends%wefriends_party_size% - Current party size%wefriends_party_leader% - Party leader name%wefriends_in_party% - Whether player is in a party (true/false)<dependency>
<groupId>me.wethink</groupId>
<artifactId>wefriends</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>
// Get the plugin instance
WeFriends plugin = WeFriends.getInstance();
// Check if two players are friends
boolean areFriends = plugin.getFriendManager().areFriends(player1UUID, player2UUID);
// Get a player's friends
Set<UUID> friends = plugin.getFriendManager().getFriendUuidsPublic(playerUUID);
// Get party information
String partyId = plugin.getPartyManager().getPartyIdPublic(playerUUID);
List<UUID> partyMembers = plugin.getPartyManager().getPartyMembers(partyId);
Set up a shared MySQL database accessible by all servers:
database:
type: mysql
mysql:
host: your-database-host
port: 3306
database: wefriends_network
username: wefriends_user
password: secure_password
Configure Redis for real-time communication:
redis:
enabled: true
host: your-redis-host
port: 6379
password: redis_password
channel: wefriends:network
Give each server a unique name:
server:
name: lobby # For lobby server
name: survival # For survival server
name: creative # For creative server
cross-server:
enabled: true
sync-interval: 30
notification-timeout: 5
Database Connection Failed
Redis Connection Failed
Cross-Server Not Working
cross-server.enabled is truePlugin Not Loading
We welcome contributions! Please follow these steps:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)mvn clean install to buildThis project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by WeThink