mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
Added a player list command /list
This commit is contained in:
parent
157aa2a786
commit
07fed5cd24
5 changed files with 85 additions and 5 deletions
20
MinecraftClient/Commands/List.cs
Normal file
20
MinecraftClient/Commands/List.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace MinecraftClient.Commands
|
||||
{
|
||||
public class List : Command
|
||||
{
|
||||
public override string CMDName { get { return "list"; } }
|
||||
public override string CMDDesc { get { return "list: get the player list."; } }
|
||||
|
||||
public override string Run(McTcpClient handler, string command)
|
||||
{
|
||||
handler.ListPlayers();
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -33,6 +33,8 @@ namespace MinecraftClient
|
|||
private string uuid;
|
||||
private string sessionid;
|
||||
|
||||
public Dictionary<string, string> players;
|
||||
|
||||
public int getServerPort() { return port; }
|
||||
public string getServerHost() { return host; }
|
||||
public string getUsername() { return username; }
|
||||
|
|
@ -56,6 +58,7 @@ namespace MinecraftClient
|
|||
public McTcpClient(string username, string uuid, string sessionID, int protocolversion, string server_ip, ushort port)
|
||||
{
|
||||
StartClient(username, uuid, sessionID, server_ip, port, protocolversion, false, "");
|
||||
players = new Dictionary<string, string>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -388,6 +391,18 @@ namespace MinecraftClient
|
|||
else return handler.SendChatMessage(text);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Display a list of players
|
||||
/// </summary>
|
||||
/// <returns>True if the players can be listed</returns>
|
||||
public bool ListPlayers()
|
||||
{
|
||||
ConsoleIO.WriteLine ("Player List");
|
||||
foreach (string player in players.Values)
|
||||
ConsoleIO.WriteLine (player);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Allow to respawn after death
|
||||
/// </summary>
|
||||
|
|
@ -395,7 +410,16 @@ namespace MinecraftClient
|
|||
|
||||
public bool SendRespawnPacket()
|
||||
{
|
||||
return handler.SendRespawnPacket();
|
||||
return handler.SendRespawnPacket ();
|
||||
}
|
||||
|
||||
public void addPlayer(string uuid, string name) {
|
||||
players[uuid] = name;
|
||||
}
|
||||
public void removePlayer(string uuid){
|
||||
players.Remove (uuid);
|
||||
}
|
||||
|
||||
public HashSet<string> getPlayers() { return new HashSet<string>(players.Values); }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@
|
|||
<Compile Include="Proxy\Handlers\Socks5ProxyClient.cs" />
|
||||
<Compile Include="Proxy\Handlers\Utils.cs" />
|
||||
<Compile Include="Settings.cs" />
|
||||
<Compile Include="Commands\List.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
|
||||
|
|
|
|||
|
|
@ -143,6 +143,26 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x02:
|
||||
handler.OnTextReceived(ChatParser.ParseText(readNextString(ref packetData)));
|
||||
break;
|
||||
case 0x0C: //Entity Look and Relative Move
|
||||
//ConsoleIO.WriteLineFormatted("§8 0x0C entity:" + readNextVarInt(ref packetData) + " has come in to sight");
|
||||
break;
|
||||
case 0x38: // update player list
|
||||
int action = readNextVarInt (ref packetData);
|
||||
int numActions = readNextVarInt (ref packetData);
|
||||
string uuid = readNextUUID (ref packetData);
|
||||
switch (action) {
|
||||
case 0x00:
|
||||
string name = readNextString (ref packetData);
|
||||
handler.addPlayer (uuid, name);
|
||||
break;
|
||||
case 0x04:
|
||||
handler.removePlayer (uuid);
|
||||
break;
|
||||
default:
|
||||
//do nothing
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x3A:
|
||||
int autocomplete_count = readNextVarInt(ref packetData);
|
||||
string tab_list = "";
|
||||
|
|
@ -256,6 +276,17 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
else return "";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read a uuid from a cache of bytes and remove it from the cache
|
||||
/// </summary>
|
||||
/// <param name="cache">Cache of bytes to read from</param>
|
||||
/// <returns>The uuid as a string</returns>
|
||||
|
||||
private string readNextUUID(ref byte[] cache)
|
||||
{
|
||||
return BitConverter.ToString(readData (16, ref cache)).Replace ("-", string.Empty).ToLower();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read a byte array from a cache of bytes and remove it from the cache
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -22,6 +22,10 @@ namespace MinecraftClient.Protocol
|
|||
string getUserUUID();
|
||||
string getSessionID();
|
||||
|
||||
void addPlayer(string uuid, string name);
|
||||
void removePlayer(string uuid);
|
||||
HashSet<string> getPlayers();
|
||||
|
||||
/// <summary>
|
||||
/// This method is called when the protocol handler receives a chat message
|
||||
/// </summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue