[Bungee & Spigot] Advanced GUI Based Friend-System

Status
This thread has been locked.

Leftwitch

Banned
Feedback score
3
Posts
59
Reactions
25
Resources
0
Hey Mcmarket Community, i just wanted to present you my Friend&Party System
which got advanced Features and is GUI based,
(The GUI works on BungeeCord too, no need to install the spigot version)
at the moment i'm working on the twitch-feature the link to the resource is here:
https://www.spigotmc.org/resources/bungee-spigot-gui-based-advanced-friend-party-system.24765/
The LITE version can be found here: https://www.spigotmc.org/resources/lite-gui-bungee-spigot-advanced-friend-party-system.42474/

I copied the description of my plugin from the spigot page, please leave feedback:


BungeeCord + Spigot Friendship & Party System





NOTE: Its 1 Jar, and you can install it on your BungeeCord or on your Spigot server its your choice!, When using spigot you cant use
the Jump to friend Feature cause its just 1 Server ^^



Why this Friend System and not another?

One reason is that it is more compact and fully update supported, for example you can look at the reviews below, bugs are fixed fast when you report them, also this plugin is mad of your ideas, send me an idea and i will implement it. Also a good thing is that it is 1 Plugin for BungeeCord & Spigot Server you don't have to install the plugin on the Spigot server just to have a GUI, just a single installation on BungeeCord is enough.
What is also realy helpful for multilanguage servers is that the plugin can read the Client language and chose a different message file just for this client, so its possible that users who've turned minecraft in german will see a german GUI, and people who have it in english will see an english GUI.
The max Friends feature allows you to sell Friends your BuyCraft or Enjin Store. The Last seen feature allows users to see whe ntheir Friend was online on a nice way and there are so much more Features, just look below in the list!.

IMPORTANT NOTE WHEN INSTALLING THE SQLITE UPDATE
SET useMySQL to true in the config (FOR MYSQL USERS)
its set to false by default.






When you use the plugin for your BungeeCord, use Build #1159 (1.8 - 1.12 build) or higher!
When using Spigot use 1.7.10 - 1.12

What can it be used for?

It allows your users to get in contact and represent their relationship.

Features

  • Multiplattform compatible (BungeeCord & Spigot)
  • 1.12 Advancement Notifications
  • Fully customizable messages & items
  • Mulitlanguage support (Auto detection)
  • Commands changeable
  • MySQL Support
  • SQLite Support (BETA)
  • UUID Based
  • OfflineMode Support
  • Party System (can be disabled)
  • Last seen feature
  • Private message Support (can be disabled, and command can be changed)
  • Private message logs
  • GUI / Serverwide
  • Jump to friends (join the Server where your friend is, server can be disabled for pvp logout etc.) (only BungeeCord)
  • Poke feature
  • Requests can be disabled
  • Messages & Pokes can also be disabled
  • Join messages for friends
  • Status Messages (can be disabled & lenght can be adjusted)
  • Maximum friend amount (everbody gets a maximum amount of friends, this value can be adjusted in the config, and the amount can be different for each player example: i can have a maximum of 20 Friends, but a normal user Just 10, the amount per user can be adjusted by a command (perfect for Buycraft)

The Installation for Spigot works on the same Way!
QuickTip: When you move from Spigot to BungeeCord, or from BungeeCord to spigot, just use the same MySQL Database and the friends will be imported!

For my plugin i use the JSON format, its realy easy to use
Configuration:
(DEFAULT)
Code:
{
  "disabledServers": [],
  "defaultMaxFriends": 15,
  "enableStatuses": true,
  "maxStatusLength": 100,
  "MySQLHostname": "localhost",
  "MySQLUsername": "root",
  "MySQLPassword": "pass",
  "MySQLDatabase": "Friends",
  "MySQLPort": 3306,
  "messagesPaths": {
    "default": "messages/default.json"
  },
  "enablePartys": true,
  "maxPartySize": 20,
  "enablePrivateMessages": true,
  "msgCommand": "fmsg",
  "replyCommand": "fr",
  "pokeCooldown": 1000,
  "logPrivateMessages": false
}

Recommended:
Code:
"disabledServers": [
    "pvp",
    "minigames"
   ],
  "defaultMaxFriends": 10,
  "enableStatuses": true,
  "maxStatusLength": 20,
  "MySQLHostname": "localhost",
  "MySQLUsername": "root",
  "MySQLPassword": "pass",
  "MySQLDatabase": "Friends",
  "MySQLPort": 3306,
  "messagesPaths": {
    "default": "messages/default.json"
  },
  "enablePartys": true,
  "maxPartySize": 20,
  "enablePrivateMessages": true,
  "msgCommand": "msg",
  "replyCommand": "r",
  "logPrivateMessages": true
}


Language/Messages:
(EN)
Code:
{
  "friendInventoryTitle": "&aFriendlist",
  "requestInventoryTitle": "&aFriend requests",
  "enableNotifications": "&aNotifications enabled",
  "disableNotifications": "&cNotifications disabled",
  "enableRequests": "&aFriend requests enabled",
  "disableRequests": "&cFriend requests disabled",
  "nextPage": "&eNext page",
  "previousPage": "&ePrevious page",
  "addFriend": "&eAdd friend",
  "infoItem": "&e&nInformations",
  "requestItem": "&eFriend requests &7(&e{R}&7)",
  "listItem": "&eFriendlist &7(&e{F}&7)",
  "friendLimit": "&cMaximum friends: {F}",
  "removeFriend": "&cRemove friend",
  "pokeFriend": "&ePoke friend",
  "jumpFriend": "&cJump to your friend",
  "pokeTitle": "&6&lHey wake up!",
  "pokeSubTitle": "&7{P} Poked you!",
  "joinGameMessage": "&6{P} &7joined the game!",
  "leaveGameMessage": "&6{P} &7left the game!",
  "requestsDisabledNote": "&6{P} &7disabled friend requests!",
  "requestsSentNote": "&7Friend request has been sent to &6{P} &7!",
  "requestsReceivedNote": "&7You received a friend request from &6{P}",
  "requestSelf": "&7You can't request yourself!",
  "playerNotFound": "&cPlayer not found!",
  "enterName": "&aType the name of the player you want to request in the chat:",
  "acceptRequest": "&aAccept friend request from {P}",
  "declineRequest": "&cDecline friend request from {P}",
  "acceptedRequest": "&7You &aaccepted&7 the friend request from &6{P}!",
  "declinedRequest": "&7You &cdeclined&7 the friend request from &6{P}!",
  "maxFriendsReached": "&7You reached the friend limit of &c{LIMIT} &7!",
  "maxFriendsReachedOther": "&6{P}&7 reached the friend limit of &c{LIMIT} &7!",
  "requestAlreadySent": "&7You've already sent a friend request to &6{P}",
  "alreadyFriends": "&6{P} &cis already in your friend list!",
  "changeStatusItem": "&eUpdate status",
  "typeNewStatus": "&aType your new status in the chat!",
  "statusUpdated": "&aStatus updated to &e{S}",
  "statusTooLong": "&7Your status is too long, the limit is &6{LIMIT}!",
  "requestedYou": "&7{P} already requested you, you just have to accept!",
  "statusBroadcast": "&7{P} changed it's status to: ยงb{S}",
  "lastSeen": "&8Last seen: &6{DATE}",

  "dateFormat": "yyyy-MM-dd hh:mm:ss",
  "momentAgo": "a moment ago",
  "minsAgo": "{MINUTES} minutes ago",
  "hoursAgo": "{HOURS} hours ago",
  "daysAgo": "{DAYS} days ago",
  "weeksAgo": "{WEEKS} weeks ago",
  "monthsAgo": "{MONTHS} months ago",
  "yearsAgo": "{YEARS} years ago",
  "friendHelp": [
    "&7---------- &6Friends &7----------",
    "&7/friend help &6Opens a command guide",
    "&7/friend &6Opens the friend menu",
    "&7/friend request <Player> &6Sends a friend request to a player"
  ],
  "partyCreated": "&7Party created, use /party invite to invite Players",
  "partyCreatedAndInvited": "&7Party created and invites has been sent!",
  "partyLeft": "&e{P} &7left the Party",
  "partyJoin": "&e{P} &7joined the Party!",
  "leaderChange": "&eThe leader has been changed too &a{P}",
  "invitation": "&e{P} &7invited you to join his party, use /party accept to join!",
  "noInvite": "&cYou got no Party invites!",
  "isAlreadyInParty": "&e{P} is already member of a Party!",
  "youHaveToBeTheLeader": "&cYou have to be the Party leader to do this!",
  "noParty": "&cYou have to be in a Party to do this!",
  "invitationSent": "&e{P} &7has been invited!",
  "youAreInAParty": "&cYou are already in a Party!",
  "alreadyInvited": "&c{P} has been already invited to your Party!",
  "partyListHeader": "&8&m----------&r &6Party List &8&m----------",
  "partyFull": "&cYour party reached the maximum of &e{LIMIT} &cplayers!",
  "partyHelp": [
    "&7---------- &6Partys &7----------",
    "&7/party &6Opens this guide",
    "&7/party create &6Creates a Party",
    "&7/party invite <Player> &6Sends a invitation to a player",
    "&7/party leave &6Leave a party",
    "&7/party accept &6Accept an invitation",
    "&7/party setLeader <Player> &6Changes the leader",
    "&7/party list &6Lists all members"
  ],
  "fMSgHelp": "&c/{COMMANDNAME} <Player> <Message>",
  "fReplyHelp": "&c/{COMMANDNAME} <Message>",
  "privateMessageReceive": "&7{P} &6whispers to &cyou &e{MESSAGE}",
  "privateMessageSent": "&e{MESSAGE} &6has been sent to &7{P}"
}

HINWEIS: wenn ihr umlaute benutzen wollt müsst ihr in notepad++ Kodierung auf UTF-8 Stellen!
Code:
{
  "friendInventoryTitle": "&aFreundesliste",
  "requestInventoryTitle": "&aFreundschaftsanfragen",
  "enableNotifications": "&aBenahcrichtigungen aktiviert",
  "disableNotifications": "&cBenachrichtigungen deaktiviert",
  "enableRequests": "&aFreundschaftsanfragen aktiviert",
  "disableRequests": "&cFreundschaftsanfragen deaktiviert",
  "nextPage": "&eVor",
  "previousPage": "&eZurück",
  "addFriend": "&eFreund hinzufügen",
  "infoItem": "&e&nInformationen",
  "requestItem": "&eFreundschaftsanfragen &7(&e{R}&7)",
  "listItem": "&eFreundesliste &7(&e{F}&7)",
  "friendLimit": "&cMaximal Freunde: {F}",
  "removeFriend": "&cFreund entfernen",
  "pokeFriend": "&eFreund anstupsen",
  "jumpFriend": "&cZum Freund springen",
  "pokeTitle": "&6&lAngestupst!",
  "pokeSubTitle": "&7{P} hat dich angestpust!",
  "joinGameMessage": "&6{P} &7ist dem Spiel beigetreten!",
  "leaveGameMessage": "&6{P} &7hat das Spiel verlassen!",
  "requestsDisabledNote": "&6{P} &7hat Anfragen deaktiviert!",
  "requestsSentNote": "&7Freundschaftsanfrage an &6{P} gesendet &7!",
  "requestsReceivedNote": "&7Freundschaftsanfrage von &6{P} &7erhalten!",
  "requestSelf": "&7Du kannst dich nicht selbst anfragen",
  "playerNotFound": "&cSpieler nicht gefunden!",
  "enterName": "&aSchreibe den Spielernamen in den Chat:",
  "acceptRequest": "&aFreundschaftanfrage von {P} annehmen",
  "declineRequest": "&cFreundschaftamfrage von {P} ablehnen",
  "acceptedRequest": "&7Anfrage von &6{P} &aangenommen!",
  "declinedRequest": "&7Anfrage von &6{P} &cabgelehnt!",
  "maxFriendsReached": "&7Du kannst maximal &c{LIMIT} &7Freunde haben!",
  "maxFriendsReachedOther": "&6{P]&7 kann maximal &c{LIMIT} &7Freunde haben!",
  "requestAlreadySent": "&7Du hast &6{P} &7bereits eine Anfrage gesendet!",
  "alreadyFriends": "&6{P} &cist schon in deiner Freundesliste!",
  "changeStatusItem": "&eStatus ändern",
  "typeNewStatus": "&aSchreibe deinen neuen Status in den Chat!",
  "statusUpdated": "&aStatu zu &e{S} &age?ndert!",
  "statusTooLong": "&7Dein Status darf maximal &6{LIMIT} &7Zeichen lang sein!",
  "requestedYou": "&7{P} hat dir bereits eine Anfrage gesendet, du musst sie noch akzeptieren :) !",
  "statusBroadcast": "&7{P} hat seinen Status zu &e{S} &7ge?ndert!",
  "lastSeen": "&8Zuletzt Online: &6{DATE}",
  "dateFormat": "yyyy-MM-dd hh:mm:ss",
  "momentAgo": "vor einem moment",
  "minsAgo": "vor {MINUTES} Minuten",
  "hoursAgo": "vor {HOURS} Stunden",
  "daysAgo": "vor {DAYS} Tagen",
  "weeksAgo": "vor {WEEKS} Wochen",
  "monthsAgo": "vor {MONTHS} Monaten",
  "yearsAgo": "vor {YEARS} Jahren",
  "friendHelp": [
    "&7---------- &6Freunde &7----------",
    "&7/friend help &6öffnet eine Befehlshilfestellung",
    "&7/friend &6öffnet das Freundemenü",
    "&7/friend request &6Sendet eine Freundschaftanfrage"
  ],
  "partyCreated": "&7Party erstellt, nutze /party invite um freunde einzuladen!",
  "partyCreatedAndInvited": "&7Party erstellt und einladungen versendet!",
  "partyLeft": "&e{P} &7hat die Party verlassen!",
  "partyJoin": "&e{P} &7ist der Party beigetreten!",
  "leaderChange": "&eDer neue Leiter ist &a{P}",
  "invitation": "&e{P} &7hat dich in seine Party eingeladen, nutze /party accept um ihr beizutreten!",
  "noInvite": "&cDu hast keine Party einladunegn!",
  "isAlreadyInParty": "&e{P} ist bereits in deiner Party!",
  "youHaveToBeTheLeader": "&cDu musst der Partyleiter sein!",
  "noParty": "&cDu musst in eienr Party sein!",
  "invitationSent": "&e{P} &7wurde eingeladen!",
  "youAreInAParty": "&cDu bist bereits in einer Party!",
  "alreadyInvited": "&c{P} wurde bereits eingeladen!",
  "partyListHeader": "&8&m----------&r &6Party Liste &8&m----------",
  "partyFull": "&cDeine party hat das limit von &e{LIMIT} &cerreicht!",
  "partyHelp": [
    "&7---------- &6Partys &7----------",
    "&7/party &6Befehlshilfe",
    "&7/party create &6Party erstellen",
    "&7/party invite <Player> &6Jemanden einladen",
    "&7/party leave &6Party verlassen",
    "&7/party accept &6Accept an invitation",
    "&7/party setLeader <Player> &6Leiter setzen",
    "&7/party list &6Listet alle mitglieder auf"
  ],
  "fMSgHelp": "&c/{COMMANDNAME} <Spieler> <Nachricht>",
  "fReplyHelp": "&c/{COMMANDNAME} <Nachricht>",
  "privateMessageReceive": "&7{P} &6wispert dir zu: &e{MESSAGE}",
  "privateMessageSent": "&e{MESSAGE} &6wurde an &7{P} &6gesendet!"
}

Auto language Detection (SETUP):

The plugin is able to detect which language a player is using, so you can add a language file (.json) for every minecraft languge, and a default file, which is used when the player uses a language you havent configurated.
so how it works?

In this example i use the german (DE) File:

In my Config i change following:
Code:
  "messagesPaths": {
    "default": "messages/default.json"
  }

to

Code:
  "messagesPaths": {
    "default": "messages/default.json",
    "de_DE": "messages/de.json"
  }

(de_DE is the locale code, a list of language codes can be found here: http://minecraft.gamepedia.com/Language)

then i enter the plugins/Friends/messages folder and should see a default.json, so i copy this file, edit it and rename it to "de.json" and restart the BungeeCord.

DONE, all users which uses german as language will now see German texts.


Setup:

Just put the Friends.jar in your BungeeCord plugins folder and restart.
After he restart the config.json & the messages,json will generate in plugins/Friends.
Setup the messages how you want them or grab a message.json file of your choice.
Set the config values how you need them, i preffer to disable all minigame server it would be crazy when someone teleport out of a minigame or into a minigame (for example SurvivalGames), i would also recommend to disable all pvp servers (pvp logout).

Commands:

/friend, /friends, /f
Base command (Opens the Friend GUI)
Permission: Friends.Use


/friends setSlots <add/set/remove> <amount> <player>
Sets the maximum amount of friends a player can have.
use add for adding <amount> friend slots
use set for set <amount> friend slots
use remove to remove <amount> of friend slots
Permission: Friends.setSlots


/friends help
Opens a command guide
Permission: Friends.Use


/friends request <Player>
Sends a friend request to a special player
Permission: Friends.Use

/friends <Player>
Opens the Friend GUI from the BungeeCord Server (Made for GUI plugins which can execute commands)
The Friend System have to be installed on the server you want to execute from, and on the BungeeCord.

/party
Opens a Party command guide
Permission: Friends.Party

/party create
Creates a Party

/party leave
Leave a Party

/party setLeader <Leader>
Changes the Party Leader

/party list
List all Party members

/party accept
Accepts and Invitation

/party invite <Player>
Invites a Player

Servers that uses Friends:

mc.soapcraft.net
play.brunosrealm.com
miningplayers.net

TODO:

  • Social Network Support
    • (Bind Twitter account for recent tweets or to post something)
  • Stream Support
    • Get Twitch stream informations (when streaming)
  • TeamSpeak Support
    • Show TeamSpeak channel when online.
  • Discord Support
    • Show Discord channel when online.
  • Poke cooldown
  • Auto language detection (detect client language)
  • Party system



 
Last edited:
PebbleHost
High performance, consistent uptime and fast support. Minecraft hosting that just works.

Leftwitch

Banned
Feedback score
3
Posts
59
Reactions
25
Resources
0
Last edited:
Banned forever. Reason: Scamming (https://builtbybit.com/threads/leftwitch-scam-report.408843/)

Vail

Pop that
Supreme
Feedback score
10
Posts
446
Reactions
179
Resources
0
Just bought it and works well!
 

Leftwitch

Banned
Feedback score
3
Posts
59
Reactions
25
Resources
0
Thanks for the feedback guys!, feel free to post ideas, (like the twitch support, started already to develop it :p)
 
Banned forever. Reason: Scamming (https://builtbybit.com/threads/leftwitch-scam-report.408843/)

Leftwitch

Banned
Feedback score
3
Posts
59
Reactions
25
Resources
0
- 1.12 Update // Added Advancement Notifications // Fixed a bug which allowed non-owners of the party to move the people // disabled sqlite by default can be enabled
 
Banned forever. Reason: Scamming (https://builtbybit.com/threads/leftwitch-scam-report.408843/)

NewEdit_

Feedback score
0
Posts
97
Reactions
11
Resources
0

Leftwitch

Banned
Feedback score
3
Posts
59
Reactions
25
Resources
0
Damn I was going to make something just like this! Had something very, very similar to my practice plugin (didn't have bungee support). GLWS, looks amazing.
Thanks for the feedback, but what do you mean with "I was going to make something just like this!"? you mean the friend system or the 1.12 update :D
 
Banned forever. Reason: Scamming (https://builtbybit.com/threads/leftwitch-scam-report.408843/)

Leftwitch

Banned
Feedback score
3
Posts
59
Reactions
25
Resources
0
ah :D
 
Banned forever. Reason: Scamming (https://builtbybit.com/threads/leftwitch-scam-report.408843/)
Status
This thread has been locked.
Top