|
@@ -1,57 +1,46 @@
|
|
|
<?php
|
|
|
require_once __DIR__ . '/../vendor/autoload.php';
|
|
|
use App\GameClient;
|
|
|
+
|
|
|
class ProgramMain {
|
|
|
private static ?GameClient $client = null;
|
|
|
|
|
|
private static function getClient(): GameClient {
|
|
|
if (self::$client === null) {
|
|
|
self::$client = new GameClient();
|
|
|
- echo "客户端初始化完成\n";
|
|
|
}
|
|
|
return self::$client;
|
|
|
}
|
|
|
|
|
|
- public static function handleCommand(array $args): void {
|
|
|
+ public static function runInteractiveCli(): void {
|
|
|
$client = self::getClient();
|
|
|
|
|
|
- if (count($args) < 2) {
|
|
|
- echo "使用方法: php client.php [命令] [参数...]\n";
|
|
|
- echo "可用命令:\n";
|
|
|
- echo " login [账号] [密码] - 登录游戏\n";
|
|
|
- echo " start - 启动客户端\n";
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- $command = $args[1];
|
|
|
- switch ($command) {
|
|
|
- case 'login':
|
|
|
- if (count($args) < 4) {
|
|
|
- echo "错误:login命令需要账号和密码参数\n";
|
|
|
- echo "示例: php client.php login myaccount mypassword\n";
|
|
|
- return;
|
|
|
- }
|
|
|
- $account = $args[2];
|
|
|
- $password = $args[3];
|
|
|
- $client->login($account, $password);
|
|
|
- break;
|
|
|
- case 'start':
|
|
|
- $client->start();
|
|
|
- break;
|
|
|
- case 'outGame':
|
|
|
- echo "outGame";
|
|
|
- break;
|
|
|
- default:
|
|
|
- echo "未知命令: $command\n";
|
|
|
+ echo "游戏客户端交互模式(输入命令执行,如 login, outGame, exit)\n";
|
|
|
+
|
|
|
+ while (true) {
|
|
|
+ $input = readline("> "); // 等待用户输入
|
|
|
+ $args = explode(' ', $input); // 拆解命令和参数
|
|
|
+
|
|
|
+ switch ($args[0]) {
|
|
|
+ case 'login':
|
|
|
+ if (count($args) < 3) {
|
|
|
+ echo "用法: login [账号] [密码]\n";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ $client->login($args[1], $args[2]);
|
|
|
+ break;
|
|
|
+ case 'outGame':
|
|
|
+ $client->outGame();
|
|
|
+ break;
|
|
|
+ case 'exit':
|
|
|
+ $client->close(); // 关闭 WebSocket 连接
|
|
|
+ exit(0);
|
|
|
+ default:
|
|
|
+ echo "未知命令。可用命令: login, outGame, exit\n";
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// 命令行执行
|
|
|
-if (php_sapi_name() === 'cli') {
|
|
|
- ProgramMain::handleCommand($argv);
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-//使用
|
|
|
-// php main.php login xy1 123
|
|
|
+// 直接进入交互模式
|
|
|
+ProgramMain::runInteractiveCli();
|