150 lines
6.0 KiB
Plaintext
150 lines
6.0 KiB
Plaintext
pyx.cookie_domain=.localhost
|
|
pyx.max_users=100
|
|
pyx.max_games=25
|
|
pyx.include_inactive_cardsets=false
|
|
pyx.broadcast_connects_and_disconnects=true
|
|
pyx.global_chat_enabled=true
|
|
pyx.game_chat_enabled=true
|
|
# allow fill-in-the-blank cards at all. Limits are set via constants in GameOptions.
|
|
pyx.allow_blank_cards=true
|
|
# allow identification codes to be used without HTTPS
|
|
pyx.insecure_id_allowed=true
|
|
# set this to some secure random value, and never change it, unless you want to break all codes
|
|
pyx.id_code_salt=
|
|
# comma-separated listed of IP addresses (v4 or v6) from which users are considered admins.
|
|
# IPv6 addresses must be fully spelt out without omitting groups of 0s with ::
|
|
pyx.admin_addrs=127.0.0.1,0:0:0:0:0:0:0:1
|
|
# comma-separated list of strings banned from appearing in nicks.
|
|
pyx.banned_nicks=xyzzy
|
|
|
|
# The name of a class that implements net.socialgamer.cah.util.ChatFilter.ShadowBannedStringProvider
|
|
# which will then be called to get the shadowbanned strings.
|
|
# Ideally we'd just have the list of strings here, but providing unicode characters directly gets
|
|
# mangled during the build process, and for some reason unicode escapes were not being loaded
|
|
# properly at runtime.
|
|
# If this is blank, it is ignored and no strings will cause such filtering to occur.
|
|
pyx.shadowban_strings_provider=
|
|
# Settings for global chat protection. Some of these do not apply to game chats.
|
|
# Ratio of 'basic' characters to length of message. Basic characters are defined by
|
|
# Character.isJavaIdentifierPart, which stipulates:
|
|
# -it is a letter
|
|
# -it is a currency symbol (such as '$')
|
|
# -it is a connecting punctuation character (such as '_')
|
|
# -it is a digit
|
|
# -it is a numeric letter (such as a Roman numeral character)
|
|
# -it is a combining mark
|
|
# -it is a non-spacing mark
|
|
# -isIdentifierIgnorable(codePoint) returns true for the character
|
|
pyx.global.basic_ratio=.5
|
|
# A message must have at least this many characters for that ratio to apply.
|
|
pyx.global.basic_min_len=10
|
|
# Message longer than min_len characters cannot have more than ratio of CAPS CHARACTERS
|
|
pyx.global.capslock_min_len=50
|
|
pyx.global.capslock_ratio=.5
|
|
# messages longer than min_len characters require at least min_count spaces between words
|
|
pyx.global.spaces_min_len=50
|
|
pyx.global.spaces_min_count=4
|
|
# this many messages to global chat in that many seconds is considered chatting too fast.
|
|
pyx.global.flood_count=3
|
|
# seconds
|
|
pyx.global.flood_time=25
|
|
# Messages with more than repeated_words_min_count words must have at least
|
|
# repeated_words_unique_ratio unique words in them.
|
|
pyx.global.repeated_words_min_count=10
|
|
pyx.global.repeated_words_unique_ratio=.5
|
|
|
|
# Settings for game chat protection. If it isn't listed here, it isn't supported.
|
|
# same but for game chats
|
|
pyx.game.flood_count=5
|
|
# seconds
|
|
pyx.game.flood_time=30
|
|
|
|
# Game options
|
|
pyx.game.min_score_limit=4
|
|
pyx.game.default_score_limit=8
|
|
pyx.game.max_score_limit=69
|
|
pyx.game.min_player_limit=3
|
|
pyx.game.default_player_limit=10
|
|
pyx.game.max_player_limit=20
|
|
pyx.game.min_spectator_limit=0
|
|
pyx.game.default_spectator_limit=10
|
|
pyx.game.max_spectator_limit=20
|
|
pyx.game.min_blank_card_limit=0
|
|
pyx.game.default_blank_card_limit=0
|
|
pyx.game.max_blank_card_limit=30
|
|
|
|
# for production use, use postgres
|
|
#hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
|
|
#hibernate.driver_class=org.postgresql.Driver
|
|
#hibernate.url=jdbc:postgresql://localhost/pyx
|
|
|
|
# for local use, you can also use sqlite
|
|
hibernate.dialect=net.socialgamer.cah.hibernate.SqliteDialect
|
|
hibernate.driver_class=org.sqlite.JDBC
|
|
hibernate.url=jdbc:sqlite:pyx.sqlite
|
|
|
|
# these likely need specified even with sqlite, even though they don't matter
|
|
hibernate.username=pyx
|
|
hibernate.password=CorrectHorseBatteryStaple
|
|
|
|
# debugging information
|
|
hibernate.sql.show=false
|
|
hibernate.sql.format=false
|
|
|
|
# second-level hibernate cache.
|
|
# vastly reduces database load at expense of data potentially being stale.
|
|
# use an in-memory cache provider. this is not suitable for long-term use, however I am using it for
|
|
# my servers for the time being -- better than nothing
|
|
#hibernate.cache.use_second_level_cache=true
|
|
#hibernate.cache.use_query_cache=true
|
|
#hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
|
|
|
|
# to turn it off, use these settings instead. you will hit the db a lot more often.
|
|
hibernate.cache.use_second_level_cache=false
|
|
hibernate.cache.use_query_cache=false
|
|
hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider
|
|
|
|
# If the server should send replay IDs to clients after certain events, and if the client should
|
|
# display a permalink to them. You must be using the KafkaMetrics implementation, and have
|
|
# pyx-metrics-processor running somewhere to put the data into a database, and have
|
|
# pyx-metrics-viewer running somewhere connected to that database. The URL to the viewer is provided
|
|
# below. If you don't know what any of that is, you certainly don't have it running, so leave these
|
|
# set to false.
|
|
pyx.metrics.game.enabled=false
|
|
pyx.metrics.round.enabled=false
|
|
pyx.metrics.session.enabled=false
|
|
pyx.metrics.user.enabled=false
|
|
# Format string to the URL to view previous gameplay. Must contain exactly one %s which will be
|
|
# replaced with the event's ID.
|
|
pyx.metrics.game.url_format=http://localhost:4080/game/%s
|
|
pyx.metrics.round.url_format=http://localhost:4080/round/%s
|
|
pyx.metrics.session.url_format=http://localhost:4080/session/%s
|
|
pyx.metrics.user.url_format=http://localhost:4080/user/%s
|
|
# Metrics logger implementation.
|
|
pyx.metrics.impl=net.socialgamer.cah.metrics.NoOpMetrics
|
|
|
|
# for kafka metrics
|
|
kafka.host=kafka-host:9092
|
|
kafka.topic=pyx-metrics
|
|
# if this is false, the rest don't matter
|
|
kafka.ssl=false
|
|
kafka.truststore.path=
|
|
kafka.truststore.password=
|
|
# if this is false, the rest don't matter
|
|
kafka.ssl.usekey=false
|
|
kafka.keystore.path=
|
|
kafka.keystore.password=
|
|
kafka.key.password=
|
|
# only SCRAM-SHA-512 supported; if this is false, the rest don't matter
|
|
# must be used with ssl, does not need client key
|
|
kafka.sasl=false
|
|
kafka.sasl.username=
|
|
kafka.sasl.password=
|
|
|
|
|
|
|
|
# GeoIP database for analytics. If unset, will not be used.
|
|
# Only used if the above is not NoOpMetrics.
|
|
# See README.md for instructions.
|
|
geoip.db=
|