Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Websend Jakis poradnik?


Rekomendowane odpowiedzi

Opublikowano

Jestem calkowicie poczatkujacy w PLUGINIE Websend...  Ma moze ktos jakis dobry tutorial, lub moze mi wytlumaczyc jak wyslac jakas komende do serwera?

 

Dziekuje

4830328594.png

SMITE | Sezon 2 Diamond | US

 

Opublikowano

websnd jest niepotrzebny, masz w server.properties coś takiego jak rcon-port, tam wpisz port, zrestartuj serwer, wpisz hasło i możesz bez problemu używać, do tworzenia panelu serwera, do itemshopu, do wszystkiego czego można użyć. a jak Ci nie działa tzn. że hosting na którym stoi twój serwer blokuje port, wtedy musisz wykupić własne ip, koszt 10zł i możesz robić co tylko chcesz. Jeśli rcon-port Ci nie zadziała, to websend też nie podziała.

 

przykładowy kod php,

 

 

<?php
define( 'MQ_SERVER_ADDR', 'przykladoweip.pl' ); //ip serwera minecraft
define( 'MQ_SERVER_PORT', 25575 ); //RCon port serwera minecraft
define( 'MQ_SERVER_PASS', 'supermocnehaslo'); //haslo rcon serwera minecraft
define( 'MQ_TIMEOUT', 2 );

class MinecraftRconException extends Exception
{
	// Exception thrown by MinecraftRcon class
}
class MinecraftRcon
{
	// Sending
	const SERVERDATA_EXECCOMMAND    = 2;
	const SERVERDATA_AUTH           = 3;
	// Receiving
	const SERVERDATA_RESPONSE_VALUE = 0;
	const SERVERDATA_AUTH_RESPONSE  = 2;
	private $Socket;
	private $RequestId;
	public function __destruct( )
	{
		$this->Disconnect( );
	}
	public function Connect( $Ip, $Port = 25575, $Password, $Timeout = 3 )
	{
		$this->RequestId = 0;
		if( $this->Socket = FSockOpen( $Ip, (int)$Port ) )
		{
			Socket_Set_TimeOut( $this->Socket, $Timeout );
			if( !$this->Auth( $Password ) )
			{
				$this->Disconnect( );
				throw new MinecraftRconException( "Authorization failed." );
			}
		}
		else
		{
			throw new MinecraftRconException( "Can't open socket." );
		}
	}
	public function Disconnect( )
	{
		if( $this->Socket )
		{
			FClose( $this->Socket );
			
			$this->Socket = null;
		}
	}
	public function Command( $String )
	{
		if( !$this->WriteData( self :: SERVERDATA_EXECCOMMAND, $String ) )
		{
			return false;
		}
		$Data = $this->ReadData( );
		if( $Data[ 'RequestId' ] < 1 || $Data[ 'Response' ] != self :: SERVERDATA_RESPONSE_VALUE )
		{
			return false;
		}

		return $Data[ 'String' ];
	}
	private function Auth( $Password )
	{
		if( !$this->WriteData( self :: SERVERDATA_AUTH, $Password ) )
		{
			return false;
		}
		$Data = $this->ReadData( );
		return $Data[ 'RequestId' ] > -1 && $Data[ 'Response' ] == self :: SERVERDATA_AUTH_RESPONSE;
	}
	private function ReadData( )
	{
		$Packet = Array( );
		$Size = FRead( $this->Socket, 4 );
		$Size = UnPack( 'V1Size', $Size );
		$Size = $Size[ 'Size' ];
		// TODO: Add multiple packets (Source)
		$Packet = FRead( $this->Socket, $Size );
		$Packet = UnPack( 'V1RequestId/V1Response/a*String/a*String2', $Packet );
		return $Packet;
	}
	private function WriteData( $Command, $String = "" )
	{
		// Pack the packet together
		$Data = Pack( 'VV', $this->RequestId++, $Command ) . $String . "\x00\x00\x00"; 
		// Prepend packet length
		$Data = Pack( 'V', StrLen( $Data ) ) . $Data;
		$Length = StrLen( $Data );
		return $Length === FWrite( $this->Socket, $Data, $Length );
	}
}

$Rcon = new MinecraftRcon;
$Rcon->Connect( MQ_SERVER_ADDR, MQ_SERVER_PORT, MQ_SERVER_PASS, MQ_TIMEOUT );		
$Data = $Rcon->Command("say hello rcon minecraft");				
$Rcon->Disconnect();
?>

 

 

opencraft.pl << { na takim jeszcze nie grałeś }

TDepLbR.gif

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...