* Add API functions
Add API to allow other mods to access useful functions. (ban, unban, list bans, check if player is banned)
Add name caching to speed up access to frequent players id
Restructure the database tables for primary keys on names and ip addresses to reduce database access time
Track number of logins for individual names and ip addresses and the last login to provide a clearer account of each id's activity
* Create sban_update.sql
* Update README.md
* fix crash in prev commit
rogue string spread over multiple lines without concatenation
* fix errors preventing travis build
* Update schema.md
* Update LICENSE
* Process expired bans during server start
clean up expired bans on server start to reduce prejoin triggering for every banned player attempting to join
* fix typos
missing commas added and space removed
* Enhance the performance of formspec generation
* Fixes: crash parsing expired bans
Correct datatype handling for integer fields in the sql statements
Refactor code in update_ban_record() to use cached ban data
Use correct param for update_ban_record id_key
* Add annotation & ip caching
* Update README.md
* Fix travis errors
* Fix some travis warnings
* Fix travis warnings
* Fix travis warnings
* Fix crashes
Init cap variable
pass ip string instead of table to ip_key function when building the cache
* Add type checking for ban records
Prevent rogue text entries being added to id field on db update
* Fix crash in caching on first run
Check login exists when building the cache
Initialise cap outside the function
* Alter SQL to fix any text id entry in bans table
* Fix crash when showing ban record
* Fix ban_record command truncating output for admin
* Fix export to xban2
* Cosmetic format on ceateDb string
added primary keys to whitelist & violation tables
* Refactor process_expired_bans function
remove repetitive calls to update_ban_record()
add vacum to shrink the table
* Fix missing # symbols in process_expired_bans()
* Added db indexes to tables and merged with latest dev changes (#26)
* Added db indexes to tables - #25
Formatted and used consistent db column types as well as added various table indexes to the create db script and upgrade script. This prevents Sqlite from doing slow table scans. also fixed string formatting error caused by no default max ban expiry setting
* Fix minor issues
tab spacing
add dev bypass for owner
add expires zero check
remove tostring() cast on cache id
rename id_key to more appropriate id and change type in description
remove primary key in violation table (better structure needed)
* Remove white space preventing travis build
* Fix tabs and remove violation primary key
* Add id & ip cache for names on prejoin event
Simplify join method by caching id and ip on prejoin, removing the need
to call the functions in join. Uses a minetest.after() function call to
clean up
* Refactor join cache clearing mechanism
refactor the join cache clearing mechanism to manage orphaned entries
and work correctly
* Refactor violation functions
Change violations table structure so it can be indexed
Remove id size limit on integer primary keys
Add missing dev check in kick routine
Remove transaction statement; db:exec uses the method internally
Add primary key index to violations table
Remove primary key on expired id; column isn't unique
Initialise active expires on db update
* Modify api ban expires handling. Add api doc.
extend possible types and values for the api ban command to allow
alphanumerical time expression i.e. 1w1d12h30m30s as well as seconds to
expiry & UTC seconds value of expiry.
Create and add API documentation.
* Restructure config settings
Restructure db config table
Refactor config code
Add mod_version to first run initialisation
Rename fixed table to reflect it's temporary nature
Explicitly name table columns for the fix INSERT statement
Modify config INSERT statements to reflect new schema
Add missing last_login to address_tmp INSERT
* Fix Travis build warnings
* Add expired ban processing
Check and update expired bans in active, moving them to expired and
filling in the reqd fields.
* Modify debug bool for release
added whois privilege.
added /whois <player> command to display names and ip addresses associated with the player.
added names per ip functionality restricting new players to a limited number of accounts for an ip.
Requires the setting max_names_per_ip = <limit> adding to minetest.conf to activate the functionality.
Existing players exceeding the threshold will not bay able to create further accounts.
Renamed poorly named qbc function to active_ban
* Obvious and simple luacheck motivated fixes.
* Use minetest.log().
* Avoid single execution loops.
contentious, but correct. Needs testing for sure.
* add a GUI
adds the convenience of a GUI to administer ban/tempban/unban and check player ban records
* rearange code structure and add checks, tidy up
* change chat command
* add textures
* Update README.md
* fix missing name in unban logging
* Update README.md
* fixes issue #1
* remove background for screen
* fix error with name in prejoin
* fix crash in prejoin & missing declaration in ban
* dont display list if it's empty
* add missing assingment for prev commit
* add info if no record found when using the gui
* add missing format to active_ban_record
* add conf setting for tempban duration
* Update README.md
* check IP on prejoin
* add a check for data in prejoin
* get ban data with ip if name fails in prejoin
* simplify ban search for prejoin event
* Properly fix single-query sql sequences.
* Luacheck fixes.
* Since `default` is optional (and should be), fix crash if it is missing.
* Fix "nil unbanned by..." display issue.
* add a GUI
adds the convenience of a GUI to administer ban/tempban/unban and check player ban records
* rearange code structure and add checks, tidy up
* change chat command
* add textures
* Update README.md
* fix missing name in unban logging
* Update README.md
* fixes issue #1
* remove background for screen
* fix error with name in prejoin
* fix crash in prejoin & missing declaration in ban
* dont display list if it's empty
* add missing assingment for prev commit
* add info if no record found when using the gui
* add missing format to active_ban_record
* add conf setting for tempban duration
* Update README.md
* check IP on prejoin
* add a check for data in prejoin
* get ban data with ip if name fails in prejoin
* simplify ban search for prejoin event