Skip to content
Browse files

Merge branch 'release-1.10'

  • Loading branch information...
alexanderkress committed May 31, 2018
2 parents 28aa413 + 315c540 commit b2970f6f49d6cffa47182e04533aa23b85994da0
Showing with 1,415 additions and 173 deletions.
  1. +20 −0 .editorconfig
  2. +4 −0 .gitignore
  3. +1 −1 .travis.yml
  4. +135 −0
  5. +46 −0
  6. +42 −0
  7. +1 −1 LICENSE
  8. +17 −9
  9. +7 −0
  10. +1 −0 VERSION
  11. +6 −2 conf/settings.conf
  12. +12 −12 debian-startscript
  13. +1 −0 debian/compat
  14. +4 −0 debian/conffiles
  15. +20 −0 debian/control
  16. +36 −0 debian/copyright
  17. +19 −0 debian/postinst
  18. +12 −0 debian/postrm
  19. +19 −0 debian/prerm
  20. +10 −0 debian/rules
  21. +3 −0 debian/watch
  22. +54 −16 doc/
  23. +496 −0 doc/commands.html
  24. BIN lib/GeoIP.dat
  25. +8 −1 setup.cfg
  26. +1 −1
  27. +439 −129
  28. +1 −1 systemd-spunkybot.service
@@ -0,0 +1,20 @@

root = true

charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

trim_trailing_whitespace = false

indent_size = 2

indent_style = tab
@@ -6,6 +6,10 @@ __pycache__

@@ -8,4 +8,4 @@ branches:
- pip install flake8
- flake8 --ignore=E501,E265,E266,E402 .
- flake8 --ignore=E501,E265,E266,E402,E722 .
@@ -0,0 +1,135 @@
# Changelog
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](

## [Unreleased]

## [1.10.0] - 2018-05-31
### Added
* Added option for automatic expiration of warnings
* Added option to kick players for using bad words
* Added option to display multi-kill messages
* Added option "free" to release lock from forced team
* Added option to define ban duration for command `!ban`
* Added command `!grudge [<name>]` to grudge a player for team killing
* Added command `!gear` to set allowed weapons
* Added command `!forgiveclear <name>` to clear player team kills
* Added command `!forgiveinfo <name>` to display a players team kills
* Added command `!forgivelist` to list players who killed you
* Added command `!forgive [<name>]` to forgive team kills
* Added command `!regulars` to display regular players online
* Added command `!unreg <name>` to remove player from regular group
* Added commands to change the gametype
* Added support for old <ut_name> map names
* Added support for latest Urban Terror 4.3.3 release
* Added support for ioquake3 binary
* Added support for macOS 10.13 and Ubuntu 18.04
* Added reason 'score' to reason dictionary
* Added "Top Objectives" awards for CTF and Bomb mode

### Changed
* Do not show forgive notice for grudged players
* Clear team kills for command `!warnclear` and `!clear`
* Clear warnings if already expired
* Command `!warninfo` shows now all active warnings
* Command `!swap` moves admin using command if playerB is not given
* Command `!tempban` supports now up 1 sec to 3 days periods
* Show msg "Planted?" when bomb explodes
* Introduced detonation time for bomb mode
* Imported latest GeoIP database (April 2018)
* Unified warn system: warnings + team kills are now combined
* Converted loopback/localhost to

### Fixed
* Fixed #50: Improve parsing rotation messages file
* Fixed #49: Ban directly for 15 mins
* Fixed #48: Extend max tempban duration to 3 days
* Fixed #47: Show last maps only for nextmap/map votes
* Fixed #46: Add commands to change the gametype
* Fixed #15: Add command `!grudge [<name>]` to grudge a player for team killing
* Various minor bug fixes

## [1.9.0] - 2017-05-14
### Added
* Added Monster Kill counter
* Added group Super Admins (level 90) with same rights as Head admins
* Added option to kill all opponents when bomb exploded or is defused
* Added option to autokick spawn killers
* Added option to limit successful nextmap votes
* Added option to enable/disable sending heartbeat
* Added option to display rule as chat/bigtext/server message
* Added UrT bot support with commands `!bots on/off` and `!addbots`
* Added support for `@bigtext MESSAGE` in rotation messages
* Added command `!lastmaps` to list the last played maps
* Added command `!kickall <pattern>` to kick players matching pattern
* Added command `!restart` to perform a restart of the map
* Added command `!status` to report the status of the bot
* Added command `!id <name>` to show IP, guid and auth of player
* Added command `!tell <name>` to tell a msg to a specific player
* Added command `!afk <name>` to force an afk player to spec
* Added command `!spec` to move yourself to spectator
* Added command `!exit` to display last disconnected player
* Added command `!kickbots` to kick all bots
* Added command option `@locate <name>`
* Added shortcut `!lc` for command `!locate`
* Added public welcome message
* Added help for each command, e.g. `!help tempban`
* Added handler for callvote and vote_passed
* Added systemd service and sysVinit file
* Added support for Debian 9 Stretch and Ubuntu 16.10

### Changed
* Show team mates that bomb was tossed or collected
* Show number of players in each team when using command `!teams`
* Show number of kills when killspree is ended
* Show bomb planted/defused server message
* Show survivor winning team server message
* Show ban reason when banned player tries to connect
* Show nextmap at map begin in dynamic cycle
* Show authname in welcome message
* Improved displaying country for bots or in local LAN
* Improved message "bomb has been planted"
* Reset warn-timer when clearing all warnings
* Extended reason dictionary with sk, wh, insult, autojoin, 999
* Allowed configuration of RCON_DELAY
* Allowed port 1024 again (many latin players use it)
* Imported latest GeoIP database

### Fixed
* Fixed issue #43: added command `!exit` to display last disconnected player
* Fixed issue #42: added support for `@bigtext MESSAGE` in rotation messages
* Fixed issue #41: added bot support
* Fixed issue #40: added support for command `!instagib on/off`
* Fixed issue #39: added support for DB ID and authname for command `!xlrstats`
* Fixed issue #37: added group Super Admins (level 90)
* Fixed issue #32: limit length of name to 20 characters
* Various minor bug fixes

## [1.8.0] - 2017-10-23
### Added
* Added support of bot commands in rotating messages: `@admins`, `@nextmap` and `@time`
* Added command `!rain <on/off>` to enable/disable raindrops in maps
* Added command `!exec <file>` to execute the given scriptfile
* Added command `!reload` to reload the map
* Added command `!password [<password>]` to set or remove a private server password
* Added support to find players by their auth-name
* Added additional debug logging and display server CVARs

### Changed
* Reworked Rules/Rotation Messages class
* Reworked RCON class
* Improved debug messages
* Imported latest GeoIP database

### Fixed
* Fixed issue #33: avoid output of duplicate messages
* Fixed issue #34: catch python exception
* Fixed debug output of gamelog path
* Various minor bug fixes

@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [][version]

@@ -0,0 +1,42 @@
# Community Information & Contributing

If you want to get involved, whether in terms of asking a question, helping other users, introducing new people to Spunky Bot, or helping with the software or documentation, we appreciate your contributions to the project.

# Contributing Code (Features or Bugfixes)

The Spunky Bot project keeps its source on GitHub at [](

The project takes contributions through GitHub [pull requests](

In order to keep the history clean and better audit of incoming code, we will require resubmission of pull requests that contain merge commits. Use "git pull -rebase" vs "git pull" and "git rebase" vs "git merge". Also make sure to use topic branches to keep your additions on different branches, such that they will not make conflicting commits later.

We will then review your contributions and discuss issues with you.

Be patient, your request might not get merged right away, we also try to keep the development branch more or less usable, so we like to examine pull requests carefully, which takes time.

Patches should always be made against the 'develop' branch.

Keep in mind that small and focused requests are easier to check and accept, having example cases also help us understand the utility of a bug fix or a new feature.

Contributions can be for new features like modules, or to fix bugs you or others have found.

We like simple, readable code and consistent, conservatively extending, backwards-compatible improvements. The code developed for Spunky Bot must support Python 2.6+. Please also use a 4-space indent and no tabs. We do not enforce 80 characters lines, we are fine with 120-160.

# Mailing List Information

The Spunky Bot [Mailing List]( is for sharing tips, answering questions, and general user discussions.

# Community Code of Conduct

The Spunky Bot community welcomes users of all types, backgrounds, and skill levels. Please treat others in the way you expect to be treated, keep discussions positive and avoid discrimination of any kinds, profanity, or engaging in controversial debates.

Posts to mailing lists should remain focused on Spunky Bot and game server administration. Abuse of these community guidelines is not tolerated and may result in banning from community resources.

# Contributors License Agreement

By contributing you agree that these contributions are your own, and you grant a full, complete, irrevocable copyright license to all users and developers of the project, present and future, pursuant to the [license]( of the project.
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2013-2017 Spunky Bot contributors
Copyright (c) 2013-2018 Spunky Bot contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
@@ -9,11 +9,11 @@ The code of Spunky Bot is inspired by the eb2k9 bot by Shawn Haggard, which was

[![Build Status](](
[![PyPI version](](
[![Python version](,%202.7-yellow.svg)](
[![Code Health](](
[![Codacy Grade](](
[![Codacy Grade](](

If you want to know more, this is a list of selected starting points:

@@ -34,18 +34,18 @@ If you want to know more, this is a list of selected starting points:

## Environment
- Urban Terror 4.1.1 / 4.2.023 / 4.3.2
- Urban Terror 4.1.1 / 4.2.023 / 4.3.3
- Python 2.6 / 2.7
- SQLite 3 database
- Cross-platform (tested on Debian 6 / 7 / 8 / 9, Ubuntu 12 / 14 / 16, CentOS 6 / 7, Mac OS X 10.12, Windows 7 / 10)
- Cross-platform (tested on Debian 6 / 7 / 8 / 9, Ubuntu 12 / 14 / 16 / 18, CentOS 6 / 7, macOS 10.13, Windows 7 / 10)
- Supporting 32-bit and 64-bit operating systems

## Quickstart
It's easy to get started with Spunky Bot:

- Download the [latest release](
- Read our [quickstart guide]( to get up and running
- Download the [latest release](
- Read our [quickstart guide]( to get up and running

### Configuration
- Modify the Urban Terror server config file as follows:
@@ -62,6 +62,10 @@ It's easy to get started with Spunky Bot:

- Connect to your game server and type `!iamgod` in the global chat to get the admin level "Head Admin". This command is only once available.

### Heartbeat
Spunky Bot has an option to send a heartbeat signal to our masterserver. There is no client data sent to the masterserver at all! Data in the heartbeat packet contain: Spunky Bot version, the port of the game server and the operating system version.
The information is used for generating global statistics and to determine operating system popularity.

## Documentation
You can find all the documentation in the [Wiki](
@@ -90,7 +94,7 @@ Spunky Bot is currently maintained under the [Semantic Versioning](http://semver
## Additional Information
For additional information, visit the Spunky Bot website at [](

If you have any questions about Spunky Bot or need help, please use the [mailing list]( or post the question on our [forum]( If you need help right now, you can also find us on [Twitter](
If you have any questions about Spunky Bot or need help, please use the [mailing list]( If you need help right now, you can also find us on [Twitter](

* Joining the mailing list:
* Send an email to <>
@@ -120,6 +124,8 @@ You can help us in different ways:

By contributing code to this project in any form, including sending a pull request via GitHub, a code fragment or patch via mail or public discussion groups, you agree to release your code under the terms of the MIT license that you can find in the [LICENSE]( file included in this source distribution.

Please see the [CONTRIBUTING]( guide for information regarding the contribution process.

## License
The code of Spunky Bot is released under the MIT License. See the [LICENSE]( file for the full license text.
@@ -130,10 +136,12 @@ The code of Spunky Bot is released under the MIT License. See the [LICENSE](http
- The library has been modified to fix some error handling issues and fulfill the PEP8 conformance. This file is released under the GNU General Public License.
- GeoIP: [](
- The library has been extended with the list `GeoIP_country_name` to support full country names (e.g. Germany for country_code DE). This file is released under the MIT License.
- GeoLite database: [](
- The GeoLite databases created by MaxMind are distributed under the Creative Commons Attribution-ShareAlike 4.0 International License.
- Schedule: [](
- This file is released under the MIT License.
- This file is released under the MIT License.

Urban Terror® and FrozenSand™ are trademarks of Frozensand Games Limited.
Urban Terror® and FrozenSand™ are trademarks, or registered trademarks of Frozensand Games Limited.

## Thank you!
@@ -0,0 +1,7 @@
# Reporting Security Issues

If you discover a security issue in Spunky Bot, please report it by sending an email to

This will allow us to assess the risk, and make a fix available before we add a bug report to the GitHub repository.

Thanks for helping make Spunky Bot safe for everyone.
@@ -0,0 +1 @@
Oops, something went wrong.

0 comments on commit b2970f6

Please sign in to comment.
You can’t perform that action at this time.