minestat 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/minestat.rb +25 -5
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2bb7df47ea2b1dbc9593527397307a00e553ca5f67e7569d9c3d92bf26c971ef
|
4
|
+
data.tar.gz: 6dd403da69ee5878a58e7b1c973b937f57f04f607d86774fb87febd46514db54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54c7a4cfd1fb9c07e83529f513dcb800dbd2464044389a18c08f22c8bb7435f963fdfc5acacdd174774f9b65a3dec22391f76f1e856499ca48a64f4f5e03cd9e
|
7
|
+
data.tar.gz: ce1ae19de3e86ded84a5205ec38c50218181add5eaf5965e8578102299c7cd51e316a37bd58437abb2aa6f154d6b067644a0a6485fb9c823972572d3ded02a69
|
data/lib/minestat.rb
CHANGED
@@ -21,7 +21,7 @@ require 'socket'
|
|
21
21
|
require 'timeout'
|
22
22
|
|
23
23
|
class MineStat
|
24
|
-
VERSION = "2.
|
24
|
+
VERSION = "2.1.0" # MineStat version
|
25
25
|
NUM_FIELDS = 6 # number of values expected from server
|
26
26
|
NUM_FIELDS_BETA = 3 # number of values expected from a 1.8b/1.3 server
|
27
27
|
MAX_VARINT_SIZE = 5 # maximum number of bytes a varint can be
|
@@ -49,6 +49,7 @@ class MineStat
|
|
49
49
|
@online # online or offline?
|
50
50
|
@version # server version
|
51
51
|
@motd # message of the day
|
52
|
+
@stripped_motd # message of the day without formatting
|
52
53
|
@current_players # current number of players online
|
53
54
|
@max_players # maximum player capacity
|
54
55
|
@protocol # protocol level
|
@@ -81,17 +82,33 @@ class MineStat
|
|
81
82
|
retval = beta_request()
|
82
83
|
end
|
83
84
|
# SLP 1.6
|
84
|
-
unless retval == Retval::
|
85
|
+
unless retval == Retval::CONNFAIL
|
85
86
|
retval = extended_legacy_request()
|
86
87
|
end
|
87
88
|
# SLP 1.7
|
88
|
-
unless retval == Retval::
|
89
|
+
unless retval == Retval::CONNFAIL
|
89
90
|
retval = json_request()
|
90
91
|
end
|
91
92
|
end
|
92
93
|
@online = false unless retval == Retval::SUCCESS
|
93
94
|
end
|
94
95
|
|
96
|
+
# Strips message of the day formatting characters
|
97
|
+
def strip_motd(is_json = false)
|
98
|
+
unless is_json
|
99
|
+
@stripped_motd = @motd.gsub(/§./, "")
|
100
|
+
else
|
101
|
+
@stripped_motd = @motd['text']
|
102
|
+
json_data = @motd['extra']
|
103
|
+
unless json_data.nil? || json_data.empty?
|
104
|
+
json_data.each do |nested_hash|
|
105
|
+
@stripped_motd += nested_hash['text']
|
106
|
+
end
|
107
|
+
end
|
108
|
+
@stripped_motd = @stripped_motd.gsub(/§./, "")
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
95
112
|
# Connects to remote server
|
96
113
|
def connect()
|
97
114
|
begin
|
@@ -133,6 +150,7 @@ class MineStat
|
|
133
150
|
if server_info != nil && server_info.length >= NUM_FIELDS_BETA
|
134
151
|
@version = ">=1.8b/1.3" # since server does not return version, set it
|
135
152
|
@motd = server_info[0]
|
153
|
+
strip_motd
|
136
154
|
@current_players = server_info[1].to_i
|
137
155
|
@max_players = server_info[2].to_i
|
138
156
|
@online = true
|
@@ -145,6 +163,7 @@ class MineStat
|
|
145
163
|
@protocol = server_info[1].to_i # contains the protocol version (51 for 1.9 or 78 for 1.6.4 for example)
|
146
164
|
@version = server_info[2]
|
147
165
|
@motd = server_info[3]
|
166
|
+
strip_motd
|
148
167
|
@current_players = server_info[4].to_i
|
149
168
|
@max_players = server_info[5].to_i
|
150
169
|
@online = true
|
@@ -309,7 +328,8 @@ class MineStat
|
|
309
328
|
@json_data = json_data
|
310
329
|
@protocol = json_data['version']['protocol'].to_i
|
311
330
|
@version = json_data['version']['name']
|
312
|
-
@motd = json_data['description']
|
331
|
+
@motd = json_data['description']
|
332
|
+
strip_motd(true)
|
313
333
|
@current_players = json_data['players']['online'].to_i
|
314
334
|
@max_players = json_data['players']['max'].to_i
|
315
335
|
if !@version.empty? && !@motd.empty? && !@current_players.nil? && !@max_players.nil?
|
@@ -361,5 +381,5 @@ class MineStat
|
|
361
381
|
return vint
|
362
382
|
end
|
363
383
|
|
364
|
-
attr_reader :address, :port, :online, :version, :motd, :current_players, :max_players, :protocol, :json_data, :latency, :request_type
|
384
|
+
attr_reader :address, :port, :online, :version, :motd, :stripped_motd, :current_players, :max_players, :protocol, :json_data, :latency, :request_type
|
365
385
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minestat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lloyd Dilley
|
8
8
|
- Stepan Melnikov
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
12
|
+
date: 2021-09-08 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: MineStat polls Minecraft server data such as version, motd, current players,
|
15
15
|
and max players.
|
@@ -24,7 +24,7 @@ homepage: https://github.com/FragLand/minestat
|
|
24
24
|
licenses:
|
25
25
|
- GPL-3.0
|
26
26
|
metadata: {}
|
27
|
-
post_install_message:
|
27
|
+
post_install_message:
|
28
28
|
rdoc_options: []
|
29
29
|
require_paths:
|
30
30
|
- lib
|
@@ -39,9 +39,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
requirements: []
|
42
|
-
rubyforge_project:
|
42
|
+
rubyforge_project:
|
43
43
|
rubygems_version: 2.7.6.2
|
44
|
-
signing_key:
|
44
|
+
signing_key:
|
45
45
|
specification_version: 4
|
46
46
|
summary: Minecraft server status checker
|
47
47
|
test_files: []
|