Sueta

WeFriends

1.0

A comprehensive friend and party management system for Minecraft servers with cross-server support, built for Paper/Spigot and Folia.

·Plugin
  1. 1.0latestWeFriends 1.0Aug 24, 2025

    We-Friends

    [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](htt… [![Java](https://img.shields.io/badge/Java-17+-orange.svg)](https:… [![Paper](https://img.shields.io/badge/Paper-1.21.1+-blue.svg)](htt… [![Folia](https://img.shields.io/badge/Folia-Supported-green.svg)](… A comprehensive friend and party management system for Minecraft servers with cross-server support, built for Paper/Spigot and Folia.

    ✨ Features

    🤝 Friend System
    - Friend Requests: Send, accept, and deny friend requests - Friend List: View online/offline friends with status indicators - Friend Chat: Private messaging and group chat with friends - Join/Quit Notifications: Get notified when friends join or leave - Request Toggle: Enable/disable receiving friend requests - Cross-Server Support: Friends can interact across multiple servers
    🎉 Party System
    - Party Creation: Create and manage parties with friends - Party Invites: Invite friends to join your party - Party Chat: Dedicated party chat channel - Party Roles: Leader and member roles with permissions - Party Management: Kick, promote, transfer leadership, and disband - Cross-Server Parties: Party members can be on different servers
    🌐 Cross-Server Support
    - Multi-Server Network: Connect multiple servers with Redis - Real-time Sync: Instant notifications across servers - Server Identification: See which server friends/party members are on - Seamless Experience: Chat and interact across the entire network
    🔧 Advanced Features
    - Database Support: SQLite and MySQL support - Redis Integration: For cross-server communication - PlaceholderAPI: Custom placeholders for other plugins - Folia Support: Full compatibility with Folia servers - Chat Spy: Staff can monitor friend/party chats - Chat Modes: Toggle between normal, friend, and party chat

    📋 Requirements

    - Java: 17 or higher - Server Software: Paper 1.21.1+ or Folia - Database: SQLite (included) or MySQL - Redis: Required for cross-server functionality (optional)

    🚀 Installation

    1. Download the latest release from [Releases](https://github.com/WeThink25/We-Friends/releases) 2. Place the JAR file in your server's plugins folder 3. Start your server to generate the configuration files 4. Configure the plugin (see Configuration section) 5. Restart your server

    ⚙️ Configuration

    Basic Setup (Single Server)
    # 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
    Multi-Server Setup
    # 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
    Database Setup (MySQL)
    CREATE DATABASE wefriends;
    CREATE USER 'wefriends'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON wefriends.* TO 'wefriends'@'%';
    FLUSH PRIVILEGES;

    🎮 Commands

    Friend Commands
    - /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 Commands
    - /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
    Chat Mode Commands
    - /fchatmode - Toggle friend chat mode - /pchatmode - Toggle party chat mode - /chatmode - View current chat mode
    Admin Commands
    - /fchatspy - Toggle friend chat spy (permission required) - /partyspy - Toggle party chat spy (permission required) - /wefriends reload - Reload the plugin configuration

    🔑 Permissions

    Player Permissions
    - wefriends.friend.use - Use friend commands - wefriends.party.use - Use party commands - wefriends.chat.friend - Use friend chat - wefriends.chat.party - Use party chat
    Admin Permissions
    - wefriends.admin - Access admin commands - wefriends.spy.friend - Spy on friend chats - wefriends.spy.party - Spy on party chats - wefriends.reload - Reload plugin configuration

    📊 PlaceholderAPI

    The 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)

    🔧 API Usage

    Maven Dependency
    <dependency>
        <groupId>me.wethink</groupId>
        <artifactId>wefriends</artifactId>
        <version>1.0.0</version>
        <scope>provided</scope>
    </dependency>
    Basic API Examples
    // 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);

    🌐 Cross-Server Setup Guide

    Step 1: Database Configuration
    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
    Step 2: Redis Configuration
    Configure Redis for real-time communication:
    redis:
      enabled: true
      host: your-redis-host
      port: 6379
      password: redis_password
      channel: wefriends:network
    Step 3: Server Identification
    Give each server a unique name:
    server:
      name: lobby    # For lobby server
      name: survival # For survival server
      name: creative # For creative server
    Step 4: Enable Cross-Server Features
    cross-server:
      enabled: true
      sync-interval: 30
      notification-timeout: 5

    🐛 Troubleshooting

    Common Issues
    Database Connection Failed - Verify MySQL credentials and host accessibility - Check firewall settings - Ensure database exists and user has proper permissions Redis Connection Failed - Verify Redis server is running - Check Redis host and port configuration - Verify Redis password if authentication is enabled Cross-Server Not Working - Ensure all servers use the same MySQL database - Verify Redis configuration is identical across servers - Check that server names are unique - Confirm cross-server.enabled is true Plugin Not Loading - Verify Java 17+ is installed -
    381 downloads

Similar projects

Plugin →