SHARE
TWEET

Minestatus mod for NightQuery

werelord Aug 5th, 2011 559 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. /**
  4.  * @package Minestatus
  5.  * @version 1.3.4
  6.  * @license GPLv2 - http://www.gnu.org/licenses/gpl-2.0.html
  7.  */
  8.  
  9. /*
  10. Plugin Name: Minestatus, modified for NightQuery
  11. Plugin URI: http://www.jeroenweustink.nl/minestatus/
  12. Description: This plugin shows several server parameters using the <a href="http://minestatus.net/minequery">Minequery</a> plugin. Returned parameters are: server name, server status, server port, load time, maximum players and player-list.
  13. Author: Jeroen Weustink
  14. Modified by: werelord
  15. Version: 1.3.4
  16. Author URI: http://jeroenweustink.nl/
  17. */
  18. require('minequery.class.php');
  19.  
  20.  
  21. class Minestatus_Widget extends WP_Widget
  22. {
  23.        
  24.         /**
  25.          * Main construct
  26.          */
  27.         public function Minestatus_Widget()
  28.         {
  29.                
  30.                 parent::WP_Widget(false, $name = 'Minestatus');
  31.        
  32.         }
  33.  
  34.         /**
  35.          * Output to show in widget
  36.          * @param array $arrArgs
  37.          * @param array $arrInstance
  38.          */    
  39.         public function widget($arrArgs, $arrInstance)
  40.         {
  41.  
  42.                 // Set title
  43.                 $strTitle = (!empty($arrInstance['title'])) ? $arrInstance['title'] : 'Server status';
  44.                
  45.                 // Get data
  46.                 $arrStatus      = $this->_getServerStatus($arrInstance['host'], $arrInstance['port']);
  47.                
  48.                 // Check status
  49.                 if(!$arrStatus) {
  50.                        
  51.                         // Could not connect to server
  52.                         echo $arrArgs['before_widget'];
  53.                         echo $arrArgs['before_title'] . $strTitle . $arrArgs['after_title'];
  54.                        
  55.                         // Check if server name and/or status has to be printed
  56.                         echo '<p>';
  57.                         echo ($arrInstance['show_server_status'] === true) ? 'Server status: <span style="color:red;font-weight:bold">offline</span><br>' : 'Could not connect to server.';
  58.                         echo ($arrInstance['show_server_name'] === true) ? 'Server name: '.$arrInstance['host'] : '';
  59.                         echo '</p>';
  60.                         echo $arrArgs['after_widget'];
  61.                        
  62.                 } else {
  63.                        
  64.                         // Build html
  65.                         echo $arrArgs['before_widget'];
  66.                         echo $arrArgs['before_title'] . $strTitle . $arrArgs['after_title'];
  67.                         echo '<p>';
  68.                        
  69.                         // Check if which parameters need to be printed
  70.                         echo ($arrInstance['show_server_status'] === true) ? 'Server status: <span style="color:green;font-weight:bold">online</span><br>' : '';
  71.                         echo ($arrInstance['show_server_name'] === true) ? 'Server name: '.$arrInstance['host'].'<br>' : '';
  72.                         echo (is_null($arrInstance['show_port']) || $arrInstance['show_port'] === true) ? 'Server port: <strong>'.$arrStatus['serverPort'].'</strong><br>' : '';
  73.                        
  74.                         // new stuff from minequery
  75.                         echo (is_null($arrInstance['show_bukkit_version']) || $arrInstance['show_bukkit_version'] === true) ? 'Bukkit b'.$arrStatus['SVER'].'<br>' : '';
  76.                         echo (is_null($arrInstance['show_mc_version']) || $arrInstance['show_mc_version'] === true) ? 'Minecraft v'.$arrStatus['CVER'].'<br>' : '';                    
  77.                        
  78.                         echo (is_null($arrInstance['show_load_time']) || $arrInstance['show_load_time'] === true) ? 'Latency: <strong>'.round($arrStatus['latency']).' ms</strong><br>' : '';
  79.                        
  80.                         // Check mods
  81.                         if(is_null($arrInstance['show_pluginlist']) || $arrInstance['show_pluginlist'] === true)
  82.                         {
  83.                                 echo 'Plugins installed:<br>';
  84.                                 $modCount = count($arrStatus['PLUGINNAMELIST']);
  85.                                 for ($i = 0; $i < $modCount; $i++)
  86.                                 {
  87.                                         $str = '<span style="padding-left:20px;">' . $arrStatus['PLUGINNAMELIST'][$i];
  88.                                         if (is_null($arrInstance['show_pluginversions']) || $arrInstance['show_pluginversions'] === true)
  89.                                         {
  90.                                                 $str .= '  [v' . $arrStatus['PLUGINVERSIONLIST'][$i] . ']';
  91.                                         }
  92.                                         $str .= '</span><br>';
  93.                                         echo $str;
  94.                                 }
  95.                         }
  96.                        
  97.                         echo '</table>';
  98.  
  99.                         // Players
  100.                         echo (is_null($arrInstance['show_max_players']) || $arrInstance['show_max_players'] === true) ? 'Maximum players: <strong>'.$arrStatus['maxPlayers'].'</strong><br>' : '';
  101.                        
  102.                         // Check if there are any users online
  103.                         if(is_null($arrInstance['show_playerlist']) || $arrInstance['show_playerlist'] === true)
  104.                         {
  105.                                 // because playerlist may be an array of 1, with an empty entry
  106.                                 $playerCount = count($arrStatus['playerList']);
  107.                                 if (($playerCount === 1) && ($arrStatus['playerList'][0] === ''))
  108.                                 {
  109.                                         $playerCount = 0;
  110.                                 }
  111.                                 echo 'Players online: <strong>'.$playerCount.'</strong><br>';
  112.                                 for ($i = 0; $i < $playerCount; $i++)
  113.                                 {
  114.                                         $str = '<span style="padding-left:20px;color:blue;font-weight:bold;">' . $arrStatus['playerList'][$i] . '</span>';
  115.                                         if (is_null($arrInstance['show_playerworlds']) || $arrInstance['show_playerworlds'] === true)
  116.                                         {
  117.                                                 $str .= '<span style="color:darkcyan;font-weight:bold;padding-left:4px;"> [' . $arrStatus['PLAYERWORLDLIST'][$i] . ']</span>';
  118.                                         }
  119.                                         $str .= '<br>';
  120.                                         echo $str;
  121.                                 }
  122.                         }
  123.                        
  124.                         echo '</p>';
  125.  
  126.                         echo $arrArgs['after_widget'];
  127.                 }
  128.         }
  129.  
  130.         /**
  131.          * Widget settings form
  132.          * @param array $arrInstance
  133.          */
  134.         public function form($arrInstance)
  135.         {
  136.  
  137.                 // Setup vars
  138.                 $strTitle                               = (!empty($arrInstance['title'])) ? $arrInstance['title'] : 'Server status';
  139.                 $strHost                                = (!empty($arrInstance['host'])) ? $arrInstance['host'] : 'localhost';
  140.                 $strPort                                = (!empty($arrInstance['port'])) ? $arrInstance['port'] : '25566';
  141.                 $strShowServerStatus    = (is_null($arrInstance['show_server_status']) || $arrInstance['show_server_status'] === true) ? 'checked="checked"' : '';
  142.                 $strShowServerName              = (is_null($arrInstance['show_server_name']) || $arrInstance['show_server_name'] === true) ? 'checked="checked"' : '';
  143.                
  144.                 $strShowBukkitVersion   = (is_null($arrInstance['show_bukkit_version']) || $arrInstance['show_bukkit_version'] === true) ? 'checked="checked"' : '';
  145.                 $strShowMCVersion               = (is_null($arrInstance['show_mc_version']) || $arrInstance['show_mc_version'] === true) ? 'checked="checked"' : '';
  146.                
  147.                 $strShowLoad                    = (is_null($arrInstance['show_load_time']) || $arrInstance['show_load_time'] === true) ? 'checked="checked"' : '';
  148.                 $strShowPort                    = (is_null($arrInstance['show_port']) || $arrInstance['show_port'] === true) ? 'checked="checked"' : '';
  149.                 $strShowMaxPlayers              = (is_null($arrInstance['show_max_players']) || $arrInstance['show_max_players'] === true) ? 'checked="checked"' : '';
  150.                 $strShowList                    = (is_null($arrInstance['show_playerlist']) || $arrInstance['show_playerlist'] === true) ? 'checked="checked"' : '';
  151.                 $strShowPlayerWorlds    = (is_null($arrInstance['show_playerworlds']) || $arrInstance['show_playerworlds'] === true) ? 'checked="checked"' : '';
  152.                
  153.                 $strShowPluginList              = (is_null($arrInstance['show_pluginlist']) || $arrInstance['show_pluginlist'] === true) ? 'checked="checked"' : '';
  154.                 $strShowPluginVersions  = (is_null($arrInstance['show_pluginversions']) || $arrInstance['show_pluginversions'] === true) ? 'checked="checked"' : '';
  155.                  
  156.                 // Build form
  157.                 // title editbox
  158.                 echo '<p>';
  159.                 echo '<label for="'.$this->get_field_id('title').'">'._e('Title:').'</label>';
  160.                 echo '<input class="widefat" id="'.$this->get_field_id('title').'" name="'.$this->get_field_name('title').'" type="text" value="'.$strTitle.'" />';
  161.                 echo '</p>';
  162.                
  163.                 // host editbox
  164.                 echo '<p>';
  165.                 echo '<label for="'.$this->get_field_id('host').'">'._e('Minequery host:').'</label>';
  166.                 echo '<input class="widefat" id="'.$this->get_field_id('host').'" name="'.$this->get_field_name('host').'" type="text" value="'.$strHost.'" />';
  167.                 echo '</p>';           
  168.  
  169.                 // port editbox
  170.                 echo '<p>';
  171.                 echo '<label for="'.$this->get_field_id('port').'">'._e('Minequery port:').'</label>';
  172.                 echo '<input class="widefat" id="'.$this->get_field_id('port').'" name="'.$this->get_field_name('port').'" type="text" value="'.$strPort.'" />';
  173.         echo '</p>';
  174.    
  175.         // show server status checkbox
  176.         echo '<p>';
  177.                 echo '<input id="'.$this->get_field_id('show_server_status').'" name="'.$this->get_field_name('show_server_status').'" type="checkbox" '.$strShowServerStatus.' value="1" />';
  178.         echo '<label for="'.$this->get_field_id('show_server_status').'">'._e(' Show server status').'</label>';
  179.                 echo '</p>';
  180.                
  181.                 // show server name checkbox
  182.                 echo '<p>';
  183.                 echo '<input id="'.$this->get_field_id('show_server_name').'" name="'.$this->get_field_name('show_server_name').'" type="checkbox" '.$strShowServerName.' value="1" />';
  184.         echo '<label for="'.$this->get_field_id('show_server_name').'">'._e(' Show server name').'</label>';
  185.                 echo '</p>';
  186.        
  187.                 // show bukkit version
  188.                 echo '<p>';
  189.                 echo '<input id="'.$this->get_field_id('show_bukkit_version').'" name="'.$this->get_field_name('show_bukkit_version').'" type="checkbox" '.$strShowBukkitVersion.' value="1" />';
  190.         echo '<label for="'.$this->get_field_id('show_bukkit_version').'">'._e(' Show Bukkit version').'</label>';
  191.                 echo '</p>';
  192.                
  193.                 // show minecraft version
  194.                 echo '<p>';
  195.                 echo '<input id="'.$this->get_field_id('show_mc_version').'" name="'.$this->get_field_name('show_mc_version').'" type="checkbox" '.$strShowMCVersion.' value="1" />';
  196.         echo '<label for="'.$this->get_field_id('show_mc_version').'">'._e(' Show Minecraft version').'</label>';
  197.                 echo '</p>';
  198.                
  199.                 // show load time
  200.         echo '<p>';
  201.                 echo '<input id="'.$this->get_field_id('show_load_time').'" name="'.$this->get_field_name('show_load_time').'" type="checkbox" '.$strShowLoad.' value="1" />';
  202.         echo '<label for="'.$this->get_field_id('show_load_time').'">'._e(' Show load time').'</label>';
  203.                 echo '</p>';
  204.                
  205.                 // show port
  206.                 echo '<p>';
  207.                 echo '<input id="'.$this->get_field_id('show_port').'" name="'.$this->get_field_name('show_port').'" type="checkbox" '.$strShowPort.' value="1" />';
  208.         echo '<label for="'.$this->get_field_id('show_port').'">'._e(' Show port').'</label>';
  209.                 echo '</p>';
  210.                
  211.                 // show Max Players
  212.                 echo '<p>';
  213.                 echo '<input id="'.$this->get_field_id('show_max_players').'" name="'.$this->get_field_name('show_max_players').'" type="checkbox" '.$strShowMaxPlayers.' value="1" />';
  214.         echo '<label for="'.$this->get_field_id('show_max_players').'">'._e(' Show max players').'</label>';
  215.                 echo '</p>';
  216.                                
  217.                 // show playerlist
  218.                 echo '<p>';
  219.                 echo '<input id="'.$this->get_field_id('show_playerlist').'" name="'.$this->get_field_name('show_playerlist').'" type="checkbox" '.$strShowList.' value="1" />';
  220.         echo '<label for="'.$this->get_field_id('show_playerlist').'">'._e(' Show playerlist').'</label>';
  221.                 echo '</p>';
  222.                
  223.                 // show player worlds
  224.                 echo '<p>';
  225.                 echo '<input id="'.$this->get_field_id('show_playerworlds').'" name="'.$this->get_field_name('show_playerworlds').'" type="checkbox" '.$strShowPlayerWorlds.' value="1" />';
  226.         echo '<label for="'.$this->get_field_id('show_playerworlds').'">'._e(' Show player worlds').'</label>';
  227.                 echo '</p>';
  228.                
  229.                 // show plugin list
  230.                 echo '<p>';
  231.                 echo '<input id="'.$this->get_field_id('show_pluginlist').'" name="'.$this->get_field_name('show_pluginlist').'" type="checkbox" '.$strShowPluginList.' value="1" />';
  232.         echo '<label for="'.$this->get_field_id('show_pluginlist').'">'._e(' Show plugin list').'</label>';
  233.                 echo '</p>';
  234.                
  235.                 // show plugin version list
  236.                 echo '<p>';
  237.                 echo '<input id="'.$this->get_field_id('show_pluginversions').'" name="'.$this->get_field_name('show_pluginversions').'" type="checkbox" '.$strShowPluginVersions.' value="1" />';
  238.         echo '<label for="'.$this->get_field_id('show_pluginversions').'">'._e(' Show plugin versions').'</label>';
  239.                 echo '</p>';
  240.                
  241.         }
  242.  
  243.         /**
  244.          * Update posted parameters from $this->form()
  245.          * @param array $arrNewInstance
  246.          * @param array $arrOldInstance
  247.          */
  248.         function update($arrNewInstance, $arrOldInstance) {
  249.  
  250.                 // Setup instance
  251.                 $arrInstance                                            = $arrOldInstance;
  252.                 $arrInstance['title']                           = strip_tags($arrNewInstance['title']);
  253.                 $arrInstance['host']                            = strip_tags($arrNewInstance['host']);
  254.                 $arrInstance['port']                            = strip_tags($arrNewInstance['port']);
  255.                 $arrInstance['show_load_time']          = ($arrNewInstance['show_load_time'] == 1) ? true : false;
  256.                 $arrInstance['show_port']                       = ($arrNewInstance['show_port'] == 1) ? true : false;
  257.                 $arrInstance['show_playerlist']         = ($arrNewInstance['show_playerlist'] == 1) ? true : false;
  258.                 $arrInstance['show_playerworlds']       = ($arrNewInstance['show_playerworlds'] == 1) ? true : false;
  259.                 $arrInstance['show_server_status']      = ($arrNewInstance['show_server_status'] == 1) ? true : false;
  260.                 $arrInstance['show_server_name']        = ($arrNewInstance['show_server_name'] == 1) ? true : false;
  261.                
  262.                 $arrInstance['show_bukkit_version']     = ($arrNewInstance['show_bukkit_version'] == 1) ? true : false;
  263.                 $arrInstance['show_mc_version']         = ($arrNewInstance['show_mc_version'] == 1) ? true : false;
  264.                 $arrInstance['show_pluginlist']         = ($arrNewInstance['show_pluginlist'] == 1) ? true : false;
  265.                 $arrInstance['show_pluginversions']     = ($arrNewInstance['show_pluginversions'] == 1) ? true : false;
  266.                 $arrInstance['show_max_players']        = ($arrNewInstance['show_max_players'] == 1) ? true : false;
  267.                 return $arrInstance;
  268.  
  269.         }
  270.  
  271.         /**
  272.          * Socket connect to minequery to get status
  273.          * @param string $strHost
  274.          * @param string $strPort
  275.          */
  276.         private function _getServerStatus($strHost, $strPort)
  277.         {
  278.                 $response = Minequery::query($strHost, $strPort);
  279.                
  280.                 return $response;
  281.         }
  282.  
  283. }
  284.  
  285. // Register
  286. add_action('widgets_init',create_function('', 'return register_widget("Minestatus_Widget");'));
  287.  
  288. ?>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top