[Minecraft ]Afficher Gamemode et la position des joueurs en PHP

0.00 avg. rating (0% score) - 0 votes
Partager:

Dans cette seconde vidéo, je vous explique comment ouvrir les fichiers dat de votre serveur Minecraft pour afficher le Gamemode de vos joueur ou même leur position, leur XP. Ainsi avec ces informations vous pourriez créer un panel pour afficher l’inventaire de vos joueurs et toute sorte de chose.

Pour cela vous aurez besoin de la class PHP: https://github.com/TheFrozenFire/PHP-NBT-Decoder-Encoder et l’extension GMP pour PHP.

La vidéo:

Le code:


require("nbt.class.php");
$nbt = new nbt();

// ---------- ---------- ---------- ---------- ----------
// echo '<hr>';
// echo '<hr><a href="">recharger la page</a><hr>';
// ---------- ---------- ---------- ---------- ----------

	// Edit this ->
	define( 'MQ_SERVER_ADDR', 'simonbhb.fr' );
	define( 'MQ_SERVER_PORT', 25565 );
	define( 'MQ_TIMEOUT', 1 );
	// Edit this <-

// ---------- ---------- ---------- ---------- ----------

	include 'MinecraftQuery.php';

	$Query = new MinecraftQuery();

	try
	{
		$Query->Connect( MQ_SERVER_ADDR, MQ_SERVER_PORT, MQ_TIMEOUT );
	}
	catch( MinecraftQueryException $e )
	{
		$Exception = $e;
	}
	
$Players = $Query->GetPlayers( );
$GetInfo = $Query->GetInfo( );
// krumo($GetInfo); // Info serveur minecraft
// var_dump($Players); // Joueur connecté

// ---------- ---------- ---------- ---------- ----------

$whitelist = json_decode(file_get_contents("/home/simonbhb/minecraft/serveur/1.9/whitelist.json"));
// krumo($whitelist);

$ops = json_decode(file_get_contents("/home/simonbhb/minecraft/serveur/1.9/ops.json"));
// krumo($ops);

// ---------- ---------- ---------- ---------- ----------

$array_gamemode = array("0" => "Survie", "1" => "Créatif");

$grade = "Joueur";
	foreach ($whitelist as $key => $value)
	{
@$test = $nbt->loadFile("/home/simonbhb/minecraft/serveur/1.9/sauvegarde/Nouveau monde/playerdata/".$value->uuid.".dat");
		if($Players != FALSE)
			{
				if(in_array($value->name, $Players))
					{
$array_joueurs[$value->uuid]['statut'] = "Connecté";
					}
				else
					{
$array_joueurs[$value->uuid]['statut'] = "Hors ligne";
					}
			}
		else
			{
			}
$array_joueurs[$value->uuid]['uuid'] = $value->uuid;
$array_joueurs[$value->uuid]['grade'] = $grade;
$array_joueurs[$value->uuid]['name'] = $value->name;
$array_joueurs[$value->uuid]['pos']["x"] = number_format($test['value'][32]['value']['value'][0], 0);
$array_joueurs[$value->uuid]['pos']["y"] = number_format($test['value'][32]['value']['value'][1], 0);
$array_joueurs[$value->uuid]['pos']["z"] = number_format($test['value'][32]['value']['value'][2], 0);
$array_joueurs[$value->uuid]['gamemode'] = $test['value'][16]['value'];
$array_joueurs[$value->uuid]['gamemode_1'] = $array_gamemode[ $test['value'][16]['value'] ];
	}

// ---------- ---------- ---------- ---------- ----------
	
$grade = "Admin";
	foreach ($ops as $key => $value)
	{
@$test = $nbt->loadFile("/home/simonbhb/minecraft/serveur/1.9/sauvegarde/Nouveau monde/playerdata/".$value->uuid.".dat");
		if($Players != FALSE)
			{
				if(in_array($value->name, $Players))
					{
$array_joueurs[$value->uuid]['statut'] = "Connecté";
					}
				else
					{
$array_joueurs[$value->uuid]['statut'] = "Hors ligne";
					}
			}
		else
			{
			}
$array_joueurs[$value->uuid]['uuid'] = $value->uuid;
$array_joueurs[$value->uuid]['grade'] = $grade;
$array_joueurs[$value->uuid]['name'] = $value->name;
$array_joueurs[$value->uuid]['pos']["x"] = number_format($test['value'][32]['value']['value'][0], 0);
$array_joueurs[$value->uuid]['pos']["y"] = number_format($test['value'][32]['value']['value'][1], 0);
$array_joueurs[$value->uuid]['pos']["z"] = number_format($test['value'][32]['value']['value'][2], 0);
$array_joueurs[$value->uuid]['gamemode'] = $test['value'][16]['value'];
$array_joueurs[$value->uuid]['gamemode_1'] = $array_gamemode[ $test['value'][16]['value'] ];
	}

// ---------- ---------- ---------- ---------- ----------
?>
<pre>
<?php
var_dump($array_joueurs);
?>
</pre>

Tous les codes sont testés et sont fonctionnels, si un de ces codes ne marche pas chez vous, merci de me le signaler.
Partager:
0.00 avg. rating (0% score) - 0 votes

Vous aimerez aussi...

Laisser un commentaire