|
@@ -7,357 +7,8 @@ require 'geoip'
|
|
require 'socket'
|
|
require 'socket'
|
|
require 'timeout'
|
|
require 'timeout'
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-# .. allowed commands .. ROLES = CAPABILITIES
|
|
|
|
-# normal users have ROLE broadcast. Roles are defined on a per-user basis .. in a config.
|
|
|
|
-
|
|
|
|
-$version = "0.6em_specservers_dupe_election"
|
|
|
|
-$debug = 0
|
|
|
|
-
|
|
|
|
-$role_commands = Hash[
|
|
|
|
- #noinspection RubyStringKeysInHashInspection
|
|
|
|
- 'everyone' => %w(PING WHO C PART),
|
|
|
|
-
|
|
|
|
- 'broadcast_admin' => %w(BC_ID BC BC_ENDCOUNT),
|
|
|
|
- 'broadcast' => %w(REQ_BC BC_RE),
|
|
|
|
-
|
|
|
|
- 'specbot_admin' => %w(REQ_ASSIGN REQ_UNASSIGN REQ_PING REQ_ASSIGNMENTS REQ_MAXSERVERS DUPECHECK ELECTION),
|
|
|
|
- 'specbot' => %w(ASSIGN_RE UNASSIGN_RE PING_RE ASSIGNMENTS_RE REQ_DNS MAXSERVERS_RE),
|
|
|
|
-]
|
|
|
|
-
|
|
|
|
-$default_role = "everyone"
|
|
|
|
-
|
|
|
|
-# which role is talking to which role?
|
|
|
|
-# effectively it says: this (local) command is sent to that (remote) topic .. that certain topic is read by that user with that role.
|
|
|
|
-$role_dialogs = Hash[
|
|
|
|
- #noinspection RubyStringKeysInHashInspection
|
|
|
|
- 'everyone' => %w(everyone),
|
|
|
|
-
|
|
|
|
- 'broadcast_admin' => %w(broadcast),
|
|
|
|
- 'broadcast' => %w(broadcast_admin),
|
|
|
|
-
|
|
|
|
- 'specbot_admin' => %w(specbot),
|
|
|
|
- 'specbot' => %w(specbot_admin),
|
|
|
|
- ]
|
|
|
|
-
|
|
|
|
-$user_roles = Hash[
|
|
|
|
- #noinspection RubyStringKeysInHashInspection
|
|
|
|
- 'paul_tester' => %w(everyone broadcast specbot_admin),
|
|
|
|
-
|
|
|
|
- 'paul_dev_eggdrop' => %w(everyone broadcast),
|
|
|
|
- 'paul_eggdrop' => %w(everyone broadcast),
|
|
|
|
-
|
|
|
|
- 'paul_dev_specbot' => %w(everyone broadcast specbot),
|
|
|
|
- 'paul_specbot' => %w(everyone broadcast specbot),
|
|
|
|
-
|
|
|
|
- 'qw.nu' => %w(everyone broadcast),
|
|
|
|
- 'qw.nu_poster' => %w(everyone broadcast),
|
|
|
|
-
|
|
|
|
- 'mihawk_devA_specbot' => %w(everyone broadcast specbot),
|
|
|
|
- 'mihawk_devB_specbot' => %w(everyone broadcast specbot),
|
|
|
|
- 'mihawk_specbot' => %w(everyone broadcast specbot),
|
|
|
|
-
|
|
|
|
- 'armitage_specbot' => %w(everyone broadcast specbot),
|
|
|
|
- 'blaze_specbot' => %w(everyone broadcast specbot),
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-]
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-$qw_list = Array.new
|
|
|
|
-$qw_list = [
|
|
|
|
- "89.149.194.72:27700",
|
|
|
|
- "84.200.47.113:30000",
|
|
|
|
- "89.149.194.72:27500",
|
|
|
|
- "84.200.47.113:28502",
|
|
|
|
- "89.149.194.72:30000",
|
|
|
|
- "89.149.194.72:27600",
|
|
|
|
- "93.186.192.16:28502",
|
|
|
|
- "84.200.47.113:28501",
|
|
|
|
- "93.186.192.16:28501",
|
|
|
|
- "188.40.130.10:27502",
|
|
|
|
- "93.186.192.16:30000",
|
|
|
|
- "188.40.130.10:27599",
|
|
|
|
- "188.40.130.10:27503",
|
|
|
|
- "194.109.69.75:28000",
|
|
|
|
- "194.109.69.75:27500",
|
|
|
|
- "194.109.69.75:27501",
|
|
|
|
- "194.109.69.76:28504",
|
|
|
|
- "188.165.243.56:30000",
|
|
|
|
- "188.40.130.10:27501",
|
|
|
|
- "194.109.69.76:28502",
|
|
|
|
- "194.109.69.76:28501",
|
|
|
|
- "194.109.69.76:28503",
|
|
|
|
- "62.24.64.11:27501",
|
|
|
|
- "62.24.64.11:44444",
|
|
|
|
- "188.40.103.81:27600",
|
|
|
|
- "62.24.64.11:30000",
|
|
|
|
- "194.109.69.75:27502",
|
|
|
|
- "91.121.69.201:30000",
|
|
|
|
- "37.59.63.97:28504",
|
|
|
|
- "188.40.130.10:27500",
|
|
|
|
- "188.165.243.56:28009",
|
|
|
|
- "37.59.63.97:28501",
|
|
|
|
- "62.24.64.11:27500",
|
|
|
|
- "37.59.63.97:28503",
|
|
|
|
- "194.109.69.76:30000",
|
|
|
|
- "188.165.243.56:28008",
|
|
|
|
- "188.165.243.56:28006",
|
|
|
|
- "188.165.243.56:28001",
|
|
|
|
- "188.165.243.56:28002",
|
|
|
|
- "93.186.192.16:27500",
|
|
|
|
- "91.121.69.201:27600",
|
|
|
|
- "37.59.63.97:28502",
|
|
|
|
- "91.121.223.163:28001",
|
|
|
|
- "188.165.243.56:28003",
|
|
|
|
- "109.74.195.224:30000",
|
|
|
|
- "178.79.183.178:27500",
|
|
|
|
- "77.74.194.189:27501",
|
|
|
|
- "91.121.69.201:27502",
|
|
|
|
- "188.165.243.56:28007",
|
|
|
|
- "109.74.195.224:27500",
|
|
|
|
- "213.5.176.135:27502",
|
|
|
|
- "77.74.194.189:27504",
|
|
|
|
- "178.79.172.251:27600",
|
|
|
|
- "77.74.194.189:27502",
|
|
|
|
- "77.74.194.189:27503",
|
|
|
|
- "213.5.176.135:27500",
|
|
|
|
- "109.74.195.224:27501",
|
|
|
|
- "89.104.194.146:27504",
|
|
|
|
- "89.104.194.146:27503",
|
|
|
|
- "89.104.194.146:27508",
|
|
|
|
- "213.5.176.136:27510",
|
|
|
|
- "213.5.176.135:27501",
|
|
|
|
- "213.5.176.135:27503",
|
|
|
|
- "77.74.194.189:30000",
|
|
|
|
- "89.149.194.72:27800",
|
|
|
|
- "89.104.194.146:27502",
|
|
|
|
- "89.104.194.146:27666",
|
|
|
|
- "89.104.194.146:27507",
|
|
|
|
- "89.104.194.146:27509",
|
|
|
|
- "89.104.194.146:30000",
|
|
|
|
- "188.165.243.56:28004",
|
|
|
|
- "89.104.194.146:27500",
|
|
|
|
- "89.104.194.146:27501",
|
|
|
|
- "194.109.69.76:27500",
|
|
|
|
- "89.104.194.146:27506",
|
|
|
|
- "94.236.92.49:27501",
|
|
|
|
- "91.121.69.201:27501",
|
|
|
|
- "213.239.214.134:27500",
|
|
|
|
- "89.104.194.146:27510",
|
|
|
|
- "95.131.48.86:27502",
|
|
|
|
- "94.236.92.49:27500",
|
|
|
|
- "94.236.92.49:30000",
|
|
|
|
- "95.131.48.86:27504",
|
|
|
|
- "78.137.161.109:27501",
|
|
|
|
- "188.165.243.56:28005",
|
|
|
|
- "178.217.185.104:27500",
|
|
|
|
- "178.217.185.104:27600",
|
|
|
|
- "178.217.185.104:30000",
|
|
|
|
- "87.102.202.23:27502",
|
|
|
|
- "78.137.161.109:27500",
|
|
|
|
- "89.104.194.146:27505",
|
|
|
|
- "87.102.202.23:27505",
|
|
|
|
- "178.217.185.104:27501",
|
|
|
|
- "91.121.69.201:27500",
|
|
|
|
- "82.141.152.3:27501",
|
|
|
|
- "82.141.152.3:27500",
|
|
|
|
- "83.179.23.16:28002",
|
|
|
|
- "109.74.7.60:27500",
|
|
|
|
- "212.62.234.153:27502",
|
|
|
|
- "83.179.23.16:28003",
|
|
|
|
- "195.54.182.34:27500",
|
|
|
|
- "83.179.23.16:28005",
|
|
|
|
- "212.62.234.153:27503",
|
|
|
|
- "95.143.243.24:27600",
|
|
|
|
- "83.179.23.16:28001",
|
|
|
|
- "212.62.234.153:27504",
|
|
|
|
- "78.137.161.109:27502",
|
|
|
|
- "83.179.23.16:28004",
|
|
|
|
- "212.62.234.153:27501",
|
|
|
|
- "95.143.243.24:27500",
|
|
|
|
- "109.228.137.161:28501",
|
|
|
|
- "95.143.243.24:27900",
|
|
|
|
- "83.226.149.218:27500",
|
|
|
|
- "83.226.149.218:28001",
|
|
|
|
- "83.226.149.218:28002",
|
|
|
|
- "83.226.149.218:28003",
|
|
|
|
- "193.1.40.166:27975",
|
|
|
|
- "87.237.112.11:30000",
|
|
|
|
- "217.30.184.104:27500",
|
|
|
|
- "78.108.53.19:27500",
|
|
|
|
- "78.108.53.19:27501",
|
|
|
|
- "195.54.142.7:28001",
|
|
|
|
- "193.1.40.166:27500",
|
|
|
|
- "87.237.112.11:27501",
|
|
|
|
- "195.54.142.7:30000",
|
|
|
|
- "195.54.142.7:28007",
|
|
|
|
- "217.119.36.79:30000",
|
|
|
|
- "95.131.48.86:27501",
|
|
|
|
- "195.54.142.7:28002",
|
|
|
|
- "195.54.142.7:28008",
|
|
|
|
- "80.101.105.103:27500",
|
|
|
|
- "87.237.112.11:27502",
|
|
|
|
- "217.119.36.79:27500",
|
|
|
|
- "81.170.128.75:28501",
|
|
|
|
- "217.119.36.79:28001",
|
|
|
|
- "193.1.40.167:27500",
|
|
|
|
- "217.119.36.79:28003",
|
|
|
|
- "217.119.36.79:28002",
|
|
|
|
- "81.170.128.75:30000",
|
|
|
|
- "81.170.128.75:28504",
|
|
|
|
- "195.54.142.7:28005",
|
|
|
|
- "195.54.142.7:28010",
|
|
|
|
- "81.170.128.75:28503",
|
|
|
|
- "93.81.254.63:27502",
|
|
|
|
- "212.42.38.88:27504",
|
|
|
|
- "81.170.128.75:28502",
|
|
|
|
- "93.81.254.63:27500",
|
|
|
|
- "81.170.128.75:28000",
|
|
|
|
- "212.42.38.88:27500",
|
|
|
|
- "82.203.213.117:28002",
|
|
|
|
- "212.42.38.88:30000",
|
|
|
|
- "93.81.254.63:30000",
|
|
|
|
- "82.203.213.117:28001",
|
|
|
|
- "212.42.38.88:27501",
|
|
|
|
- "212.42.38.88:27503",
|
|
|
|
- "93.81.254.63:27503",
|
|
|
|
- "93.81.254.63:27501",
|
|
|
|
- "82.203.213.117:30000",
|
|
|
|
- "95.131.48.86:27503",
|
|
|
|
- "83.252.244.76:27500",
|
|
|
|
- "212.42.38.88:27502",
|
|
|
|
- "195.54.142.7:28003",
|
|
|
|
- "95.31.4.132:30000",
|
|
|
|
- "83.252.244.76:27501",
|
|
|
|
- "93.81.254.63:30001",
|
|
|
|
- "195.54.142.7:28006",
|
|
|
|
- "82.203.213.117:28003",
|
|
|
|
- "95.143.243.24:27700",
|
|
|
|
- "84.234.185.215:27503",
|
|
|
|
- "84.234.185.215:27500",
|
|
|
|
- "84.234.185.215:27519",
|
|
|
|
- "84.234.185.215:27508",
|
|
|
|
- "84.234.185.215:27506",
|
|
|
|
- "84.234.185.215:27505",
|
|
|
|
- "195.54.142.7:28004",
|
|
|
|
- "84.234.185.215:27501",
|
|
|
|
- "195.54.142.7:28009",
|
|
|
|
- "212.109.128.148:27501",
|
|
|
|
- "84.234.185.215:27502",
|
|
|
|
- "31.209.7.104:28501",
|
|
|
|
- "194.79.85.66:27501",
|
|
|
|
- "194.79.85.66:30000",
|
|
|
|
- "95.84.164.245:27501",
|
|
|
|
- "194.79.85.66:27502",
|
|
|
|
- "83.222.112.157:30000",
|
|
|
|
- "212.109.128.148:27500",
|
|
|
|
- "94.100.6.66:27500",
|
|
|
|
- "129.241.205.153:28000",
|
|
|
|
- "84.234.185.215:27507",
|
|
|
|
- "129.241.205.153:27500",
|
|
|
|
- "95.84.164.245:27500",
|
|
|
|
- "69.31.82.226:27501",
|
|
|
|
- "69.31.82.226:30000",
|
|
|
|
- "130.240.207.177:30000",
|
|
|
|
- "69.31.82.226:28100",
|
|
|
|
- "69.31.82.226:27500",
|
|
|
|
- "69.31.82.226:28101",
|
|
|
|
- "69.31.82.226:28010",
|
|
|
|
- "69.31.82.226:30001",
|
|
|
|
- "69.31.82.226:28000",
|
|
|
|
- "69.31.82.226:28002",
|
|
|
|
- "93.186.192.16:28000",
|
|
|
|
- "195.222.130.83:27500",
|
|
|
|
- "84.200.47.113:28000",
|
|
|
|
- "130.85.56.131:27500",
|
|
|
|
- "108.174.51.73:28003",
|
|
|
|
- "96.8.113.36:27501",
|
|
|
|
- "96.8.113.36:27500",
|
|
|
|
- "68.100.130.114:27501",
|
|
|
|
- "65.31.69.75:27500",
|
|
|
|
- "108.174.51.73:28006",
|
|
|
|
- "65.31.69.75:27508",
|
|
|
|
- "108.174.51.73:30000",
|
|
|
|
- "67.81.59.41:27500",
|
|
|
|
- "108.174.51.73:28004",
|
|
|
|
- "217.18.138.23:27505",
|
|
|
|
- "108.174.51.73:28001",
|
|
|
|
- "68.100.130.114:27500",
|
|
|
|
- "174.49.198.60:27502",
|
|
|
|
- "174.49.198.60:27503",
|
|
|
|
- "209.239.113.236:27500",
|
|
|
|
- "174.49.198.60:27515",
|
|
|
|
- "217.119.36.79:28000",
|
|
|
|
- "108.174.51.73:28005",
|
|
|
|
- "74.91.115.244:28001",
|
|
|
|
- "174.49.198.60:27500",
|
|
|
|
- "74.91.115.244:28000",
|
|
|
|
- "199.101.96.48:27501",
|
|
|
|
- "96.8.113.36:30000",
|
|
|
|
- "174.101.185.59:27500",
|
|
|
|
- "67.228.69.114:27502",
|
|
|
|
- "199.101.96.48:27500",
|
|
|
|
- "108.174.51.73:28002",
|
|
|
|
- "199.192.229.74:28001",
|
|
|
|
- "74.86.171.201:27502",
|
|
|
|
- "67.228.69.114:27501",
|
|
|
|
- "74.86.171.201:27500",
|
|
|
|
- "67.228.69.114:26666",
|
|
|
|
- "199.192.228.71:27501",
|
|
|
|
- "199.192.229.74:28003",
|
|
|
|
- "74.86.171.201:27501",
|
|
|
|
- "199.192.229.74:30000",
|
|
|
|
- "199.192.229.74:28002",
|
|
|
|
- "74.91.115.244:28002",
|
|
|
|
- "199.192.228.71:27500",
|
|
|
|
- "199.101.96.48:30000",
|
|
|
|
- "199.101.96.48:28000",
|
|
|
|
- "199.192.229.74:28004",
|
|
|
|
- "199.192.228.71:30000",
|
|
|
|
- "65.31.238.37:27500",
|
|
|
|
- "31.209.7.104:28000",
|
|
|
|
- "208.131.136.169:27500",
|
|
|
|
- "66.212.17.78:27500",
|
|
|
|
- "200.177.229.11:27510",
|
|
|
|
- "200.177.229.11:27522",
|
|
|
|
- "200.177.229.11:27521",
|
|
|
|
- "200.177.229.11:27500",
|
|
|
|
- "190.96.80.67:27500",
|
|
|
|
- "200.177.229.11:27511",
|
|
|
|
- "200.177.229.11:27520",
|
|
|
|
- "190.96.80.67:27000",
|
|
|
|
- "202.37.129.186:27500",
|
|
|
|
- "202.37.129.186:27505",
|
|
|
|
- "202.37.129.186:27501",
|
|
|
|
- "219.88.241.81:27500",
|
|
|
|
- "202.172.99.2:28001",
|
|
|
|
- "202.172.99.2:28002",
|
|
|
|
- "202.172.99.2:28003",
|
|
|
|
- "202.172.99.2:27500",
|
|
|
|
- "210.50.4.11:27501",
|
|
|
|
- "202.172.99.2:27501",
|
|
|
|
- "210.50.4.11:27508",
|
|
|
|
- "210.50.4.11:27511",
|
|
|
|
- "210.50.4.11:27509",
|
|
|
|
- "210.50.4.11:27510",
|
|
|
|
- "122.99.118.2:28001",
|
|
|
|
- "210.50.4.11:27500",
|
|
|
|
- "210.50.4.11:27503",
|
|
|
|
- "210.50.4.11:27506",
|
|
|
|
- "210.50.4.11:27505",
|
|
|
|
- "210.50.4.11:27504",
|
|
|
|
- ]
|
|
|
|
-
|
|
|
|
-# for local dev usage ;)
|
|
|
|
-$qw_list = [
|
|
|
|
- "89.104.194.146:27501",
|
|
|
|
- "210.50.4.11:27504",
|
|
|
|
- "122.99.118.2:28001",
|
|
|
|
-]
|
|
|
|
|
|
+require './em_server_accounts.rb'
|
|
|
|
+require './em_server_initqwserverlist.rb'
|
|
|
|
|
|
class GameServers
|
|
class GameServers
|
|
|
|
|