By continuing to use this site, you agree to the Terms of Service of this website, including usage of cookies.

OK, Don't show this again

Full configurable and modulable faction plugin
version 3.1.3
Approved
Direct Download How to install?
Switch version
71 Downloads / 623 Total
8 Reviews
Plugin Description §

FactionMaster

For using PureChat with FactionMaster, you must use my PureChat fork and download the last release : https://github.com/ShockedPlot7560/PureChat/releases/tag/v1.4.1

FactionMaster is a new faction plugin that aims at flexibility and customization of the plugin by the user and the developers. It includes all the basic functionality of a faction plugin and data storage in MySQL or SQLITE. This is done by adding an extension system and a translation system. FactionMaster has a will of accessibility to the players and especially not to have to remember a lot of commands to play, all is done via interface.

The PVP Faction mode is a game mode that consists of creating your faction and growing it. You can ally with other factions, fight and even request territories. All the available features will be listed in another section.

Features

FactionMaster have multiple server support, see the Installation section for more information

Feature FactionMaster FactionsPro PiggyFactions SimpleFaction
SQLite3 Support
MySQL Support
Multiple claim
Multiple faction home
Image for UI (Texture pack)
Translation system
Extension system
Per Faction Permissions
SQL Injection Protection
Command Autocomplete
Form UI
Async Queries
Faction level
Custom level reward
Faction/ally chat
Awaiting invitation
Faction visibility
Editable message
Custom event
Claim title
Scoreboard faction top
Banned faction name

Additionnal plugins

  • ScoreHUD v6.0.0: FactionMaster support this plugin and implements all this tags :
    • factionmaster.faction.name
    • factionmaster.faction.power
    • factionmaster.faction.level
    • factionmaster.faction.xp
    • factionmaster.faction.message
    • factionmaster.faction.description
    • factionmaster.faction.visibility
    • factionmaster.player.rank
  • PureChat: To use PureChat tags, download our fork of it here

Installation

  • If you just want to use it on the same machine, no special installation is required, just download the .phar plugin and put it in the plugins folder.
  • If you wish to use FactionMaster on more than one server at a time, please modify the config.yml after starting your server for the first time with FactionMaster on it and change the PROVIDER: "SQLITE" with MYSQL. Enter your database connection details and restart your server.

Use resource pack

  • Download factionMaster texture pack available here
  • Install it on your server as a mandatory Texture pack
  • Put the line : active-image to true in config.yml file
  • Stop and start your server

Commands

  • /f, /faction, /fac: Opens the main menu of FactionMaster
  • /f top: Open the faction ranking
  • /f manage: Opens the faction management interface
  • /f sethome <:name>: Place a home at the player's location
  • /f delhome <:name>: Remove the faction home
  • /f tp <:name>: TP at the faction home
  • /f home: Opens the home menu
  • /f claim: Claim the current chunk
  • /f unclaim: Remove the current claim
  • /f create: Opens the menu to create a faction
  • /f map: Displays the map listing all claims
  • /f help: Displays the orders
  • /f info <:name>: Displays information about a faction
  • /f claiminfo: Displays information about a chunk
  • /f extension: Display extensions enabled For op only
  • /f scoreboard <:slug>: Set the location to spawn top faction scoreboard
  • /f addflag: Add a claim considered like an area
  • /f removeflag: Remove a claim considered like an area
  • /f settings: Give all the FactionMaster settings
  • /f synchro: Submit task to make synchronisation manually of the database

Extensions

Extensions, a new way to customize your plugin to your liking. You just have to download the plugin corresponding to the desired extension and place it in the corresponding folder on your server. If you have an urge to stop using the functionality, delete the plugin from your server and the changes will be gone! You can use those approved by the FactionMaster team or do it yourself (refer to the GitHub) and submit it to us if you feel like it.

All extensions made by the FactionMaster team and those approved by the FactionMaster team, which are accessible via poggit will be listed here.

  • Bank system : here by FactionMaster
  • Invitation Improve : here by FactionMaster

Translators

To participate in the translation of FactionMaster and probably see yourself here, create a Pull Request on the FactionMaster GitHub. Once the language has been translated on the main plugin and on all the extensions listed in the Extension section, it will be added and all its contributors thanked.

Developers

Adding and modifying extensions is rather simple and explained on the README.md of the GitHub repository with a documentation for the handling of the API. Many extensions will be made and approved by the FactionMaster team to allow users to modulate the plugin to their choice. All approved extensions will have a line in the README and and listed in the Extension section .

Config

 #
 #      ______           __  _                __  ___           __
 #     / ____/___ ______/ /_(_)___  ____     /  |/  /___ ______/ /____  _____
 #    / /_  / __ `/ ___/ __/ / __ \/ __ \   / /|_/ / __ `/ ___/ __/ _ \/ ___/
 #   / __/ / /_/ / /__/ /_/ / /_/ / / / /  / /  / / /_/ (__  ) /_/  __/ /  
 #  /_/    \__,_/\___/\__/_/\____/_/ /_/  /_/  /_/\__,_/____/\__/\___/_/ 
 #
 # FactionMaster - A Faction plugin for PocketMine-MP
 # This file is part of FactionMaster
 # 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Lesser General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU Lesser General Public License for more details.
 #
 # You should have received a copy of the GNU Lesser General Public License
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 #
 # @author ShockedPlot7560 
 # @link https://github.com/ShockedPlot7560
 #

# DO NOT EDIT THIS VALUE. ONLY FOR INTERNAL USE.
file-version: 9
# DO NOT EDIT THIS VALUE. ONLY FOR INTERNAL USE.

# --------------------- DATABASE --------------------------

# Use only SQLITE or MYSQL
#
# To enabled Multiple server support
# please use MYSQL for PROVIDER, give the good information and restart the server
PROVIDER: "SQLITE"
MYSQL_database:
  host: "localhost"
  name: "FactionMaster"
  user: "root"
  pass: ""
SQLITE_database: 
  name: "FactionMaster"

# --------------------- GLOBAL CONFIGURATION --------------------------

# If you want to disable this feature, empty this array and reload your server
banned-faction-name: ["op", "staff", "admin", "fuck", "shit"]

xp-win-per-kill: 1
power-win-per-kill: 2
power-loose-per-death: 2
#Use to multiply the power win and loose if players are in factions
faction-multiplicator: 2
#check if player have armor equip
allow-no-stuff: false

default-home-limit: 2
default-claim-limit: 2
default-player-limit: 2
default-ally-limit: 2
# PUBLIC: 0  /  PRIVATE: 1  /  INVITATION: 2
default-faction-visibility: 0
default-faction-xp: 0
default-faction-level: 1
default-faction-description: ""
default-faction-message: ""
default-power: 0

min-faction-name-length: 3
max-faction-name-length: 20

# If it set to true, image will be display near button
# If it set to false, image will be disabled
active-image: true

faction-chat-active: false
faction-chat-symbol: "$"
faction-chat-message: "[{factionName}] {playerName}: {message}"
ally-chat-active: false
ally-chat-symbol: "%"
ally-chat-message: "[{factionName}] {playerName}: {message}"

help-command-header: "§8=§7=§8=§7=§8=§7=§8=§7=§8=§7= §bFactionMaster command §8=§7=§8=§7=§8=§7=§8=§7=§8=§7="
help-command-lign: " §8>> §r§b{command}: §7{description}"

# ------------------ BROADCAST MESSAGE CONFIGURATION ---------------------

broadcast-faction-create: false
broadcast-faction-create-message: "{playerName} has created the faction {factionName}"
broadcast-faction-delete: false
broadcast-faction-delete-message: "{playerName} has deleted the faction {factionName}"
broadcast-faction-transferProperty: false
broadcast-faction-transferProperty-message: "{playerName} transferred the property to {targetName} of the faction {factionName}"

# --------------------- F MAP CONFIGURATION -------------------------

# Set thiis value to false if you want to disable /f map on | /f map off
# Otherwise set this value to the number of ticks between each display 
f-map-task: false
#f-map-task: 40

available-symbol: ["/", "\\", "#", "$", "?", "%", "=", "&", "^", "$"]

player-symbol: "+"
player-color: "§b"

wilderness-symbol: "-"
wilderness-color: "§7" 
spawn-symbol: "-"
spawn-color: "§8" 
warzone-symbol: "-"
warzone-color: "§7" 

claim-color: "§f"
claim-ally-color: "§e"
claim-ennemie-color: "§4"
claim-own-color: "§b"

compass-color: "§c"
compass-color-actual: "§e"

map-width: 48
map-height: 10
map-header-color: "§6"
map-middle-header: ".[ §2({{x}},{{z}}) {{factionLabel}} {{headerColor}}]."

# --------------------- CLAIM CONFIGURATION --------------------------

claim-cost:
  # the type is the same type as level reward, you can put :
  #   power / allyLimit / claimLimit / homeLimit / memberLimit
  #   to make your own reward, please read the documentation
  type: "power"
  # the start value for the first claim
  value: 200

# flat: cost all the time, the same price
# addition: first claim will be cost: Ex: 100
#      second claim will be cost: Ex: 200
#      second claim will be cost: Ex: 300
# multiplication: will be times by a factor
# decrease: descrease the start value by the factor
claim-provider: "flat"
# Equation for mutliplication :
#   cost-price = cost-start * (factor ** number-claim)
multiplication-factor: 2
#Equation for decrease
#   cost-price = cost-start - (number-claim * decrease-factor)
decrease-factor: 100

# If set to false, the player cant /f sethome in a ennemy claim
allow-home-ennemy-claim: true

# --------------------- TITLE CONFIGURATION --------------------------

# Set this to true if you want to display on player's screen the message when entering a claim
message-alert: true
# The following line define which message will be print
# on the screen of players when entering a claim chunk
# active parameter which can set : {factionName} / {colorStatus} / {x} / {z} / {world}
# - colorStatus : color set in the f map configuration
# to purpose a suggestion, open an issue on our github
message-alert-title: "{colorStatus}{factionName}"
message-alert-subtitle: "{x} - {z} - {world}"
# Defines the time that will be applied before the message is displayed again
message-alert-cooldown: 10

message-alert-flag-enabled: false
# -------------- TOP FACTION'S SCOREBOARD CONFIGURATION -----------------

# SEE leaderboard.yml to enabled and updated position of the leaderboard !

# This is the scoreboard header, display on the top
faction-scoreboard-header: "- Top 10 faction -"
# Lign patern for each faction
# you can use this parameter : 
# {factionName} / {level} / {power}
# to purpose a parameter suggestion, please open an issue on github
faction-scoreboard-lign: "{factionName}: Level {level}"

# --------------------- PLUGIN CONFIGURATION --------------------------
#       DONT CHANGE IF YOU DONT KNOW WHAT YOU ARE DOING

# Change this value only if you are sure of what you are doing, 
# reducing it may break some functionality of the plugin, 
# increasing it may reduce the players experience.
# Default: 60
timeout-task: 60

# Change this value only if you are sure of what you are doing, 
# reducing it may break some functionality of the plugin, 
# increasing it may reduce the players experience.
# Default: 200
# It will determine ow much time Database synchronisation will be done
sync-time: 200
What's new §
  • Bug fix
  • Implements a multiple official resource pack support
  • Introduce a new system for leaderboard (v3.2.0)
  • Update tr_TR lang file
  • Add more API for subCommand
  • fix possible bug due to extension lang
  • Bugs fix
  • Add Turkish, thanks to @xAliTura01, v3.0.3
    • include to update the Resource Pack
  • Minor fix: translation file saving bug
  • Many bug fix
  • Fix: translation file version bug

Note about API

This version includes many features and uses that are incompatible with previous versions. Therefore, you will be asked to reinstall the entire plugin. The database will not be deleted but you will be asked to delete the configurations.

Manager

Most of the functions called and initialized at server startup have been moved to Managers in the namespace ShockedPlot7560\FactionMaster\Manager

  • The following classes have been mooved :
    • ExtensionManager to ShockedPlot7560\FactionMaster\Manager
    • MigrationManager to ShockedPlot7560\FactionMaster\Manager
    • PermissionManager to ShockedPlot7560\FactionMaster\Manager
    • SyncServerManager to ShockedPlot7560\FactionMaster\Manager
    • DatabaseManager to ShockedPlot7560\FactionMaster\Manager
  • The following classes have been added :
    • ConfigManager: Manage the link between file and Config instance
    • ImageManager: Manage if the button have image
    • LeaderboardManager: Manage the spawn location of Leaderboard
    • MapManager: Manage the player which want to have f map

Events

  • This following super class has added:
    • AllianceEvent
    • FactionEvent
    • InvitationEvent
  • The interface Forcable has been added to allow specifying when an action is done manually by an admin (API extension)
  • The trait PlayerEvent has been added to add the getPlayer() function in events allowing it

All events have been reviewed and redesigned for a better API

Database

  • All EntityDatabase extends now from this super class
  • All uses of entity constants are to be prohibited, use functions now
  • The table schematics have been revised for better optimization and understanding

Button

  • Radical change to the Button super class
    • Declarations are no longer made in the __construct but from the functions
      • setSlug
      • setContent
      • setCallable
      • setPermissions
      • etc
  • Cleaning code in Button classes
  • Adding the SLUG constant in each class

Collection

  • Cleaning code
  • Rename all the classes to the Route schematics

Route

Many changes have been made to it

  • Rename all classes and completely restructure the organisation
    • For player with no faction
    |_ MainRoute
    |   |_ CreateFactionRoute
    |   |_ JoinFactionRoute
    |   |   |_ JoinSendInvitationRoute
    |   |   |_ JoinInvitationSendRoute
    |   |   |   |_ ManageJoinInvitationRoute
    |   |   |   |   |_ ConfirmationRoute (Delete)
    |   |   |_ JoinRequestReceiveRoute
    |   |   |   |_ ManageJoinRequestRoute
    |   |   |   |   |_ ConfirmationRoute (Accept / Deny)
    |   |_ TopFactionRoute
    |   |_ ChangeLangueRoute
    
    • For player with a faction
    |_ MainRoute
    |   |_ MembersViewRoute
    |   |_ HomesViewRoute
    |   |_ MembersOptionRoute
    |   |   |_ MembersSendInvitationRoute
    |   |   |_ MembersInvitationSendRoute
    |   |   |   |_ ManageMemberInvitationRoute
    |   |   |   |   |_ ConfirmationRoute (Delete)
    |   |   |_ MembersRequestReceiveRoute
    |   |   |   |_ ManageMemberRequestRoute
    |   |   |   |   |_ ConfirmationRoute (Accept / Deny)
    |   |   |_ MembersManageRoute
    |   |   |   |_ ManageMemberRoute
    |   |   |   |   |_ ManageMemberRankRoute
    |   |   |   |   |_ ConfirmationRoute (Kick)
    |   |_ FactionOptionRoute
    |   |   |_ DescriptionChangeRoute
    |   |   |_ MessageChangeRoute
    |   |   |_ VisibilityChangeRoute
    |   |   |_ ManageLevelRoute
    |   |   |   |_ ConfirmationRoute (Level up)
    |   |   |_ ManagePermissionRoute
    |   |   |   |_ PermissionChangeRoute
    |   |   |_ AllianceOptionRoute
    |   |   |   |_ ManageAllianceRoute
    |   |   |   |   |_ ConfirmationMenu (Break ally)
    |   |   |   |_ AllianceSendInvitationRoute
    |   |   |   |_ AllianceInvitationSendRoute
    |   |   |   |   |_ ManageAllianceInvitationRoute
    |   |   |   |   |   |_ ConfirmationRoute (Delete)
    |   |   |   |_ AllianceRequestReceiveRoute
    |   |   |   |   |_ ManageAllianceRequestRoute
    |   |   |   |   |   |_ ConfirmationRoute (Accept / Deny)
    |   |_ TopFactionRoute
    |   |_ ChangeLangueRoute
    |   |_ ConfirmationMenu (Leave / Delete faction)
    
  • Adding super classes
    • InvitationBase
    • RouteBase
    • VictimBase
  • Addition of abstract functions for better readability of classes

Other

  • Resolve many many bug
  • Add many feature and configuration
  • Update API for thee actual

Note about API

This version includes many features and uses that are incompatible with previous versions. Therefore, you will be asked to reinstall the entire plugin. The database will not be deleted but you will be asked to delete the configurations.

Manager

Most of the functions called and initialized at server startup have been moved to Managers in the namespace ShockedPlot7560\FactionMaster\Manager

  • The following classes have been mooved :
    • ExtensionManager to ShockedPlot7560\FactionMaster\Manager
    • MigrationManager to ShockedPlot7560\FactionMaster\Manager
    • PermissionManager to ShockedPlot7560\FactionMaster\Manager
    • SyncServerManager to ShockedPlot7560\FactionMaster\Manager
    • DatabaseManager to ShockedPlot7560\FactionMaster\Manager
  • The following classes have been added :
    • ConfigManager: Manage the link between file and Config instance
    • ImageManager: Manage if the button have image
    • LeaderboardManager: Manage the spawn location of Leaderboard
    • MapManager: Manage the player which want to have f map

Events

  • This following super class has added:
    • AllianceEvent
    • FactionEvent
    • InvitationEvent
  • The interface Forcable has been added to allow specifying when an action is done manually by an admin (API extension)
  • The trait PlayerEvent has been added to add the getPlayer() function in events allowing it

All events have been reviewed and redesigned for a better API

Database

  • All EntityDatabase extends now from this super class
  • All uses of entity constants are to be prohibited, use functions now
  • The table schematics have been revised for better optimization and understanding

Button

  • Radical change to the Button super class
    • Declarations are no longer made in the __construct but from the functions
      • setSlug
      • setContent
      • setCallable
      • setPermissions
      • etc
  • Cleaning code in Button classes
  • Adding the SLUG constant in each class

Collection

  • Cleaning code
  • Rename all the classes to the Route schematics

Route

Many changes have been made to it

  • Rename all classes and completely restructure the organisation
    • For player with no faction
    |_ MainRoute
    |   |_ CreateFactionRoute
    |   |_ JoinFactionRoute
    |   |   |_ JoinSendInvitationRoute
    |   |   |_ JoinInvitationSendRoute
    |   |   |   |_ ManageJoinInvitationRoute
    |   |   |   |   |_ ConfirmationRoute (Delete)
    |   |   |_ JoinRequestReceiveRoute
    |   |   |   |_ ManageJoinRequestRoute
    |   |   |   |   |_ ConfirmationRoute (Accept / Deny)
    |   |_ TopFactionRoute
    |   |_ ChangeLangueRoute
    
    • For player with a faction
    |_ MainRoute
    |   |_ MembersViewRoute
    |   |_ HomesViewRoute
    |   |_ MembersOptionRoute
    |   |   |_ MembersSendInvitationRoute
    |   |   |_ MembersInvitationSendRoute
    |   |   |   |_ ManageMemberInvitationRoute
    |   |   |   |   |_ ConfirmationRoute (Delete)
    |   |   |_ MembersRequestReceiveRoute
    |   |   |   |_ ManageMemberRequestRoute
    |   |   |   |   |_ ConfirmationRoute (Accept / Deny)
    |   |   |_ MembersManageRoute
    |   |   |   |_ ManageMemberRoute
    |   |   |   |   |_ ManageMemberRankRoute
    |   |   |   |   |_ ConfirmationRoute (Kick)
    |   |_ FactionOptionRoute
    |   |   |_ DescriptionChangeRoute
    |   |   |_ MessageChangeRoute
    |   |   |_ VisibilityChangeRoute
    |   |   |_ ManageLevelRoute
    |   |   |   |_ ConfirmationRoute (Level up)
    |   |   |_ ManagePermissionRoute
    |   |   |   |_ PermissionChangeRoute
    |   |   |_ AllianceOptionRoute
    |   |   |   |_ ManageAllianceRoute
    |   |   |   |   |_ ConfirmationMenu (Break ally)
    |   |   |   |_ AllianceSendInvitationRoute
    |   |   |   |_ AllianceInvitationSendRoute
    |   |   |   |   |_ ManageAllianceInvitationRoute
    |   |   |   |   |   |_ ConfirmationRoute (Delete)
    |   |   |   |_ AllianceRequestReceiveRoute
    |   |   |   |   |_ ManageAllianceRequestRoute
    |   |   |   |   |   |_ ConfirmationRoute (Accept / Deny)
    |   |_ TopFactionRoute
    |   |_ ChangeLangueRoute
    |   |_ ConfirmationMenu (Leave / Delete faction)
    
  • Adding super classes
    • InvitationBase
    • RouteBase
    • VictimBase
  • Addition of abstract functions for better readability of classes

Other

  • Resolve many many bug
  • Add many feature and configuration
  • Update API for thee actual
  • Add UpdateNotifier virions
  • Add ConfigUpdater virions
  • /f scoreboard need to put data manually in config file to prevent comments in config file removed
  • Global translation correction
  • Some bug fix
  • Add faction and ally chat support
  • Add faction name prohibition
  • Fix bug
  • Add ScoreHUD v6.0.0 support
    • Tag available:
      • factionmaster.faction.name
      • factionmaster.faction.power
      • factionmaster.faction.level
      • factionmaster.faction.xp
      • factionmaster.faction.message
      • factionmaster.faction.description
      • factionmaster.faction.visibility
      • factionmaster.player.rank
  • Add broadcast message (see configuration file for more information)
  • Added Spanish language and update TexturePack for spanish flag Download the pack again to take account of the change here
  • Fix Important server crash
  • Global optimisation and minor bug fix
  • Cleaning code
  • Patch minor bug
  • Better syncronisation of config file to database
  • Add Scoreboard Faction top with floating text
  • Add claim title, when entering a claim, it display a title
  • Add image to UI (Check Image use section for more information)
  • Implement migration management for a future perspective
  • Global optimisation and patch

xAliTura01
using v3.1.3
12 Oct 21
SkullyGamingDM
Outdated
using v3.1.0
07 Oct 21
Add leaderboards for top faction levels, bank
Thanks for your idea, i will made that for a future update
xAliTura01
Outdated
using v3.1.0
05 Oct 21
xAliTura01
Outdated
using v3.0.2
02 Oct 21
You have made a nice plugin, I want to make a small contribution to the 'Lang' region, I translated en_TR into Turkish. I don't know how to send this to you I can only if you have Discord Discord: AliTura1.exe#8363 I used google translate for this message
I send you friend request on Discord, waiting for you. Thank you for the review !
rokibot009
Outdated
using v3.0.1
30 Sep 21
when I change the top faction setting from false to true the vecnaleaderboard plugin and Faction Master plugin crashes. can you fix it?
Can you submit an issue on GitHub with more details. Wich plugin is enabled, which version of FactionMaster did you use, etc .. Link for github : https://github.com/FactionMaster/FactionMaster/issues
MrNinja008
Outdated
using v2.2.0
05 Sep 21
My scorehud tags for scorehud plugin 6.0.0+ made by ifera
It have been updated for ScoreHud 6.0.0+
NoSoyJorgeXD
Outdated
using v2.1.3-alpha
04 Sep 21
GOD
Thank you for your review, if you have any suggestion, don't hesitate to make it known by creating an issue on the github
llPushkarSinghll
Outdated
using v2.1.1-alpha
03 Sep 21
Nice
Thank you !

Reply to review by :

Supported API versions
3.0.0
->
3.25.0
Dependencies
ScoreHud 6.3.1
Optional
View Plugin
Associated Plugins
FactionMasterBank 1.4.1
Download View Plugin
FactionMasterInvitationImprove 1.2.1
Download View Plugin
Requirements & Enhancements
MySQL server Enhancement Permission to write / create table and read structure of them
Other Enhancement Install a texture pack if wanted to have image on UI
Producers §
  • Collaborators:
    • @ShockedPlot7560
  • Translators:
    • @MrBlasyMSK
    • @xAliTura01
License §
Categories:
General
Chat-Related
Fun
API plugins
Permissions
Manage entities
Database
Other files
Permissions
Commands
Asynchronous tasks

You can leave one review per plugin release, and delete or update your review at any time

Loading...