Auth Redux is a drop-in replacement for the builtin authentication handler of Minetest.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

samples.mt 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. #####################################################################
  2. #
  3. # only allow administrator access (by username or IP address)
  4. #
  5. #####################################################################
  6. pass any
  7. if $addr eq "172.16.100.1"
  8. if $addr eq "172.16.100.2"
  9. if $name eq "admin"
  10. continue
  11. fail now
  12. #####################################################################
  13. #
  14. # block a range of IP addresses using wildcards
  15. #
  16. #####################################################################
  17. try "This subnet is blocked by the administrator."
  18. fail any
  19. if $addr is /192.88.99.*/
  20. if $addr is /203.0.113.*/
  21. if $addr is /192.168.*.*/
  22. continue
  23. pass now
  24. #####################################################################
  25. #
  26. # only allow access from whitelisted players
  27. #
  28. #####################################################################
  29. try "The account '$name' is not permitted to join this server."
  30. pass any
  31. if $name eq "admin"
  32. when @whitelist.txt eq $name
  33. continue
  34. fall now
  35. #####################################################################
  36. #
  37. # never allow access from blacklisted players
  38. #
  39. #####################################################################
  40. try "The account '$name' is not permitted to join this server."
  41. fail all
  42. when @blacklist.txt eq $name
  43. continue
  44. pass now
  45. #####################################################################
  46. #
  47. # notify players that the server is unavailable right now
  48. #
  49. #####################################################################
  50. try "The server is temporarily offline for maintenance."
  51. fail now
  52. #####################################################################
  53. #
  54. # disallow players with all uppercase names
  55. #
  56. #####################################################################
  57. try "Sorry, we do not accept all uppercase player names."
  58. fail all
  59. $name eq uc($name)
  60. continue
  61. pass now
  62. #####################################################################
  63. #
  64. # disallow players with very short or very long names
  65. #
  66. #####################################################################
  67. try "Sorry, this player name is too long or too short."
  68. fail any
  69. $name->len() gt 20
  70. $name->len() lt 3
  71. continue
  72. pass now
  73. #####################################################################
  74. #
  75. # disallow users that appear to be bots or guests
  76. #
  77. #####################################################################
  78. try "Sorry, we do not accept autogenerated player names."
  79. fail any
  80. if $name is /;*;*##/
  81. if $name is /;*;*###/
  82. if $name is /Player#/
  83. if $name is /Player##/
  84. if $name is /Guest#/
  85. if $name is /Guest##/
  86. continue
  87. pass now
  88. #####################################################################
  89. #
  90. # disallow new players when the server is near capacity
  91. #
  92. #####################################################################
  93. try "There are too many players online right now."
  94. fail all
  95. $is_new eq $true
  96. $cur_users gte $max_users->mul(0.8)
  97. continue
  98. pass now
  99. #####################################################################
  100. #
  101. # prevent players from joining with a reserved name
  102. #
  103. #####################################################################
  104. try "Sorry, this acccount has been permanently restricted."
  105. fail all
  106. $is_new eq $true
  107. when ("moderator","server","client","owner","player","system","operator","minetest") is $name
  108. continue
  109. pass now
  110. #####################################################################
  111. #
  112. # disallow players that have been inactive for 90 days
  113. #
  114. #####################################################################
  115. try "Sorry, this acccount has been disabled for inactivity."
  116. fail all
  117. if $is_new eq $false
  118. if age($newlogin) gt 90d
  119. continue
  120. pass now
  121. #####################################################################
  122. #
  123. # disallow new players during the weekends
  124. #
  125. #####################################################################
  126. try "Sorry, we are not accepting new players at this time."
  127. fail now
  128. if $is_new eq $true
  129. when ("Sat","Sun") eq $clock->day()
  130. continue
  131. pass now
  132. #####################################################################
  133. #
  134. # prevent players from spam-logging the server
  135. #
  136. #####################################################################
  137. try "You are doing that too much. Please wait awhile."
  138. fail all
  139. if $is_new eq $false
  140. if age($newlogin) lt 15s
  141. continue
  142. pass now