Friends - is a comprehensive, feature-rich friends management system for Minecraft servers running Spigot/Bukkit. Built with performance and user experience in mind, this plugin allows players to build connections, manage friendships, and interact with their friends through a GUI system and commands.
Key Features A complete REVAMP of the plugin
Core Friend System
Add/Remove Friends - Send friend requests and manage your friend list
Accept/Decline Requests - Full control over incoming friend requests
Favorites System - Mark your closest friends as favorites for quick access
Friend Settings - Individual privacy controls for each player
GUI System
Main Friends Menu - Central hub for all friend management
Friends List - View all friends with online/offline status and pagination
Pending Requests - Manage incoming friend requests with clickable accept/decline
Settings Menu - Toggle privacy and notification preferences
Friend Profiles - Individual pages for each friend with management options
Notifications
Join/Leave Alerts - Get notified when friends come online or leave
Request Notifications - Instant alerts for new friend requests
Clickable Messages - Accept/decline requests directly from chat
Configurable - Toggle notifications on/off per player
Teleportation System To Friends
Request-Based Teleports - Ask permission before teleporting to friends
Safe Landing - Smart location finding to avoid water, lava, and unsafe spots
Accept/Decline System - Friends control who can teleport to them
Cooldown Protection - Prevents teleport spam
Random Distance - Teleports near friends (not exact location) for privacy
️ PvP Protection
Friend PvP Protection - Prevents friends from hurting each other
Melee & Projectile Protection - Blocks all damage between friends
Configurable - Enable/disable via config
⚙️ Advanced Settings
Privacy Controls - Players can:
Toggle recieving friend requests
Enable/disable teleport requests
Control join/leave notifications
Set profile to private
Per-Player Configuration - Each player has individual settings
Admin Panel
Comprehensive Admin GUI - Manage all plugin aspects from in-game
Player Management - View any player's friend data
Database Tools - Save, reload, cleanup, and export data
Bulk Operations - Clear all requests, reset settings, remove favorites
Admin Management System - Grant/revoke admin access (console only)
Statistics Dashboard - View total players, friendships, requests, and more
Statistics Tracking
Player Statistics - Track logins, friend additions/removals, teleports, requests
Global Statistics - View server-wide friendship metrics
Performance Features
JSON Database - Fast and efficient data storage
Auto-Save System - Configurable automatic data saving
Cooldown Management - Prevents spam and server lag
Request Expiration - Old friend requests automatically expire
Optimized GUI - Smooth pagination and instant updates
Smart Cooldown System
Per-Target Cooldowns - 3-minute cooldown per friend request recipient
Teleport Cooldowns - Configurable cooldown between teleports
Anti-Spam Protection - Prevents request flooding
Commands Player Commands /friend (Aliases: /friends, /f) Description: Main friends command
Usage: /friend [list|add|remove|gui|help]
Permission: friends.use
/friend list Description: View your friends list in chat
Usage: /friend list
Permission: friends.list
/friend add <name> Description: Send a friend request to a player
Usage: /friend add <playername>
Permission: friends.add
/friend remove <name> Description: Remove a friend from your list
Usage: /friend remove <playername>
Permission: friends.remove
/friend accept <name> <uuid> Description: Accept a friend request (auto-generated by clicking)
Usage: /friend accept <playername> <uuid>
Permission: friends.accept
/friend decline <name> <uuid> Description: Decline a friend request (auto-generated by clicking)
Usage: /friend decline <playername> <uuid>
Permission: friends.decline
/friend gui (Also: /friend menu) Description: Open the friends GUI menu
Usage: /friend gui
Permission: friends.use
/friend help Description: Display help with available commands
Usage: /friend help
Permission: friends.use
Teleport Commands /rtpnn <friend> (Aliases: /tpfriend, /friendtp) Description: Send a teleport request to a friend
Usage: /rtpnn <friendname>
Permission: friends.teleport
/rtpnn accept <name> Description: Accept a teleport request from a friend
Usage: /rtpnn accept <friendname>
Permission: friends.teleport
/rtpnn decline <name> Description: Decline a teleport request from a friend
Usage: /rtpnn decline <friendname>
Permission: friends.teleport
/friendadmin clearfriends <player> Description: Remove all friends from a specific player
Usage: /friendadmin clearfriends <playername>
Permission: friends.admin
/friendadmin clearrequests <player> Description: Clear all pending requests for a specific player
Usage: /friendadmin clearrequests <playername>
Permission: friends.admin
/friendadmin resetsettings <player> Description: Reset a player's settings to default
Usage: /friendadmin resetsettings <playername>
Permission: friends.admin
/friendadmin removefriend <player> <friend> Description: Remove a specific friendship between two players
Usage: /friendadmin removefriend <player1> <player2>
Permission: friends.admin
/friendadmin cleanup Description: Clean up invalid friendships and corrupted data
Usage: /friendadmin cleanup
Permission: friends.admin
Console-Only Commands /friendpluginadmin addadmin <player> (Aliases: /fpadmin, /friendsplugadmin) Description: Grant admin access to a player (Console only)
Usage: /friendpluginadmin addadmin <playername>
Permission: Console only
/friendpluginadmin removeadmin <player> Description: Revoke admin access from a player (Console only)
Usage: /friendpluginadmin removeadmin <playername>
Permission: Console only
/friendpluginadmin listadmins Description: List all plugin administrators
Usage: /friendpluginadmin listadmins
Permission: Console only
/friendpluginadmin <command> Description: All other admin commands work from console as well
Usage: /friendpluginadmin [save|reload|stats|removefriend|cleanup]
Permission: Console only
Permissions Player Permissions friends.use Description: Allows basic friend commands and GUI access
Default: (all players)
Commands: /friend, /friend gui, /friend help true
friends.teleport Description: Allows teleporting to friends and managing teleport requests
Default: (operators only)
Commands: /rtpnn <friend>, /rtpnn accept, /rtpnn decline op
Admin Permissions friends.admin Description: Allows using all admin commands and admin GUI
Default: (operators only)
Commands: All /friendadmin commands op
Wildcard Permission friends.* Description: Grants all friend permissions
Default: (operators only)
Includes: op
friends.use
friends.add
friends.remove
friends.list
friends.accept
friends.decline
friends.teleport
friends.admin
Code (YAML):
# =================================== # Friends Plugin Messages Configuration # Use § for color codes # Use %player_name% for PlaceholderAPI placeholders # ===================================
# Friend Request Messages FriendInviteMessage1: '§6You sent a friend request to §9
%player_name%' FriendInviteMessage2: '§7You have received a friend request from
: '
FriendAcceptText: '§aClick to accept the friend request'
FriendDeclineText: '§cClick to decline the friend request'
# Friend Accept Messages FriendAcceptRequest: '§6Your request to §9
%player_name% §6has been accepted' FriendAcceptRequest3: '§6You have accepted the friend request from §9
%player_name%'
# Friend Decline Messages FriendDeclineMessage: '§6Your request to §9
%player_name% §6has been declined' FriendDeclineMessage3: '§6You have declined the friend request from §9
%player_name%'
# Friend Status Messages FriendOnlineStatus: '§ais online'
FriendOfflineStatus: '§cis offline'
# Friend Join/Leave Messages FriendJoinServer1: '§6Your friend §9
%player_name% §6has joined the server' FriendExitServer1: '§6Your friend §9
%player_name% §6has left the server'
# Friend Remove Messages RemoveFriend1: '§6Player §9
%player_name% §6has removed you from their friend list' RemoveFriend3: '§6You have removed §9
%player_name% §6from your friend list'
# Teleport Request Messages TeleportRequestSent: '§6Teleport request sent to §9
%player_name%' TeleportRequestReceived: '§6§9
%player_name% §6wants to teleport to you' TeleportRequestAccepted: '§a
%player_name% accepted your teleport request!' TeleportRequestDeclined: '§c
%player_name% declined your teleport request' TeleportRequestExpired: '§cTeleport request expired'
TeleportRequestPending: '§cYou already have a pending teleport request to this player'
PlayerNotAcceptingTeleports: '§cThis player is not accepting teleport requests!'
AcceptTeleportText: '§aClick to accept'
DeclineTeleportText: '§cClick to decline'
# Error Messages NoPlayerName: '§cYou need to specify a player name'
CannotAddYourself: '§cYou cannot add yourself to your friend list'
NoRemoveInList: '§cThat player is not on your friend list'
FriendIsNotOnline: '§cThat player is not online'
FriendPendingRequest: '§cYou have already sent a friend request to this player'
MaxFriendsReached: '§cYou have reached the maximum number of friends'
FriendAlreadyAdded: '§cThis player is already your friend'
RequestExpired: '§cThis friend request has expired'
NoPermission: '§cYou do not have permission to use this command!'
OnlyPlayers: '§cOnly players can use this command!'
PlayerNotAcceptingRequests: '§cThis player is not accepting friend requests!'
ErrorOccurred: '§cAn error occurred! Please contact an administrator.'
PleaseWaitCooldown: '§cPlease wait §e
%seconds% §cseconds before sending another request!'
# Command Messages CommandsList: '§6Available commands:'
CommandList: '§e/friend list §7- View your friends list'
CommandAdd: '§e/friend add <name> §7- Send a friend request'
CommandRemove: '§e/friend remove <name> §7- Remove a friend'
CommandGUI: '§e/friend gui §7- Open friends menu'
CommandHelp: '§e/friend help §7- Show this help message'
# GUI Messages ErrorLoadingData: '§cError loading your friend data!'
ErrorOpeningMenu: '§cError opening friends menu!'
NoFriendsYet: '§cNo Friends Yet'
UseFriendAdd: '§7Use /friend add <name>'
ToAddFriends: '§7to add friends!'
BackToMenu: '§cBack to Menu'
ReturnToMainMenu: '§7Return to main menu'
FriendsListTitle: '§6Friends List'
PendingRequestsTitle: '§6Pending Requests'
SettingsTitle: '§6Friend Settings'
NoPendingRequests: '§cNo Pending Requests'
YouHaveNoRequests: '§7You have
no friend requests'
TeleportedNear: '§aTeleported near
%player_name%!' NoGoodTeleportLocation: '§cThere is
no good place to teleport to near your friend on the surface!'
FriendNotOnline: '§cThat friend is not online!'
SpecifyFriendName: '§cPlease specify a friend''s name!'
TeleportRequestsEnabled: '§aTeleport requests enabled'
TeleportRequestsDisabled: '§aTeleport requests disabled'
JoinNotificationsEnabled: '§aJoin notifications enabled'
JoinNotificationsDisabled: '§aJoin notifications disabled'
FriendRequestsEnabled: '§aFriend requests enabled'
FriendRequestsDisabled: '§aFriend requests disabled'
ProfileNowPrivate: '§aProfile is now private'
ProfileNowPublic: '§aProfile is now public'
CannotHurtFriend: '§cYou cannot hurt your friend
%player_name%!' FavoriteAdded: '§6
%player_name% added to favorites' FavoriteRemoved: '§e
%player_name% removed from favorites' NotYourFriend: '§cThis player is not your friend!'
# List separator ListSeparator: '§9
---------------------------'