Skip to content

Instantly share code, notes, and snippets.

@iain-davis
Last active December 20, 2015 07:48
Show Gist options
  • Save iain-davis/6095517 to your computer and use it in GitHub Desktop.
Save iain-davis/6095517 to your computer and use it in GitHub Desktop.
This is a sample config.yml file for CommunityBridge configured for a Simple Machines Forum (SMF) forum. :) DO NOT use this file as is. You should instead use this as a GUIDE to editing your own config.yml to fit your particular forum and needs.
# This is a sample configuration for:
# Simple Machines Forum (SMF)
# DO NOT use this file as is. You should instead use this as a GUIDE to
# editing your own config.yml to fit your particular forum and needs.
# This configuration assumes:
# * The table prefix for your forum is the default prefix: smf_
# * Someone has create custom profile fields named as follows:
# online, lastonline, gametime, gametimeformatted, level, currentxp,
# currentxpformatted, totalxp, health, lifeticks, lifeticksformatted, wallet
# NOTE: On SMF, when you create a profile field named "myawesomefield", the
# database key for that profile field is "cust_myawesomefield".
# -----------------------------------------------------------------------------
# General Settings
# -----------------------------------------------------------------------------
general:
# Log level controls the degree of detail that is sent to the console/log
# The possible settings are (in order of quietest to noisiest:
# info, config, fine, finer, finest, all
# - During configuration, I recommend using 'config'.
# - During normal operation, I recommend using 'info'.
# - If you want to see the notifications that the synchronize and reminder
# notices have been sent, use 'fine'
# - During troubleshooting of problems, set this to either finest or all.
log-level: info
# Allow plugin metrics to start up for this plugin. Please turn on
# metrics! It helps plugin authors determine what features to include!
# For more details see:
# http://dev.bukkit.org/bukkit-plugins/communitybridge-fm/pages/why-plugin-metrics/
# Enable/Disable for all plugins by editing plugins/PluginMetrics/config.yml
# and setting 'opt-out' to false.
plugin-metrics: true
# Set the unit of measurement for sync and reminder scheduling. Options are:
# ticks, seconds, minutes, hours, or days. Note that this applies to both
# auto-sync-every and auto-remind-every.
auto-every-unit: minutes
# This is a timer that will check and sync all data with your database at a
# set interval. Otherwise group and player statistics will only be
# synchronized when the player joins and leaves the Minecraft server.
auto-sync: true
# The interval for the auto-sync timer, this should not be set any lower than
# 20 minutes.
auto-sync-every: 20
# The permissions system you're using. A permissions system is required for
# the following features:
# * Group Synchronization (both primary and secondary)
# * Unregistered/Registered group assignment (sub-features of 'linking')
# Current Options are: bPerms, GroupManager, PermsBukkit, PEX, Vault.
permissions-system: PEX
# If ~APPURL~ appears in a message in messages.yml, it will be replaced with
# this:
application-url: http://www.example.com/
# Database Settings
# -----------------------------------------------------------------------------
# Please ensure if you run your Minecraft server on a remote host
# that your MySQL server allows REMOTE connections. This WILL NOT WORK unless
# your MySQL server is configured to allow connections from the machine that
# your Minecraft server is running on. If you don't know what that means,
# consult your hosting provider on how to configure your MySQL server correctly.
# All of this information should be the same server and database used by your
# web-application...
database:
# Hostname for your MySQL Server
hostname:
# MySQL Port
port: 3306
# Database Name
name:
# Database Username
username:
# Database Password
password:
# Player Linking Settings
# -----------------------------------------------------------------------------
# Settings associated with linking a Minecraft player with a web application's
# user. As this feature is a prerequisite for all other features, it cannot
# be disabled.
player-user-linking:
# If you want the player disconnected from the game if they haven't
# registered, then set this to true. They will be shown the
# link-unregistered-player message (in message.yml) on the disconnected
# screen.
kick-unregistered: false
# This is a timer that will notify unregistered users to register every few
# minutes.
auto-remind: true
# The interval for the auto-remind timer, this should be no less than
# 5-10 minutes. Note that this uses the units specified above in
# auto-every-unit.
auto-remind-every: 10
# Set these to true to inform players when they log in if they're linked to
# the web application. These correspond to the link-unregistered-player and
# link-registered-player messages in messages.yml.
notify-registered-player: true
notify-unregistered-player: true
# If you have a permissions system and you want the player to be placed
# in a group based on (un)registered status, set the following.
# If left blank the setting won't be used. If a group-synchronization
# feature is turned on, the 'registered-player-group' won't be used.
unregistered-player-group: Guest
registered-player-group: Member
notify-player-of-group: true
# If you want a player to be added to the 'registered-player-group' ONLY if:
# * they are a member of the unregistered-player-group OR
# * they have no assigned groups
# then set this to true.
registered-former-unregistered-only: true
# This is where we specify how to associate a Minecraft player with a web
# application user. We do this by matching up the player name with a name
# stored in the web application's database.
#
# If you want your players to use the same name on both the server and the
# web application, then you will need to provide the table and column
# information where the web application relates its user IDs with the user's
# name/login ID/login/username.
#
# If you want to allow them to use a different name on the web application,
# you need to add a custom field or column to your web application's database,
# and provide that table and column information here.
# ********** This version of the settings requires the minecraft player name
# ********** and forum username to be the same. See below for an alternate
# ********** configuration. Only one of these configurations should be
# ********** present in the file. Uncomment the one you want.
# # The name of the table which contains the columns:
# table-name: smf_members
# # Column on the table that contains the user ID. Typically something like
# # user_id or member_id
# user-id-column: id_member
# # If the player name is stored in a key-value pair of columns instead of
# # its own column, set this to true:
# # False for this configuration.
# uses-key: false
# # If you set 'linking-uses-key' to false, then set this to the column that
# # the playername is stored in. Otherwise, leave it empty.
# playername-column: member_name
# # If you set 'linking-uses-key' to true, then set the key column, value
# # column, and the key-name here. Otherwise, leave these fields empty.
# # Not needed for this configuration.
# key-name:
# key-column:
# value-column:
# ********** This version of the settings allows the player's minecraft name
# ********** and forum username to be different. See above for an alternate
# ********** configuration. Only one of these configurations should be
# ********** present in the file. Uncomment the one you want.
# ********** I'm assuming here, that you've made a custom profile field named
# ********** 'ingamename' on the forums.
# # The name of the table which contains the columns:
# table-name: smf_themes
# # Column on the table that contains the user ID. Typically something like
# # user_id or member_id
# user-id-column: id_member
# # If the player name is stored in a key-value pair of columns instead of
# # its own column, set this to true:
# # false for SMF.
# uses-key: true
# # If you set 'linking-uses-key' to false, then set this to the column that
# # the playername is stored in. Otherwise, leave it empty.
# # SMF: Not used in this configuration.
# playername-column: member_name
# # If you set 'linking-uses-key' to true, then set the key column, value
# # column, and the key-name here. Otherwise, leave these fields empty.
# # Not needed for SMF.
# key-name: cust_ingamename
# key-column: variable
# value-column: value
# Requirements
# -----------------------------------------------------------------------------
# Control access to the game on the basis of various settings.
requirement:
avatar:
# With this enabled, players that do not have an avatar will be kicked.
enabled: true
# Table that contains the avatar column
table-name: smf_members
# Column on the avatar table that contains the user ID.
user-id-column: id_member
# Column on the avatar table that contains the avatar information. If this
# column contains data, the user is assumed by CommunityBridge to have an
# avatar.
avatar-column: avatar
minimum-posts:
# With this enabled, players that do not have the minimum number of posts
# will be kicked.
enabled: true
# Table that contains a user's post count.
table-name: smf_members
# Column containing the user's ID on the post count table.
user-id-column: id_member
# Column containing the user's post count.
post-count-column: posts
# Minimum number of posts to require.
post-count: 1
# Statistics Tracking
# -----------------------------------------------------------------------------
# In general, to make this work, your web application will need to support
# custom profile fields or a similar feature. CommunityBridge will put the
# information in the database. It is up to you to configure your web application
# so that it displays the information.
statistics:
# Enables statistics tracking. Nothing will be tracked unless you also enable
# at least one of the trackers below.
enabled: true
# Name of the table to insert the tracking information on to.
table-name: smf_themes
# Name of the column that contains the player's User ID on the table.
user-id-column: id_member
# Set this to true if data on the table is stored in key-value pairs.
uses-key: true
# If uses-key is true, set these as well. These settings are not used if
# uses-key is false.
key-column: variable
value-column: value
# Some web applications require an insert the first time a custom profile
# field is filled with data (SMF, for example). If that's the case, enable
# this and provide the required information.
# This section is essential for statistic tracking to work on SMF.
insert:
enabled: true
method: smf
# Required for the 'smf' method. Most likely id_theme.
theme-id-column: id_theme
# Required for the 'smf' method. Most likely value is 1.
theme-id: 1
# Individual trackers
# -------------------
trackers:
# Below each tracker can be enabled and configured. For each tracker:
# * If uses key is true, set column-or-key-name to the key name OR
# If uses key is false, set column-or-key-name to the column name
# For some trackers, there is a formatted version as well. For those
# trackers, the formatted version is optional. If you wish to use the
# formatted version, set the formatted-column-or-key-name appropriately.
# Online Status: Show a player is playing on the server in the forums.
online-status:
enabled: true
column-or-key-name: cust_online
# Set this to what should be stored in the field when the user is online.
online-value: 'Yes'
# Set this to what should be stored in the field when the user is offline.
offline-value: 'No'
# Last Online: Record the time that player was last online
last-online:
enabled: true
column-or-key-name: cust_lastonline
formatted-column-or-key-name:
# Game Time: Record how much time the player has played.
# Requires the last-online tracker to be turned on as well.
game-time:
enabled: true
column-or-key-name: cust_gametime
formatted-column-or-key-name: cust_gametimeformatted
# Player's current level
level:
enabled: true
column-or-key-name: cust_level
# Player's current progress toward next level
current-xp:
enabled: true
column-or-key-name: cust_currentxp
formatted-column-or-key-name: cust_currentxpformatted
# Player's current XP total
total-xp:
enabled: true
column-or-key-name: cust_totalxp
# Player's current health
health:
enabled: true
column-or-key-name: cust_health
# Lifeticks; the amount of time the player has been alive.
lifeticks:
enabled: true
column-or-key-name: cust_lifeticks
formatted-column-or-key-name: cust_lifeticksformatted
# Wallet. The amount of money the player currently has. REQUIRES VAULT.
wallet:
enabled: true
column-or-key-name: cust_wallet
# Web Application Group Configuration
# -----------------------------------------------------------------------------
#
# Some terminology:
# - Primary group: A group setting such that the setting can only be set to
# exactly one group. Most web applications have such a feature. Very few
# permissions systems have such a feature.
# NOTE: If you wish to utilize the primary group synchronization feature and
# your permissions system does not support primary groups, then you must
# list groups you wish to be synchronized into the web applications
# primary group field in the "groups-treated-as-primary" setting (see
# the synchronization options below). The permissions systems that this
# applies to are: bPerms, PermissionsBukkit, PermissionsEx, and Vault.
# - Secondary group(s): A group setting such that the setting can be set to
# multiple groups or none.
# This section describes to Communitybridge how the web application stores
# user group/role information.
app-group-config:
# If the web application has a primary group/role feature, configure it here.
primary:
enabled: true
# The table that contains the primary group ID.
table-name: smf_members
# The column on the table that contains the user ID.
user-id-column: id_member
# If the primary group is stored in a key-value pair, set this to true.
uses-key: false
# The column that the primary group ID is stored in. If uses-key is true,
# this is the column that the "value" of the key-value pair is stored in.
group-id-column: id_group
# If you set uses-key to true, then set the following three settings:
# Key name for the key-value pair.
key-name:
# Column that the key name is in
key-column:
# If the web application has a secondary groups feature, configure it here.
secondary:
enabled: true
# The table that contains the secondary groups.
table-name: smf_members
# The column on the table that contains the user ID.
user-id-column: id_member
# Storage method. Set to one of the following:
# - single: All the group ids in a single row & column separated by the
# delimiter specified below.
# - key-value: All the group ids are in a single row & column, separated
# by the delimiter specified below, on a table that stores
# its data in key-value pairs
# - multiple-key-value: Group IDs are stored on a table of key-value pairs,
# where the key name can appear in multiple rows.
# - junction: The table can contain multiple rows for a given user_id,
# each with their own group_id.
storage-method: single
# The column that the group ID(s) are stored in:
# (For the key-value method, this is the 'value' column)
group-id-column: additional_groups
# For single-column or key-value storage methods, the delimiter/separator
# that separates the group IDs:
# (ignored for junction and multiple-key-value storage method)
group-id-delimiter: ','
# For the key-value storage method:
# (ignored for the junction and single methods)
# Key name for the key-value pair.
key-name:
# Column that the key name is in
key-column:
# Simple Synchronization Configuration
# NOTE: If you wish to utilize the primary group synchronization feature and
# your permissions system does not support primary groups, then you must
# list groups you wish to be synchronized into the web applications
# primary group field in the "groups-treated-as-primary" setting. The
# permissions systems that this applies to are: bPerms, PermissionsBukkit,
# PermissionsEx, and Vault.
simple-synchronization:
# Set this to true for simple synchronization
enabled: true
# Controls the "direction" of synchronization.
# Options are: two-way, web-application, or minecraft.
# - two-way: Changes on either side are synchronized to the other.
# - web-application: Changes made in the web-application are
# synchronized to the Minecraft server.
# - minecraft: Changes made in Minecraft are synchronized to the
# web-application.
direction: two-way
# Set this to true if you want the player to be notified when their primary
# group changes.
primary-group-change-notify: true
# This is a safety net. Since CommunityBridge directly modifies group
# membership information, there is a risk that a misconfiguration could
# cause the main administrative account (e.g. super-user) of a webapp to not
# have administrative privileges to the forum, potentially leaving the forum
# in a state where it cannot be administered. To protect against this
# possibility, provide the user-id of the main administrative account of the
# web application here. Generally, this is the account created when the web
# application was installed. For this user-id, group changes will not be
# synchronized from Minecraft to the web application, that is, the
# synchronization for this user will be as if direction was set to
# 'web' (see above). Be absolutely sure this user-id is your super-user
# all-access administrative account.
super-user-user-id: '1'
# If you're using primary group synchronization and a permissions system that
# does NOT have the notion of primary groups (bPerms, PermissionsBukkit,
# PermissionsEx, Vault) you must list permission group names that you wish to
# be synchronized into the user's primary group field on the web application
# here. Be sure to include these groups in the group-mapping as well.
groups-treated-as-primary: ['Guest', 'Member']
# List groups and group IDs to be synchronized here. On the left side of
# the colon put a web application's group ID. On the right side of the colon
# put the corresponding permissions group name. Only list group IDs and
# group names you wish to be synchronized.
# NOTE: Regarding ladders(promotions/inherited groups): Either ALL of the
# groups that are part of a ladder need to have entries on this table
# and have corresponding group on the web application or NONE of them
# should be on this list. It may be that you want to use the
# unregistered/registered group settings instead.
group-mapping:
'10' : 'Guest'
'9' : 'Member'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment