2
0
mirror of https://github.com/munin-monitoring/contrib.git synced 2018-11-08 00:59:34 +01:00

Merge pull request #60 from seventoes/master

Update minecraft plugin
This commit is contained in:
Kenyon Ralph 2012-03-05 20:38:10 -08:00
commit 27ccc1d3ce

View File

@ -1,32 +1,36 @@
#!/bin/sh
#!/usr/local/bin/ruby
# Config:
# [minecraft_players
# playerfile /etc/minecraft/players.txt
# subtract true
# [minecraft_users]
# env.host awesomeserver.com
# env.port 25566
#
# playerfile - location of player list file, for example from the OnlineUsers
# plugin
# subtract - OnlineUsers has a header above the user list, set this to true
# to subtract 1 from the output to compensate
case $1 in
config)
cat <<'EOM'
graph_title Connected players
graph_vlabel players
players.label players
graph_info Number of players connected to Minecraft
graph_category Minecraft
EOM
exit 0;;
esac
echo -n "players.value "
require 'socket'
count=`wc -l ${playerfile} | cut -d' ' -f1`
if [ $subtract="true" ];
then
echo -n "$(($count - 1))"
else
echo $count
fi
if ARGV[0] == 'config'
puts "graph_title Connected players"
puts "graph_vlabel players"
puts "players.label players"
puts "graph_info Number of players connected to Minecraft"
puts "graph_category Minecraft"
exit
end
host = ENV['host']
host = 'localhost' unless host
port = ENV['port']
port = '25566' unless port
socket = TCPSocket.new(host, port)
socket.puts "QUERY"
response = socket.read
response = response.split("\n")
server_port = response[0].split(" ", 2)[1].to_i
player_count = response[1].split(" ", 2)[1].to_i
max_players = response[2].split(" ", 2)[1].to_i
player_list = response[3].split(" ", 2)[1].chomp[1..-2]
puts "players.value #{player_count}"