This plugin presents random words-based CAPTCHA testing to prevent bots logging onto your server.
You can configure the number of questions presented and the complexity of the question generated.
In this version, if a player/bot fails the test, s/he/it will be kicked with a message indicating that s/he/it failed the CAPTCHA test.
You can also set the punishment of failing the CAPTCHA test:
#
# This is the command being executed at the failur of CAPTCHA test
# This command will be executed as console.
# punishment: "tempban %player% 5m You failed CAPTCHA test"
punishment: "kick %player% %message%"
Test Server: TBI
Currently available CAPTCHA modules:
- RandomWordImage: ask a player to type the word on the map.
- RandomWord: ask a player to type the word at the specified location in the list
- SimpleMath: ask a player to type the answer of the specified question in the list of simple math question
- ReverseWrod: ask a player to type the word at the specified location in the list in the reverse order (dXDi -> iDXd)
- ReverseWrodImage: ask a player to type the word on the map in the list in the reverse order (dXDi -> iDXd)
Example of RandomWord CAPTCHA test
 
Example of RandomWord CAPTCHA test

Example of SimpleMath CAPTCHA test
 
 Commands:
- /captcha reload : reloads config.yml file.
- /captcha list : lists currently available CAPTCHA module.
- /captcha try : try out CAPTCHA challenge.  If you specified "Any", one of available modules will be automatically picked.
Permissions:
- captcha.bypass : allows you to bypass the captcha test.
Installation:
You just need to install CAPTCHA.jar in the plugins folder.
[SPOILER="config.yml"][/SPOILER][SPOILER="config.yml"]
Messages:
    ErrorMsg : "&c[CAPTCHA] : Some error occured."
HelpMessages:
    banner:
        msg: "=== &e[&aMergedSpawner Commands List (%version%)&e] &r==="
    help:
        msg: "&a/captcha or /captcha help : display this help menu."
    reload:
        msg: "&a/captcha reload : reloads config file."
        permission: "captcha.reload"
    debug:
        msg: "&a/captcha debug  : turn on / off the debug mode."
        permission: "captcha.debug"
    try:
        msg: "&a/captcha try : allow you to try the specified CAPTCHA challenge."
        permission: "captcha.try"
    list:
        msg: "&a/captcha list : lists available CAPTCHA type."
        permission: "captcha.list"
#
#
# This is the command being executed at the failur of CAPTCHA test
# This command will be executed as console.
# punishment: "tempban %player% 5m You failed CAPTCHA test"
punishment: "kick %player% %message%"
#
# Parameter to indicate which CAPTCHA module you wish to use
# Choices of CAPTHCA methods, CAPTCHA module will be randomly pick from the list
# available modules:
# RandomWord :
# SimpleMath :
# ReverseWord :
captcha_methods:
#  - RandomWord
#  - SimpleMath
#  - ReverseWord
  - RandomWordImage
  - ReverseWordImage 
#
# parameters for each CAPTHCA engine
CAPTCHA:
    RandomWord:
        instruction: "&e[CAPTCHA]: Type the &a%index% &eword you see in %captcha%"
    SimpleMath:
        instruction: "&e[CAPTCHA]: Type an answer of &a%index% &equestion you see in %captcha%"
        number_of_terms: 2
        max_number: 10
        multiply_division: false
    ReverseWord:
        instruction: "&e[CAPTCHA]: Type the &a%index% &eword you see in %captcha% &ein the reverse order."
    RandomWordImage:
        instruction: "&e[CAPTCHA]: Type the word you see on the map."
    ReverseWordImage:
        instruction: "&e[CAPTCHA]: Type the word you see on the map in the reverse order."
#
# the value used by various CAPTCHA generation module
# for example RandomWord module use this number for the length of words being
# generated
choice_length : 4
# the number of words to chose from
choice_count : 4
# message
success_message: "&e[CAPTCHA]: You seem to be a human!"
fail_message: "&c[CAPTCHA]: You do not appear to be a human!"
history_expire_message: "&e[CAPTCHA]: Successful CAPTCHA test result will expire in &a%time%."
history_never_expire_message: "&e[CAPTCHA]: Successful CAPTCHA test result will never expire."
#
# if this flag is true, the successful attmept will be time-stamped and recorded
# and the user don't need to do CAPTCHA test again, or until it expires.
remember_successful : true
#
# if the last successful atempt was older than time/days below
# the user will be asked to do CAPTCHA test again.
# -1 = no expiry.
history_expiry : 30d
#
# Data Storage
#
# if the following MySQL setting is configured, this plugin will use MySQL, otherwise, it will create player's individual
# file under userdata folder.
# if you already have user's captcha pass status in userdata folder, you can use '/captcha tosql' command to transfer
# the data to sql database.
DatabaseConfig:
#  MySQL:
#    host: localhost
#    port: 3306
#    user: root
#    password: yourpassword
#    database: CAPTCHA
#    captchatable: captcha
[/SPOILER][SPOILER="config.yml"][/spoiler][SPOILER="config.yml"]
[/SPOILER]